分享

MicroPython入门指南

 阅读与探究 2019-08-06

Python是一种脚本语言,是一款非常容易使用的脚本语言,语法简介、使用简单、功能强大、容易扩展。有非常多的库可以使用。网络功能和计算功能也很强。方便的和其他语言配合使用。完全开源,受到原来越多的开发者青睐。不过由于受到硬件成本、运行性能、开发习惯等原因。没有在通用嵌入式方面得到太多应用。所以microPython应运而生。

MicroPython 可以在多种嵌入式硬件平台上运行,目前已经有STM32,ESP8266/ESP32、 CC3200、 dsPIC33、 MK20DX256、 nRF51/nRF52、 MSP432、XMC4700等多个平台,而且还有很多开发者在尝试将MicroPython移植到更多硬件上。这些平台中,功能最完善成熟的是STM32和ESP8266这两大硬件平台,这也是目前最主要的应用平台。通过这两大硬件平台,就可以掌握MicroPython的主要用法,下面就给大家详细介绍。

ESP8266

最近几年,乐鑫的ESP系列芯片和ESP8266模块以其超高的性价比,在WiFi模块市场异军突起,在物联网、智能家庭、创客、DIY等领域中得到广泛的应用。
与传统方式MCU加WIFi收发器的结构相比,ESP8266的硬件上虽然也是两颗芯片(ESP8266加Flash芯片),但是外围元件少,因此结构简单,成本也更低。ESP8266支持多种开发方式,如AT命令、SDK/C++、Arduino、Lua、Javascript、 MicroPython 等。
ESP8266的主要技术参数如下。
·频率范围:2.4GHz~2.5GHz(2400MHz~2483.5MHz)
发射功率:最大20dBm
蓝花路3H148由转

接收灵敏度:802.11b:-91dbm(11Mbps)
802.11g:-75dbm(54Mbps)
hell
802.11 n:-72dbm(MCS7)
· CPU : Tensilica L106 32 bit 微控制器
·工作电压:2.5V~3.6V
·平均工作电流:80mA
WiFi模式:Station/SoftAP/SoftAP+Station
安全机制:WPA/WPA2
·加密类型:WEP/TKIP/AES

应用:

家用电器
家庭自动化
对处1474年610058123简早好景山UOM
智能插座、智能灯
而中盛实开
Mesh网络
工业无线控制
婴儿监控器
IP摄像机
收费专用
传感器网络
可穿戴电子产品
无线位置感知设备
安全ID标签
无线定位系统信标
与pyboard不同,MicroPython官方并没有推出一款专门的ESP8266开发板,而是使用了Adafruit Feather HUZZAH开发板作为基础硬件平台。不过它也适合大部分的ESP8266开发板,因为这些开发板的基本硬件结构都是类似的。

2 . NodeMCU

NodeMCU也是较早的ESP8266物联网开发板,它最早是因为可以使用Lua开发程序而著名。相关资料链接为:https://github.com/nodemcu/nodemcu-firmware .
3.ESP8266 机智云开发板
安信可为机智云设计的开发板可以方便地连接机智云的网络。它分为上下两层结构,上面是ESP8266模块、LDO和一个5050的RGBLED,下层是USB转串口。
4.小e智能硬件开发平台
小e智能硬件开发平台是易通星云旗下第一款物联网智能硬件开发平台,也是国内率先支持微信语音控制的智能硬件平台。它带有OLED、DHT11温湿度传感器、气压传感器、红外等功能。
5.ESP-12系列模块
除了前面介绍了一些ESP8266开发板,其实我们也可以用ESP-12模块(参见图3.5)自己动手设计制作适合需要的开发板。比如增加串口、各种传感器、电池和电源管理功能,使用液晶显示等。这样制作的ESP8266开发板,可以更满足特殊要求。

 

升级ESP8266的固件

需要的软件
升级ESP8266的Flash,需要准备下面几种软件之一:
1、esptool.py;
2、乐鑫官方的 Flash Download Tools;
3、uPyLoader;
4、uPyCraft。
不需要下载全部的软件,只需要选择一种适合的软件。
升级ESP8266的固件时,需要两个步骤:
(1)完全擦除Flash;
(2)写入新的固件文件。
如果不清除Flash,写入新固件后,很容易出现乱码问题,因此升级必须先清Flash。清除后就可以使用任意一个软件升级固件了。
注:Flash Download Tools 不带有清除 Flash 的功能。

进入升级模式

