机器人课程结课总结报告.pdf
《机器人课程结课总结报告.pdf》由会员分享,可在线阅读,更多相关《机器人课程结课总结报告.pdf(62页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、-可编辑课程结课总结报告课程名称:机器人的制作实验一 基于 arduino控制器的轮式机器人循迹避障功能设计实验二应变式传感器电子秤实验实验三 基于 C51 单片机控制器的轮式机器人电机控制系统实验四 基于 ARM 控制器的博创平台轮式机器人循迹避障功能实现实验五 摄像头实现轮式机器人循迹功能的应用实验六 应用卓越联盟实验室设备进行设计和实现作品说明指导教师许晓飞系别机电工程学院专业机械电子工程学生姓名邓银涛班级/学号机电 1401/2014010339成绩-可编辑实验一基于 ardunio控制器的轮式机器人循迹避障功能设计实验目的1.了解 ardunio平台,并熟练使用此软件完成小车的各种活
2、动2.了解 HC-SR04 超声波测距模块的原理,并且熟练使用此模块作为小车的传感器进行工作3.了解并且熟悉红外线传感器循迹原理实验器材:Adrunio软件,超声波传感器,红外线传感器,导线,底板,电机,电池,单片机等实验内容:1.将硬件组装成小车,即轮式机器人2.利用 ardunio使小车完成循迹功能步骤:(1)写好后缀为.txt 的 c 语言循迹文件(2)将文件导入单片机中(3)根据具体路况,运行并且进行调试红外线传感器的灵敏程度3.利用 ardunio使小车完成避障功能步骤:(1)写好后缀为.txt 的 c 语言避障文件(2)将文件导入单片机中(3)运行并且进行调试小车躲避障碍物的距离实
3、验程序1.循迹程序:小车循迹程序思路图#include int Left_motor_back=8;/左电机后退(IN1)-可编辑int Left_motor_go=9;/左电机前进(IN2)int Right_motor_go=10;/右电机前进(IN3)int Right_motor_back=11;/右电机后退(IN4)int key=7;/定义按键数字 7 接口const int SensorRight=3;/右循迹红外传感器(P3.2 OUT1)const int SensorLeft=4;/左循迹红外传感器(P3.3 OUT2)int SL;/左循迹红外传感器状态int SR;/右
4、循迹红外传感器状态void setup()/初始化电机驱动IO 为输出方式pinMode(Left_motor_go,OUTPUT);/PIN 8(PWM)pinMode(Left_motor_back,OUTPUT);/PIN 9(PWM)pinMode(Right_motor_go,OUTPUT);/PIN 10(PWM)pinMode(Right_motor_back,OUTPUT);/PIN 11(PWM)pinMode(key,INPUT);/定义按键接口为输入接口pinMode(SensorRight,INPUT);/定义右循迹红外传感器为输入pinMode(SensorLeft,
5、INPUT);/定义左循迹红外传感器为输入void run(int time)/前进void run()-可编辑digitalWrite(Right_motor_go,HIGH);/右电机前进digitalWrite(Right_motor_back,LOW);analogWrite(Right_motor_go,255);/PWM比例 0255调速analogWrite(Right_motor_back,0);digitalWrite(Left_motor_go,HIGH);/左电机前进digitalWrite(Left_motor_back,LOW);analogWrite(Left_mo
6、tor_go,255);/PWM比例 0255调速analogWrite(Left_motor_back,0);/delay(time*50);/执行时间,可以调整/void left(int time)/左转(左轮不动,右轮前进)void left()digitalWrite(Right_motor_go,HIGH);/右电机前进digitalWrite(Right_motor_back,LOW);analogWrite(Right_motor_go,200);analogWrite(Right_motor_back,0);/PWM比例 0255调速digitalWrite(Left_mot
7、or_go,LOW);/左轮后退digitalWrite(Left_motor_back,LOW);analogWrite(Left_motor_go,0);analogWrite(Left_motor_back,100);/PWM比例 0255调速/delay(time*50);/执行时间,可以调整-可编辑void right(int time)/右转(右轮不动,左轮前进)void right()digitalWrite(Right_motor_go,LOW);/右电机后退digitalWrite(Right_motor_back,LOW);analogWrite(Right_motor_g
8、o,0);analogWrite(Right_motor_back,100);/PWM比例 0255调速digitalWrite2.避障程序:char L1=9;/zhengchar L2=8;char R1=10;/zhengchar R2=11;int echopin=13;int trigpin=12;void setup()/初始化动作的区块,定义串行端口和脚位 pinMode(echopin,INPUT);/pwmpinMode(trigpin,OUTPUT);void loop()/版子重复执行动作的区块 int currDist;-可编辑long randnumber;currD
9、ist=MeasureDistance();/读取前端距离delay(5);if(currDist 10)straight();if(currDist 5)back();delay(1000);turnright();delay(800);else back();delay(1000);turnleft();delay(800);-可编辑int MeasureDistance()digitalWrite(trigpin,LOW);delay(2);digitalWrite(trigpin,HIGH);delay(10);digitalWrite(trigpin,LOW);int distanc
10、e=pulseIn(echopin,HIGH);distance=distance/58.0;/计算距离344*100/1000000*pulseIn()/2delay(60);/循环间隔60uSreturn(distance);void straight()analogWrite(L1,100);/255 0 zhengzhuananalogWrite(L2,0);analogWrite(R1,100);/255 0 zhengzhuananalogWrite(R2,0);void turnright()analogWrite(L1,100);/255 0 zhengzhuananalogW
11、rite(L2,0);analogWrite(R1,0);/255 0 zhengzhuan-可编辑analogWrite(R2,0);void turnleft()analogWrite(L1,0);/255 0 zhengzhuananalogWrite(L2,0);analogWrite(R1,100);/255 0 zhengzhuananalogWrite(R2,0);void back()analogWrite(L1,0);/255 0 zhengzhuananalogWrite(L2,100);analogWrite(R1,0);/255 0 zhengzhuananalogWr
12、ite(R2,100);实验过程中遇到的问题及解决办法循迹中:1.电机速度差异控制:发现左右轮写入同一数值时,小车行进方向偏离直线,对左右两轮写入不同数值,多次测试,指导左右轮速度相等。2.电机驱动器给arduino供电出现问题,改用充电宝给arduino供电,直接从gnd和 5v输出脚给电机驱动器供电3.一个电机有两根信号输入线,一根控制正转,一根控制反转。两个轮子一起测转地眼晕,容易出错。-可编辑避障中:1.超声装置避障距离的确定将HC-SR04 超声波避障程序中数值改短,提高避障灵敏性2.硬件的安装:超声装置无法固定曾尝试过用胶带,废旧车轮等但不理想,并未得到很好的解决实验结果小车可以成
13、功的进行循迹和避障实验二电子秤实验一 单臂实验数据处理源码:axis(0 200 0 50)coords=0 20 40 60 80 100 120 140 160 180 200;0 2.8 5.1 7.5 9.9 12.4 14.8 17.2 19.6 22.0 24.6gridholdplot(coords(1,:),coords(2,:),*)x=coords(1,:)y=coords(2,:)b=size(coords)c=ones(1,b(2)MT=c;xM=MT-可编辑f=inv(MT*M)*MT*yy=,num2str(f(2),x+,num2str(f(1)x=-max(x)
14、:max(x)y=f(1)+f(2)*xmistake=max(x-y)/(max(y)-min(y);fprintf(电阻传感器的系数灵敏度S=%5.3f%n,abs(f(2)fprintf(非线性误差f=%5.3f%n,mistake)plot(x,y,-)xlabel(x/g)ylabel(V/mv)title(单臂实验)legend(y=,num2str(f(2),x+,num2str(f(1)Matlab处理结果电阻传感器的系数灵敏度S=0.122%非线性误差f=3.607%-可编辑半桥实验源码:axis(0 200 0 50)coords=0 20 40 60 80 100 120
15、 140 160 180 200;0 4.0 8.8 13.7 18.6 23.5 18.4 33.2 38.2 43.1 47.9gridholdplot(coords(1,:),coords(2,:),*)x=coords(1,:)y=coords(2,:)b=size(coords)c=ones(1,b(2)MT=c;x-可编辑M=MTf=inv(MT*M)*MT*yy=,num2str(f(2),x+,num2str(f(1)x=-max(x):max(x)y=f(1)+f(2)*xmistake=max(x-y)/(max(y)-min(y);fprintf(电阻传感器的系数灵敏度S
16、=%5.3f%n,abs(f(2)fprintf(非线性误差f=%5.3f%n,mistake)plot(x,y,-)xlabel(x/g)ylabel(V/mv)title(半桥实验)legend(y=,num2str(f(2),x+,num2str(f(1)Matlab处理结果电阻传感器的系数灵敏度S=0.238%非线性误差f=1.615%-可编辑全桥实验源码:axis(0 200 0 100)coords=0 20 40 60 80 100 120 140 160 180 200;0 7.4 15.3 23.1 30.9 38.8 46.7 54.6 62.6 70.5 78.4grid
17、holdplot(coords(1,:),coords(2,:),*)x=coords(1,:)y=coords(2,:)b=size(coords)c=ones(1,b(2)MT=c;x-可编辑M=MTf=inv(MT*M)*MT*yy=,num2str(f(2),x+,num2str(f(1)x=-max(x):max(x)y=f(1)+f(2)*xmistake=max(x-y)/(max(y)-min(y);fprintf(电阻传感器的系数灵敏度S=%5.3f%n,abs(f(2)fprintf(非线性误差f=%5.3f%n,mistake)plot(x,y,-)xlabel(x/g)
18、ylabel(V/mv)title(全桥实验)legend(y=,num2str(f(2),x+,num2str(f(1)Matlab数据处理电阻传感器的系数灵敏度S=0.393%非线性误差f=0.774%-可编辑实验三基于 C51 单片机控制器的轮式机器人电机控制系统实验目的了解 PWM 波控制电机的原理。基于 C51 单片机利用PWM波控制电机。实验器材C51 单片机、L298N驱动芯片、直流电机、杜邦线、普通导线、keil 软件、STC 下载器、示波器实验内容用 keil 新建一个“.c”文件,编写程序并对程序进行调试。将程序烧录进单片机内。进行硬件连接C51 引脚如图所示:-可编辑L2
19、98N 引脚如图所示:用单片通过P1.0、P1.1 和 L298 的第一对输入端IN1 和 IN2 相连,然后又L298 的第一对输出端 OUT1和 OUT2 与直流电机相连;单片通过P1.5、P1.6 和 L298 的第二对输入端IN3 和 IN4 相连,然后又L298 的第二对输出端OUT3 和 OUT4 与直流电机相连。给单片机上电。用示波器观察波形。-可编辑程序内容1、PWM 波控制电机启动#include reg51.h#include intrins.h#define FOSC 11059200L-可编辑typedef unsigned char BYTE;typedef unsi
20、gned int WORD;void delay_ms(int x);/*Declare SFR associated with the PCA*/sfr CCON=0 xD8;/PCA control registersbit CCF0=CCON0;/PCA module-0 interrupt flagsbit CCF1=CCON1;/PCA module-1 interrupt flagsbit CR=CCON6;/PCA timer run control bitsbit CF=CCON7;/PCA timer overflow flagsfr CMOD=0 xD9;/PCA mode
21、 registersfr CL=0 xE9;/PCA base timer LOWsfr CH=0 xF9;/PCA base timer HIGHsfr CCAPM0=0 xDA;/PCA module-0 mode registersfr CCAP0L=0 xEA;/PCA module-0 capture register LOWsfr CCAP0H=0 xFA;/PCA module-0 capture register HIGHsfr CCAPM1=0 xDB;/PCA module-1 mode registersfr CCAP1L=0 xEB;/PCA module-1 capt
22、ure register LOWsfr CCAP1H=0 xFB;/PCA module-1 capture register HIGHsfr PCAPWM0=0 xf2;sfr PCAPWM1=0 xf3;sbit IN1=P10;-可编辑sbit IN2=P11;sbit IN3=P15;sbit IN4=P16;void main()CCON=0;/Initial PCA control reCL=0;/Reset PCA base timerCH=0;CMOD=0 x02;/Set PCA timer clock source as Fosc/2CR=1;/PCA timer star
23、t runwhile(1)int i;IN1=0;IN2=1;IN3=0;IN4=1;for(i=100;i=0;i-)CCAP0H=CCAP0L=i;/PWM0 port output 50%duty cycle square waveCCAPM0=0 x42;/PCA module-0 work in 8-bit PWM mode and no PCA interruptCCAP1H=CCAP1L=i;CCAPM1=0 x42;-可编辑delay_ms(100);for(i=0;i=0;i-)CCAP0H=CCAP0L=i;/PWM0 port output 50%duty cycle s
24、quare waveCCAPM0=0 x42;/PCA module-0 work in 8-bit PWM mode and no PCA interruptCCAP1H=CCAP1L=i;CCAPM1=0 x42;delay_ms(100);-可编辑for(i=0;i0;x-)for(y=0;y1000;y+);控制方向#include reg51.h#include intrins.h-可编辑#define FOSC 11059200Ltypedef unsigned char BYTE;typedef unsigned int WORD;sbit IN1=P10;sbit IN2=P1
25、1;void main()IN1=0;IN2=1;PWM波对电机调速#include reg51.h#include intrins.h#define FOSC 11059200Ltypedef unsigned char BYTE;typedef unsigned int WORD;/*Declare SFR associated with the PCA*/sfr CCON=0 xD8;/PCA control registersbit CCF0=CCON0;/PCA module-0 interrupt flagsbit CCF1=CCON1;/PCA module-1 interrup
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 机器人 课程 总结报告
限制150内