CoreESP32:Micropython Getting started/zh
目录
引言&概述
MicroPython是脱胎于Python, 是一个叫Damien George的人花费数月时间打造的, 基于ANSI C(C语言标准), 然后在语法上又遵循了Python的规范, 主要是为了能在嵌入式硬件上(这里特指微控制器级别)更易于的实现对底层的操作.
截止到目前, 已经有不少嵌入式硬件成功移植了Micropython, 如:
- pyboard
- esp8266
- ESP32
- WiPy
- Espruino Pico
- STM32F4 Discovery
本教程就是教大家如何在Microduino-CoreESP32开发板上运行micropython
应用背景
- 在Microduino-CoreESP上用python语言编程开发
如何安装官方micropython for ESP32固件
烧录方式
- flash_download_tools工具烧录
- esptool烧录
flash_download_tools工具烧录
烧写固件所用工具
- flash_download_tools
- 下载地址:https://www.espressif.com/en/support/download/other-tools?keys=&field_type_tid%5B%5D=13
下载flash_download_tools并解压,打开后如下:
烧写固件步骤: 点击ESPFlashDownloadTool_v3.6.4.exe 选择ESP32 DownloadTool 固件选择esp32Python.bin 使用FLASH_DOWNLOAD_TOOLS时,按照下面参数配置,重点是地址为0x1000,以及选中DoNotChgBin选项,并勾选前面的对勾
USB线连接MiroRobot并开机,串口就会识别,选择识别的串口 点击[Start],就会有进度条显示烧录过程
到此,micropython固件就成功烧写进MicroRobot里边了
esptool烧录
- 烧写固件所用工具
- python:首先安装python
- esptool:python pip install esptool
- 检查是否连接设备:D:\Python27\Scripts>esptool --port COM9 flash_id
- 清空缓存(可选):D:\Python27\Scripts>esptool --port COM9 erase_flash
- 烧写固件:D:\Python27\Scripts>esptool --chip esp32 --port COM9 write_flash -z 0x1000 C:\Users\ray\Desktop\esp32-20171211-v1.9.2-445-g84035f0f.bin
到此,micropython固件就成功烧写进CoreESP里边了
测试方法
你可以用串口调试工具测试一下:
安装OpenIOE IDE PRO
下载地址:http://openide.celerstar.com/
这里有一些microduino的驱动库可以使用:https://github.com/radiumray/micropythonESP32 包括:
- 蜂鸣器
- MicroRobot
- LM75温度
- SHT2X温湿度
- ws2812彩灯
- OLED屏幕
- SD卡
安装uPyCraft IDE
你可以通过串口工具一行一行的写,显然这样效率太慢了 这里有一个工具upycraft:
https://dfrobot.gitbooks.io/upycraft/content/ 下载安装
连接设备 选择你的设备分配的COM口:Tools->Serial->COM9
选择板卡:Tools->ESP32
新建一个文件,输入以下内容:
import os
print(os.listdir())
点击运行会看到以下结果:
其中
- import os 的作用是调用设备的内部文件系统库
- print(os.listdir()) 的作用是打印出内部文件系统里的所有文件
你可以看到
- boot.py 设备的bootloader文件,一般不要去修改它
- hhh.py 这就是我刚才新建的py
此外,如果你新建一个main.py的话,设备就会在上电后自动运行,不用接一个USB线点击运行了。
同时也可以在左边栏device里看到你的设备的内部文件系统有什么文件。
内部文件系统的容量是有限的,大小为flash的大小,不过可以通过外接SD卡模块来解决容量问题
示例参考
有一些示例程序可以参考:
你要用到的驱动库首先要下载到设备的内部文件系统中才可以import,可以通过Tools->Download来下载
Download只能把.py的文件下载到设备里
还有一个比较好用的python工具可以用来下载任何类型的文件:https://learn.adafruit.com/micropython-basics-load-files-and-run-code/install-ampy
确保你电脑的python安装了pip,然后直接在命令行执行pip install adafruit-ampy
- adafruit -ampy:python pip install adafruit -ampy
就安装了此工具,用法如下:
- ampy --port COM9 run test.py 运行你电脑里的test.py
- ampy --port COM9 get test.py 读出
- ampy --port COM9 get test.py hhh.py 读出test.py 到你的电脑里,名字是hhh.py
- ampy --port COM9 mkdir foo 创建文件夹foo
- ampy --port COM9 mkdir /foo/bar 在foo文件夹里再创建一个bar文件夹 (如果没有foo就不成功)
- ampy --port COM9 ls 列出设备flash里的文件
- ampy --port COM9 ls /foo 列出foo文件夹里的文件
- ampy --port COM9 rm test.py 删除test.py
- ampy --port COM9 rm /foo/bar 删除bar文件夹里的文件
- ampy --port COM9 rmdir /foo/bar 删除bar文件夹
- ampy --port COM9 put test.py /main.py 把电脑上test.py的内容写到设备的main.py中