5iMX.com 我爱模型 玩家论坛 ——专业遥控模型和无人机玩家论坛(玩模型就上我爱模型,创始于2003年)

标题: 用飞行摇杆替换遥控器来驾驶飞机,声卡输出,X52+DSX7测试成功 [打印本页]

作者: 匪兵甲    时间: 2010-1-17 18:40
标题: 用飞行摇杆替换遥控器来驾驶飞机,声卡输出,X52+DSX7测试成功


X52飞行摇杆,赛钛客的贵一点要好几百,清华和其他厂家出的只要200-300大元。
据说还有个脚舵。

问题不是这个有些啥,问题是怎么用这玩意把遥控器的杆换掉。

希望能把4个比例摇杆换成这个来操纵,然后信号还是通过遥控器发射出去。其他还有几个开关通道也能用上的话就好了。

意思就是界面是这玩意(正儿八经的战机界面哦),发射信号的控还是那个控。

再买个投影机,面前树个大屏幕,嘿嘿。。。

2010年2月1日更新:
初步的声卡方案的源代码和可执行文件。源代码为Visual Basic 6.0 (久经考验滴成熟品牌,目前已经被微软抛弃,莫有天理!! )写成,最低运行环境DirectX 8 (应该大家都是DirectX 9.0c 以上了,完全不成问题)。
下 载: 右键点科学家同学的照片,选保存图片(有的模友跑去保存网页去了,我晕!),然后把后缀从 jpg 改成 rar 。如果淘宝限制看不到图,到这个帖子的11楼去找。 如果保存回来的图片大小是59k,就是正确的,应该没有问题。


补充: 事实上,飞行摇杆可以直接用来飞我们的G4之类的模拟软件的,不需要任何额外的软硬件。详见 这个帖子


2010年2月10日更新:
在 jr12ms 同学的帮助下,测试成功,详见第13页 255楼。






[ 本帖最后由 匪兵甲 于 2010-2-10 23:19 编辑 ]
作者: 匪兵甲    时间: 2010-1-17 18:43
用函道机来飞,F22或者B2。

装上两枚火 箭,到时候右手大拇指往上一弹,打开火控安全扣,一按,Fire! Missile is hitting target!

:em01:
作者: 匪兵甲    时间: 2010-1-17 18:48
求改动最小的方案,控为DSX7.
作者: 匪兵甲    时间: 2010-1-17 19:03
:em15: :em15:
作者: 匪兵甲    时间: 2010-1-17 19:26
原帖由 Edward 于 2010-1-17 19:13 发表

看来是你看电影看多了,空战瞬息万变,都是以几十分之一秒来计量的,根本不可能有那么多时间给你说那么多东西。所以,空军每个动作或命令都只会用一两个单词表述。

恩,《独立日》里面射核弹出去的时候那哥们就很简洁: Here we go...
作者: smalllion4    时间: 2010-1-17 19:28
大家别离题了
作者: 飞行无极限    时间: 2010-1-17 19:32
7楼绝对正解。《独立日》里是乱说的。

楼主的要求,理论上毫无难点,难的是楼主不懂电子。而且貌似也不玩模飞。
简单改,找到电位器(X52的X,Y轴是霍尔,不是电位器)的3根线,然后替换遥控器杆上的电位器线。但这个太山寨了。
稍正规点,用单片机读取杆位,做PPM编码后送给遥控器,遥控器打开教练功能。
最理想的是:带个笔记本,直接在电脑里显示FPV视频,电脑软件通过USB读取杆的数据,然后直接用串口或并口的管脚模拟PPM信号输出,然后接遥控器教练口。
这2个口现在的笔记本几乎都没有了,但可以用PCI卡转出来,用USB转串口的话,需要找全功能的USB转串口线。

最后一个,我以前学Borland C++ Builder的时候就差不多做到了,只是练手用的程序,所以问题不少。楼主想要的话,要么自己写,要么等论坛的其他程序高手写吧。记得有人发帖,写过并口出PPM信号的程序。
其实也没多难,一个USB读取函数+一个串口函数,写完估计都没几行。安下心,基础再差,你3个月内绝对写的出来了。

[ 本帖最后由 飞行无极限 于 2010-1-17 19:44 编辑 ]
作者: 匪兵甲    时间: 2010-1-17 20:06
基础再差,你3个月内绝对写的出来了。
楼主在找绳子准备上吊...
作者: 飞行无极限    时间: 2010-1-17 20:23
技多不压身。有目的,有兴趣,学的快。
你以为我是为什么学BCB的?
当初是为玩模拟飞行时能用上外置的仪表,需要上位机软件配合把飞行数据送出来,原理简单,可是没人做,于是就自己做。
学软件,就一个好处,不花钱,我一本书没买,资料是下 载的,软件也是下 载的,有问题上网搜,前后也就几个月的时间。
作者: 地脚螺栓    时间: 2010-1-17 20:25
绝对杯具
作者: fujianshu    时间: 2010-1-17 20:40
好玩意
作者: 失速飞行    时间: 2010-1-17 22:31
用这个玩模型是不是太……除非在家里玩,要是出外场带这个+脚舵,有点累吧。但在家里用这个玩FPV好像又不太放心。美军无人机是不是用的这个?:em15:
作者: 大漠孤鹰    时间: 2010-1-17 22:44
我认为可行,继续探讨!
作者: qzhu    时间: 2010-1-17 22:50
这个不用脚舵.Z轴,也就是尾舵就在右手上,也就是说
左手油门
右手 副翼,尾舵,尾翼

