站内搜索
发作品签到
LimeRC青柠 数字图传遥控器系统
专业版

LimeRC青柠 数字图传遥控器系统

简介

一款基于STM32的数字图传遥控器系统,适用于遥控模型改装,亦适用于RoboMaster比赛。

简介:一款基于STM32的数字图传遥控器系统,适用于遥控模型改装,亦适用于RoboMaster比赛。
复刻成本:190

开源协议

CC BY-SA 4.0

创建时间:2025-10-27 09:48:55更新时间:2025-12-19 10:34:41

描述

关于版权

特别声明,本项目为个人原创作品,仅供爱好者学习交流,未经明确书面许可,严禁用于商业项目。
关于PCB、固件等版权信息,详见文末 关于版权

项目介绍

介绍视频在这里:【【自制】两年半,我做了一套数字图传遥控器】

简介

这是一套非常迷你的数字图传遥控器系统,由遥控器和接收机两部分构成:

  • 遥控器由用户手持
  • 接收机放置于被遥控的小车上(如车模玩具等)
    image.png
    接收机可通过Mult-BUS接口输出遥控器摇杆信息到小车,以实现控制小车运动功能,目前支持以下协议输出:
    • DBUS
    • SBUS
    • PP
    • DEBUG

接收机上包含一枚摄像头,可采集前方画面并通过接收机回传到遥控器屏幕,并流畅地显示,效果见文末视频
遥控器UI界面采用LVGL9.3图形库搭建,搭配特殊优化的驱动,可实现流畅的过渡动画以及不低于60帧每秒的屏幕刷新率
空旷无干扰环境可实现40米稳定图传

详细功能列举

对频与连接

  • 接收机支持 对频模式
  • 遥控器支持 扫描对频状态接收机并由用户选择连接
  • 遥控器支持 取消连接
  • 支持上电自动连接
  • 支持信号断连后自动重连
  • 支持连接时自动扫描并跳至空闲信道

协议输出

  • 支持多种协议输出
  • 支持硬件电平反向功能,且可由软件切换

遥控器功能

  • 实时数字图传
  • 实时下发遥控器摇杆信息到接收机
  • 拍照(需连接图传接收机)
  • 存储图片到遥控器内置16MB Flash
  • 照片查看、照片删除
  • 照片导出至外部SD卡
  • 支持RTC时间设置
  • 遥控器电量查看
  • 遥控链路与图传链路 信号质量显示
  • 电池电量显示(UI图标+底部LED指示灯)
  • 单按键实现遥控器开关机
  • 特殊优化的电源设计以支持关机状态约4年RTC走时
  • 屏幕超时自动降低亮度&自动关闭
  • 图形化展示已用内部存储空间,剩余空间,已用外部SD卡空间等
  • 摇杆校准功能,半自动校准摇杆死区,极值等
  • 板载EEPROM支持自动保存设置参数&对频信息

接收机功能

  • 支持驱动摄像头并回传实时画面
  • 支持内部Flash存储配对信息
  • 支持Flash磨损均衡算法,提高内部Flash寿命
  • 板载高亮LED,展示连接状态
  • 板载12832屏幕 搭配极简UI展示相关信息
  • UI展示当前连接信息,当前输出协议,输出电平
  • 板载1路CAN调试接口,可接收CAN信息并显示到屏幕
  • 支持本地解析RM3508、RM6020等电机电调CAN报文
  • 支持USB转1路串口,可作为简易串口调试工具使用
  • 支持串口日志显示到屏幕
  • 支持USB连接指示

按键&功能:

遥控器:

image (2).png

图传接收机:

image (3).png

部分UI设计

开机

遥控器开机后会显示如下画面,此时遥控器对底层所有硬件进行初始化并检查状态,自检进度会实时展示于进度条下方文字
image.png
自检通过后,会尝试扫描接收机:
连接中.png
用户可按需选择需要的接收机并连接

App功能

目前已开发如下五个APP,后续根据需求会开发更多的APP:
未标题-1.png
APP功能介绍:

  • RC遥控:主界面,用于查看图传画面,信号质量,接收机通道,进行拍照操作等
  • 图库:用于查看照片,删除照片等操作
  • 接收机:与开机时的连接界面一致,用于 连接/取消连接 接收机
  • 摇杆校准:用于半自动扫描摇杆死区与极值,解决摇杆体质不一致的问题
  • 设置:设置接收机输出协议/电平,熄屏时间,RTC时间,查看存储容量并导出照片,版本信息等

