机器人创新实验报告

上传人:博****1 文档编号:471363656 上传时间:2022-09-11 格式:DOCX 页数:27 大小:608.21KB
返回 下载 相关 举报
机器人创新实验报告_第1页
第1页 / 共27页
机器人创新实验报告_第2页
第2页 / 共27页
机器人创新实验报告_第3页
第3页 / 共27页
机器人创新实验报告_第4页
第4页 / 共27页
机器人创新实验报告_第5页
第5页 / 共27页
点击查看更多>>
资源描述

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

1、年实验报告(理工类)f11hJ课程名称:机器人创新实验课程代码:6003199学院(直属系)机械工程学院年级/专业/班:学生姓名:学号:实验总成绩:任课教师:开课学院:机械工程学院实验中心名称: 机械工程基础实验中心一、设计题目:基于Arduino的手机遥控蓝牙小车二、成员分工:(5分)三、设计方案:(整个系统工作原理和设计)(20分)蓝牙小车的工作原理;蓝牙小车分为4个模块:电源模块,电机驱动模块,控制模块,超声避障模块,蓝牙模块。其中超声避障模块在小车遇到障碍时,把信号 传给控制模块,控制模块对信号进行分析,作出响应,并发送给电机 模块。电机模块控制电机转速及转向。蓝牙模块接受手机发送的信

2、号 再把信号传送至控制模块,控制模块对信号分析计算,作出响应,并 发送给电机模块。电机模块控制电机转速及转向。电源模块为其他模 块供电。蓝牙小车的工作方案如下:电机驱动模块四、实验步骤:(图文说明设计过程中关键步骤)(30分)1.设计制作小车底板2.搭建小车3.接入超声模块并测试避障4.接入蓝牙模块并与手机连接进行测试*氐号卸ill 59% g 1O:53前夭终端1 tru1 trunardt1 foward1 t1 foward金 1 .OK/S1 foward1 tr1 trunfowar15.加入LED灯并编写程序,调试小车五、最终作品展示:(图片及性能描述)(20分) Afi aj虚=

3、fr M4SJ& it通过手机发出信号,小车能准确完成动作,在遇障时能停下并作出回 避。美中不足的是没有加入调速程序,小车不能在行驶时加速减速, 而且蓝牙控制的距离有限。六、 设计心得:(10 分)通过这门课,了解了 Arduino 是什么,能做什么。对于没有编程基础 的我来说,利用 Arduino 能很容易的实现自己的想法和设计。而且 Arduino 可以连接不同的模块来实现不同的功能。将蓝牙和超声模块换 为巡线模块后,修改程序,就能把蓝牙小车变为巡线小车了。很方便 快捷。通过这门课,也了解了很多关于编程的知识。能过利用 Arduino 来实 现自己的一些简单设计。通过这次机器人的课程,培养

4、了我们实际动手能力和思考能力,作为 女生之前没有特别的关注过类似的这个方面,但这次因为课程的原因 接触了以后,发现并没有想象中的那么枯燥,并且学会了很多新的知 识,同时和同组的同学互相合作,增进了同学之间的感情和协作能力 我还是希望学校能多开一些这样的课程,让我们自己动手,在动手中 收获知识培养实践能力培养兴趣。而且在低年级的时候我觉得开这个 课会效果更好。本学期开设了机器人创新实验课程,旨在增加学生对微电子领域的认 识,增加同学们对微电子的兴趣。通过最近几周的学习与调试小车, 我的心得体会如下: 由于团队分工我的任务是小车的支撑板设计,其 中我知道了小车的支撑板要考虑集成板的大小,并且要控制

5、小车的重 量。通过与同学一起调试小车,我知道了 Arduino 的一部分功能,我 对程序与实际的联系的认识有了增加,这让对电子程序没有兴趣的我 来说无疑是最大的提升与学习过程。七、 对本课程建议或意见:(选作题)1.课程时间太短了,如果时间长一点,学到的东西会更多2.建议把这门课开在大一。附录:(设计文件、工程图、代码等)(15分) 超声测试代码:#include int inputPin二A1;/ 定义超声波 Trigint outputPin二A2; / 定义超声波 EchoAF_DCMotor motor1(1, MOTOR12_64KHZ);/ 创建电机# 1 号,速度是 64KHz