这样控制起来比遥控器方便多了,而且很直观
作者: woyehua    时间: 2010-1-17 23:45
哈哈   什么时候方案出来了   也告兄弟一声   我也拿去改下
作者: 飞越蓝天    时间: 2010-1-18 08:27
有想法!
作者: tonny1025    时间: 2010-1-18 20:54
我正在搞这个,摇杆部分很简单不是问题,关键是PPM信号输出,对单片机一窍不通。最近也忙就停下来了。
很希望有人能指教一下给个方向。
作者: jason_cx    时间: 2010-1-18 22:44
原帖由 飞行无极限 于 2010-1-17 19:32 发表
7楼绝对正解。《独立日》里是乱说的。

楼主的要求,理论上毫无难点,难的是楼主不懂电子。而且貌似也不玩模飞。
简单改,找到电位器(X52的X,Y轴是霍尔,不是电位器)的3根线,然后替换遥控器杆上的电位器线。但 ...


老外那里已经有成品在卖了,total command,好像是这个名字,不过比较贵
作者: 匪兵甲    时间: 2010-1-18 23:16
领4000刀的人买200刀的东西,领4000块的人买200块的东西,感觉是一样的。

考虑到兑换率的差别,我认为我还是买人民币标价的较为妥当。
作者: 飞行无极限    时间: 2010-1-18 23:46
楼主这句说的好。

22楼的自己看下舵机的信号格式就行了。不要用单片机,只会增加系统的复杂度,用串口的RTS或别的脚来模拟时序,都可以了的。
作者: 匪兵甲    时间: 2010-1-19 00:08
25楼的C++!

你又一脚把航模问题踢回编程问题,我很郁闷。

我今天在程序员群说了这个事情了,同志们都很生气啊。。。:em18:

我还是觉得通过笔记本来搞定较为容易。

重头来是不厚道的,为什么同一个问题我们要二次开发?

既然你已经有成果,不如发表出来,附上要输出的信号标准之类。。。:em15: :em15:

如何?
作者: 匪兵甲    时间: 2010-1-19 00:15
俺的理解是程序抓取X52输出的控制信号,然后由笔记本输出到遥控去。

X52到电脑是现成的,那么实物只需要一根从笔记本到遥控的线,其他都是程序。

这根线,笔记本这头是USB、串并口甚至PS2口都没啥,考虑USB;
遥控那头,能插的地儿只有教练口,不知道它接受什么样的数据——拿DSX7来说?PPM,不同的控有自己的编码方式么?

你都研究半天了,不如说多一点出来嘛 :em01:
作者: jason_cx    时间: 2010-1-19 01:18
简单问题搞复杂了,直接拆控,替换电位器,简单实用可靠,不过通道数少了点儿。

老外的那个软件和联接器我找到了:ServoCommander software + PCTx - $149.99
太贵!不过产品和软件比较成熟稳定:em15:
作者: jason_cx    时间: 2010-1-19 01:22
http://exposureroom.com/members/ ... 919789c7acc2579fe7/
这是台湾一个伙计在RCG上发的,貌试要商品化,不过一直没动静了
作者: 失速飞行    时间: 2010-1-19 01:39
原帖由 匪兵甲 于 2010-1-19 00:15 发表
俺的理解是程序抓取X52输出的控制信号,然后由笔记本输出到遥控去。

X52到电脑是现成的,那么实物只需要一根从笔记本到遥控的线,其他都是程序。

这根线,笔记本这头是USB、串并口甚至PS2口都没啥,考虑USB;
...

PPM,不同的控有自己的编码方式么?
这个不复杂,一种是JR的,另一种是FUTABA的,即J和F两个格式,区别只是一种高电平代表脉冲信号,另一种低电平代表脉冲信号。关键是那个东东的输出信号是个什么样子的,能解析出来就好办了,改成PPM信号是很简单的事。
作者: 失速飞行    时间: 2010-1-19 01:55
原帖由 匪兵甲 于 2010-1-19 01:51 发表

DSX7有个教练模式,可以输出信号。你能读取这个信号不?

你用示波器看看,给个图看看。如果信号频率不高,就用声卡示波器软件试试。
那个东东叫DSX7?晕,原来是个控……
我的意思是能不能解析X52输出的信号

[ 本帖最后由 失速飞行 于 2010-1-19 02:04 编辑 ]
作者: 匪兵甲    时间: 2010-1-19 02:11
我的意思是能不能解析X52输出的信号
这个不需要,直接用程序抓取就行了。

X52是连到电脑里的游戏杆,它的动作是可以直接从电脑上抓取到的。所以难点不在这个上。

难点在于要输入遥控器的信号应该是什么样子的。

你用示波器看看
没有示波器。
你可以用示波器抓一个你自己的控输出的信号来看看。

我说的DSX7有个教练模式,可以输出信号。你能读取这个信号不?意思是DSX7有个教练功能,两个一样的DSX7可以连起来,一个做教练机一个做学习机,教练机可以接管学习机,这时教练机通过教练线向学习机发送的信号就直接通过学习机发射出去了。

[ 本帖最后由 匪兵甲 于 2010-1-19 02:17 编辑 ]
作者: 匪兵甲    时间: 2010-1-19 02:15
简单点说:

X52 ---A---- 手提电脑(B. 动作抓取,信号准备) ---C----遥控器

A是现成的,B是简单的,你搞得定C,就没问题了

