课设报告基于Arduino单片机的实物设计

上传人:桔**** 文档编号:466858872 上传时间:2022-08-20 格式:DOC 页数:16 大小:979.43KB
返回 下载 相关 举报
课设报告基于Arduino单片机的实物设计_第1页
第1页 / 共16页
课设报告基于Arduino单片机的实物设计_第2页
第2页 / 共16页
课设报告基于Arduino单片机的实物设计_第3页
第3页 / 共16页
课设报告基于Arduino单片机的实物设计_第4页
第4页 / 共16页
课设报告基于Arduino单片机的实物设计_第5页
第5页 / 共16页
点击查看更多>>
资源描述

《课设报告基于Arduino单片机的实物设计》由会员分享,可在线阅读,更多相关《课设报告基于Arduino单片机的实物设计(16页珍藏版)》请在金锄头文库上搜索。

1、基于Arduino单片机的实物设计 题目: 基于Arduino的智能小车(乌龟)设计姓名: 学院: 专业: 班级: 学号: 指导教师: 设计时间: 目录一 、任务设计及要求3二、 Arduino42.1 Arduino简介42.2参数说明4三、 硬件设计43.1所需硬件清单43.2硬件设计说明53.3电机驱动模块53.3.1 L298N说明53.3.2 L298N连接图53.4循迹模块53.4.1寻线功能53.4.2寻线传感器与实验连接图53.5避碰模块73.5.1 超声波模块73.5.2 实验连接图73.6红外模块83.6.1红外模块说明83.6.2实物图8四、模块软件设计84.1循迹模块程

2、序84.2 红外模块程序104.3避碰模块程序11五、综合设计与调试115.1流程图115.2软件设计12六、总结146.1遇到问题及解决办法141、 硬件问题142、 软件问题156.2个人感悟15一 、任务设计及要求 利用Arduino设计智能小车(乌龟)其功能: 1、实现循迹(利用TCRT5000 红外对管); 2、避碰功能(利用超声波); 3、红外遥控功能; 4、综合以上功能实现自动循迹、避障、红外控制的智能小车; 二、 Arduino 2.1 Arduino简介ARDUINO 智能小乌龟是一款单片机学习应用开发系统,以 arduino 单片机系列 atmega-328为核心.完成寻线

3、,避障,红外遥控和蓝牙遥控的功能,.套件包含了大量的趣味程序,并可扩展外置的电路模块,从而增加小车的使用功能.旨在让使用者在学习 ARDUINO 单片机时能脱离枯燥的理论知识,在玩乐中获取单片机系统开发的能力。 2.2参数说明 1.电机参数:电压范围:1.5-12V,电机轴长10mm,转速 100rpm/min. 2.控制电机选用L298N驱动模块,与单片机真正隔离. 3.三组寻线模块,检测黑白线,精度更高,也可用与防跌落控制. 4.红外遥控通信模块,组成智能小车遥控系统. 5.超声波模块,小车避障系统. 5.蓝牙无线模块,可以和手机蓝牙配对遥控机器人. 6.可接入外部712V的电压。并能搭载

4、多款传感器模块,根据您的想象力实现各种功能.三、 硬件设计3.1所需硬件清单1. 金属减速电机 2 个;2.优质轮胎 2 个;3.电机固定件 2 个;4 、牛眼万向轮;5.机器人底盘 2 片;6.L298N 电机驱动板 1 个;7.ARDUINO UNO328 控制板 1 个;8.ARDUINO 传感器扩展板 1 个;9.云台 1 个;10.舵机 1 个;11.超声波模块 1 个;12.三组寻线模块;13.红外接收传感器;14.单片机遥控器;15.2000MA 18650 充电电池 2 节;16.18650 电池盒一个;17.18650 充电器一个。3.2硬件设计说明 结合实际、根据需要,将系

5、统分为四个模块,即电机驱动模块,循迹模块,避碰模块,红外模块,分开做,自后将其综合起来。3.3电机驱动模块 3.3.1 L298N说明 L298N是一个驱动模块,就是单片机的驱动电流太小无法驱动电动机,因此L298N其起到一个放大器作用。通过控制L298N I1 I2 I3 I4接口,控制电机的正转,反转,转弯和停止。 3.3.2 L298N连接图 如下图所示:3.4循迹模块 3.4.1寻线功能 使小车沿着黑线走,根据黑线的位置选着行走的状态。 3.4.2寻线传感器与实验连接图 TCRT5000红外对管的工作原理是利用红外线对颜色的反射率不一样,将 反射信号的强弱转化成电流信号。黑白寻迹模块在

6、检测到黑色高电平有效,检测到白色是为 低电平有效,检测高度为 03cm。使用方法1.传感器接口有3根排针,分别是GND ,VCC,OUT。VCC和GND为供电端,OUT是信 号输出端。 2.检测到物体,信号端输出低电平;未检测到物体,信号端输出高电平。 3.主要判断信号输出端是0或者1,就能判断物体是否存在。 性能参数: 1:检测距离,检测白纸时约为2厘米。视颜色的不同距离有所不同,白色最远。 2.供电电压:2.5V12V,不要超过12V。(注意:最好用低电压供电,供电电压太高传感器的寿命会变短。5V供电为佳。) 3.工作电流,5V时1820ma。经大量测试,传感器硬件设置为1820ma工作电