对于ESP3266,上电后有两种状态:升级模式和正常运行模式。这两种模式是在上电时检测3个GP10的状态而确定的(参考表3.1)。升级模式和运行模式的区别在于GP100,如果GP100是高电平,就是进入运行模式,否则进入升级模式。
对于大部分ESP8266开发板,需要用户控制才能进入升级模式,通常开发板上有一个专门的Flash按钮,在复位时按下Flash按钮就可以进入升级模式。少数开发板可以通过USB芯片提供的DTR或RTS信号,控制开发板自动进入升级模式。
无论是清除Flash还是升级程序,都需要进入升级模式后才能进行。升级的顺序是先让开发板进入升级模式,然后运行升级软件,下载固件。

esptool.py

esptool.py是一个命令行方式的工具,可以运行在Windows、Linux、Macos操作系统上。使用它必须安装Python2(不能使用Python3),然后通过pip进行安装。如果你同时安装了Python2和Python3,就需要指定用pip2进行安装。此外还需要安装pyserial,因为升级是通过串口发送数据和命令的。
pip2 install esptool pyserial
esptool.py的基本使用方法是:
esptool . py --port PORT command value
需要用--port指定使用的串口号,PORT就代表了串口参数。command和value代表具体操作和参数,更多帮助可以通过esptool.py--help查看。注意命令是区分大小写的。
从功能上来说,eptool.py功能是最多的,但是它完全通过命令行方式使用,操作比较复杂,需要用户熟悉各种命令的用法和相关参数。
注:使用esptool.py时,如果没有将Python2的目录添加到系统路径,就需要自己指定Python2的目录才能运行。

1.擦除Flash

通过擦除命令erase flash 就可以擦除Flash,如xia。
esptool.py--port COM5 erase_flash

  1. D: \dowmload>esptool.py --port COM37 erase_flash
  2. Bellool . Py V1 . 3
  3. our Cesanta flasher stub...
  4. Frasing Flash ( this may take a while ) ...
  5. Crase took 11.5 seconds
  6. D: Idormload>

清除 flash 时,如果清除的速度太快时(与操作系统版本有关),有可能并没有完全清除,可以尝试多清除几次。正常清除一次Flash,通常需要5~15秒。有的软件是通过写入空白文件到Flash进行清除,使用的时间会更长。

2.写入固件

通过 write flash 命令就可以升级固件,最少需要提供两个参数,写入地址(这里是0)和固件文件,如:
esptool.py--port coms write_flash 0 esp8266-20170607-v1.9-25.bin

3.读取固件

除了esptool.py外,大部分软件都没有提供读取程序的功能。使用read flash就可以方便读取固件,并保存到文件。这个命令需要三个参数,起始地址、长度、文件名,如所示。
esptool . py --port COM5 read flash 0 600000 1 . bin

Flash Download Tools


Flash Download Tools 是乐鑫官方提供的下载软件,提供了基本的程序下载功能,目前它只有Windows系统的版本。
运行软件后,首先出现的是选择型号,选择第一项就是ESP8266(第二项ESP8285 是内部集成了 1MB Flash 的 ESP8266,不是太常用),乐鑫官方下载
件界面如图9.7所示。
第近久软件后需要先选择固件文件,并将地址设置为0,然后选择串口,其
的参数可以使用默认值先进入升级模式,然后按下START键就会开始升级。注意Flash DownloTools没有Flash清除功能,需要用esptool.py进行清除。

其他MicroPython项目链接

 基于pyboard 的飞行控制器
https://github.com/Sokrates80/air-py
https://github.com/wagnerc4/flight_controller
micro:bit 的 Python 图形化编程:
https://github.com/bbcmicrobit/PythonEditor
· PythonEditor 图形化保存中文网站:
http://
· 基于 MicroPython 的开源机器视觉项目
https:///
·用于发明和原型创作的可编程模块
http://www./
·使用ESP8266和Nokia5110制作生命游戏
https://github.com/mcauser/MicroPython-ESP8266-Nokia-5110-Conways-Game-of-Life
·使用ESP8266的WiFiBoy Dev Kit
http://wifiboy./

hackaday上的各种MicroPython项目
https:///projects?tag-micropython
·集成Lora、BLE、WiFi的LoPy
https://www./product/lopy/
·集成Lora、BLE、LTE的LoPy
https://www./product/gpy/
·集成WiFi、Bluetooth、LoRa、Sigfox和双模LTE-M的FiPy
https://www./product/fipy/

 

 

    本站是提供个人知识管理的网络存储空间,所有内容均由用户发布,不代表本站观点。请注意甄别内容中的联系方式、诱导购买等信息,谨防诈骗。如发现有害或侵权内容,请点击一键举报。
    转藏 分享 献花(0

    0条评论

    发表

    请遵守用户 评论公约

    类似文章 更多