就说你需要什么样的信号就可以了。
作者: 失速飞行    时间: 2010-1-19 02:20
这是我的控的PPM信号,本来是4通的,现在改成6通的在用,低电平是脉冲信号
你刚说的就是使用教练线嘛,很多控都有这个功能的吧,反正我这个控有,GWS的,两个相同的控一连,一个控可以控制另一个。不过这好像有点跑题了吧
作者: 失速飞行    时间: 2010-1-19 02:21
原帖由 匪兵甲 于 2010-1-19 02:15 发表
简单点说:

X52 ---A---- 手提电脑(B. 动作抓取,信号准备) ---C----遥控器

A是现成的,B是简单的,你搞得定C,就没问题了

就说你需要什么样的信号就可以了。

我怎么觉得B才是关键呢:em17:
作者: 匪兵甲    时间: 2010-1-19 02:25
没跑题。

C++那个上将说,我们的程序是可以模拟出PPM信号的。那这样就好了。

我们这边就需要这样的提示:
比如,第一比例通道为最低值的时候我该输出什么样的信号;为最高值的时候该输出什么信号;
第2呢?
信号中我该如何表达,来区分第1、2、3.。。。

叠加的时候是直接叠加么?如此之类的问题。
作者: 匪兵甲    时间: 2010-1-19 02:26
我怎么觉得B才是关键

专业不同,专业互补:em15:
所以很明显我们看到的难点是不同滴。。。嘿嘿
我问的问题你可能觉得巨简单吧?
作者: 失速飞行    时间: 2010-1-19 02:31
根本就不需要控了,你C出来的信号直接到功放就可以FPV了,接遥控也只是用到它的发射电路,还不如直接到功放呢。反正对我来说,“C”是最简单的,关键是C 它爹——B长什么样:em15: 这几天没事可以研究下。
明天再聊,困……
作者: 匪兵甲    时间: 2010-1-19 02:40
哈,Okay
作者: lsylove2008    时间: 2010-1-19 03:11
应该是必须经过电脑处理的,否则成本太高。

简单办法:写程序读取摇杆数据,编码PPM,经声卡送入功放。

复杂办法:写程序读取摇杆数据,编码PCM,经声卡送入功放(也可直接使用2.4数传,
          主要为了解决PPM通道数量不够的问题)

另:X52据说采用霍尔定位的,X、Y轴上不是普通的3线电位器,所以无法直接连接遥控的。上面那个兄弟的GTFP,是光电定位的,俺也有一个,同样,不能直接接遥控。
作者: 匪兵甲    时间: 2010-1-19 03:44
以下这段来自blog.gkong.com的内容涉嫌严重误导,这家伙害人不浅啊!!!,正确的PPM理解,见125楼



查了一下,资料不多,不过还是找到了清楚的PPM的解释。

这个事情就简单了。我的理解,你只要给出下列值就可以了:

具体型号的遥控器/功放所能接受的:

一个PPM循环的宽度(多少毫秒)
Header宽度(包括总宽度多少微秒,脉冲宽度多少毫秒)
各Channel的宽度(包括每个Channel总宽度多少微秒;脉冲宽度——相当于摇杆位置为最高、最低、居中时各为多少微秒)

就可以了。也就是说,在电脑的某个口子上(甭管是USB,还是串口,还是并口),接出两根电线来,一根地线一根信号线,我们这边做到:
根据X52飞行摇杆的状态,你在这两根线上找到类似图上的那个波形输出是没有多大问题的。


至于电位高度(高低电位电压到底是多少),可能跟电脑有关,输出的时候能不能控制暂时不知道,那么,输出后可能需要调整(这个就是什么三极管之类的事情了,你的长项)。

BTW:
如果不出意外,你的测量结果可能如下:
一个PPM循环的宽度 = 20 毫秒
摇杆低位 = 760微秒
摇杆居中 = 1528微秒
摇杆高位 = 2284微秒

摇杆能测量到的步进是6微秒

[ 本帖最后由 匪兵甲 于 2010-1-25 06:24 编辑 ]
作者: 匪兵甲    时间: 2010-1-19 06:39
http://bbs.5imx.com/bbs/viewthread.php?tid=328627

这里说:

官网FAQ:
The DX7 is a purpose-built 2.4GHz spread spectrum radio. With the DX7, the stick inputs are directly converted to digital code bypassing the PPM stream.
即摇杆输入直接转换为数字编码,跳过了PPM过程。DSX7按理说和DX7是一样的

原生2.4G内部互联都没有使用PPM,但为了兼容,主板上同时有PPM信号输出
(DX7se除外)


那俺们从电脑上得到的可不就直接是数字的结果,要转成什么玩意发射出去呢?貌似回答在这里:
http://bbs.5imx.com/bbs/viewthread.php?tid=235437

[ 本帖最后由 匪兵甲 于 2010-2-1 17:49 编辑 ]
作者: 匪兵甲    时间: 2010-1-19 06:50
看得我头晕脑胀。

这样,俺从电脑这边只每隔20毫秒提供数字格式(或者编码的)二进制数据,表达每个X52飞行摇杆的开关和舵量等状态。


这个数据传出去怎么变成送到遥控器的信号也好,送到功放的信号也好,拿单片机搞定吧?
这个玩意,模拟器就是把遥控信号输到电脑,卖100来块;现在反过来从电脑输到遥控,总不至于费用就飞起来了嘛

[ 本帖最后由 匪兵甲 于 2010-1-19 06:54 编辑 ]
作者: bg2vn    时间: 2010-1-19 11:12
标题: 我已经用这个杆飞了两年了,后面接了太电脑,串口再出来接数据电台,嫖过

