# PyCar **Repository Path**: yanxbandy/py-car ## Basic Information - **Project Name**: PyCar - **Description**: No description available - **Primary Language**: Unknown - **License**: MulanPSL-2.0 - **Default Branch**: main - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 0 - **Created**: 2026-09-27 - **Last Updated**: 2026-09-27 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # PyCar 编程小车 基于 **01Studio PyCar**(ESP32 + MicroPython)的四驱编程小车学习工程。 ## 小车档案 | 项目 | 状态 | | --- | --- | | 核心板 | 01Studio pyWiFi-ESP32(ESP32) | | 固件 | MicroPython v1.15(01Studio 定制) | | 编程口 | CP2102 USB 转串口 → **COM12** @ 115200 | | 电池 | 18650 锂电池(板载充电电路) | | 板边接口 | micro-USB(仅充电)+ TYPE-C(数据/充电,连电脑用这个) | ## 环境踩坑记录(重要) 1. **驱动**:编程口芯片为 CP2102,Windows 首次连接需安装驱动。 驱动包在 `01-开发工具/01-Windows/串口终端工具/CP210x驱动/Win10/`, 解压后可用 `pnputil /add-driver silabser.inf /install` 安装, 或在设备管理器对黄色感叹号设备「更新驱动程序」指向解压目录。 2. **别插错口**:micro-USB 口只能充电,插电脑没反应;数据通信必须用 TYPE-C 口。 3. **出厂残留**:板内自带 `main.py`(电机 PWM 调试程序),上电自跑;REPL 里按 `Ctrl+C` 可打断。 ## 目录结构 ``` 01-开发工具/ 开发软件、串口驱动(Windows/Mac/Linux) 02-示例程序/ 教程全部示例源码(基础实验/WiFi/蓝牙/综合) 03-相关固件/ MicroPython 固件(重烧用) 04-原理图&功能图/ 电路原理图、尺寸图、功能描述图 05-芯片手册/ 主要 IC 数据手册 06-产品图片/ 产品实拍图 07-APP/ 手机端 APP .workbuddy/ 工作记录与自研工具 ├── tools/pycar_repl.py 串口助手:向 COM12 发代码并回显 └── memory/ 工作日志 ``` ## 快速上手 ```bash # 用串口助手发一条指令(需 Python + pyserial) python .workbuddy/tools/pycar_repl.py "print('hello pycar')" # 或交互模式 python .workbuddy/tools/pycar_repl.py ``` 在线教程: ## 进度日志 - 2026-09-27:首次连接成功。排查 USB 不识别问题(充电口/驱动),装 CP2102 驱动后认到 COM12,REPL 通信正常。 - 2026-09-27:板载蓝灯闪烁测试通过(GPIO2);电机测试通过(`Car.forward()` 四轮全转)。注意板上 `car.py` API 为 `forward/backward/turn_left/turn_right/stop`,与部分示例的 `up/down` 命名不同。 - 2026-09-27:清理出厂 main.py(已备份);OLED 中文显示成功(`oled_show_name.py`,PC 端 PIL 生成 16x16 黑体字模 → 小车 framebuf 逐点绘制,显示"鄢晓波")。 - 2026-09-27:超声波验证通过(空读 34.3cm 稳定,手掌 12cm 实测)。部署自主避障程序 `避障巡航main.py` 到车上 main.py:四成油门巡航,20cm 内障碍刹车→倒车→右转,40 秒自动停。**当前板上通电即自动跑避障**,改回手动模式需删除车上 main.py。 - 2026-09-27:避障实地首跑成功,表现良好。今日里程碑:连接→驱动→REPL→闪灯→四轮→清旧程序→OLED中文名→超声波→自主避障,全链路打通。 - 2026-09-27:部署蓝牙遥控模式(`02-示例程序/4.综合实验/4.蓝牙遥控车/pyCar代码/` 三件套:ble_advertising.py + ble_simple_peripheral.py + main.py,广播名 pyCar)。手机端用 `07-APP/pyController_V1.0.0.apk`(安卓)。**当前板上通电即广播蓝牙等待手机连接**;恢复避障模式需重传 避障巡航main.py。 - 2026-09-27:摇杆全比例控制上线:抓包破译 pyController 摇杆协议(v[3]=X轴 0~255、v[4]=Y轴,中值128)→ 差速混合驱动(左轮 M2/M3、右轮 M1/M4,`arcade()` 混合),推多少走多快、边走边拐弯;十字键兼容映射满杆;防撞锁存保留。**部署教训:paste 模式写入可能静默失败,必须板上回读校验(WRITE_OK + 特征函数 + 长度比对)**。 - 2026-09-27:升级 `蓝牙遥控main.py`:OLED 仪表盘(鄢晓波字模 + LINK/方向/灯/距离实时刷新)+ 超声波防撞保镖。踩坑两个:①官方死等式 getDistance 在电机转动时被 PWM 噪声干扰 → 换 time_pulse_us 超时版;②按住"上"键时手机指令洪流(每秒几十条)覆盖刹车 → 改**锁存式防撞**(触发即锁油门,倒车/转向或拉远 30cm 外解锁)。实测通过:BLOCK 期间按住前进键车稳稳停住,屏幕显示 BLOCK!。**板上当前 = 蓝牙遥控 + 仪表盘 + 防撞保镖 最终形态**。