第一章:初识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的宽电压输入。

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。

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

1_2

2018-5-10 11:10 上传

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控制器硬件。

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

2018-5-10 11:17 上传

WiPy

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

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

2018-5-10 11:03 上传

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)。

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,直接运行,免去安装等繁琐事宜。

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

2018-5-10 10:45 上传

2.安装驱动

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

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

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

2018-5-10 10:45 上传

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

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

2018-5-10 10:45 上传

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

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

2018-5-10 11:27 上传

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的编辑界面。

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

2018-5-10 10:46 上传

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

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

4.下载一个Blink程序

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

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

2018-5-10 10:46 上传

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

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

2018-5-10 11:40 上传

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

2018-5-10 11:40 上传

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

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

2018-5-10 10:46 上传

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

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

2018-5-10 10:46 上传

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

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

2018-5-10 10:46 上传

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

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

2018-5-10 10:46 上传

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

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

2018-5-10 10:46 上传

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

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

2018-5-10 10:46 上传

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

micropython入门教程-【chocho教程】micropython入门教程一相关推荐

  1. [教程]西秦的ACE-JAVA教程一、JAVA MAVEN环境搭建

    首先是配置JDK 1.7      1.        到Oracle 官网下载 JDK 1.7 安装包.  下载地址:http://www.oracle.com/technetwork/java/j ...

  2. micropython入门教程-我的MicroPython入门之路

    我刚工作的时候,部门花大价钱买了一套基于FPGA的实时仿真系统,编译的时候看到.py的文件生成让我很感兴趣,从此开始接触python. 后来,我利用空闲时间开始学习python,近几年正是python ...

  3. python入门基础代码图-python入门代码指南教程书籍推荐2020总结全集汇总

    python入门代码指南教程书籍推荐2020总结全集汇总 记住,如果您想学习Python,市场上有很多可用的资源.这些可以包括书籍,甚至在线课程..在这篇文章中,我们为Python编写了最好的书籍,无 ...

  4. 什么是python基础教程-最好的Python入门教程是?

    Python教程领到手,学习不用愁!领! 作为一门编程语言,Python是属于入门比较简单的.所以身边不少人都选择了自学Python,而且网上相关资料也有很多,知识兔分享大量的Python教学课程,基 ...

  5. python入门视频教程-Python入门视频全套教程

    "人生苦短,我用python",相信很多想学python的同学都听过这句话.几个月前,IEEE Spectrum发布了第四届顶级编程语言交互排行榜,Python超过了Java.PH ...

  6. python入门代码大全-python入门代码指南教程书籍推荐2020总结全集汇总

    python入门代码指南教程书籍推荐2020总结全集汇总 记住,如果您想学习Python,市场上有很多可用的资源.这些可以包括书籍,甚至在线课程..在这篇文章中,我们为Python编写了最好的书籍,无 ...

  7. Arduino Mixly入门到精通教程

    目录 1.介绍 2.实验器材和相关资料下载链接 3. Uno Plus 开发板和米思齐软件 第1小节  简单介绍 Uno Plus 开发板 第2小节 Uno Plus 开发板的驱动安装方法 第3小节 ...

  8. python儿童入门教程视频-Python入门视频全套教程

    "人生苦短,我用python",相信很多想学python的同学都听过这句话.几个月前,IEEE Spectrum发布了第四届顶级编程语言交互排行榜,Python超过了Java.PH ...

  9. Android开发从入门到精通教程大总结(源码,教程,面试题,书籍,视频)

    老罗:  http://blog.csdn.net/column/details/androidluo.html http://xiaozu.renren.com/xiaozu/100692/3569 ...

  10. python入门代码指南教程书籍推荐2020总结全集汇总

    python入门代码指南教程书籍推荐2020总结全集汇总 记住,如果您想学习Python,市场上有很多可用的资源.这些可以包括书籍,甚至在线课程..在这篇文章中,我们为Python编写了最好的书籍,无 ...

最新文章

  1. redhat7企业版linuxlinux基本操作
  2. 盲盒(随机概率 + 最大公约数)
  3. leetcode350C++
  4. 信息系统状态过程图_操作系统中的增强型过程状态图
  5. java 打印hashmap值_HashMap中输出key-value值得方法
  6. 华为RSTP和MSTP相关配置命令
  7. 2020-10-28-Requests及爬虫清单
  8. 十二个常见的Web安全漏洞总结及防范措施
  9. 【管理】企业项目的OKR实战
  10. 斜线“\”与反斜线“/”应用场景的整理
  11. IntelliJ IDEA 永久破解
  12. 计算机机房防火门,弱电机房门为防火门吗
  13. 草地与石头模型边缘混合
  14. Vissim和Matlab联合仿真的实现方法
  15. python解释型语言的说明
  16. Ehab and Path-etic MEXs(思维+构造)
  17. Three.js 实时更新几何体的方法
  18. openstack研究意义_OpenStack如何推动CERN的研究
  19. 二级导航菜单使用方法以及常见问题
  20. 企业数字化转型系列报告 —— 低代码行业研究报告

热门文章

  1. 剑指offer面试题50. 第一个只出现一次的字符(哈希表)
  2. OpenCV探索之路(零):HighGUI——使用imwrite调整保存的图片质量
  3. 一个具自我复制功能的程序
  4. cookie与token对比(转)
  5. THINK PHP 学习笔记20171115
  6. ansible常用ad hoc操作
  7. 基于Senparc的二次封装
  8. 数据库水平切分的实现原理解析---分库,分表,主从,集群,负载均衡器(转)...
  9. 4.比赛F - Problem_F
  10. emacs24下使用jedi对python编程进行补全