作者: 失速飞行    时间: 2010-1-19 11:46
原帖由 匪兵甲 于 2010-1-19 06:50 发表
看得我头晕脑胀。

这样,俺从电脑这边只每隔20毫秒提供数字格式(或者编码的)二进制数据,表达每个X52飞行摇杆的开关和舵量等状态。


这个数据传出去怎么变成送到遥控器的信号也好,送到功放的信号也好,拿单 ...

空谈无益,直接整台X52过来,俺几天就能搞定:em15:
作者: tonny1025    时间: 2010-1-19 12:02
严重关注此贴,
    获取摇杆信号的类似于WINDOWS游戏杆调试程序二百行不到的代码就能写好了(本人已完成)。
关键就是PPM方面的知识哪位能给个入门的教程啥的,而且有人提到那个音频教练口,那个是输出口控不带接受功能的话直接把信号往里灌也灌不进去吧?
这个也不可能是三言两语就能说得明白的。
上面各位给了很多有用的东西,谢谢各位。继续关注。

[ 本帖最后由 tonny1025 于 2010-1-19 12:04 编辑 ]
作者: 匪兵甲    时间: 2010-1-19 15:13
那个是输出口控不带接受功能的话直接把信号往里灌也灌不进去吧?

33-39楼已经把这个问题讲得很清楚。

我们代码工这边搞定我们这半截,他们电焊工那边搞定他们那半截。

PPM方面的知识哪位能给个入门的

看42楼,再说清楚点:
一个PPM循环(你叫它包也好,帧也好,反正就是一段完整的数据包)就是一段定长的脉冲波,假定长度20毫秒。数据是由包内的每个脉冲的时间长度来表达的。
它里面可能有个包头,就是header,表示包的起点,跟着是表达每个通道值的脉冲。
比如:
摇杆低位 = 760微秒 = 0x00
摇杆居中 = 1528微秒 = 0x80
摇杆高位 = 2284微秒 = 0xFE
若步进是6微秒,则766微秒长度的脉冲就表达了一个0x01的值,772微秒长度为0x10...

即:0是一个摇杆的最低值,254是最高值,255表示摇杆关机

空谈无益,直接整台X52过来,俺几天就能搞定:em15:


没有问题,我可以去淘宝订购一个,直接送到你那里去,PM我地址就成。:loveliness:  弄好了再寄还给我哟,哈哈
不过,好像C段的工作跟这个没啥子关系,47楼可以直接给你个模拟程序,就可以完成C段的制作测试。(用个可以在屏幕上拖动的滑杆,鼠标拖一下0-255,就可以为你的C段提供数据来源并完成测试了)

[ 本帖最后由 匪兵甲 于 2010-1-19 15:17 编辑 ]
作者: 匪兵甲    时间: 2010-1-19 15:24
我已经用这个杆飞了两年了,后面接了太电脑,串口再出来接数据电台,嫖

要求分享制作技术:em01:

[ 本帖最后由 匪兵甲 于 2010-1-19 15:34 编辑 ]
作者: changco    时间: 2010-1-19 19:51
这个贴子要顶,完成后分享一下啊.我一直用x52飞模拟飞行,如果能控制模型就太好了.
作者: tonny1025    时间: 2010-1-19 20:51
给大家看看我的摇杆测试程序。很简单很丑陋的软件,不过我想告诉大家的是,我的确在学习这个,很想得到点指引帮助。
希望这个贴子能继续有朋友进来讨论,我也会和大家共享我所掌握的东西。

图中的头像就是偶。呵呵,随着摇杆的移动而改变位置。
头像随摇杆移至右上角
(, 下载次数: 121)

头像随摇杆移至左下角
(, 下载次数: 116)

油门开至最大,注意坚进度条满格
(, 下载次数: 131)

油门开至1/3,注意坚进度条1/3
(, 下载次数: 114)

1号开火键动作捕捉
(, 下载次数: 103)

2号开火键动作捕捉
(, 下载次数: 116)

用飞行摇杆来控制航模的好处很多,以后你想要几通道就能用几通道!加上功放,绝对无敌了!
福他爸的14通让它见鬼去吧!
我这个摇杆光按键的数量就有14个,加上八个轴。
摇杆的手感是遥控器不能比的,可以非常细腻,真实。用来FPV是再合适不过的了。

[ 本帖最后由 tonny1025 于 2010-1-19 20:55 编辑 ]
作者: happyskybaby    时间: 2010-1-19 21:03
这个有创意~~
作者: 失速飞行    时间: 2010-1-19 21:07
原帖由 匪兵甲 于 2010-1-19 15:13 发表

没有问题,我可以去淘宝订购一个,直接送到你那里去,PM我地址就成。:loveliness:  弄好了再寄还给我哟,哈哈
不过,好像C段的工作跟这个没啥子关系,47楼可以直接给你个模拟程序,就可以完成C段的制作测试。(用个可以在屏幕上拖动的滑杆,鼠标拖一下0-255,就可以为你的C段提供数据来源并完成测试了)

好,我也很有兴趣。就是这段时间要焊30套GPS定位器,是名副其实的“电焊工”,可能没空。你先买了在家里研究下嘛,等我搞完了这边再一起搞哈。
作者: 失速飞行    时间: 2010-1-19 21:14
原帖由 tonny1025 于 2010-1-19 20:51 发表
给大家看看我的摇杆测试程序。很简单很丑陋的软件,不过我想告诉大家的是,我的确在学习这个,很想得到点指引帮助。
希望这个贴子能继续有朋友进来讨论,我也会和大家共享我所掌握的东西。

