论坛上也有其他模友作一些相似的研究(最近才发现),我把链接放在最底下了,感兴趣的可以去看一下。我估计在多旋翼上应用这个方案应该说是比较成熟了,固定翼上最大的问题就是wifi通信距离。废话不多说,先看图。![]() ![]() 好久没写程序了,努力捡了点Qt编程回来,写了个udp控制端,取代直接打命令。本是想集成开源的mavlink协议,然后就可以用开源的地面站直接控制就行了,搞了半天发现没啥意义,因为等这个方案验证了最终是要用apm之类的飞控来代替arduino开发板的,现在只需要验证一下wifi作为图传数传的可行性就行,换句话说就是能控制和传回数据就行。 总体思路是703n与arduino之间用串口通信,在703n上用socat将串口与一个UDP端口映射,然后在电脑上用这个程序去连接703n上的udp端口,这样就可以操作到arduino了。 把USB摇杆也整进来了,用USB摇杆可以多个通道同时控制。我到底在做什么?呵呵。。。貌似我要做的只是验证图传数传的可行性,而不是做wifi遥控器。。。今天把2.4g控和usb摇杆一起测试了,2.4g控制下发现动usb摇杆发现有很大的干扰,出身冷汗,以为真的是wifi和2.4g有干扰,后来证实是arduino上程序的问题,归根结底还是通信协议没设计好,看来集成mavlink协议还是有必要的。 ![]() 设备清单:
硬件连接:
实验目的:
实验程序: 将控制分为两种模式:2.4g遥控器控制模式 + 串口终端控制模式。在任何模式下,另外一种模式均可取得控制权,但不能二者同时控制。
实验结果:
实验结论:
遗留问题:
To do list:
相似研究:
最新想法: mjpg-streamer传视频延迟大,500ms左右,而且运动画面效果也不佳。有可能是USB摄像头本身采集数据就很慢,我用的是中星微301芯片的摄像头,很低端的摄像头了,高端一点的摄像头可能会好点。因为mjpg-streamer本身并不作任何编码,只是把摄像头的每一贞画面拿出来再通过http转发,所以按理说不存在性能瓶颈。实测也是CPU占用很低,703n的CPU还很空闲。估计可能的的原因出在http上,http针对这种实时性要求很高的应用,显然是不适合的。现在能够想到的一是换高端摄像头,至少在电脑上用采集速度很快的,二是要想办法用其它实时性更高的协议,如rtp,udp等。 另外,拿iPhone做了实验,iPhone自带的摄像头照像速度很快路人皆知了,也是它的优势功能之一。iPhone有无线摄像头这样的应用,电脑上装上对应的驱动程序后会创建一个无线网络摄像头,就像使用正常的usb摄像头一样,QQ等聊天软件都能正常使用,而且速度很快。真的很快,比USB摄像头还要快,而且是无线的!!!不过如果这个方案要上iPhone,好像就没什么意义了。安卓也有类似的应用,不过安卓手机本身的取景速度和照像性能不敢恭维。 所以目前的想法如下,用手机代替USB摄像头,利用高性能拍照手机的摄像能力来达到准FPV和UAV的图传要求。其它模块功能保持不变。
![]() 实验程序: 没错,最大的问题就是遥控距离太近,因为这个路由器的发射功率太小,室外空旷地实测120米左右。这个解决方案实际上已经用在wifi mini 四轴飞行器上了。 对于固定翼,现在最大的问题就是发射功率。但openwrt支持外挂大功率usb无线网卡(不太明白的就是现在这个路由器相当于这个路由器是个mini电脑,有一个usb口,这个usb口先接usb hub(要带电源的),通过hub再接飞控,usb免驱摄像头,usb大功率无线网卡,这回总懂了吧?) 重量的话因为数传图传模块加起来才一个路由器(路由器本身轻得可怜,用过的人应该清楚),一个usb hub(可选,但要轻!)再加一个免驱摄像头(要小,要轻!),还有可能外挂大功率usb无线网卡(要轻!!),这些设备加起来应该不会比传统的数传加图传模块重(话说传统的图传+数传两套发射系统两根天线两套接收着实讨厌啊)。 我自己已经测试过了,摄像头接在这个路由器上通过网页就能查看视频,实际上好多wifi监控摄像头也是基于这种解决方案。
至于跟飞控板连接负责数传这块,这个路由器可以通过usb口与飞控连接,也可以通过ttl串口与飞控连接(需要自己在路由器板子上焊ttl引脚),通信肯定没有问题。至于协议部份,大部份飞控都是基于开源的mavlink协议。 话说这张图片里也没有任何商业模块,uvc摄像头满大街都是,20到200的都有,飞控开源不开源的也一堆,几百到几千的都有(请注意,这个只是代替数传图传模块,绝不是代替飞控),tp-link 703n mini路由器就更不用说了,70元左右一个新的。 唯一有点嫌疑的就是703n路由器的改造,为什么要改造?因为703n自带的只有4m flash 和32m ram(即相当于电脑的4m硬盘和32m内存),但cpu还是很可观的(400mhz)。flash ram有点小,升级到8m flash/64m ram性能就很好了,另外可以焊接ttl引脚(与飞控通过串口通信,比直接用usb转串口可能要好一些,因为怕路由器usb接上飞控后驱不动,因为这里是需要驱动程序的,当然openwrt已经内置了对常见usb转ttl芯片的支持,另外就是当路由器刷坏了变砖后,可以通过串口烧写,如果只有usb口就没办法了),接sma可拆增益天线等。全改造好了的淘宝上卖150左右一个(声明本人不是做这个生意的),想要自己改的网上也有教程(需要焊工好啊!)。 |
|