一种基于WiFi控制的四旋翼飞行器设计与实现
2015-09-14田红鹏范振可冯健
田红鹏 范振可 冯健
摘 要:大数据、云计算、物联网以及“互联网+”等的提出,标志着中国正在进入万众创新创业时代。文中设计了一种基于WiFi控制的四旋翼飞行器。该飞行器由遥控手柄通过网络来控制四旋翼的运动,在四旋翼上添加了一个信息接收模块,该模块为运行嵌入式Linux操作系统的RT5350,其带有WiFi模块,可与遥控手柄通过PC机建立无线连接,从而控制飞行器的运动。实验结果表明,系统可成功地用传统遥控手柄通过网络传输信号控制四旋翼的上下左右飞行,可以达到预期的目标,因而对四旋翼和物联网都有一定的研究意义。
关键词:物联网;嵌入式开发;四旋翼飞行器;网络控制
中图分类号:TP302 文献标识码:A 文章编号:2095-1302(2015)08-00-03
0 引 言
2014年11月,李克强总理出席首届世界互联网大会时指出,互联网是大众创业、万众创新的新工具。2015年3月,李克强总理在十二届全国人大三次会议上首次提出“互联网+”行动计划,推动移动互联网、云计算、大数据、物联网等与现代制造业结合,引导互联网企业拓展国际市场[1]。
基于以上背景,本文设计一个基于WiFi控制的四旋翼飞行器控制系统,将网络通信TCP协议运用到系统中。该系统用传统的遥控手柄模拟标准的遥控器,遥控手柄与PC机相连,四旋翼上添加带有WiFi模块的RT5350,该设备运行嵌入式Linux操作系统,可与PC机建立无线连接,从而遥控手柄通过网络通信将遥控信号传递给四旋翼飞控系统,达到控制四旋翼飞行的目的。本研究对计算机网络的学习有一定的指导意义。
1 系统方案
本系统的总体结构图如图1所示,系统可分为用户PC客户端、服务器、PWM控制器和飞控板四个部分。用户将控制信号通过客户端发给服务器,服务器接收到信号后通过串口通信将信号转给PWM控制器,PWM控制器生成输入信号,飞控板收到信号后控制电机旋转。
2 整体设计
系统划分为两部分,一部分为硬件设计,另一部分为软件设计。其中硬件部分主要是各模块的开发板的选择及开发和组装,软件部分主要实现控制端和服务器端的通信以及各模块之间的通信。
2.1 硬件总体结构
本系统的硬件总体结构设计如图2所示,硬件总体结构是按照模块化思想设计的。服务器端主要由RT5350模块和PWM控制器组成,飞行器主要由飞控板、电机驱动和直流电机组成 ,客户端主要由PC和遥控手柄组成。
飞行器驱动层的主要设备是飞控板和PWM控制器,其中飞控板采用简单的KK飞行控制板。其功能简单,易于调节,价格便宜,便于二次开发。PWM控制器主要作用是向飞控板发送指定的PWM波形,飞控板根据PWM脉冲波对利用I/O口直接控制电机。由于飞控板的I/O口输出电流为mA级,无法驱动直流电机转动,因此需要使用电机驱动模块驱动电机。 直流电机选用的是减速直流电机,因为减速直流电机的输出力矩较大,可以适应复杂地形。调节四个电机不同转速用来改变飞行器的飞行动作。
服务器端的主要任务是接收客户端的控制信号,并将信号传给PWM控制器,PWM控制器将信号传给飞控板。其中开发板选用RT5350,如图3左所示。其运行的是一个嵌入式Linux操作系统,带有WiFi模块和RS 232串口模块,便于和客户端以及PWM控制器进行通信。PWM控制器使用的是艾尔赛舵机控制器(LCSC),如图3右边所示。LCSC拥有16路舵机PWM脉冲信号输出,可以同时对16个舵机进行任意角度和精确时间的控制。该舵机控制器可以接收串口命令,适合任何含标准串口(RS 232 电平)的系统,如个人电脑、PLC、51系列单片机、DSP、FPGA,ARM 等等。
客户端主要由遥控手柄和PC组成,PC需带有无线网卡,便于和服务器进行通信。标准遥控器采用2.4 GHz无线通信,可以提供8通道甚至16通道的控制选择。其功能强大、性能稳定、操作方便,缺点是价格昂贵。本文采用市面上常见的遥控手柄,价格便宜,可以模拟出4个通道信号并产生控制信号。
2.2 软件设计
软件的总体结构主要包括3个部分:摇杆客户端、服务器端和PWM控制器。遥感控制客户端主要是将摇杆的模拟信号转化成数字信号并通过TCP协议发送给服务器,服务器端接收客户端发送的命令并转发给PWM控制器,PWM控制器将其转化为PWM信号传给飞控端,飞行控制端收到PWM信号后控制电机转动。
2.2.1 客户端控制算法设计
客户端主要产生飞行器的飞行信号。游戏手柄客户端的实现原理是在Linux系统下读取手柄的键码值[2],再通过一定的数学计算,将键码值映射PWM模块可识别的指令。首先在Linux系统下安装驱动后会在/dev/input生成js0。然后通过js0接口来获取遥控手柄的控制信息。当用户操作手柄时,驱动发送js_event的结构给应用程序以通知用户做了哪些操作。
对于左侧四个键,有两种情况:
当ANALOG键关闭时:上键和下键的number值均为1,左键和右键的number值为0。其他值不变。
当ANALOG键按下时,键值会随着手指按下和松开的不同状态来做出相应的分布。不同状态下的键值分布如表2所列。
根据以上原理,系统可以获取手柄的按键值以及摇杆的位置,得到手柄的遥控信息,并将此信息封装为固定的格式传给服务器。
2.2.2 服务器设计
服务器运行在嵌入式Linux操作系统中,采用Linux C语言编程实现,与客户端之间建立TCP通信协议[4]。客户端通过扫描手柄设备文件读出手柄按键码,将其映射为PWM指令发送至服务器。服务器收到指令后通过串口通信将指令发送给PWM控制器,PWM产生指定波形驱动飞控板,从而改变飞控4个电机转速,控制飞行器飞行动作。
其客户端与服务器之间的通信流程图如图4所示。
2.2.3 PWM控制器
PWM控制器接收到服务器的控制指令后,通过解析控制指令产生PWM信号,并将此信号发送给飞控输入端。
本系统产生4路控制信号,分别控制四旋翼的四个电机,其中
3 系统测试结果与分析
3.1 测试环境
本系统的测试环境如下:
系统环境:嵌入式Linux、Linux mint 17、Windows7;
硬件环境:嵌入式Linux开发板、PC、游戏手柄、四旋翼、PWM控制器;
网络环境:WiFi网络,IP地址块192.168.1.0/24。
3.2 测试结果
经过测试系统达到设计需求。在WiFi网络环境下,游戏手柄能控制飞行器的飞行,并能在空中完成悬停、旋转、起伏、跌落、翻转等动作。飞行器具有抛出之后保持平衡悬停,连续飞行时间达到10min左右,载重轻量物体等性能。
3.3 结果分析
本系统最终能够通过遥控手柄控制四旋翼飞行,达到预期的目的。但是本系统还存在以下几个问题:手柄控制飞行器稳定性较差,由于手柄自身按键原因和数据处理的误差因素,致使不能精确地映射出遥控器的所有行程;手柄灵活性也次于遥控器,从而使得手柄的控制精准度低于遥控器;KK飞控板相对简单,易操作,但其对飞行器姿态控制要求较低,自稳能力差;无线网络覆盖范围小,造成控制范围小,易于失控。
由于本系统存在上述几个问题,所以后期将对本系统做进一步的更改。首先,将摇杆手柄换成标准的遥控器或进一步优化手柄控制算法,使其控制更加准确灵活。其次,可以使用性能更好的飞控板,提高飞行器的自我调节能力。另外,建立无线局域网,扩大飞行器的飞行范围。
4 结 语
本次设计采用模块化的硬件和软件设计方法,成功实现了使用摇杆手柄,通过网络传递控制信息来控制飞行器的飞行,实现了预期的功能。
本设计的创新点具有以下几点:
(1)通过摇杆手柄替代标准的遥控器,操作简单,并且大大降低了开发成本。
(2)采用无线网络通信协议来完成遥控信息的传递,成功将物联网技术运用到本课题中。
(3)将嵌入式Linux操作系统运用到飞行器上,可以在其中添加其它应用,比如加载摄像头用于航拍等。
参考文献
[1]程曼,王让会.物联网技术的研究与应用[J].地理信息世界,2010 (5):22-27.
[2]戴烨飞,殳伟群.基于Linux的游戏杆控制的实现方法[J].计算机工程与科学, 2008(7):131-132.
[3]曹恒林.用JoyStick游戏手柄控制LED显示屏视频处理器及专用播放软件[J].现代显示,2010(11):48-52.
[4]陈相宁.网络通信原理[M].北京:科学出版社,2014.
[5]黄溪流.一种四旋翼无人直升机飞行控制器的设计[D].南京:南京理工大学,2010.
[6]李石磊.Quad-rotor飞行器控制系统的研究[D].哈尔滨:哈尔滨工业大学,2010.
[7]马海琴,叶俊明,苏鹏鉴.基于ARM的四旋翼飞行器设计[J].电子技术与软件工程,2015(10):127-128.
[8]李泽州,张东升. 四旋翼飞行器姿态的自适应反演滑模控制研究[J].计算机仿真,2015(3):42-47.
[9]庞庆深,李家文.黄文浩.四旋翼飞行器设计与平稳控制仿真研究[J].电光与控制, 2012,19(3): 51-55.