micropython入门教程-【chocho教程】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为了突破这种限制,他花费了六个月的时间来打造Micro Python。它基于ANSI C,语法跟Pyton 3基本一致,拥有自家的解析器、编译器、虚拟机和类库等。目前它支持基于32-bit的ARM处理器,比如说pyboard(STM32F405),支持NRF51822(micro:bit)、支持FireBeetle-ESP32、支持WiPy、支持ESP8266核心主控、支持CC3200等等。

pyboard

pyboard是microPython官方出的一款支持microPython的微控制器,采用stm32f405rg MCU主芯片,邮票孔设计,体积小巧。在性能方面,pyboard除了将stm32f405rg本身的外设延用出来,还拓展了微型SD卡插槽、三周加速度计(mma7660)。在小巧的pyboard上,设有29个GPIO,4个LED灯,板载3.3V LDO电源管理芯片,可以提供高达250mA的电流,3.6~16V的宽电压输入。

none.gif

1_1.png (102.54 KB, 下载次数: 13)

1_1

2018-5-10 11:13 上传

micro:bit

micro:bit是由英国广播公司BBC推出的可编程微型计算机,可以帮助用户学习基础编程知识。它最大的亮点在于支持图形化编程,支持microPython编程。micro:bit主控采用nrf51822芯片作为主控,IC包括256KB片上闪存,16KB RAM,32位ARM®Cortex™ M0 CPU,支持Bluetooth低功耗,在低功耗模式下,最低功耗可以达到0.6uA。

none.gif

1_2.png (47.74 KB, 下载次数: 12)

1_2

2018-5-10 11:10 上传

none.gif

1_3.png (38.46 KB, 下载次数: 11)

1_3

2018-5-10 11:14 上传

而对于micro:bit本身,还集成了5×5LED显示屏,两颗可编程按钮,加速度计、电子罗盘、温度计等丰富的传感器,并且提供了IO口可扩展接口,采用鳄鱼夹就可以连接,方便使用。

FireBeetle-ESP32

FireBeetle-ESP32全称是FireBeetle Board-ESP32微控制器,是由DFRobot基于Espressif ESP32主芯片开发的物联网、低功耗为控制器。FireBeetle-ESP32板载ESP-WROOM-32双核芯片,支持WiFi和蓝牙双模通信,外围兼容低功耗硬件设计,深度睡眠模式下功耗仅为10uA。FireBeetle-ESP32控制器还提供了3.7V锂电池接口,并可以通过USB口给锂电池充电。其次,在软件方面,已经支持WiFi和蓝牙功能的使用,支持I2S音频的解码,结合uPyCraft IDE,可以轻松完成物联网开发设计。值得说明的是,本书的microPython教程是基于FireBeetle-ESP32控制器硬件。

none.gif

1_4.png (114.29 KB, 下载次数: 13)

2018-5-10 11:17 上传

WiPy

WiPy是支持microPython编程、支持WiFi和蓝牙的开发板,定位于物联网应用的设计。WiPy控制器的核心采用Espressif ESP32芯片,其最大的特点在于体积小巧,支持蓝牙和WiFi,这点和DFRobot的FireBeetle萤火虫系列主板相似。

none.gif

1_5.png (52.47 KB, 下载次数: 16)

2018-5-10 11:03 上传

none.gif

1_6.png (52.68 KB, 下载次数: 8)

2018-5-10 11:03 上传

认识microPython

microPython支持的微控制器很多,本书采用的微控制器是DFRobot的FireBeetle萤火虫系列的ESP32微控制器,除了可以作为学习板来用之外,还可以直接应用于实际项目中,如自制一个可以远程控制的继电器开关。

先来简单的看下FireBeetle ESP32微控制器(后面简称主控板) 。下图中有标识的部分为常用部分。图中标出的主控板的I/O。其中主控板右边标有A0~A4的口可以作为模拟输入,标有其他丝印如CLK、SD0、SD1等是作为特殊用途的I/O,当主控板作为高级应用时会用到这些I/O口。

除了最重要的I/O口外,还有电源部分。FireBeetle主控板可以通过四种方式供电方式:USB供电、外接VCC的DC电源、锂电池供电、外接DC(4.5~6V)供电。除此之外,还有2个LED灯和1个复位按键,稍微说下2个LED。CHG是充电指示灯,如果没有插接锂电池(3.7V),CHG灯会以200ms的频率闪烁,这是充电芯片在检测是否有锂电池接上,如果插接了锂电池,就会一直常亮,表示正在充电(当然USB接口或者外接DC接口有电源输入),锂电池充满电后,CHG灯熄灭。L是接在数字口D9(IO2)上的一个LED,在下面一节会有个样例来说明的。TX连接到数字口D0(IO3),RX连接到数字口D1(IO1)。

