专业综合实验实验报告项目:自动循迹机器人的设计制作班级:电135班姓名:学号:学期:2016-2017-1一、实验过程记录调试步骤及方法1.1实验过程记录本人在这次实验中负责程序设计及调试工作,本次实验过程主要包括自动循迹机器人数字模型的建立与仿真设计、电路板的焊接、机器人安装与调试四个过程。1.1.1自动循迹机器人数字模型的建立本次实验的原理主要是通过对机器人的内、外侧电机的控制来实现对机器人速度和行进方向的控制,即通过主控制器对电机的控制来实现本次实验的目的。为了更好进行硬件设计,我们先建立系统的数学模型,来模拟机器人运动过程中会出现的情况以及定量分析所得到的结果。本次实验建模我们采用混合法。实验硬件电路设计中,我们采用的四轮结构,驱动系统采用两轮差速驱动方式,后两个轮主要配合实现速度,前轮主要实现方向的确定,假设两侧车轮的运动方向相同,因而建模中不分前轮后轮,只区分内侧车轮和外侧车轮。假定左右两个驱动轮与地面之间没有滑动,也没有侧移,只是做纯粹的滚动,则机器人满足钢体运动规律。仿真软件为MATLAB,实验中建立的数学模型如图1所示,采用一般PID器进行模拟机器人自动循迹的矫正,其中PID参数为:P=200,I=10,D=50,输出口2、5输出机器人内、外轮的理论转速变化曲线,输出口3、6输出应该给电机的PWM波变化波形,输出口4、7输出机器人内、外轮的实际转速的变化曲线,输出口1输出机器人的偏角的变化波形。图1机器人的数学模型1.1.2仿真设计机器人的数据如下图2所示,机器人的车身宽度为0.15,长度0.22,初始速度为1.3m/s。利用MATLAB软件绘制仿真图,利用写字板将全部程序转换成.HEX文件,载入后就可以进行仿真,使得最终偏角变为0,同时其他六个输出口都会输出相应的波形,由仿真结果可知,当传感器电路检测到当前的位置,将数据传送到单片机,单片机将通过定时器中断函数给两侧驱动电机输出符合实验要求的PWM波,来控制内、外侧车轮的速度,实现电机的转向控制。实验过程中各功能仿真模块均能正常工作,说明此模型符合实验的要求。图2机器人仿真数据仿真结果是否正确的判定是偏转角最终是否变为0,仿真过程中将仿真数据转换为.HEX文件,载入单片机,同时自己给定一个偏转角,进行仿真,仿真过后来看偏转角的变化情况以及内、外侧车轮的速度变化曲线。图3给定值为15度时偏转角的变化曲线00.10.20.30.40.50.60.70.80.9100.050.10.150.20.250.30.35时间(秒)角度输出值由于单片机通过定时器中断函数输出符合要求的PWM波,来控制内、外侧车轮驱动电机的转速,从而来确定内、外侧车轮的速度,使得角度逐渐减小,直至减小为零,此时内、外车轮速度将相等,即都为机器人的初始速度。图5外侧车轮实际速度变化曲线图6内侧车轮实际速度变化曲线如图3所示,为当给定值为15度时偏转角的变化曲线,图5和图6分别为外侧和内侧车轮的实际速度变化曲线。由图中可以看出,由反馈的α得到的两侧车轮的实际速度一个为1.6左右,一个为1.05左右,随着机器人运动,反馈得到的角度也会变化,偏转角最终变为0,但内、外车轮左后的稳定速度都低于初始速度,由此可见,实际和理论还存在一定的误差。图7给定角为30度时偏转角变化曲线如图7所示,为当给定值为30度时偏转角的变化曲线,图8和图9分别为外侧和内侧车轮的实际速度变化曲线。由反馈的α得到的两侧车轮的实际速度一个为1.8左右,一个为0.8左右,随着机器人运动,反馈得到的角度也会变化,从而得到的实际速度也会发生变化,直到两侧车轮的速度相等,但内、外车轮左后的稳定速度都低于初始速度,由此可见,实际和00.10.20.30.40.50.60.70.80.911.251.31.351.41.451.51.551.6时间(秒)机器人车轮实际速度输出值00.10.20.30.40.50.60.70.80.911.051.11.151.21.251.3时间(秒)机器人车轮实际速度输出值00.10.20.30.40.50.60.70.80.9100.10.20.30.40.50.60.7时间(秒)角度输出值理论还存在一定的误差。图8外侧车轮的实际速度变化曲线图9内侧车轮的实际速度变化曲线1.1.3电路板的焊接按照实验的初期设计电路来进行电路的焊接,主要是驱动电路板、显示板和传感器检测电路的焊接,焊接过程应该先焊接体积小的器件。如图10和图11分别为焊接好的显示板和驱动板。显示板上主要是数码管显示电路、下载电路、按键电路、电源切换电路、传感器输入接口电路以及主控制器电路。图10机器人的显示板驱动板主要是由电机驱动电路、供电电源稳压电路、电源接口和控制信号接口电路以及电源开关电路组成。00.10.20.30.40.50.60.70.80.911.31.41.51.61.71.81.9时间(秒)机器人车轮实际速度输出值00.10.20.30.40.50.60.70.80.910.70.80.911.11.21.31.4时间(秒)机器人车轮实际速度输出值图11机器人的驱动板1.1.4机器人的组装和调试按照前期所设计的系统硬件电路原理图,我们将机器人的驱动板、显示板、传感器检测电路板、驱动电机和车轮进行组装。首先将车轮和电机用螺丝固定在驱动板的对应位置,并将导线焊接连接好,再将传感器检测电路板用螺丝固定,安装在驱动板的前端,高度要靠近地面,便于检测。驱动板的器件安装好后则将显示板固定在驱动板上方,留有一定高度,固定好后,将对应的接口电路用杜邦线连接好的,至此机器人的组装完成。组装好的机器人如下图所示。安装过程中最需要注意的是螺丝的情况,没有安装好将会影响机器人的使用、调试;如传感器的固定,可能在行进过程由于振动螺丝会松开,从而影响测量精度;显示板的行进过程中由于螺丝松散而出现晃动而可能影响杜邦线的连接,从而影响整个系统。图12机器人安装效果图组装好后,使用万用表进行机器人系统是否存在短路情况,如果存在短路情况则应该进行检查,不能进行程序的导入;检查无短路后方可进行程序导入。调试前应该先检查所用电源的电压大小,即锂电池的电压大小不应小于7.4V,确保机器人在运行过程中供电电压符合要求。自动循迹机器人的循迹功能实现首先是传感器检测电路的正常工作,因而我们先进行灰度检测,确定一个合适的灰度后进行调试。开启机器人开关,将其放在实验跑道上进行实地实验调试。我们观察机器人在直行道是否直走,拐弯时是否正常,速度是否达到要求,并根据观察结果在程序里改进参数,直至机器人行进达到要求。1.2调试步骤及方法由于本次实验我们需要进行程序编写,因而需要进行软硬件联调,即将程序编译和导入软件和机器人的硬件电路进行联合调试。本次实验中主要用到的软件有keil软件和STC-ISP,在keil中将程序编译好后,在STC-ISP中选中相对应的单片机,打开.HEX文件并烧入单片机,即可进行机器人的调试,并根据机器人的运动情况对程序中的相应的参数进行修改已达到实验要求。1.2.1keil软件单独调试(1)打开keil,建立新工程,进行个各模块的程序编写。(2)进行程序的编译,编译无错误后将生成.HEX文件。如下图所示。图13实验程序编译结果1.2.2软硬件联调(1)将测量灰度的程序段注释去掉,同时将机器人速度确定的程序段注释掉,程序编译无错误后,将机器人通过程序下载接口与电脑相连,在STC-ISP中打开程序,将程序烧录单片机,然后进行灰度检测,打开对应串口,将接收的数据用文本显示出来,同时记录灰度检测值,记入下表1,烧录程序界面如图10所示,灰度检测接收数据界面如图11所示。图10程序烧录单片机界面将传感器分别放在黑色区域和白色区域,打开串口,进行数据接收,接收界面如下图所示。图11接收数据界面测量到的灰度值如下表所示。表1测量的各传感器的灰度值传感器灰度值黑线白线选定判断值123462100241823032186210上述表格中,一共记录了五个灰度传感器分别对于黑色和白色的灰度值,其中传感器0-4代表的是传感器芯片接入单片机时所用的ADC转换口的序号,在测定灰度传感器的灰度值时,传感器对于黑色和白色的灰度值一定要相差大,如果对于黑色和白色的灰度值基本不变,则该灰度传感器可能已经坏了而不能使用。选取程序中所用到的判定值时,应该尽可能的偏离传感器对于白色的灰度值而靠近传感器对于黑色的灰度值,如上表所示,因为我们指定路径为黑色,判定时用到的灰度值即为黑色。(2)灰度值测好后,将灰度检测模块程序注释掉,同时将电机速度确定模块的程序的注释去掉,重新进行程序的编译,再烧录进单片机,打开机器人电源开关、驱动开关,进行硬件检测,并根据观察到的现象进行程序的修改,直至机器人实现正确循迹。1.2.3参数调试要实现对机器人运动的正确控制,主要是靠驱动电机转速来决定,即内、外轮的速度,因而在程序中,主要改变电机驱动程序里的速度参数。首先给程序一个初始参数作为直行时速度,再给左转弯和右转弯一个初始参数作为初始速度,然后开始进行调试。首先确认机器人其他部件无问题之后,将电源安装到机器人的驱动板上,先打开驱动开关,将机器人放到指定轨道上,打开电源开关,机器人开始向前行进,当机器人过弯道时,观察机器人是否可以通过。机器人直行后通过第一个弯道时,机器人向外行进,说明内轮速度过大以致于内、外轮速度差过小,弯度过小,从而机器人不能通过弯道,而机器人通过半圆形弯道时,机器人总是跑不过弯道而偏离轨道,内、外轮的差值调整过后仍旧不能通过,考虑到可能是外侧车轮速度过小,因而我们增大外侧车轮速度来增大内、外轮速度差值,使得弯角更大,速度更快,从而通过半圆形弯道,而此时改过的参数可以通过大的弯道,小的弯道也容易过,待机器人顺利走完指定轨道一圈后,我们将机器人反向行进,此时检测到另一个方向的转弯时参数的测定,跟前面测定参数一样,当机器人跑过弯道时,注意观察小车的走向从而来改变内、外轮的大小和差值,或者直接将前面测得的参数互换位置放入,再进行机器人的行进,再根据观察到的现象进行修改,从而得到正确的程序。测定完左转和右转的参数以后,考虑到实验要求机器人的速度要达到1m/s以上,我们将之前所有测定的数据都增大,并保证机器人通过弯道时不出现差错,再测定机器人走完一圈所需的时间,测量出指定跑道的长度,再用跑道的长度除以时间得到速度,来判定参数是否符合要求,当参数不符合要求时,则重新修改再测定,反复测试修改后,得到符合要求的程序参数。以下为测试的最终参数。表2机器人驱动程序参数类别参数直线行驶(50,50)向左转弯(25,75)向右转弯(75,25)如上表所示,直行时输入电机的脉冲数为50,,两边速度一样,向左转弯时内轮驱动电机接收脉冲数为25,外轮为75;向右转弯时内轮驱动电机接收脉冲数为75,外轮为25。二、实验结果处理与分析2.1实验系统原理图根据实验的要求,机器人系统采用单片机作为主控制器对电机进行控制,通过灰度传感器对路线进行检测,再将数据传输进单片机,由单片机进行相关处理,从而实现机器人的循迹。自动循迹机器人的系统主要包括主控系统、输入、输出串口通信模块、电机驱动模块、传感器检测模块、数码管显示模块、稳压模块、按键模块。如下图所示为系统原理图。图12系统原理图2.2实验程序1234P14Header4VCCGNDADCINT1481-2+3U1Alm393GNDGNDGNDVCCVCCVCC1KR10200KR94.7KR1310KR1420KR11330R1210KR15RPot1234KAECU2ST178D5VCCINT1ADC0.01uFC1Cap0.01uFC2CapQ11Q22Q33Q44Q55Q66Q77VSS8Q7_9SRCLR10SRCLK11RCLK12E13SER14Q015vdd16U374HC595Q11Q22Q33Q44Q55Q66Q77VSS8Q7_9SRCLR10SRCLK11RCLK12E13SER14Q015vdd16U574HC595VCCHC595-SRCLK