
LimeRC青柠 数字图传遥控器系统
简介
一款基于STM32的数字图传遥控器系统,适用于遥控模型改装,亦适用于RoboMaster比赛。
简介:一款基于STM32的数字图传遥控器系统,适用于遥控模型改装,亦适用于RoboMaster比赛。开源协议
:CC BY-SA 4.0
描述
关于版权
特别声明,本项目为个人原创作品,仅供爱好者学习交流,未经明确书面许可,严禁用于商业项目。
关于PCB、固件等版权信息,详见文末 关于版权
项目介绍
介绍视频在这里:【【自制】两年半,我做了一套数字图传遥控器】
简介
这是一套非常迷你的数字图传遥控器系统,由遥控器和接收机两部分构成:
- 遥控器由用户手持
- 接收机放置于被遥控的小车上(如车模玩具等)

接收机可通过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连接指示
按键&功能:
遥控器:

图传接收机:

部分UI设计
开机
遥控器开机后会显示如下画面,此时遥控器对底层所有硬件进行初始化并检查状态,自检进度会实时展示于进度条下方文字

自检通过后,会尝试扫描接收机:

用户可按需选择需要的接收机并连接
App功能
目前已开发如下五个APP,后续根据需求会开发更多的APP:

APP功能介绍:
- RC遥控:主界面,用于查看图传画面,信号质量,接收机通道,进行拍照操作等
- 图库:用于查看照片,删除照片等操作
- 接收机:与开机时的连接界面一致,用于 连接/取消连接 接收机
- 摇杆校准:用于半自动扫描摇杆死区与极值,解决摇杆体质不一致的问题
- 设置:设置接收机输出协议/电平,熄屏时间,RTC时间,查看存储容量并导出照片,版本信息等
图传功能展示
受上传大小限制,这里只能放图片了。具体实物效果详见附件。

Mult-BUS输出展示
> 板载硬件TTL电平反向电路,可在遥控器设置内选择是否开启硬件电平反向
此处以DBUS帧为例:
正常TTL电平:IDLE状态为高:

开启反向TTL电平:IDLE状态为低(DBUS等航模协议适用)

遥控器外壳建模

复刻说明
前置技能树
希望你
- 熟悉热风枪&刀头电烙铁,能熟练地焊接QFN封装芯片、接插座等
- 对3D打印,STM32单片机,电路板调试 有一些基础理解
推荐你准备 如下工具:
- ST-LINK和下载夹具:用于为接收机、遥控器主板、遥控器按键子板下载程序
- 十字螺丝刀:用于拧紧螺栓
- 陶瓷镊子:用于插入FPC软排线
- 水口钳+电磨笔:用于修正遥控器按键子板 摇杆开孔,以及修整3D打印零件
- 其余必要焊接工具(电烙铁风枪锡膏等)

材料准备
> 此处列举项目为 除焊接好的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根
屏幕按键子板
遥控器主板
> 遥控器主板无额外购买原件,主板所使用的H7芯片选型仅供参考
- STM32H7芯片:可选择STM32H750VBT6或STM32H743VIT6(稍贵),两款使用上无任何差别,推荐淘宝直接搜索,选销量高者购买,或这家链接
焊接PCB并测试
焊接好PCB后,请首先测试各路电源对地阻值,确保无短路情况:



各测试点均 对地不短路,再进行如下步骤。
烧录固件
> 电脑需安装STM32 CubeProgrammer软件,并使用ST-Link进行烧录,网上教程非常多,此处不再赘述
下文以图传接收机为例,屏幕按键子板与遥控器主板同理。
使用烧录夹正确连接ST-Link与电路板下载点,需要确保这5根线正确连接:
- 3V3:供电
- SCK:时钟线,不同ST-Link命名不同,可能为CLK等
- GND:供电,共地
- SDO:数据线,不同ST-Link命名不同,可能为DIO等
- RST:复位线

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

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

注意:遥控器主板(含STM32H7的PCB板)可能无法使用ST-Link烧录,需通过USB烧录。该板子上有一枚BOOT按键,按住后插入USB线到电脑,在CubeProgrammer中选择USB,连接,之后步骤与上述烧录步骤一致。
另附固件与PCB对应关系:
- 遥控器主板:H7-LimeRCV3.hex
- 屏幕按键子板:F0-LimeRC-ScrSubBoard.hex
- 图传接收机:F4-LimeCamV3.hex
3块PCB均烧录完成后,可以简单组装并测试:

可测试图传功能,拍照,导出到内存卡等功能
全部测试完毕,进行外壳组装
外壳组装
> 多图预警
确认PCB板已全部组装完毕:



取3CM排线,按如下图所示,插入遥控器主板FPC座子,裁剪并弯折

