深夜提醒

现在是深夜,建议您注意休息,不要熬夜哦~

🏮 🏮 🏮

新年快乐

祝君万事如意心想事成!

share-image
ESC

ESP32 刷入 MicroPython 并点亮板载 LED

今天买了一套学习嵌入式的设备,准备学学新东西。一来是有兴趣,单纯捣鼓软件我觉得腻了,有了 AI 之后,软件前端、后端、App 开发都被干趴下了,我想看看 AI 操纵硬件已经支持到什么程度了。第二,带着孩子一起玩,小孩动手能力强,喜欢搭乐高,准备和孩子一起学习嵌入式开发,做做简单的能读蓝牙、联网的小硬件。未来是人工智能的天下,不学不行,逃不掉的。

先从手头的 ESP32 开始,跑上 MicroPython,让它闪一闪板载 LED。整个过程比想象中简单,记录一下关键步骤。

今天买的嵌入式学习设备

1. 准备材料

  • ESP32 开发板一块
  • USB 数据线(要能传数据)
  • 电脑(Linux)我是一台deepin 的小迷你主机上操作的,为啥选deepin,主要是懒,不想安装ubuntu debian 去折腾输入法啥的。
  • MicroPython 固件:从官方下载页选择 ESP32 GENERIC 版本

下载地址:https://micropython.org/download/ESP32_GENERIC/

我下载到的固件文件名类似:

ESP32_GENERIC-20260406-v1.28.0.bin

ESP32 开发板

2. 安装 esptool 并擦除 Flash

先用 Python 创建个临时虚拟环境安装 esptool

python3 -m venv .esptool_venv
source .esptool_venv/bin/activate
pip install esptool

把 ESP32 接上电脑,确认串口(一般是 /dev/ttyUSB0):

ls /dev/ttyUSB*

如果权限不够,先临时放开:

sudo chmod 666 /dev/ttyUSB0

让 ESP32 进入下载模式:

  1. 按住 BOOT 键不放。
  2. 按一下 EN/RST 复位键。
  3. 松开 BOOT 键。

然后擦除 Flash:

esptool --chip esp32 --port /dev/ttyUSB0 erase-flash

3. 烧录 MicroPython 固件

擦除完成后,把固件写到 0x1000 偏移处:

esptool --chip esp32 --port /dev/ttyUSB0 \
--baud 460800 write_flash -z 0x1000 \
/path/to/ESP32_GENERIC-20260406-v1.28.0.bin

烧录成功后会自动复位,ESP32 就进入 MicroPython 环境了。

MicroPython REPL 连接成功

4. 连接 REPL

pyserial 自带的 miniterm 连接串口,波特率 115200

python -m serial.tools.miniterm /dev/ttyUSB0 115200

Enter 后出现 >>>,说明 REPL 已经就绪。退出按 Ctrl + ]

5. 点亮板载 LED

大部分 ESP32 开发板的板载 LED 接在 GPIO2,直接在 REPL 输入:

from machine import Pin

led = Pin(2, Pin.OUT)
led.on()

如果灯亮了,说明引脚正确。如果用的是 GPIO5 的板子,把 2 改成 5 再试。

6. 让 LED 闪烁

输入下面代码让 LED 每隔 0.5 秒切换一次:

from machine import Pin
from time import sleep

led = Pin(2, Pin.OUT)

while True:
led.value(not led.value())
sleep(0.5)

Ctrl + C 停止循环,回到 >>>

实际效果如下:

7. 开机自动闪烁

如果想一上电就自动闪,可以把代码保存为 main.py,上传后重启即可:

from machine import Pin
from time import sleep

led = Pin(2, Pin.OUT)

while True:
led.on()
sleep(0.5)
led.off()
sleep(0.5)

mpremote 上传:

pip install mpremote
mpremote connect /dev/ttyUSB0 fs cp main.py :main.py
mpremote connect /dev/ttyUSB0 reset

复位后 LED 就会自己闪烁,连不连串口都行。

8. 跟着 AI 学习的感觉

这次从固件下载、烧录到点灯,全程都是一边问 AI 一边操作。遇到权限问题、下载模式、REPL 没反应,立刻就能得到反馈,比在课堂上听老师讲课有意思多了。即时反馈才让人有动力继续往下学。

AI 学习互动 1

AI 学习互动 2

9. 常见问题

  • esptool 连不上:多半是没进入下载模式,重新按 BOOT + EN 试一次。
  • 串口没权限sudo chmod 666 /dev/ttyUSB0,或者把用户加入 dialout 组后重新登录。
  • REPL 没反应:先按 Enter;如果 main.py 里有死循环,按 Ctrl + C 打断。
  • 灯不亮:板载 LED 引脚可能不是 GPIO2,试试 GPIO5。

