第二章:开发环境搭建——嵌入式Python环境
好,咱们正式开始动手了。这一章要解决一个核心问题:怎么让你的电脑和售货机的主控板「说上话」。说白了,就是搭建开发环境。
我记得刚入行那会儿,最头疼的就是环境配置。明明代码写好了,烧录进去就是跑不起来。后来才发现,往往是环境没搭对。所以这一章,咱们一步一个脚印,把地基打牢。
2.1 嵌入式Python的两种选择
目前主流的嵌入式Python有两个流派:MicroPython 和 CircuitPython。我个人的习惯是,根据项目需求来选。
| 特性 | MicroPython | CircuitPython |
|---|---|---|
| 创始人 | Damien George | Adafruit 团队(基于MicroPython) |
| 标准库支持 | 较完整,接近CPython | 简化版,更注重外设驱动 |
| 文件系统 | FAT,需手动管理 | 自动挂载,U盘模式 |
| 适用场景 | 工业控制、复杂逻辑 | 快速原型、教育、简单交互 |
| 社区活跃度 | 高,第三方库丰富 | 高,Adafruit官方支持 |
对于咱们这个自动售货机项目,我建议用 MicroPython。为什么?因为售货机涉及多线程任务(比如同时处理按键、电机、支付模块),MicroPython 的 _thread 模块和更完整的异步支持,能让你少掉很多头发。
我的经验: 之前做一个饮料售货机,用了CircuitPython,结果发现它不支持硬件定时器中断。后来硬着头皮改成MicroPython,三天搞定。所以选型时,一定要先看硬件资源需求。
2.2 IDE安装与配置
工欲善其事,必先利其器。我推荐两款IDE,你根据自己喜好选。
2.2.1 Thonny(新手首选)
Thonny 是专门为MicroPython设计的IDE,开箱即用。你想想看,它连固件烧录功能都内置了,多省事。
- 去官网下载对应系统的安装包
- 安装后,打开菜单:运行 → 选择解释器 → 选择「MicroPython (ESP32)」
- 插上你的开发板,选择对应的串口(COM口)
嗯,这里要注意:Windows系统下,如果没识别到串口,八成是驱动没装。去下载一个 CP210x 或 CH340 驱动,装好重启就行。
2.2.2 VS Code + Pymakr(进阶推荐)
如果你习惯写Python,VS Code 配上 Pymakr 插件,体验会好很多。我个人习惯用这个组合,因为代码补全、调试功能更强大。
# 安装步骤
1. 安装 VS Code
2. 扩展商店搜索「Pymakr」并安装
3. 按 Ctrl+Shift+P,输入「Pymakr > Global Settings」
4. 配置串口地址,例如:COM3 或 /dev/ttyUSB0
小技巧: 在Pymakr设置里,把「auto_connect」设为true。这样每次插上开发板,IDE自动连接,省去手动点连接的麻烦。
2.3 固件烧录——让板子「活」起来
固件烧录,就是把MicroPython的内核写到开发板的Flash里。这一步搞砸了,板子就变砖了。别怕,我教你稳扎稳打的方法。
2.3.1 准备工作
- 一块ESP32或ESP8266开发板(售货机常用ESP32,因为IO口多)
- USB数据线(注意:有些线只能充电,不能传数据!)
- 下载好的MicroPython固件(.bin文件)
我曾经遇到过一件事:用了一根劣质USB线,烧录到一半就断了,板子直接变砖。后来用短接法才救回来。所以,线材别省钱。
2.3.2 使用esptool烧录(推荐)
esptool 是乐鑫官方的烧录工具,稳定可靠。咱们用命令行操作。
# 第一步:安装esptool
pip install esptool
# 第二步:擦除Flash(重要!)
esptool.py --port COM3 erase_flash
# 第三步:烧录固件
esptool.py --port COM3 --baud 460800 write_flash -z 0x1000 esp32-20220618-v1.19.1.bin
警告: 烧录前一定要先擦除Flash!我见过太多人直接烧录,结果旧数据和新固件冲突,导致启动失败。擦除这一步,别偷懒。
2.3.3 验证是否成功
烧录完成后,打开Thonny,连接串口。在Shell窗口输入:
import sys
print(sys.version)
如果能看到MicroPython的版本号,恭喜你,环境搭好了!
2.4 避坑指南
做嵌入式开发,坑是绕不开的。我把自己踩过的坑列出来,你遇到了直接对照。
- 串口被占用: 有时候插上板子,Thonny提示无法连接。八成是串口被其他程序占了(比如串口助手)。关掉其他程序,重新插拔USB。
- 烧录速度慢: 默认波特率是115200,太慢了。我一般用460800,速度快4倍,稳定不掉线。
- 文件传不进去: 用Thonny传文件时,如果卡住不动,试试先断开连接,再重新连接。这是Thonny的老毛病了。
我的经验: 有一次烧录固件后,板子一直重启。查了半天,发现是电源供电不足。售货机项目里,电机启动瞬间电流很大,建议用5V/2A以上的电源适配器,别用USB口供电。
2.5 本章小结
环境搭建说难不难,说简单也不简单。核心就三步:选对Python变体、配好IDE、烧对固件。你只要按这个流程走,基本不会出大问题。
下一章,咱们开始写真正的售货机控制代码。到时候,你会感谢今天认真搭环境的自己。
课后练习: 试着用Thonny写一个LED闪烁的程序,验证你的环境是否正常工作。代码很简单:
from machine import Pin
import time
led = Pin(2, Pin.OUT)
while True:
led.value(1)
time.sleep(1)
led.value(0)
time.sleep(1)
公众号:蓝海资料掘金营,微信deep3321