CoreESP32:Micropython Getting started/zh

来自Microduino Wikipedia
Radiumray9@gmail.com讨论 | 贡献2018年5月17日 (四) 05:12的版本 flash_download_tools工具烧录
跳转至: 导航搜索

引言&概述

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
MicropythonGettingStartFlashDownloadTools.png

下载flash_download_tools并解压,打开后如下:

MicropythonGettingStartFlashDownloadTools1.png

烧写固件步骤: 点击ESPFlashDownloadTool_v3.6.4.exe 选择ESP32 DownloadTool 固件选择esp32Python.bin 使用FLASH_DOWNLOAD_TOOLS时,按照下面参数配置,重点是地址为0x1000,以及选中DoNotChgBin选项,并勾选前面的对勾

MicropythonGettingStartFlashDownloadTools2.png
MicropythonGettingStartFlashDownloadTools3.png

USB线连接MiroRobot并开机,串口就会识别,选择识别的串口 点击[Start],就会有进度条显示烧录过程

MicropythonGettingStartFlashDownloadTools4.png
MicropythonGettingStartFlashDownloadTools5.png

到此,micropython固件就成功烧写进MicroRobot里边了

esptool烧录

  • 烧写固件所用工具
    • python:首先安装python
    • esptool:python pip install esptool
  • 检查是否连接设备:D:\Python27\Scripts>esptool --port COM9 flash_id
MicropythonGettingStart1.png
  • 清空缓存(可选):D:\Python27\Scripts>esptool --port COM9 erase_flash
MicropythonGettingStart2.png
  • 烧写固件:D:\Python27\Scripts>esptool --chip esp32 --port COM9 write_flash -z 0x1000 C:\Users\ray\Desktop\esp32-20171211-v1.9.2-445-g84035f0f.bin
MicropythonGettingStart3.png

到此,micropython固件就成功烧写进CoreESP里边了

测试方法

你可以用串口调试工具测试一下:

MicropythonGettingStart4.png

安装uPyCraft IDE

你可以通过串口工具一行一行的写,显然这样效率太慢了 这里有一个工具upycraft:

https://dfrobot.gitbooks.io/upycraft/content/ 下载安装

连接设备 选择你的设备分配的COM口:Tools->Serial->COM9

MicropythonGettingStart5.png

选择板卡:Tools->ESP32

MicropythonGettingStart5 1.png

新建一个文件,输入以下内容:

import os
print(os.listdir())

点击运行会看到以下结果:

MicropythonGettingStart6.png

其中

  • import os 的作用是调用设备的内部文件系统库
  • print(os.listdir()) 的作用是打印出内部文件系统里的所有文件

你可以看到

  • boot.py 设备的bootloader文件,一般不要去修改它
  • hhh.py 这就是我刚才新建的py

此外,如果你新建一个main.py的话,设备就会在上电后自动运行,不用接一个USB线点击运行了。

同时也可以在左边栏device里看到你的设备的内部文件系统有什么文件。

MicropythonGettingStart7.png

内部文件系统的容量是有限的,大小为flash的大小,不过可以通过外接SD卡模块来解决容量问题

示例参考

有一些示例程序可以参考:

MicropythonGettingStart8.png

这里有一些microduino的驱动库可以使用:https://github.com/radiumray/micropythonESP32 包括:

  • 蜂鸣器
  • LM75温度
  • SHT2X温湿度
  • ws2812彩灯
  • OLED屏幕
  • SD卡

你要用到的驱动库首先要下载到设备的内部文件系统中才可以import,可以通过Tools->Download来下载

MicropythonGettingStart9.png

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中