微波EDA网,见证研发工程师的成长!
首页 > 研发问答 > 无线和射频 > 射频无线通信设计 > MX_CHIP+四轴飞行器——2_PC端程序控制飞行器

MX_CHIP+四轴飞行器——2_PC端程序控制飞行器

时间:10-02 整理:3721RD 点击:
飞行器的无线通信,是飞行器的重要环节,因为你不可能让你的飞行器栓一根线下来用UART传数据,那就成了风筝。好多关于DIY四轴飞行器的帖子也都介绍要买个多通道的遥控器。这东西稍微好点的也不便宜,而且用WIFI的好处有的地方要自己做,收获更多一些。所以,我的控制方式是这样的:将飞控板设置为AP模式,PC机通过wifi信号链接到飞控板,然后通过VC++的一个小软件,来实现简单的控制。下面进行详细说明:
1. 飞控板端:
1.1 将飞控板配置为AP:
这个部分,我用的是基于OPEN1081软件库的"wifi_link"例程,按照以下方式设置一下,然后在主循环中调用mxchipTick()函数,电脑就可以连飞控板的wifi了。
wNetConfig.wifi_mode = Soft_AP;
wNetConfig.dhcpMode = DHCP_Server;
strcpy((char*)wNetConfig.wifi_ssid, "ZYD_MX");
strcpy((char*)wNetConfig.wifi_key, "zhaoyuandi");
strcpy((char*)wNetConfig.local_ip_addr, "192.168.0.1");
strcpy((char*)wNetConfig.net_mask, "255.255.255.0");
strcpy((char*)wNetConfig.address_pool_start, "192.168.0.10");
strcpy((char*)wNetConfig.address_pool_end, "192.168.0.177");
1.2 物理层链接好了就要建立链接了,下面说一下socket协议。
关于socket通信,我是现学现卖,原理我说不清楚,用起来倒是挺easy的,因为OPEN1081的SDK里面有现成的socket函数,咱直接调用就OK了。http://www.cnblogs.com/skynet/archive/2010/12/12/1903949.html,我是照着他的做的。
1.2.1 要想好的是谁做SERVER,谁做CLIENT,理论上都可以。我用飞控板做SERVER,等PC端链接。使用TCP协议。
1.2.2 server端就绪后,是要等CLIENT(PC端)来主动链接。我让飞行器SERVER就绪后就一直等CLIENT,啥时候链接上了,在跳出循环,进入主循环。
2. PC端:
PC端我是下载的socket源代码,然后改了一下,加了几个按钮,和一个滑块做为油门。这个代码我忘了拿回来,下一篇帖子我会分享。
3. 通信协议:
这个自己定,我的协议格式是:!0+0000$,!是头,第二位是命令号,+是正、负,四位是数据,$是尾。都是ASCII的,也没有校验,原来我还预留个地址位,后来被我给阉割了。

以上就是通信部分,写得不好也不详细,下次给大家发源代码,今天太晚了,我得碎觉了,明天还的上班……

不错哟
不过上位机用MFC太渣了吧MS都要放弃了的东东

主要是时间不够,这也不是核心,我原打算用Android做呢,以后可以考虑升级

牛x,坐等楼主出大招

楼主真强,不过用WIFI将飞行器和PC连接,这通信距离不太远吧,如果飞太高是不是就没信号了,你那命令他就收不到了。

是有这个问题,我也遇到过了,远了就收不到,存在炸机的风险。有利有弊,低空飞行吧,呵呵

看到大神们各个冲天的厉害,我的确需要努力了!哎,该死的考试,快点结束吧!

Copyright © 2017-2020 微波EDA网 版权所有

网站地图

Top