




免费预览已结束,剩余39页可下载查看
下载本文档
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
机电一体化综合训练个人实习报告实验组: 指导教师:小组成员: 西北农林科技大学机械与电子工程学院 2013-7-7目录一.舵机车总结41.实习目的、任务与要求41.1实习目的41.2实习任务与要求42.实习准备52.1实习准备52.2舵机车的组装和软件的安装52.2.1硬件的安装52.2.2软件的安装53.实习任务53.1伺服电机的控制53.1.1编程控制LED测试电路53.1.2伺服电机控制信号63.1.3伺服电机连接63.1.4伺服电机调零63.1.5计数并控制循环次数73.1.6测试电机73.2舵机车组装及测试93.2.1舵机车的组装93.2.2重新测试伺服电机93.2.3开始/复位指示电路和编程94.舵机车的巡航控制94.1舵机车的基本动作94.2舵机车触觉导航114.2.1连接触觉导航电路并测试114.2.2触须导航114.2.3程序运行124.3红外线导航144.3.1红外导航电路图及其工作原理144.3.2探测和避开障碍物144.3.3程序运行154.4光敏电阻导航184.4.1光敏电阻工作原理184.4.2光敏电阻应用导航184.4.3 程序运行184.5循迹导航19二.直流电机总结221.实习目的、任务与要求221.1实习目的221.2实习任务与要求222.实习准备222.1实习准备222.2直流车的组装和软件的安装232.2.1硬件的组装232.2.2软件的安装233.实习任务233.1基本运动234.模块测试234.1超声波模块234.1.1舵机归中234.1.2超声波避障舵机转动254.2蓝牙模块274.2.1蓝牙的安装274.2.2程序运行274.3无线模块294.4循迹测试30三.步进电机小车总结301实习目的、任务与要求301.1实习目的301.2实习任务与要求312.实习准备312.1实习准备312.2步进车的组装和软件的安装312.2.1硬件的安装312.2.2软件的安装323.实习任务323.1基本运动324.模块测试324.1超声波模块324.1.1超声波原理324.1.2超声波LCD显示324.2避障光电开关374.3循迹模块394.4无线遥控模块40四.实习总结43机电一体化综合训练实习总结一.舵机车总结1.实习目的、任务与要求1.1实习目的(1)通过训练,了解舵机车由哪几部分组成。理解舵机车是根据什么要求而设计的,理解设计时需要考虑的参数,包括:机器人的运动路径、定位精度,重复定位精度、任务执行等。(2)了解目前舵机车能量的供给形式,掌握控制部分和执行部分的供电方式。(3)理解舵机车的构成及其原理。(4)了解舵机车上的传感器有哪些,掌握传感器的原理及工作方式。(5)理解舵机车是如何根据传感器的信息做出决策。(6)掌握舵机车如何运动以及其他的运动方式。(7)理解舵机车与用户交换信息的各种方法。(8)通过训练,学会独立完成开发一个基于单片机控制的机电系统。(9)尽可能的在组装好的舵机车上实现不同情况的开发。 (10)培养团队协作和独立工作能力。 1.2实习任务与要求(1)熟悉舵机车的组成部分,组装并测试好舵机车。(2)舵机车的可以前进、后退、左转、右转、停止,并在允许范围内可调节速度。(3)陈述清楚舵机车如何实现运动。(4)掌握舵机车的控制部分和运动部分的供电方式。(5)理清舵机车的人机交互关系,陈述清楚舵机车如何实现人机交互。(6)陈述清楚舵机车有哪些传感器,传感器的信息是如何传送到单片机的。(7)完成舵机车的触须导航、光敏电阻导航、红外线导航、距离检测和循迹等任务,并陈述清楚其原理。(8)能在实验中迅速排除各种故障。(9)鼓励创新,在完成前八个基本任务的前提下,尽量做出新的开发,如果现有硬件条件不满足,可以陈述清楚创新原理。2.实习准备2.1实习准备硬件:PC机、AT89S52单片机、舵机车组件、ISP下载电缆、串口线、电池。软件:Keil uVision4 IDE集成开发环境、SL-ISP软件下载工具、串口调试软件。2.2舵机车的组装和软件的安装2.2.1硬件的安装根据实习指导书上的步骤将舵机车的硬件组装起来2.2.2软件的安装 (1)解压缩光盘中的KeilC51到某个目录下,如D:keil (2)执行D:keilsetupsetup.exe 安装程序,选择安装Eval Version版进行安装 (3)安装ISP下载软件3.实习任务3.1伺服电机的控制3.1.1编程控制LED测试电路二极管是单向导电的电子管,而发光二极管(LED)在有电流流过时会发光。不像电阻上的颜色代码,LED的颜色仅仅表示电流流过时它将发什么颜色的光。LED重要的标识在它的外形上。因为二极管是单向导电的电子管,你必须保证连接正确,否则它将不能工作。完成测试所搭建的电路如图8所示:图8 两个发光二极管分别与I/O脚P1_0、P1_1连接在本次测试中,我们使用P1端口的第一脚记为 P1_0,再设置I/O端口的电平来控制LED发光或熄灭,注意它是怎样输出高或低电平的。让另一个连接到P1_1管脚的LED闪烁是一件很容易的事情,把P1_0改为P1_1,重新运行程序即可。当然,你可以再次修改程序,让两个发光二极管交替亮或灭,你也可以通过改变延时函数的参数n的值,来改变LED的闪烁频率。3.1.2伺服电机控制信号通过对微控制器编程发给伺服电机的高、低电平信号必须保持非常精确时间。这是因为伺服电机根据信号的高电平持续时间的长短作为向什么方向转动的指示。对于精确的伺服电机控制而言,信号的高电平持续的时间要求比delay_nms函数的时间值要精确的多。你只能每次以1ms为单位改变delay_nms函数的参数n的取值。这时需要使用另一个延时函数delay_nus(unsigned int i)。3.1.3伺服电机连接连接伺服电机到电源和控制器的I/O口。先前搭建的LED电路将被用来监视控制器模块发送到伺服电机的运动控制信号。3.1.4伺服电机调零将运行一个程序,发送一个脉冲信号到伺服电机,让电机保持静止。由于伺服电机在工厂没有预先调整,它们在接收到该信号时将转动。你要用螺丝刀调节伺服电机让它们保持静止。这就是伺服电机调零。调节之后,你要测试伺服电机,验证其功能是否正常。测试程序将发送信号让伺服电机顺时针和逆时针以不同的速度旋转。图9显示的信号是发送到与P1_1连接的伺服电机的校准信号,称为零点标定信号。伺服电机调节好之后,这个信号就可以指示电机保持静止。这个信号是由时间间隔为20 ms 的脉宽为1.5 ms的一系列脉冲组成。图9 1.5ms脉冲宽度的时间矢量图下面我们计算脉宽为1.5 ms时delay_nus函数的参数n的取值。1.5 ms即1500us。前面说过,无论delay_nus函数的参数n的取值是多少,都要乘以1 s,这样就可以计算出总的延时。如果知道脉冲要持续多长时间,你就可以计算出delay_nus函数的参数n的取值。用这个公式计算:下面我们连接到P1_0的伺服电机零点调整,程序如下:#include#includeint main(void)uart_Init();printf(Program Running!);while(1)P1_0=1;delay_nus(1500);P1_0=0;delay_nms(20);3.1.5计数并控制循环次数最方便的控制一段代码执行次数的方法是利用for循环,语法如下:for(表达式1;表达式2;表达式3) 语句它的执行过程如下:(1) 先求解表达式1。(2) 求解表达式2,若其值为真(非0),则执行for语句中指定的内嵌语句,然后执行下面第3)步;若其值为假(0),则结束循环,转到第5)步。(3) 求解表达式3。(4) 转回上面第2)步继续执行。(5) 循环结束,执行for语句下面的一个语句。下面是一个用myCounter来计数的for循环例程。每执行一次循环,它会显示myCounter的值。For(int myCounter=1; myCounter=10;i+)printf(“%d”,myCounter);delay_nms(500);3.1.6测试电机在装配宝贝车机器人之前还有最后一件事要做,那就是测试电机。在本任务中,你将运行程序,使电机以不同速度和不同的方向旋转。通过这些测试,将确保在装配之前电机工作是正常的。图10 1.3 ms的连续脉冲使电机顺时针全速旋转图2-17所示是当你给连续旋转电机1.3 ms的脉冲时,它如何以全速顺时针旋转。全速的范围是50 到 60 转每分钟(RPM)图11 1.7ms的连续脉冲使电机逆时针全速旋转将delay_nus的参数n设为大于1500的数会使电机逆时针旋转。n的值为1700可以发出1.7 ms的脉冲,如图11所示,这将使电机全速逆时针旋转。控制两个电机的delay_nus函数的参数n有四种不同的组合,这些组合经常会被用到。发送了这些组合中的一种,1700给P1_1 ,1300 给P1_0。通过测试不同的组合,填写表1的描述列。你将慢慢熟悉这些组合并为你自己建立一个参考。当你的宝贝车机器人安装完成后,填写下表的行和列,你就会看到每种组合使它怎样运动。表1 各种组合的运动状况P1_1P1_0描述运行状况17001300全速,P1_1电机逆时针,P1_0电机顺时针前进13001700全速,P1_1电机顺时针,P1_0电机逆时针后退17001700全速,P1_1电机逆时针,P1_0电机逆时针右转13001300全速,P1_1电机顺时针,P1_0电机顺时针左转15001700P1_1电机静止,P1_0电机逆时针左后转13001500P1_1电机顺时针,P1_0电机静止右后转15001500两个电机都静止,因为在第四节所做的中心点调整 静止15201480非全速,P1_1电机逆时针,P1_0电机顺时针前进3.2舵机车组装及测试3.2.1舵机车的组装按指导书上的步骤做即可,但在组装的过程中,我们发现需要小心谨慎,并将繁杂的线路分清整理好。3.2.2重新测试伺服电机本任务通过测试确保主板和伺服电机之间的电气连接正确。舵机车的前后左右的定义。确保右边的伺服电机从端口P1_0接收到脉冲后旋转,左边的电机从端口P1_1接收到脉冲后旋转。在测试电动机顺时针旋转三秒,停止一秒,然后逆时针旋转三秒时,我们发现我们的宝贝车右边电机在静止的时候并非完全静止,而是有稍微的旋转,我们通过修改delay_nus(int n)中n的值来使电机停止,通过调整,右边电机的静止参数为1490,左边电机为1500。 注意:在载入程序的过程中,一定要把三位开关设置到位置“2”。3.2.3开始/复位指示电路和编程在微控制器运行的过程中,可能会有一些因素使处理器复位。这会导致舵机车行为混乱。在某些情况下,机器人在按任何程序规定的路线行走,突然地,它好象迷路了并走向我们不期望的方向。实际情况是处理器受到某些因素的影响而产生复位使宝贝车程序从头重新运行。在这些情形下,程序重新/开始指示器成为一个非常有用的诊断设备和机器人工具。一种指示程序重启的方法是在所有舵机车程序的开始处包含一个明确的信号。这个信号在每次复位时产生。一个有效的表明程序重启的方法是扬声器,它在每次程序从头开始运行或重启时就会发出声音。测试过程得到宝贝车重启时蜂鸣器可以发出声音。4. 舵机车的巡航控制4.1舵机车的基本动作让舵机车向前走、左转、右转以及向后走。程序如下:#include#includeint main(void)int counter;printf(Program Running!n);for(counter=1;counter=1000;counter+)/开始/复位信号P1_4=1;delay_nus(1000);P1_4=0;delay_nus(1000);for(counter=1;counter=65;counter+)/向前P1_1=1;delay_nus(1700);P1_1=0;P1_0=1;delay_nus(1300);P1_0=0;delay_nms(20);for(counter=1;counter=26;counter+)/向左转1/4圈P1_1=1;delay_nus(1300);P1_1=0;P1_0=1;delay_nus(1300);P1_0=0;delay_nms(20);for(counter=1;counter=26;counter+)/向右转1/4圈P1_1=1;delay_nus(1700);P1_1=0;P1_0=1;delay_nus(1700);P1_0=0;delay_nms(20);for(counter=1;counter=65;counter+)/向后退P1_1=1;delay_nus(1300);P1_1=0;P1_0=1;delay_nus(1700);P1_0=0;delay_nms(20);注意:伺服电机的控制线连接在教学板的单片机上,通过给单片机控制器编程,使单片机的P1端口的第一引脚P1_1和第二引脚P1_1来发出伺服电机的控制信号,控制信号通过控制线来控制左右伺服电机的转动,从而实现机器人以不同的速度及方向运动。4.2舵机车触觉导航4.2.1连接触觉导航电路并测试零件列表:金属丝2根、平头M322盘头螺钉2个、13mm圆形立柱2个、M3尼龙垫圈2个、3-pin公-公接头2个、220欧电阻2个、10k欧电阻2个安装步骤:(1).拆掉连接主板到前支架的两颗螺钉;(2).螺钉依次穿过尼龙垫圈和圆形立柱;(3).把须状金属丝的其中一个勾在尼龙垫圈之上,另一个勾在尼龙垫圈之下,调整位置使他们横向交叉但又不接触;(4).拧紧螺钉到支架上。按照图12搭建电路:图12 触须电路原理图电路原理:由原理图可知,每条胡须都是一个常开开关。连接到每个胡须电路的I/O引脚监视着10k上拉电阻上的电压变化。当胡须没有被触动时,连接胡须的I/O管脚的电压是5V,当胡须被触动,I/O短接到地,所以I/O管脚的电压是0V。单片机可以读入相应的数据,进行分析、处理、控制机器人运动。在进行胡须测试之前需将串口电缆连接好,需用到调试终端以显示左右胡须状态,调用相关程序进行测试。4.2.2触须导航两个胡须状态有三种,需分情况讨论,需用到if语句。程序中应用的子程序(Ox代表十六进制数):l 获取P1_3的状态,即左胡须int P1_3state(void) return (P1&0x08)?1:0;l 获取P1_2的状态,即右胡须int P1_2state(void) return (P2&0x04)?1:0;l 向前子程序void Forward(void)l 左转子程序void Left_Turn(void)l 右转子程序void Right_Turn(void)l 后退子程序void Backward(void)l 循迹左转void Left_Turnsmall(void)l 循迹右转void Right_Turnsmall(void)l 左拐180度void Left_Turn180(void)l 右拐180度void Right_Turn180(void)l 小幅度左拐void Left_Turn111(void)l 小幅度右拐void Right_Turn111(void)l 停车void Stop_car(void)说明:左胡须接引脚P1_3,右胡须接引脚P1_2,在机器人的运动过程中,当左右胡须同时触到障碍物时,两个引脚输入全为0,此时通过调用相应函数Backward();Left_Turn();Left_Turn();实现后退并转180度;当只有左胡须触到障碍物时,P1_4输入为0,此时调用函数Backward();Right_Turn();实现向后并向右转;当只有右胡须触到障碍物时,P2_3输入为0,此时调用函数Backward();Left_Turn();实现向后并向左转。函数调用的过程中其实是通过连接在单片机引脚上的两个伺服电机控制线,向伺服电机发送不同的脉冲序列,从而实现电机的不同运动。4.2.3程序运行- 44 -#include#includeint P1_5state(void)return (P1&0x20)?1:0;int P2_3state(void)return (P2&0x08)?1:0;void Forward(void)P1_1=1;delay_nus(1700);P1_1=0;P1_0=1;delay_nus(1300);P1_0=0;delay_nms(20);void Left_Turn(void)for(i=1;i=26;i+)P1_1=1;delay_nus(1300);P1_1=0;P1_0=1;delay_nus(1300);P1_0=0;delay_nms(20);void Right_Turn(void)for(i=1;i=26;i+)P1_1=1;delay_nus(1700);P1_1=0;P1_0=1;delay_nus(1700);P1_0=0;delay_nms(20);void Backward(void)for(i=1;i=65;i+)P1_1=1;delay_nus(1300);P1_1=0;P1_0=1;delay_nus(1700);P1_0=0;delay_nms(20);int main(void)int counter;int old2=1;int old3=0;uart_Init();printf(Program Running!n);for(counter=1;counter4)counter=1;Backward();/向后Left_Turn();/向左Left_Turn();/向左elsecounter=1;if(P1_5state()=0)&(P2_3state()=0)Backward();/向后Left_Turn();/向左Left_Turn();/向左else if(P1_5state()=0)Backward();/向后Right_Turn();/向右else if(P2_3state()=0)Backward();/向后Left_Turn();/向左elseForward();/向前这个程序使宝贝车在第四次或第五次交替探测到墙角后,完成一个“U”型的拐弯,次数依赖于哪一个胡须先被触动。4.3红外线导航4.3.1红外导航电路图及其工作原理清单列表:两个红外探测器、两个IR LED、四个470欧电阻、两个9013三极管按照图13建立电路图:图13 原理图电路工作原理:在连接三极管时注意三极管的管脚分别属于什么极,由电路可以看出,三极管相当于一个开关:当P1_3(P3_6)置高时,从集电区到基区到发射区电路导通,加载在IR LED上的电压为VCC,IR LED向外发射红外线,当P1_3(P3_6)置低时,电路又断开,IR LED停止发射。探测器只能接收频率为38.5kHz的红外信号,当没有红外信号返回时,探测器的输出状态为高,当它检测到被物体反射的38.5kHz的红外信号时,它的输出为低。探测器的输出作为单片机引脚的输入,根据单片机两个引脚不同的输入,通过伺服电机控制线分别向伺服电机发送不同的脉冲序列,从而控制伺服电机的不同运动。发送完信号后立即将IR探测器的输出存储到变量中,这些存储的值会显示在调试终端或被机器人用来导航。4.3.2探测和避开障碍物红外探测与触须的输出非常相像,没有检测到物体时,输出为高,检测到物体时,输出为低。根据左右探测器接收到红外线的情况可以分情况讨论其运动形式。注意:为了使IR LED发射红外线的频率更精确,可采用空函数_nop_(void),它能延迟1us,减少了由于调用延时函数产生的延时。红外探测程序流程图如下:图14说明:通过调用IR LED红外发射器和探测器子程序打开发射器和探测器,在机器人运动过程中,当两个探测器同时探测到障碍物时,通过给伺服电机发送相应的脉冲,使机器人后退并转180度;当左边探测器检测到障碍物时,通过给伺服电机发送右转的脉冲,使其向右转;当机器人右边探测器检测到障碍物时,通过给伺服电机发送向左的脉冲,使其左转。即可实现红外线导航。4.3.3程序运行#include#include#include #define LeftIR P1_5 /左边红外接收连接到P15#define RightIR P3_6 /右边红外接收连接到P36#define LeftLaunch P1_4 /左边红外发射连接到P14#define RightLaunch P3_5 /右边红外发射连接到P35int IRLaunch(unsigned char IR)unsigned int counter;if(IR=L)for(counter=0;counter1000;counter+)LeftLaunch=1;_nop_();_nop_();_nop_();_nop_();_nop_();_nop_();_nop_();_nop_();_nop_();_nop_();_nop_();LeftLaunch=0;_nop_();_nop_();_nop_();_nop_();_nop_();_nop_();elsefor(counter=0;counter1000;counter+)/右边发射RightLaunch=1;_nop_();_nop_();_nop_();_nop_();_nop_();_nop_();_nop_();_nop_();_nop_();_nop_();_nop_();RightLaunch=0;_nop_();_nop_();_nop_();_nop_();_nop_();_nop_();int main(void)int counter;int pulseLeft;int pulseRight;bit irDetectLeft, irDetectRight;char IR;uart_Init();printf(Program Running!n);for(counter=1;counter=1000;counter+)/开始/复位信号 P1_3=1;delay_nus(1000);P1_3=0;delay_nus(1000);doIRLaunch(R);irDetectRight = RightIR; /右边接收IRLaunch(L);irDetectLeft = LeftIR; /左边接收if(irDetectLeft=0)&(irDetectRight=0) /向前走pulseLeft=1300;pulseRight=1700;printf(Forwordn);else if(irDetectLeft=0)&(irDetectRight=1) /左转pulseLeft=1700;pulseRight=1500;printf(turn_Leftn);else if(irDetectLeft=1)&(irDetectRight=0) /右转pulseLeft=1500;pulseRight=1300;printf(turn_Rightn);elsepulseLeft=1700; /后退pulseRight=1300;printf(backn);P1_1=1;delay_nus(pulseLeft);P1_1=0;P1_0=1;delay_nus(pulseRight);P1_0=0;delay_nms(15);while(1);探测障碍物很重要的一点是在宝贝车撞到它之前给宝贝车留有绕开它的空间。如果前方有障碍物,宝贝车会使用脉冲命令避开,然后探测,如果物体还在,再使用另一个脉冲来避开它。宝贝车能持续使用电机驱动脉冲和探测,直到它绕开障碍物,然后它会继续发向前行走的脉冲。本程序能够很好地实现这一点。4.4光敏电阻导航4.4.1光敏电阻工作原理光敏电阻又称光导管, 它几乎都是用半导体材料制成的光电器件。 光敏电阻没有极性, 纯粹是一个电阻器件, 使用时既可加直流电压, 也可以加交流电压。无光照时, 光敏电阻值(暗电阻)很大, 电路中电流(暗电流)很小。当光敏电阻受到一定波长范围的光照时, 它的阻值(亮电阻)急剧减少, 电路中电流迅速增大。 一般希望暗电阻越大越好, 亮电阻越小越好,此时光敏电阻的灵敏度高。4.4.2光敏电阻应用导航基于光敏电阻的工作原理,可以将其应用于机器人的导航,如下电路图:l 分压电路如图8: R为光敏电阻,光敏电阻在受到光照时,电阻会减小,则R上的分压减小,V0增大,当大于1.5V时为高电平;当没有光照时,光敏电阻阻值很大,R上分压也大,V0减小,当小于1.5V时为低电平。l 光检测电路如图9:P1_5、P2_3为与光敏电阻连接的引脚,当在空白有光处,光敏电阻阻值很小,与之所连接的引脚为高电平;当遇到阴影处,光敏电阻阻值很大,与之连接的引脚为低电平。根据引脚的高低电平可以避开阴影区从而实现光敏电阻导航。 图15 图164.4.3 程序运行#include#includeint P1_5state(void)/获取P1_5口的状态return (P1&0x20)?1:0;int P2_3state(void) /获取P2_3口的状态return (P2&0x08)?1:0;int main(void)Int counter;uart_Init(); /串口初始化printf(Program Running!n);for(counter=1;counter=1000;counter+)/开始/复位信号P1_4=1;delay_nus(1000);P1_4=0delay_nus(1000);while(1)if(P1_5state()=0)&(P2_3state()=0)/都探测到阴影,向前运动P1_1=1;delay_nus(1700);P1_1=0;P1_0=1;delay_nus(1300);P1_0=0;else if(P1_5state()=0)/只有左边的探测到阴影,向左转P1_1=1;delay_nus(1500);P1_1=0;P1_0=1;delay_nus(1300);P1_0=0;else if(P2_3state()=0)/只有右边的探测到阴影,向右转P1_1=1;delay_nus(1700);P1_1=0;P1_0=1;delay_nus(1500);P1_0=0;else /没有探测到阴影,静止不动P1_1=1;delay_nus(1500);P1_1=0;P1_0=1;delay_nus(1500);P1_0=0;delay_nms(20);当运行上面的程序时,如果没有阴影遮住光敏电阻,宝贝车机器人会静止不动,当同时遮住两个光敏电阻时,宝贝车机器人会向前移动,当只遮住一个光敏电阻时,机器人会向探测到阴影的光敏电阻一侧转动。4.5循迹导航宝贝车的底盘前下方安装两个红外传感,有发射器和探测器,通过从地表反射回来的红外线探测路况,当传感器下方是白色时,红外线反射给探测器,则与此探测器连接的引脚输出为低电平0;当传感器下方是黑色时,红外线被吸收,探测器接收不到红外光,则于此探测器连接的引脚输出为高电平1。通过编程实现机器人沿着黑色胶带路运动,而不会跑到外边。程序如下:#include#includesbit P32=P32;sbit P33=P33;void Forward(void) P1_1=1; delay_nus(1700); P1_1=0; P1_0=1; delay_nus(1300); P1_0=0; delay_nms(20); void Left_Turn(void) P1_1=1; P1_0=1; delay_nus(1300); P1_1=0; P1_0=0; delay_nms(20); void Right_Turn(void) P1_1=1; P1_0=1; delay_nus(1700); P1_1=0; P1_0=0; delay_nms(20); void ting(void) P1_1=1; P1_0=1; delay_nus(1500); P1_1=0; P1_0=0; delay_nms(20); int main(void) int counter; uart_Init(); for(counter=1;counter=1000;counter+)/开始/复位信号 P1_4=1; delay_nus(1000); P1_4=0; delay_nus(1000); while(1) if(!P32)&(!P33)ting();if(P32)&(P33)Forward();if(P32)&(!P33) Left_Turn();if(!P32)&(P33) Right_Turn(); 二.直流电机总结1.实习目的、任务与要求1.1实习目的(1)通过训练,了解直流小车由哪几部分组成。理解直流小车是根据什么要求而设计的,理解设计时需要考虑的参数,包括:机器人的运动路径、定位精度,重复定位精度、任务执行等。(2)理解直流小车的构成及其原理。(3)了解直流小车上的传感器有哪些,掌握传感器的原理及工作方式。(4)理解直流小车是如何根据传感器的信息做出决策。(5)尽可能的在组装好的直流小车上实现不同情况的开发。 (6)培养团队协作和独立工作能力。1.2实习任务与要求(1)熟悉直流小车的组成部分,组装并测试好直流小车。(2)直流小车的可以前进、后退、左转、右转、停止,并在允许范围内可调节速度。(3)陈述清楚直流小车如何实现运动。 (4)理清直流小车的人机交互关系,陈述清楚直流小车如何实现人机交互。(5)陈述清楚直流小车有哪些传感器,传感器的信息是如何传送到单片机的。(6)能在实验中迅速排除各种故障。(7)鼓励创新,在完成前八个基本任务的前提下,尽量做出新的开发,如果现有硬件条件不满足,可以陈述清楚创新原理。2.实习准备2.1实习准备硬件:PC机、AT89S52单片机、直流小车组件、USB下载接口、串口线、电池。软件:Keil uVision4 IDE集成开发环境、SL-ISP软件下载工具、串口调试软件。2.2直流车的组装和软件的安装2.2.1硬件的组装第一步:在开始安装前要先把充电电池充 8-10 小时后手工断电,不能充太久,以保证小车供电正常。第二步:焊接电机导线第三步:安装并固定四个寻迹探头第四步:电池放置与安装第五步:安装四路寻线模块与驱动模块第六步:红外探头与中控板连接第七步:电池,驱动模块,电机连接第八步:测试驱动模块与电机连接是否正确,并制作供电线第九步:驱动模块的控制线与单片机IO相连第十步:传感器供电连接2.2.2软件的安装直流小车软件的安装和舵机车基本相同3.实习任务3.1基本运动对直流小车最基本的要求就是能够实现前进,后退,左转,右转和停止等。4.模块测试4.1超声波模块4.1.1舵机归中实习中要求舵机归中,这样可以使超声波装置左右转过的角度相同。程序如下:#include#include #define Sevro_moto_pwm P2_7 unsigned char pwm_val_left = 0;/变量定义unsigned char push_val_left =14;/舵机归中,产生约,1.5MS 信号 unsigned long S=0;unsigned long S1=0;unsigned long S2=0;unsigned long S3=0;unsigned long S4=0;unsigned int time=0; /时间变量unsigned int timer=0;/延时基准变量unsigned char timer1=0;/扫描时间变量/*调节push_val_left的值改变电机转速,占空比 */void pwm_Servomoto(void) if(pwm_val_left=200)pwm_val_left=0; void time1()interrupt 3 using 2 TH1=(65536-100)/256; /100US定时 TL1=(65536-100)%256; /定时器100US为准。在这个基础上延时 pwm_val_left+; pwm_Servomoto(); void main(void)TMOD=0X11;TH1=(65536-100)/256; /100US定时TL1=(65536-100)%256;TH0=0;TL0=0; TR1= 1;ET1= 1;ET0= 1;EA = 1; push_val_left=14; /舵机归中while(1) /*无限循环*/ 4.1.2超声波避障舵机转动程序如下:此程序能够实现直流小车躲避障碍的功能#include#include #define Sevro_moto_pwm P2_7 #define ECHO P2_4 #define TRIG P2_5 #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;unsigned char const positon3= 0xfe,0xfd,0xfb;unsigned char disbuff4 = 0,0,0,0,; unsigned char posit=0;unsigned char pwm_val_left = 0;unsigned
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2025版酒店行业客户投诉处理及售后服务合同
- 2025版城市广场施工维修与管理合同范本
- 2025版智能化速录服务合同范本适用于大型活动
- 2025年铁路桥梁护栏防腐蚀处理及更换安装合同
- 2025滁州商品房预售合同及租赁管理协议范本
- 2025版农业融资合伙人协议书标准模板
- 2025版户外拓展活动餐饮服务合同范本
- 2025年度电焊工程设计与施工监理合同
- 2025养殖场承包经营合同
- 红酒工程专业知识培训课件
- 海天注塑机全参数DOC资料全
- Test Plan Template:测试计划模板
- (完整版)三年级下册数学开学第一课ppt
- 苏教版四年级科学上册全册课件
- JJF1101-2019环境试验设备温度、湿度校准规范-(高清现行)
- 人教版新教材高中物理实验汇总及答案详解
- 中班语言《大狮子和小老鼠》课件
- TSG11-2020 锅炉安全技术规程
- 资助业务工作培训
- 《足球运动发展史》PPT课件
- IPQAM调制器操作说明书(共36页)
评论
0/150
提交评论