智能循迹小车设计与实现(DOC)_第1页
智能循迹小车设计与实现(DOC)_第2页
智能循迹小车设计与实现(DOC)_第3页
智能循迹小车设计与实现(DOC)_第4页
智能循迹小车设计与实现(DOC)_第5页
免费预览已结束,剩余15页可下载查看

下载本文档

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

文档简介

长 春 大 学 课程设计纸 共 20 页 第 1 页 装 订 线 智能循迹小车设计与实现 摘要 本文介绍的是基于单片机 STC89C52 控制智能循迹小车的设计 利用红 外对光管检测黑线与障碍物 并以 STC89C52 单片机为控制芯片控制电动小汽 车的运动 从而实现自动循迹避障的功能 其中小车的电机由 LG9110 驱动 整个系统的电路结构简单 可靠性高 关键词 STC89C52 LG9110 红外对光管 循迹小车 长 春 大 学 课程设计纸 共 20 页 第 2 页 装 订 线 The manufacture of intelligent tracking car Abstract This articale introduces the design of intelligent tracking car based on the STC89C52 single chip computer Based infrared detection of black lines and the road obstacles and use a STC89C52 MCU as the controlling core for the movement A electronic drived which can automatic track and avoid obstacle was designed and fabricated In which the electric machinery of car is drived by the LG9110 The electric circuit stuction of whole system is simple and the function is dependable Keywords STC89C52 LG9110 Infrared emitting diode Tracking car 第 1 章 引 言 长 春 大 学 课程设计纸 共 20 页 第 3 页 装 订 线 随着微电子技术的不断发展 微处理器芯片的集成程度越来越高 单片机 已可以在一块芯片上同时集成 CPU 存储器 定时器 计数器 并行和串行接 口 看门狗 前置放大器 A D 转换器 D A 转换器等多种电路 这就很容 易将计算机技术与测量控制技术结合 组成智能化测量控制系统 这种技术促 使机器人技术也有了突飞猛进的发展 单片机技术作为自动控制技术的核心之 一 被广泛应用于工业控制 智能仪器 机电产品 家用电器等领域 随着微 电子技术的迅速发展 单片机功能也越来越强大 本设计基于单片机技术在智 能寻迹小车控制系统的设计中 以 STC89C52 为核心 用 LG9110 驱动两个减速 电机 当产生信号驱动小车前进时 是通过寻迹模块里的传感器管是否寻到黑 线产生的电平信号通过传感器再返回到单片机 单片机根据程序设计的要求作 出相应的判断送给电机驱动模块 让小车实现前进 左转 右转 停车等基本 功能 寻白线时 外部环境光线的强弱对小车的运动会产生很大的影响 基于 此原因 本实验中的寻迹是指在白色地板上寻黑线 1 1 设计目的 1 了解机械部件结构与机械安装过程 2 掌握电动机齿轮箱内部结构及减速原理 3 了解电子元器件的基本形状及焊接过程 4 掌握电子元器件的焊接步骤与检测过程 5 了解单片机内部结构与程序编制方法 6 了解 LED 灯驱动方法 全面掌握流水灯 跑马灯编程技术 7 了解数码管内部结构 掌握数码显示技术 8 了解键盘结构原理 掌握中断查询技术 9 了解话筒电路结构 掌握话筒输入技术 10 了解蜂鸣器驱动技术 全面体现音乐报警功能 11 了解光敏电阻结构原理 充分体现夜间自动照明功能 12 了解红外发射与接收技术 有力体现防撞检测与智能寻迹功能 13 了解直流电机驱动原理 掌握电机驱动技术 14 认识红外检测传感器 全面掌握红外遥控编码 解码技术 15 了解 R232 通信协议 掌握串口通信技术 16 通过本机系统学习 全面掌握智能自动寻迹机器人的控制方法 1 2 设计要求 当前的电动小汽车基本上采取的是基于纯硬件电路的一种开环控制方法 或者是直线行使 或者是在遥控下作出前进 后退 转弯 停车等基本功能 但是它们不能实现在某些特殊的场合下 我们需要能够自动控制的小型设备先 采集到一些有用的信息的功能 本文正是在这种需要之下开发设计的一种智能 的电动小车的自动控制系统 它以单片机 STC89C51 为控制核心 附以外围电 路 在画有黑线的白纸 路面 上行使 由于黑线和白线对光线的反射系数不同 可 根据接收到的反射光的强弱来判断 道路 黑线 判断信号可通过单片机控 长 春 大 学 课程设计纸 共 20 页 第 4 页 装 订 线 制驱动模块修正前进方向 以使其保持沿着黑线行进 轨迹探测模块用 2 对红 外发射管 2 对各置于轨道外侧 当小车脱离轨道时 外面任意一只检测到黑 线后 做出相应的转向调整 直到重新回到轨道 第 2 章 总体方案设计 长 春 大 学 课程设计纸 共 20 页 第 5 页 装 订 线 检测 黑线 软件控制驱动电机控制小车 2 1 总体方案的设计思路 该简易智能小车在画有黑线的白纸 路面 上行使 不断地向地面发射红外 光 利用红外线在不同颜色的物理表面具有不同的反射性质的特点 当红外光 遇到白色地面时发生漫发射 反射光被装在小车上的接收管接收 如果遇到黑 线则红外光被吸收 则小车上的接收管接收不到信号 当红外接收探头接收到 信号后 再将信号送到单片机由单片机内部程序来控制电机 由电机完成小车 的前进 转向 因此 可根据接收到的反射光的强弱来判断 道路 黑线 2 2 总体方案设计总体方案设计 整个路系统分为检测 控制 驱动三个模块 首先利用光电对管对路面信 号进行检测 把检测到的光信号转化为电信号 送给单片机进行处理 然后单 片机输出相应的信号给驱动芯片驱动电机转动 从而控制整个小车的运动 系 统方案方框图如图所示 图 2 2 智能小车寻迹系统框 2 2 1 控制器模块 方案一 方案一 采用FPGA 现场可编程门阵列 作为系统的控制器 FPGA可以实现 各种复杂的逻辑功能 规模大 密度高 但由于本设计对数据处理速度要求不 高 FPGA的高速处理的优势得不到充分体现 并且由于其集成度高 使其成 本偏高 同时其芯片引脚较多 实物硬件电路板布线复杂 加重了电路设计和 实际焊接的工作 因此排除该方案 方案一方案一 采用89C51作为控制核心 针对本设计特点 多开关量输入的复杂程 序控制系统 需要擅长处理多开关量得单片机 而不能用精简I O口和程序存 储的小体积单片机 A D D A功能也不必选用 据此 我们选用STC89C51单片 机 另外 该单片机价格低廉 使用简单 综上所述 我们选用方案二 2 2 2 电机驱动模块 方案一方案一 采用继电器对电动机的开或关进行控制 通过开关的切换对小车的运 动进行调整 此方案的优点是电路较为简单 缺点是继电器的响应速度慢 易 损坏 寿命短 可靠性不高 方案二 方案二 市面上有专门的双电机驱动芯片LG9110 经测试性能可以满足小车 的电机控制要求 而且外围电路比较简单 稳定性好 驱动能力强 能够很好 的保证两电机的同步 因此 采用方案二 2 2 3 黑线检测模块 方案一 方案一 采用摄像头或探测头收集画板上信息 用这种方法 对板面信息处 理准确 但是成本过高 对硬 软件的要求都非常高 短时间内难做出实物来 方案二 方案二 使用可见光发光二级管和光敏二级管组成的发射 接受模块 这种 长 春 大 学 课程设计纸 共 20 页 第 6 页 装 订 线 方案的缺点在于其他环境光源会对光敏二级管工作产生很大干扰 一旦外界光 亮条件改变 很可能造成误判和漏判 如采用高亮发光管可以降低一定的干扰 但会增加额外的功率损耗 方案三 方案三 使用反射式红外二级管和接收管组合发射 接收器 由于红外光波 长比可见光长 因此受可见光的影响比较小 同时 红外对管还具有以下优点 质量轻 灵敏度高 线性好 接口电路比较简单 安装方便 对于本系统中近 距离的检测 用它作为传感器将是最理想的 因此 本系统采用方案三 2 2 4 电机模块 方案一方案一 采用直流电机 直流电机使用方便 价格便宜 有优良调速特性 实现方便平滑调速 调整范围广 有较强过载能力 能承受频繁的冲击负载 可频繁无级快速启动 制动 反转 方案二 方案二 采用步进电机 步进电机的运动精度很高 由其组成的位置控制系 统定位准确 稳定时间短 一般可采用开环控制 但控制系统必须由双环形脉 冲信号 功率驱动电路等组成方可使用 控制相对复杂 综上所述 直流电机的电路相对简单 功能合题意 使用方便 价格便宜 本系统采用直流电机作为动力源 第 3 章 系统硬件设计 长 春 大 学 课程设计纸 共 20 页 第 7 页 装 订 线 3 1 系统的硬件组成系统的硬件组成 硬件设计总体上以STC89C52为核心 辅以必要的外围电路 完成红外传感器对 运动轨迹的检测 信号的处理 电机的转动等功能 系统总框图如下 3 2 单片机模块 此部分是整个小车运行的核心部件 起着控制小车所有运行状态的作用 这里 选择了 ATMEL 公司的 STC89C52 作为控制核心部件 该单片机要想正常工作 还需有复位电路和晶振电路 此单片机的最小系统图如下 长 春 大 学 课程设计纸 共 20 页 第 8 页 装 订 线 图 3 2 3 3 电机驱动模块 LG9110 是为控制和驱动电机设计的两通道推挽式功率放大专用集成电路 器件 将分立电路集成在单片 IC 之中 使外围器件成本降低 整机可靠性提 高 该芯片有两个 TTL CMOS 兼容电平的输入 具有良好的抗干扰性 两个 输出端能直接驱动电机的正反向运动 它具有较大的电流驱动能力 每通道能 通过 750 800mA 的持续电流 峰值电流能力可达 1 5 2 0A 同时它具有较 低的输出饱和压降与静态电流 内置的钳位二极管能释放感性负载的反向冲击 电流 使它在驱动继电器 直流电机 步进电机或开关功率管的使用上安全可 靠 9110 被广泛应用于玩具汽车电机驱动 自动阀门电机驱动 电磁门锁驱动 等电路上 该驱动芯片 LG9110 的 IA IB 口接单片机 输出口 OA OB 接电机 O 口为 低电平时 电机正传 O 口为高电平时 电机反转 电机驱动电动如下图 3 3 EA V P 31 X 1 19 X 2 18 RESET 9 RD 17 WR 16 IN T0 12 IN T1 13 T 0 14 T 1 15 P10 T 1 P11 T 2 P12 3 P13 4 P14 5 P15 6 P16 7 P17 8 P00 39 P01 38 P02 37 P03 36 P04 35 P05 34 P06 33 P07 32 P20 21 P21 22 P22 23 P23 24 P24 25 P25 26 P26 27 P27 28 PSEN 29 ALE P 30 T X D 11 RX D 10 IC1 80C52 V CC C7 30P C8 30PC6 10ufR15 10K V CC Z 1 11 0592 长 春 大 学 课程设计纸 共 20 页 第 9 页 装 订 线 图 3 3 3 4 红外检测模块 本单元模块中 白色管作为发色管 黑色管作为接管 当白色管发射一束光 遇到黑线 或白色物体反射 黑色管接收到反射光 然后把光信号转化为电信号送给单片机进行处理 控制电机的正反转 电路原理图如下 图 3 4 3 5 声控模块 R1 220 R8 15K R6 220 R5 15K R3 220 R4 15K V 1V 6 V 3 V 2V 5V 4 V CC P3 5 P3 6 P3 7 1 2 3 48 7 6 5 IC 3 LG9110 1 2 3 48 7 6 5 IC 4 LG9110 C 2104 C 3104 M 1 M 2 V C C P0 0 P0 1 P0 2 P0 3 长 春 大 学 课程设计纸 共 20 页 第 10 页 装 订 线 话筒的阻值随接收到声音信号强度的变化而变化 在电容正端产生变化的电压信号 经 电容 C5 耦合和基本共射极三极管 V3 的电压反向存在 通过单片机 P0 4 引脚采集和处理 可实现小车的声控功能 正常情况下 P0 4 管脚采集到的是高电平信号 当话筒收到强度 足够的声音后 三极管导通后 P0 4 管脚变为低电平 原理图如图 3 5 图 3 5 3 6报警模块 单片机上电后各管脚默认为高电平 三极管不导通 当需要执行报警时 单片机 P0 6 管 脚出现低电平信号 三极管导通驱动蜂鸣器报警 如图 3 6 图 3 6 3 7 串口通信模块 V 3 80 50 R3 150K R4 1M R6 4 7K R5 47K C5 10uF B1 V CC P0 4 V 1 85 50 R 2 220 S B 1 V C C P0 6 长 春 大 学 课程设计纸 共 20 页 第 11 页 装 订 线 此模块用于单片机和电脑进行串口通信 但由于计算机串口为 RS232 电平 高电平为 12V 低电平为 12V 而单片机为 TTL 电平 高电平为 5V 低电平为 0V 因此 计 算机与单片机之间通讯时需要加电平转换芯片 MAX232 原理图如下 图 3 7 第 4 章 系统软件设计 1 6 2 7 3 8 4 9 5 11 10 COM1 C1 1 C1 3 C2 4 C2 5 T1IN 11 T2IN 10 R1OUT 12 R2OUT 9 GND 15 VDD 2 VCC 16 T1OUT 14 T2OUT 7 R1IN 13 R2IN 8 VEE 6 IC2 MAX232CPE C11 10uF C10 10uF C12 10uF C1310uF VCC P3 1 P3 0 长 春 大 学 课程设计纸 共 20 页 第 12 页 装 订 线 该系统的软件程序采用模块结构 由 C 语言编写完成 主要由初始化程序 偏道调整程序 声光指示程序 读红外对光管状态 显示程序等模块组成 总的设计流程图如下 循迹流程图 循迹程序 长 春 大 学 课程设计纸 共 20 页 第 13 页 装 订 线 include 包含 51 单片机相关的头文件 sbit LeftLed P2 0 定义前方左侧指示灯端口 sbit RightLed P0 7 定义前方右侧指示灯端口 sbit LeftIR P3 5 定义前方左侧红外探头端口 sbit RightIR P3 6 定义前方右侧红外探头端口 sbit FontIR P3 7 定义前方正前方红外探头端口 sbit M1A P0 0 定义左侧电机驱动 A 端 sbit M1B P0 1 定义左侧电机驱动 B 端 sbit M2A P0 2 定义右侧电机驱动 A 端 sbit M2B P0 3 定义右侧电机驱动 B 端 sbit B1 P0 4 定义语音识识别传感器端口 sbit SB1 P0 6 定义蜂鸣器端口 define RunShow P1 定义数据显示端口 void Delay 定义机器人调转子时间子程序 unsigned int DelayTime 50000 定义机器人转弯时间变量 while DelayTime 机器人转弯循环 SB1 SB1 蜂鸣器闪响 return void ControlCar unsigned char ConType 定义电机控制子程序 M1A 0 将 M1 电机 A 端初始化为 0 M1B 0 将 M1 电机 B 端初始化为 0 M2A 0 将 M2 电机 A 端初始化为 0 M2B 0 将 M2 电机 B 端初始化为 0 switch ConType 判断用户设定电机形式 case 1 前进 判断用户是否选择形式 1 M1A 1 M1 电机正转 M2A 1 M2 电机正转 break case 2 后退 判断用户是否选择形式 2 M1B 1 M1 电机反转 M2B 1 M2 电机反转 break case 3 左转 判断用户是否选择形式 3 M2A 1 M2 电机正转 break case 4 右转 判断用户是否选择形式 4 M1A 1 M1 电机正转 M2 电机反转 break case 8 停止 判断用户是否选择形式 8 break 退出当前选择 长 春 大 学 课程设计纸 共 20 页 第 14 页 装 订 线 void main 主程序入口 bit RunFlag 0 定义小车运行标志位 RunShow 0 初始化显示状态 ControlCar 1 初始化小车运行状态 while 1 程序主循环 Start LeftLed LeftIR 前方左侧指示灯指示出前方左侧红外探头 状态 RightLed RightIR 前方右侧指示灯指示出前方右侧红外探头 状态 if LeftIR 0 左侧红外探头没有接收到白色道路信号 ControlCar 4 左侧没有信号时 开始向右转一定的角度 Delay 修改这里进行转弯角度的调整 Delay 同上 Delay goto NextRun if RightIR 0 ControlCar 3 右侧没有信号时 开始向左转一定的角度 Delay 修改这里进行转弯角度的调整 Delay 同上 Delay goto NextRun goto Start NextRun ControlCar 1 避障流程图 长 春 大 学 课程设计纸 共 20 页 第 15 页 装 订 线 避障程序 include 包含 51 单片机相关的头文件 sbit LeftLed P2 0 定义前方左侧指示灯端口 sbit RightLed P0 7 定义前方右侧指示灯端口 sbit LeftIR P3 5 定义前方左侧红外探头端口 sbit RightIR P3 6 定义前方右侧红外探头端口 sbit FontIR P3 7 定义前方正前方红外探头端口 sbit M1A P0 0 定义左侧电机驱动 A 端 sbit M1B P0 1 定义左侧电机驱动 B 端 sbit M2A P0 2 定义右侧电机驱动 A 端 sbit M2B P0 3 定义右侧电机驱动 B 端 sbit B1 P0 4 定义语音识识别传感器端口 sbit SB1 P0 6 定义蜂鸣器端口 define RunShow P1 定义数据显示端口 void Delay 定义机器人调转子时间子程序 unsigned int DelayTime 50000 定义机器人转弯时间变量 while DelayTime 机器人转弯循环 SB1 SB1 蜂鸣器闪响 return void ControlCar unsigned char ConType 定义电机控制子程序 长 春 大 学 课程设计纸 共 20 页 第 16 页 装 订 线 M1A 0 将 M1 电机 A 端初始化为 0 M1B 0 将 M1 电机 B 端初始化为 0 M2A 0 将 M2 电机 A 端初始化为 0 M2B 0 将 M2 电机 B 端初始化为 0 switch ConType 判断用户设定电机形式 case 1 前进 判断用户是否选择形式 1 M1A 1 M1 电机正转 M2A 1 M2 电机正转 break case 2 后退 判断用户是否选择形式 2 M1B 1 M1 电机反转 M2B 1 M2 电机反转 break case 3 左转 判断用户是否选择形式 3 M1B 1 M1 电机反转 M2A 1 M2 电机正转 break case 4 右转 判断用户是否选择形式 4 M1A 1 M1 电机正转 M2B 1 M2 电机反转 break case 8 停止 判断用户是否选择形式 8 break 退出当前选择 void main 主程序入口 bit RunFlag 0 定义小车运行标志位 长 春 大 学 课程设计纸 共 20 页 第 17 页 装 订 线 RunShow 0 初始化显示状态 ControlCar 1 初始化小车运行状态 while 1 程序主循环 LeftLed LeftIR 前方左侧指示灯指示出前方左侧红外探 头状态 RightLed RightIR 前方右侧指示灯指示出前方右侧红外探 头状态 RunShow FontIR 数据显示窗口 指示前方红外探头状态 if FontIR 0 LeftIR 1 判断前方 左侧 右侧是否有信号输入 RightIR 1 ControlCar 2 让小车后退 Delay 开始小车后退延时子程序 Delay 决定了小车后退的步数 Delay 改变它可以改小车后退的距离 Delay 这里只是一个延时 ControlCar 3 改变小车为左转方向 Delay 开始小车左转延时子程序 Delay 改变它可以改变小车旋转的角度 Delay 同上 Delay 同上 ControlCar 1 改变小车为前进运行状态 SB1 1 这个多一步将蜂鸣器关闭 if B1 0 判断是否有声音信号

温馨提示

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

评论

0/150

提交评论