# MicroPython 基础知识

MicroPython

# 什么是 MicroPython

在回答这个问题之前,让我们先来了解一下,什么是Python?

Python,是一种面向对象的解释型计算机程序设计语言,它是纯粹的自由软件,源代码和解释器CPython遵循GPL(GNU General Public License)协议。Python的设计目标之一是让代码具备高度的可阅读性。它设计时尽量使用其它语言经常使用的标点符号和英文单字,让代码看起来整洁美观。它不像其他的静态语言如C、Pascal那样需要重复书写声明语句,也不像它们的语法那样经常有特殊情况和意外。总之,Python是一种简单易用的、能够运行在多个平台下的计算机编程语言。

而microPython,是跑在MCU(微控制器)上的Python,通过内置的解释器执行py文件或者py命令,就可以让微控制器运行您想要的功能了。microPython和Python编程语言一样,在任何板子上都可以使用通用的API控制硬件底层,比如点亮 LED 灯,读取传感器信息, LCD 显示字符串、控制电机、连接网络、连接蓝牙等等。

如果说Arduino让创客摆脱了各种编程环境配置,那么micropython直接让创客摆脱了底层。命令行和解释执行,都是C语言所不具备的优势,运行micropython的soc,就类似一台完整的电脑,我们用python文件和命令行,轻松控制这台电脑中的一切。

microPython是人们连接各种任务的粘合剂,即便您不懂编程,不懂硬件,也可以通过它来控制MCU,要给microPython下一个最准确的定义,最好用一些实例来描述。

  • 您想当咖啡煮好时,咖啡壶就发出“吱吱”声提醒您吗?
  • 您想当邮箱有新邮件时,电话会发出警报通知您吗?
  • 想要一件闪闪发光的绒毛玩具吗?
  • 想要一款具备语音和酒水配送功能的X教授蒸汽朋克风格轮椅吗?
  • 想要一套按下快捷键就可以进行实验测试蜂音器吗?
  • 想为您的儿子自制一个《银河战士》手臂炮吗?
  • 想自制一个心率监测器,将每次骑脚踏车的记录存进存储卡吗?
  • 想过自制一个能在地面上绘图,能在雪中驰骋的机器人吗?
  • 想做一台机械臂,通过摇杆,您做什么动作,它就做什么动作吗?
  • 想过自制一个智能气象站,自动获取天气预报数据吗?

以上这些microPython都可以为您实现✊

# microPython的诞生

Damien George是一名计算机工程师,他每天都要使用Python语言工作,同时也在做一些机器人项目。有一天,他突然冒出了一个想法:能否用Python语言来控制单片机,进行实现对机器人的操控呢?

要知道 Python 是一款比较容易上手的脚本语言,而且有强大的社区支持,一些非计算机专业领域的人都选它作为入门语言。遗憾的是,它不能实现一些非常底层的操控,所以在硬件领域并不起眼。

Damien为了突破这种限制,他花费了六个月的时间来打造 MicroPython。它基于ANSI C,语法跟Python3基本一致,拥有自家的解析器、编译器、虚拟机和类库等。目前它支持基于32-bit的ARM处理器,比如说pyboard(STM32F405),支持NRF51822(micro:bit)、支持FireBeetle-ESP32、支持WiPy、支持ESP8266核心主控、支持CC3200等等。

# MicroPython 的特点

  • 语法简单,易于学习
  • 代码简洁,易于维护
  • 适用于物联网设备
  • 适用于嵌入式设备

# MicroPython 参考资料