机器人创新实验智能巡线小车报告.docx

上传人:b****6 文档编号:9004320 上传时间:2023-02-02 格式:DOCX 页数:18 大小:130.93KB
下载 相关 举报
机器人创新实验智能巡线小车报告.docx_第1页
第1页 / 共18页
机器人创新实验智能巡线小车报告.docx_第2页
第2页 / 共18页
机器人创新实验智能巡线小车报告.docx_第3页
第3页 / 共18页
机器人创新实验智能巡线小车报告.docx_第4页
第4页 / 共18页
机器人创新实验智能巡线小车报告.docx_第5页
第5页 / 共18页
点击查看更多>>
下载资源
资源描述

机器人创新实验智能巡线小车报告.docx

《机器人创新实验智能巡线小车报告.docx》由会员分享,可在线阅读,更多相关《机器人创新实验智能巡线小车报告.docx(18页珍藏版)》请在冰豆网上搜索。

机器人创新实验智能巡线小车报告.docx

机器人创新实验智能巡线小车报告

实验报告

(理工类)

课程名称:

机器人创新实验

课程代码:

106003199

学生所在学院:

机械工程学院

年级/专业/班:

2014级机电一班

学生姓名:

学号:

实验总成绩:

任课教师:

韦兴平

开课学院:

机械工程学院

实验中心名称:

机械工程基础实验中心

设计题目利用Arduino设计搭建智能巡线小车

姓名

学号

袁成

3120140106114

黄博

3120140106121

代博

3120140106107

龙历

3120140106126

查垚润

3120140106132

班级

任务分工

机电一班

原理分析

机电一班

组装与程序分析

机电一班

测试与程序编写

机电一班

程序导入与修正

机电一班

维护与报告撰写

小组成员分工

 

三实验内容(图文记录平时上课关键知识)

//延

1、小灯延时闪烁实验:

小灯延时一秒闪烁一次,指令:

delay(xx)。

应用举例:

delay(500);

mi1

vo3d■普1:

op(1(

11iiNo1-■'UTPUT>;

迟500mso

wa3dl1Of

//putyi"■•丄軌右鬲也■hivr*

1.rlt心刑atlCL.dFlSkHIGJO;

1-nv.-11000];

Iri*■Lirit-QtjFiiikLXN.

才*J-i'^llOOO3:

1

2、呼吸灯实验:

使小灯忽明忽暗,延时300mso

voldK#tup()(firileda(11,OUTPUT

void1aop(){

fr(rntb,=O-*

uii.al»c#rit«(lip«);

I■-1fS):

I

'■':

'Isntb-SSS;*^^0;IT一)

Ui.7]】"「(10.■):

I

d«lay<8);

}