图中的头像就是偶。呵 ...

福他爸的14通 是PCM的吧?其实做到这一步下面已经很简单了,用USB转串口线把信号给单片机生成PPM信号就行了,也行还有更好的办法,但我也只会这么做了,呵呵
作者: tonny1025    时间: 2010-1-19 21:24
原帖由 失速飞行 于 2010-1-19 21:14 发表

福他爸的14通 是PCM的吧?其实做到这一步下面已经很简单了,用USB转串口线把信号给单片机生成PPM信号就行了,也行还有更好的办法,但我也只会这么做了,呵呵

那请问有没有PPM或者单片机方面的资料共享一下啊。
我也大概知道接下应该干什么,但是没有具体点儿的教程,不从概念上理解的话无从下手啊。
谢谢。
作者: tonny1025    时间: 2010-1-19 21:55
原帖由 失速飞行 于 2010-1-19 21:46 发表

PPM很简单的,详细资料我也没有,都是从网上东看西看了解到的,主要还是为了把我的古董4通控改成6通:em15: ,相信聪明的你一定能搞定的:em24:
单片机很容易的,到网上随便下一个10天搞定单片机之类的教程看看,再 ...

有兴趣的话我可以把程序发给你。多谢你的建议。
作者: 失速飞行    时间: 2010-1-19 22:03
原帖由 tonny1025 于 2010-1-19 21:55 发表

有兴趣的话我可以把程序发给你。多谢你的建议。

谢谢,方便的话请发到usercommon@126.com,,大家合作相信很快就能搞定:em24:
作者: niba3721    时间: 2010-1-19 22:08
mark
作者: 失速飞行    时间: 2010-1-19 22:11
刚想了下,电脑软件获取X52的数据应该是通过DirectInput 吧,刚好这方面是弱项:em17: 要补课了
作者: tonny1025    时间: 2010-1-19 22:25
原帖由 失速飞行 于 2010-1-19 22:03 发表

谢谢,方便的话请发到usercommon@126.com,,大家合作相信很快就能搞定:em24:

程序已发至邮箱,多交流!
24504487有兴趣的朋友加QQ大家一起学习!搞出来了大家受益。

[ 本帖最后由 tonny1025 于 2010-1-19 22:26 编辑 ]
作者: 失速飞行    时间: 2010-1-19 23:00
原帖由 tonny1025 于 2010-1-19 22:25 发表

程序已发至邮箱,多交流!
24504487有兴趣的朋友加QQ大家一起学习!搞出来了大家受益。

收到!但只能看个大概,我对delphi熟悉点,先参考看看。谢谢
作者: 飞行无极限    时间: 2010-1-19 23:17
我错了,PPM的信号不用从串口输出,从音频口输出就行了,反正FPV时飞机上的声音没大用处。
同样的,无线的音频信号通道可以用来做飞行数据的下行,输出到麦克风上。
楼上的几位讨论的我也有心思搞搞玩了。
作者: 匪兵甲    时间: 2010-1-20 00:08
原帖由 失速飞行 于 2010-1-19 22:11 发表
刚想了下,电脑软件获取X52的数据应该是通过DirectInput 吧,刚好这方面是弱项:em17: 要补课了

Lib
"winmm.dll"


作者: 匪兵甲    时间: 2010-1-20 00:12
原帖由 飞行无极限 于 2010-1-19 23:17 发表
我错了,PPM的信号不用从串口输出,从音频口输出就行了,反正FPV时飞机上的声音没大用处。
同样的,无线的音频信号通道可以用来做飞行数据的下行,输出到麦克风上。
楼上的几位讨论的我也有心思搞搞玩了。

最好是输出到单片机编码。音频可能速度慢了,也可能电脑“噹”的一声弄出个焦点转移,结果声卡就暂停几秒,然后飞机也栽了。
单片机还有个好处就是先积累点经验,以后看看编码PCM或者直接数码输出,改变起来可能容易一点。
作者: tonny1025    时间: 2010-1-20 09:11
我已经把那个十天学会单片机的视频全下好了。嘿嘿!
这个星期天就去秋叶原淘器件去。

[ 本帖最后由 tonny1025 于 2010-1-20 09:34 编辑 ]
作者: 失速飞行    时间: 2010-1-20 11:04
原帖由 tonny1025 于 2010-1-20 09:11 发表
我已经把那个十天学会单片机的视频全下好了。嘿嘿!
这个星期天就去秋叶原淘器件去。

秋叶原?tonny是在日本啊:em22: ?难道在执行潜伏任务:em15:

[ 本帖最后由 失速飞行 于 2010-1-20 11:06 编辑 ]
作者: sklsy    时间: 2010-1-20 11:33
咨询一下各位如果想学单片机应该如何入手?我啥都不懂。电驴下了视频看了一头雾水。。
作者: 失速飞行    时间: 2010-1-20 11:39
原帖由 sklsy 于 2010-1-20 11:33 发表
咨询一下各位如果想学单片机应该如何入手?我啥都不懂。电驴下了视频看了一头雾水。。

推荐 天祥单片机系列视频教程,但强烈,注意是强烈不推荐购买他的学习板,其实自己焊一个很便宜的。如果没有基础,先把他的51单片机的教程看一遍,但不用去学;然后再看AVR的。
作者: tonny1025    时间: 2010-1-20 12:13
原帖由 失速飞行 于 2010-1-20 11:04 发表

