待补充
experiencor/self-driving-toy-car
4/5
🧩 软硬件结合
已发布
项目简介
A self driving toy car using end-to-end learning
这是一个基于树莓派和普通遥控车改造的自动驾驶小车开源项目,核心目标是实现车道保持功能。项目通过摄像头采集道路图像,利用轻量级卷积神经网络实时预测方向盘转角,让一辆标准RC遥控车能够自主沿着车道行驶。硬件方面,项目保留了遥控车原有的接收器、电机和舵机,在数据采集阶段将舵机PWM信号连接到树莓派的GPIO17引脚,通过collect_data.py脚本同步记录方向盘角度和摄像头图像。自主驾驶时,舵机信号线改接到GPIO18,由树莓派直接控制,drive_me.py脚本负责图像采集、神经网络推理和PWM信号生成的全流程。技术栈以树莓派为核心,使用Python编写控制脚本,神经网络部分采用Keras构建简单的卷积网络,训练代码以Jupyter Notebook形式提供。项目解决了低成本自动驾驶原型验证的问题,特别适合高校实验室、创客爱好者进行端到端自动驾驶的入门实践。它展示了从数据采集、模型训练到实车部署的完整闭环,用户只需准备一辆标准RC遥控车、树莓派和摄像头即可复现。整个方案设计简洁,代码结构清晰,数据采集和模型部署都有详细步骤指导,即使没有深厚的自动驾驶背景也能快速上手。
标签
项目特点
基于普通RC遥控车改造,成本低,易于复现
使用轻量级卷积神经网络实现实时车道保持
数据采集与自主驾驶双模式切换,便于训练和测试
保留原车接收器、电机和舵机,硬件改动小
纯Python控制脚本,上手门槛低
开源社区活跃,已有288颗星,适合入门自动驾驶项目
技术规格
| 主控芯片 | 树莓派(Raspberry Pi,具体型号未限定) |
|---|---|
| 摄像头 | USB摄像头或树莓派Camera Module |
| 神经网络框架 | Keras(TensorFlow后端) |
| 控制信号 | 舵机PWM(GPIO17/18),电机PWM(GPIO13) |
| 图像分辨率 | 采集时默认320x240(可调整) |
| 推理速度 | 约10-15 FPS(树莓派3B+实测) |
| 电源 | 遥控车电池(7.2V~12V) + 树莓派独立供电 |
| 通信接口 | GPIO、USB、Wi-Fi(可选) |
项目资源
搜索资源
物料清单 (BOM)
| 物料名称 | 数量 | 参考价格 | 备注 |
|---|---|---|---|
| 树莓派(Raspberry Pi) | 1 | — | 建议3B+或更高 |
| USB摄像头或树莓派Camera Module | 1 | — | 用于采集道路图像 |
| 标准RC遥控车(1:10比例) | 1 | — | 含接收器、舵机、电机、电池 |
| 舵机PWM信号线 | 1 | — | 数据采集接GPIO17,驾驶接GPIO18 |
| 电机PWM信号线 | 1 | — | 接GPIO13 |
| 电池组 | 1 | — | 遥控车原装电池 |
| 树莓派电源 | 1 | — | 5V/2A以上 |
| 杜邦线 | 若干 | — | 用于GPIO连接 |
| microSD卡 | 1 | — | 至少16GB,用于树莓派系统 |
能力画像
**记忆与知识检索**:3/5 — 需要查阅树莓派GPIO引脚定义、PWM信号参数和Keras文档
**动手与操作**:4/5 — 需要焊接或连接杜邦线、改造遥控车电路、安装摄像头
**编程与算法**:4/5 — 需要理解Python脚本、Keras模型训练和推理流程
**设计与建模**:2/5 — 神经网络模型已预定义,主要工作是数据采集和调参
**实验与调试**:4/5 — 需要反复采集数据、训练模型、测试车道保持效果
**协作与分享**:2/5 — 单人可完成,但可分享数据集和模型权重
**学习与研究**:4/5 — 适合学习卷积神经网络、自动驾驶基础、树莓派GPIO控制
**系统集成**:3/5 — 需要将摄像头、树莓派、遥控车电机舵机整合为一个闭环系统
项目图库
视频
所需技能
树莓派基础操作(系统安装、SSH连接、GPIO使用)
Python编程基础(文件读写、循环、条件判断)
基本电路知识(PWM信号、电压、接线)
机器学习/深度学习基础(卷积神经网络、训练、推理)
图像处理基础(OpenCV基本操作)
动手能力(焊接、机械改装)
调试与问题排查能力
适用场景
高校或职业学校的自动驾驶入门课程项目
树莓派爱好者学习计算机视觉与嵌入式AI的实践项目
机器人竞赛或创客马拉松的快速原型
个人学习卷积神经网络在真实场景中的应用
智能车兴趣小组的集体实验项目
作为更复杂自动驾驶系统(如车道保持+避障)的基础平台