跳转至

为什么学习MicroPython

我们1Z实验室始终相信,编程是一种意识上的创造,应该是快乐的。同时我们也坚信:如果我们能够Make Things Easy,那么学习将会更加的快乐和高效。

Python更适合作为初学者的入门语言

但是在很多在大学中,我们的老师依旧选择C语言作为入门的编程语言,选择C51单片机让大家入门硬件控制,笔者在大学时对于这两者的学习都有亲身经历,说起来一点都没有感受到编程和创造的快乐。在C语言上,吃尽了苦头且没有吃到过甜头,更不用说C51了。

我切身的感受到,要想熟练的使用C语言,这需要学习者花费更多的精力去理解引用,指针等等对于一个新手而言完全搞不清楚的概念。而且当我们使用C语言开发时,一个很小的功能就需要花费很多行代码去实现。就拿最基本的拼接字符串而言:

#include <stdio.h>
#include <string.h>

int main ()
{
    char str[50];
    strcpy (str,"hello, micropython!");
    strcat (str,"hello, 1ZLAB!");
    puts (str);
    return 0;
}

首先,对于不懂C语言的人来说,代码的可读性并不是很高,其次,实现步骤繁琐,需要用到额外的string库,同时在变量的声明时你还需要考虑变量的类型,长度等问题,你更需要明白str字符串数组的指针意味着什么...

如果是Python代码,事情就没有那么的繁琐了:

str1 = 'hello, micropython!'
str2 = 'hello, 1ZLAB!'
print(str1 + str2)

即使你没怎么学过编程,这三行代码,我估计你也能够大致明白他在干什么。

C语言固然很重要,他有着十分必要的价值,CPython和MicroPython都是由C语言所实现的。但是C语言需要你对计算机组成,对硬件底层有着十分深刻的认识,才能有所驾驭。除非兼顾硬件底层和追求性能,否则C语言已经无法满足当今的众多应用场景的需求了。

而Python学习成本简单,且应用场景几乎渗透到了各个方面:

  • 科学计算

  • 数据挖掘

  • Web后台

  • 图像处理

  • 人工智能

...等等,还有本教程想要教会你的硬件控制

所以学会了Python,你有很多发展的方向供你选择。同时我们1Z实验室认为:

Python已经不再是单纯的一门计算机编程语言,它更是一个无所不能的工具,我们可以使用Python让一些复杂的事情,变得简单

MicroPython VS 传统硬件开发

对于传统的硬件开发而言,大多使用C/C++这类编译型语言。

这种开发方式往往需要以下几个步骤:

  • 编写代码

  • 编译代码

  • 烧录到芯片

  • 运行程序

在这种模式下,当你发现自己的代码里有一行出了bug,即使是很微小的改动就能够修复,但你仍旧需要重新执行编译和烧录,才能够正确的运行。

而对于MicroPython而言,只要我们给芯片刷入了MicroPython固件,(结合我们上节所解释的解释器的概念,这就相当于我们为自己雇佣了一个私人翻译官,随时在芯片里等待着为我们翻译解释代码给芯片去执行。)之后的一切就简单得多。我们可以以两种方式来进行开发:

  • 进入交互式解释器 测试和运行代码
    我们可以进入交互式的解释器环境随时输入代码执行(进入这位翻译官的办公室,当面发号施 令),发现代码有误,可以立即更改。

  • 将代码保存到文件系统,让解释器开机之后按特定规则去执行。
    我们还可以将代码整理好,保存到MicroPython的文件系统中(没错这就相当于这位翻译官的文件夹,你可以让这位翻译官按照你规定的顺序去执行这些文件中的代码)。MicroPython默认开机后从boot.py开始执行,然后开始执行main.py

因此我们根本无需因为代码的更改而反复编译代码和烧录固件,只需要简单的更改文件系统对应脚本文件中的内容即可。

可见,MicroPython的开发方式更加轻便和灵活。