版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、基于 arduino 的智能避障小车的设计基于 arduino 的智能小车的设计摘要本文简要介绍了基于智能轮式移动机器人智能避障设计与实现 一种基于Arduino 新型集成开发环境的超声波避障小车的工作原理。其中包括对小车的执行组件、搭建结构、传感器、Arduino 单片机软件编程及试验结果的介绍。本方案以Arduino 单片机为控制核心,基于蝙蝠超声波测距的原理, 利用超声波传感器, 检测小车前方障碍物的距离,然后把数据传送给单片机。当超声波检测到距离小车前方25CM 有障碍物时单片机就发出指令让小车左转一定角度,然后停止行进继续探测. 如果前方25CM没有障碍物则直行,否则继续左转一定角度
2、。如此通过超声波不断的循环检测周边环境的情况进行自动避障。本系统在硬件设计方面,以Arduino 单片机为控制核心,以超声波传感器检测前方障碍物,从而自动避障。在软件方面,利用Arduino 语言进行编程,通过软件编程来控制小车运转。该系统在驱动方面采用L298N 驱动 2 个直流电机带动小车运行。并且,用PWM系统调速, 控制小车前进的速度。实现小车根据外部环境 , 做出前进、后退和转向等动作, 从而完成避障的功能,本设计具有有一定的实用价值。关键词:Arduino 单片机;超声波传感器;避障24AbstractThis paper describes the design of mobil
3、e robot behavior-based design and implement A new ultrasound-based integrated development environment Arduino obstacle avoidance car works. These include the implementation of car components, building structures, sensors, Arduino microcontroller software programming and test results presentation.The
4、 program to Arduino microcontroller core, based on the principle of ultrasonic distance measurement bats using ultrasonic sensors to detect obstacles in front from the car, and then transmits the data to the microcontroller. When the ultrasonic distance in front of the car detects obstacles 25CM SCM
5、 issued a directive to make the car turn left on an angle, then continue probing stop traveling. If there is no obstacle in front of the 25CM straight, turn left or continue certain angle. So the case of the ultrasonic continuous loop through the surrounding environment to automatically detect avoid
6、ance.The system hardware design to Arduino microcontroller core, with ultrasonic sensors detect obstacles in front, so that automatic obstacle avoidance. On the software side, the use of Arduino programming language to control the car running through software programming. The system uses the driver
7、side L298N drive two DC motors drive the car running. And, with the PWM system speed, speed control car forward. Realize the car according to the external environment, made forward, backward, and steering movements, thus completing the obstacle avoidance function, the design has a certain practical
8、value.Key words: Arduino; ultrasonic sensors;obstacle avoidance目录摘要 1Abstract 2第一章绪论 51.1、 论文的选题背景 51.2、 Arduino单片机概述 61.3、 Arduino机器人发展现状 71.4、 Arduino 智能避障机器人研究意义和目的91.5、 项目主要研究内容 9第二章避障小车机器人的总体设计102.1、 设计原理与方法 102.2、 硬件设计 102.3、 软件设计 112.3.1、 Arduino 语言 112.3.2、 Arduino IDE 122.4、 设计前期准备 14第三章硬件模
9、块163.1、 各模块的的基本性能 163.1.1、 单片机模块 163.1.2、 电机、电机驱动模块 173.1.3、 避障模块 193.1.4、 电源模块 193.2、 小车的基本搭建 203.3、 电路连线 283.3.1、 电机的连线 283.3.2、 超声波云台接线 32第四章软件模块 344.1、 软件设计思路 344.2、 程序设计代码 35第五章实验及结果分析 425.1、 预期目标 425.2、 遇到的问题和解决方法 425.3、 硬件的调试与整合 435.3.1、 试思路435.3.2、 调试超声波模块 445.3.3、 电机调试 445.4、 心得体会 45第六章设想与展
10、望 46参考文献47致谢48第一章 绪论1.1 、论文的选题背景随着现代计算机技术的不断发展和普及,机器人的发展已经遍及近年来机器人的智能水平不断提高,并且迅速地改变着人们的生活方式。小到智能玩具,大到机械、电子、冶金、交通、宇航、国防等各个领域。人们将计算机技术更加广阔的运用的人类生活中,制造能替代人劳动的机器一直是人类的梦想,并一直在为之努力。在我们的生活里,有很多的机器人,如图1- 1所示,这两种机器人分别是扫地机器人和灭火机器人。他们在我们的生活中非常常见也很实用,他们的特点就是无需人们的控制,能够自行运动完成他们的任务。那么这就需要一个非常必要的基础功能,那就是能够感知并躲避前方的障
11、碍物。因此,在本次的设计中,我们将设计出一个能够避障机器人,在具有这个基本功能的基础上,我们就可以为他附加更多的功能,赋予它更多的实用价值。选用 Arduino 单片机作为控制核心,使用仿生超声波技术传感器进行避障的实现。“智能避障机器人”作为现代社会的新产物,也是以后的发展方向,他可以按照预先设定的模式在一个特定的环境里自动的运作,无需人为管理,便可以完成预期所要达到的或是更高的目标。1- 1 :机器人应用1.2、 Arduino 单片机概述Arduino ,是一个基于开放原始码的软硬件平台,构建于开放原始码simpleI/O 介面版,并且具有使用类似Java, C 语言的 Processi
12、ng/Wiring 开发环境。它包含两个主要的部分:硬件部分是可以用来做电路连接和Arduino 电路板;另外一个则是Arduino IDE,你的计算机中的程序开发环境。你只要在IDE 中编写程序代码,将程序上传到Arduino 电路板后,程序便会告诉Arduino 电路板要做些什么了。Arduino 能通过各种各样的传感器来感知环境,通过控制灯光、马达和其他的装置来反馈、影响环境。板子上的微控制器可以通过Arduino 的编程语言来编写程序,编译成二进制文件,收录进微控制器。对Arduino 的编程是利用Arduino 编程语言(基于Wiring) 和 Arduino 开发环境(based
13、on Processing)来实现的。基于Arduino 的项目,可以只包含Arduino ,也可以包含Arduino 和其他一些在 PC 上运行的软件,他们之间进行通信(比如Flash, Processing, MaxMSP) 来实现。可以自己动手制作,也可以购买成品套装;Arduino 所使用到的软件都可以免费下载. 硬件参考设计(CAD 文件)也是遵循availableopen-source 协议 , 你可以非常自由地根据你自己的要求去修改他们.Arduino 可以使用开发完成的电子元件例如Switch 或 sensors 或其他控制器、 LED 、步进马达或其他输出装置。Arduino
14、 也可以独立运作成为一个可以跟软件沟通的接口,例如说:flash、 processing、 Max/MSP 、 VVVV 或其他互动软件 。 Arduino 开发 IDE 接口基于开放源代码原,可以让您免费下载使用开发出更多令人惊艳的互动作品。其主要特点如下:1 )开放源代码的电路图设计,程序开发接口免费下载,也可依个人需求自己修改。2)使用低价格的微处理控制器(AVR 系列控制器),可以采用USB 接口供电,不需外接电源,也可以使用外部9VDC 输入。3) Arduino 支持 ISP 在线烧,可以将新的“ bootloader固件烧入” AVR 芯片。有了 bootloader 之后,可以
15、通过串口或者USB to Rs232 线更新固件。4)可依据官方提供的Eagle 格式 PCB 和 SCH 电路图简化Arduino 模组,完成独立运作的微处理控制;可简单地与传感器,各式各样的电子元件连接(例如:红外线,超音波,热敏电阻,光敏电阻,伺服马达, 等 )5)支持多种互动程序,如:Flash、 Max/Msp 、 VVVV 、 PD、 C、 Processing等。6)应用方面,利用Arduino,突破以往只能使用鼠标、键盘、CCD 等输入的装置的互动内容,可以更简单地达成单人或多人游戏互动。我们为什么要使用Arduino ?有很多的单片机和单片机平台都适合用做交互式系统的设计。例
16、如:Parallax Basic Stamp, Netmedia s BX-24 , Phidgets,MIT s Handyboard 和其它等等提供类似功能的。所有这些工具,你都不需要去关心单片机编程繁琐的细节,提供给你的是一套容易使用的工具包。Arduino 同样也简化了同单片机工作的流程,但同其它系统相比Arduino 在很多地方更具有优越性,特别适合老师,学生和一些业余爱好者们使用:和其它平台相比,Arduino 板算是相当便宜了。最便宜的Arduino 版本可以自己动手制作,即使是组装好的成品,其价格也不会超过200 元。而且Arduino 软件可以跨平台运行在Windows, M
17、acintosh OSX,和Linux 操作系统。而大部分其它的单片机系统都只能运行在Windows 上。另外,它具有简易的编程环境。初学者很容易就能学会使用Arduino 编程环境,同时它又能为高级用户提供足够多的高级应用。对于老师们来说,一般都能很方便的使用Processing 编程环境,所以如果学生学习过使用Processing 编程环境的话,那他们在使用Arduino 开发环境的时候就会觉得很相似很熟悉。软件开源并可扩展Arduino 软件是开源的,对于有经验的程序员可以对其进行扩展。Arduino 编程语言可以通过C+库进行扩展,如果有人想去了解技术上的细节,可以跳过Arduino
18、语言而直接使用AVR C 编程语言(因为Arduino语言实际上是基于AVR C 的)。类似的,如果你需要的话,你也可以直接往你的 Arduino 程序中添加AVR-C 代码。Arduino 基于 AVR 平台,对AVR 库进行了二次编译封装,把端口都打包好了,寄存器啦、地址指针之类的基本不用管。大大降低了软件开发难度,适宜非专业爱好者使用。优点和缺点并存,因为是二次编译封装,代码不如直接使用AVR 代码编写精练,代码执行效率与代码体积都弱于AVR 直接编译。1.3、 Arduino 机器人发展现状我国目前的发展现状是研制中的智能移动机器人智能水平并不高,只能说是智能移动机器人的初级阶段。智能
19、移动机器人研究中当前的核心问题有两方面:一方面是,提高智能移动机器人的自主性,这是就智能移动机器人与人的关系而言,即希望智能移动机器人进一步独立于人,具有更为友善的人机界面。从长远来说,希望操作人员只要给出要完成的任务,而机器能自动形成完成该任务的步骤,并自动完成它。另一方面是,提高智能移动机器人的适应性,提高智能移动机器人适应环境变化的能力,这是就智能移动机器人与环境的关系而言,希望加强它们之间的交互关系。智能移动机器人涉及到许多关键技术,这些技术关系到智能移动机器人的智能性的高低。这些关键技术主要有以下几个方面:多传感信息耦合技术,多传感器信息融合就是指综合来自多个传感器的感知数据,以产生
20、更可靠、更准确或更全面的信息,经过融合的多传感器系统能够更加完善、精确地反映检测对象的特性 ,消除信息的不确定性,提高信息的可靠性;导航和定位技术,在自主移动机器人导航中,无论是局部实时避障还是全局规划,都需要精确知道机器人或障碍物的当前状态及位置,以完成导航、避障及路径规划等任务;路径规划技术,最优路径规划就是依据某个或某些优化准则,在机器人工作空间中找到一条从起始状态到目标状态、可以避开障碍物的最优路径;机器人视觉技术,机器人视觉系统的工作包括图像的获取、图像的处理和分析、输出和显示,核心任务是特征提取、图像分割和图像辨识;智能控制技术,智能控制方法提高了机器人的速度及精度;人机接口技术,
21、人机接口技术是研究如何使人方便自然地与计算机交流。在各国的智能移动机器人发展中,美国的智能移动机器人技术在国际上一直处于领先地位,其技术全面、先进,适应性也很强,性能可靠、功能全面、精确度高,其视觉、触觉等人工智能技术已在航天、汽车工业中广泛应用。日本由于一系列扶植政策,各类机器人包括智能移动机器人的发展迅速。欧洲各国在智能移动机器人的研究和应用方面在世界上处于公认的领先地位。中国起步较晚,而后进入了大力发展的时期,以期以机器人为媒介物推动整个制造业的改变,推动整个高技术产业的壮大。1.4、 、 Arduino 智能避障机器人研究意义和目的机器人的感觉传感器种类非常多,其中视觉传感器成为研制自
22、动行走和驾驶机器人的重要部件。机器人要实现自动导引功能和避障功能就必须要感知导引线 和障碍物,感知导引线相当给机器人一个视觉功能。本设计以超声波作为智能车 避障的一种重要手段,以其避障实现方便,计算简单,易于做到实时控制,测量 精度也能达到实用的要求,在未来汽车智能化进程中必将得到广泛应用。我国作 为一个世界大国,在高科技领域也必须占据一席之地,未来汽车的智能化是汽车 产业发展必然的,在这种情况下研究超声波在智能车避障上的应用具有深远意 义,这将对我国未来智能汽车的研究在世界高科技领域占据领先地位具有重要作用。本设计主要体现多功能小车的智能避障功能,本设计中的理论方案、分析方法及特色与创新点等
23、可以为自动运输机器人、采矿勘探机器人、家用自动清洁机 器人等自动半自动机器人的设计与普及有一定的参考意义。同时小车可以作为玩 具的发展对象,为中国玩具市场技术含量的缺乏进行一定的弥补,实现经济收 益,形成商业价值。我们所设计的智能移动机器人利用超声波能够在路面上顺利躲避障碍物,从而在导盲和辅助人类行动方面也有着重要意义。1.5、 项目主要研究内容本设计题目为基于arduino 的智能避障小车设计是以Arduino 单片机为控制核心,主要研究小车的避障功能。利用超声波传感器检测道路上的障碍,然 后把数据传送给单片机,当超声波检测到距离小车前方有障碍物时单片机就发出指令让小车左转一定角度,然后停止
24、运行继续探测.如果前方没有障碍物就直走,否则继续左转一定角度。如此通过超声波不断的循环检测周边环境的情况进行自动避障。该功能的小车能够实现在无人操作的情况下在比较宽阔平坦的环境中避开障碍物。当机器人在行走过程中遇到前方障碍时,能够根据有效范围内的距离作出相应处理,由单片机软件发出转弯、直行、后退指令,避免机器与障碍物相撞。第二章 避障小车机器人的总体设计2.1、 、设计原理与方法本设计中直流电机PWM 控制系统的主要功能包括实现对直流电机的加速、减速,并且可以调整电机的转速,能够很方便的实现电机的智能控制。主体电路:即直流电机PWM 控制驱动模块。这部分电路主要由arduino Uno 系统开
25、发好的 PWM 控制函数配合定时器直接产生,配合对于的方向控制IO 口可以直接控制直流电机的加速、减速以及电机的正转和反转,并且可以调整电机的转速,能够很方便的实现电机的智能控制。其间是通过Arduino Uno 单片机产生脉宽可调的脉冲信号并输入到L298 驱动芯片来控制直流电机工作的。该直流电机 PWM 控制系统由以下电路模块组成:设计控制部分:主要由arduino Uno 功能扩展板组成。直流电机PWM 控制实现部分主要由一些二极管、电机和L298直流电机驱动模块组成。智能小车采用后轮驱动,两个前轮各用一个电机,后轮是万向轮,起到支撑和转向的作用。2.2、 硬件设计本小车的硬件部分分为几
26、个模块:超声波传感器、Arduino 单片机、电源、两个直流电动机、电机驱动板、车身。电源连接在Arduino 单片机上给整个小车供电。小车以Arduino 单片机为核心,连接电机驱动板控制两个直流电动机的运转,从而实现小车的前进。将超声波传感器安置在车身的最前端,用于探测前方是否有障碍物。当超声波传感器遇到障碍物,将反馈提供到单片机里从而做出向左旋转的反应,再次检测前方是否有障碍物,若有障碍物则继续旋转,没有障碍物则电机驱动器驱动电机前进,从而实现整个小车的避障功能。硬件框架图如图 2- 1 。2- 1 :硬件设计框架2.3、 软件设计2.3.1、 Arduino 语言Arduino 语言具
27、有如下特点:1. 开放源代码的电路图设计,程序开发接口免费下载,也可依需求自己修改。2. 使用低价格的微处理控制器(AVR 系列控制器),可以采用USB 接口供电,不需外接电源,也可以使用外部9VDC 输入。3. Arduino 支持 ISP 在线烧,可以将新的“bootloader”固件烧入AVR 芯片。有了 bootloader 之后,可以通过串口或者USB to Rs232 线更新固件。4. 可依据官方提供的Eagle 格式 PCB 和 SCH 电路图简化Arduino 模组,完成独立运作的微处理控制;可简单地与传感器,各式各样的电子元件连接(例如:红外线,超音波,热敏电阻,光敏电阻,伺
28、服马达, 等 )5. 支持多种互动程序,如:Flash、 Max/Msp 、 VVVV 、 PD、 C、 Processing等。6. 应用方面,利用Arduino ,突破以往只能使用鼠标、键盘、CCD 等输入的装置的互动内容,可以更简单地达成单人或多人游戏互动。Arduino 的功能:Arduino 可以让我们快速使用与Macromedia Flash, Processing, Max/MSP,Pure Data, SuperCollider 等软件结合,作出互动作品。Arduino 可以使用现有的电子元件例如开关或者传感器或者其他控制器件、LED 、步进马达或其他输出装置。 Arduino
29、 也可以独立运行,并与软件进行交互,例如:Macromedia Flash,Processing,Max/MSP, Pure Data,VVVV 或其他互动软件,Arduino 的 IDE 界面基于开放源代码,可以让我们免费下载使用,开发出更多令人惊艳的互动作品。Arduino 可使用 ICSP 线上烧入器,将bootloader烧入新的IC 晶片;可依据官方电路图,简化Arduino 模组,完成独立运作的微处理控制;可简单地与传感器,各式各样的电子元件连接(例如:红外线,超声波,热敏电阻,光敏电阻,伺服马达等);支援多样的互动程序例如: Macromedia Flash 、 Max/Msp
30、、VVVV 、 PD、 C、 Processing 等;使用低价格的微处理控制器(ATMEGA 8-168) ;USB 接口,不需外接电源。另外有提供9V 直流电源输入;在应用方面,利用Arduino ,突破以往只能使用鼠标,键盘,CCD 等输入的装置进行互动内容的设计,可以更简单地达成单人或多人游戏互动。2.3.2、 Arduino IDEc 的语言。在这个界面里有如图 2- 2这是运行界面。Arduino 语言是一种类我们编程时最常用的东西。当我们把鼠标放在上面就会在右侧出现按键的功能。图 2- 2 : Arduino IDE 运行界面如图 2- 3所示,标示位置上传功能。最右边的图标是我
31、们需要熟知的串口监视器,快捷键是:Ctrl+Shift+M 。点这个图标有用的前提是插上了串口设备,当然 Arduino 插在 USB 上也可以,Arduino Uno 主板上内置了USB 转串口芯片。2- 3 :下载到机器人控制器Arduino 中这就是串口监视器的运行画面相对于网上流传的众多串口调试软件,它的 功能可以说较为简单。右下角是波特率,波特率接收端和发射端要相同,要不然 收到的会是乱码。图 2- 4 :串口监视器如果电脑没找到串口或者驱动没装好,就会有如图2- 5的提示。serial port2- 5 :没有找到串口报错Arduino IDE 的菜单栏中有很多选项,例如“文件”“
32、编辑”等英文界面。其中 Sketch 是草图的意思,在Arduino IDE 中,每个Arduino 程序都称为sketch,他是一个可以上传进Arduino Board 中的程序包,当然经过编译以后他就不是代码包了。Tools 里面第一项,自动格式,当你把一段从网上下载的源代码放到 sketch 里面,会有一些缩进的乱码,这时,Auto Format 就起到了很好的作用。当我们编写好程序后,点击下载,IDE 会自动编译,上传。如果程序有错误,就会有如图2- 6的显示,标出了行号。修改程序后就可以继续编译上传了。图 2- 6 :提示编译错误2.4、 设计前期准备搭建智能避障机器人需要准备的零件
33、清单:表 2- 1 :搭建智能机器人主体零件清单一、主体清单序 号名称规格位 号用 量序 号名称规格位号用 量1控制板ArduinoUNO R319电机驱动 模块29812转接板UNO功能转 接板ZYV6 转接 板1103MM底盘透明2驱15杜邦线4P 母对母20CM4P整条111电池盒转 接板亚克力材质16杜邦线2P 公对母20CM单根的112USB方头线1765MM橡胶轮 子213电机1:48双轴直流减速电机28电机固 定片亚克力电 机固定片4146 节电池盒1表 2- 2 :搭建智能机器人主体额外附件清单二、额外附件清单序 号名名规格称备注用 量序 号名名规格称备注用 量1M3*25 通
34、孔铜柱87M3*8螺丝302M3*10 通孔铜柱48M3*30 螺丝532P 20CM线红色剪 掉端子49清单一张14万向轮110M3 螺帽125扎带211M3*10 螺丝3表 2- 3 :搭建带云台的超声波模块零件清单三、超声波避障带舵机云台清单序 号名称规格位号用 量序 号名称规格位号用 量1超声 波模 块ZYXJ0314杜邦线4P 母对 母杜邦线22铜柱M3*50 通 孔铜柱25M3*8螺 丝要圆头螺丝43转接 板超声波小转接板16舵机云 台上下 板超声波舵机云台1第三章 硬件模块3.1 、各模块的的基本性能3.1.1、 单片机模块本设计采用Atmel Atmega328 微处理控制器。
35、其性能为:Digital I/O 数字输入 /输出端共013。 Analog I/O 模拟输入/输出端共05。支持ISP 下载功能。输入电压:接上电脑USB 时无须外部供电,外部供电7V12V 直流电压输入。输出电压:5V直流电压输出和3.3V 直流电压输出。3- 1 : Arduino Uno 实物图3.1.2、 电机、电机驱动模块本设计采用由双极性管组成的H 桥电路(L298N )。用单片机控制晶体管使之工作在占空比可调的开关状态,精确调整电机转速。这种电路由于工作在管子的饱和截止模式下,则效率非常高;H 桥电路保证了可以简单地实现转速和方向的控制,电子开关的速度很快,稳定性也很高。而且它
36、有更强的驱动能力。而且 L298N 有过电流保护功能,当出现电机卡死时,可以保护电路和电机。这种调速方式有调速特性优良、调整平滑、调速范围广、过载能力大,能承受频繁的负载冲击,还可以实现频繁的无级快速启动、制动和反转等优点。因此决定采用使用功率三极管作为功率放大器的输出控制直流电机。3- 2 : L298N 引脚图3- 3 : L298N 电路原理图3.1.3、 避障模块本设计采用HC-SR04 超声波测距模块,该原件可提供2CM-400CM 的非接触式距离感测功能,测距精度可达高到3mm;模块包括超声波发射器,接收器和控制电路。基本工作原理:(1)采用 IO 口 TRIG 触发测距,给至少1
37、0us 的高电平信号;(2)模块自动发送8 个 40khz 的方波,自动检测是否有信号返回;(3)有信号返回,通过IO 口 ECHO 输出一个高电平,高电平持续的时间就是超声波从发射到返回的时间。测试距离=( 高电平时间*声速 (340M/S)/2;3- 5 :避障模块实物图3.1.4、 电源模块本设计采用的电源为车载电源。为保证电源工作可靠,单片机系统与动力伺 服系统的电源采用了大功率、大容量的蓄电池;而传感器的工作电源则采用了小 巧轻便的干电池。图 3- 6 :电源模块实物图3.2、小车的基本搭建舵机云台和超声波的连接步骤如下图:首先,我们来搭建舵机云台的下端结构部分,如图3- 7所示,列
38、出了所需零件,如下图3- 8所示,标出了舵机放置位置,采用云台模块自带的自攻螺丝固定舵机,如下图3- 9所示:3- 7 :安装下端结构所需零件基于 arduino 的智能小车的设计3- 8 :舵机放置位置3- 10 :自攻螺丝固定舵机侧面图固定云台下固定板到arduino 智能机器人底板上,如下图3- 11、图3- 12所示采用M3*8 的螺丝固定M3*30 的通孔铜柱,具体位置如图标志。3- 11 :固定安装铜柱图 3- 12 :固定安装铜柱背面采用 M3*8 的平头螺丝固定云台底板到智能小车上底板上,如下图3- 13、3- 14所示:3- 13 :安装云台底板固定3- 14 :扭上云台底板
39、固定螺丝固定云台上底板和超声波模块,如下图3- 15所示,安装舵机上底板的位置,我们需要用力把上底板舵盘插入舵机主轴中,完成完成后,我们需要左右转动舵机是否可以左侧旋转约90 °,右侧旋转约90 °,如果不能调到位置需要反复调整舵机与舵盘的安装位置。3- 15 :安装上底板位置关系3- 16 :安装上底板位置侧面图云台上底板与舵机安装注意事项:1、 需要用力把上底板舵盘与舵机主轴对齐,用力插入,直到完全重合为止。2、 安装完成后,需要用力旋转云台,可以左侧旋转约90°、右入,直到满足位置。这两点必须反复操作,因为舵机为 方,按照理想状态,左侧可以探测 为最大探测范
40、围。侧也约 90 ° 位置,如果达不到这个要求,需要重新修正插180 °舵机,安装位置为正前90°,右侧也可以探测90固定舵机螺丝和安装超声波模块,如下图3- 17、图3- 18所示,采用舵机模块自带的自攻螺丝固定舵机模块,固定完成后,插上超声波模块,即可安装完成。3- 17 :装上超声波模块3- 18 :装上超声波模块效果图573- 19 :小车搭建成品3.3、电路连线3.3.1、电机的连线3- 20 :电机线接线3- 21 :电机驱动模块端口标记表 3- 1 :电机与电机驱动模块接线电机电机驱动模块左侧红色输出A: A2左侧黑色输出A: A1右侧红色输出B :
41、 B2右侧黑色输出B : B13- 22 :信号引脚和电源引脚位置3- 23 : arduino Uno 功能扩展板端接线表 3- 2 :电机与arduino 功能扩展板接线电机驱动模块Arduino Uno 功能转接板IN1D8IN2D9IN3D10IN4D113- 24 :电机驱动模块电源线接线3- 25 : arduino 端接线表 3- 3 :电机驱动模块电源线接线电机驱动模块Arduino Uno 功能转接板+12V9V供电GNDGND3.3.2、超声波云台接线超声波云台接线是由两部分组成,第一部分是超声波模块,第二部分属于3- 26、图3- 27所示:首先设置函数:myservo.
42、attach(2); / 定义伺服马达输出第5 脚位。舵机需要连接的有三条线,分别是+ , -,信号。三条线均直接连接到Arduino 板上。3- 26 :超声波接线3- 27 :云台舵机接线具体接线如下表 3- 4所示表 3- 4 :超声波云台接线表超声波云台模块Arduino Uno 功能转接板超声波模块VCCV超声波模块GNDG超声波模块TrigA0超声波模块EchoA1云台舵机灰色线G云台舵机红色线V云台舵机黄色D24.1 、软件设计思路第四章 软件模块在软件设计方面,采用Arduino 语言编程,编写程序流程图4- 1所示:4- 1 :软件设计思路4.2、程序设计代码脚本实现/= 智
43、宇科技=/ 智能小车超声波避障实验(有舵机)/ 程序中电脑打印数值部分都被屏蔽了,打印会影响小车遇到障碍物的反应速度/ 调试时可以打开屏蔽内容Serial.print,打印测到的距离/ 本实验控制速度的pwm 值和延时均有调节,但还是配合实际情况,实际电量调节数值/= /#include <Servo.h>int Echo = A1;/ Echo 回声脚 (P2.0)int Trig =A0;/ Trig 触发脚 (P2.1)int Front_Distance = 0;/int Left_Distance = 0;int Right_Distance = 0;int Left_m
44、otor_go=8;/左电机前进(IN1)int Left_motor_back=9; /左电机后退(IN2)int Right_motor_go=10; / 右电机前进(IN3)int Right_motor_back=11; / 右电机后退(IN4)int key=A2;/ 定义按键A2 接口int beep=A3;/定义蜂鸣器A3 接口/const int SensorRight = 3;/右循迹红外传感器(P3.2 OUT1)/const int SensorLeft = 4;/左循迹红外传感器(P3.3 OUT2)/const int SensorRight_2 = 6;/右红外传感
45、器(P3.5 OUT4)/const int SensorLeft_2 = 5;/左红外传感器(P3.4 OUT3)/int SL;/左循迹红外传感器状态/int SR;/右循迹红外传感器状态/int SL_2;/左红外传感器状态/int SR_2;/右红外传感器状态int servopin=2;/ 设置舵机驱动脚到数字口2int myangle;/ 定义角度变量int pulsewidth;/ 定义脉宽变量int val;void setup()Serial.begin(9600); / 初始化串口/初始化电机驱动IO 为输出方式pinMode(Left_motor_go,OUTPUT);
46、/ PIN 8 (PWM) pinMode(Left_motor_back,OUTPUT); / PIN 9 (PWM) pinMode(Right_motor_go,OUTPUT);/ PIN 10 (PWM) pinMode(Right_motor_back,OUTPUT);/ PIN 11 (PWM) pinMode(key,INPUT);/ 定义按键接口为输入接口 pinMode(beep,OUTPUT);/ pinMode(SensorRight, INPUT); / 定义右循迹红外传感器为输入/ pinMode(SensorLeft, INPUT); / 定义左循迹红外传感器为输入
47、/pinMode(SensorRight_2, INPUT); / 定义右红外传感器为输入/pinMode(SensorLeft_2, INPUT); / 定义左红外传感器为输入/初始化超声波引脚pinMode(Echo, INPUT);/ 定义超声波输入脚pinMode(Trig, OUTPUT);/ 定义超声波输出脚pinMode(servopin,OUTPUT);/ 设定舵机接口为输出接口/= 智能小车的基本动作=/void run(int time) / 前进void run() / 前进digitalWrite(Right_motor_go,HIGH); / 右电机前进 digita
48、lWrite(Right_motor_back,LOW);analogWrite(Right_motor_go,165);/PWM 比例 0255 调速,左右轮差异略增减 analogWrite(Right_motor_back,0);digitalWrite(Left_motor_go,LOW); / 左电机前进 digitalWrite(Left_motor_back,HIGH);analogWrite(Left_motor_go,0);/PWM 比例 0255 调速,左右轮差异略增减 analogWrite(Left_motor_back,160);/delay(time * 100);
49、/执行时间,可以调整void brake(int time)/刹车,停车digitalWrite(Right_motor_go,LOW);digitalWrite(Right_motor_back,LOW);digitalWrite(Left_motor_go,LOW);digitalWrite(Left_motor_back,LOW);delay(time * 100);/ 执行时间,可以调整void left(int time)/左转(左轮不动,右轮前进)/void left()/左转(左轮不动,右轮前进)digitalWrite(Right_motor_go,HIGH); / 右电机前进
50、digitalWrite(Right_motor_back,LOW);analogWrite(Right_motor_go,180);analogWrite(Right_motor_back,0);/PWM 比例 0255 调速digitalWrite(Left_motor_go,LOW); /左轮后退digitalWrite(Left_motor_back,LOW);analogWrite(Left_motor_go,0);analogWrite(Left_motor_back,0);/PWM 比例 0255 调速delay(time * 100);/执行时间,可以调整void spin_l
51、eft(int time)/左转 (左轮后退,右轮前进)digitalWrite(Right_motor_go,HIGH); / 右电机前进digitalWrite(Right_motor_back,LOW);analogWrite(Right_motor_go,200);analogWrite(Right_motor_back,0);/PWM 比例 0255 调速digitalWrite(Left_motor_go,HIGH);/左轮后退digitalWrite(Left_motor_back,LOW);analogWrite(Left_motor_go,200);analogWrite(Left_motor_back,0);/PWM 比例 0255 调速 delay(time * 100);/执行时间,可以调整void right(int time)/void right()/右转(右轮不动,左轮前进)digitalWrite(Right_motor_go,LOW);/右电机后退digitalWrite(Right_motor_back,LOW);analogWrite(Right_motor_go,0);analogWrite(Right_motor_back,0);/PWM 比例
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2026年幼儿园社会元宵节课件
- 2025年湖北省洪湖市高二生物下册期末考试考试卷附完整答案【全优】
- 2026年安徽省天长市高二生物下册期末考试试卷(网校专用)附答案
- 2026年三八节大地幼儿园
- 2026年广东省连州市高二生物下册期末考试测试卷附参考答案(A卷)
- 2025年黑龙江省五大连池市高二生物下册期末考试试卷含答案【培优B卷】
- 企业建(构)筑物防雷检测方案
- 2026年吉林省和龙市高二生物下册期末考试试卷及答案一套
- 2026年山东省胶州市高二生物下册期末考试测试卷附答案【轻巧夺冠】
- 2026年四川省康定市高二生物下册期末考试检测卷及参考答案(轻巧夺冠)
- 2026年重大版小学四年级信息技术下册(全册)教学设计(附目录)
- 2026年北京市石景山区初三二模语文试卷(含答案)
- 全民健身体育中心建设项目技术方案
- 耳念珠菌感染预防与控制规定考试测试卷及答案
- 施工质量风险分析及预防措施
- 山东科技大学2026年综合评价招生《笔试+面试》模拟试题及参考答案
- 2025年《材料加工和成型工艺》考试复习题(含答案)
- 家庭教育指导师考试测试题库2026年
- 事业单位采购管理制度及采购流程
- 【全册教案】2025-2026学年统编版道德与法治五年级下册全册表格式(教学设计)
- 2025年安全生产标准化考试题库及答案
评论
0/150
提交评论