机器人创新实验报告.docx

上传人:b****6 文档编号:13704377 上传时间:2023-06-16 格式:DOCX 页数:19 大小:2.48MB
下载 相关 举报
机器人创新实验报告.docx_第1页
第1页 / 共19页
机器人创新实验报告.docx_第2页
第2页 / 共19页
机器人创新实验报告.docx_第3页
第3页 / 共19页
机器人创新实验报告.docx_第4页
第4页 / 共19页
机器人创新实验报告.docx_第5页
第5页 / 共19页
机器人创新实验报告.docx_第6页
第6页 / 共19页
机器人创新实验报告.docx_第7页
第7页 / 共19页
机器人创新实验报告.docx_第8页
第8页 / 共19页
机器人创新实验报告.docx_第9页
第9页 / 共19页
机器人创新实验报告.docx_第10页
第10页 / 共19页
机器人创新实验报告.docx_第11页
第11页 / 共19页
机器人创新实验报告.docx_第12页
第12页 / 共19页
机器人创新实验报告.docx_第13页
第13页 / 共19页
机器人创新实验报告.docx_第14页
第14页 / 共19页
机器人创新实验报告.docx_第15页
第15页 / 共19页
机器人创新实验报告.docx_第16页
第16页 / 共19页
机器人创新实验报告.docx_第17页
第17页 / 共19页
机器人创新实验报告.docx_第18页
第18页 / 共19页
机器人创新实验报告.docx_第19页
第19页 / 共19页
亲,该文档总共19页,全部预览完了,如果喜欢就下载吧!
下载资源
资源描述

机器人创新实验报告.docx

《机器人创新实验报告.docx》由会员分享,可在线阅读,更多相关《机器人创新实验报告.docx(19页珍藏版)》请在冰点文库上搜索。

机器人创新实验报告.docx

机器人创新实验报告

实验报告

(理工类)

课程名称:

机器人创新实验

课程代码:

6003199

学院(直属系):

机械工程学院

年级/专业/班:

学生姓名:

学号:

实验总成绩:

任课教师:

开课学院:

机械工程学院

实验中心名称:

机械工程基础实验中心

 

一、设计题目:

基于Arduino的手机遥控蓝牙小车

二、成员分工:

(5分)

三、设计方案:

(整个系统工作原理和设计)(20分)

蓝牙小车的工作原理;

蓝牙小车分为4个模块:

电源模块,电机驱动模块,控制模块,超声避障模块,蓝牙模块。

其中超声避障模块在小车遇到障碍时,把信号传给控制模块,控制模块对信号进行分析,作出响应,并发送给电机模块。

电机模块控制电机转速及转向。

蓝牙模块接受手机发送的信号,再把信号传送至控制模块,控制模块对信号分析计算,作出响应,并发送给电机模块。

电机模块控制电机转速及转向。

电源模块为其他模块供电。

蓝牙小车的工作方案如下:

 

四、实验步骤:

(图文说明设计过程中关键步骤)(30分)

1.设计制作小车底板

2.搭建小车

3.接入超声模块并测试避障

4.接入蓝牙模块并与手机连接进行测试

5.加入LED灯并编写程序,调试小车

 

五、最终作品展示:

(图片及性能描述)(20分)

通过手机发出信号,小车能准确完成动作,在遇障时能停下并作出回避。

美中不足的是没有加入调速程序,小车不能在行驶时加速减速,而且蓝牙控制的距离有限。

 

六、设计心得:

(10分)

通过这门课,了解了Arduino是什么,能做什么。

对于没有编程基础的我来说,利用Arduino能很容易的实现自己的想法和设计。

而且Arduino可以连接不同的模块来实现不同的功能。

将蓝牙和超声模块换为巡线模块后,修改程序,就能把蓝牙小车变为巡线小车了。

很方便快捷。

通过这门课,也了解了很多关于编程的知识。

能过利用Arduino来实现自己的一些简单设计。

----------

通过这次机器人的课程,培养了我们实际动手能力和思考能力,作为女生之前没有特别的关注过类似的这个方面,但这次因为课程的原因接触了以后,发现并没有想象中的那么枯燥,并且学会了很多新的知识,同时和同组的同学互相合作,增进了同学之间的感情和协作能力。

我还是希望学校能多开一些这样的课程,让我们自己动手,在动手中收获知识培养实践能力培养兴趣。

而且在低年级的时候我觉得开这个课会效果更好。

---------

本学期开设了机器人创新实验课程,旨在增加学生对微电子领域的认识,增加同学们对微电子的兴趣。

