华科电工实习智能小车课后论文(含代码)_第1页
华科电工实习智能小车课后论文(含代码)_第2页
华科电工实习智能小车课后论文(含代码)_第3页
华科电工实习智能小车课后论文(含代码)_第4页
华科电工实习智能小车课后论文(含代码)_第5页
已阅读5页,还剩4页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、 电工实习 关于智能小车组装与操控的论文 第五组:一硬件部分1.硬件组装(1)小组成员对硬件的组装都有自己的意见和建议,以及自己的思想,在短暂的电工实习课程中不可能让自己的思维与想法完全付诸于智能车(形成现实),所以在这一部分,我们小组将分别陈述自己对智能小车硬件部分的组装以及要改进的地方。以下是几个小组成员的想法整理。 在这次机器人制作的实习中,我对智能控制机器人有了初步的认识。第一次接触这个东西的我觉得它非常高大上,我们之前学过一些传感器知识和c+语言,今天才得以运用这些知识。  开始制作时,我们先了解了这个机器人的各种功能和使用的传感器以及其他元件,然后开始对机器人进

2、行安装,使外形尽量合理,以便更好发挥其功能。接下来在组长的带领下我几个开始实现机器人的各种功能,按照步骤初始化引脚,写代码,烧录很快我们就弄好了蓝牙模块,用手机蓝牙连接机器人实现简单的前进后退转向功能。在不断地修改和调试后,其他功能也一一实现。  虽然在检查时部分功能没有达到完美的效果,中途我们也遇到很多问题包括像电脑突然关机代码全部丢了等等但我们觉得这次实习激发了我对电工的兴趣,也让我了解到了很多知识的应用与操作,希望有机会再进行这样的实习。真正功能实现部分的内容写的略少因为打酱油。(2) 这次参加了智能车的电工实习,感觉很过瘾,很好玩。个人是挺喜欢智能玩具的,通过这次自

3、己的实习,感觉通过软硬件的结合,就像搭积木一样,一点点自己把具有完整功能的模块结合起来,完成具有实际应用价值的小车,挺酷炫的。但感觉在时间上挺仓促的,而且现在需要迎接着考试的压力,所以感觉课程安排上有点不自由。 由于自己之前有一点编程的基础,所以还能完成课程任务。但倘若,完全一次都没接触过这些东西的话,个人感觉是很难第一次做就能把课程中设计的每一个任务都完成好的。任务量确实有点大。最后,很感谢学校能提供这样一个平台让我们学习这些,感觉这比学校课本上枯燥的知识有趣的多,能亲自去动手实践,挺自由,挺快乐!(3)对于智能小车的组装,因为时间问题所以使用了之前已经组装好了的智能小车,但这毕竟不是自己组

4、装的,所以有很多自己不太满意的地方。当然,也许自己的想法未必是最好的,也许自己的想法比别人的差好多,但自己做出来的东西始终是自己做出来的,对它的性能和工作状态能有更好的理解和掌握。就先说说对智能小车的组装吧。首先,无论是哪一个环节的调试,小车在现实的运行总和代码有出处,也不是说和代码不相符,而是无法完全灵活的实现程序所要表达的内容。在我看来小车的前轮就是个大问题。我们完全可以不要前轮,或者是将前轮的行动与后轮一致,所以整个车身的改进可以有以下两个方案。第一,将前轮去掉,扩大两个后轮的直径,让后轮支撑起整个车身的电池部分和电路板部分。在车身的下部分加重重量,使得车身在运动工程中不发生来回的摆动。

5、在车轮的内侧安装灰度辨认器,这样能很好的解决由于前轮带来的偏差和灰度辨识器与后轮距离而产生的滞后现象。第二,将单个的前轮设置成两个车轮,同时可以设置前后传动齿轮,让后轮的动力通过齿轮直接传送到各一侧的前轮,那样一来,不仅前轮方向的不确定性可以改变,加入两个前轮后,由于齿轮的传动,前轮总可以保持与后轮方向的协调。除此,可以改变其他方面的相关内容。其次,自己对程序这部分实在是差的厉害,设计硬件系统还可以,但软件部分完全起不到建议性的意见。只能是在一旁对调试不当的小车进行口语的表面现象的直观建议。通过本次实验了解智能小车的运行以及代码的调试,了解智能车运行的根本机制,从而深刻体会到程序自动控制给现代

6、社会所带来的方便。2总结通过本次试验,我们小组成员各自收获了很多,对智能控制机器人有了初步的认识,了解智能小车的运行以及代码的调试,了解智能车运行的根本机制虽然在检查时部分功能没有达到完美的效果,但通过软硬件的结合,一点点自己把具有完整功能的模块结合起来,完成具有实际应用价值的小车,激发了我们对电工的兴趣,也让我们了解到了很多知识的应用与操作。2 软件部分1. 代码介绍首先定义整个电路板的控制端,记录测量次数,每5次取一下平均值,确定电机的转向,电机到底是右转还是左转取决于电机端的接线和控制脚的顺序。当电机两个端短接了之后,会紧急制动。一系列的准备工作做完后,进行蓝牙程序的读写,将对小车的直接