none.gif

1_7.png (260.96 KB, 下载次数: 14)

2018-5-10 10:45 上传

初次使用

1.下载microPython IDE

目前支持microPython编程的IDE有很多,本书使用的IDE是DFRobot新开发的uPyCraft IDE,当前版本是V0.24,支持中文。打开网页输入网址 https://git.oschina.net/dfrobot/upycraft/raw/master/uPyCraft.exe进行下载。

下载完成后,将uPyCraft.exe保存在您的工作目录。uPyCraft IDE是一个可以直接运行的绿色可执行程序,双击uPyCraft.exe,直接运行,免去安装等繁琐事宜。

none.gif

1_8.png (79.06 KB, 下载次数: 12)

2018-5-10 10:45 上传

2.安装驱动

对于Win10以下系统,需要安装驱动软件,输入一下网址:

下载驱动文件,Win8以上的系统安装时先要禁用电脑数字签名。

none.gif

1_9.png (70.34 KB, 下载次数: 20)

2018-5-10 10:45 上传

找到其它设备>FireBeetle-xx,右击选择更新驱动程序软件。

none.gif

1_10.png (62.98 KB, 下载次数: 13)

2018-5-10 10:45 上传

在弹出的对话框中选择手动查找并安装驱动程序软件。

none.gif

1_11.png (44.45 KB, 下载次数: 14)

2018-5-10 11:27 上传

none.gif

1_12.png (51.22 KB, 下载次数: 11)

2018-5-10 11:27 上传

打开FireBeetle主板驱动位置,就是刚刚下载保存的位置,选择FireBeetle-ESP32.inf文件,点击下一步。

注意: 这里FireBeetle-ESP32.inf文件保存在Arduino IDE的drivers文件夹下。

然后根据提示完成驱动文件的安装。

3.认识Arduino IDE

打uPyCraft IDE,就会出现uPyCraft IDE的编辑界面。

none.gif

1_13.png (147.71 KB, 下载次数: 13)

2018-5-10 10:46 上传

microPython IDE是支持microPython产品的软件编辑环境。简单的说就是用来写代码、下载代码、执行命令的地方。我们所搭建的硬件电路是辅助代码来完成的,两者是缺一不可的。如同人通过大脑来控制肢体活动是一个道理。如果代码就是大脑的话,外围硬件就是肢体,肢体的活动取决于大脑,所以硬件实现取决于代码。

microPython IDE基本也只需要用到上面标示出来的部分就可以了,上图大部分的白色区域就是代码的编辑区,用来输入代码的。注意,输入代码时,要切换到英文输入法的模式。下面的区域是命令输入和显示窗口,我们可以直接在这里进行命令的输入,类似于电脑的CMD命令窗口。

4.下载一个Blink程序

下载一个最简单的代码,既可以帮您熟悉下载程序的整个过程,同时也测试下板子好坏。FireBeetle主板上标有L的LED。这段测试代码就是让这个LED灯闪烁。

none.gif

1_14.png (47.7 KB, 下载次数: 16)

2018-5-10 10:46 上传

插上USB线,打开microPython IDE后,点击Tools->Serial,如果是第一次使用,就会弹出下载固件提示。

none.gif

1_15.png (22.51 KB, 下载次数: 11)

2018-5-10 11:40 上传

none.gif

1_16.png (25.29 KB, 下载次数: 14)

2018-5-10 11:40 上传

在新弹出来的Burn Firmware窗口中,选择esp32芯片,点击OK。

none.gif

1_17.png (8.42 KB, 下载次数: 9)

2018-5-10 10:46 上传

下载完成后,重新连接串口,连接成功后,命令窗口会显示>>>符号,说明连接成功,这时就可以进行代码编写和命令输入等操作了。

none.gif

1_18.png (73.79 KB, 下载次数: 13)

2018-5-10 10:46 上传

通常,写完一段代码后,我们都需要检查一下,看看代码有没有错误。点击"校验”。

none.gif

1_19.png (9.89 KB, 下载次数: 11)

2018-5-10 10:46 上传

下图显示了代码编写错误,并且在命令窗口会提示代码哪里有错误。

none.gif

1_20.png (160.96 KB, 下载次数: 11)

2018-5-10 10:46 上传

打开File->Examples->Basic->Blink.py

none.gif

1_21.png (218.92 KB, 下载次数: 12)

2018-5-10 10:46 上传

点击下载并运行按钮,进行下载,下载完成后,主板上面的等开始闪烁。

none.gif

1_22.png (9.29 KB, 下载次数: 42)

2018-5-10 10:46 上传

以上就是给microPython下载一个blink程序的整个过程。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值