机器人课程结课总结报告.docx
《机器人课程结课总结报告.docx》由会员分享,可在线阅读,更多相关《机器人课程结课总结报告.docx(30页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
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; /左循迹红外传感器状态in
4、t SR; /右循迹红外传感器状态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); /定义右循迹红
5、外传感器为输入 pinMode(SensorLeft, 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
6、_motor_back,LOW); analogWrite(Left_motor_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_
7、motor_back,0);/PWM比例0255调速 digitalWrite(Left_motor_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); /右电机后退 digit
8、alWrite(Right_motor_back,LOW); analogWrite(Right_motor_go,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 ) ;
9、 / pwm pinMode ( trigpin , OUTPUT ) ; void loop ( )/版子重复执行动作的区块 int currDist ; long randnumber ; currDist = MeasureDistance ( ) ; / 读取前端距离 delay ( 5 ) ; if ( currDist 10 ) straight( ); if ( currDist 5 ) back ( ); delay ( 1000 ); turnright ( ); delay ( 800 ); else back ( ) ; delay ( 1000 ) ; turnleft
10、 ( ) ; delay ( 800 ) ;int MeasureDistance ( ) digitalWrite ( trigpin , LOW ) ; delay ( 2 ) ; digitalWrite ( trigpin , HIGH ) ; delay ( 10 ) ; digitalWrite ( trigpin , LOW ) ; int distance = pulseIn ( echopin , HIGH ) ; distance = distance / 58.0 ; / 计算距离 344 * 100 / 1000000 * pulseIn ( ) / 2 delay (
11、 60 ) ; / 循环间隔60uS return ( distance ) ; void straight ( ) analogWrite ( L1 ,100 ) ; / 255 0 zhengzhuan analogWrite ( L2 ,0 ) ; analogWrite ( R1 , 100 ) ; / 255 0 zhengzhuan analogWrite ( R2 , 0 ) ;void turnright ( ) analogWrite ( L1 ,100 ) ; / 255 0 zhengzhuan analogWrite ( L2 ,0 ) ; analogWrite (
12、R1 ,0 ) ; / 255 0 zhengzhuan analogWrite ( R2 ,0 ) ; void turnleft ( ) analogWrite ( L1 , 0 ) ; / 255 0 zhengzhuan analogWrite ( L2 , 0 ) ; analogWrite ( R1 , 100 ) ; / 255 0 zhengzhuan analogWrite ( R2 , 0 ) ; void back() analogWrite ( L1 , 0 ) ; / 255 0 zhengzhuan analogWrite ( L2 , 100) ; analogW
13、rite ( R1 , 0 ) ; / 255 0 zhengzhuan analogWrite ( R2 , 100 ) ; 实验过程中遇到的问题及解决办法循迹中:1.电机速度差异控制:发现左右轮写入同一数值时,小车行进方向偏离直线,对左右两轮写入不同数值,多次测试,指导左右轮速度相等。2.电机驱动器给arduino供电出现问题,改用充电宝给arduino供电,直接从gnd和5v输出脚给电机驱动器供电 3.一个电机有两根信号输入线,一根控制正转,一根控制反转。两个轮子一起测转地眼晕,容易出错。避障中:1.超声装置避障距离的确定将HC-SR04超声波避障程序中数值改短,提高避障灵敏性2.硬件的
14、安装:超声装置无法固定曾尝试过用胶带,废旧车轮等但不理想,并未得到很好的解决实验结果小车可以成功的进行循迹和避障实验二 电子秤实验一 单臂实验数据处理源码: 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.6 gridholdplot(coords(1,:),coords(2,:),*)x=coords(1,:) y=coords(2,:) b=size(coords)c=ones(1,b(2) MT=c;x M=MT f=inv
15、(MT*M)*MT*y y=,num2str(f(2),x+,num2str(f(1) x=-max(x):max(x) y=f(1)+f(2)*x mistake=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.6
16、07%半桥实验源码:axis(0 200 0 50)coords=0 20 40 60 80 100 120 140 160 180 200;0 4.0 8.8 13.7 18.6 23.5 18.4 33.2 38.2 43.1 47.9 gridholdplot(coords(1,:),coords(2,:),*)x=coords(1,:) y=coords(2,:) b=size(coords)c=ones(1,b(2) MT=c;x M=MT f=inv(MT*M)*MT*y y=,num2str(f(2),x+,num2str(f(1) x=-max(x):max(x) y=f(1)
17、+f(2)*x mistake=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.238%非线性误差f=1.615%全桥实验源码:axis(0 200 0 100)coords=0 20 40 60 80 100 120 140 160 180
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 机器人 课程 总结报告
限制150内