 
         
         
         
         
        版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、 机器人创新新实验(33)实验指导书书机器人实验验室实验一 熟熟悉机器器人与CC51单单片机硬硬件软件件一、实验目目的1、掌握宝宝贝车机机器人用用C511教学板板与计算算机硬件件连接和和宝贝车车基本结结构;2、熟悉及及掌握CC51系系列单片片机Keeil uViisioon IIDE(集集成开发发环境)软软件、IISP下下载软件件及串口口调试终终端的使使用方法法。二、实验设设备及软软件宝贝车机器器人套件件、ISSP下载载线、串串行接口口线、计计算机、电电源。Keil uViisioon2 IDEE集成开开发环境境、PRROGIISP11.722下载软软件、串串口调试试软件。三、实验内内容和步步
2、骤单片机控制制的宝贝贝车机器器人是通通过串并并口或UUSB接接口通信信交互,由由硬件系系统与软软件系统统相互结结合组成成的一个个完整的的智能控控制系统统。单片片机必须须与外围围设备及及软件组组成一个个完整的的应用系系统(如如图1.1)。1、熟悉宝宝贝车机机器人的的结构组组成(如如图1.2):小车底底板、车车轮、教教学板、伺伺服电机机、电池池盒。这这是宝贝贝车机器器人的硬硬件系统统,它的的微控制制器(MMCU)是是由Attmell公司生生产与551系列列兼容的的8位AAT899S522单片机机。 图1.1单单片机应应用系统统图 图图1.22采用CC51单单片机的的机器人人2、教学板板指方便便单片
3、机机与电源源、ISSP下载载线、串串口线以以及各种种传感器器和电机机的连接接制作的的一个电电路板(如如图1.3)。将将宝贝车车机器人人与计算算机硬件件连接,并并连接到到电源。连接单片机机教学板板ISPP接口到到计算机机,以便便程序下下载;连接单片机机教学板板串行接接口到计计算机,以以便调试试和交互互;连接机器人人到电池池或者是是供电电电源。USBassp CC版通用用编程器器图1.3 C551单片片机教学学板3、运用CC语言编编程,运运用编译译器编译译生成可可执行文文件并下下载到单单片机,用用串口调调试软件件查看单单片机输输出信息息。建立用户户文件夹夹,方便便管理程程序,拷拷入编译译所需头头文
4、件(例例如,将将光盘“头文件件”文件夹夹中的文文件拷贝贝到C:Prrogrram FillesKeiilCC51INCC文件夹夹里)。进入编程程系统(KKeill uVVisiion22 IDDE):新建项目工工程(*.uvv2):ProojecctNeww Prrojeect,命命名,保保存在新新建立的的用户文文件夹内内;选择择单片机机生产公公司及类类型:AAtmeel、AAT899S522。新建C程序序文件:FilleNeww;编辑辑好程序序,保存存为*.c的文文件。注注意程序序关键字字的拼写写、英文文标点、字字母的大大小写等等。添加C程序序到项目目工程:Souurcee Grroupp
5、1右右键单击击Addd Fiiless too Grroupp Soourcce。SSourrce Grooup 1前面面出现+号,单单击它出出现刚才才添加的的C程序序文件名名,单击击此C文文件,KKeill会自动动识别关关键字,并并以不同同的颜色色提示用用户加以以注意,这这样会使使用户少少犯错误误,有利利于提高高编程效效率。生成执行文文件十六六进制目目标代码码文件(*.hhex):Taargeet 11 右键键单击Opttionn foor ttarggetTarrgett 1Ouutpuut选中“Creeatee Heex FFi:”连接编编译生成成可执行行文件*.heex。编编译要求求没
6、有错错误产生生,允许许出现警警告。进入下载载系统(PPROGGISPP1.772):参数选择:勾选芯芯片擦除除、编程程FLAASH、校校验FLLASHH。单片片机型号号:ATT89SS52。2)单击“调入 Flaash”按钮,找找到要下下载的 HEXX 文件件。单击“编程程”区的“擦除”按钮,开开始擦除除芯片内内部程序序。芯片片擦除成成功后,点点击“自动”按键,完完成写、校校验Fllashh。等待待下载完完毕后,固固件下载载完成。拔拔掉USSBASSP下载载器ISSP 接接口排线线。注意:要将将ISPP下载线线连接计计算机和和机器人人教学板板,电源源接好,开开关拨到到“1”档位置置(PRRO)
7、,给给教学板板通电,才才能进行行单片机机程序下下载。从执行文文件下载载到单片片机的那那个时刻刻开始,程程序就开开始运行行。单片片机向计计算机发发送信息息。可利利用串口口调试软软件查看看单片机机输出信信息,“Resset”按钮可可让下载载到单片片机内的的程序重重新运行行一次。使用串口调调试助手手之前,首首先使用用串口线线将单片片机的串串口与计计算机的的USBB口相连连,然后后通过计计算机的的设备管管理器查查看要使使用的串串口号,如如图所示示。记下该串口口号,打打开串口口调试助助手软件件,选择择正确的的串口号号,如图图所示。4、做完实实验断开开电源,将将开关拨拨到“0”档(OOFF),系系统在不不
8、使用时时没有消消耗电能能,电池池可以用用得更久久。拆卸卸串口线线还原。四、实验程程序1、程序HHellloRooBott.c。#inclludeeint mmainn(vooid)uart_Iniit(); /串口口初始化化printtf(Helllo,thiis iis aa meessaage froom yyourr Roobottn);whilee(1);利用whiile循循环与ddelaay_nnms( )函函数(毫毫秒级的的延时)编编程:每每秒发送送一个信信息(内内容为英英文自己己定),通通过串口口显示在在计算机机上。ddelaay_nnms( )函函数在BBoeBBot.h头文文
9、件中有有定义。即即#inncluude,编译译时系统统将根据据头文件件自动将将延时函函数插入入到程序序中。让竖线“|”在屏幕幕上顺时时针或逆逆时针转转动输出出。 参参考下面面的程序序代码: priintff(|); dellay_nmss(5000); priintff(/); dellay_nmss(5000); priintff(-); dellay_nmss(5000); priintff(); dellay_nmss(5000); priintff(|); dellay_nmss(5000);4、显示静静态图形形:* * * * * * * * * *五、实验报报告要求求1、按要求求:
10、每秒秒发送一一个信息息(内容容为英文文自己定定),通通过串口口显示在在计算机机上,进进行程序序设计。2、程序调调试心得得。3、观察到到的程序序运行效效果并加加以分析析。六、思考题题1、什么是是单片机机?2、MCSS51、880511、C551、AAT899S522之间是是什么关关系?3、宝贝车车机器人人采用的的AT889S552单片片机的特特点是什什么?4、#inncluude头文文件的作作用是什什么? 5、程序HHellloRooBott.c中中whiile(1);的作用用是什么么?注:实验操操作现场场检查。实验二 CC51接接口与伺伺服电机机控制一、实验目目的1、理解和和掌握CC51单单片
11、机的的输入输出接接口的特特性; 2、理解机机器人伺伺服电机机PWMM调速原原理,CC语言编编程输出出脉冲序序列控制制机器人人轮子运运动。二、实验设设备及软软件宝贝车机器器人、IISP下下载线、串串行接口口线、计计算机、电电源、螺螺丝刀、红红色发光光二极管管2个和和4700电阻22个。Keil uViisioon2 IDEE集成开开发环境境、PRROGIISP11.722下载软软件、串串口调试试软件。三、实验内内容和步步骤1、用C551单片片机的PP1口的的位输出出高低电电平控制制LEDD发光二二极管的的闪烁。看看教材附附录C关关于面包包板及LLED的的介绍。面面包板上上共有118行插插座,通通
12、过中间间槽分为为两列。每每一行由由5个插插座组成成,这55个插座座在面包包板上是是电气相相连的,如如将两根根导线分分别插入入五口插插座行的的任意两两个插座座中,它它们都是是电气相相连的。“GND”对应于教学板的接地端,“Vcc”指校准的+5V电压。发光二极管(如图2.1)是单向导电的电子管,长脚为正极,短脚为负极,必须连接正确,否则不能正常工作。通过5mA左右即可发光,电流越大,其亮度越强,但若电流过大,会烧毁二极管。给发光二极管串联一个电阻的目的是限制通过发光二极管的电流不要太大。 图2.1 LEED零件件图 图2.2发光光二极管管与I/O脚PP1_00的连接接色环电阻为为五色,用用五条色色
13、环表示示电阻的的阻值大大小。黑黑0 棕棕1 红红2 橙橙3 黄黄4 绿绿5 蓝蓝6 紫紫7 灰灰8 白白9 金金、银表表示误差差具体如下:第一条色环环:阻值值的第一一位数字字;第二条色环环:阻值值的第二二位数字字;第三条色环环:阻值值的第三三位数字字;第四条色环环:阻值值乘数的的10的的幂数;第五条色环环:误差差(常见见是棕色色,误差差为1%)。由此,4770电阻为为黄紫黑黑黑棕。搭建一个发发光二极极管闪烁烁的LEED电路路(如图图2.22)并编编写程序序HigghLoowLeed.cc。注意意,在教教学底板板上搭建建电路时时要断开开电源。修修改程序序让两个个LEDD同时闪闪烁,并并修改程程序
14、让两两个LEED交替替亮或者者灭,也也可以改改变延时时函数参参数n的的值,改改变LEED闪烁烁频率。HighLLowLLed.c程序序如下:#inclludee#inclludeeint mmainn(vooid)uart_Iniit(); /初始始化串口口printtf(Thee LEED cconnnectted to P1_0 iis bblinnkinng!n);whilee(1)P1_0=1; / P1_0 输输出高电电平delayy_nmms(5500); /延时时5000msP1_0=0; / P1_0 输输出低电电平delayy_nmms(5500); /延时时5000ms【拓
15、展训练练】实现现4个或或更多LLED流流水灯控控制,对对应流水水灯从全全灭到一一个一个个亮或者者对应流流水灯从从全亮到到一个一一个灭。编编程方法法与两个个LEDD闪烁类类似,接接入的LLED二二极管继继续接在在面包板板左侧其其他的端端口位上上。注意意,程序序控制各各引脚输输出高低低电平要要与所接接的端口口要一一一对应起起来。2、两伺服服电机调调零。在在操作之之前,先先确认一一下机器器人两个个伺服电电机的电电源控制制线(如如图2.3)是是否已经经正确的的连接到到C511单片机机教学板板的两个个专用电电机控制制接口上上。P11_1引引脚控制制左边电电机,PP1_00引脚控控制右边边电机,在在电路板
16、板上我们们分别采采用W、RR、B来来表示信信号线、电电源线和和地,电电机控制制线颜色色与教学学板接口口对应字字母一致致(白红红黑对应应WRBB)。图2.3伺伺服电机机实物图图 图2.4 电电压“占空比比”与平均均电压关关系电机调速应应用PWWM(脉脉宽调制制)基本本原理,通通过控制制固定电电压的直直流电源源开关频频率改变变负载两两端的电电压。在在PWMM驱动控控制的调调整系统统中,按按一个固固定的频频率来接接通和断断开电源源,并根根据需要要改变一一个周期期内“接通”和“断开”时间的的长短。通通过改变变直流电电机电枢枢上电压压的“占空比比”来改变变平均电电压的大大小,从从而控制制电动机机的转速速
17、。如图2.44,在脉脉冲作用用下,当当电机通通电时,速速度增加加;电机机断电时时,速度度逐渐减减少。只只要按一一定规律律,改变变通、断断电的时时间,即即可让电电机转速速得到控控制。高高电平持持续的时时间控制制电机转转速,即即脉冲宽宽度控制制连续旋旋转电机机速度和和方向。将将时间间间隔为220mss,脉宽宽为1.5mss的一系系列脉冲冲称为零零点标定定信号,电电机转速速为零,机机器人轮轮子静止止不动。如如果电机机没有进进行零点点标定,机机器人轮轮子会转转动,如如图2.5所示示,用螺螺丝刀轻轻轻调节节马达上上的电位位器,直直到马达达停止转转动。如电机已经经完成了了零点调调节,不不会转动动。但是是损
18、坏了了或有缺缺陷的电电机有时时也不转转动。继继续检测测:当高电平持持续时间间为1.3mss时,电电机顺时时针全速速旋转;当高电平持持续时间间为1.7mss时,电电机逆时时针全速速旋转;当高电平持持续时间间为1.3mss1.5mss之间时时,电机机顺时针针旋转;当高电平持持续时间间为1.5mss1.7mss之间时时,电机机逆时针针旋转。 图2.5.1经过过孔把螺螺丝刀插插入电位位器 图图2.55.2轻轻轻地旋旋转螺丝丝刀调节节电位器器3、测试电电机,改改变脉冲冲宽度控控制机器器人运动动速度和和方向。如如图2.6,定定义机器器人的前前、后、左左、右四四个方向向。例程程中使用用priintff函数是
19、是为了起起提示作作用,若若觉得串串口线影影响机器器人的运运动,可可以不用用此函数数。将程程序下载载到单片片机,关关闭机器器人电源源开关,断断开ISSP下载载线,将将开关拨拨到“2”档(RRUN),观观察宝贝贝车运动动情况。图2.6 机器人人及其前前进方向向的定义义四、实验程程序1、参考一一个LEED闪烁烁的程序序(程序序HigghLoowLeed.cc),编编写程序序让两个个LEDD同时闪闪烁,并并修改程程序让两两个LEED交替替闪烁,也也可以改改变延时时函数参参数n的的值,改改变LEED闪烁烁频率。*编程实现现4个或或更多LLED流流水灯控控制,对对应流水水灯从全全灭到一一个一个个亮或者者对
20、应流流水灯从从全亮到到一个一一个灭。编程实现两两伺服电电机调零零,可以以分别调调零,也也可一起起调零。实实现右轮轮调零参参考代码码如下,注注意编程程的完整整性。whilee(1)P1_0=1; /PP1_00 输出出高电平平delayy_nuus(115000); /延延时1.5mssP1_0=0; /PP1_00 输出出低电平平delayy_nuus(2200000); /延时220mss验证下列程程序BoothSServvosTThreeeSeeconnds.c是否否让宝贝贝车向前前进3ss,后退退3s。并并根据此此程序按按照实验验报告要要求编程程。#inclludee#inclludee
21、int mmainn(vooid)int ccounnterr;uart_Iniit();printtf(Proograam RRunnningg!nn);for(ccounnterr=1;couunteer=1300;coountter+)P1_1=1;delayy_nuus(117000);P1_1=0;P1_0=1;delayy_nuus(113000);P1_0=0;delayy_nmms(220);for(ccounnterr=1;couunteer=1300;coountter+)P1_1=1;delayy_nuus(113000);P1_1=0;P1_0=1;delayy_nuu
22、s(117000);P1_0=0;delayy_nmms(220);whilee(1);用LED 指示电电机运动动状态 在在实际应应用中,LED 往往起到状态提示作用,交通红绿灯就是一个典型的应用。你可以修改程序来模拟交通灯过程:假设A 灯为交通灯,B 灯为电机运行状态指示灯。模拟过程如下:A 灯闪烁烁,B 灯灭,电电机停止止运行;A 灯灭,BB 灯亮亮,电机机开始运运行;B 灯闪烁烁,电机机减速运运行;B 灯灭,AA 灯闪闪烁,电电机停止止运行;如此往往复。五、实验报报告要求求1、实现两两个LEED交替替闪烁的的编程及及电路原原理图,观察到的运行效果并加以分析,程序调试心得。有兴趣的同同学还
23、可可以完成成4个或或更多LLED流流水灯控控制,对对应流水水灯从全全灭到一一个一个个亮或者者对应流流水灯从从全亮到到一个一一个灭。要要求编程程及绘制制电路原原理图,观察到的运行效果并加以分析,程序调试心得。2、编程实实现两伺服电电机调零零,可以以分别调调零,也也可一起起调零,观察到的运行效果并加以分析,程序调试心得。3、控制两两个电机机的deelayy_nuus函数数的参数数n有不不同的组组合,各各种组合合的运动动状况填填写下表表。P1_1P1_0描述运动状况17001300全速,P11_1电电机逆时时针,PP1_00电机顺顺时针13001700170017001300130015001700
24、15001300130015001700150015001500两个电机都都静止六、思考题题1、LEDD闪烁的的工作原原理,即即引脚输输出高低低电平信信号,发发光二极极管会灭灭或者亮亮的原因因是什么么?2、LEDD闪烁的的实验中中,逐渐渐减小延延时函数数参数nn的值,还还能看到到LEDD闪烁吗吗?为什什么?3、LEDD闪烁的的实验中中,分别别将开关关拨到“1”(PRRO)与与“2”(RUUN),看看实验现现象有什什么区别别?分析析原因。4、将电机机调零的的程序下下载到单单片机,开开关拨到到 “2”,按“Resset”按钮,轮轮子仍转转动,不不能完全全停下来来,试分分析有哪哪些原因因造成的的?
25、55、编程程给与PP1_11连接的的左轮发发出脉宽宽为1.7mss,与PP1_00连接的的右轮发发出脉宽宽1.33ms,观观察到宝宝贝车后后退,分分析是什什么原因因引起的的?注:实验操操作现场场检查。实验三 CC语言函函数与机机器人巡巡航控制制一、实验目目的1、掌握对对单片机机编程使使机器人人做基本本的巡航航动作:向前、向向后、左左转、右右转和原原地旋转转。通过过测试机机器人脉脉冲数与与机器人人运动距距离的关关系,实实现机器器人的精精确动作作。 2、掌握编编写程序序时机器器人由突突然启动动或停止止变为逐逐步加速速或减速速运动。3、写一些些执行基基本巡航航动作的的函数,每每一个函函数都能能够被多
26、多次调用用。4、将复杂杂巡航运运动记录录在数组组中,编编写程序序执行这这些巡航航运动。二、实验设设备及软软件宝贝车机器器人、IISP下下载线、串串行接口口线、计计算机、电电源。Keil uViisioon2 IDEE集成开开发环境境、PRROGIISP11.722下载软软件、串串口调试试软件。三、实验内内容和步步骤1、验证程程序FoorwaardLLefttRigghtBBackkwarrd.cc,看机机器人是是否向前前、左转转、右转转及向后后走。如果宝贝车车向前运运动的过过程轻微微向左或或右偏移移,不是是一条直直线。结结果就是是左轮与与右轮程程序上是是以全速速行驶,实实际输出出有速度度差,要
27、要么左轮轮速度太太慢,要要么右轮轮速度太太慢。让让轮子加加速不太太实际,但但是减小小轮子的的速度就就可以解解决问题题。电机机速度是是脉冲宽宽度即程程序中延延时函数数dellay_nuss的参数数n决定定的。nn越接近近15000,电电机转速速越慢。要要重复试试验得到到一个比比较准确确的输出出。将确确定好的的沿直线线运动的的参数更更新到程程序FoorwaardLLefttRigghtBBackkwarrd.cc中相应应的值。利用forr循环控控制电机机的运行行时间,由由小车运运动形式式决定输输出距离离或角度度。例程程中foor循环环的循环环次数为为65,小小车运行行时间为为1.55s,运运行距离
28、离减半。ffor循循环的循循环次数数为266,电机机的运行行时间决决定小车车旋转的的角度。调调整foor循环环的循环环次数得得到非常常接近你你想要的的旋转角角度。由由于每个个小车的的情况不不一样,在在向左转转与右转转中foor循环环的循环环次数增增加或减减少电机机的转角角,使宝宝贝车旋旋转期望望的角度度,例如如旋转990度。如如果发现现一个值值使旋转转超过990,而另另一个使使旋转小小于900,尝试试选择一一个使其其旋转更更多的值值,然后后稍微减减小电机机速度。测测试一下下你的小小车要循循环多少少次才能能旋转990度。在转弯半径径较大时时,可以以采用一一个电机机增速另另一个电电机减速速的方法法
29、转弯。由由于小车车结构的的影响,这这种方法法转弯较较慢,转转弯半径径较大,效效果受运运动速度度的影响响大。在在需要转转弯半径径较小时时,可以以采用一一个电机机转动,而而另一个个静止的的方法。两两个电机机等速反反向转动动可以实实现原地地转弯。测试宝贝车车速度。将将宝贝车车放在尺尺子旁边边,确保保轮子接接触的地地面与尺尺子的00厘米对对齐在一一条线上上,按复复位键重重新运行行程序,让让宝贝车车向前走走1秒钟钟,测量量从出发发点到机机器人停停下来所所接触的的地面距距离,测测量结果果就是以以厘米/s为单单位的。可可以参考考下列程程序。#inclludee#inclludeeint mmainn(voo
30、id)int ccounnterr;uart_Iniit();printtf(Proograam RRunnningg!nn);for(ccounnterr=0;couunteer1130;couunteer+)/运行33 秒P1_1=1;delayy_nuus(117000);P1_1=0;P1_0=1;delayy_nuus(113000);P1_0=0;delayy_nmms(220);whilee(1);2、将加速速或减速速与基本本巡航动动作结合合起来,使使机器人人的每一一个动作作都能够够匀加速速或匀减减速。参参考教材材程序SStarrtAnndSttopWWithhRammpinng
31、.cc及相似似代码更更改FoorwaardLLefttRigghtBBackkwarrd.cc。3、教材程程序MoovemmenttsWiithFFunttionns.cc、MoovemmenttsWiithOOneFFunttionn.c运运行结果果与FoorwaardLLefttRigghtBBackkwarrd.cc产生的的效果是是相同的的,用函函数调用用简化运运动程序序。修改改MovvemeentssWitthOnneFuuntiion.c使机机器人走走一个正正方形。4、验证程程序NaaviggatiionWWithhSwiitchh.c是是否走了了一个矩矩形。使使用数组组或调用用函数
32、编编写程序序,使机机器人按按你的想想法运动动,实现现较为复复杂的运运动。【拓展训练练】编程程使履带带坦克机机器人、相相扑机器器人、爬爬虫机器器人巡航航控制。四、实验程程序1、验证程程序FoorwaardLLefttRigghtBBackkwarrd.cc。#inclludee#inclludeeint mmainn(vooid)int ccounnterr;uart_Iniit();printtf(Proograam RRunnningg!nn);for(ccounnterr=1;couunteer=65;couunteer+)/向前P1_1=1;delayy_nuus(117000);P1_
33、1=0;P1_0=1;delayy_nuus(113000);P1_0=0;delayy_nmms(220);for(ccounnterr=1;couunteer=26;couunteer+)/向左转转P1_1=1;delayy_nuus(113000);P1_1=0;P1_0=1;delayy_nuus(113000);P1_0=0;delayy_nmms(220);for(ccounnterr=1;couunteer=26;couunteer+)/向右转转P1_1=1;delayy_nuus(117000);P1_1=0;P1_0=1;delayy_nuus(117000);P1_0=0;
34、delayy_nmms(220);for(ccounnterr=1;couunteer=65;couunteer+)/向后P1_1=1;delayy_nuus(113000);P1_1=0;P1_0=1;delayy_nuus(117000);P1_0=0;delayy_nmms(220);whilee(1);2、编程反反复测试试一下小小车要循循环多少少次才能能旋转精精确的990度。3、编程测测试宝贝贝车速度度,测量量结果就就是以厘厘米/ss为单位位的。4、参考以以下程序序StaartAAndSStoppWitthRaampiing.c及相相似代码码,更改改ForrwarrdLeeftRRig
35、hhtBaackwwardd.c,使使机器人人的每一一个动作作都能够够匀加速速或匀减减速。#inclludee#inclludeeint mmainn(vooid)int ppulsseCoountt;uart_Iniit();printtf(Proograam RRunnningg!nn);for(ppulsseCoountt=100;puulseeCouunt=2000;ppulsseCoountt=puulseeCouunt+1)P1_1=1;delayy_nuus(115000+puulseeCouunt);P1_1=0;P1_0=1;delayy_nuus(115000-puulse
36、eCouunt);P1_0=0;delayy_nmms(220);for(ppulsseCoountt=1;pullseCCounnt=00;puulseeCouunt=pullseCCounnt-11)P1_1=1;delayy_nuus(115000+puulseeCouunt);P1_1=0;P1_0=1;delayy_nuus(115000-puulseeCouunt);P1_0=0;delayy_nmms(220);whilee(1);修改MovvemeentssWitthOnneFuuntiion.c使机机器人走走一个正正方形。#inclludee #inclludee void
37、Movve(iint couunteer,iint PC11_puulseeWidde,iint PC00_puulseeWidde)int ii;for(ii=1;i=couunteer;ii+)P1_1=1;delayy_nuus(PPC1_pullseWWidee);P1_1=0;P1_0=1;delayy_nuus(PPC0_pullseWWidee);P1_0=0;delayy_nmms(220);int mmainn(vooid)uart_Iniit();printtf(Proograam RRunnningg!nn);Move(65,17000,113000);Move(26,1
38、3000,113000);Move(26,17000,117000);Move(65,13000,117000);whilee(1);6、使用数数组或调调用函数数编写程程序,使使机器人人按你的的想法运运动,实实现较为为复杂的的运动。五、实验报报告要求求1、程序设设计小车车要循环环多少次次才能旋旋转精确确的900度,观观察到的的运行效效果并加加以分析析,程序调试试心得。2、更改FForwwarddLefftRiighttBacckwaard.c,使使机器人人的每一一个动作作都能够够匀加速速或匀减减速。写写出程序序,观察察到的运运行效果果并加以以分析,程序调试试心得。3、修改MMoveemennt
39、sWWithhOneeFunntioon.cc,使机机器人走走一个正正方形。写写出程序序,观察察到的运运行效果果并加以以分析,程序调试试心得。4、使用数数组或调调用函数数编写程程序,使使机器人人按你的的想法运运动,实实现较为为复杂的的运动。写写出程序序,观察察到的运运行效果果并加以以分析,程序调试试心得。六、思考题题1、在程序序ForrwarrdLeeftRRighhtBaackwwardd.c中中,向左左转与右右转的ffor循循环的循循环次数数为266,这是是什么意意思?程程序运行行效果是是怎样的的?2、机器人人完成各各种巡航航动作的的过程中中,每次次启动和和停止时时,动作作太快,几几乎倾倒
40、倒,为什什么会这这样呢?采用什什么方法法可以解解决这种种问题?3、让小车车实现转转弯的方方法有哪哪些?注:实验操操作现场场检查。实验四 CC51接接口与触触觉导航航一、实验目目的1、接触型型传感器器作为输输入反馈馈与C551单片片机的编编程实现现。 2、编程使使机器人人基于胡胡须导航航,条件件判断语语句的嵌嵌套与机机器人的的人工智智能决策策的编程程使机器器人逃离离进入墙墙角死区区。二、实验设设备及软软件宝贝车机器器人、IISP下下载线、串串行接口口、USSB接口口、计算算机、电电源、安安装机器器人胡须须,所需需硬件如如图4.1。元件清单: (1) 胡胡须状金金属丝22根; (2) 平平头M33
41、x222盘头螺螺钉2个个; (3) 113mmm圆形立立柱2个个;(4) MM3尼龙龙垫圈22个; (5) 33-piin公-公接头头2个;(6) 2220电阻22个; (7) 110k电阻22个。 图4.1 胡胡须硬件件Keil uViisioon2 IDEE集成开开发环境境、PRROGIISP11.722下载软软件、串串口调试试软件。三、实验内内容和步步骤1、通过布布置恰当当的电路路,在机机器人前前端安装装并测试试一个称称为胡须须的触觉觉开关,对对C511单片机机编程来来监视触触觉开关关的状态态。安装并测试试机器人人胡须见见图4.2。确确定两条条胡须比比较靠近近,但又又不接触触面包板板上的
42、33-piin头,推推荐保持持3mmm的距离离。参考考接线图图4.33,搭建建胡须电电路。色环电阻你你会读吗吗?(提提示:棕棕红橙黄黄绿,蓝蓝紫灰白白黑)220电电阻(红红红黑黑黑棕),110k电阻(棕棕黑黑红红棕)。注意:右边边胡须状状态信息息输入是是通过PP1口的的第4引引脚完成成,左边边胡须状状态信息息输入是是通过PP2口的的第3引引脚完成成。也可可以接其其他引脚脚,注意意电路与与程序要要匹配。图4.2 安装机机器人胡胡须 图44.3 胡须电电路示意意图 图4.4是实实际的参参考接线线图,安安装好的的触觉胡胡须的机机器人如如图4.5。 图4.4 胡须接接线图 图4.5安装装好触觉觉胡须的
43、的机器人人单片机ATT89SS52的的四个端端口P00、P11、P22和P33是可以以按位来来操作,从从低到高高依次为为第0口口、第11口第7口口,书写写分别为为PX.0、PPX.11、PXX.7(XX取0到到3)。P1&0 xx10:取P11.4P1P1.7P1.6P1.5P1.4P1.3P1.2P1.1P1.00 x1000010000P2&0 xx08:取P22.3P2P2.7P2.6P2.5P2.4P2.3P2.2P2.1P2.00 x0800001000P1&0 xx10和和P2&0 x008分别别提取了了P1.4和PP2.33的值,屏屏蔽了其其他位。测试胡须源源程序TTesttWh
44、iiskeers.c。要要用到调调试终端端,当程程序运行行时要确确保串口口已经接接好。弄弄清哪条条胡须是是左胡须须,哪条条是右胡胡须。当当胡须没没有被碰碰到,使使引脚电电压为55V,胡胡须状态态为1;当胡须须被碰到到时,使使引脚电电压为00V,胡胡须状态态为0。2、通过胡胡须导航航。机器器人行走走时,如如果有胡胡须被触触动,意意味着碰碰到了什什么。尝尝试让宝宝贝车向向前行走走,当在在其路线线上遇到到障碍物物时,它它将后退退、旋转转并向另另一个方方向行走走以避开开障碍物物。具体体程序RRoamminggWitthWhhiskkerss.c。可以调整Left _Turn()和Right_Turn
45、()子程序中for循环的循环次数增加或减少电机的转角,使宝贝车旋转期望的角度。在空间比较狭小的地方,可以调整程序Backward()中for循环的循环次数来减少后退的距离。3、基于人人工智能能决策的的编程使使机器人人逃离进进入墙角角死区。编编程使机机器人逃逃离进入入墙角死死区。当当宝贝车车进入墙墙角时,左左胡须触触墙,于于是它倒倒退,右右转。当当小车再再向前行行走,右右胡须触触墙,于于是再倒倒退,左左转。然然后它又又前进又又会碰到到左墙,再再次碰到到右墙等,直直到有人人把它从从困境中中解救出出来。使使用含iifelsse嵌套套语句用用于探测测连续的的、交替替出现的的胡须触触动。编编程使宝宝贝车
46、在在行走时时,轮流流触动它它的胡须须,胡须须在经过过四次触触动之后后,宝贝贝车会进进行后退退、旋转转1800离开墙墙角。具具体程序序EsccapiingCCornnerss.c。尝尝试增加加或减小小变量ccounnterr的数值值,观察察机器人人在正常常行走过过程中是是否有任任何不同同。【拓展训练练】触觉觉导航机机器人走走迷宫竞竞赛。四、实验报报告要求求1、搭建触触觉导航航电路,测试胡须源程序TestWhiskers.c。使用串口调试助手观察运行效果并加以分析。程序调试心得。#inclludee#inclludeeint PP1_44staate(voiid)/获取取P1_4 的的状态retu
47、rrn (P1&0 x110)?1:00;int PP2_33staate(voiid)/获取取P2_3 的的状态returrn (P2&0 x008)?1:00;int mmainn(vooid)uart_Iniit();printtf(WHIISKEER SSTARRTESSn);whilee(1)printtf(右边胡胡须的状状态:%d ,P11_4sstatte();printtf(左边胡胡须的状状态:%dnn,PP2_33staate();delayy_nmms(1150);程序RoaaminngWiithWWhisskerrs.cc触觉导导航的实实现,胡胡须机器器人怎样样行走。#i
48、nclludee#inclludeeint PP1_44staate(voiid)returrn (P1&0 x110)?1:00;int PP2_33staate(voiid)returrn (P2&0 x008)?1:00;void Forrwarrd(vvoidd)P1_1=1;delayy_nuus(117000);P1_1=0;P1_0=1;delayy_nuus(113000);P1_0=0;delayy_nmms(220);void Lefft_TTurnn(vooid)int ii;for(ii=1;i=26;i+)P1_1=1;delayy_nuus(113000);P1_1
49、=0;P1_0=1;delayy_nuus(113000);P1_0=0;delayy_nmms(220);void Rigght_Turrn(vvoidd)int ii;for(ii=1;i=26;i+)P1_1=1;delayy_nuus(117000);P1_1=0;P1_0=1;delayy_nuus(117000);P1_0=0;delayy_nmms(220);void Bacckwaard(voiid)int ii;for(ii=1;i=65;i+)P1_1=1;delayy_nuus(113000);P1_1=0;P1_0=1;delayy_nuus(117000);P1_0=
50、0;delayy_nmms(220);int mmainn(vooid)uart_Iniit();printtf(Proograam RRunnningg!nn);whilee(1)if(PP1_44staate()=0)&(PP2_33staate()=0) /两胡须须同时碰碰到Backwwardd(); /向后Left_Turrn();/向左Left_Turrn();/向左else if(P1_4sttatee()=0) /右胡须须碰到Backwwardd();/向向后Left_Turrn();/向左else if(P2_3sttatee()=0) /左胡须须碰到Backwwardd();
51、/向向后Rightt_Tuurn();/向右右else /胡胡须没有有碰到Forwaard();/向前前程序EsccapiingCCornnerss.c是是如何工工作的。#inclludee#inclludeeint PP1_44staate(voiid)returrn (P1&0 x110)?1:00;int PP2_33staate(voiid)returrn (P2&0 x008)?1:00;void Forrwarrd(vvoidd)P1_1=1;delayy_nuus(117000);P1_1=0;P1_0=1;delayy_nuus(113000);P1_0=0;delayy_nm
52、ms(220);void Lefft_TTurnn(vooid)int ii;for(ii=1;i=26;i+)P1_1=1;delayy_nuus(113000);P1_1=0;P1_0=1;delayy_nuus(113000);P1_0=0;delayy_nmms(220);void Rigght_Turrn(vvoidd)int ii;for(ii=1;i=26;i+)P1_1=1;delayy_nuus(117000);P1_1=0;P1_0=1;delayy_nuus(117000);P1_0=0;delayy_nmms(220);void Bacckwaard(voiid)int
53、 ii;for(ii=1;i4)countter=1;Backwwardd();/向向后Left_Turrn();/向左Left_Turrn();/向左elsecountter=1;if(PP1_44staate()=0)&(PP2_33staate()=0)Backwwardd();/向向后Left_Turrn();/向左Left_Turrn();/向左else if(P1_4sttatee()=0)Backwwardd();/向向后Left_Turrn();/向左else if(P2_3sttatee()=0)Backwwardd();/向向后Rightt_Tuurn();/向右右else
54、Forwaard();/向前前五、思考题题1、触觉导导航的原原理是什什么?通通过胡须须导航时时如何避避开障碍碍物?2、语句RRetuurn(P1&0 x110)?1:00的意义义是什么么?试说说明。3、语句iif(P1_4sttatee()=0)&( P22_3sstatte()=00)Backkwarrd();Leeft_Turrn();Leeft_Turrn(); 的含含义是什什么?4、在胡须须导航程程序中函函数Foorwaard()有变变动,只只发送一一个脉冲冲,然后后返回,这这样的好好处是什什么?5、是否有有且只有有一根胡胡须被触触动,如如何通过过获取左左、右胡胡须的状状态作出出判断?
55、写出具具体的判判断语句句。注:实验操操作现场场检查。实验五 CC51接接口与红红外线导导航一、实验目目的1、掌握红红外传感感器作为为输入反反馈与单单片机的的编程实实现,让让机器人人的C551单片片机可以以收发红红外光信信号。 2、使用红红外线发发射和接接收器件件探测道道路,编编程实现现高性能能的IRR导航和和边沿探探测。二、实验设设备及软软件宝贝车机器器人、IISP下下载线、串串行接口口、USSB接口口、计算算机、电电源。所需元件:(1) 两两个红外外检测器器,如图图5.11; (2) 两两个IRR LEED,如如图5.2; (3) 四四个4770电阻 (黄紫紫黑黑棕棕);(4) 两两个900
56、13三三极管,如如图5.3。 图5.1红红外检测测器 图图5.22红外线线二极管管LEDD发射器器 图5.3.1 三三极管990133管脚图图 图图5.33.2 三极管管90113结构构图及符符号图Keil uViisioon2 IDEE集成开开发环境境、PRROGIISP11.722下载软软件、串串口调试试软件。三、实验内内容和步步骤使用红外光光来照射射机器人人前进的的路线,确确定何时时有光线线从被探探测目标标反射回回来,通通过检测测反射回回来的红红外光可可以确定定前方是是否有物物体。机机器人使使用红外外线二极极管LEED发射射红外光光线,红红外检测测器相当当于眼睛睛,检测测到反射射回来的的
57、红外光光线,并并发出信信号来表表明检测测到从物物体反射射回红外外线,如如图5.4。红红外线(IIR)接接收/检检测器有有内置的的光滤波波器,除除了需要要检测9980nnm波长长的红外外线外,几几乎不允允许其他他光通过过。红外外检测器器还有一一个电子子滤波器器,只允允许大约约38.5kHHz的电电信号通通过。图5.4 用红外外探测障障碍物 1、搭建并并测试IIR发射射和探测测器对,如如图5.5。注注意断开开主板和和电机的的电源。图5.5左左侧和右右侧IRR组电路路原理图图图5.6 左右IIR组实实物参考考图本任务中,发发送持续续1mss的 338.55kHzz的红外外光,如如果红外外光被小小车路
58、径径上的物物体反射射回来,红红外检测测器将给给微控制制器发送送一个信信号,让让它知道道已经检检测到反反射回的的红外光光。当没没有IRR信号返返回时,探探测器的的输出状状态为高高电平。当当它探测测到被物物体反射射的388.5kkHz的的红外信信号时,它它的输出出为低电电平。放一个物体体,比如如手或一一张纸,距距离IRR组大约约1英寸寸。验证证当你放放一个物物体在IIR组前前时,调调试终端端是否会会显示00,当你你将物体体移开时时,它是是否显示示1。注意:保持持宝贝车车机器人人与串口口电缆的的连接,因因为你将将用串口口调试助助手来测测试你的的IR组组。参考程序(TestLeftIrPair.c):
59、#inclludee#inclludeeint PP1_22staate(voiid)returrn (P1&0 x004)?1:00;int mmainn(vooid)int ccounnterr;int iirDeetecctLeeft;uart_Iniit();printtf(Proograam RRunnningg!nn);whilee(1)for(ccounnterr=0;couunteer338;ccounnterr+)P1_3=1;delayy_nuus(113);P1_3=0;delayy_nuus(113);irDettecttLefft=PP1_22staate();pri
60、nttf(irDDeteectLLeftt=%ddn,irrDettecttLefft);delayy_nmms(1100);2、IR检检测器探探测和避避开障碍碍物IR检测器器的输出出与触须须的输出出非常相相象。没没有检测测到物体体时,输输出为高高,检测测到物体体时,输输出为低低。故采采取与胡胡须相同同的导航航策略。#inclludee#inclludee#inclludee#defiine LefftIRR P11_2 /左左边红外外接收连连接到PP1_22#defiine RigghtIIR PP3_55 /右边红红外接收收连接到到P3_5#defiine LefftLaauncch PP
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 文物知识笔试题库及答案
- 财政新闻考研真题及答案
- 澳门英语试卷真题及答案
- 2025年初中培优拓展题库及答案
- 园林古建筑文物保护施工标准方案
- 工程造价控制与合同管理
- 日照岚山护理编题目及答案
- 深入推进以人为本的新型城镇化实施方案
- 泵站设备故障预警管理方案
- 管道施工过程中水土保持措施方案
- 2025年新团员入团考试试题及答案
- 2024年衢州职业技术学院单招《语文》能力检测试卷附参考答案详解【基础题】
- 市场监管协管员岗位面试问题及答案
- 2024年秋新沪科版九年级上册化学全册教学课件(新教材)
- 干眼科普健康宣教
- 粮库安全生产培训
- 肝脾破裂护理课件
- 口腔护理并发症的预防及处理
- 汽车4s店生产设备管理制度
- Java EE-形考任务一-国开(LN)-参考资料
- 商品育肥猪饲料原料生产基地可行性研究报告
 
            
评论
0/150
提交评论