软件著作权申请-基于步进电机及伺服电机的走迷宫小车软件(参考模板)_第1页
软件著作权申请-基于步进电机及伺服电机的走迷宫小车软件(参考模板)_第2页
软件著作权申请-基于步进电机及伺服电机的走迷宫小车软件(参考模板)_第3页
免费预览已结束,剩余10页可下载查看

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

13基于步进电机及伺服电机的走迷宫小车软件V1.0一 软件介绍 基于步进电机及伺服电机的走迷宫小车软件,是基于步进电机及伺服电机的驱动方式,以巡黑线小车为基础,使用Arduino开发平台,充分利用Arduino是一个开源项目的性质,有大量资源能够在互联网上共享。采用面向对象的编辑语言(C+ )或者C语言,完成可以实现小车走迷宫(第一次寻找迷宫终点)并能对路径优化的任务(第二次以最优路线到达终点)。小车系统采用红外对管作为传感器,实现硬件与软件的结合,强调软件的健壮性,系统的稳定性,其主要工作包括硬件的搭载、算法的研究和优化、结构布局的调整、系统的后期调试。主要目的是了解机器自我学习的过程,并有这个理论拓展到更高层面机器人的自我学习,自我判断。智能小车也是一个典型的、比较好上手的机电一体化系统,其包括机械结构、信息处理系统、动力源、传感检测系统、执行元件,完全满足机电一体化系统的构成要素。二 软件对使用环境的要求n 对计算机的最低硬件要求:CPU 2.0G,512MB内存,40G硬盘;n 计算机软件环境要求: WinAll、Win XP、Win7、Win8、Win10等操作系统。三 软件运行平台本软件将使用Arduino平台,Arduino是一款便捷灵活、方便上手的开源电子原型平台。包含硬件各种型号的Arduino板和软件Arduino IDE。它构建于开放原始码simple I/O介面版,并且具有使用类似Java、C语言的Processing/Wiring开发环境。主要包含两个主要的部分:硬件部分是可以用来做电路连接的Arduino电路板;另外一个则是Arduino IDE,你的计算机中的程序开发环境。你只要在IDE中编写程序代码,将程序上传到Arduino电路板后,程序便会告诉Arduino电路板要做些什么了。 四 小车硬件系统组成4.1 底盘底盘是小车的基础,是搭载各种模块的载体,固定在上面的部件包括电源、电机、轮胎、万向轮及其他零部件。4.1.1 电源这里采用三节TR 18650可充电锂电池,每节工作电压3.7 V,并配备开关。4.1.2 电机市面上可以做智能小车的电机有直流减速电机、步进电机、舵机、小型伺服电机等。本软件综合了步进电机及伺服电机两种动力源的走迷宫小车控制方式。4.1.2.1 步进电机 步进电机又被称作脉冲电动机,它接收电脉冲信号,产生角位移或者线位移。它通常用在开环控制系统的执行部分。近年来,由于计算机技术的迅猛发展和广泛应用,出现了以步进电机和计算机相结合,组成精度较高的数字控制单元。其在没有超载的前提下,步进电机的转速、停止的位置等只与脉冲信号的频率和脉冲数有关,而不会受到负载变化的影响,其接收到一个脉冲信号,它就会转动一个固定的步距角,也就是说,步进电机的角位移大小和转速快慢分别与接收到的脉冲数目和脉冲频率成正比的关系。 4.1.2.2 伺服电机伺服电机是一种能实现精确移动、位置确定、和其他定位要求较高场合的动力装置,多用于遥控玩具和机械手臂的关节处。伺服电机是由普通的直流电机、电机旋转角度监测单元、一组减速齿轮所构成当舵机转动时,会一起带动电位计转动,控制电路会根据电位计的电压变化,得知这个时候舵机转动的角度。4.1.3 车轮小车采用两轮驱动,需要一对主动轮和一个万向轮。 轮胎的选择主要考虑车身的高度和所搭配的电机,前面选择的是使用舵机作为驱动电机,在互联网上搜索各种模型店中的模型轮胎,选用直径在60100mm的轮胎比较合适,最终确定使用一款供模型使用的火焰橡胶轮胎,其直径80mm,宽18mm,能够直接和舵机链接,不需额外的联轴器,这一点相比较而言,非常方便。 小车的底盘初步设计完成如图4.1,固定在上面的部件包括电源、电机、轮胎、万向轮及其他零部件。图4.1 小车底盘三维图4.2 小车控制部分硬件组成4.2.1 控制板 Arduino 是全球最流行的开源硬件,也是一个优秀的硬件开发平台,更是以后硬件发展的趋势。Arduino使用简单的开发方式,这个鲜明的特点使得使用者能够把精力花费在项目的创意和实现,可以大大节省项目开发的时间,同时也大大地节省了学习的成本,缩短开发周期。 在众多的Arduino 控制器中,Arduino UNO是使用最广泛的Arduino 控制器,具有Arduino 的所有功能,也是制作智能小车等DIY小型机器控制器的绝佳选择。4.2.2传感器4.2.2.1传感器的选择 在智能小车当中,红外发射管发射的红外线具有很强的针对性,当红外线照射到白色的地面时,会产生较强的反射,如果红外发射管与地面的距离比较合适,红外接收管就会接收到很强的信号;相反的,如果红外线照射到黑色的东西,黑色物质会吸收很大一部分的红外光,红外接收管只能接收到很弱的红外信号。根据这个原理,提前在智能小车行驶的道路上布置一些特定的黑色标志线,利用红外光电传感器检测信号,就能使小车按照黑色标记线行走,达到巡线的目的。4.2.2.2传感器的布置本小车采用火箭型布置如图4.2图4.2 传感器火箭型布置图4.2.3显示器 1602 LCD是一块并口显示器,可以使用两种接线方式:4位数据接线法和8位数据接线法。8位 数据接线法使用D0D7传输数据,传输速度比较快,但是会使用Arduino 较多的引脚,而Arduino UNO本身的接口数较少,如果使用4位数据接线法,能节省4个接口,相比较Arduino UNO本身较少的接口资源,用这种方法也是比较浪费接口资源的。最佳的方法是接口转接,以极少的接口完成1602 LCD 的驱动。4.2.4其他辅助器件4.2.4.1 电源降压模块 因为前面的电子元器件的正常工作电压是5V,而电源是由3个3.7V的锂电池供电。这里必须要一个降压模块。采用的是LM2596作为稳压芯片的降压模块。其内部包含了一个150KHZ振荡器、1.23v基准稳压电路、热关断电路、电流限制电路等。可接受输入电压5V-35V,输出电压5V,输出电流最大3A。4.2.4.2语音识别模块SYN6288中文语音合成模块(TTS) ,如图4.3左图为语音合成模块,包括模块控制板和发生喇叭,右图表示了语音合成模块与单片机的接线方式,通过输入相应的程序,便可以发出对应的声音,其用于走迷宫小车在路口处的语音播报,提高小车对路口的识别度,便于调试小车软件,使小车准确有效的工作。 SYN6288中文语音合成模块(TTS)迷你版采用标准2.54mm7针引脚,尺寸仅为完整版模块的一半(硬币大小),引脚完全兼容本店SYN6288完整板模块和语音增强型最小系统板。中文语音合成(TTS),无需录制,自动识别常用词语及多音字,内含多种常用提示音及多段背景音乐,可与语音同步播放,语速、音量可调,无需复杂编程,还带有两个指示灯,特别适合研发产品和实验使用图4.3 语音合成模块的实物图及接线图 在相关元器件选择完成后,动手制作小车,此外还需要大量杜邦线,绝缘胶带,拔线钳等工具。按照合理的接线方式,最后将小车制作而成。如图4.4左为伺服电机为驱动的走迷宫小车三维图。如图4.4右为伺服电机走迷宫小车实物图。图4.4 两种不同驱动方式走迷宫小车实物图五 软件的运行5.1 打开Arduino IDE平台 单击Arduino IDE图标,进入Arduino编程界面如图5.1。图5.1 Arduino编程界面5.2 软件代码的运行及上传 以下走迷宫小车软件为例,将本软件代码复制粘贴到Arduino编程界面并点击运行符号运行程序软件如图5.2所示,运行完毕并提示运行结果如图5.3箭头所示。图5.2 运行程序图5.3 运行结果 软件成功运行,表明此时代码没有语法错误,能够顺利上传,现采用USB串口线将程序下载到走迷宫小车的Arduino UNO板上如图5.4图5.4 串口线及串口线与小车连接方式 将小车的Arduino UNO板与上位机(电脑)连接后,在Arduino IDE选择对应的开发板及串行端口如图5.5所示,本例选择开发板Arduino/Genuino Uno,串行端口选择COM3。图5.5 选择对应的开发板及串行端口 如图5.6点击上传按钮,再次运行软件程序,并把程序上传至Arduino UNO 开发板,上传成功将提示如图5.7所示内容,表示上传成功。此时将小车放至黑线跑道,小车便能正确运行程序,完成程序所要求的功能。即第一次按照右手定则寻找黑线迷宫,第二次采取最优化的路径到达终点。图5.6 上传程序图5.7 上传结果 如下图所示,为实际小车运行的实拍图片,经过对程序的多次调试,发现小车能准确的识别路口并找到终点,且能记住所走路径,第二次能以最优化的路径到达终点。图5.8 实际运行六 附件6.1 走迷宫小车程序的算法研究6.1.1 小车走迷宫中对直线的处理方法 直线是走迷宫的基础,前面选择的红外光电传感器,当机器人在走迷宫时,如果是检测到黑色,传感器输出“0”低电平;如果检测到白色,传感器输出“1”高电平。当机器沿着直线行走过程中,传感器的状态会组合成5种不同的情形,如下图所示:图6.1 小车在寻线时的传感器输出5种具体的情形: (11011)说明小车正对着黑线,这种情形时,让小车继续前进; (11001)说明小车稍微向左偏离黑线,这种情形时,让小车左驱动轮速度稍微大于右驱动轮速度; (11101)说明小车严重向左偏离黑线,这种情形时,让小车左驱动轮速度大于右驱动轮速度比较多,快速纠正姿势; (10011)说明小车稍微向右偏离黑线,这种情形时,让小车右驱动轮速度稍微大于左驱动轮速度; (10111)说明小车严重向右偏离黑线,这种情形时,让小车右驱动轮速度大于左驱动轮速度比较多,快速纠正姿势。6.1.2 小车走迷宫中对岔路口的处理原则 对于迷宫式线迷宫,在小车遇到岔路口时,前面会有左转、前进、右转这些动作进行选择,运用一定的规则,是能走出迷宫的。下面是一些常用的应对岔路口的法则: 中右法则岔路口优先选择直走,其次是右转、左转; 中左法则岔路口优先选择直走,其次是左转、右转; 右手法则岔路口优先选择右转,其次是直走、左转; 左手法则岔路口优先选择左转,其次是直走、右转; 随机数法则每次选择不一样,同一岔路不能重复选择。 其中左手法则用的比较多,这里我选择了左手法则来指导小车应对个岔路口的的路况。6.1.3 小车走迷宫中对岔路口的处理方法 (1)路口的类型:迷宫式线迷宫,根据线条的各种组合,可以组合成8种路口,如图6.2所示,他们分别是左转路口、右转路口、T型路口、左转或直行路口、右转或直行路口、终点、死胡同。图6.2 8种路口情形 从图中我们发现,左转路口、右转路口、死胡同是没有分叉的,并不是属于岔路口的范围,在面对这些路口时,小车的行进方向是唯一的。真正的岔路口有T型路口、左转或直行路口、右转或直行路口、十字型路口、终点这5种。(2)路口的识别与处理:左转路口与左转或直行路口的识别与处理 如图6.3所示,当小车刚进入到这两种路口时,传感器检测路面情况,但是这个时候传感器的反馈信号都是“00011”,无法区别具体的情况,这个时候就得让小车走一小步,让车身完全进入到识别区。这时传感器会检测到不同的信号,如果是左转路口,则传感器反馈的信号是“01111”,如果检测到左转或直行路口,那么反馈的信号是“01011”。在“左手法则”的指导下,下车的动作都会向左转弯。刚进入路口 完全进入到路口图6.3 左转路口与左转或直行路口的识别原理(小圆圈代表传感器,下面类似) 右转路口与右转或直行路口的识别与处理 如图6.4所示,当小车刚进入到这两种路口时,传感器检测路面情况,但是这个时候传感器的反馈信号都是“11001”,无法区别具体的情况,这个时候就得让小车走一小步,让车身完全进入到识别区。这时传感器会检测到不同的信号,如果是右转路口,则传感器反馈的信号是“11110”,如果检测到右转或直行路口,那么反馈的信号是“11010”。在“左手法则”的指导下,下车的动作会选择向右转弯和直行。图6.4 右转路口与右转或直行路口的识别原理 T型路口、终点、十字型路口的识别与处理 如图6.5所示,当小车刚进入到这三种路口时,传感器检测路面情况,但是这个时候传感器的反馈信号都是“10001”,无法区别具体的情况,这个时候就得让小车走一小步,让车身完全进入到识别区。这时传感器会检测到不同的信号,如果是终点反馈信号会是“00000”;如果是T型路口,反馈信号会是“01110”;如果是十字型路口,反馈信号会是“01010”。遇到终点小车会停止,遇到后面两者小车左转。 图6.5 终点、T型路口、十字型路口的识别原理 死胡同路口的识别与处理 如图6.6所示,如果前方是死胡同,传感器会检测到没有黑色标记线存在,那么反馈信号是“11111”,此时,小车掉头。图6.6 死胡同路口的识别原理 根据前面的叙述,可以总结出小车走迷宫时遇到路口的处理方法,用流程图(如图6.7)小车在走线迷宫时,将控制方法分为以下几个步骤:小车沿着当前赛道前进;前进同时检测前方是否有岔路口;一旦检测到岔路口,小车要判断岔路口的类型;确定岔路口类型后,在左手法则控制下完成转弯。整个流程在小车走迷宫时将会循环作用,直到小车找到达迷宫的终点。6.2 走迷宫小车路径优化的算法研究6.2.1 路口标记 要想小车能够进行自主学习,首先它得做到心中有数。这里采用字符标记的方法,让小车记录自己已经经过的岔路口,这里区别于路口的概念,岔路口是前面面临不止一种选择的路口,像左转、右转路口是不属于岔路口的,经过这种路口只要做到识别准确,不需要进行标记。在岔路口时,采用“左手法则”,区分优先等级后,小车会有左转、直行、右转、掉头这些动作,小车具体执行哪一个,就给记录相应的标记,如果是左转就记录“L”、右转记录“R”、直行记录“S”、掉头记录“U”。6.2.2优化的过程图6.7 路口优化过程(一) 如图6.7左所示,小车遇到第一个左转或直行路口时,按照“左手法则”,小车向左转。此时,给小车记录一个“L”标记。前面是左转路口,不进行标记,再往前走是死胡同,小车要掉头记录标记“U”,掉头完成后,会是一个右转路口,这里也不进行标记。小车再往前,就是一个T型路口,小车左转,记录“L”。这个时候标记字符串就是“LUL”,然而我们观察刚才走过的一段路程会发现,这刚刚走过的是一段无效路径,需要优化,很明显,如果小车下次走到这里,让小车直行就可以避免前面走的那一段没有用的路径(图中虚线部分)。也就是说字符串“LUL”等效于“S”。 小车继续往前,会是一个十字型路口如图6.7右所示,在“左手法则”的规定下,这个路口的标记记录和优化等效过程也是“LUL”=“S”,因为和前面类似,这里不再累述。图6.8 优化过程(二) 小车再往前走,是一个T型路口,如图6.8左所示,小车先向左选择向左行进,并记录“L”标记,在往前就是死胡同,小车掉头并记录一个“U”字符,往前走就是一个右转或直行路口,这里有“左手法则”的约束,小车不会转弯选择直行,但是记录一次“S”。针对小车刚刚走过的这段路程,进行优化,可以等效出来下次走这个路口时,如图6.8右图所示,小车选择右转(R),也就是“LUS”= “R”。 小车继续往前走,前方是一个死

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论