图传功能展示

受上传大小限制,这里只能放图片了。具体实物效果详见附件。
image.png

Mult-BUS输出展示

> 板载硬件TTL电平反向电路,可在遥控器设置内选择是否开启硬件电平反向

此处以DBUS帧为例:
正常TTL电平:IDLE状态为高:
image.png
开启反向TTL电平:IDLE状态为低(DBUS等航模协议适用)
image (1).png

遥控器外壳建模

image.png

复刻说明

前置技能树

希望你

  • 熟悉热风枪&刀头电烙铁,能熟练地焊接QFN封装芯片、接插座等
  • 对3D打印,STM32单片机,电路板调试 有一些基础理解

推荐你准备 如下工具:

  • ST-LINK和下载夹具:用于为接收机、遥控器主板、遥控器按键子板下载程序
  • 十字螺丝刀:用于拧紧螺栓
  • 陶瓷镊子:用于插入FPC软排线
  • 水口钳+电磨笔:用于修正遥控器按键子板 摇杆开孔,以及修整3D打印零件
  • 其余必要焊接工具(电烙铁风枪锡膏等)

image.png

材料准备

> 此处列举项目为 除焊接好的PCB外,各PCB需要额外准备的材料
> 这些原件可直接通过淘宝搜索并下单购买,选择销量高的店铺即可

公共

  • 尼龙螺栓M3* 8:直径3mm,长度8mm,一套遥控器需要8枚,推荐优信电子链接,选择圆头M3*8
  • 尼龙螺柱10mm长:一套遥控器需要4枚,推荐优信电子链接,选择M3* 10
  • ML01S无线模块:一套遥控器需要2块,图传接收机需要2块,合计4块,推荐亿佰特旗舰店链接,选择E01C-ML01S自带PCB天线
  • 电池:1200maH,厚度6mm,宽度34mm,长度50mm,推荐科祥威链接选择603450-1200毫安
  • FPC软排线:0.5mm间距 6P 3CM长和10CM长各4根(10CM用于调试)(易坏,都多买点)链接
  • 3D打印外壳:遥控器需要一套3D外壳,共6部分组成,详见附件。每个部分打印1块即可

图传接收机

  • OV2640摄像头:选择24pin FPC排线座款,最好选择摄像头上带有一张红色保护标签的款式
  • 12832屏幕:选择0.91寸,驱动芯片CH1115,IIC接口:推荐中景园电子链接
  • GH1.25带锁扣线:用于输出MultBus信号,调试CAN等,需要买GH1.25 2P和GH1.25 4P,推荐各2根

屏幕按键子板

  • Joy-Con摇杆:和switch游戏机同款的摇杆即可,推荐这家链接
  • 屏幕:240×240 SPI接口 ST7789 驱动,推荐中景园电子链接,注意选择焊接式12Pin裸屏,翰彩

遥控器主板

> 遥控器主板无额外购买原件,主板所使用的H7芯片选型仅供参考

  • STM32H7芯片:可选择STM32H750VBT6或STM32H743VIT6(稍贵),两款使用上无任何差别,推荐淘宝直接搜索,选销量高者购买,或这家链接

焊接PCB并测试

焊接好PCB后,请首先测试各路电源对地阻值,确保无短路情况:

image.png

image.png

image.png
各测试点均 对地不短路,再进行如下步骤。

烧录固件

> 电脑需安装STM32 CubeProgrammer软件,并使用ST-Link进行烧录,网上教程非常多,此处不再赘述

下文以图传接收机为例,屏幕按键子板与遥控器主板同理。

使用烧录夹正确连接ST-Link与电路板下载点,需要确保这5根线正确连接:

  • 3V3:供电
  • SCK:时钟线,不同ST-Link命名不同,可能为CLK等
  • GND:供电,共地
  • SDO:数据线,不同ST-Link命名不同,可能为DIO等
  • RST:复位线

image.png
通过USB线连接ST-Link与电脑,进入CubeProgrammer,选择ST-Link,点击连接,效果如下:

image.png

