遥控ppm信号解码转pwm 用atmega328实现八通道输出
福斯i6遥控升级10通道,只有六通道接收机支持ppm输出,想用其余通道怎么办? 简单快捷方法——买一个十通道接收啊!!{:1_12:}{:1_12:}进入主题!来另一种方法DIY,(在此感谢arduino项目开发者,arduino给我此作品带来极大便利)重新对ppm信号解码!(别人忙着复习期中考试,我却忙着做ppm解码器,{:1_3:},花了两个下午,程序写好!!)
什么是ppm信号?
PPM信号是将多个控制通道(理论可10个控制通道)集中放在一起调制的信号。
也就是一个PPM脉冲序列里面包含了多个通道的信息。如下图所示(此图是借用的)更多资料请自行查阅。
http://www.moz8.com/forum.php?mod=image&aid=261887&size=300x300&key=a97dcd7f70039fc8&nocache=yes&type=fixnone
开始构思程序前,网上查阅了很久,就是测量出图中t1、t2、……的时长,但是我在程序设计时发现记录下时间了,怎样把时间对应产各通道并产生pwm信号遇到问题(八路pwm)!
于是又换了另一种思路,不测量t1、t2、……具体时间,只要捕捉到起点和终点即可。
例如;解码出第一通道信号
(1)定义一个输出pwm引脚;
(2)当检测到t1时段起点时刻,输出高电平。
(3)检测到t1时段终点时刻,输出低电平。
提到捕捉起点终点位置,怎么捕捉呢?
328芯片有两个外部中断,
attachInterrupt(0, RC_in, RISING); //上升沿触发中断
利用外部中断捕捉到时间变化始末位置。
接下来还有一个重要步骤,(ppm信号是连续不断的从接收机输出)我们怎么知道捕捉到的是第几通道的始末点呢?
借用一张图,先谢谢原创者
http://www.moz8.com/forum.php?mod=image&aid=261888&size=300x300&key=775d9e73919adb3b&nocache=yes&type=fixnone
绿色区域时间肯定大于3毫秒(八个通道ppm)
http://www.moz8.com/forum.php?mod=image&aid=261889&size=300x300&key=e6c7eb3e3632c8e7&nocache=yes&type=fixnone
pulseIn函数用于读取引脚脉冲的时间长度,脉冲可以是HIGH或LOW。如果是HIGH,函数将先等引脚变为高电平,然后开始计时,一直到变为低电平为止。返回脉冲持续的时间长短码字心累!!!到此结束!!大家有兴趣自己做了试试!转载请注明出处,谢谢!
http://www.moz8.com/forum.php?mod=image&aid=261890&size=300x300&key=e868e191e12dd7dd&nocache=yes&type=fixnone
http://www.moz8.com/forum.php?mod=image&aid=261891&size=300x300&key=5965d2d5cc355a53&nocache=yes&type=fixnone
›论坛›开源技术›开源技术›发表帖子
[*]发表帖子
[*]发起投票
http://www.moz8.com/static/image/common/info_small.gif 还可输入 19 个字符
UndoRedo
全屏常用纯文本
monospace3HrBIUColorBgColorUrlUnlink
TableRemoveformat
AutotypesetLeftCenterRightFloatLeftFloatRightOrderedlistUnorderedlist
表情!
图片附件音乐视频Flash@朋友词语商品商品
引用代码FreeHideWord 粘贴下载图片PageIndexhttp://www.moz8.com/static/image/magic/doodle.small.gifPassword
楼主,有详细介绍PPM协议的资料吗?给个连接也行,想研究下啊 有用学习了,谢谢分享! 都是高手顶贴 先顶一个,可惜无法下载,没有多余的牛币 学习学习, 这是个好东西啊 萝莉大神不是有DIY的教程吗?
期待福斯i6的14通道固件和中文固件放出来 谢谢谢谢谢谢 顶帖。。。。。。。
好贴,非常有帮助 阿萨彩 发表于 2018-8-5 12:03 static/image/common/back.gif
楼主,这个文件直接炸了
啥文件http://www.moz8.com//mobcent//app/data/phiz/default/14.png
手机看和电脑上编的掉了一段话
沙发,我要围观
W5NhMe6zrr 发表于 2017-11-22 23:33 static/image/common/back.gif
沙发,我要围观
睡觉吧
顶一个
本帖最后由 caohaizhijia 于 2017-11-23 08:43 编辑
福斯i6遥控升级10通道,只有六通道接收机支持ppm输出,想用其余通道怎么办? 简单快捷方法——买一个十通道接收啊!!http://www.moz8.com//mobcent//app/data/phiz/default/03.pnghttp://www.moz8.com//mobcent//app/data/phiz/default/03.png
进入主题!来另一种方法DIY,(在此感谢arduino项目开发者,arduino给我此作品带来极大便利)重新对ppm信号解码!(别人忙着复习期中考试,我却忙着做ppm解码器,,花了两个下午,程序写好!!)
http://www.moz8.com//mobcent//app/data/phiz/default/09.png
什么是ppm信号?
PPM信号是将多个控制通道(理论可10个控制通道)集中放在一起调制的信号。
也就是一个PPM脉冲序列里面包含了多个通道的信息。如下图所示(此图是借用的)更多资料请自行查阅。
开始构思程序前,网上查阅了很久,就是测量出图中t1、t2、……的时长,但是我在程序设计时发现记录下时间了,怎样把时间对应产各通道并产生pwm信号遇到问题(八路pwm)!
于是又换了另一种思路,不测量t1、t2、……具体时间,只要捕捉到起点和终点即可。
例如;解码出第一通道信号
(1)定义一个输出pwm引脚;
(2)当检测到t1时段起点时刻,输出高电平。
(3)检测到t1时段终点时刻,输出低电平。
提到捕捉起点终点位置,怎么捕捉呢?
328芯片有两个外部中断,
attachInterrupt(0, RC_in, RISING); //上升沿触发中断
利用外部中断捕捉到时间变化始末位置。
接下来还有一个重要步骤,(ppm信号是连续不断的从接收机输出)我们怎么知道捕捉到的是第几通道的始末点呢?
借用一张图,先谢谢原创者
绿色区域时间肯定大于3毫秒(八个通道ppm)
pulseIn函数用于读取引脚脉冲的时间长度,脉冲可以是HIGH或LOW。如果是HIGH,函数将先等引脚变为高电平,然后开始计时,一直到变为低电平为止。返回脉冲持续的时间长短!一帧数据中,绿色段时间肯肯定是最长的,于是检测出这这段时间,那么下一次上升沿就是第一通道起点,这样就解决同步问题!!到此结束!!大家有兴趣自己做了试试!转载请注明出处,谢谢!
代码在原贴下面自行下载!
接线图
顶一个。。。
顶一个。。。多谢分享
caohaizhijia 发表于 2017-11-23 08:30 static/image/common/back.gif
接线图
不错不错,顶一个
富斯控,期待做得更好! ∮连∮ 发表于 2017-11-24 21:58 static/image/common/back.gif
富斯控,期待做得更好!
http://www.moz8.com//mobcent//app/data/phiz/default/14.png我发现富斯十通道ppm信号输出只有八个通道的信号http://www.moz8.com//mobcent//app/data/phiz/default/14.png不知道咋回事
∮连∮ 发表于 2017-11-24 21:58 static/image/common/back.gif
富斯控,期待做得更好!
ppm只能输出八个通道
thx......................................... 收藏备用 好东西,支持一下 楼主好 有没有SBUS的相关资料 谢谢 还没到那个境界,只能帮顶 这是个好东西啊
页:
[1]
2