3362|6

14

帖子

3

TA的资源

一粒金砂(中级)

楼主
 

MX_CHIP+四轴飞行器——2_PC端程序控制飞行器 [复制链接]

飞行器的无线通信,是飞行器的重要环节,因为你不可能让你的飞行器栓一根线下来用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的,也没有校验,原来我还预留个地址位,后来被我给阉割了。

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


FK_SW.png (16.3 KB, 下载次数: 2)

FK_SW.png
此帖出自RF/无线论坛

最新回复

看到大神们各个冲天的厉害,我的确需要努力了!哎,该死的考试,快点结束吧!  详情 回复 发表于 2015-1-13 13:28
点赞 关注
 

回复
举报

3416

帖子

0

TA的资源

纯净的硅(高级)

沙发
 
不错哟
不过上位机用MFC太渣了吧MS都要放弃了的东东
此帖出自RF/无线论坛

点评

主要是时间不够,这也不是核心,我原打算用Android做呢,以后可以考虑升级  详情 回复 发表于 2014-12-26 09:45
个人签名

So TM what......?

 

 

回复

14

帖子

3

TA的资源

一粒金砂(中级)

板凳
 
主要是时间不够,这也不是核心,我原打算用Android做呢,以后可以考虑升级
ljj3166 发表于 2014-12-26 09:42
不错哟
不过上位机用MFC太渣了吧MS都要放弃了的东东

此帖出自RF/无线论坛

点评

牛x,坐等楼主出大招  详情 回复 发表于 2014-12-26 09:50
 
 
 

回复

3416

帖子

0

TA的资源

纯净的硅(高级)

4
 
bx_zyd 发表于 2014-12-26 09:45
主要是时间不够,这也不是核心,我原打算用Android做呢,以后可以考虑升级
牛x,坐等楼主出大招
此帖出自RF/无线论坛
个人签名

So TM what......?

 

 
 

回复

244

帖子

0

TA的资源

一粒金砂(中级)

5
 
楼主真强,不过用WIFI将飞行器和PC连接,这通信距离不太远吧,如果飞太高是不是就没信号了,你那命令他就收不到了。
此帖出自RF/无线论坛

点评

是有这个问题,我也遇到过了,远了就收不到,存在炸机的风险。有利有弊,低空飞行吧,呵呵  详情 回复 发表于 2014-12-26 11:16
 
 
 

回复

14

帖子

3

TA的资源

一粒金砂(中级)

6
 
muxb 发表于 2014-12-26 10:44
楼主真强,不过用WIFI将飞行器和PC连接,这通信距离不太远吧,如果飞太高是不是就没信号了,你那命令他就收不到了。
是有这个问题,我也遇到过了,远了就收不到,存在炸机的风险。有利有弊,低空飞行吧,呵呵
此帖出自RF/无线论坛
 
 
 

回复

118

帖子

2

TA的资源

一粒金砂(中级)

7
 
看到大神们各个冲天的厉害,我的确需要努力了!哎,该死的考试,快点结束吧!
此帖出自RF/无线论坛
 
 
 

回复
您需要登录后才可以回帖 登录 | 注册

随便看看
查找数据手册?

EEWorld Datasheet 技术支持

相关文章 更多>>
快速回复 返回顶部 返回列表