轻压一下电池边角,以方便塞入中心支架中:
!注意:一定要轻,防止电池压坏。注意安全!!!

组装电池和中心支架-下

焊接电池:

紧密贴合中心支架-下和遥控器主板

组装屏幕按键子板和中心支架-上

连接FPC排线到屏幕按键子板


组装尼龙螺栓和底壳(共4颗螺栓和螺柱,建议按对角线顺序组装)

套入中框

安装上盖并安装4颗螺栓(建议按对角线顺序组装)

使用电磨笔修整按键帽

安装 按键帽,完成组装

接下来就可以愉快地玩耍啦
相关项目
迷你电机驱动板

该驱动板上集成了电池升压,电池充电,3路电机驱动,3路舵机驱动,1路LED,非常适合桌面小车改装。该板子也被视频中迷你桌面叉车所使用
链接在这里 LimeMini电机驱动板
使用手册
> 为保证图像清晰,此处UI均为模拟器截图,实物可能不同,以实物为准

开机
长按开机/返回按钮(约1.5s后)开机,长按途中下方四个指示灯会依次点亮,当四个灯同时点亮时,系统开机。
开机后进行系统自检,界面如下:

其中进度条以及其中数字表示当前自检进度,下方文字为当前自检项。
自检全部通过后,进行接收机扫描,

此界面中可通过五项摇杆“上”、“下”选择需要的接收机,“中”进行选择。
连接完成后点击下一步

进入LRC主界面(即RC遥控APP),
顶部状态栏依次为当前时间,遥控器数据下发信号质量,图像回传信号质量,遥控器电量
左侧悬浮窗为接收机名称,接收机所在物理信道。
当前界面中,短按五向摇杆“中”可隐藏UI,短按“右”,可进行拍照(需要连接图传接收机)

长按返回键可退出当前APP

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

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

RC遥控APP
该APP功能已在上一章 开机说明 中描述,详情看相关章节。
图库APP
选择&打开图像:
在该APP中,可通过五向摇杆“上”“下”选择图像,点击“中”打开图像,
关闭图像:
在打开图像状态,点击返回关闭图像。
删除图像:
在未打开图像阶段,单击“左”可弹出删除按钮,再次单击“中”,可删除该图像。再次单击“左”,可隐藏删除按钮。

接收机APP
该APP功能已在上一章 开机说明 中描述,详情看相关章节。
摇杆校准APP
该APP用于自动测量摇杆的中值、死区和边界值,打开后如下:

通过五项摇杆“中”点击开始校准按钮,进入第二界面,
> !!!注意:一定确保两侧摇杆均处于中间位置再进入第二界面
进入第二界面后等待2秒(此两秒用于自动测量中位和死区),
之后将左右两侧摇杆分别推向各个方向最大值并等待2s,待进度百分数变为绿色,则该方向校准完成。
第二界面屏幕显示如下:

待完成两个摇杆共8个方向的校准后,下方按钮会变绿,此时可以退出该APP。
校准结果会自动保存到板载EEPROM。
设置APP
设置APP主界面如下,可通过五向摇杆“上”“下”选择子选项,通过“中”进入子选项。
在子选项中单击返回,可退回设置APP主界面。
每个子选项中,均遵循 “上”“下”选择,“中”确定,“返回”返回 的逻辑,下文不再赘述。

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

另附电平输出样例:(以DBUS,摇杆全归中,三档拨杆下拨)

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

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

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

关于 子项
可查看 产品名称,软硬件版本等相关信息。
接收机操作说明

上电后,通过按钮可选择各个菜单/信息
在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(正方向),通道与正方向见下图
其中<左拨杆>和<右拨杆>编码规则如图所示,

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

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:连接逻辑?
当某个遥控器与某个接收机成功进行一次配对后,遥控器和接收机均会记忆对方信息,以便于:
- 下次上电后自动连接
- 某一方突然掉线/断连 后 的自动重新连接
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
克隆工程知识产权声明&复刻说明
本项目为开源硬件项目,其相关的知识产权归创作者所有。创作者在本平台上传该硬件项目仅供平台用户用于学习交流及研究,不包括任何商业性使用,请勿用于商业售卖或其他盈利性的用途;如您认为本项目涉嫌侵犯了您的相关权益,请点击上方“侵权投诉”按钮,我们将按照嘉立创《侵权投诉与申诉规则》进行处理。
请在进行项目复刻时自行验证电路的可行性,并自行辨别该项目是否对您适用。您对复刻项目的任何后果负责,无论何种情况,本平台将不对您在复刻项目时,遇到的任何因开源项目电路设计问题所导致的直接、间接等损害负责。










