基于Arduino平台智能壁障小车的开发
2017-09-11马良
马良
【摘 要】Arduino开发板的发展方兴未艾。它在工程实践中应用中扮演了重要角色,在大学生课业活动中迅速普及,通常可以用Arduino验证无人飞行器模块、智能小车模块、芯片功能等等。替换原来需要有人作业的繁复工作。本文阐明了智能壁障小车开发流程和难点。
【关键词】Arduino平台;避障小车
The development of intelligent anti-barrier car on the Arduino platform
MA Liang
(School of electronics and Automation Engineering , BITC, Beijing, 100015, China)
【Abstract】The related application of Arduino system is developing prosperously in China, ?it plays an important role in application of the engineering practice. Usually we can use the Arduino to verify unmanned aircraft modules, The intelligent anti-barrier car modules, chip functions and so on. Replacing the complex work that required someone to do as homework. This paper explains the development flow and difficulty point of the development intelligent anti-barrier car.
【Key words】The Arduino platform ;The intelligent anti-barrier car
0 引言
基于Arduino平台的智能壁障小车可以完成各种各样的功能1。Arduino 编程简洁并且通俗易懂,有点C基础就能很快上手。学习主流的 Arduino控制器后,可以对Arduino的使用和实施有较高认识,目前已经把它应用到大学生创新方案中,用它完成大学生创新项目-智能避障小车。
Arduino平台目的与意义:Arduino有丰富的第三方资源,Arduino无论硬件还是软件,都是全部开源的,你可以深入的了解到底层的全部机理,也预留了非常好的第三方库开发接口。秉承了开源社区一贯的开放性和共享性,很多爱好者都实现了自己的设计小项目,同时将自己开发硬件和软件与大家分享自己的心得和体会。对于在校大学生,可以在Arduino社区轻松找到自己需要使用的一些基本功能模块。例如:舵机控制、PID调速、A/D转换等等。特别一些模块供应商也开始越来越重视Arduino社区,同时为自己的产品提供基于Arduino-IDE的库文件并且组织大学生竞赛实践项目,这些都极大便利了Arduino开发者,使你不必拘泥于一些基本功能繁琐的编写,可以把自己的精力更多的投入自己想要的功能设计中去。
本文阐明对Arduino平台开发智能壁障小车心得和体会。
1 Arduino平台开发智能壁障小车:
1.1 壁障小车结构:
壁障小车模块(图1)由以下几部分组成:无人小车平台(包含4个电机马达)、Arduino-UNO、298電机双路驱动芯片模块、传感器模块(超声波+红外测距模块等)、蓝牙模块和手机端APP、电池管理系统、电路测试仪器等等。同时可以对它进行简单的二次开发,外加摄像模块可以录像,外加运输模块可以运输(例如JD无人送货车),外加机械手可以抓取东西等等。
Arduino智能壁障小车的驱动电路模块主要依靠298电路完成(通过PWM波形控制Arduino小车的转速、H/L控制左右方向等),无人避障小车的控制部分由Arduino-UNO模块进行控制,基于该平台结合外接传感器(测距,控制等模块)实现无人小车前进、后退、左右转向以及掉头等各个动作。成功搭建Arduino智能壁障小车基本平台后,结合手机进行图像采集处理分析,它进一步完成无人小车的跟随等高级功能。
1.2 壁障小车工作流程:
1.3 壁障小车调试:
Arduino智能壁障小车(图3)调速方式主要依靠PWM信号占空比控制,占空比越高则小车马达速度越快。(例如:目前频率信号等于1KHz,占空比等于40%)。
int SNUM[2] ;//定义2个传感器
int INA = 4; //电机A正反转控制端
int PWMA = 5; //电机A调速端
int INB = 7; //电机B正反转控制端
int PWMB = 6; //电机B调速端
void motospd(int sp1,int sp2) /*电机速度控制正值为正转,负值为反转*/
{ if(sp1>0)
digitalWrite(INA, HIGH);
else
digitalWrite(INA, LOW);
if(sp2>0)
digitalWrite(INB, HIGH);
else
digitalWrite(INB, LOW);
analogWrite(PWMA,abs (sp1));
analogWrite(PWMB,abs (sp2));
}
2 结论
本文阐明了Arduino智能壁障小车开发难点和重点,而后描述该平台具体的开发流程。由于Arduino智能壁障小车可以迅速搭建,因此它可以广泛应用于相关产品的验证开发。
【参考文献】
[1]陈吕洲.Arduino程序设计基础 北航出版社.
[2]http://www.arduino.cn/Arduino中文社区.
[责任编辑:朱丽娜]endprint