;v/(3OC»;

3、串口通信监视实验:

(1•按实验一的步骤把开发板连到PC机上;

(2•采用杜邦线把红外探头VCC和GND分别连接到开发板的5V和地,OUT端连到开发板的任意一个模拟量输入端口;

(3•设置对应的模拟量输入端口为输入模式;

(4.读取模拟量端口的值;

(5.打开串口并设置波特率;

(6.打开串口监视器,拿一物体遮挡在红外探头前方并移动,观察串口监视器中读取的模拟量

值是否变化;

(7.观察串口监视器界面的运行结果,如不符合预期设计要求,则重复修改及下载程序,直到符合要求为止。

指令:

Serial.begin(xx)。

打开串口并设置通信波特率。

应用举例:

Serial.begin(9600);〃打开串

口并设置通信波特率为9600。

指令:

Serial.println(val)。

在串口监视器中显示变量val的值。

应用举例:

Serial.println(val);//在串口监视器中显示变量val的值。

壬|Arduno1Cfl

243

上钳陽加

全局变量使用了店2字节.(0«)的动态内存,余留1,储6字节局部变*量大为氏0翱字节

4、红外线对管实验:

前端红外探头输出是模拟电压,中控板通过电压比较器LM339模拟电压转化为高电平或

者低电平两种结果,便于程序进行判断。

以第一路红外探头来说明它的工作原理,IN1-为可调电阻调节的电压输入端,IN+为探头输出的电压,当IN1-大于IN+电压时,对应的OUT1输出电压接近0V,此时,第一路的LED灯亮;当IN1-小于IN+电压时,对应的OUT1输出电压接近5V,第一路的LED灯灭。

调节可调电阻旋钮,可以改变IN-参考电压值。

指令:

pinMode(pin,mode)。

将一个引脚配置成输入或者输出模式。

应用举例:

pinMode(7,INPUT);//将引脚7定义为输入接口;pinMode(5,OUTPUT);//将引脚7定义为输出接口。

指令:

intanalogRead(pin)。

读取模拟输入引脚的值,并将其表示为0至1023之间的数值,对应0至5V的电压。

应用举例:

val=analogRead(O);//读取模拟接口0的值,并赋值给val。

Arduino1-6-0

lhti:

IllUV

voidsetup0{

1020

pinModoUTPITT);

23

Sei-itd.Lef,Ln{9600);

23

}

1020

vuidIxp0”

1020

d=anal:

迪电ad(AO.);

1020

Serial,prinlln(d);

1020

dela/UOO);

1020

J1

1020

23

23

23

1020

10M

1Q2G

4

—自动灑廃

全局变重使用了1酣手节,的动态内存,金留1剧2字节眉部变里。

最丸为&(HS宇节o

1

COM3

@31

*文件謂Sketch工具帮助

上传豳加

E11x25

4最终作品设计方案(图文说明设计作品原理)(20分)

1、小车循迹原理

巡线小车红巡线原理采用了红外线探测法,即利用红外线在不同颜色的物体表面具有不同的反射性质的特点,在小车行驶过程中不断地向地面发射红外光,当红外光遇到白色纸质地板

时发生漫反射,反射光被装在小车上的接收管接收;如果遇到黑线则红外光被吸收,小车上的接收管接收不到红外光。

单片机就是否收到反射回来的红外光为依据来确定黑线的位置和小

车的行走路线。

红外探测器探测距离有限,一般最大不应超过3cm2、设计要求

(1)自动寻迹小车从安全区域启动。

(2)小车按指定路线运行,自动区分直线轨道和弯路轨道,在指定弯路处拐弯,实现灵活前进、转弯、倒退等功能,在轨道上划出设定的地图。

(3)小车完成指定运行任务后,停止在终点位置上。

3、主体设计我们制定了左右两边分别用一个电机驱动的方案,即左边和右边的轮子分别用一个转速和力矩基本完全相同的直流减速电机进行驱动。

当小车需要直线前进时,两个电动机同时正转,实现直线前进。

当小车左边传感器检测到黑线时即需要左转时,此时左轮反转,右轮正转,实现一个差速,达到向左转向的目的。

当小车右边传感器检测到黑线时,即小车需要右转,即右边车轮反转,左边车轮正转,达到向右转向的目的。

5最终作品设计步骤(图文说明设计作品实现过程)

1、确定小车主要各零部件:

底盘1片

车轮2个测速码盘2个减速直流电机2个4节5号电池盒1只(并排)

万向轮1只船型开关1只

紧固件4片螺丝、螺母、铜柱、杜邦线若干四路红外循迹/循迹模块1个电机驱动扩展板L293D1个

UNOR3开发板1个

HC-SR04超声波模块1个

2、确定各部件位置,根据拟定方案组装小车:

(1、先把小车底板、紧固件、码盘的黄色保护纸撕掉,然后把紧固件插入小车底板。

(2、安装码盘,并把电机固定于底板。

码盘轴心一面大一面小,大的一面往电机轴插注意:

电机引线铜片朝向内侧,即码盘一侧。

(3、插入螺丝,把电机固定到小车底板,并拧上螺帽。

(4、插入螺丝,固定电池盒。

(5、放入铜柱,拧入螺丝固定万向轮,手捏入电机并往里面插入轮子。

(6用锡丝焊接排针,组合UNOR3开发板和电机驱动扩展板L293D。

(7、用杜邦线连接四路红外循迹/循迹模块与电机驱动扩展板L293D,并把两个红外感应安装在小车前端各左右两侧。

(8、用锡丝和杜邦线,焊接船型开关与4节5号电池盒,焊接两个电机与电机驱动扩展板L293D。

(9、编程进行调试检查,观察小车电机,红外感应,开发板及扩展板是否正常工作。

(10、若有零件或连线松动,重新组装或焊接。

(11、检查一切无误,则组装完成,可进行下一步实验。

6最终作品展示(图片及性能描述)红外感应障碍实验:

小车在桌子上正常行驶,当到达桌子边缘,因为红外探测器探测距离有限,不超过3cm,小车前端的红外线感应接收不到红外光时,小车左轮右轮反转,后退行驶。

一李

IJIJ

A7退

矩形循迹实验:

驱动电机使小车在地面直线行驶,延时一段时间,左轮反转,右轮正转,程序循环而形成一个矩形循迹行驶。

[1

OJ0Q

!

=>

Io1

最终循迹实验:

小车从A点出发,经过黑线轨迹到达B点。

小车直线前进时,两个电动机同时正转,实现

直线前进。

当小车左边传感器检测到黑线时,即小车需要左转时,此时左轮反转,右轮正转,实现一个差速,达到向左转向的目的。

当小车右边传感器检测到黑线时,即小车需要右转时,此时右边车轮反转,左边车轮正转,达到向右转向的目的。

当两个传感器都检测到黑线时,停止前进。

7设计心得(选作题)

通过本次实验,利用Arduino设计搭建智能巡线小车加深了我们对巡线小车的了解,更进一步的掌握了各部件之间的功能特性,让我们在更多的实验当中灵活利用各个部件以实现结构更加复杂,功能更加强大的机构或机器。

在实验中要注意各个部件之间的连接是否稳定,是否能完成既定项目的要求。

经过这两周的实验,我们顺利的完成了我们的小车,我们非常的高兴,虽然整个过程中,我们遇到了不少的困难,在这次的设计中也得到了老师的指点,如果不是老师的细心指导我也不会这么顺利的做出来,特别是在调试的时候。

有一次我们在传感器的接收方式上不太了解,在我们问过老师后才了解传感器的接受方式。

小车在跑道上运行的时候发现小车不能在转弯处顺利的通过,经过我们的多次改变数据后,有时可以通过但有时又不能通过,始终不能理解到底是不是传感器灵敏度的问题,后来还是得到了老师的指点,帮我们调试好之后才解决了问题。

在这次的实训中我们懂得了团队合作的重要性,其实有很多事只靠自己是做不出来的,如果是一个团队就可以在优先的时间里做出更好的结果,而且我们可以取长补短使自己不断进步。

在课堂上我们学到的是理论知识,实验就是让我们把所学到的知识运用起来,解决实际问题,我们觉得非常好,如果我们只知道写一些小程序,当真让我们做一些东西时,你会发现还有实验的非常有用,对我们的许多小问题,并不是那么的简单,所以这次实验对我们的帮助很大,非常感谢老师和同学们的帮助。

8对本课程建议或意见(选作题)

学习这门课程,锻炼了同学们的动手能力、协作能力及解决问题的能力等。

在此,我们非常感谢韦老师的热情帮助和悉心指导,让我们增长了见识,学到了对机器人的许多相关知识。

通过对本课程的学习,我们非常满意,无任何意见。

对于今后的该类课程,我们有如下几点建议:

1.指导学生如何运用编程软件,加强编程能力。

2.改为半命题的开放性课题,让学生自由发挥,锻炼学生的创新能力。

3.给学生播放与实验相关的实验视频,加强学生对实验的了解,明白自己该怎么做。

4.让学生小组之间进行比赛,看最终的实验结果谁的最优,用笔或笔记本做奖品,调动学生的积极性,增强老师与同学,同学与同学之间的互动性。

附录(设计文件、工程图、代码等)

小灯闪烁程序:

intledPin=13;

voidsetup(){pinMode(ledPin,OUTPUT);

}

voidloop(){digitalWrite(ledPin,HIGH);delay(1000);digitalWrite(ledPin,LOW);

delay(1000);

}

呼吸灯程序:

voidsetup(){

pinMode(11,OUTPUT);}voidloop(){for(inta=0;a<=255;a++)

{

analogWrite(11,a);

delay(8);

}

{

for(inta=255;a>=0;a--)

{

analogWrite(11,a);

delay(8);

}

delay(300);

}

}

串口通信监视程序:

voidsetup(){pinMode(11,OUTPUT);

Serial.begin(9600);

}

voidloop(){for(inta=0;a<=255;a++)

{

analogWrite(11,a);

delay(8);

Serial.println(a);

}

{

for(inta=255;a>=0;a--)

{

analogWrite(11,a);

delay(8);

Serial.println(a);

}

delay(300);

}

}

红外线对管程序:

intd;

voidsetup(){

pinMode(A0,INPUT);

Serial.begin(9600);

}

voidloop(){

d=analogRead(A0);

Serial.println(d);

delay(100);

}

超声波测距程序:

intTrigPin=2;

intEchoPin=3;

floatdistance=0;

voidsetup(){

pinMode(TrigPin,OUTPUT);

Serial.begin(9600);

pinMode(EchoPin,INPUT);

//Serial.println("Ultrasonicsensor");

}

voidloop(){

digitalWrite(TrigPin,LOW);

delayMicroseconds

(2);

digitalWrite(TrigPin,HIGH);delayMicroseconds(10);

digitalWrite(TrigPin,LOW);

distance=pulseIn(EchoPin,HIGH)/58.00;

Serial.print(distance);

Serial.print("cm");

Serial.println();

delay(1000);

}

矩形循迹程序:

#include

AF_DCMotorM2(2,MOTOR12_1KHZ);

AF_DCMotorM3(3,MOTOR12_1KHZ);

inta,d;

voidsetup(){

pinMode(A0,INPUT);

pinMode(A1,INPUT);

//putyoursetupcodehere,torunonce:

}

voidloop(){

//putyourmaincodehere,torunrepeatedly:

a=analogRead(A0);

d=analogRead(A1);

M2.setSpeed(250);

M3.setSpeed(250);

if(a<=20&&d<=20)

{

M2.run(FORWARD);

M3.run(FORWARD);

}

else

{

M2.run(BACKWARD);

M3.run(BACKWARD);

delay(2000);

M2.run(FORWARD);

M3.run(RELEASE);

delay(800);

}

}

最终循迹程序:

#include

AF_DCMotorM2(2,MOTOR12_1KHZ);

AF_DCMotorM3(3,MOTOR12_1KHZ);inta,d;

voidsetup(){

pinMode(A0,INPUT);

pinMode(A1,INPUT);

//putyoursetupcodehere,torunonce:

}

voidloop(){

//putyourmaincodehere,torunrepeatedly:

a=analogRead(A0);

d=analogRead(A1);

M2.setSpeed(200);

M3.setSpeed(200);

if(a<300&&d<300)

{

M2.run(FORWARD);

M3.run(FORWARD);

}

elseif(a<300&&d>300)

{

M2.setSpeed(50);

M3.setSpeed(250);

M2.run(FORWARD);

M3.run(FORWARD);

}

elseif(a>300&&d<300)

{

M2.setSpeed(250);

M3.setSpeed(50);

M2.run(FORWARD);

M3.run(FORWARD);

}

else

{

M2.run(RELEASE);

M3.run(RELEASE);

}

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 高等教育 > 农学

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1