秋叶原?tonny是在日本啊:em22: ?难道在执行潜伏任务:em15:

嗯哪,呵呵。所以得抓紧学啊。
回国后器件可能就不好找了。
我原来一直是在三国上逛的,可是那边儿发了和这个一样的贴子一会儿就沉了。
不像这边这么活跃。第一次发贴居然还被人回贴说“没钱的话你还是别玩这个了。。。”。
所以叛逃到这边来了。不过两边都上的。

[ 本帖最后由 tonny1025 于 2010-1-20 12:17 编辑 ]
作者: sklsy    时间: 2010-1-20 12:15
http://www.verycd.com/topics/251682/
请问是这个嘛?
作者: tonny1025    时间: 2010-1-20 12:33
原帖由 sklsy 于 2010-1-20 12:15 发表
http://www.verycd.com/topics/251682/
请问是这个嘛?

你搜郭天祥。我下的就是他的教程。好像在网上很有名。
这个可能也是他的,不妨都下下来看看。
作者: minority    时间: 2010-1-20 13:15
mark
作者: 匪兵甲    时间: 2010-1-20 23:27
作为一个代码工,我觉得可以看一下X52直接控制G4之类,把游戏杆状态通知Emu或者直接发送给G4.
作者: dianjita2    时间: 2010-1-20 23:42
这贴一定要留名!
作者: 走在天街    时间: 2010-1-20 23:52
严重关注 这也算是众多人心中的梦 呵呵 早日实现
作者: 匪兵甲    时间: 2010-1-21 00:04
原帖由 走在天街 于 2010-1-20 23:52 发表
严重关注 这也算是众多人心中的梦 呵呵 早日实现

It WILL be done - at a low cost.
从之前大家的讨论中,我就有一种强烈的感觉:YES WE CAN! :em24:
作者: 失速飞行    时间: 2010-1-21 00:17
原帖由 匪兵甲 于 2010-1-21 00:04 发表

YES WE CAN! :em24:

当心奥巴马找你收版权税:em15:
作者: tonny1025    时间: 2010-1-21 11:14
NND,昨天看了半个小时的单片机视频才发现自己看错了。
看的是PCB设计。教人使用软件的。
还得重下。
作者: xtjj01    时间: 2010-1-21 11:16
此贴必火,蹲坑等着,看了各位的说法,我觉得用声卡输出加上个功放确实不必再用遥控器了,遥控器顶多是多个静噪电路,但是功放也可以加上。等着结果,我也弄一个哈哈
作者: tonny1025    时间: 2010-1-21 17:02
原帖由 xtjj01 于 2010-1-21 11:16 发表
此贴必火,蹲坑等着,看了各位的说法,我觉得用声卡输出加上个功放确实不必再用遥控器了,遥控器顶多是多个静噪电路,但是功放也可以加上。等着结果,我也弄一个哈哈

等是等不来结果地!一起学着做吧。人多力量大。
作者: 失速飞行    时间: 2010-1-21 23:07
原帖由 tonny1025 于 2010-1-21 17:02 发表

等是等不来结果地!一起学着做吧。人多力量大。

tonny,你的程序是用BCB写的吧,我这运行它提示需要BCL60.BPL、RTL60.BPL,从网上下了这两个文件,但也不能运行:em18: ,出错。如果你方便的话,把程序稍微改一下,把你软件获得的摇杆数据通过串口发出去,用虚拟的串口就可以,到时我这边直接把数据送到单片机处理就行了。我们定义一个数据帧:一串摇杆数据以什么开头,以什么间隔,以什么结尾;每个摇杆数据的范围是多大。这样我就只管把这些数据转换成PPM信号输出就是了。因为我这没X52,程序写好后我传给你,实验还是要靠你做:em15:
作者: tonny1025    时间: 2010-1-21 23:12
原帖由 失速飞行 于 2010-1-21 23:07 发表

tonny,你的程序是用BCB写的吧,我这运行它提示需要BCL60.BPL、RTL60.BPL,从网上下了这两个文件,但也不能运行:em18: ,出错。如果你方便的话,把程序稍微改一下,把你软件获得的摇杆数据通过串口发出去,用虚拟的 ...

OK,没问题!
这两天看视频不亦乐乎,呵呵。
不过可能得过一个星期,我老婆大人过来了。先陪陪她老人家。弄好了我QQ和你联系。不成功绝不停手!

[ 本帖最后由 tonny1025 于 2010-1-21 23:16 编辑 ]
作者: 失速飞行    时间: 2010-1-21 23:19
顺便把你机器上的BCL60.BPL、RTL60.BPL发到我邮箱吧,我试试能不能识别其它游戏摇杆,可以的话我这边也能做做实验
作者: 匪兵甲    时间: 2010-1-22 00:02
我们定义一个数据帧:一串摇杆数据以什么开头,以什么间隔,以什么结尾;每个摇杆数据的范围是多大。这样我就只管把这些数据转换成PPM信号输出就是了


这个简单啊,我觉得。你自己都可以发送数据到串口,协议好内容就可以了。

一个比例通道可以取值为1-254,就是8位,一个字节。
最高值254,最低值0,中值为128。上下长度各为128。

协议可以采取容纳N个比例通道,连续定长,就是N+1个字节。

因为是数值段是定长,就没必要看结尾了。只需要规定开头。

开头就是一个字节的全1就可以了,发现连续的8位1,就是一个包的开头了。包与包之间用0填充,完整的一个一个字节来填。


