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 / 电平输出)

🔒 安全保护

断线自动停车,双路电压监测(低压警告/保护/高压保护),电子刹车延迟阈值可调

🎚️ 精细调节

舵机微调(±100),左右最大角度限制,前进/后退速度独立限制,油门/方向反向开关

🗺️ 地图显示

高德地图集成,实时位置显示,行驶轨迹记录,坐标系统自动切换

🤖 AI(规划中)

自动避障、自动规划线路等功能正在规划开发中

更新日志

版本迭代记录

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 定位

安装部署

一键部署到树莓派

1准备系统

准备 SD 卡和系统镜像

  • 准备一张 16GB 或更大容量的 Micro SD 卡
  • 推荐使用 Class 10 或更高速度的 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 访问时摄像头画面会黑屏(浏览器安全限制),需要使用 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 倾角传感器

UART2 接口
TX → GPIO4 (Pin 7)
RX → GPIO5 (Pin 29)
VCC → 5V
GND → GND

测距模块 (TOF200)

UART3 接口
TX → GPIO16 (Pin 36)
RX → GPIO17 (Pin 11)
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 输出

无画面

确认摄像头连接,检查摄像头所支持分辨率,在设置 → 摄像头设置中修改摄像头类型后保存。

注意:必须使用 HTTPS 访问才能看到视频画面(WebRTC直连浏览器限制),或者点击左上角延迟处切换frp模式。

定位偏移

GPS 默认 WGS-84,国内地图用 GCJ-02,在设置中切换坐标系统

对讲无声

需要 HTTPS 访问,局域网访问请用自签名证书,公网则配置 SSL

连接失败

确认后端运行,检查防火墙设置,查看浏览器控制台网络请求

FRP 访问

在设置中配置 FRP 服务器地址和端口,系统自动生成 frpc.toml 配置文件,支持自动重连和随机代理名

网络模式切换

点击左上角的延迟指示器,可快速在 P2P 直连和 FRP 中转模式之间切换,无需进入设置页面

与我联系

问题与建议、新传感器适配

邮箱

mevenly@outlook.com

放大图片