RaspiCar

树莓派遥控车。WebRTC P2P 低延迟视频传输,语音对讲,GPS定位,倾角保持,定速巡航,纯树莓派架构无需额外 MCU。

展示图5 展示图4

功能特性

完整的遥控车解决方案

🎮 虚拟摇杆

触摸/鼠标操作的虚拟摇杆,支持油门(垂直)、转向(水平)、云台三轴独立控制,可拖拽定位、调整大小

📹 实时视频

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 可承载

更新日志

版本迭代记录

v2.4.2 2026-08-05

安卓App适配;原生 GPS 定位注入,不依赖谷歌服务,国行安卓机地图定位精准可用;PTT 对讲权限与回声消除适配;一键横竖屏切换;服务器地址首次输入后自动保存

v2.4.1 2026-08-05

P2P 监听音频重构:丢帧不重传 + 抗抖动缓冲,弱网/移动网络下声音连续不卡顿,端到端延迟锁定 1 秒内;修复 PTT 对讲偶发"麦克风被占用"(对讲时自动暂停监听、松开自动恢复,杜绝回环啸叫);地图定位按钮连点不再叠加多条提示

v2.4.0 2026-08-02

自定义电平(开关)通道全链路开通:灯光/继电器即开即用,开关状态断电保持、重启自动恢复;新增通道 GPIO 系统占用校验,删除通道自动复位引脚;地图"手机位置"升级 GPS 高精度定位(移除 IP 定位);电压检测开关默认状态修复;接线文档修正(TOF、倾角传感器引脚)

v2.3.0 2026-07-31

登录密码保护(错误锁定)、全部设置断电保存、开机自启;音频架构重构:麦克风自动识别、监听无声自愈;双摇杆多点触控(油门方向可同时操作)、云台防误触刷新;摄像头设置显示实际运行参数;新增免责声明与密码可见切换;多项稳定性修复

v2.2.0 2026-05-24

架构优化:移除 STM32 依赖,编码器直连树莓派 GPIO,简化硬件结构

v2.1.0 2026-04-29

新增坐标系统切换,修复地图定位偏移,APP/网页密钥验证

v2.0.0 2026-03-15

重构架构,新增 WebRTC P2P、定速巡航、角度保持

v1.5.0 2026-02-16

新增编码器读取,双路电压监测

v1.0.0 2026-02-10

首个稳定版本,基础控制、视频传输、GPS 定位

安装部署

一键部署到树莓派

免责声明

本遥控车控制程序为免费,仅供个人学习、研究、非商业用途使用,免费开放下载。本程序为业余学习开发作品,不保证百分百稳定无bug,使用者所有调试、运行操作风险、设备损坏及人身相关损失,均由使用者自行承担,作者不承担任何法律及赔偿责任。凡下载、使用本程序,即视为默认本免责声明全部条款。

1准备系统

准备 SD 卡和系统镜像

  • 准备一张 16GB 或更大容量的 Micro SD 卡
  • 推荐使用 Class 10 或更高速度的 Micro SD 卡

请使用 Trixie(64-bit) 系统镜像

2烧录系统

使用 Raspberry Pi Imager 工具烧录 Raspberry Pi OS (64-bit) Trixie 系统

烧录系统示意图
Windows 下载 macOS 下载 Linux (x86_64) 下载 系统镜像(百度网盘备用)

烧录教程请自行在网络上查找。注意:用户名推荐设置为 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 服务器端口  
# - 自定义域名(需已解析到 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

硬件清单

所需组件

核心组件

树莓派
树莓派 4B
摄像头
USB 摄像头或 CSI 接口摄像头
RC 车底盘
带电机、电调(ESC)、转向舵机
降压模块
5V 3A+,给树莓派供电

传感器模块

ADS1115
I2C ADC 芯片,双路电压监测
TOF200F
UART 激光测距,防碰撞
编码器
AB 相霍尔编码器,3.3V 电平输出
HWT101
UART 倾角传感器,角度保持
GPS 模块
L76X / ATGM336H,UART 接口

可选配件

双轴云台
MG90s 舵机 x2,GPIO22/23 控制
USB 麦克风
语音对讲、环境监听
USB 扬声器
TTS 语音播报、音效播放
4G/5G 路由器
支持 IPv6,实现 WebRTC P2P 直连

常见问题

问题与解决

电机不转

检查电调电源和信号线,确保负极共用,测试 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

放大图片