6、pwmAF_DCMotor motor2(2, MOTOR12_64KHZ);/ 创建电机#2 号,速度是 64KHz pwmvoid setup()Serial.begin(9600);pinMode(inputPin, INPUT);pinMode(outputPin, OUTPUT);motor1.setSpeed(100);/ 设置电机速度,从200/255之间任意(我 这俩电机速度不一样,所以我就这样设置)motor2.setSpeed(100);/ 设置电机速度,从200/255之间任意(大 家可以按照自己的电机转速来调节一样的速度就可以了)Serial.println(Motor

7、 test!);void loop()digitalWrite(outputPin, LOW); / 使发出发出超声波信号接口 低电平2 n sdelayMicroseconds(2);digitalWrite(outputPin, HIGH); /使发出发出超声波信号接口 高电平10us,这里是至少10usdelayMicroseconds(10);digitalWrite(outputPin, LOW); / 保持发出超声波信号接口 低电平int distance = pulseIn(inputPin, HIGH); / 读出脉冲时间 distance= distance/58; / 将脉

8、冲时间转化为距离(单位:厘 米)Serial.println(distance); /输出距离值 delay(50);if (distance20)motor1.run(BACKWARD);/ 电机后退motor2.run(BACKWARD);/ 电机后退 delay(500);蓝牙测试代码:#include AF_DCMotor motor1(1, MOTOR12_64KHZ);/ 创建电机#1 号,速度是 64KHz pwmAF_DCMotor motor2(2, MOTOR12_64KHZ);/ 创建电机#2 号,速度是 64KHz pwm void setup()Serial.begi

9、n(9600);motor1.setSpeed(200);/ 设置电机速度,从200/255之间任意(我 这俩电机速度不一样,所以我就这样设置)motor2.setSpeed(200);/ 设置电机速度,从200/255之间任意(大 家可以按照自己的电机转速来调节一样的速度就可以了)void loop()while(Serial.available()char c=Serial.read();if(c=g)Serial.println(go forward!);motor1.run(FORWARD);motor2.run(FORWARD);if(c=s)motor1.run(RELEASE);

10、motor2.run(RELEASE);if(c=b)motor1.run(BACKWARD);motor2.run(BACKWARD);最终代码:#include int led1 = A4;int led2 = A5;AF_DCMotor motor1(1, MOTOR12_64KHZ);/ 创建电机#1 号,速度是 64KHz pwmAF_DCMotor motor2(2, MOTOR12_64KHZ);/ 创建电机#2 号,速度是64KHz pwmconst int TrigPin = A1;const int EchoPin = A2;float distance;void setu

11、p()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之间任意(大家可以按照自己的电机转速来调节一样的速度就可以了)void loop()digitalWrite(T

12、rigPin, 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 1 )digitalWrite(led1, LOW);digitalWrite(led2,

13、 LOW);motor1.run(BACKWARD);/ 电机后退motor2.run(BACKWARD);/ 电机后退 delay(1000);motor1.run(RELEASE);/ 电机停止 motor2.run(RELEASE);/ 电机停止 if(distance20)digitalWrite(led1, HIGH);digitalWrite(led2, LOW);motor1.run(BACKWARD);motor2.run(BACKWARD);delay(500);digitalWrite(led1, LOW);digitalWrite(led2, LOW);motor1.ru

14、n(RELEASE);/ 电机停止 motor2.run(RELEASE);/ 电机停止 elsewhile(Serial.available()char c=Serial.read();if(c=g)digitalWrite(led1, HIGH);digitalWrite(led2, HIGH);Serial.println(go forward!);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);mot

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 学术论文 > 其它学术论文

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号