假定N=16
就是说,你发现一个等于255(0xFF)的字节,包就开始了。在这个字节之后,连续读完16个字节,这个包就没了。然后又开始逐字节查找0xFF字节,找到,那就是下一个包的开头。
如果这16个字节全部等于0xFF,摇杆就没插上,关机了。

为安全起见,还可以把值范围限定在1-253,中值127,上下长度各为127。将254(0xFE)和0(0x00)作为保留值,不用于表达数值,专门用0来填充空白。

[ 本帖最后由 匪兵甲 于 2010-1-22 00:25 编辑 ]
作者: 失速飞行    时间: 2010-1-22 00:27
程序好写,但有个问题
PPM最多支持几个通道?7 or 8?x52的信号不可能全发出去,只能是一部分。PCM呢?或者用数传?
作者: 匪兵甲    时间: 2010-1-22 00:35
这个怕是要看接收机的能力了。按常用的20毫秒一帧PPM的话,我看7通可以了。4通用于飞行,2通用于头部随动,1通保留给机枪。

7通接收机也比较常见一点吧?9通接收机要多少银子啊?
PCM和数传肯定好,但是估计要升级接收机的话,一则普及性就较差了,二则难度加大,弄好的时间也拖长了。
我觉得可以分布走。先上7通PPM,第一步走成功;以后再谈升级不迟。
再者,一个接收机7通,假如2.4G的话,咱们都可以上两个甚至3个接收机,发射整复杂点就是了。但是那个应该是以后的事情,个人意见,第一步相对简单的成功很重要。

[ 本帖最后由 匪兵甲 于 2010-1-22 00:49 编辑 ]
作者: xtjj01    时间: 2010-1-22 09:57
我不蹲坑等,原来一直在这里看单片机学习的网站http://www.51hei.com/,这个网站的介绍通俗易懂,很容易上手。但是关键是单片机我觉得不复杂,但是我现在搞不清信号转换是怎么搞,按理说我们的手柄输出信号,接收机按照信号执行操作就可以了。另外我觉得从FPV往回传数据还是原来的设备,不用更换了,更换反而更加麻烦,分块做比较好。用声卡输出PCM是可以的,但是需要加功放并且静噪,因为现在一般机载声卡都比较次,多数是AC97的软声卡,信号一点保证都没有,飘得厉害。
作者: 失速飞行    时间: 2010-1-22 11:59
PCM比较麻烦,貌似各个厂家的PCM编码与解码都是一一对应的,不像PPM只要频率对上就能随便换用。除非能了解某一款PCM接收机的解码原理,否则是没法用的。
作者: 匪兵甲    时间: 2010-1-22 15:42
原帖由 失速飞行 于 2010-1-22 11:59 发表
PCM比较麻烦,貌似各个厂家的PCM编码与解码都是一一对应的,不像PPM只要频率对上就能随便换用。除非能了解某一款PCM接收机的解码原理,否则是没法用的。


是的,PCM是厂家各异的。所以第一步先搞PPM是最容易成功的。大家也需要成功来鼓舞士气。


往后走,我觉得可以通过电脑向单片机发送编码指令,要求单片机按照规定的格式进行编码。这样一来,就很容易地可以实现PPM、多厂家PCM、乃至数传的兼容。毕竟在电脑上改东西要比改单片机、动烙铁容易得多,说白了,即使一段简单的文本txt文件,也可以作为一个PCM格式的配置文件,那个很容易。

电脑读出配置文件,发送给单片机,单片机就知道随后的数据如何编码。我们只需要约定这个关于编码格式的协议就可。

[ 本帖最后由 匪兵甲 于 2010-1-22 15:50 编辑 ]
作者: 飞行无极限    时间: 2010-1-22 16:15
考虑到个人烧写芯片的方便,单片机用STM32会方便写,因为串口横竖是要用的。51之类的虽然能用并口,但现在有并口的机子越来越少,而且并口线还要做,却只用一次,不如把精力放在串口线上。只要做好了( 卖串口转TTL线的太多了,甚至不用做),以后接PC数据,烧程序升级都是它,一劳永逸。而且笔记本加串口很容易,USB转嘛。

楼主很了解通讯嘛,也搞单片机的?你说的单个通道的数据格式就很不错,250多的分辨率足够了,但其他的部分不太合适。

我这习惯的串口数据是,AA开头,然后是数据长度,之后是数据,最后是16位校验和。假设是7个通道,全中立:
AA 09 7F 7F 7F 7F 7F 7F 7F 04 2C
这样的数据每秒出现50次,如果1秒内串口无完整数据,停止输出PPM信号。
开头的AA,可以方便以后使用任意的波特率,数据长度可定义,也方便以后改功能。

摇杆我有一个EVO和一个逻辑的钛翼,如果软件写好了,我也可以帮忙试试。

[ 本帖最后由 飞行无极限 于 2010-1-22 16:26 编辑 ]
作者: 匪兵甲    时间: 2010-1-22 16:41
楼主是写程序的,蓝领代码工,555...

我提出的方案,只是基于对字节流的解析处理的角度来看的。规定一个特别的记号表示帧开头是最直截了当的做法,面对一大溜二进制数据,这种自定义方式是最快捷的。

我对串口通许也不熟悉,如果你说的是一种成熟的广泛应用的经验,那明显应该照你的来,呵呵。
作者: 飞行无极限    时间: 2010-1-22 16:56
那你为什么不自己写摇杆程序啊?
我这个数据格式算不上成熟、广泛,也是当初自己定的,如果数据太密的话,不能保证一定能找对数据头。但我经手的产品串口协议都是这个,目前这个环境用的话,应该不会出错。
作者: 匪兵甲    时间: 2010-1-22 17:30
X52 ---A---- 手提电脑(B. 动作抓取,信号准备) ---C----遥控器

