欢迎来到淘文阁 - 分享文档赚钱的网站! | 帮助中心 好文档才是您的得力助手!
淘文阁 - 分享文档赚钱的网站
全部分类
  • 研究报告>
  • 管理文献>
  • 标准材料>
  • 技术资料>
  • 教育专区>
  • 应用文书>
  • 生活休闲>
  • 考试试题>
  • pptx模板>
  • 工商注册>
  • 期刊短文>
  • 图片设计>
  • ImageVerifierCode 换一换

    机器人课程结课总结报告.docx

    • 资源ID:35156653       资源大小:472.43KB        全文页数:30页
    • 资源格式: DOCX        下载积分:20金币
    快捷下载 游客一键下载
    会员登录下载
    微信登录下载
    三方登录下载: 微信开放平台登录   QQ登录  
    二维码
    微信扫一扫登录
    下载资源需要20金币
    邮箱/手机:
    温馨提示:
    快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。
    如填写123,账号就是123,密码也是123。
    支付方式: 支付宝    微信支付   
    验证码:   换一换

     
    账号:
    密码:
    验证码:   换一换
      忘记密码?
        
    友情提示
    2、PDF文件下载后,可能会被浏览器默认打开,此种情况可以点击浏览器菜单,保存网页到桌面,就可以正常下载了。
    3、本站不支持迅雷下载,请使用电脑自带的IE浏览器,或者360浏览器、谷歌浏览器下载即可。
    4、本站资源下载后的文档和图纸-无水印,预览文档经过压缩,下载后原文更清晰。
    5、试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。

    机器人课程结课总结报告.docx

    课程结课总结报告课程名称: 机器人的制作 实验一 基于arduino控制器的轮式机器人循迹避障功能设计实验二 应变式传感器电子秤实验实验三 基于C51单片机控制器的轮式机器人电机控制系统实验四 基于ARM控制器的博创平台轮式机器人循迹避障功能实现实验五 摄像头实现轮式机器人循迹功能的应用实验六 应用卓越联盟实验室设备进行设计和实现作品说明 指导教师 许晓飞 系 别 机电工程学院 专 业 机械电子工程 学生姓名 邓银涛 班级/学号 机电1401/2014010339 成 绩 实验一 基于ardunio控制器的轮式机器人循迹避障功能设计实验目的1.了解ardunio平台,并熟练使用此软件完成小车的各种活动2.了解HC-SR04超声波测距模块的原理,并且熟练使用此模块作为小车的传感器进行工作3.了解并且熟悉红外线传感器循迹原理实验器材:Adrunio软件,超声波传感器,红外线传感器,导线,底板,电机,电池,单片机等实验内容:1.将硬件组装成小车,即轮式机器人2.利用ardunio使小车完成循迹功能步骤:(1)写好后缀为.txt的c语言循迹文件 (2)将文件导入单片机中 (3)根据具体路况,运行并且进行调试红外线传感器的灵敏程度3.利用ardunio使小车完成避障功能步骤:(1)写好后缀为.txt的c语言避障文件 (2)将文件导入单片机中 (3)运行并且进行调试小车躲避障碍物的距离实验程序1.循迹程序:小车循迹程序思路图#include <Servo.h> 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; /右循迹红外传感器状态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, 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_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_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); /右电机后退 digitalWrite(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 ) ; / pwm pinMode ( trigpin , OUTPUT ) ; void loop ( )/版子重复执行动作的区块 int currDist ; long randnumber ; currDist = MeasureDistance ( ) ; / 读取前端距离 delay ( 5 ) ; if ( currDist > 10 ) straight( ); if ( currDist <= 10 ) randomSeed ( analogRead ( 0 ) ) ; randnumber = random ( 0 ,10 ) ; if ( randnumber > 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 distance = pulseIn ( echopin , HIGH ) ; distance = distance / 58.0 ; / 计算距离 344 * 100 / 1000000 * pulseIn ( ) / 2 delay ( 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 ( 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) ; analogWrite ( R1 , 0 ) ; / 255 0 zhengzhuan analogWrite ( R2 , 100 ) ; 实验过程中遇到的问题及解决办法循迹中:1.电机速度差异控制:发现左右轮写入同一数值时,小车行进方向偏离直线,对左右两轮写入不同数值,多次测试,指导左右轮速度相等。2.电机驱动器给arduino供电出现问题,改用充电宝给arduino供电,直接从gnd和5v输出脚给电机驱动器供电 3.一个电机有两根信号输入线,一根控制正转,一根控制反转。两个轮子一起测转地眼晕,容易出错。避障中:1.超声装置避障距离的确定将HC-SR04超声波避障程序中数值改短,提高避障灵敏性2.硬件的安装:超声装置无法固定曾尝试过用胶带,废旧车轮等但不理想,并未得到很好的解决实验结果小车可以成功的进行循迹和避障实验二 电子秤实验一 单臂实验数据处理源码: 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(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.607%半桥实验源码: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)+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 200; 0 7.4 15.3 23.1 30.9 38.8 46.7 54.6 62.6 70.5 78.4 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)+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.393%非线性误差f=0.774%实验三 基于C51单片机控制器的轮式机器人电机控制系统实验目的了解PWM波控制电机的原理。基于C51单片机利用PWM波控制电机。实验器材C51单片机、L298N驱动芯片、直流电机、杜邦线、普通导线、keil软件、STC下载器、示波器实验内容用keil新建一个“.c”文件,编写程序并对程序进行调试。将程序烧录进单片机内。进行硬件连接C51引脚如图所示:L298N引脚如图所示:用单片通过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 11059200Ltypedef unsigned char BYTE;typedef unsigned int WORD;void delay_ms(int x);/*Declare SFR associated with the PCA */sfr CCON = 0xD8; /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 = 0xD9; /PCA mode registersfr CL = 0xE9; /PCA base timer LOWsfr CH = 0xF9; /PCA base timer HIGHsfr CCAPM0 = 0xDA; /PCA module-0 mode registersfr CCAP0L = 0xEA; /PCA module-0 capture register LOWsfr CCAP0H = 0xFA; /PCA module-0 capture register HIGHsfr CCAPM1 = 0xDB; /PCA module-1 mode registersfr CCAP1L = 0xEB; /PCA module-1 capture register LOWsfr CCAP1H = 0xFB; /PCA module-1 capture register HIGHsfr PCAPWM0 = 0xf2;sfr PCAPWM1 = 0xf3;sbit IN1=P10; sbit IN2 = P11;sbit IN3=P15; sbit IN4 = P16;void main() CCON = 0; /Initial PCA control re CL = 0; /Reset PCA base timer CH = 0; CMOD = 0x02; /Set PCA timer clock source as Fosc/2CR = 1; /PCA timer start 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 wave CCAPM0 = 0x42; /PCA module-0 work in 8-bit PWM mode and no PCA interruptCCAP1H = CCAP1L = i;CCAPM1 = 0x42; delay_ms(100);for(i=0;i<=100;i+)CCAP0H = CCAP0L =i; /PWM0 port output 50% duty cycle square wave CCAPM0 = 0x42; /PCA module-0 work in 8-bit PWM mode and no PCA interruptCCAP1H = CCAP1L = i;CCAPM1 = 0x42; delay_ms(100);IN1=1; IN2=0;IN3=1; IN4=0;for(i=100;i>=0;i-)CCAP0H = CCAP0L =i; /PWM0 port output 50% duty cycle square wave CCAPM0 = 0x42; /PCA module-0 work in 8-bit PWM mode and no PCA interruptCCAP1H = CCAP1L = i;CCAPM1 = 0x42; delay_ms(100);for(i=0;i<=100;i+)CCAP0H = CCAP0L =i; /PWM0 port output 50% duty cycle square wave CCAPM0 = 0x42; /PCA module-0 work in 8-bit PWM mode and no PCA interruptCCAP1H = CCAP1L = i;CCAPM1 = 0x42; delay_ms(100);void delay_ms(int x)int y;for(;x>0;x-) for(y=0;y<1000;y+);控制方向#include "reg51.h"#include "intrins.h"#define FOSC 11059200Ltypedef unsigned char BYTE;typedef unsigned int WORD;sbit IN1 = P10;sbit IN2 = P11;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 = 0xD8; /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 = 0xD9; /PCA mode registersfr CL = 0xE9; /PCA base timer LOWsfr CH = 0xF9; /PCA base timer HIGHsfr CCAPM0 = 0xDA; /PCA module-0 mode registersfr CCAP0L = 0xEA; /PCA module-0 capture register LOWsfr CCAP0H = 0xFA; /PCA module-0 capture register HIGHsfr CCAPM1 = 0xDB; /PCA module-1 mode registersfr CCAP1L = 0xEB; /PCA module-1 capture register LOWsfr CCAP1H = 0xFB; /PCA module-1 capture register HIGHsfr PCAPWM0 = 0xf2;sfr PCAPWM1 = 0xf3;void main() CCON = 0; /Initial PCA control register CL = 0; /Reset PCA base timer CH = 0; CMOD = 0x02; /Set PCA timer clock source as Fosc/2 CCAP0H = CCAP0L = 0x80; /PWM0 port output 50% duty cycle square wave CCAPM0 = 0x42; /PCA module-0 work in 8-bit PWM mode and no PCA interrupt CCAP1H = CCAP1L = 0xff; /PWM1 port output 0% duty cycle square wave PCAPWM1 = 0x03; CCAPM1 = 0x42; /PCA module-1 work in 8-bit PWM mode and no PCA interrupt CR = 1; /PCA timer start run while (1);五、实验心得本次实验中我学会用软件来延时实现PWM的输出,从而实现对电机的控制。实验四 基于ARM控制的博创平台轮式机器人循迹蔽障功能实验目的了解NorthStar平台,并熟练使用此软件完成小车的各种活动了解RobotServoTerminal机器人舵机调试系统并掌握使用了解并且熟悉灰度传感器循迹原理实验材料ARM控制器 灰度传感器 红外探测器 舵机电机等实验内容小车硬件的组装 蔽障功能的实现循迹功能的实现循迹功能的实现NorthStar循迹程序#include "Apps/SystemTask.h"uint8 SERVO_MAPPING4 = 1,2,3,4;int main() int lgray = 0; int rgray = 0; MFInit(); MFInitServoMapping(&SERVO_MAPPING0,4); MFSetPortDirect(0x00000FF8); MFSetServoMode(1,1); MFSetServoMode(2,1); MFSetServoMode(3,1); MFSetServoMode(4,1); while (1) lgray = MFGetAD(0); rgray = MFGetAD(1); /右偏 if (lgray<=460)&&(rgray>=350) /左转 MFSetServoRotaSpd(1,-512); MFSetServoRotaSpd(2,-512); MFSetServoRotaSpd(3,-512); MFSetServoRotaSpd(4,-512); MFServoAction(); DelayMS(400); else /左偏 if (lgray>=460)&&(rgray<=350) /右转 MFSetServoRotaSpd(1,512); MFSetServoRotaSpd(2,512); MFSetServoRotaSpd(3,512); MFSetServoRotaSpd(4,512); MFServoAction(); DelayMS(400); else /meipian if (lgray>=460)&&(rgray>=350) MFSetServoRotaSpd(1,-512); MFSetServoRotaSpd(2,512); MFSetServoRotaSpd(3,-512); MFSetServoRotaSpd(4,512); MFServoAction(); DelayMS(400); else MFSetServoRotaSpd(1,0); MFSetServoRotaSpd(2,0); MFSetServoRotaSpd(3,0); MFSetServoRotaSpd(4,0); MFServoAction(); DelayMS(100);蔽障功能的实现程序 #include "Apps/SystemTask.h"uint8 SERVO_MAPPING5 = 1,2,3,4,5;int main() int io0 = 0; int io1 = 0; MFInit(); MFInitServoMapping(&SERVO_MAPPING0,5); MFSetPortDirect(0x00000FFC); MFSetServoMode(1,1); MFSetServoMode(2,1); MFSetServoMode(3,1); MFSetServoMode(4,1); MFSetServoMode(5,0); while (1) io0 = MFGetDigiInput(0); io1 = MFGetDigiInput(1); if (io0=1)&&(io1=1) MFSetServoRotaSpd(1,1023); MFSetServoRotaSpd(2,-1023); MFSetServoRotaSpd(3,1023); MFSetServoRotaSpd(4,-1023); MFSetServoPos(5,512,512); MFServoAction(); DelayMS(500

    注意事项

    本文(机器人课程结课总结报告.docx)为本站会员(叶***)主动上传,淘文阁 - 分享文档赚钱的网站仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知淘文阁 - 分享文档赚钱的网站(点击联系客服),我们立即给予删除!

    温馨提示:如果因为网速或其他原因下载失败请重新下载,重复下载不扣分。




    关于淘文阁 - 版权申诉 - 用户使用规则 - 积分规则 - 联系我们

    本站为文档C TO C交易模式,本站只提供存储空间、用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。本站仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知淘文阁网,我们立即给予删除!客服QQ:136780468 微信:18945177775 电话:18904686070

    工信部备案号:黑ICP备15003705号 © 2020-2023 www.taowenge.com 淘文阁 

    收起
    展开