

ESP32-MicroPython 开发环境 - orangeQWJ
source link: https://www.cnblogs.com/orangeQWJ/p/17762992.html
Go to the source link to view the article. You can view the picture content, updated content and better typesetting reading experience. If the link is broken, please click the button below to view the snapshot at that time.

ESP32-MicroPython 开发环境
Linux/Mac 下使用MicroPython开发ESP32
使用 esptool.py
将 MicroPython 刷入 ESP32 开发板涉及几个步骤。
1. 安装 esptool
如果你还没有安装 esptool.py
,你可以使用 pip
来安装它:
pip install esptool
2. 下载 MicroPython 固件
MicroPython - Python for microcontrollers
前往 MicroPython 的官方网站,找到 ESP32 的固件,然后下载合适的 .bin
文件。确保选择与你的 ESP32 开发板兼容的版本。
3. 连接你的 ESP32
使用适当的 USB 数据线将 ESP32 开发板连接到你的计算机。
4. 查找 ESP32 的串口
在终端或命令提示符中,使用以下命令查找 ESP32 的串口:
ls /dev/tty.*
记下 ESP32 的串口名,例如 /dev/ttyUSB0
5. 擦除现有固件
为了确保 MicroPython 正确地安装在 ESP32 上,首先擦除开发板上的现有固件:
esptool.py --port <YOUR_PORT> erase_flash
将 <YOUR_PORT>
替换为你在第4步中找到的串口名。
6. 刷入 MicroPython 固件
使用以下命令将 MicroPython 固件刷入 ESP32:
esptool.py --chip esp32 --port <YOUR_PORT> write_flash -z 0x1000 <PATH_TO_YOUR_MICROPYTHON_BIN_FILE>
替换 <YOUR_PORT>
为你的串口名,并将 <PATH_TO_YOUR_MICROPYTHON_BIN_FILE>
替换为你下载的 .bin
文件的路径。
7. 重启 ESP32
完成刷入操作后,断开并重新连接 ESP32 的电源,或使用开发板上的复位按钮进行复位。
现在,ESP32 上应该已经运行了 MicroPython,你可以使用串口工具screen
连接到 ESP32,并开始运行 MicroPython 命令。
上传MicroPython脚本
将写好的 Python 程序刷入 ESP32 来运行并不是直接将 Python 代码烧写到 ESP32 的 flash 中的常规做法。相反,你首先将 MicroPython 烧写到 ESP32,然后将你的 Python 脚本上传到 ESP32 上的文件系统,并在那里运行它。以下是如何做到这一点的步骤:
1. 安装 ampy
ampy
是 Adafruit 提供的一个工具,用于在与 MicroPython 兼容的设备上管理文件。你可以使用 pip
安装它:
pip install adafruit-ampy
2. 上传你的 Python 脚本
使用 ampy
将你的 Python 脚本放入 ESP32 的文件系统中。例如,假设你的脚本名为 main.py
:
ampy --port <YOUR_PORT> put main.py
将 <YOUR_PORT>
替换为 ESP32 的串口名(如 /dev/ttyUSB0
)。
3. 运行你的脚本
连接到 ESP32 的 REPL(Read-Evaluate-Print Loop):
- 在 Linux 或 macOS 上,你可以使用
screen
:
screen <YOUR_PORT> 115200
-
screen
基本使用当你使用
screen
连接到一个串口或其他设备后,你可以按照以下步骤断开连接:-
按
Ctrl
+A
键。这是screen
的命令键。 -
紧接着按
k
键。这将会提示你是否确定要杀死这个screen
会话。 -
最后,按
y
键确认。
这样就会结束
screen
会话并断开连接。另外,你也可以按
Ctrl
+A
然后按d
键来"分离"一个screen
会话,这样你可以在后台保留会话并返回到终端。要重新连接到这个会话,可以使用screen -r
命令。 -
一旦连接,你应该能够看到 MicroPython 的提示符 >>>
。要运行你刚刚上传的脚本,只需输入:
import main
注意:如果你的脚本名为 main.py
,ESP32 会在启动时自动运行它。如果你想要在设备启动时自动执行其他名称的脚本,你需要重命名该脚本为 main.py
。
示例 main.py 使板子自带的灯呼吸闪烁
from machine import Pin, PWM
import time
# 使用 ESP32 的板载 LED。大多数 ESP32 开发板的板载 LED 连接到 GPIO2。
LED_PIN = 2
# 创建一个 PWM 对象
led = PWM(Pin(LED_PIN), freq=1000)
def breathe():
while True:
# 逐渐增加亮度
for duty in range(0, 1024, 10):
led.duty(duty)
time.sleep(0.05)
# 逐渐减少亮度
for duty in range(1023, -1, -10):
led.duty(duty)
time.sleep(0.05)
breathe()
使用ampy管理文件
使用ampy管理文件系统中的文件
ampy
是由 Adafruit 开发的一个工具,用于在与 MicroPython 兼容的板上管理文件。下面是如何使用 ampy
进行文件管理的常见命令:
1. 列出板上的所有文件
要列出板上的所有文件,你可以使用 ls
命令:
ampy --port <YOUR_PORT> ls
2. 上传文件到板上
要将文件上传到板上,使用 put
命令:
ampy --port <YOUR_PORT> put <LOCAL_FILE>
例如,要上传名为 main.py
的文件,使用:
ampy --port <YOUR_PORT> put main.py
3. 从板上读取文件
要从板上读取文件并将其内容打印到终端,使用 get
命令:
ampy --port <YOUR_PORT> get <REMOTE_FILE>
如果你还想将其保存到本地文件,可以:
ampy --port <YOUR_PORT> get <REMOTE_FILE> <LOCAL_FILE>
4. 删除板上的文件
要删除板上的文件,使用 rm
命令:
ampy --port <YOUR_PORT> rm <REMOTE_FILE>
5. 创建目录
要在板上创建目录,使用 mkdir
命令:
ampy --port <YOUR_PORT> mkdir <DIRECTORY_NAME>
6. 执行脚本并查看输出
你可以使用 run
命令来执行板上的 MicroPython 脚本并看到其输出:
ampy --port <YOUR_PORT> run <SCRIPT_NAME>
-
在使用
ampy
之前,确保已经断开了其他对板子的连接(例如screen
,),否则ampy
可能无法与板子通讯。 -
<YOUR_PORT>
是你的设备连接的串口。例如/dev/ttyUSB0
。
ampy
为管理 MicroPython 板上的文件提供了简单而直接的方法。如果你经常使用相同的串口,你也可以考虑在 .bashrc
或 .bash_profile
中设置 AMPY_PORT
环境变量,这样你就不必每次都指定 --port
参数了。
特殊文件 boot.py main.py
在 ESP32 上运行 MicroPython 时,boot.py
和 main.py
是两个特殊的文件,它们在启动过程中自动执行。它们之间的主要关系和区别如下:
1. 执行顺序:
-
boot.py: 当 ESP32 上的 MicroPython 被启动时,首先执行的是
boot.py
。它的主要目的是进行初始化操作,例如设置无线网络连接、配置一些硬件参数或其他任何需要在程序运行之前进行的设置。 -
main.py: 在
boot.py
执行完毕后,main.py
将被执行。这是你的主应用程序或脚本,通常用于运行你的项目的主要功能或代码。
2. 用途:
-
boot.py: 由于它是首先执行的,
boot.py
主要用于设置那些只需要配置一次的东西,如 Wi-Fi 设置或其他系统级初始化。在某些情况下,为了安全起见,你可能想在这里设置异常处理,以确保无论main.py
中发生什么,都不会影响到系统的正常启动。 -
main.py: 这是你的主程序代码,可能包括处理循环、事件响应或任何你的项目需要的功能。
Recommend
-
41
0x00 前言 之前看到一篇文章是关于TPYBoard v102控制OLED屏显示的,看到之后就想尝试一下使用OLED屏来显示中文。最近利用空余时间搞定了这个实验,特此将实验过程及源码分享出来,方便以后使用。 0x01 实验器材...
-
11
esp32 micropython 之旅 03 webrepl
-
17
esp32 micropython using uPycraft IDE 2020-03-24 | 2020-04-09 ...
-
9
esp32 micropython 之旅 01 环境搭建
-
2
1. 之前的尝试(失败的尝试)# 咸鱼买了3块ESP32开发板。背面写了NODEMCU v1.1,好像这玩意可以直接写lua,也可以刷Micropython写python,还可...
-
5
首先下载Arduino IDE 然后,打开Arduino IDE,在"工具-开发板管理器"里面搜索esp32下载最新版本,点击安装 在国内,这一步就出问题了。。。 无奈只能手动安装
-
2
MacBook M1配置ESP32开发环境 发表于2022-10-08 兴趣使然,斥巨资2...
-
5
V2EX › 优惠信息 9.9 的 ESP32-C2 开发板 ...
-
5
ESP32-MicroPython without Thonny
-
10
Ubuntu installation on a RISC-V virtual machine using a server install image and QEMU ...
About Joyk
Aggregate valuable and interesting links.
Joyk means Joy of geeK