RaspiCar
树莓派遥控车。WebRTC P2P 低延迟视频传输,语音对讲,GPS定位,倾角保持,定速巡航,纯树莓派架构无需额外 MCU。
功能特性
完整的遥控车解决方案
🎮 虚拟摇杆
触摸/鼠标操作的虚拟摇杆,支持油门(垂直)、转向(水平)、云台三轴独立控制,可拖拽定位、调整大小
📹 实时视频
WebRTC P2P 直连低延迟传输,支持 USB/CSI 摄像头自动识别,可调分辨率/帧率/码率,可切换 FRP 中转模式
🧭 GPS 定位
实时位置追踪与地图显示,支持 WGS-84/GCJ-02/BD-09 坐标系统,定位更新频率可调(5/10/30秒)
🎯 角度保持(不好用)
HWT101 倾角传感器 + PID 控制,死区范围 ±1°~±10° 可调,修正强度 1-10 档可选
🔊 音频功能
对讲功能(按住通话 PTT),TTS 语音合成(百度 API),音效播放,远程环境监听,音频文件上传管理
📊 数据监控
电压、速度、温度实时数据图表,ADS1115 电压监测,编码器测速,历史数据曲线查看
🚗 智能驾驶
定速巡航(PID 控制),电子刹车(延迟超时自动刹车),TOF 测距模块防碰撞(距离/灵敏度可调)
📡 多网络模式
P2P直连,FRP 内网穿透(端口/域名转发),可自定义 STUN/TURN 服务器。点击左上角延迟指示器可快速切换 P2P 和 FRP 连接模式
⚡ 多路输出
树莓派硬件 PWM(电调/舵机),软件 PWM(云台舵机 GPIO22/23),自定义通道(GPIO 软件 PWM / 电平输出)
🔒 安全保护
断线自动停车,双路电压监测(低压警告/保护/高压保护),电子刹车延迟阈值可调
🔑 登录保护
访问密码登录(scrypt 加密存储),连续 5 次密码错误自动锁定 15 分钟,防止暴力破解
💾 设置持久化
全部配置保存在车上,断电重启不丢失;换手机、换浏览器打开自动同步,无需重新设置
🎚️ 精细调节
舵机微调(±100),左右最大角度限制,前进/后退速度独立限制,油门/方向反向开关
🗺️ 地图显示
高德地图集成,实时位置显示,行驶轨迹记录,坐标系统自动切换
🤖 自动驾驶(开发中)
2D 激光雷达预建图 + 定位巡航方案(思岚 RPLIDAR A2M12),ROS 生态,建图时暂停视频专心扫图,日常巡航轻量定位,纯树莓派 4 可承载
更新日志
版本迭代记录
安装部署
一键部署到树莓派
免责声明
本遥控车控制程序为免费,仅供个人学习、研究、非商业用途使用,免费开放下载。本程序为业余学习开发作品,不保证百分百稳定无bug,使用者所有调试、运行操作风险、设备损坏及人身相关损失,均由使用者自行承担,作者不承担任何法律及赔偿责任。凡下载、使用本程序,即视为默认本免责声明全部条款。
1准备系统
准备 SD 卡和系统镜像
- 准备一张 16GB 或更大容量的 Micro SD 卡
- 推荐使用 Class 10 或更高速度的 Micro SD 卡
请使用 Trixie(64-bit) 系统镜像
2烧录系统
使用 Raspberry Pi Imager 工具烧录 Raspberry Pi OS (64-bit) Trixie 系统
烧录教程请自行在网络上查找。注意:用户名推荐设置为 pi
推荐使用上方官方 Raspberry Pi Imager 工具直接下载和烧录系统镜像,这是最简单、最可靠的方式。
如果您所在的网络环境无法正常访问官方服务器下载镜像,或者下载速度过慢,可以使用上方"系统镜像(百度网盘备用)"按钮下载备用镜像。百度网盘镜像与官方镜像完全一致,只是提供了国内用户更便捷的下载渠道。
3一键部署 (已有 - 位用户完成部署)
在树莓派终端执行以下命令,自动完成所有安装配置
curl -sL https://240318.xyz/download/deploy.sh | sudo bash
⚠️ 注意:脚本执行完成后会自动重启系统,请提前保存工作
执行命令后会提示输入密码,请输入您在烧录系统步骤中设置的密码
部署脚本运行结束会自动重启系统
4访问控制台
浏览器访问树莓派 IP:9152,例如:
http://树莓派ip地址:9152
✓ 局域网 HTTP 访问即可正常显示摄像头画面(MJPEG/H264 流模式)。如需使用 P2P 直连(更低延迟)和语音对讲功能,则需通过 HTTPS 访问(浏览器安全限制)。
推荐配置 FRP 内网穿透,使用 HTTPS 域名访问,解锁全部功能:
# 在前端右上角设置中配置 FRP 参数
# - FRP 服务器地址
# - FRP 服务器端口
# - 自定义域名(需已解析到 FRP 服务器)
# 系统会自动生成 frpc.toml 配置文件并启动
✓ 配置完成后通过 https://你的域名 访问,即可正常显示摄像头画面
5服务管理
sudo systemctl status raspicar
sudo systemctl restart raspicar
sudo journalctl -u raspicar -f
接线说明
正确的接线方式
树莓派 GPIO 接线
GPS 模块 (L76X)
UART 接口
RX → GPIO15 (Pin 10)
TX → GPIO14 (Pin 8)
VCC → 5V
GND → GND
HWT101 倾角传感器
UART4 接口
TX → GPIO9 (Pin 21)
RX → GPIO8 (Pin 24)
VCC → 5V
GND → GND
测距模块 (TOF200)
UART3 接口
TX → GPIO5 (Pin 29)
RX → GPIO4 (Pin 7)
VCC → 5V
GND → GND
ADS1115 电压检测
I2C 接口
SDA → GPIO2 (Pin 3)
SCL → GPIO3 (Pin 5)
VCC → 3.3V
GND → GND
⚠️ 必须接分压电阻!电池电压需分压至 3.3V 以下才能接入 ADS1115,否则会损坏模块和树莓派!
舵机与电调
舵机信号线 → GPIO12 (Pin 32) - 硬件 PWM
电调信号线 → GPIO13 (Pin 33) - 硬件 PWM
云台舵机 → GPIO22/23 (软件 PWM)
GND → GND(必须共地)
⚠️ 电调的电源线(BEC 输出)禁止接树莓派,否则会导致树莓派损坏!
编码器测速
左轮 A/B 相 → GPIO24/25
右轮 A/B 相 → GPIO26/27
⚠️ 编码器输出电压必须低于 3.3V,高于 3.3V 会导致树莓派损坏!
💡 建议:编码器不要直连电机,电机转速太快会丢脉冲,建议安装在车轮轴上(转速较低)
接线示意图
舵机与电调接线
电调、舵机、云台接线
USB 设备
摄像头
USB 摄像头:直接插入 USB 端口
CSI 摄像头:连接 CSI 接口
音频设备
USB 麦克风 + USB 扬声器
直接插入 USB 端口,自动识别
注意事项
⚠️ GPIO 电压
所有传感器输出必须为 3.3V!
树莓派 GPIO 仅支持 3.3V
高于 3.3V 会烧毁树莓派!
可使用电平转换模块
共地要求
所有设备的 GND 必须共地
确保电平参考一致
避免信号干扰
电源供电
树莓派供电需大于 3A
使用降压模块将电池电压降至 5V
舵机电源独立供电,不要接树莓派
串口配置
部署脚本自动配置 UART
/boot/firmware/config.txt
已添加 uart2/3/4 和 disable-bt
硬件清单
所需组件
核心组件
传感器模块
可选配件
常见问题
问题与解决
电机不转
检查电调电源和信号线,确保负极共用,测试 GPIO PWM 输出
定位偏移
GPS 默认 WGS-84,国内地图用 GCJ-02,在设置中切换坐标系统
对讲无声
需要 HTTPS 访问,局域网访问请用自签名证书,公网则配置 SSL
连接失败
确认后端运行,检查防火墙设置,查看浏览器控制台网络请求
FRP 访问
在设置中配置 FRP 服务器地址和端口,系统自动生成 frpc.toml 配置文件,支持自动重连和随机代理名
网络模式切换
点击左上角的延迟指示器,可快速在 P2P 直连和 FRP 中转模式之间切换,无需进入设置页面
忘记访问密码
SSH 登录树莓派,删除 ~/RaspiCar/backend/password.json 后执行 sudo systemctl restart raspicar,重新打开页面即可设置新密码
与我联系
问题与建议、新传感器适配
邮箱
mevenly@outlook.com