A是现成的,B是简单的,你搞得定C,就没问题了


主要是不晓得如何生成电波波形。就是C段的工作。B没问题的。失速飞行说C没问题,B有问题。

所以就打算大家取长补短罗。。。
作者: 匪兵甲    时间: 2010-1-22 17:36
用声卡输出的话,我觉得那个波形人家是指的电波波形,不是声频的波形。具体要生成那样特定的电波波形,需要研究很久滴。。。
作者: tonny1025    时间: 2010-1-22 20:17
原帖由 飞行无极限 于 2010-1-22 16:15 发表
考虑到个人烧写芯片的方便,单片机用STM32会方便写,因为串口横竖是要用的。51之类的虽然能用并口,但现在有并口的机子越来越少,而且并口线还要做,却只用一次,不如把精力放在串口线上。只要做好了( 卖串口转TTL线 ...

直接把摇杆数据传至USB口也可以吧。这样电脑连接不是更方便?
因为,从我的用途角度看我是不会搬台式机出去玩航模的。呵呵。请指教。
作者: 失速飞行    时间: 2010-1-22 20:20
原帖由 匪兵甲 于 2010-1-22 17:36 发表
用声卡输出的话,我觉得那个波形人家是指的电波波形,不是声频的波形。具体要生成那样特定的电波波形,需要研究很久滴。。。

这两者没什么区别,只不过PPM信号是频率稍有变化、振幅固定的方波,而音频的波形看起来比较无序。PPM接收机也就是个调频收音机,它把收到的信号送到一个串进并出的边沿触发移位寄存器,从这里出来就是一个个单独摇杆的PPM信号了。
可见要通过声卡生成PPM信号也不难,只需要告诉声卡什么时候发声,什么时候不发声就行了,这样出来的就是方波,即所谓的PPM信号。
作者: 失速飞行    时间: 2010-1-22 20:24
原帖由 tonny1025 于 2010-1-22 20:17 发表

直接把摇杆数据传至USB口也可以吧。这样电脑连接不是更方便?
因为,从我的用途角度看我是不会搬台式机出去玩航模的。呵呵。请指教。

现在都是用USB-SERIAL转接,把USB口当串口处理了
作者: 失速飞行    时间: 2010-1-22 21:05
谁有PUDN.COM的账号,去上面下一个软件生成PWM信号声卡输出的源码看看就搞定了
作者: 失速飞行    时间: 2010-1-22 21:23
兵甲 楼主,给你看个东西,保证你热血沸腾、欲火焚身,恨不得立刻上下其手……:em16:
别想歪了,看看就知道:em15:
http://www.doc88.com/p-7100252181.html
作者: 匪兵甲    时间: 2010-1-22 22:45
看了101楼给的链接,没什么帮助,哈哈。我去查下底层API的方波产生使用。
作者: 飞行无极限    时间: 2010-1-23 01:22
咔咔,半夜1点多,我的软件也用BCB写好了,一运行,吓我一跳,我可怜的EVO不但不稳,而且回中从来就没几次是正确的。中立位置应该是32768.
回头滤波+降低分辨率再试试,今天就到这了。 (, 下载次数: 106)

[ 本帖最后由 飞行无极限 于 2010-1-23 01:24 编辑 ]
作者: 飞行无极限    时间: 2010-1-23 02:08
http://www.cs.sysu.edu.cn/~lcw/% ... %BC%96%E7%A8%8B.doc
《MCI和MMAPI编程》
底层的函数都是这个了
作者: 鸟蚊子    时间: 2010-1-23 09:48
俺是搞美术的,电子东西一概不懂,不过你们做好了,俺做个好看的外壳行不?:em15:
作者: tonny1025    时间: 2010-1-23 10:38
原帖由 失速飞行 于 2010-1-21 23:07 发表

tonny,你的程序是用BCB写的吧,我这运行它提示需要BCL60.BPL、RTL60.BPL,从网上下了这两个文件,但也不能运行:em18: ,出错。如果你方便的话,把程序稍微改一下,把你软件获得的摇杆数据通过串口发出去,用虚拟的 ...

文件下好后还得导入项目库里才行。你是项目没法在环境里编译还是EXE文件执行不了?EXE应该没问题的。
作者: 失速飞行    时间: 2010-1-23 11:31
原帖由 tonny1025 于 2010-1-23 10:38 发表

文件下好后还得导入项目库里才行。你是项目没法在环境里编译还是EXE文件执行不了?EXE应该没问题的。

是EXE执行不了哦,自己在网上找了vcl60、rtl60,运行出错
作者: 失速飞行    时间: 2010-1-23 11:34
原帖由 飞行无极限 于 2010-1-23 02:08 发表
http://www.cs.sysu.edu.cn/~lcw/%E5%A4%9A%E5%AA%92%E4%BD%93%E6%8A%80%E6%9C%AF/13MCI%E5%92%8CMMAPI%E7%BC%96%E7%A8%8B.doc
《MCI和MMAPI编程》
底层的函数都是这个了

呵呵,这个不错。输出方波可能也就只能用waveout或者directsound了




欢迎光临 5iMX.com 我爱模型 玩家论坛 ——专业遥控模型和无人机玩家论坛(玩模型就上我爱模型,创始于2003年) (http://bbs.5imx.com/) Powered by Discuz! X3.3