前言

我身边有很多工科类专业的朋友,有很多物联网专业的,计算机专业的,自动化专业的等等。笔者也是自动化出身, 相信这些专业大多都会涉及到单片机的课程,也不乏会产生主动的去接触嵌入式硬件的想法。但是在大学里的硬件相关的课程,大多都从C语言和51单片机开始。

C语言是硬件和软件领域的基石,但是作为初学者的入门语言,很容易打击人们的学习积极性。那么对于小白而言, 我更倾向于相信,Python更适合作为你的第一门编程语言,MicroPython能更容易的让你体验到硬件编程的快乐。同样的,对于C语言和嵌入式领域的大佬, 我也希望你可以尝试和体验MicroPython这种全新的嵌入式物联网开发方式。

MicroPython的诞生

Damien George是一名计算机工程师,他每天都要使用Python语言工作,同时也在做一些机器人项目。有一天,他 突然冒出了一个想法:能否用Python语言来控制单片机,进而实现对机器人的操纵呢? 要知道,Python是一款比较容易上手的脚本语言, 而且有强大的社区支持,一些非计算机专业领域的人都选它作为入门语言。遗憾的是,它不能实现非常底层的操控,所以在硬件领域并不起眼。

Damien为了突破这种限制,他花了六个月的时间来打造MicroPython。它基于ANSI C标准,语法跟Python 3基本一致, 拥有自家的解析器、编译器、虚拟机和类库。

微控制器通常以C编程,可以直接访问和控制寄存器来使用外围设备,为目标微控制器进行交叉编译和构建固件代码, 并使用合适的编程器进行烧录,而MicroPython集成了所有这些步骤。借助MicroPython,用户完全可以通过Python脚本语言实现硬件底 层的访问和控制,比如说控制LED灯泡、LCD显示器、读取电压、控制电机、访问SD卡等。

与桌面版本的Python不同,MicroPython是微控制器的精简版本,因此它并非支持所有Python的库和功能。当你学过 Python后再学习MicroPython是很容易的事,但不是所有的Python语法都适用于MicroPython,这点要尤为注意。

MicroPython支持的芯片

支持的mcu系列有:stm32f405、stm32f407,也支持esp8266,接下来会增强stm32f103和esp32的稳定性,芯片将会扩展到FPGA和A7。