选择对应固件Hex文件,点击下载,等待进度条跑完即可。

image.png

注意:遥控器主板(含STM32H7的PCB板)可能无法使用ST-Link烧录,需通过USB烧录。该板子上有一枚BOOT按键,按住后插入USB线到电脑,在CubeProgrammer中选择USB,连接,之后步骤与上述烧录步骤一致。

另附固件与PCB对应关系:

  • 遥控器主板:H7-LimeRCV3.hex
  • 屏幕按键子板:F0-LimeRC-ScrSubBoard.hex
  • 图传接收机:F4-LimeCamV3.hex

3块PCB均烧录完成后,可以简单组装并测试:

image.png

可测试图传功能,拍照,导出到内存卡等功能
全部测试完毕,进行外壳组装

外壳组装

> 多图预警

确认PCB板已全部组装完毕:

image.png
image.png
image.png
取3CM排线,按如下图所示,插入遥控器主板FPC座子,裁剪并弯折
image.png
轻压一下电池边角,以方便塞入中心支架中:
注意:一定要轻,防止电池压坏。注意安全!!!

image.png
组装电池和中心支架-下
image.png
焊接电池:
image.png
紧密贴合中心支架-下和遥控器主板
image.png
组装屏幕按键子板和中心支架-上
image.png
连接FPC排线到屏幕按键子板
image.png
image.png
组装尼龙螺栓和底壳(共4颗螺栓和螺柱,建议按对角线顺序组装)
image.png
套入中框
image.png
安装上盖并安装4颗螺栓(建议按对角线顺序组装)
image.png
使用电磨笔修整按键帽
image.png
安装 按键帽,完成组装
image.png
接下来就可以愉快地玩耍啦

相关项目

迷你电机驱动板

image.png
该驱动板上集成了电池升压,电池充电,3路电机驱动,3路舵机驱动,1路LED,非常适合桌面小车改装。该板子也被视频中迷你桌面叉车所使用
链接在这里 LimeMini电机驱动板

使用手册

> 为保证图像清晰,此处UI均为模拟器截图,实物可能不同,以实物为准

image.png

开机

长按开机/返回按钮(约1.5s后)开机,长按途中下方四个指示灯会依次点亮,当四个灯同时点亮时,系统开机。
开机后进行系统自检,界面如下:
image.png
其中进度条以及其中数字表示当前自检进度,下方文字为当前自检项。
自检全部通过后,进行接收机扫描,
image.png
此界面中可通过五项摇杆“”、“”选择需要的接收机,“”进行选择。
连接完成后点击下一步
image.png
进入LRC主界面(即RC遥控APP),
顶部状态栏依次为当前时间,遥控器数据下发信号质量,图像回传信号质量,遥控器电量
左侧悬浮窗为接收机名称,接收机所在物理信道。
当前界面中,短按五向摇杆“”可隐藏UI,短按“”,可进行拍照(需要连接图传接收机)
image.png
长按返回键可退出当前APP
image.png

APP选择器说明

APP选择器如下,上方状态栏依次为当前系统时间,遥控器信号质量,遥控器电池信息
image.png

在该界面下,按下五向摇杆中的“左”或“右”切换APP,按下“中”进入当前APP
V3版本中,APP一共有如下五个:
APP功能如下:
● RC遥控:日常操作的主界面,用于观察接收机回传图像,拍照
● 图库:可以浏览拍到的图像,以及对图像进行删除操作
● 接收机:为遥控器启动时的对频界面,可以看到当前接收机的连接信息,以及取消配对/配对新接收机
● 摇杆校准:校准摇杆零点和极值点,用以补偿摇杆体质不同导致的误差
● 设置:对遥控器各项功能参数进行设置,详见下文
image.png

RC遥控APP

该APP功能已在上一章 开机说明 中描述,详情看相关章节。

图库APP

选择&打开图像:
在该APP中,可通过五向摇杆“上”“下”选择图像,点击“中”打开图像,
关闭图像:
在打开图像状态,点击返回关闭图像。
删除图像:
在未打开图像阶段,单击“左”可弹出删除按钮,再次单击“中”,可删除该图像。再次单击“左”,可隐藏删除按钮。
image.png

接收机APP

该APP功能已在上一章 开机说明 中描述,详情看相关章节。

