J20航模遥控器开源项目系列教程(七)PPM输出 | 关于按键版本和旋转编码器版本的兼容说明、布局建议 | 关于MINI版PCB的兼容说明

我们的开源宗旨:自由 协调 开放 合作 共享
拥抱开源,丰富国内开源生态,开展多人运动,欢迎加入我们哈~
和一群志同道合的人,做自己所热爱的事!
项目开源地址:https://github.com/J20RC/STM32_RC_Transmitter
码云(Gitee)地址:https://gitee.com/J20RC
QQ交流群:1091996634 【密码:J20】
1.遥控器的PPM输出
PPM输出是什么?能做什么?
笔者在这篇文章中详细汇总了PPM协议 https://www.cnblogs.com/cai-zi/p/14110204.html,感兴趣的小伙伴可以前往查看哈~
比如遥控器接电脑玩模拟器,比如用PPM连接高频头来增加遥控距离,当然还有我们玩多轴,要将接收机的信号传输给飞控时,每个通道一组物理连线的方式就显得非常的繁琐和没有必要。这时候就要用到PPM了。

如何制作PPM输出引脚?
从2.2版本的固件起,J20航模遥控器开始支持PPM输出(固件下载:https://gitee.com/J20RC/STM32_RC_Transmitter/releases/2.2)
PPM输出只需GND和信号线即可,信号线接在PC13引脚,可使用3.5mm耳机插座进行安装。



温馨提醒:
由于PPM输出是最高优先级中断,不使用时请关闭【输出设置>>PPM输出】)。
2.按键版本、旋转编码器版本的制作指南
从2.2版本的固件起,J20航模遥控器同时发布按键和EC11旋转编码器两个版本(固件下载:https://gitee.com/J20RC/STM32_RC_Transmitter/releases/2.2)
2.1旋转编码器版本
keil5源代码工程默认适配EC11旋转编码器版本,如果您想使用按键版本:
请在Keil5中打开工程后,点击魔法棒(Options for Target...)
点击选项栏 C/C++ >> Preprocessor Symbols 的define文本框中删除 EC11_VERSION 即可。

六个按键定义:
1 CH1Left 接PB5 【home】
2 CH1Right接PB4
3 CH2Down 接PB3 【确定】
4 CH2Up 接PA15 【返回】
5 CH4Left 接PA12 【数值-】
6 CH4Right接PA11 【数值+】
旋转编码器模块:
GND 电源地
VCC 接3.3V电源
SW 接PB11
DT 接PB10
CLK 接PB1
短按旋转编码器进入菜单,长按旋转编码器/短按CH1Left键退出菜单。
旋转编码器版本布局建议:

2.2按键版本
七个按键定义:
1 CH1Left 接PB5 【确定】
2 CH1Right接PB4 【返回】
3 CH2Down 接PB3 【菜单向下】
4 CH2Up 接PA15 【菜单向上】
5 CH4Left 接PA12 【数值-】
6 CH4Right接PA11 【数值+】
7 MENU 接PB11 【菜单】
短按MENU键进入/退出菜单,CH2Down键和CH2Up键轮询菜单。
按键版本布局建议:

3.关于兼容MINI版PCB的说明
基础版遥控器mini板PCB 1.0版本的CSN/CE/IRQ连线与之后的版本不同,工程默认适配2.0版本PCB。
如果您使用的是1.0版本PCB,请在Keil5中打开工程后,点击魔法棒(Options for Target...)
点击选项栏 C/C++ >> Preprocessor Symbols 的define文本框中删除 NRF_PIN 即可。

mini板PCB 1.0版本 无线模块与STM32的连接:
NRF24L01模块:
GND 电源地
VCC 接3.3V电源
CSN 接PA8
SCK 接PB13
MISO 接PB14
MOSI 接PB15
CE 接PA9
IRQ 接PB12mini板PCB 2.0版本 无线模块与STM32的连接(调换了CSN/CE/IRQ):
NRF24L01模块:
GND 电源地
VCC 接3.3V电源
CSN 接PB12
SCK 接PB13
MISO 接PB14
MOSI 接PB15
CE 接PA8
IRQ 接PA9
写在最后
首先感谢项目中所有的贡献者!(截止2020.12.21)
* 蔡子CaiZi(B站up主) https://space.bilibili.com/349576976
* A-XIN;
* 小何;
* ZL_Studio(B站up主)https://space.bilibili.com/364251289
* 王天天@WangTiantian139 https://wangtiantian139.github.io/
* 刘桶桶;
* 简繁;
* 王博;
* 与非门;
* Talons;
* 大米粥;
* P a S S ||;
* 佚名;
* 小吴;
* xuech007;特别感谢正点原子提供的STM32例程和开源社区http://www.openedv.com/
QQ交流群:1091996634 【密码:J20】
J20航模遥控器开源项目系列教程(七)PPM输出 | 关于按键版本和旋转编码器版本的兼容说明、布局建议 | 关于MINI版PCB的兼容说明的更多相关文章
- J20航模遥控器开源项目系列教程(一)制作教程 | 基础版V1.0发布,从0到1
我们的开源宗旨:自由 协调 开放 合作 共享 拥抱开源,丰富国内开源生态,开展多人运动,欢迎加入我们哈~ 和一群志同道合的人,做自己所热爱的事! 项目开源地址:https://github.com/C ...
- J20航模遥控器开源项目系列教程(五)| 制作STM32F0接收机,8路PWM输出,SBUS输出,PPM输出 | 加密狗无线化,畅玩飞行模拟器
我们的开源宗旨:自由 协调 开放 合作 共享 拥抱开源,丰富国内开源生态,开展多人运动,欢迎加入我们哈~ 和一群志同道合的人,做自己所热爱的事! 项目开源地址:https://github.com/J ...
- J20航模遥控器开源项目系列教程(二)使用说明 | 遥控器制作完成了,怎么用?
我们的开源宗旨:自由 协调 开放 合作 共享 拥抱开源,丰富国内开源生态,开展多人运动,欢迎加入我们哈~ 和一群志同道合的人,做自己所热爱的事! 项目开源地址:https://github.com/C ...
- J20航模遥控器开源项目系列教程(三)开发说明 | 想要自己改造程序,扩充功能,怎么实现?
我们的开源宗旨:自由 协调 开放 合作 共享 拥抱开源,丰富国内开源生态,开展多人运动,欢迎加入我们哈~ 和一群志同道合的人,做自己所热爱的事! 项目开源地址:https://github.com/C ...
- J20航模遥控器开源项目系列教程(六)亚克力外壳制作
我们的开源宗旨:自由 协调 开放 合作 共享 拥抱开源,丰富国内开源生态,开展多人运动,欢迎加入我们哈~ 和一群志同道合的人,做自己所热爱的事! 项目开源地址:https://github.com/J ...
- J20航模遥控器开源项目系列教程(四)PCB打印 | 嘉立创PCB下单教程,5元顺丰包邮解君愁!
我们的开源宗旨:自由 协调 开放 合作 共享 拥抱开源,丰富国内开源生态,开展多人运动,欢迎加入我们哈~ 和一群志同道合的人,做自己所热爱的事! 项目开源地址:https://github.com/J ...
- 致敬学长!J20航模遥控器开源项目计划【开局篇】 | 先做一个开机界面 | MATLAB图像二值化 | Img2Lcd图片取模 | OLED显示图片
我们的开源宗旨:自由 协调 开放 合作 共享 拥抱开源,丰富国内开源生态,开展多人运动,欢迎加入我们哈~ 和一群志同道合的人,做自己所热爱的事! 项目开源地址:https://github.com/C ...
- ABP框架搭建项目系列教程基础版完结篇
返回总目录<一步一步使用ABP框架搭建正式项目系列教程> 经过前面十二篇的基础教程,现在终于该做个总结了. 回顾 第一篇,我们建议新手朋友们先通过ABP官网的启动模板生成解决方案,因为这样 ...
- webpack4 系列教程(七): SCSS提取和懒加载
教程所示图片使用的是 github 仓库图片,网速过慢的朋友请移步>>> (原文)webpack4 系列教程(七): SCSS 提取和懒加载. 个人技术小站: https://god ...
随机推荐
- 4、网络并发编程--僵尸进程、孤儿进程、守护进程、互斥锁、消息队列、IPC机制、生产者消费者模型、线程理论与实操
昨日内容回顾 操作系统发展史 1.穿孔卡片 CPU利用率极低 2.联机批处理系统 CPU效率有所提升 3.脱机批处理系统 CPU效率极大提升(现代计算机雏形) 多道技术(单核CPU) 串行:多个任务依 ...
- mysql data local的使用导入与导出数据到.txt
一.先创建表 CREATE TABLE stu(id INT UNSIGNED AUTO_INCREMENT,NAME VARCHAR(15) UNIQUE, /* 唯一约束 , 可以不填写,如果填写 ...
- dbTable
标签: <my-Double-Table double-Table="doubleTable" head-List="headList" select-M ...
- JUC之Java中的阻塞队列及其实现原理
在文章线程池实现原理 - 池塘里洗澡的鸭子 - 博客园 (cnblogs.com)中介绍了线程池的组成部分,其中一个组成部分就是阻塞队列.那么JAVA中的阻塞队列如何实现的呢? 阻塞队列,关键字是阻塞 ...
- 【转】k8s集群自定义clusterRole样例
对pod资源可以删除,进入终端执行命令,其他资源只读权限 apiVersion: rbac.authorization.k8s.io/v1 kind: ClusterRole metadata: an ...
- Sqlmap数据库注入攻击
实验目的 利用sqlmap命令破解出access数据中的admin的密码bfpns 实验原理 SQLMap是一个先进的自动化SQL注入工具,其主要功能是扫描.发现并利用给定的URL的SQL注入漏洞.目 ...
- [题解]UVA10054 The Necklace
链接:http://vjudge.net/problem/viewProblem.action?id=18806 描述:给出一堆珠子,每个珠子有两种颜色,有一端颜色相同的珠子可以串在一起,问是否可以把 ...
- RFC2544背靠背测试——信而泰Renix测试软件实操
文章关键词:背靠背测试.合法最小帧间隙.缓存区结构.吞吐量测试. 背靠背测试背景: 随着网络规模的扩大,大量的路由更新消息.频繁的文件传输和数据备份等操作都会导致数据在一段时间内急剧增加,甚至达到该物 ...
- 如何用excel搭建数据模型,销售数据管理软件
过完了国庆和中秋的双节后,就进入了2020年的倒计时了,相信许多小伙伴还没反应过来,怎么感觉时间过的这么快,唰的一下一年就过去了四分之三.对于销售人员来说,更是无比的压力山大,对于他们来说,Q4季度 ...
- NFA转化为DFA
NFA(不确定的有穷自动机)转化为DFA(确定的有穷自动机) NFA转换DFA,通常是将带空串的NFA(即:ε-NFA)先转化为不带空串的NFA(即:NFA),然后再转化为DFA. 提示:ε是空串的意 ...