概要:整理为可维护工程,配置 main.py 开机自启并验收。
核心能力:模块化、开机自启 · 可见结果:可验收完整小车程序
本章代码目录:
code/chapter-08/
上传示例:mpremote connect $PORT cp code/chapter-08/*.py :(在章节目录外按实际路径调整)
学习目标
- 用 config.py 集中管理引脚与参数。
- 按职责拆分 button / status_led / motor_driver / ultrasonic / main。
- 上电短延时可 Ctrl-C 打断。
- 完成功能验收。
内容要点
- 从 test_*.py 抽取公共逻辑。
- try / finally 保证停车。
- mpremote cp … :main.py 设自启。
代码说明
| 文件 | 简要说明 |
|---|---|
config.py | 集中存放引脚号、车速、超声阈值、开机延时等常量,避免魔法数字散落各文件。 |
button.py | Button 类:上拉输入 + 按下边沿 + 消抖;导出 sw_left / sw_right。 |
status_led.py | 封装左红 / 右绿状态灯,供主循环按距离语义点亮或闪烁。 |
motor_driver.py | 整车电机驱动(引脚可读 config 或与前章一致)。 |
ultrasonic.py | 测距模块(Trig/Echo),同第 6 章职责。 |
main.py | 综合主程序:上电延时可 Ctrl-C;主循环按键三态控轮 + 超声远绿近红;保存为设备上的 main.py 即可开机自启。 |
实验
- 按
code/chapter-08/上传全部模块。 - 将
main.py设为开机自启并完成验收清单。
验收清单
- 上电后数秒内可打断;进入主循环后行为符合约定。
- 左右键可独立改变对应轮状态。
- 红 / 绿灯正确反映距离语义。
- 超声波读数稳定;串口有关键日志。
- 停止 / 异常 / 退出时电机必停。
GPIO 编号、LED / 按键方位以专题页 第四节「GPIO 与接线」 为准,本页不重复抄写引脚数字。