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: 这是你的主程序代码,可能包括处理循环、事件响应或任何你的项目需要的功能。
ESP32-MicroPython 开发环境的更多相关文章
- ESP32-S3 搭建 micropython 开发环境,固件编译,烧录
简述 上手了一块乐鑫科技官方推出的ESP32-S3-DevKitC-1开发板,发现 ESP32-S3 的综合性能较比前两代有着非常明显的提升,wifi与蓝牙功能,更充足的外设扩展能力,可以看出其在未来 ...
- deepin下安装ESP32的开发环境
deepin下安装ESP32的开发环境 本文章用于记录在deepin下安装ESP32的开发环境,前几日在CentOS7之下实现过,但CentOS7对于我这个Linux新手太不友好,于是重装deepin ...
- ESP32 Eclipse开发环境构建与问题总结
搞了一个多星期的eclipse环境构建,终于成功了,在此记录下期间遇到的问题. 以下为遇到的几点问题的解决方法: 1.使用的版本为V3.1版本,版本时间为2018年09月07日,可以直接在以下路径下载 ...
- ESP32 windows开发环境的搭建(官方方法)
首先保证电脑中的已经下载了git客户端,没有的自行去https://git-scm.com/下载 STEP1: 获得编译工具链 Windows没有内置的“make”环境,所以安装工具链你将需要一个兼容 ...
- Mac Arduino ESP8266 ESP32 搭建开发环境
目录 1.安装Arduino 2.搭建开发板管理器 3.可能出现的错误 1.安装Arduino Arduino下载. 官方下载地址:Arduino官方网站 Arduino中文社区:下载地址 安装方式: ...
- ESP32与MicroPython入门-01 搭建开发环境
ESP32简介 ESP32 是上海乐鑫公司开发的一款比较新的32位微控制器,它集成了WiFi及蓝牙等功能,有着性能稳定.功耗低.价格低廉等特点,非常适用于物联网开发,但也可以作为普通的MCU使用. E ...
- ubuntu 14.04下搭建esp32开发环境
esp32是乐鑫出品的一款集成了wifi和蓝牙的集成模块,板上自带两个哈佛结构的Xtensa LX6 CPU双核处理器,本文主要讲解如何在linux下搭建其编译开发环境. 首先ctrl+alt+t打开 ...
- ESP32 LyraT音频开发板试玩(一):搭建开发环境
我是卓波,很高兴你来看我的博客. 系列文章: ESP32 LyraT音频开发板试玩(一):搭建开发环境 ESP32 LyraT音频开发板试玩(二):播放音乐 关于ESP32的开发环境搭建,官方有教程, ...
- ESP32 开发之旅① 走进ESP32的世界 安装开发环境
1.前言 欢迎大家来到ESP32的世界,从现在开始,笔者将带领大家慢慢揭开ESP32神秘的面纱. 在学习ESP32之前,博主希望读者能有ESP8266的学习基础(ESP32 Wifi模 ...
- ESP32的Linux开发环境搭建
1. 官网教程地址 https://docs.espressif.com/projects/esp-idf/zh_CN/v4.0.1/get-started/linux-setup.html 2.官网 ...
随机推荐
- virt-install 使用 qcow2格式虚拟机镜 、macvtap网卡
安装虚拟机 这里使用 amazn2 虚拟机镜像安装,根据官网文档,需要预先配置一个 seed.iso 文件 参考文档:https://docs.aws.amazon.com/zh_cn/AWSEC2/ ...
- 2021-3-9 excel导出
public void ExportExcel(DataTable dt) { //要添加epplus的nuget包 ExcelPackage.LicenseContext = LicenseCont ...
- Mysql高级4-索引的使用规则
一.最左前缀法则 如果索引了多列(联合索引),要遵守最左前缀法则.最左前缀法则指的是查询从索引的最左列开始,并且不跳过索引中的列,如果跳跃某一列,索引将部分失效(后面的字段索引失效) 示例1:acco ...
- Power AutoMate: 变量专栏
背景 本篇对Power AutoMate的变量功能进行记录与讲解 设置变量 拖拽功能块并赋值 测试一些数据类型 测试中发现与程序中的类型,并没有什么差别 截断数字 对浮点数进行一些操作 选择需要操作的 ...
- Wampserver64 报错:无法启动此程序,因为计算机中丢失 MSVCR110.dll。尝试重新安装该程序以解决此问题。
缺少环境配置, 程序下载地址如下: https://www.microsoft.com/zh-cn/download/confirmation.aspx?id=30679 点击下载,下载完成后,双击程 ...
- .NET周刊【7月第5期 2023-07-30】
国内文章 PaddleSharp:跨越一年的版本更新与亮点 https://www.cnblogs.com/sdflysha/p/20230724-paddlesharp-in-a-year.html ...
- [POI2007]GRZ-Ridges and Valleys 题解
(2022-12-28 ) AcWing 1106 洛谷 P3456 题目大意 找出一个图中所有大于(或小于)周围相邻的非连通块点的所有连通块个数. 就是说,对于一个连通块: 如果它周围的点都低于它, ...
- 你一定要知道的iterator和generator
generator是一种特殊的iterator,generator可以替代iterator实现,使代码更为简洁 什么是iterator iterator叫做迭代器,是用来帮助某个数据结构进行遍历的对象 ...
- centos7安装influxdb2
前言 InfluxDB是一个由InfluxData开发的开源时序型数据库,专注于海量时序数据的高性能读.高性能写.高效存储与实时分析等,广泛应用于DevOps监控.IoT监控.实时分析等场景. 服务器 ...
- 让 GPT-4 给开源项目 GoPool Review 社区贡献者的 PR - 每天5分钟玩转 GPT 编程系列(5)
目录 1. 嘚瑟一下 2. 言归正传 2.1 GoPool 的第一个 PR 2.2 祭出 GPT-4 2.3 问问 GPT-4 怎么看这个 PR 2.4 让 GPT-4 重构代码 3. 打完收工 1. ...