ESP32:搞定终端下MicroPython编程
前言
今天第一次真正给板子刷上MicroPython,因为我出门只带了几天前说的刚买那个中柏电脑,刷成了纯linux系统,就想试试从开源工具刷写开发板。
困扰
按照流程很轻松就能用esp-tool.py清空flash,然后刷上固件,但怎样编写程序就没有资料了。有教程说可以挂载成u盘一样的设备,但至少这个板子不行。经过疯狂寻找,正当我快放弃时找到这样一篇文章[1]。
进而通过向REPL方向的寻找,确定了一种只需linux终端就可用的方法,而且无需Thonny
(但是需要adafruit-ampy :P)
简要流程
picocom
- sudo apt-get install picocom #该步骤安装的是串口终端助手,在[1]中有提到
- 配置串口权限,文末附上参考脚本,记得变通
- sudo picocom -b 115200 /dev/ttyUSB0 #串口连接开发板
- 注意看picocom给出的信息:Type [C-a] [C-h] to see available commands 就是先按ctrl+a,再按ctrl+h
- 连接后按几下回车才会出现熟悉的REPL界面
ampy
- pip给出提示大概意思就是不要用sudo,所以我用的是 pip install adafruit-ampy
- ampy –version 我用不了,不造是为虾米,反正不粽药啦
- 但是ampy –help 有用,可以看到具体操作和linux shell 类似,mkdir、ls、rm、rmdir都不用说了。
- ampy –port /dev/ttyUSB0 run led.py #跑当前目录下的led.py文件[5],ctrl+c没法打断
- ampy –port /dev/ttyUSB0 reset #给板子软重启,如果死循环没写到main.py就能打断了。但如果写到main.py的话据说[1]只能重刷固件了
注意
picocom 开启时用不了ampy,因为picocom会占用串口,按ctrl+a,之后ctrl+x退出picocom
参考
配置串口权限的脚本:
1 |
|
还有如下几篇文章以供参考:
- http://yhhuang1966.blogspot.com/2019/07/micropython-on-esp32.html ↩
- https://www.cirmall.com/bbs/thread-102620-1-1.html 介绍了picocom和ampy两种方法,对从底层了解和开发板通信帮助很大 ↩
- https://docs.micropython.org/en/v1.8.3/esp8266/esp8266/tutorial/repl.html 官方文档,介绍了REPL的基本操作 ↩
- https://docs.micropython.org/en/v1.8.3/esp8266/esp8266/tutorial/filesystem.html#creating-and-reading-files 介绍了文件和文件夹的增删,但没有改查 ↩
- led.py↩
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18'''
功能介绍: LED闪烁例程
'''
import utime
import machine
# 声明一个引脚 例如 22 作为我们特定开发板板载LED的引脚
led_pin = machine.Pin(22, machine.Pin.OUT)
for i in range(20):
# 点亮LED -> 高电平
led_pin.value(1)
# 延时 500ms
utime.sleep_ms(500)
# 关闭LED -> 低电平
led_pin.value(0)
# 延时500ms
utime.sleep_ms(500)
ESP32:搞定终端下MicroPython编程
https://zhaosn.github.io/2022/ESP32-pyinShell/