21543浏览
查看: 21543|回复: 0

【chocho教程】micropython入门教程一

[复制链接]
本帖最后由 Chocho2017 于 2018-5-10 13:50 编辑

第一章:初识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的宽电压输入。
【chocho教程】micropython入门教程一图22

  • micro:bit
micro:bit是由英国广播公司BBC推出的可编程微型计算机,可以帮助用户学习基础编程知识。它最大的亮点在于支持图形化编程,支持microPython编程。micro:bit主控采用nrf51822芯片作为主控,IC包括256KB片上闪存,16KB RAM,32位ARM®Cortex™ M0 CPU,支持Bluetooth低功耗,在低功耗模式下,最低功耗可以达到0.6uA。
【chocho教程】micropython入门教程一图1【chocho教程】micropython入门教程一图2
而对于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控制器硬件。
【chocho教程】micropython入门教程一图3

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

【chocho教程】micropython入门教程一图4【chocho教程】micropython入门教程一图5

认识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)。
【chocho教程】micropython入门教程一图6
初次使用

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,直接运行,免去安装等繁琐事宜。
【chocho教程】micropython入门教程一图7

2.安装驱动
对于Win10以下系统,需要安装驱动软件,输入一下网址:
下载驱动文件,Win8以上的系统安装时先要禁用电脑数字签名。
【chocho教程】micropython入门教程一图8
找到其它设备>FireBeetle-xx,右击选择更新驱动程序软件
【chocho教程】micropython入门教程一图9
在弹出的对话框中选择手动查找并安装驱动程序软件
【chocho教程】micropython入门教程一图10【chocho教程】micropython入门教程一图11

打开FireBeetle主板驱动位置,就是刚刚下载保存的位置,选择FireBeetle-ESP32.inf文件,点击下一步。
注意: 这里FireBeetle-ESP32.inf文件保存在Arduino IDE的drivers文件夹下。
然后根据提示完成驱动文件的安装。

3.认识Arduino IDE
打uPyCraft IDE,就会出现uPyCraft IDE的编辑界面。
【chocho教程】micropython入门教程一图12
microPython IDE是支持microPython产品的软件编辑环境。简单的说就是用来写代码、下载代码、执行命令的地方。我们所搭建的硬件电路是辅助代码来完成的,两者是缺一不可的。如同人通过大脑来控制肢体活动是一个道理。如果代码就是大脑的话,外围硬件就是肢体,肢体的活动取决于大脑,所以硬件实现取决于代码。
microPython IDE基本也只需要用到上面标示出来的部分就可以了,上图大部分的白色区域就是代码的编辑区,用来输入代码的。注意,输入代码时,要切换到英文输入法的模式。下面的区域是命令输入和显示窗口,我们可以直接在这里进行命令的输入,类似于电脑的CMD命令窗口。

4.下载一个Blink程序
下载一个最简单的代码,既可以帮您熟悉下载程序的整个过程,同时也测试下板子好坏。FireBeetle主板上标有L的LED。这段测试代码就是让这个LED灯闪烁。
【chocho教程】micropython入门教程一图13
插上USB线,打开microPython IDE后,点击Tools->Serial,如果是第一次使用,就会弹出下载固件提示。
【chocho教程】micropython入门教程一图14 【chocho教程】micropython入门教程一图15
在新弹出来的Burn Firmware窗口中,选择esp32芯片,点击OK
【chocho教程】micropython入门教程一图16
下载完成后,重新连接串口,连接成功后,命令窗口会显示>>>符号,说明连接成功,这时就可以进行代码编写和命令输入等操作了。
【chocho教程】micropython入门教程一图17
通常,写完一段代码后,我们都需要检查一下,看看代码有没有错误。点击“校验”。
【chocho教程】micropython入门教程一图18
下图显示了代码编写错误,并且在命令窗口会提示代码哪里有错误。
【chocho教程】micropython入门教程一图19
       打开File->Examples->Basic->Blink.py
【chocho教程】micropython入门教程一图20
点击下载并运行按钮,进行下载,下载完成后,主板上面的等开始闪烁。
【chocho教程】micropython入门教程一图21
以上就是给microPython下载一个blink程序的整个过程。
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

为本项目制作心愿单
购买心愿单
心愿单 编辑
[[wsData.name]]

硬件清单

  • [[d.name]]
btnicon
我也要做!
点击进入购买页面
上海智位机器人股份有限公司 沪ICP备09038501号-4

© 2013-2024 Comsenz Inc. Powered by Discuz! X3.4 Licensed

mail