第二章:开发环境搭建——嵌入式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,开箱即用。你想想看,它连固件烧录功能都内置了,多省事。

  1. 去官网下载对应系统的安装包
  2. 安装后,打开菜单:运行 → 选择解释器 → 选择「MicroPython (ESP32)」
  3. 插上你的开发板,选择对应的串口(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