7、流时性能最 佳,主要表现在抗干扰能力上。4.检测到物体,信号端输出低电平;未检测到物体,信号端输出高电平。 5.传感器输出TTL电平,能直接与3.3V或者5V单片机IO口相连。 黑线或者白线检测原理 1.利用黑色对光线的反射率小这个特点,当平面的颜色不是黑色时,传感器发射出去的红 外光被大部分反射回来。于是传感器输出低电平0。 2.当平面有一黑线,传感器在黑线上方时,因黑色的反射能力很弱,反射回来的红外光很 少,达不到传感器动作的水平,所以传感器还输出1。 3.我们只要用单片机判断传感器的输出端是0或者是1,就能检测黑线。 4.检测白线的原理和检测黑线的原理一样,检测白线时,白线周边的颜色也要

8、比较接近黑 色,然后调节红外传感器上面的可调电阻,将灵敏度调低,一直调到刚好周边的颜色检测 不到为止,那样就能检测白线了。连接参考图如下:3.5避碰模块 3.5.1 超声波模块超声波智能避障实现方便、计算简单、易于做到实时控制,并且在测量精度方面能达到实用的要求,因此成为常用的避障方法。 3.5.2 实验连接图3.6红外模块 3.6.1红外模块说明实验前须知:1.先把 IRremote 函式库资料夹放进 Arduino libraries 目录底下2.开启 IrReceive.pde 测得自 己的红外线遥控的码(在 Serial Monitor 可显示 IRcode) , 再将IRcode 记

9、录下来, 然后到程式里面修改成自 己的红外线码即可。3.6.2实物图四、模块软件设计4.1循迹模块程序第 1 页 int MotorRight1=8;/IN1int MotorRight2=9;/IN2int MotorLeft1=7;/IN4int MotorLeft2=6;/IN3int speedpin=11;/定义 EA(PWM 调速)int speedpin1=10;/定义 EB(PWM 调速)接口const int SensorLeft = 5; /左感測器輸入腳const int SensorMiddle= 4 ; /中感測器輸入腳const int SensorRight =

10、3; /右感測器輸入腳int SL; /左感測器狀態int SM; /中感測器狀態int SR; /右感測器狀態void advance(int a) / 前进 digitalWrite(MotorRight1,LOW); digitalWrite(MotorRight2,HIGH); digitalWrite(MotorLeft1,LOW); digitalWrite(MotorLeft2,HIGH); delay(a*50); void left(int i) / 左转 digitalWrite(MotorRight1,LOW); digitalWrite(MotorRight2,HIGH

11、); digitalWrite(MotorLeft1,LOW); digitalWrite(MotorLeft2,LOW); delay(i*30); void right(int c) / 右转 digitalWrite(MotorRight1,LOW); digitalWrite(MotorRight2,LOW); digitalWrite(MotorLeft1,LOW); digitalWrite(MotorLeft2,HIGH);delay(c*30); void stopp(int d) /停止 digitalWrite(MotorRight1,LOW); digitalWrite(

12、MotorRight2,LOW); digitalWrite(MotorLeft1,LOW); digitalWrite(MotorLeft2,LOW); delay(d * 10); void back(int g) /后退 digitalWrite(MotorRight1,HIGH); digitalWrite(MotorRight2,LOW); digitalWrite(MotorLeft1,HIGH); digitalWrite(MotorLeft2,LOW); delay(g * 100); void re(int x) /右大转 digitalWrite(MotorRight1,L

13、OW); digitalWrite(MotorRight2,HIGH); digitalWrite(MotorLeft1,HIGH); digitalWrite(MotorLeft2,LOW); delay(x * 25); void le(int h) /左打转 digitalWrite(MotorRight1,HIGH); digitalWrite(MotorRight2,LOW); digitalWrite(MotorLeft1,LOW); digitalWrite(MotorLeft2,HIGH); delay(h * 25); void setup()Serial.begin(960

14、0); pinMode(MotorRight1, OUTPUT); / 腳位 8 (PWM) pinMode(MotorRight2, OUTPUT); / 腳位 9 (PWM) pinMode(MotorLeft1, OUTPUT); / 腳位 7(PWM) pinMode(MotorLeft2, OUTPUT); / 腳位 6 (PWM) pinMode(speedpin,OUTPUT); pinMode(speedpin1,OUTPUT); pinMode(SensorLeft, INPUT); /左感測器 pinMode(SensorMiddle, INPUT);/中感測器 pinMode(SensorRight, INPUT); /右感測器void loop() SL = digitalRead(SensorLeft); SM = digitalRead(SensorMiddle); SR = digitalRead(SensorRight); S

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

当前位置:首页 > 大杂烩/其它

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