温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,汇文网负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。
网站客服:3074922707
MicroPython
入门
指南
智能硬件设计丛书 MicroPython 入门指南 邵子扬 编著 Publishing House of Electronics Industry 北京BEIJING 内 容 简 介 MicroPython 是近年国外开源硬件(也是智能硬件)范围最热门的主题之一,它使用 Python语言在嵌入式中编程,不需要了解底层寄存器、数据手册、厂家的库函数,大部分外设和常用功能都有自己的库,使开发和移植变得容易和快速。MicroPython 已经可以真正用于开发产品,这是其迅速吸引智能硬件开发者的原因。本书带领初学者逐步了解 MicroPython 的基础知识、硬件平台、开发技巧;采用大量浅显易懂的实例,使读者在实践中快速入门,学习如何使用MicroPython 做出很酷的东西,学会简单、有趣、强大的硬件和软件开发。这是一本实用的书,即使你没有任何编程知识,这本书也将带你踏上从第一步到高级项目的旅程。本书的读者可以是电子工程师、大中专院校信息类专业学生、电子爱好者,甚至中学生。未经许可,不得以任何方式复制或抄袭本书之部分或全部内容。版权所有,侵权必究。图书在版编目(CIP)数据 MicroPython 入门指南/邵子扬编著.北京:电子工业出版社,2018.1(智能硬件设计丛书)ISBN 978-7-121-32846-6 .M .邵 .软件工具程序设计指南 .TP311.561-62 中国版本图书馆 CIP 数据核字(2017)第 247847 号 策划编辑:曲 昕 责任编辑:曲 昕 印 刷:装 订:出版发行:电子工业出版社 北京市海淀区万寿路 173 信箱 邮编 100036 开 本:7201 000 1/16 印张:18 字数:294 千字 版 次:2018 年 1 月第 1 版 印 次:2018 年 1 月第 1 次印刷 定 价:59.00 元 凡所购买电子工业出版社图书有缺损问题,请向购买书店调换。若书店售缺,请与本社发行部联系,联系及邮购电话:(010)88254888,88258888。质量投诉请发邮件至 ,盗版侵权举报请发邮件至 。本书咨询联系方式:(010)88254468,。MicroPython 是近年开源社区中最热门的项目之一,它功能强大,使用简单,是创客、DIY 爱好者、工程师最好的工具,也可以用在专业开发中。相比另一个创客神器 Arduino,MicroPython 使用更加简单、方便,入门更快,性能也更好,更加适合初学者。它无须复杂的设置,不需要安装特别的软件和额外的硬件,也不用编译和下载,只要一个 USB 线,使用任何文本编辑器就可以进行编程。大部分硬件的功能,使用一个命令就能驱动,不用了解硬件底层就能快速开发,对于产品原型设计、软件移植非常有好处,让开发过程变得轻松,充满乐趣。和传统开发方法相比,MicroPython 开发产品原型的速度更快,程序也更容易实现模块化,更方便进行维护。和其他类似软件相比,MicroPython 是可以真正用在产品开发中的软件。MicroPython 以其开放的架构和 MIT 授权方式,在很短时间内就风靡世界,全世界有很多爱好者用它做出各种产品和有趣的应用。现在 MicroPython 已经被移植到了多种硬件平台上,如 STM32、ESP8266、ESP32、dsPIC33、RTL8195、CC3200 等,让我们有很多选择。本书可以作为学习 MicroPython 的入门读物,也可以作为工具书,查看各种API 的用法。本书先介绍 MicroPython 的起源,然后介绍 MicroPython 的基础知识和硬件平台,再重点介绍 STM32 和 ESP8266 上 MicroPython 的应用方法以及API,最后介绍了几个有趣的应用。通过本书读者可以快速了解并掌握MicroPython。本书作者作为 MicroPython 中文社区站长,长期致力于 MicroPython 的研究和推广。本书的内容是由中文社区活动资料、社区的中文教程、官网英文社区、作者翻译的官网文档等整理而来,希望通过这本书,让广大爱好者和工程师可以了解到国外最新的技术,也希望和更多的爱好者一起交流,共同进步。书中难免存在不足和错误,请广大读者指正。编著者 2017 年 10 月 V 第 1 章 MicroPython 简介001 1.1 MicroPython 是什么001 1.2 MicroPython 的历史001 1.3 MicroPython 的特点004 1.4 授权 005 第 2 章 基础知识006 2.1 Python3 和 MicroPython006 2.2 MicroPython 的系统结构007 2.3 安装驱动 008 2.4 常用终端软件010 2.5 MicroPython 的 REPL 014 2.5.1 REPL 的快捷键 014 2.5.2 使用 help()函数015 2.5.3 查看模块包含的变量和函数019 2.6 MicroPython 官方固件020 第 3 章 硬件平台介绍023 3.1 pyboard023 3.2 ESP8266028 3.3 其他可以运行 MicroPython 的硬件032 VI 第 4 章 pyboard 的使用 041 4.1 快速指南 041 4.2 从闪灯开始 047 4.3 按键的使用 049 4.4 GPIO 的使用 050 4.4.1 GPIO 的其他函数 052 4.4.2 GPIO 的别名 055 4.4.3 直接用端口名称 057 4.5 ADC 模数转换 057 4.6 DAC 数模转换 058 4.7 定时器(Timer)063 4.8 UART 068 4.9 I2C 071 4.10 SPI 074 4.11 外中断 076 4.12 USB_VCP 078 4.13 CAN 080 4.14 文件操作 084 4.15 小结 085 第 5 章 pyboard 的 Python 标准库和微库 086 5.1 内置函数 087 5.2 数组(array)088 5.3 复数运算(cmath)089 5.4 垃圾回收(gc)091 5.5 数学计算(math)092 5.6 数据流事件(select)095 VII 5.7 系统功能(sys)096 5.8 binary/ASCII 转换(ubinascii)098 5.9 集合和容器类型(ucollections)099 5.10 哈希算法库(uhashlib)100 5.11 堆队列算法(uheapq)101 5.12 输入/输出流(uio)102 5.13 JSON 编码解码(ujson)103 5.14“操作系统”基本服务(uos)103 5.15 正则表达式(ure)108 5.16 socket 模块(usocket)110 5.17 压缩和不压缩原始数据类型(ustruct)114 5.18 时间函数(utime)115 5.19 zlib 解压缩(uzlib)120 第 6 章 MicroPython 特别库121 6.1 简化的 BTree 数据库(btree)121 6.1.1 函数 121 6.1.2 方法 122 6.1.3 常量 123 6.1.4 例程 123 6.2 帧缓冲区操作(frambuf)124 6.2.1 类 124 6.2.2 构造函数125 6.2.3 绘制基本形状126 6.2.4 绘制文字126 6.2.5 其他方法126 6.2.6 常量 127 6.3 硬件相关函数(machine)127 6.3.1 复位函数127 VIII 6.3.2 中断相关函数 128 6.3.3 功率管理 128 6.3.4 常量 129 6.3.5 Class 129 6.4 访问和控制 MicroPython 内部(micropython)138 6.5 使用网络(network)140 6.5.1 class CC3K 141 6.5.2 class WIZNET5K 143 6.6 结构化访问二进制数据(uctypes)144 6.6.1 定义数据结构层 145 6.6.2 模块内容 146 6.6.3 结构说明和实例化结构对象 147 6.6.4 结构对象 147 6.6.5 限制 148 6.7 线程 148 6.7.1 基本函数 149 6.7.2 使用方法 149 第 7 章 pyboard 专用模块(pyb)151 7.1 时间相关功能 151 7.2 复位功能 152 7.3 中断相关函数 153 7.4 功耗管理 153 7.5 其他函数 154 7.6 类 158 7.6.1 加速度传感器(Accel)158 7.6.2 方法 158 7.6.3 例程 159 7.7 ADC 159 IX 7.7.1 构造函数159 7.7.2 方法160 7.7.3 ADCAll161 7.8 数模转换(DAC)163 7.8.1 构造函数163 7.8.2 方法 163 7.9 三线舵机驱动(servo)164 7.9.1 构造函数165 7.9.2 方法165 7.10 pyb 和 machine 的区别166 第 8 章 ESP8266167 8.1 快速指南 168 8.2 ESP8266 专用模块 esp176 8.3 MicroPython 标准模块和 machine 模块179 8.4 网络配置(network)179 8.4.1 函数 180 8.4.2 class WLAN180 8.4.3 构造函数180 8.4.4 方法 181 8.4.5 连接网络184 8.4.6 作为 http 服务器186 8.5 文件管理软件 189 8.5.1 WebREPL 189 8.5.2 uPyLoader193 8.5.3 MicroPython File Uploader 200 8.5.4 uPyCraft201 X 第 9 章 使用技巧和常见问题 206 9.1 不能正确识别出 PYBFlash 磁盘 206 9.2 安装虚拟串口失败 206 9.3 PYBFLASH 磁盘中文件损坏或乱码 207 9.4 恢复出厂设置 207 9.5 怎样升级 pyboard 的固件 208 9.5.1 Linux 下升级固件 210 9.5.2 Nucleo 开发板升级固件 211 9.6 升级 ESP8266 的固件 212 9.6.1 需要的软件 212 9.6.2 固件文件 212 9.6.3 进入升级模式 213 9.6.4 esptool.py 213 9.6.5 Flash Download Tools 215 9.6.6 uPyLoader 216 9.7 访问寄存器 217 9.7.1 方法 217 9.7.2 使用 STM32 的寄存器控制 LED 218 第 10 章 MicroPython 应用 219 10.1 计算圆周率 219 10.2 驱动 OLED 模块 222 10.3 温度传感器 DS1820 225 10.4 温湿度传感器 DHT11 228 10.5 气压传感器 BMP180 229 10.6 用热敏电阻测温度 237 10.7 在 SensorTile 上使用 MicroPython 242 XI 10.7.1 移植 MicroPython 固件 244 10.7.2 传感器驱动246 10.7.3 使用 SensorTile 制作开源智能怀表项目261 10.8 其他 MicroPython 项目链接270 附录272 第 1 章 MicroPython 简介 001 第 1 章 MicroPython 简介 1.1 MicroPython 是什么 可能很多读者还不太清楚 MicroPython 是什么?也有一些读者听说了MicroPython,但是还不太清楚它到底有什么用。从单词的组成看,它是由 Micro和 Python 两个部分组成,Micro 是微小