10. 参考资料


整体流程就是:下载固件 → 擦除 Flash → 烧录 → 连 REPL → 控制 GPIO。MicroPython 把 ESP32 变成了可以像 Python 一样即写即跑的小板子,后续做传感器、物联网小项目会很方便。

文章作者:阿文
文章链接: https://www.awen.me/post/baeba47e.html
版权声明:本博客所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议。转载请注明来自 阿文的博客

评论

0 条评论
😀😃😄 😁😅😂 🤣😊😇 🙂🙃😉 😌😍🥰 😘😗😙 😚😋😛 😝😜🤪 🤨🧐🤓 😎🥸🤩 🥳😏😒 😞😔😟 😕🙁☹️ 😣😖😫 😩🥺😢 😭😤😠 😡🤬🤯 😳🥵🥶 😱😨😰 😥😓🤗 🤔🤭🤫 🤥😶😐 😑😬🙄 😯😦😧 😮😲🥱 😴🤤😪 😵🤐🥴 🤢🤮🤧 😷🤒🤕 🤑🤠😈 👿👹👺 🤡💩👻 💀☠️👽 👾🤖🎃 😺😸😹 😻😼😽 🙀😿😾 👍👎👏 🙌👐🤲 🤝🤜🤛 ✌️🤞🤟 🤘👌🤏 👈👉👆 👇☝️ 🤚🖐️🖖 👋🤙💪 🦾🖕✍️ 🙏💅🤳 💯💢💥 💫💦💨 🕳️💣💬 👁️‍🗨️🗨️🗯️ 💭💤❤️ 🧡💛💚 💙💜🖤 🤍🤎💔 ❣️💕💞 💓💗💖 💘💝💟 ☮️✝️☪️ 🕉️☸️✡️ 🔯🕎☯️ ☦️🛐 🆔⚛️🉑 ☢️☣️📴 📳🈶🈚 🈸🈺🈷️ ✴️🆚💮 🉐㊙️㊗️ 🈴🈵🈹 🈲🅰️🅱️ 🆎🆑🅾️ 🆘 🛑📛 🚫💯💢 ♨️🚷🚯 🚳🚱🔞 📵🚭 ‼️⁉️🔅 🔆〽️⚠️ 🚸🔱⚜️ 🔰♻️ 🈯💹❇️ ✳️🌐 💠Ⓜ️🌀 💤🏧🚾 🅿️🈳 🈂🛂🛃 🛄🛅🛗 🚀🛸🚁 🚉🚆🚅 ✈️🛫🛬 🛩️💺🛰️
加载中...

留言反馈

😀😃😄 😁😅😂 🤣😊😇 🙂🙃😉 😌😍🥰 😘😗😙 😚😋😛 😝😜🤪 🤨🧐🤓 😎🥸🤩 🥳😏😒 😞😔😟 😕🙁☹️ 😣😖😫 😩🥺😢 😭😤😠 😡🤬🤯 😳🥵🥶 😱😨😰 😥😓🤗 🤔🤭🤫 🤥😶😐 😑😬🙄 😯😦😧 😮😲🥱 😴🤤😪 😵🤐🥴 🤢🤮🤧 😷🤒🤕 🤑🤠😈 👿👹👺 🤡💩👻 💀☠️👽 👾🤖🎃 😺😸😹 😻😼😽 🙀😿😾 👍👎👏 🙌👐🤲 🤝🤜🤛 ✌️🤞🤟 🤘👌🤏 👈👉👆 👇☝️ 🤚🖐️🖖 👋🤙💪 🦾🖕✍️ 🙏💅🤳 💯💢💥 💫💦💨 🕳️💣💬 👁️‍🗨️🗨️🗯️ 💭💤❤️ 🧡💛💚 💙💜🖤 🤍🤎💔 ❣️💕💞 💓💗💖 💘💝💟 ☮️✝️☪️ 🕉️☸️✡️ 🔯🕎☯️ ☦️🛐 🆔⚛️🉑 ☢️☣️📴 📳🈶🈚 🈸🈺🈷️ ✴️🆚💮 🉐㊙️㊗️ 🈴🈵🈹 🈲🅰️🅱️ 🆎🆑🅾️ 🆘 🛑📛 🚫💯💢 ♨️🚷🚯 🚳🚱🔞 📵🚭 ‼️⁉️🔅 🔆〽️⚠️ 🚸🔱⚜️ 🔰♻️ 🈯💹❇️ ✳️🌐 💠Ⓜ️🌀 💤🏧🚾 🅿️🈳 🈂🛂🛃 🛄🛅🛗 🚀🛸🚁 🚉🚆🚅 ✈️🛫🛬 🛩️💺🛰️