基于arduino的智能小车的设计.docx
- 文档编号:29940700
- 上传时间:2023-08-03
- 格式:DOCX
- 页数:47
- 大小:7.29MB
基于arduino的智能小车的设计.docx
《基于arduino的智能小车的设计.docx》由会员分享,可在线阅读,更多相关《基于arduino的智能小车的设计.docx(47页珍藏版)》请在冰豆网上搜索。
基于arduino的智能小车的设计
基于arduino的智能避障
小车的设计
摘要
本文简要介绍了基于智能轮式移动机器人智能避障设计与实现----一种基于Arduino新型集成开发环境的超声波避障小车的工作原理。
其中包括对小车的执行组件、搭建结构、传感器、Arduino单片机软件编程及试验结果的介绍。
本方案以Arduino单片机为控制核心,基于蝙蝠超声波测距的原理,利用超声波传感器,检测小车前方障碍物的距离,然后把数据传送给单片机。
当超声波检测到距离小车前方25CM有障碍物时单片机就发出指令让小车左转一定角度,然后停止行进继续探测.如果前方25CM没有障碍物则直行,否则继续左转一定角度。
如此通过超声波不断的循环检测周边环境的情况进行自动避障。
本系统在硬件设计方面,以Arduino单片机为控制核心,以超声波传感器检测前方障碍物,从而自动避障。
在软件方面,利用Arduino语言进行编程,通过软件编程来控制小车运转。
该系统在驱动方面采用L298N驱动2个直流电机带动小车运行。
并且,用PWM系统调速,控制小车前进的速度。
实现小车根据外部环境,做出前进、后退和转向等动作,从而完成避障的功能,本设计具有有一定的实用价值。
关键词:
Arduino单片机;超声波传感器;避障
Abstract
Thispaperdescribesthedesignofmobilerobotbehavior-baseddesignandimplement----Anewultrasound-basedintegrateddevelopmentenvironmentArduinoobstacleavoidancecarworks.Theseincludetheimplementationofcarcomponents,buildingstructures,sensors,Arduinomicrocontrollersoftwareprogrammingandtestresultspresentation.
TheprogramtoArduinomicrocontrollercore,basedontheprincipleofultrasonicdistancemeasurementbatsusingultrasonicsensorstodetectobstaclesinfrontfromthecar,andthentransmitsthedatatothemicrocontroller.Whentheultrasonicdistanceinfrontofthecardetectsobstacles25CMSCMissuedadirectivetomakethecarturnleftonanangle,thencontinueprobingstoptraveling.Ifthereisnoobstacleinfrontofthe25CMstraight,turnleftorcontinuecertainangle.Sothecaseoftheultrasoniccontinuousloopthroughthesurroundingenvironmenttoautomaticallydetectavoidance.
ThesystemhardwaredesigntoArduinomicrocontrollercore,withultrasonicsensorsdetectobstaclesinfront,sothatautomaticobstacleavoidance.Onthesoftwareside,theuseofArduinoprogramminglanguagetocontrolthecarrunningthroughsoftwareprogramming.ThesystemusesthedriversideL298NdrivetwoDCmotorsdrivethecarrunning.And,withthePWMsystemspeed,speedcontrolcarforward.Realizethecaraccordingtotheexternalenvironment,madeforward,backward,andsteeringmovements,thuscompletingtheobstacleavoidancefunction,thedesignhasacertainpracticalvalue.
Keywords:
Arduino;ultrasonicsensors;obstacleavoidance
第一章
绪论
1.1、论文的选题背景
随着现代计算机技术的不断发展和普及,机器人的发展已经遍及近年来机器人的智能水平不断提高,并且迅速地改变着人们的生活方式。
小到智能玩具,大到机械、电子、冶金、交通、宇航、国防等各个领域。
人们将计算机技术更加广阔的运用的人类生活中,制造能替代人劳动的机器一直是人类的梦想,并一直在为之努力。
在我们的生活里,有很多的机器人,如图1-1所示,这两种机器人分别是扫地机器人和灭火机器人。
他们在我们的生活中非常常见也很实用,他们的特点就是无需人们的控制,能够自行运动完成他们的任务。
那么这就需要一个非常必要的基础功能,那就是能够感知并躲避前方的障碍物。
因此,在本次的设计中,我们将设计出一个能够避障机器人,在具有这个基本功能的基础上,我们就可以为他附加更多的功能,赋予它更多的实用价值。
选用Arduino单片机作为控制核心,使用仿生超声波技术传感器进行避障的实现。
“智能避障机器人”作为现代社会的新产物,也是以后的发展方向,他可以按照预先设定的模式在一个特定的环境里自动的运作,无需人为管理,便可以完成预期所要达到的或是更高的目标。
图1-1:
机器人应用
1.2、Arduino单片机概述
Arduino,是一个基于开放原始码的软硬件平台,构建于开放原始码simpleI/O介面版,并且具有使用类似Java,C语言的Processing/Wiring开发环境。
它包含两个主要的部分:
硬件部分是可以用来做电路连接和Arduino电路板;另外一个则是ArduinoIDE,你的计算机中的程序开发环境。
你只要在IDE中编写程序代码,将程序上传到Arduino电路板后,程序便会告诉Arduino电路板要做些什么了。
Arduino能通过各种各样的传感器来感知环境,通过控制灯光、马达和其他的装置来反馈、影响环境。
板子上的微控制器可以通过Arduino的编程语言来编写程序,编译成二进制文件,收录进微控制器。
对Arduino的编程是利用Arduino编程语言(基于Wiring)和Arduino开发环境(basedonProcessing)来实现的。
基于Arduino的项目,可以只包含Arduino,也可以包含Arduino和其他一些在PC上运行的软件,他们之间进行通信(比如Flash,Processing,MaxMSP)来实现。
可以自己动手制作,也可以购买成品套装;Arduino所使用到的软件都可以免费下载.硬件参考设计(CAD文件)也是遵循availableopen-source协议,你可以非常自由地根据你自己的要求去修改他们.
Arduino可以使用开发完成的电子元件例如Switch或sensors或其他控制器、LED、步进马达或其他输出装置。
Arduino也可以独立运作成为一个可以跟软件沟通的接口,例如说:
flash、processing、Max/MSP、VVVV或其他互动软件…。
Arduino开发IDE接口基于开放源代码原,可以让您免费下载使用开发出更多令人惊艳的互动作品。
其主要特点如下:
1)开放源代码的电路图设计,程序开发接口免费下载,也可依个人需求自己修改。
2)使用低价格的微处理控制器(AVR系列控制器),可以采用USB接口供电,不需外接电源,也可以使用外部9VDC输入。
3)Arduino支持ISP在线烧,可以将新的“bootloader”固件烧入AVR芯片。
有了bootloader之后,可以通过串口或者USBtoRs232线更新固件。
4)可依据官方提供的Eagle格式PCB和SCH电路图简化Arduino模组,完成独立运作的微处理控制;可简单地与传感器,各式各样的电子元件连接(例如:
红外线,超音波,热敏电阻,光敏电阻,伺服马达,…等)
5)支持多种互动程序,如:
Flash、Max/Msp、VVVV、PD、C、Processing等。
6)应用方面,利用Arduino,突破以往只能使用鼠标、键盘、CCD等输入的装置的互动内容,可以更简单地达成单人或多人游戏互动。
我们为什么要使用Arduino?
有很多的单片机和单片机平台都适合用做交互式系统的设计。
例如:
ParallaxBasicStamp,Netmedia’sBX-24,Phidgets,MIT’sHandyboard和其它等等提供类似功能的。
所有这些工具,你都不需要去关心单片机编程繁琐的细节,提供给你的是一套容易使用的工具包。
Arduino同样也简化了同单片机工作的流程,但同其它系统相比Arduino在很多地方更具有优越性,特别适合老师,学生和一些业余爱好者们使用:
和其它平台相比,Arduino板算是相当便宜了。
最便宜的Arduino版本可以自己动手制作,即使是组装好的成品,其价格也不会超过200元。
而且Arduino软件可以跨平台运行在Windows,MacintoshOSX,和Linux操作系统。
而大部分其它的单片机系统都只能运行在Windows上。
另外,它具有简易的编程环境。
初学者很容易就能学会使用Arduino编程环境,同时它又能为高级用户提供足够多的高级应用。
对于老师们来说,一般都能很方便的使用Processing编程环境,所以如果学生学习过使用Processing编程环境的话,那他们在使用Arduino开发环境的时候就会觉得很相似很熟悉。
软件开源并可扩展-Arduino软件是开源的,对于有经验的程序员可以对其进行扩展。
Arduino编程语言可以通过C++库进行扩展,如果有人想去了解技术上的细节,可以跳过Arduino语言而直接使用AVRC编程语言(因为Arduino语言实际上是基于AVRC的)。
类似的,如果你需要的话,你也可以直接往你的Arduino程序中添加AVR-C代码。
Arduino基于AVR平台,对AVR库进行了二次编译封装,把端口都打包好了,寄存器啦、地址指针之类的基本不用管。
大大降低了软件开发难度,适宜非专业爱好者使用。
优点和缺点并存,因为是二次编译封装,代码不如直接使用AVR代码编写精练,代码执行效率与代码体积都弱于AVR直接编译。
1.3、Arduino机器人发展现状
我国目前的发展现状是研制中的智能移动机器人智能水平并不高,只能说是智能移动机器人的初级阶段。
智能移动机器人研究中当前的核心问题有两方面:
一方面是,提高智能移动机器人的自主性,这是就智能移动机器人与人的关系而言,即希望智能移动机器人进一步独立于人,具有更为友善的人机界面。
从长远来说,希望操作人员只要给出要完成的任务,而机器能自动形成完成该任务的步骤,并自动完成它。
另一方面是,提高智能移动机器人的适应性,提高智能移动机器人适应环境变化的能力,这是就智能移动机器人与环境的关系而言,希望加强它们之间的交互关系。
智能移动机器人涉及到许多关键技术,这些技术关系到智能移动机器人的智能性的高低。
这些关键技术主要有以下几个方面:
多传感信息耦合技术,多传感器信息融合就是指综合来自多个传感器的感知数据,以产生更可靠、更准确或更全面的信息,经过融合的多传感器系统能够更加完善、精确地反映检测对象的特性,消除信息的不确定性,提高信息的可靠性;导航和定位技术,在自主移动机器人导航中,无论是局部实时避障还是全局规划,都需要精确知道机器人或障碍物的当前状态及位置,以完成导航、避障及路径规划等任务;路径规划技术,最优路径规划就是依据某个或某些优化准则,在机器人工作空间中找到一条从起始状态到目标状态、可以避开障碍物的最优路径;机器人视觉技术,机器人视觉系统的工作包括图像的获取、图像的处理和分析、输出和显示,核心任务是特征提取、图像分割和图像辨识;智能控制技术,智能控制方法提高了机器人的速度及精度;人机接口技术,人机接口技术是研究如何使人方便自然地与计算机交流。
在各国的智能移动机器人发展中,美国的智能移动机器人技术在国际上一直处于领先地位,其技术全面、先进,适应性也很强,性能可靠、功能全面、精确度高,其视觉、触觉等人工智能技术已在航天、汽车工业中广泛应用。
日本由于一系列扶植政策,各类机器人包括智能移动机器人的发展迅速。
欧洲各国在智能移动机器人的研究和应用方面在世界上处于公认的领先地位。
中国起步较晚,而后进入了大力发展的时期,以期以机器人为媒介物推动整个制造业的改变,推动整个高技术产业的壮大。
1.4、Arduino智能避障机器人研究意义和目的
机器人的感觉传感器种类非常多,其中视觉传感器成为研制自动行走和驾驶机器人的重要部件。
机器人要实现自动导引功能和避障功能就必须要感知导引线和障碍物,感知导引线相当给机器人一个视觉功能。
本设计以超声波作为智能车避障的一种重要手段,以其避障实现方便,计算简单,易于做到实时控制,测量精度也能达到实用的要求,在未来汽车智能化进程中必将得到广泛应用。
我国作为一个世界大国,在高科技领域也必须占据一席之地,未来汽车的智能化是汽车产业发展必然的,在这种情况下研究超声波在智能车避障上的应用具有深远意义,这将对我国未来智能汽车的研究在世界高科技领域占据领先地位具有重要作用。
本设计主要体现多功能小车的智能避障功能,本设计中的理论方案、分析方法及特色与创新点等可以为自动运输机器人、采矿勘探机器人、家用自动清洁机器人等自动半自动机器人的设计与普及有一定的参考意义。
同时小车可以作为玩具的发展对象,为中国玩具市场技术含量的缺乏进行一定的弥补,实现经济收益,形成商业价值。
我们所设计的智能移动机器人利用超声波能够在路面上顺利躲避障碍物,从而在导盲和辅助人类行动方面也有着重要意义。
1.5、项目主要研究内容
本设计题目为《基于arduino的智能避障小车设计》是以Arduino单片机为控制核心,主要研究小车的避障功能。
利用超声波传感器检测道路上的障碍,然后把数据传送给单片机,当超声波检测到距离小车前方有障碍物时单片机就发出指令让小车左转一定角度,然后停止运行继续探测.如果前方没有障碍物就直走,否则继续左转一定角度。
如此通过超声波不断的循环检测周边环境的情况进行自动避障。
该功能的小车能够实现在无人操作的情况下在比较宽阔平坦的环境中避开障碍物。
当机器人在行走过程中遇到前方障碍时,能够根据有效范围内的距离作出相应处理,由单片机软件发出转弯、直行、后退指令,避免机器与障碍物相撞。
第二章 避障小车机器人的总体设计
2.1、设计原理与方法
本设计中直流电机PWM控制系统的主要功能包括实现对直流电机的加速、减速,并且可以调整电机的转速,能够很方便的实现电机的智能控制。
主体电路:
即直流电机PWM控制驱动模块。
这部分电路主要由arduinoUno系统开发好的PWM控制函数配合定时器直接产生,配合对于的方向控制IO口可以直接控制直流电机的加速、减速以及电机的正转和反转,并且可以调整电机的转速,能够很方便的实现电机的智能控制。
其间是通过ArduinoUno单片机产生脉宽可调的脉冲信号并输入到L298驱动芯片来控制直流电机工作的。
该直流电机PWM控制系统由以下电路模块组成:
设计控制部分:
主要由arduinoUno功能扩展板组成。
直流电机PWM控制实现部分主要由一些二极管、电机和L298直流电机驱动模块组成。
智能小车采用后轮驱动,两个前轮各用一个电机,后轮是万向轮,起到支撑和转向的作用。
2.2、硬件设计
本小车的硬件部分分为几个模块:
超声波传感器、Arduino单片机、电源、两个直流电动机、电机驱动板、车身。
电源连接在Arduino单片机上给整个小车供电。
小车以Arduino单片机为核心,连接电机驱动板控制两个直流电动机的运转,从而实现小车的前进。
将超声波传感器安置在车身的最前端,用于探测前方是否有障碍物。
当超声波传感器遇到障碍物,将反馈提供到单片机里从而做出向左旋转的反应,再次检测前方是否有障碍物,若有障碍物则继续旋转,没有障碍物则电机驱动器驱动电机前进,从而实现整个小车的避障功能。
硬件框架图如图2-1。
图2-1:
硬件设计框架
2.3、软件设计
2.3.1、Arduino语言
Arduino语言具有如下特点:
1.开放源代码的电路图设计,程序开发接口免费下载,也可依需求自己修改。
2.使用低价格的微处理控制器(AVR系列控制器),可以采用USB接口供电,不需外接电源,也可以使用外部9VDC输入。
3.Arduino支持ISP在线烧,可以将新的“bootloader”固件烧入AVR芯片。
有了bootloader之后,可以通过串口或者USBtoRs232线更新固件。
4.可依据官方提供的Eagle格式PCB和SCH电路图简化Arduino模组,完成独立运作的微处理控制;可简单地与传感器,各式各样的电子元件连接(例如:
红外线,超音波,热敏电阻,光敏电阻,伺服马达,…等)
5.支持多种互动程序,如:
Flash、Max/Msp、VVVV、PD、C、Processing等。
6.应用方面,利用Arduino,突破以往只能使用鼠标、键盘、CCD等输入的装置的互动内容,可以更简单地达成单人或多人游戏互动。
Arduino的功能:
Arduino可以让我们快速使用与MacromediaFlash,Processing,Max/MSP,PureData,SuperCollider等软件结合,作出互动作品。
Arduino可以使用现有的电子元件例如开关或者传感器或者其他控制器件、LED、步进马达或其他输出装置。
Arduino也可以独立运行,并与软件进行交互,例如:
MacromediaFlash,Processing,Max/MSP,PureData,VVVV或其他互动软件,Arduino的IDE界面基于开放源代码,可以让我们免费下载使用,开发出更多令人惊艳的互动作品。
Arduino可使用ICSP线上烧入器,将「bootloader」烧入新的IC晶片;可依据官方电路图,简化Arduino模组,完成独立运作的微处理控制;可简单地与传感器,各式各样的电子元件连接(例如:
红外线,超声波,热敏电阻,光敏电阻,伺服马达等);支援多样的互动程序例如:
MacromediaFlash、Max/Msp、VVVV、PD、C、Processing等;使用低价格的微处理控制器(ATMEGA8-168);USB接口,不需外接电源。
另外有提供9V直流电源输入;在应用方面,利用Arduino,突破以往只能使用鼠标,键盘,CCD等输入的装置进行互动内容的设计,可以更简单地达成单人或多人游戏互动。
2.3.2、ArduinoIDE
如图2-2这是运行界面。
Arduino语言是一种类c的语言。
在这个界面里有我们编程时最常用的东西。
当我们把鼠标放在上面就会在右侧出现按键的功能。
图2-2:
ArduinoIDE运行界面
如图2-3所示,标示位置上传功能。
最右边的图标是我们需要熟知的串口监视器,快捷键是:
Ctrl+Shift+M。
点这个图标有用的前提是插上了串口设备,当然Arduino插在USB上也可以,ArduinoUno主板上内置了USB转串口芯片。
图2-3:
下载到机器人控制器Arduino中
这就是串口监视器的运行画面相对于网上流传的众多串口调试软件,它的功能可以说较为简单。
右下角是波特率,波特率接收端和发射端要相同,要不然收到的会是乱码。
图2-4:
串口监视器
如果电脑没找到串口或者驱动没装好,就会有如图2-5的提示。
serialport的意思是串行通讯接口。
图2-5:
没有找到串口报错
ArduinoIDE的菜单栏中有很多选项,例如“文件”“编辑”等英文界面。
其中Sketch是草图的意思,在ArduinoIDE中,每个Arduino程序都称为sketch,他是一个可以上传进ArduinoBoard中的程序包,当然经过编译以后他就不是代码包了。
Tools里面第一项,自动格式,当你把一段从网上下载的源代码放到sketch里面,会有一些缩进的乱码,这时,AutoFormat就起到了很好的作用。
当我们编写好程序后,点击下载,IDE会自动编译,上传。
如果程序有错误,就会有如图2-6的显示,标出了行号。
修改程序后就可以继续编译上传了。
图2-6:
提示编译错误
2.4、设计前期准备
搭建智能避障机器人需要准备的零件清单:
表2-1:
搭建智能机器人主体零件清单
一、主体清单
序号
名称
规格
位号
用量
序号
名称
规格
位号
用量
1
控制板
ArduinoUNOR3
1
9
电机驱动模块
298
1
2
转接板
UNO功能转接板
ZYV6转接板
1
10
3MM底盘
透明2驱
1
5
杜邦线
4P母对母20CM
4P整条
1
11
电池盒转接板
亚克力材质
1
6
杜邦线
2P公对母20CM
单根的
1
12
USB方头线
1
7
65MM橡胶轮子
2
13
电机1:
48
双轴直流减速电机
2
8
电机固定片
亚克力电机固定片
4
14
6节电池盒
1
表2-2:
搭建智能机器人主体额外附件清单
二、额外附件清单
序号
名称
规格
备注
用量
序号
名称
规格
备注
用量
1
M3*25通孔铜柱
8
7
M3*8螺丝
30
2
M3*10通孔铜柱
4
8
M3*30螺丝
5
3
2P20CM线
红色剪掉端子
4
9
清单一张
1
4
万向轮
1
10
M3螺帽
12
5
扎带
2
11
M3*10螺丝
3
表2-3:
搭建带云台的超声波模块零件清单
三、超声波避障带舵机云台清单
序号
名称
规格
位号
用量
序号
名称
规格
位号
用量
1
超声波模块
ZYXJ03
1
4
杜邦线
4P母对母杜邦线
2
2
铜柱
M3*50通孔铜柱
2
5
M3*8螺丝
要圆头螺丝
4
3
转接板
超声波小转接板
1
6
舵机云台上下板
超声波舵机云台
1
第三章硬件模块
3.1、各模块的的基本性能
3.
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 基于 arduino 智能 小车 设计