7、控制转化成间接地蓝牙控制,从而带来方便。以下是程序运行所要实现的的几个大模块:追踪,避障,悬崖漫游,循迹,而这些模块的实现都有以下几个程序以及器件实现:超声波测距仪以及相关程序员灰度探测仪以及相关程序红外传感器以及相关程序电机转动速度控制以及相关程序2.代码 char getstr;int in1=5;int in2=6;int in3=9;int in4=10;int c1=14;int c2=18;int c3=16;int c4=17;/上面定义了板上的4个控制端,12一组,34一组int i=0;/记录测量次数,每5次取一下平均值void _mRun(int pin1,int pin2

8、)/电机右转,电机到底是右转还是左转取决于电机端的接线和控制脚的顺序 digitalWrite(pin2,LOW); digitalWrite(pin1,HIGH);void _mBack(int pin1,int pin2)/同上 digitalWrite(pin1,LOW); digitalWrite(pin2,HIGH);void _mStop(int pin1,int pin2)/紧急制动,实际就是将电机两个端短接了 digitalWrite(pin1,LOW); digitalWrite(pin2,LOW);void _m(int pin1,int pin2,int sj)/同上 d

9、igitalWrite(pin2,LOW); analogWrite(pin1,sj); void setup() Serial.begin(9600); pinMode(in1,OUTPUT); pinMode(in2,OUTPUT); pinMode(in3,OUTPUT); pinMode(in4,OUTPUT); pinMode(15, OUTPUT); pinMode(14, INPUT); pinMode(c1, INPUT); pinMode(c2, INPUT); pinMode(c3, INPUT); pinMode(c4, INPUT); /下面程序开始时让控制端都为高电平

10、,电机保持不动。 digitalWrite(in1,LOW); digitalWrite(in2,LOW); digitalWrite(in3,LOW); digitalWrite(in4,LOW);void loop() getstr=Serial.read();/得蓝牙指令 if(getstr='1') /Serial.println("追踪!"); while(1) digitalWrite(15,LOW); /超声波测距 delayMicroseconds(2); digitalWrite(15,HIGH); delayMicroseconds(10

11、); digitalWrite(15,LOW); float distance=pulseIn(14,HIGH); distance=distance/58; if(distance>50&&digitalRead(c1)&&digitalRead(c2) _mRun(in1,in2); /全速前进 _mRun(in3,in4); else if(distance>20&&distance<50&&digitalRead(c1)&&digitalRead(c2) _m(in1,in2,150);

12、/中速前进 _m(in3,in4,150); else if(!digitalRead(c1)&&digitalRead(c2) _m(in1,in2,50); _m(in3,in4,160); else if(digitalRead(c1)&&!digitalRead(c2) _m(in1,in2,160); _m(in3,in4,50); else if(!digitalRead(c1)&&!digitalRead(c2) _m(in1,in2,120); _m(in3,in4,120); delayMicroseconds(10); els

13、e if(getstr='2') /Serial.println("避障!"); while(1) digitalWrite(15,LOW); /超声波测距 delayMicroseconds(2); digitalWrite(15,HIGH); delayMicroseconds(10); digitalWrite(15,LOW); float distance=pulseIn(14,HIGH); distance=distance/58; if(distance>50&&digitalRead(c1)&&digita

14、lRead(c2) _mRun(in1,in2); /全速前进 _mRun(in3,in4); else if(distance>20&&distance<50&&digitalRead(c1)&&digitalRead(c2) _m(in1,in2,150); /中速前进 _m(in3,in4,150); else if(!digitalRead(c1)&&digitalRead(c2) _m(in1,in2,160); _m(in3,in4,50); else if(digitalRead(c1)&&

15、;!digitalRead(c2) _m(in1,in2,50); _m(in3,in4,160); else if(!digitalRead(c1)&&!digitalRead(c2) _mStop(in1,in2); _mStop(in3,in4); _m(in2,in1,50); _m(in4,in3,160); delayMicroseconds(10); else if(getstr='3') / Serial.println("漫游!"); while(1) if(digitalRead(c1)&&digitalR

16、ead(c2) _m(in1,in2,120); _m(in3,in4,120); else if(!digitalRead(c1)&&digitalRead(c2) _m(in1,in2,140); _m(in4,in3,80); else if(digitalRead(c1)&&!digitalRead(c2) _m(in2,in1,80); _m(in3,in4,140); else if(!digitalRead(c1)&&!digitalRead(c2) _m(in2,in1,140); _m(in4,in3,80); delayMic

17、roseconds(10); else if(getstr='4') / Serial.println("循迹!"); while(1) if(digitalRead(c1)&&digitalRead(c2) _m(in1,in2,80); _m(in3,in4,80); else if(!digitalRead(c1)&&digitalRead(c2) _m(in2,in1,100); _m(in3,in4,60); else if(digitalRead(c1)&&!digitalRead(c2) _m(i

18、n1,in2,60); _m(in4,in3,100); else if(!digitalRead(c1)&&!digitalRead(c2) _m(in2,in1,140); _m(in3,in4,80); delayMicroseconds(10); else if(getstr='f') Serial.println("go forward!"); _mStop(in1,in2); _mStop(in3,in4); _mRun(in1,in2); _mRun(in3,in4); else if(getstr='b') Seria

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论