割草机器人自动避障系统设计,割草,机器人,自动,系统,设计
邹晓杰 割草机器人自动避障系统设计
扬州大学广陵学院
本科生毕业设计
毕业设计题目 割草机器人自动避障系统设计
学 生 姓 名 邹晓杰
专 业 机械设计制造及其自动化
班 级 机械81001
指 导 教 师 高龙琴
完 成 日 期 2014 年 5 月 31日
摘 要
自动避障系统是割草机器人关键模块之一,是割草机器人自主、安全行走前提。本文首先对国内外市场上现存的智能割草机器人进行了介绍和比较,指出了现在智能割草机器人研制过程中需要注意的关键技术,并结合以往的成功经验和现在的实际需求,选择易于实验的小车结构。STC89C52单片机是宏晶科技推出的新一代高速/低功耗/超强抗干扰的单片机,指令代码完全兼容传统8051单片机,12时钟/机器周期和6时钟/机器周期可以任意选择。本课题以设计割草机器人自动避障为目的,采用STC89C52单片机作为控制核心,采用超声波传感器来检查路面上的障碍,来控制执行机构的自动避障,从而使执行机构完成左转、右转和后退的动作。其中采用的技术主要有:(1)超声波传感器的有效应用,(2)显示器的使用,(3)通过编程来控制执行机构的运动。
关键词:STC89C52单片机,超声波传感器,执行机构,显示器
IV
Abstract
Automatic obstacle avoidance system is one of the key module robot mowers mowing robot, is independent, safe walking premise. This paper firstly introduced and compared to the domestic and foreign existing in the market of intelligent robot mowers, points out the key technologies in the development process of the Intelligent Robot Mower now, combined with the successful experiences and actual demand now, select the vehicle structure is easy to experiment.STC89C52SCM is the macro crystal technology, the introduction of a new generation of high / low power / super anti-jamming MCU, the instruction code is fully compatible with traditional 8051 SCM, 12 clock / machine cycle and 6 clock / machine cycle can be arbitrarily chosen.
The design of automatic obstacle avoidance for Robot Mower, using STC89C52 micro-controller as control core, using ultrasonic sensors to check the road barriers, automatic obstacle avoidance control actuator, the actuator to complete the left, right and back action. The main technology:(1)The effective application of ultrasonic sensor.(2) The use of the monitor. (3)Programmed to control the car.
Key words: STC89C52microcontroller, ultrasonic sensor, actuator , display
I
目录
中文摘要 I
Abstract II
第一章 绪论 1
1.1选题背景及意义 1
1.1.1自动割草机器人概述 1
1.1.2自动割草机器人优点 1
1.2割草机器人的发展简史及其研究现状 2
1.2.1发展简史 2
1.2.2国外的研究现状 2
1.2.3国内的研究现状 3
1.3割草机器人自动避障系统 3
第二章 总体方案设计 5
2.1主要研究内容 5
2.2具体方案介绍 5
第三章 超声波测距 7
3.1超声波测距设计思路 7
3.1.1超声波测距原理 7
3.1.2超声波测距方法 7
3.1.3超声波模块的选择 7
3.1.4显示器的选择 8
第四章 超声波模块的硬件结构设计 9
4.1超声波模块电路设计 9
4.1.1 超声波模块的特点 9
4.1.2 超声波模块的工作原理 9
4.1.3模块参数 10
II
4.1.4超声波时序图 10
4.1.5超声波发送与接收 11
4.2 STC89C52单片机功能及特点 12
4.2.1 STC89C52单片机参数 12
4.2.2 STC89C52单片机特性 13
4.3显示电路设计 15
4.3.1 1602液晶屏的优点 15
4.3.2 1602管脚定义 15
4.3.3 1602操作时序 16
第五章 超声波测距模块软件设计 18
5.1超声波测距算法设计 18
5.2主程序流程 18
5.2.1系统初始化程序 18
5.2.2超声波启动程序 19
5.2.3超声波计时程序 19
5.2.4测距程序 20
5.3实验结果 20
第六章 实验用执行机构硬件设计 22
6.1执行机构底盘 22
6.2执行机构驱动模块 22
6.2.1 L298N驱动模块说明 22
6.2.2 L298N参数 23
6.3 SG90舵机 24
6.3.1什么是舵机 24
6.3.2舵机工作原理 24
6.3.3利用单片机实现舵机转角控制 25
第七章 执行机构软件设计 26
7.1执行机构行走程序 26
III
7.2舵机转动控制执行机构行走程序 27
结论 30
致谢 31
参考文献 32
附录1超声波避障舵机转动编程 33
附录2 电路原理图 40
IV
第一章 绪论
1.1选题背景及意义
1.1.1自动割草机器人概述
随着经济的发展,各国城市建设逐渐深化,城区的绿化程度也随之提高,大量的公园草坪、足球场草坪、GOFL球场草坪等公共绿地均需要进行维护。在各种草坪维护作业中,以草皮修剪工作最为繁重,不仅枯燥,而且重复性强,通常需要消耗大量的人力和物力。为了降低草坪维护作业的劳动强度和成本,近年来一些西方国家提出用现代电子技术和智能控制技术改造和提升草坪机械产业的战略,希望在不久的将来用智能的自动割草机器人取代传统的割草机。
自动割草机器人属于民用户外移动机器人领域,从系统科学的角度来讲,它是集环境感知、路径动态规划与决策、行为控制与执行等多种功能于一体的综合机器人系统。感知系统实时监测外界环境变量、移动机构及割草机构运行参数,并将结果输送到控制系统;控制系统将获得的数据与自身的数据库做比较,并参照路径规划对移动机构和割草机构发出修正指令,以获得稳定的运行情况。与传统的草坪修剪机械相比,自动割草机器人具有环保、人力消耗低和高安全性等特点。
1.1.2 自动割草机器人优点
自动割草机器人与传统的割草机相比有着众多的优点。
1.自动割草机器人可自主工作,仅仅需要少量的人工干预甚至不需要人工干预。传统的割草机需要人的全程干预,割草任务相当繁重。
2.自动割草机器人更加安全。自动割草机器人采用了传感器技术和单片机控制技术,灵敏度更高,应用范围更广,检测精度也更高。也不会因为操作人员的疲劳导致各种意外事故。
3.自动割草机器人有利于保护环境。传统的割草机通过内燃机进行工作,会产生很大的噪声和废弃,这将严重影响操作人员的身体健康并且会污染环境。而割草机器人具有体积小、重量轻和所需功率小等特点,因此在太阳光充足的地方完全可以使用太阳能电池来提供能量,有利于环境保护。
IV
1.2割草机器人的发展简史及其研究现状
1.2.1发展简史
1805年英国人普拉克内特发明了第一台收割谷物并可以切割杂草的机器,由人推动机器,通过齿轮传动带动旋刀割草,这就是割草机的雏形。
1830年,英国纺织工程师比尔-布丁取得了滚筒剪草机的专利。
1832年,兰塞姆斯农机公司开始批量生产滚筒式割草机。
1902年英国人伦敦恩斯制造了内燃机作动力的滚筒式割草机,其原理延用至今。
从20世纪80年代开始,各种技术都日瑧成熟,链传动,齿轮传动,皮带轮组无级变速,电传动,静液压无级变速全都在割草机上使用,特别是静液压无级变速的驱动单元不仅减轻了司机的操作劳动强度而且还给他们带来了操作的乐趣,加之现代机械设计理念使割草机的结构设计越来越简洁,外形越来越美观,割草机产业显得比以往任何一个时候都更为兴旺。
1.2.2国外的研究现状
国外对智能割草机器人的研究已经有很长一段时间,在一些草坪拥有量比较的发达国家,他们将智能割草机器人作为商品出售,并且销量很好。出售的智能割草机器人已经达到了中等水平,极大的提高了人们的劳动效率,同时也促进了国外割草机器人的研究与发展。
国外的科研机构对割草机器人展开的研究主要偏向割草机器人的智能控制技术,导航技术和路径规划等方向,而针对割草机器人的系统设计相对较少。美国专利US4919224采用了蓄电池供电,能在预定时间启动,具有避障,防盗及自动充电等功能,采用三根导线来进行导航,当遇到下雨,湿地及电源不足等以外情况时,返回车库,该专利采用超声波来探测障碍,用震荡探测器及密码来防止非法用户操作机器。
美国专利US5204814采用了优化的导航技术,综合利用存储的路径及环境信息,无磁无电流的金属导线和埋在地下的金属导线三种方式来指导割草机器人的移动,该专利还选用了内燃机做动力,配合发电机及电池组使用,采用分布式控制方式。其它类似的专利有美国专利US4679152,美国专利US4800978,美国专利US3800902及法国专利2631466,美国专利US4777785提供了一种导航新方法即沿未割及已割区域的边缘行走,从而完成导航任务。
1.2.3国内的研究现状
国内的研究机构对自动割草机器人的研究起步相对较晚,但仍有一定的积累。南京理工大学机械电子工程专业的王华坤教授早在2000年就展开了智能割草机器人的研究,其研究生李杏春的硕士论文《移动割草机器人总体方案和控制系统设计与研究》对割草机器人的总体设计、路径规划、避障!定位系统、控制系统等从理论上进行了较全面的研究,进而提出了一种廉价实用的总体方案,为进一步深入研究割草机器人打下了基础;其研究生陈正江的硕士论文《户外自主移动机器人体系结构与控制系统研制》主要研究户外自主移动机器人的运动控制系统与体系结构,并设计制造了自主移动机器人样机MORO一I,实现了机器人的导航和自主行走控制;其博士生祖莉的博士论文《智能割草机器人全区域覆盖运行的控制和动力学特性研究》将移动机器人的导航定位、智能控制、规划避障等方面的技术和理论运用到割草机器人平台上,进行了相关的实验,并讨论了割草机器人在户外移动机器人中的特殊性;江苏大学也对割草机器人做了一定的研究,研究生周宁的硕士论文《割草机器人割台设计与运动控制研究》就割草机器人的设计及运动控制等方面展开了一系列的研究工作,并根据中国草坪的特点完成了割台部分的设计,最后得到割草机器人割台的主要性能参数;研究生丁毅的硕士论文《基于GPS和数字罗盘的割草机器人导航定位方法的研究》提出了利用GPS和数字罗盘进行割草机器人导航的新思路。
1.3割草机器人自动避障系统
避障对于割草机器人自主导航,路径规划是不可缺少的,它是割草机器人智能化的体现。割草机器人避障系统的好坏直接影响到割草机器人执行各项任务的能力。
一个好的避障系统是完成割草机器人避障任务的前提。一般来说,一个完整的避障系统主要包括三个方面:避障探测系统,避障信息的处理和避障策略。避障探测系统是由各种传感器和控制器组成的探测障碍物信息的系统,整个避障探测系统是机器人感知外部环境信息的唯一途径,传感器的选择将成为割草机器人收集环境信息正确与否的关键。采用视觉系统避障可以获得较完整的环境信息,但图像处理运算量大,对设备的性能要求高,从而会使机器人在避障时实时性比较差。近年来,为了解决这个问题,人们开始研究采用非摄像类传感器探测环境信息,但单一的传感器由于受其固有的缺陷等因素的影响,使其在探测环境信息时,不能够提供准确,全面的环境信息。因此,在实际应用中,采用多传感融合技术来实现对环境信息的探测,如何提高测量精度就成为了研究热点。
通常应用于机器人距离探测的传感器有激光传感器,视觉传感器,红外传感器和超声波传感器等。
红外传感器工作原理是采用发射固定波长红外线并接收同一回波的主动方式。其优点是探测角较小,方向性强,测量精度高,反应速度快,但其缺点是受环境影响较大,红外探测头稍微被灰尘污染,其测量精度就会大大下降,而且探测距离较近。
超声波传感器对环境的适应能力强,在阴影,灰尘,烟雾,水汽等环境下,其性能指标不受任何影响,即使遇到工作环境异常恶劣的场合,其性能指标所受的影响也微乎其微。而且超声波传感器相比于激光测距仪来说要便宜的多,不易损坏。超声波传感器具有成本低廉,信息,数据采集快,重量轻,体积小,易于安装等优点。
综合考虑,用超声波传感器易于实现草坪上障碍物的探测。
40
第二章 总体方案设计
2.1主要研究内容
本课题主要研究的是智能割草机器人的自动避障系统,自然就包括了障碍物的检测,检测信息的处理以及如何将这些数据反馈到执行机构上。障碍物的检测需要用到传感器,然而传感器的种类繁多,应用最为广泛的是超声波传感器和红外线传感器。超声波传感器和红外线传感器的优缺点已经在上述部分列出,所以本课题采用超声波传感器来测量与障碍物之间的距离。超声波测距一般采用时间飞跃法(TOF)。首先测出超声波发出到碰到障碍物返回的时间,再乘以声速就得到2倍的障碍物距离。再利用单片机控制技术完成信号采集与控制,进而提出控制策略,通过执行机构实施达到障碍物的规避目的。
图2.1割草机器人系统构成框图
2.2 具体方案介绍
本课题的重点也是难点是障碍物距离的检测,打算采用STC89C52型号的单片机作为控制核心,型号为HC-SR04的超声波模块以及1602的液晶屏来实现测距功能。该系统包括了超声波发射与接收模块,复位电路,液晶显示等。并且,在超声波传感器下安装一个S90舵机,利用舵机来控制超声波传感器左右转动,从而使超声波传感器测量出前方、左侧以及右侧三个方向的障碍物距离。然后,在单片机中写入具体点编程,使整个系统能够运行。其中舵机的优点就能很好的呈现出来,当超声波传感器检测到障碍物时,若左右检测距离均小于20cm,则执行机构后退;若左侧小于右侧,则右转;反之,则左转。
第三章 超声波测距
3.1超声波测距设计思路
3.1.1超声波测距原理
通过超声波发射装置发出超声波,根据接收器接到超声波时的时间差就可以知道距离了。这与雷达测距原理相似。 超声波发射器向某一方向发射超声波,在发射时刻的同时开始计时,超声波在空气中传播,途中碰到障碍物就立即返回来,超声波接收器收到反射波就立即停止计时。(超声波在空气中的传播速度为340m/s,根据计时器记录的时间t,就可以计算出发射点距障碍物的距离(s),即:s=340t/2)。
3.1.2超声波测距方法
超声波指向性强,在介质中传播的距离较远,因而超声波经常用于距离的测量,如测距仪和物 位测量仪等都可以通过超声波来实现。利用超声波检测往往比较迅速、方便、计算简单、易于做到实时控制,并且在测量精度方面能达到工业实用的要求,因此在移 动机器人的研制上也得到了广泛的应用。
一般测距采用时间飞跃法(TOF),即测出超声波发出到碰到障碍物返回的时间,再乘以声速就得到2倍的障碍物距离。本系统测距过程大致如下:单片机发出40khz的信号来驱使超声波传感器,当发射器将第一个超声波脉冲发射后,计数器开始计数,接收器检测到第一个回波后停止计数。利用接收到的时间以及测距公式可以将距离显示在1602液晶屏上。
3.1.3超声波模块的选择
超声波模块选择了市面上运用广泛的HC-SR04型号的芯片。HC-SR04超声波测距模块可提供2cm-400cm的非接触式距离感测功能,测距精度可达3mm;模块包括超声波发射器、接收器与控制电路。基本工作原理:
(1)采用IO 口TRIG 触发测距,给至少10US 的高电平信号;
(2)模块自动发送8 个40KHz 的方波,自动检测是否有信号返回;
(3)有信号返回,通过IO 口ECH0 输出一个高电平,高电平持续的时间就是超声波从发射到返回的时间。测试距离=(高电平时间*声速(340M/S))/2;
3.1.4显示器的选择
显示模块选择1602液晶显示屏,因为液晶显示器以其微功耗、体积小、显示内容丰富、超薄轻巧的诸多优点,在各类仪表和低功耗系统中得到广泛的应用。并且相比于数码管该模块有以下几个优点:
(1) 位数多,可以显示32位,32个数码管而言体积很大。
(2) 显示内容丰富,可显示所有数字和大小写字母。
程序简单,如果用数码管动态显示,会占用很多时间来刷新,1602能自动完成刷新。
第四章 超声波模块的硬件结构设计
硬件电路的设计主要包括单片机系统,超声波发射部分,超声波接收部分以及显示部分。单片机芯片采用STC89C52系列或其兼容系列,因为其采用Flash存贮器技术,降低了制造成本,其软件、硬件与MCS-51完全兼容,且采用高密度非易失存储器制造技术制造,将多功能8位CPU和闪烁存储器组合在单个芯片中,有利于操作。单片机P2.0管脚触发控制信号的输入,P2.1管脚控制回响信号的输出。显示部分采用1602液晶屏显示。
4.1超声波模块电路设计
超声波模块采用型号为HC-SR04型号产品。HC-SR04超声波测距模块2cm-400cm的非接触式测距感测功能,测距精度可达3mm。模块包括超声波发射器,接收器和控制电路。
4.1.1 超声波模块的特点
1.典型工作用电压:5V。
2.超小静态工作电流:小于2mA。
3.感应角度:不大于15度。
4.探测距离:2cm-400cm
5.高精度:可达0.3cm。
6.盲区(2cm)超近。
7.完全谦容GH-311防盗模块。
4.1.2 超声波模块的工作原理
(1)采用IO口TRIG触发测距,给至少10us的高电平信号。
(2)模块自动发送8个40khz的方波,自动检测是否有信号返回。
(3)有信号返回,通过IO口ECHO输出一高电平,高电平持续的时间就是超声波从发射到返回的时间.测试距离=(高电平时间*声速(340M/S))/2。
即控制口发一个10US以上的高电平,就可以在接收口等待高电平输出。
一有输出就可以开定时器计时,当此口变为低电平时就可以读定时器的
值,此为次测距的时间,方可算出距离。如此不断的周期测,就可以达
到你移动测量的值。
4.1.3模块参数
图4.1 HC-SR04外观图
4.1.4超声波时序图
图4.14超声波时序图
上面的时序图表示只要你提供一个10us以上的脉冲触发信号,模块内部就会循环发出8个40KHz的脉冲,打开计时器,当检测到回波信号是打开输出回响信号,回响电平输出与检测距离成正比,通过该间隔时间可计算出距离。
4.1.5超声波发送与接收
图4.15超声波模块信号发射与接收
4.2 STC89C52单片机功能及特点
STC89C52是STC公司生产的一种低功耗、高性能CMOS8位微控制器,具有 8K 在系统可编程Flash存储器。STC89C52使用经典的MCS-51内核,但做了很多的改进使得芯片具有传统51单片机不具备的功能。在单芯片上,拥有灵巧的8 位CPU 和在系统可编程Flash,使得STC89C52为众多嵌入式控制应用系统提供高灵活、超有效的解决方案。 具有以下标准功能: 8k字节Flash,512字节RAM, 32 位I/O 口线,看门狗定时器,内置4KB EEPROM,MAX810复位电路,3个16 位定时器/计数器,4个外部中断,一个7向量4级中断结构(兼容传统51的5向量2级中断结构),全双工串行口。另外 STC89C52可降至0Hz 静态逻辑操作,支持2种软件可选择节电模式。空闲模式下,CPU 停止工作,允许RAM、定时器/计数器、串口、中断继续工作。掉电保护方式下,RAM内容被保存,振荡器被冻结,单片机一切工作停止,直到下一个中断或硬件复位为止。最高运作频率35MHz,6T/12T可选。
4.2.1 STC89C52单片机参数
1.增强型8051单片机,6 时钟/机器周期和12 时钟/机器周期可以任意 选择指令代码完全兼容传统8051。
2.工作电压:5.5V~3.3V(5V单片机)/3.8V~2.0V(3V 单片机)。
3.工作频率范围:0~40MHz,相当于普通8051的0~80MHz,实际工作频率可达48MHz。
4.用户应用程序空间为8K字节。
5.片上集成512 字节RAM。
6.通用I/O 口(32 个),复位后为:P0/P1/P2/P3 是准双向口/弱上拉, P0 口是漏极开路输出,作为总线扩展用时,不用加上拉电阻,作为 I/O 口用时,需加上拉电阻。
7.ISP(在系统可编程)/IAP(在应用可编程),无需专用编程器,无需专用仿真器,可通过串口(RxD/P3.0,TxD/P3.1)直接下载用户程序,数秒即可完成一片。
8.具有EEPROM 功能。
9.共3 个16 位定时器/计数器。即定时器T0、T1、T2。
10.外部中断4 路,下降沿中断或低电平触发电路,Power Down 模式可 由外部中断低电平触发中断方式唤醒。
11.通用异步串行口(UART),还可用定时器软件实现多个UART。
12.工作温度范围:-40~+85℃(工业级)/0~75℃(商业级)。
13.PDIP封装。
4.2.2 STC89C52单片机特性
1.8K字节程序存储空间;
2.512字节数据存储空间;
3.内带2K字节EEPROM存储空间;
4.可直接使用串口下载;
STC89C52具体介绍如下:
① 主电源引脚(2根)
VCC(Pin40):电源输入,接+5V电源
GND(Pin20):接地线
② 外接晶振引脚(2根)
XTAL1(Pin19):片内振荡电路的输入端
XTAL2(Pin20):片内振荡电路的输出端
③控制引脚(4根)
RST/VPP(Pin9):复位引脚,引脚上出现2个机器周期的高电平将使单片机复位。
ALE/PROG(Pin30):地址锁存允许信号
PSEN(Pin29):外部存储器读选通信号
EA/VPP(Pin31):程序存储器的内外部选通,接低电平从外部程序存储器读指令,如果接高电平则从内部程序存储器读指令。
④可编程输入/输出引脚(32根)
STC89C52单片机有4组8位的可编程I/O口,分别位P0、P1、P2、P3口,每个口有8位(8根引脚),共32根。
PO口(Pin39~Pin32):8位双向I/O口线,名称为P0.0~P0.7
P1口(Pin1~Pin8):8位准双向I/O口线,名称为P1.0~P1.7
P2口(Pin21~Pin28):8位准双向I/O口线,名称为P2.0~P2.7
P3口(Pin10~Pin17):8位准双向I/O口线,名称为P3.0~P3.7
单片机引脚分配示意:
P00-P07 —— 4位数码管的段码数据线,共阳数码管LCD数据并行总线
P10-P1 —— 数码管位控制(共阳)
P10-P13 —— LCD功能控制引脚
P14 —— 继电器 控制引脚
P15 —— 蜂鸣器 控制引脚
P15、P16、P17 —— ISP下载器接口
P20-P27 —— 8路LED发光二极管,共阳接法
P30 —— 串行通信 RXD 通过短接帽连接
P31 —— 串行通信 TXD通过短接帽连接
P32 —— 温感接口数据引脚
P33 —— 红外接口数据引脚
P32-P37 —— 6键独立键盘与中断按钮
图4.2 STC89C52单片机
4.3显示电路设计
液晶显示器以其微功耗、体积小、显示内容丰富、超薄轻巧的诸多优点,在各类仪表和低功耗系统中得到广泛的应用。根据显示内容可以分为字符型液晶,图形液晶。根据显示容量又可以分为单行16字,2行16字,两行20字等等。鉴于本过程只需显示实时距离,显示单元部分采用1602液晶显示屏。用于将超声波模块接收到的数据通过单片机中的程序运算将与障碍物的具体距离显示出来。
4.3.1 1602液晶屏的优点
1.位数多,可以显示32位,32个数码管而言体积很大。
2.显示内容丰富,可显示所有数字和大小写字母。
3.程序简单,如果用数码管动态显示,会占用很多时间来刷新,1602能自新。
4.3.2 1602管脚定义
字符型LCD1602通常有14条引脚线或16条引脚线的LCD,多出来的2条线是背光电源线VCC(15脚)和地线GND(16脚),其控制原理与14脚的LCD完全一样,但是编程用到的主要管脚不过三个,分别为:RS(数据命令选择端),R/W(读写选择端),E(使能信号)。以后编程便主要围绕这三个管脚展开进行初始化,写命令,写数据。以下具体阐述这三个管脚:
RS为寄存器选择,高电平选择数据寄存器,低电平选择指令寄存器。
R/W为读写选择,高电平进行读操作,低电平进行写操作。
E端为使能端,后面和时序联系在一起。
除此外,D0~D7分别为8位双向数据线。
详细来讲,
第1脚:VSS为地电源
第2脚:VDD接5V正电源
第3脚:V0为液晶显示器对比度调整端,接正电源时对比度最弱,接地电源对比度最高,对比度过高时会产生“鬼影”,使用时可以通过一个10K的电位器调整对比度(建议接地,弄不好有的模块会不显示)
第4脚:RS为寄存器选择,高电平时选择数据寄存器、低电平时选择指令寄存器。
第5脚:RW为读写信号线,高电平时进行读操作,低电平时进行写操作。
第6脚:E端为使能端,当E端由高电平跳变成低电平时,液晶模块执行命令。
第7~14脚:D0~D7为8位双向数据线。
第15~16脚:空脚(有的用来接背光)。
4.3.3 1602操作时序
RS
R/W
操作说明
0
0
写入指令码D0~D7
0
1
读取输出的D0~D7状态字
1
0
写入数据D0~D7
1
1
从D0~D7读取数据
注:关于E=H脉冲——开始时初始化E为0,然后置E为1,再清0。
读取状态字时,注意D7位,D7=1,禁止读写操作;D7=0,允许读写操作;
所以对控制器每次进行读写操作前,必须进行读写检测。
图4.3 1602电路引脚接线
第五章 超声波测距模块软件设计
超声波测距的软件设计主要是对硬件部分得到的数据进行处理和应用,大致包括主程序,超声波启动程序,超声波中断计时程序以及显示程序。编程时选择C语言编程,因为C语言是一种编译型程序设计语言,它兼顾了多种高级语言的特点,并具备汇编语言的功能。C语言有功能丰富的库函数、运算速度快、编译效率高、有良好的可移植性,而且可以直接实现对系统硬件的控制。
5.1超声波测距算法设计
控制口发一个10US以上的高电平,就可以在接收口等待高电平输出。一有输出就可以开定时器计时,当此口变为低电平时就可以读定时器的值,此为次测距的时间,方可算出距离。如此不断的周期测,就可以达到你移动测量的值。
公式为:
d=Ct/2
d表示被测物体与传感器的直线距离,单位是m 。t表示发射信号和接受间隔时间,C为声波在空气中的传播速度,单位是m/s,t为声波发射信号和回声的时间间隔,单位s。
5.2主程序流程
5.2.1系统初始化程序
void LCDInit(void)
{
LCD_Data = 0;
WriteCommandLCD(0x38,0); //三次模式设置,不检测忙信号
WriteCommandLCD(0x38,1); //显示模式设置,开始要求每次检测忙信号
WriteCommandLCD(0x08,1); //关闭显示
WriteCommandLCD(0x01,1); //显示清屏
WriteCommandLCD(0x06,1); //显示光标移动设置
WriteCommandLCD(0x0C,1);
}
5.2.2超声波启动程序
void StartModule() //启动模块
{
unsigned char nop;
TX=1; //启动一次模块
for(nop=0;nop<21;nop++)
{
_nop_();
}
TX=0;
}
TX端为1,给Trig引脚上10us的脉冲信号,程序执行空语句延时,完成超声波的发射。
5.2.3超声波计时程序
while(1)
{
StartModule();
while(!RX); //当RX为零时等待
TR0=1; //开启计数
while(RX); //当RX为1计数并等待
TR0=0; //关闭计数
Conut(); //计算
for (i=0;i<10;i++)
Delay5Ms(); //延时50MS
}
当RX=0是while语句空循环,即原地等待。TR0口为1时,计数器开始工作。
Count为计数函数。
5.2.4测距程序
void Conut(void)
{
time=TH0*256+TL0;//转为16进制
TH0=0;
TL0=0;
S=(time*1.7)/100;//值为cm
}
单片机初始化
设置T0工作方式
超声波发射
测试距离
显示距离
结束
开始
图5.1系统程序流程图
5.3实验结果
实验所用到的道具:STC89C52单片机,HC—SR04型号的超声波传感器,LCD1602显示器,障碍物,尺子。将单片机、传感器以及显示器连接好后,打开单片机电源开关,利用障碍物和尺子得到实验的显示距离和实际距离。
超声波测距数据:(单位/cm)
实际距离
2
4
6
8
10
12
14
16
18
20
测试距离
2
4
6
8
10
12
14
16
18
20
误差
0
0
0
0
0
0
0
0
0
0
实际距离
22
24
26
28
30
32
34
36
38
40
测试距离
22
24
26
28
29
31
33
35
37
39
误差
0
0
0
0
1
1
1
1
1
1
图5.3.1超声波测距图
图5.3.2实验实物图
第六章 实验用执行机构硬件设计
由于条件限制,我们将采用型号为ZK-4WD的小车底盘作为割草机器人的执行机构。ZK-4WD小车底盘的主要组成部分分别为:小车底盘、驱动模块、控制器(即STC89C52单片机)、小车所需的能源、超声波传感器、SG90舵机和红外遥控传感器等。通过实验,很好的向我们呈现了智能割草机器人自动避障的样子。
6.1执行机构底盘
小车底盘是机器人最重要的载体,相当于人体的躯干,ZK-4WD小车平台采用差速转弯非常灵活可以实现原地打转。小车平台大小刚好,可以承载一些如驱动器、控制器、电池、传感器等。
图6.1执行机构底盘
6.2执行机构驱动模块
6.2.1 L298N驱动模块说明
L298N 驱动模块,采用 ST 公司原装全新的 L298N 芯片,采用SMT工艺稳定性高,采用高质量铝电解电容,使电路稳定工作。可以直接驱动两路 3-16V 直流电机,并提供了 5V 输出接口(输入最低只要6V),可以给5V单片机电路系统供电 (低纹波系数),支持3.3V MCU ARM 控制,可以方便的控制直流电机速度和方向,也可以控制2 相步进电机,5 线4相步进电机。是智能小车必备利器。
6.2.2 L298N参数
1.驱动芯片:L298N双H 桥直流电机驱动芯片
2.驱动部分端子供电范围Vs:+5V~+12V ; 如需要板内取电,则
供电范围Vs:+6V~+12V
3.驱动部分峰值电流Io:2A
4.逻辑部分端子供电范围Vss:+5V~+7V(可板内取电+5V)
5.逻辑部分工作电流范围:0~36mA
6.控制信号输入电压范围(IN1 IN2 IN3 IN4):
低电平:-0.3V≤Vin≤1.5V
高电平:2.3V≤Vin≤Vss
7.使能信号输入电压范围(ENA ENB):
低电平:-0.3≤Vin≤1.5V(控制信号无效)
高电平:2.3V≤Vin≤Vss(控制信号有效)
8.最大功耗:20W(温度T=75℃时)
9.存储温度:-25℃~+130℃
10.驱动板尺寸:55mm*45mm*33mm(带固定铜柱和散热片高度)
11.其他扩展:控制方向指示灯、逻辑部分板内取电接口。
图6.2 L298驱动模块原理图
6.3 SG90舵机
6.3.1什么是舵机
在机器人机电控制系统中,舵机控制效果是性能的重要影响因素。舵机可以在微机电系统和航模中作为基本的输出执行机构,其简单的控制和输出使得单片机系统非常容易与之接口。
舵机是一种位置(角度)伺服的驱动器,适用于那些需要角度不断变化并可以保持的控制系统。目前在高档遥控玩具,如航模,包括飞机模型,潜艇模型;遥控机器人中已经使用得比较普遍。舵机是一种俗称,其实是一种伺服马达。
图6.3舵机实物图
6.3.2舵机工作原理
控制信号由接收机的通道进入信号调制芯片,获得直流偏置电压。它内部有一个基准电路,产生周期为20ms,宽度为1.5ms的基准信号,将获得的直流偏置电压与电位器的电压比较,获得电压差输出。最后,电压差的正负输出到电机驱动芯片决定电机的正反转。当电机转速一定时,通过级联减速齿轮带动电位器旋转,使得电压差为0,电机停止转动。当然我们可以不用去了解它的具体工作原理,知道它的控制原理就够了。就象我们使用晶体管一样,知道可以拿它来做开关管或放大管就行了,至于管内的电子具体怎么流动是可以完全不用去考虑的。
6.3.3利用单片机实现舵机转角控制
用单片机作为舵机的控制单元,使PWM信号的脉冲宽度实现微秒级的变化,从而提高舵机的转角精度。单片机完成控制算法,再将计算结果转化为PWM信号输出到舵机,由于单片机系统是一个数字系统,其控制信号的变化完全依靠硬件计数,所以受外界干扰较小,整个系统工作可靠。
单片机系统实现对舵机输出转角的控制,必须首先完成两个任务:首先是产生基本的PWM周期信号,本设计是产生20ms的周期信号;其次是脉宽的调整,即单片机模拟PWM信号的输出,并且调整占空比。
当系统中只需要实现一个舵机的控制,采用的控制方式是改变单片机的一个定时器中断的初值,将20ms分为两次中断执行,一次短定时中断和一次长定时中断。这样既节省了硬件电路,也减少了软件开销,控制系统工作效率和控制精度都很高。
当系统的主要工作任务就是控制多舵机的工作,并且使用的舵机工作周期均为20ms时,要求硬件产生的多路PWM波的周期也相同。使用51单片机的内部定时器产生脉冲计数,一般工作正脉冲宽度小于周期的1/8,这样可以在1个周期内分时启动各路PWM波的上升沿,再利用定时器中断T0确定各路PWM波的输出宽度,定时器中断T1控制20ms的基准时间。
第七章 执行机构软件设计
因为前面已经讲过了超声波测距的软件设计,所以这里要说的主要是舵机转动模块的软件设计。舵机转动模块的软件设计主要是对执行机构硬件部分得到的数据进行处理和应用,同样是用C语言编程。这里主要是控制舵机的左右转动以及小车前进、后退或停止的控制。
7.1执行机构行走程序
其中主要包括初始化程序、测距程序、方向函数等部分。主要是方向函数以及舵机旋转比较测距的函数。
#define Left_moto_go {P1_0=1,P1_1=0,P1_2=1,P1_3=0;} //左边两个电机向前走
#define Left_moto_back {P1_0=0,P1_1=1,P1_2=0,P1_3=1;} //左边两个电机向后转
#define Left_moto_Stop {P1_0=0,P1_1=0,P1_2=0,P1_3=0;} //左边两个电机停转
#define Right_moto_go {P1_4=1,P1_5=0,P1_6=1,P1_7=0;} //右边两个电机向前走
#define Right_moto_back {P1_4=0,P1_5=1,P1_6=0,P1_7=1;} //右边两个电机向前走
#define Right_moto_Stop {P1_4=0,P1_5=0,P1_6=0,P1_7=0;} //右边两个电机停转
执行机构是靠差速转向的,所以执行机构的左右转向个有两种情况,即:1、左转,执行机构左边轮子停止,右边轮子向前转动;2、左转,执行机构左边轮子向后转动,右边轮子向前转动,可以实现原地打转。而右转则和左转相反。所以要实现执行机构左右转动需要再添加子函数如下。
//左转
void leftrun(void)
{
Left_moto_back ; //左电机往前走
Right_moto_go ; //右电机往前走
}
/******************************************************************/
//右转
void rightrun(void)
{
Left_moto_go ; //左电机往前走
Right_moto_back ; //右电机往前走
}
7.2舵机转动控制执行机构行走程序
在超声波传感器测距时,舵机则起到了控制方向的作用。舵机控制着超声波传感器左右转动,分别测出左边、右边以及前方障碍物的距离,从而判断出是左转、右转还是后退。
void COMM( void )
{
push_val_left=5; //舵机向左转90度
timer=0;
while(timer<=4000); //延时400MS让舵机转到其位置
StartModule(); //启动超声波测距
Conut(); //计算距离
S2=S;
push_val_left=23; //舵机向右转90度
timer=0;
while(timer<=4000); //延时400MS让舵机转到其位置
StartModule(); //启动超声波测距
Conut(); //计算距离
S4=S;
push_val_left=14; //舵机归中
timer=0;
while(timer<=4000); //延时400MS让舵机转到其位置
StartModule(); //启动超声波测距
Conut(); //计算距离
S1=S;
if((S2<20)||(S4<20)) //只要左右各有距离小于20CM小车后退
{
backrun(); //后退
timer=0;
while(timer<=4000);
}
if(S2>S4)
{
rightrun(); //车的左边比车的右边距离小 右转
timer=0;
while(timer<=4000);
}
else
{
leftrun(); //车的左边比车的右边距离大 左转
timer=0;
while(timer<=4000);
}
}
结 论
本文分析了割草机器人自动避障的实际需求,结合现有自动割草机器人产品发展现状,提出了结构简单、成本经济的自动割草机器人避障方案。根据自动割草机器人工作环境特点,选择了合适的传感器件,设计了自动割草机器人控制系统。本文主要结论如下:
(1) 采用了超声波传感器,简单有效的完成了测距实验。
(2)利用了舵机的优点,使超声波传感器能够左右转动,完成避障任务。
(3) 采取以单片机开发板为核心,用模块化的思想设计了自动割草机器人的控制器,为户外移动机器人的研究提供了一种通用的低成本控制方案。
(4)采用了LCD1602显示器,很清楚的得到了测距数据。
致 谢
历时将近三个月的时间终于将毕业设计完成了,在毕业设计的完成过程中遇到了无数的困难和障碍,都在同学和老师的帮助下度过了。在这里要强烈感谢我的指导老师—高龙琴老师,高老师对我进行了无私的指导和帮助,不厌其烦的帮助进行毕业设计的修改和改进,并且让我学到了很多专业方面的知识。另外,在校图书馆查找资料的时候,图书馆的老师也给我提供了很多方面的支持与帮助。在此向帮助和指导过我的各位老师表示最衷心的感谢!
感谢这篇论文所涉及到的各位学者。本文引用了数位学者的研究文献,如果没有各位学者的研究成果的帮助和启发,我将很难完成这次毕业设计。感谢我的同学和朋友,在我完成毕业设计的过程中给予我了很多帮助。如果没有大家的帮忙,我肯定无法顺利完成毕业设计,在此,再次向各位表示衷心的感谢。
参考文献
[1] 赵广涛,程萌杭.基于超声波传感器的测距系统设计[J].微计算机信息,
2006,(1):129-131
[2] 郭丽颖.基于单片机的超声波测距电路的设计[J].自动化系统与应
用,2010,(6):100-102
[3] 王红云,姚志敏,王竹林,史连艳.超声波测距系统设计[J].仪表技术.2010,(11):47-49
[4] 华成英.《模拟电子技术基础》[M].北京:高等教育出版社,2006
[5] 郑郁正.《单片机原理及应用》[M].成都:四川大学出版社,2008
[6] 谭浩强.《C程序设计》[M].北京:清华大学出版社,2005
[7] 张立富, 陆怀民. 国内外园林绿化机械的现状及其发展前景[J].林业机械与木工设备.2009(07).
[8] Kulkami A, EhsaniM. A Novel Position Sensor Elimination Technique for the Interior PermanentMagnet SynchronousMotor Drive [J].IEEE Trans. Industry App lication, 1992, 28(1): 144-150.
[9] Hongjiang He Jianyi Liu.The Design of Ultrasonic Distance Measurement System Based on S3C2410 [C] .2008 International Conferences on Intelligent Computation Technology and Automation.
[10] M.Parrilia,J:J. Anaya, C. Fritsch. Digital signal processing techniques for high accuracy Ultrasonic range measurements[J], IEEE Trans on Instrumentation and Measurement, Aug.2002:750-760
[11] W Kappes, B Rockstroh, F Walte. Ultrasonic Testing Station for Wheel-Sets of Passenger Trains of the Deutshe Bahn AG.Insight.2001,43(11):751 -753
[12] ITE Battery News, 1999, (2):41.
[13] 王乃康,茅也冰,赵平.现代园林机械[M]. 北京:中国林业出版社,2006.
[14] 卢威.智能小车避障系统的设计与实现.南昌大学硕士论文,2012-06-09
[15] 杨银辉.基于超声波传感器的割台高度自动控制系统研究.西北农林科技
大学硕士论文,2007-05-01.
[16] 王应军等.基于AT80C51单片机的智能小车设计.福建电脑,2009.
附件1:
超声波避障舵机转动编程
#include
#include
#d