基于Arduino的无线遥控设计
2016-03-22东北大学机械工程与自动化学院陈喜洋刘晓彪邢凯豪黄子祥
东北大学机械工程与自动化学院 陈喜洋 刘晓彪 邢凯豪 黄子祥
基于Arduino的无线遥控设计
东北大学机械工程与自动化学院陈喜洋刘晓彪邢凯豪黄子祥
【摘要】针对可移动小车的蓝牙、红外线等无线遥控方式存在距离较短的缺陷,设计一种较长距离的遥控装置。以APC220无线数传模块作为媒介,实现Arduino间的无线通信,通过Arduino读取模拟数据值,获取电位器摇杆的位置,经由控制程序处理,可以实现多种行进方式。设计结构简单,抗干扰能力强,在一千米内可以较好的解决问题。
【关键词】Arduino;无线遥控;单片机;APC220模块
0 引言
随着科学的发展,无线控制技术广泛应用于各个领域,来解决各种生产及生活中的问题。不同的应用场合需要相对应的控制技术,以实现功能应用的最大化。蓝牙、红外线遥控技术都是一种短距离的无线通讯技术,无法满足长距离的无线通信。本文介绍了一种以Arduino为控制核心,APC220作为无线通信模块的控制方式,以常见的智能小车为控制对象,可以在一千米内距离实现前进、后退、转向和速度变化等功能。
1 系统组成及基本功能
1.1Arduino控制器
Arduino由意大利教师Massimo Banzi和西班牙工程师David Cuartielles联合创建[1],是一块基于开放原始代码的 Simple I/O 平台。该平台由硬件部分和软件两部分组成,其中硬件包括单片机、电路板等,软件主要是以C/C++语言为基础的IDE集成开发环境。Arduino是一个开源的硬件平台,可以下载众多开源的示例代码和硬件设计,可以快速的开发自己的项目。它可以读取模拟信号,控制LED灯亮度、电机的转速等,可以通过USB接口进行编程和PC机通信,同时Arduino可以独立与其他软件沟通,如flash、Processing、Max/MSP等其它互动软件。
设计中采用Arduino UNO R3作为核心控制器,是该系列最新的版本,具备Arduino所有的功能,其处理器核心是ATmega328,具有14路数字输入/输出口(其中6路可作为PWM输出),6路模拟输入,一个16MHz晶体振荡器,一个USB口,电压为5V,一个电源插座,电压要求为7~12V,一个ICSP header和一个复位按钮。[2]集成开发环境简称IDE,可以在Windows、Mac OS X和Linux操作系统运行。
1.2APC220
APC220模块是高度集成半双工微功率无线数据传输模块,嵌入高速单片机和高性能射频芯片,根据不同的需要可以修改串口速率、发射功率和射频速率等各种参数,而且采用高效的循环交织纠检错编码,具有较强的抗干扰能力和较高的灵敏度,最大可以纠正24bites连续突发错误,可以在较为恶劣的环境中使用,在在最大功率下可以实现一千米的较长距离通信。[3]
在现行的无线技术领域,各种无线技术都有各自的特点,并且表现了一定的互补性。如常见的蓝牙通信技术,一种短距离通信技术,广泛应用于耳机、个人电脑及各种移动设备中。
2 系统工作原理
Arduino控制板可以实现串口、IIC、SPI三种常见的通信方式,由于其I/O接口资源较少,所以常用的是串行通信方式。本设计中采用串口通信,即UART方式。在Arduino UNO R3控制器上有一组串行接口,引脚0(TX)和1(RX)。此外,硬件串口通过USB接口可以与计算机进行通信,当这组串口被占用时会导致程序无法下载或通信异常,可以通过SoftwareSerial类库将其他数字引脚作为串口通信引脚,但可能导致通信不稳定。
APC220无线数传模块通过引脚RXD、TXD分别与单片机串口TX、RX引脚相连,APC220可以设置七种串口速率(1200、2400、4800、9600、19200、38400、57600bps),默认设置的波特率为9600bps。包含无校检、偶校检、奇校检三种串口校检方式[4],默认不采用校验方式。为了实现Arduino间的通信,需要一对APC220分别与Arduino相连,两个APC220之间通信需要设定相同的参数。APC220与Arduino间的连线图如图1所示。
图1 APC220与Arduino连线图
图2 系统设计流程图
3 应用实例
无线遥控端以Arduino UNO为控制器,可以通过外接各种模块,使用C语言编程,获得相应的数据等信息,发送特定的指令,通过无线控制端的APC220传送至接收端。我们使用电位器摇杆为信息输入端,PS2摇杆电位器具有X、Y两轴模拟输出。操纵杆在移动方向的过程中,导致电位器的阻值变化,电位器两端电压发生变化。左右摇杆与Arduino的连接如图2所示。
图3 摇杆Arduino连接图
Arduino控制板通过模拟数据端口将电压值0~5V转换为0~1023数值输出,从而判断当前摇杆的位置,发送特定的指令,由移动小车上的Arduino控制板处理接收的指令,控制电机的转速,从而实现小车不同的行进方向。当只有右摇杆上下移动时,可以使移动小车前进或者后退;当右摇杆上下移动时,左摇杆同时左右移动,可以使移动小车实现左前转弯、右前转弯、左后转弯和右后转弯。[5]进行适当的程序修改,可以改变前进速度以及转弯半径的大小。系统设计流程如图3所示。
4 总结
以APC220作为无线模块,结合Arduino开源平台,使用C语言进行编程,可以制作成一个较长距离无线遥控装置。与蓝牙、WIFI、红外线等常见的无线控制方式相比,其控制距离相对较长,编程方式简单,同时可以方便灵活的搭载各类外围模块,实现更多的功能。
参考文献
[1]陈吕洲.Arduino程序设计基础[M].北京:北京航空航天大学出版社,2015.
[2]Massimo Banzi.爱上Arduino[M].郭浩赟,于欣龙,译.北京:人民邮电出版社,2012.
[3]APPCON TECHNOLOGIES,安美通科技有限公司,http://www.appcon.com.cn/[EB/OL].
[4]靳海英,马志刚.基于APC220的工业控制与实现[J].安徽电子职业技术学院学报,2014(2).
[5]周英,杨盛国,黄凌云等.基于蓝牙技术遥控小车的设计与实现[J].福建师大福清分校学,2012(5).
陈喜洋(1995—),男,湖南衡阳人,大学本科,现就读于东北大学机械工程专业。
刘晓彪(1996—),男,安徽阜阳人,大学本科,现就读于东北大学机械工程专业。
邢凯豪(1994—),男,辽宁辽阳人,大学本科,现就读于东北大学机械工程专业。
黄子祥(1995—),男,福建漳州人,大学本科,现就读于东北大学机械工程专业。
Design of Arduino-based wireless remote control
Chen Xiyang Corresponding author Liu Xiaobiao Xin Kaihao Huang Zixiang
(Northeastern University,college of Mechanical Engineering and Automation)
Abstract:Bluetooth,infrared and other wireless remote control mode for movable car have the defects of a short distance.The design of a long distance remote control devices based on APC220 wireless module as the media.It can achieve the wireless communication between Arduino.Arduino can read analogue data to obtain the position of the joystick potentiometer.Then viaing a control program processing,you can achieve a variety of ways to travel.The design structure is simple with strong anti-interference ability.It can achieve wireless control requirements within one kilometer.
Key Words:Arduino;wireless control;SCM;APC module
作者简介:
基金项目:国家级大学生创新创业训练计划资助项目(项目编号:201510145052)。