摇杆校准APP

该APP用于自动测量摇杆的中值、死区和边界值,打开后如下:
image.png

通过五项摇杆“中”点击开始校准按钮,进入第二界面,
> !!!注意:一定确保两侧摇杆均处于中间位置再进入第二界面

进入第二界面后等待2秒(此两秒用于自动测量中位和死区),
之后将左右两侧摇杆分别推向各个方向最大值并等待2s,待进度百分数变为绿色,则该方向校准完成。
第二界面屏幕显示如下:
image.png

待完成两个摇杆共8个方向的校准后,下方按钮会变绿,此时可以退出该APP。
校准结果会自动保存到板载EEPROM。

设置APP

设置APP主界面如下,可通过五向摇杆“上”“下”选择子选项,通过“中”进入子选项。
在子选项中单击返回,可退回设置APP主界面。
每个子选项中,均遵循 “上”“下”选择,“中”确定,“返回”返回 的逻辑,下文不再赘述。

image.png

接收机 子项

● 输出协议:可选DBUS,SBUS,PP,DEBUG。
○ DBUS:参考DJI DR16接收机输出协议,推荐搭配反向电平使用
○ SBUS:航模通用协议(待完善)
○ PP:本作者自有协议,协议帧采用不定长帧,可视化,易于解码。
○ DEBUG:保留
● 输出电平:可选正常,反向,静默。
!!!注意!!!
为防止短时期内输出大量不同协议帧到接收机,输出协议和输出电平只有在打开RC遥控APP时才更新到接收机
image.png
另附电平输出样例:(以DBUS,摇杆全归中,三档拨杆下拨)

image.png

时间 子项

可设置RTC时间,该时间会用于存储图像以及文件复制时的时间,若不在意可不设置。
image.png

屏幕 子项

> 用于节约电池电量

● 自动减弱背光:可选30秒、1分钟、5分钟、永不。遥控器无操作超过相应时间后,屏幕亮度降低,可按任意键恢复。
● 自动关闭屏幕:可选同上。遥控器无操作超过相应时间后,屏幕设定为最低亮度,可按任意键恢复。

image.png

存储 子项

上方柱状图分别为内部Flash占用情况以及外部SD卡占用情况。
拍摄的图像默认均保存在内部存储中,可通过“导出数据到SD卡”选项导出。
若未插入SD卡,则SD卡柱状图显示0
具体选项说明:
● 导出数据到SD卡:将图库文件夹下的所有文件复制到SD卡。
● 格式化机内存储:清空内部Flash中的图库文件夹。
● 格式化SD卡:清空SD卡并格式化为FAT32(适用于新SD卡)
image.png

关于 子项

可查看 产品名称,软硬件版本等相关信息。

接收机操作说明

image.png
上电后,通过按钮可选择各个菜单/信息
在RC界面下,长按按钮,可进入配对模式,此时屏幕显示Pairing...,LED亮蓝色。
此时打开遥控器,在遥控器的接收机APP中,可以看到当前处于配对状态的接收机,并选择连接。
连接成功后,接收机亮绿灯,若中途断联,接收机亮红灯。

LED状态总结:

● 蓝灯:接收机处于配对状态
● 红灯:接收机已有配对信息,但与遥控器断开连接
● 绿灯:接收机已连接遥控器

输出协议详解

DBUS协议

详情查看DR16接收机手册

SBUS协议

装修中...

PP协议

pp协议采用可视ASCLL码编码,实际输出为字符串,串口参数115200-8-N-1,格式如下:

> pp<通道0>,<通道1>,<通道2>,<通道3>,<左拨杆>,<右拨杆>,\r\n

模拟摇杆通道0~3,值范围为:0(负方向)~2048(中间)~4095(正方向),通道与正方向见下图
其中<左拨杆>和<右拨杆>编码规则如图所示,

image.png
当接收机输出正常TTL电平时,可直接使用串口调试助手查看数据:
image.png

DEBUG协议

串口参数115200-8-N-1
DEBUG协议直接输出接收机接到的遥控器摇杆原始信息,无任何处理
例如,待编码摇杆信息:

ch[0]:4095, ch[1]:0, ch[2]:2048, ch[3]:0, l_down:0, l_mid:1, l_up:0, r_down:0, r_mid:0, r_up:1, joy_l:1, joy_r:0