通过最近几周的学习与调试小车,我的心得体会如下:

由于团队分工我的任务是小车的支撑板设计,其中我知道了小车的支撑板要考虑集成板的大小,并且要控制小车的重量。

通过与同学一起调试小车,我知道了Arduino的一部分功能,我对程序与实际的联系的认识有了增加,这让对电子程序没有兴趣的我来说无疑是最大的提升与学习过程。

 

七、对本课程建议或意见:

(选作题)

1.课程时间太短了,如果时间长一点,学到的东西会更多。

2.建议把这门课开在大一。

 

附录:

(设计文件、工程图、代码等)(15分)

超声测试代码:

#include

intinputPin=A1;//定义超声波Trig

intoutputPin=A2;//定义超声波Echo

AF_DCMotormotor1(1,MOTOR12_64KHZ);//创建电机#1号,速度是64KHzpwm

AF_DCMotormotor2(2,MOTOR12_64KHZ);//创建电机#2号,速度是64KHzpwm

voidsetup()

{

Serial.begin(9600);

pinMode(inputPin,INPUT);

pinMode(outputPin,OUTPUT);

motor1.setSpeed(100);//设置电机速度,从200/255之间任意(我这俩电机速度不一样,所以我就这样设置)

motor2.setSpeed(100);//设置电机速度,从200/255之间任意(大家可以按照自己的电机转速来调节一样的速度就可以了)

Serial.println("Motortest!

");

}

voidloop()

{

digitalWrite(outputPin,LOW);//使发出发出超声波信号接口低电平2μs

delayMicroseconds

(2);

digitalWrite(outputPin,HIGH);//使发出发出超声波信号接口高电平10μs,这里是至少10μs

delayMicroseconds(10);

digitalWrite(outputPin,LOW);//保持发出超声波信号接口低电平

intdistance=pulseIn(inputPin,HIGH);//读出脉冲时间

distance=distance/58;//将脉冲时间转化为距离(单位:

厘米)

Serial.println(distance);//输出距离值

delay(50);

if(distance<6)

{

motor1.run(FORWARD);//电机前进

motor2.run(FORWARD);//电机前进

}

if(distance>20)

{

motor1.run(BACKWARD);//电机后退

motor2.run(BACKWARD);//电机后退

delay(500);

}

}

 

蓝牙测试代码:

#include

AF_DCMotormotor1(1,MOTOR12_64KHZ);//创建电机#1号,速度是64KHzpwm

AF_DCMotormotor2(2,MOTOR12_64KHZ);//创建电机#2号,速度是64KHzpwm

voidsetup()

{

Serial.begin(9600);

motor1.setSpeed(200);//设置电机速度,从200/255之间任意(我这俩电机速度不一样,所以我就这样设置)

motor2.setSpeed(200);//设置电机速度,从200/255之间任意(大家可以按照自己的电机转速来调节一样的速度就可以了)

}

voidloop()