实际内存数据:

Offset (h) 00 01 02 03 04 05 06 07 08 09 0A 0B 0C 0D 0E 0F
[00000000] FF 0F -- -- -- 08 -- -- 62 --

含义:

typedef struct
{
	uint16_t ch[4];		//0 ~ 2048 ~ 4095
	uint8_t l_down		: 1;
	uint8_t l_mid		: 1;
	uint8_t l_up		: 1;
	uint8_t r_down		: 1;
	uint8_t r_mid		: 1;
	uint8_t r_up		: 1;
	uint8_t joy_l		: 1;
	uint8_t joy_r		: 1;
	uint8_t s_l		: 2;	//1:up, 2:down, 3:mid
	uint8_t s_r		: 2;	//1:up, 2:down, 3:mid
}RC_Key_V3A_t;

一些常见问题:

1:连接逻辑?

当某个遥控器与某个接收机成功进行一次配对后,遥控器和接收机均会记忆对方信息,以便于:

  1. 下次上电后自动连接
  2. 某一方突然掉线/断连 后 的自动重新连接

2:续航&充电?

续航约3h,充电约需要2.5h,充电时,电量指示灯变为蓝色,电池供电时,为绿色。

3:遥控器卡死了怎么办?

遥控器设置了看门狗,超时时间为9秒,若遥控器卡死(部分任务卡死 且以正常方式触发关机无效),
可通过长按返回按钮10秒以上,进而强制复位整个遥控器系统。

关于版权

特别声明,本项目为个人原创作品

1硬件设计 (PCB)
本项目的硬件设计文件(包括原理图和PCB布局)采用 知识共享 署名-相同方式共享 4.0 国际 (CC BY-SA 4.0) 许可协议。
简单来说,您可以自由地分享和修改这些设计,甚至用于商业项目,但必须注明原始作者,并且您基于此硬件设计的衍生作品也必须以相同的CC BY-SA 4.0协议共享。

2软件固件(.hex文件)
与本项目相关的所有源代码以及预编译的Hex固件,其版权由 bilibili 平韵の小窝 保留所有权利
在此仅授权Hex固件用于个人、非商业的娱乐、学习和研究目的

3本项目的实现使用了以下优秀的开源库,它们遵循各自的许可协议,特此致谢:

  • ST HAL库 - BSD 3-Clause License
  • LVGL - MIT License
  • FreeRTOS - MIT License
  • FatFs - 宽松的BSD类似许可证

固件更新日志

2025.10.28:初版固件,实现基础功能
2025.11.17:V3.1.0-修复版本号异常,提高摇杆刷新速率与回报率,修复PP协议输出

代码开源链接

为了保持代码的及时更新,代码托管于GitHub,链接如下:
https://github.com/pingyun001/LimeRC.git
工作忙,缓慢装修ing,大家可以点点关注~

最后 遇到问题,欢迎私信bilibili 平韵の小窝

希望大家喜欢这个项目,鞠躬~

设计图

未生成预览图,请在编辑器重新保存一次

BOM

暂无BOM

3D模型

序号文件名称下载次数
暂无数据

附件

序号文件名称下载次数
1
3D模型需打印.rar
107
2
开机动画.mp4
50
3
流畅图传.mp4
57
4
滑动菜单.mp4
43
5
设置.mp4
48
6
初版固件Hex.rar
88
7
V3.1.0固件.rar
98
克隆工程
添加到专辑
0
0
分享
侵权投诉
知识产权声明&复刻说明

本项目为开源硬件项目,其相关的知识产权归创作者所有。创作者在本平台上传该硬件项目仅供平台用户用于学习交流及研究,不包括任何商业性使用,请勿用于商业售卖或其他盈利性的用途;如您认为本项目涉嫌侵犯了您的相关权益,请点击上方“侵权投诉”按钮,我们将按照嘉立创《侵权投诉与申诉规则》进行处理。

请在进行项目复刻时自行验证电路的可行性,并自行辨别该项目是否对您适用。您对复刻项目的任何后果负责,无论何种情况,本平台将不对您在复刻项目时,遇到的任何因开源项目电路设计问题所导致的直接、间接等损害负责。

底部导航