{

while(Serial.available())

{

charc=Serial.read();

if(c=='g')

{

Serial.println("goforward!

");

motor1.run(FORWARD);

motor2.run(FORWARD);

}

if(c=='s')

{

motor1.run(RELEASE);

motor2.run(RELEASE);

}

if(c=='b')

{

motor1.run(BACKWARD);

motor2.run(BACKWARD);

}

}

}

最终代码:

#include

intled1=A4;

intled2=A5;

AF_DCMotormotor1(1,MOTOR12_64KHZ);//创建电机#1号,速度是64KHzpwm

AF_DCMotormotor2(2,MOTOR12_64KHZ);//创建电机#2号,速度是64KHzpwm

constintTrigPin=A1;

constintEchoPin=A2;

floatdistance;

voidsetup()

{

pinMode(led1,OUTPUT);

pinMode(led2,OUTPUT);

Serial.begin(9600);

pinMode(TrigPin,OUTPUT);

//要检测引脚上输入的脉冲宽度,需要先设置为输入状态

pinMode(EchoPin,INPUT);

motor1.setSpeed(200);//设置电机速度,从200/255之间任意(我这俩电机速度不一样,所以我就这样设置)

motor2.setSpeed(200);//设置电机速度,从200/255之间任意(大家可以按照自己的电机转速来调节一样的速度就可以了)

}

voidloop()

{

digitalWrite(TrigPin,LOW);

delayMicroseconds

(2);

digitalWrite(TrigPin,HIGH);

delayMicroseconds(100);

digitalWrite(TrigPin,LOW);

//检测脉冲宽度,并计算出距离

distance=pulseIn(EchoPin,HIGH,3000)/58.00;

Serial.print(distance);

Serial.print("cm");

Serial.println();

delay(100);

if(distance<30&&distance>1)

{

digitalWrite(led1,LOW);

digitalWrite(led2,LOW);

motor1.run(BACKWARD);//电机后退

motor2.run(BACKWARD);//电机后退

delay(1000);

motor1.run(RELEASE);//电机停止

motor2.run(RELEASE);//电机停止

}

if(distance<20)

{

digitalWrite(led1,HIGH);

digitalWrite(led2,LOW);

motor1.run(BACKWARD);

motor2.run(BACKWARD);

delay(500);

digitalWrite(led1,LOW);

digitalWrite(led2,LOW);

motor1.run(RELEASE);//电机停止

motor2.run(RELEASE);//电机停止

}

else

{

while(Serial.available())

{

charc=Serial.read();

if(c=='g')

{

digitalWrite(led1,HIGH);

digitalWrite(led2,HIGH);

Serial.println("goforward!

");

motor1.run(FORWARD);

motor2.run(FORWARD);

motor1.setSpeed(200);

motor2.setSpeed(220);

}

if(c=='s')

{

digitalWrite(led1,LOW);

digitalWrite(led2,LOW);

motor1.run(RELEASE);

motor2.run(RELEASE);

}

if(c=='b')

{

digitalWrite(led1,HIGH);

digitalWrite(led2,LOW);

motor1.run(BACKWARD);

motor2.run(BACKWARD);

}

if(c=='t')

{

digitalWrite(led1,HIGH);

digitalWrite(led2,LOW);

delay(100);

digitalWrite(led1,LOW);

digitalWrite(led2,HIGH);

delay(900);

digitalWrite(led1,HIGH);

digitalWrite(led2,HIGH);

motor1.run(FORWARD);

motor2.run(FORWARD);

motor1.setSpeed(50);

motor2.setSpeed(200);

delay(1000);

motor1.run(FORWARD);

motor2.run(FORWARD);

motor1.setSpeed(200);

motor2.setSpeed(200);

}

if(c=='q')

{

digitalWrite(led1,HIGH);

digitalWrite(led2,LOW);

delay(50);

digitalWrite(led1,LOW);

digitalWrite(led2,HIGH);

delay(100);

digitalWrite(led1,LOW);

digitalWrite(led2,LOW);

motor1.run(RELEASE);

motor2.run(FORWARD);

motor2.setSpeed(200);

delay(150);

motor1.run(FORWARD);

motor2.run(FORWARD);

motor1.setSpeed(200);

motor2.setSpeed(200);

}

if(c=='p')

{

digitalWrite(led1,HIGH);

digitalWrite(led2,LOW);

delay(100);

digitalWrite(led1,LOW);

digitalWrite(led2,LOW);

delay(100);

digitalWrite(led1,LOW);

digitalWrite(led2,HIGH);

motor1.run(FORWARD);

motor2.run(FORWARD);

motor1.setSpeed(200);

motor2.setSpeed(50);

delay(200);

motor1.setSpeed(200);

motor2.setSpeed(200);

}

if(c=='r')

{

digitalWrite(led1,HIGH);

digitalWrite(led2,LOW);

delay(50);

digitalWrite(led1,LOW);

digitalWrite(led2,LOW);

delay(100);

digitalWrite(led1,HIGH);

digitalWrite(led2,LOW);

motor1.run(FORWARD);

motor2.run(FORWARD);

motor1.setSpeed(150);

motor2.setSpeed(50);

delay(750);

motor1.setSpeed(200);

motor2.setSpeed(200);

}

if(c=='l')

{

digitalWrite(led1,HIGH);

digitalWrite(led2,LOW);

delay(100);

digitalWrite(led1,LOW);

digitalWrite(led2,LOW);

delay(100);

digitalWrite(led1,HIGH);

digitalWrite(led2,HIGH);

motor1.run(FORWARD);

motor2.run(FORWARD);

motor1.setSpeed(50);

motor2.setSpeed(150);

delay(700);

motor1.run(FORWARD);

motor2.run(FORWARD);

motor1.setSpeed(200);

motor2.setSpeed(200);

}

}

}

}

 

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

当前位置:首页 > 经管营销 > 经济市场

copyright@ 2008-2023 冰点文库 网站版权所有

经营许可证编号:鄂ICP备19020893号-2