当前位置: 首页 > news >正文

tmega128单片机控制的智能小车设计

第1章 绪论1.1          选题背景和意义

自第一台工业机器人诞生以来,机器人的民展已经遍及机械、电子、冶金、交通、宇航、国防等领域。近年来机器人的智能水平不断提高,并且迅速地改变着人们的生活方式。人们在不断探讨、改造、认识自然的过程中,制造能替代人工作的机器一直是人类的梦想。其中智能小车可以作为机器人的典型代表。其需要实现自动导引功能和避障功能就必须要感知导引线和障碍物,实现自动识别路线,选择正确的行进路线,使用传感器感知路线并作出判断和相应的执行动作。智能小车设计与开发涉及控制、模式识别、传感技术、汽车电子、电气、计算机、机械等多个学科。它可以分为三大部分:传感器检测部分,执行部分,CPU。现智能小车发展很快,从智能玩具到各行业都有实质成果,其基本可实现循迹、避障、检测贴片,寻光入库、避崖等基本功能,有向声控系统发展的趋势。

1.2          智能小车发展概况1.2.1 国外智能小车发展概况

国外的智能小车发展的也很火,这其中要数韩国的智能小车发展最为迅速。韩国汉阳大学汽车控制实验室在飞思卡尔半导体公司资助下,以HCS12飞思卡尔单片机为核心构造的智能小车系统。该智能小车系统主要功能为寻迹。利用红外、电磁、CCD摄像头等设备进行,这其中有数CCD摄像头最为常见,行驶速度快,过弯灵敏,控制算法上大多采用PID算法进行闭环控制。

1.2.2 国内智能小车发展概况

国内智能小车系统做的比较成熟的有北京博创科技有限公司。随着全世界范围内汽车炸弹袭击事件的不断增多,因此安全检查部门对重大活动的汽车检查也逐步升级,由过去仅检查车内和车箱,升级为对包括车底的全方位检查。在全国两会安保工作中采用了北京博创科技的UP_UVSR智能小车机器人。UP_UVSR既是一款针对车底检查任务研发的机器人系统,该产品体积小、重量轻,便于携带,作业效率高;可以驶入车底进行检查,也可以固定安装与车辆通道口对过往车辆进行检查。

1.3 研究设计的目标

设计一个多功能智能小车系统。通过控制端的单片机检测按键的输入,根据输入的不同模式,控制无线模块发送不同的命令,小车上的车载控制器接收到无线信号,然后判断接收到的无线信号,来控制小车进入不同的模式,控制端的单片机通过LCD和语音模块进行参数信息的显示和播报。

1.4 方案选择1.4.1控制器选择分析

控制器主要用于各个传感器信号的接收和辨认、控制小车的电机的动作,是整个智能车系统的心脏,考虑到需要实现多个功能的要求及各个模块引脚的数目,列出以下方案,对其分析、论证、选择。
方案一:采用ATMEL公司的AT89S52。AT89S52单片机支持在线编程,易于操作,价格便宜,技术成熟,应用广泛,但是功能单一,如果系统电机驱动需要增加硬件,软件实现较为复杂;另外AT89S52 单片机引脚数较少,达不到各个模块端口的要求。
方案二:采用ATMEL公司的ATmega128。ATmega128是一款基于AVR内核,采用RISC结构,高性能,低功耗CMOS的8位单片机。32个通用工作寄存器,53个通用I/O口,实时时钟计数器(RTC),4个带有比较模式灵活的定时器/计数器,2个可编程的USART接口,1个8位面向字节的TWI(IIC)总线接口,8通道单端或差分输入的10位ADC(其中一个差分通道为增益可调的),可编程带内部振荡器的看门狗定时器,一个SPI接口,一个兼容IEEE1149.1标准的JTAG接口(用于在线仿真调试和程序下载),6种可通过软件选择的节电模式。两个具有预分频器、比较功能和捕捉功能的16 位定时器 /计数器。两路8 位PWM。6路分辨率可编程 (2 到16 位)的 PWM。
方案三:采用更加高端的处理器S3C2410。S3C2410是一款ARM内核的处理器,虽然具备了AVR的资源,但是根据本设计的实际情况,成本比较高,编程难度较大。
综合以上三种方案,考虑到系统的可行性,及功耗,性能,硬软件的成本,我选择方案二。

1.4.2 电源模块选择分析

方案一:采用传统的7805三端稳压电路,小车锂电池(7.4V)经过7805稳压后供给小车电机驱动电路和单片机、各传感器用电。由于小车电机启动瞬间需要消耗大量电流,长时间行使后,7805芯片会有明显的发烫现象,而且效率也很低,电池充满一次电后,小车行驶没多久,就得再次充电。   
方案二:采用LM2596开关型稳压芯片,配合电感和电容,一起搭配构成整体的电源电路。效率更高,性能也更加稳定。
综合以上两种方案,考虑到系统的性能和稳定性方面,选择方案二。

1.4.3 电机驱动模块选择分析

电机的驱动电路主要通过电机的正转和反转实现小车的前后或者左右方向的行驶。对于电机驱动模块有下面的几种方案。
方案一:使用功率三极管作为功率放大器的输出控制直流电机。线性型驱动的电路结构和原理简单,成本低,加速能力强,但功率损耗大,特别是低速大转距运行时,通过电阻R的电流大,发热厉害,损耗大,对于小车的长时间运行不利。
方案二:采用继电器对电机的开或关进行控制,通过开关的切换对小车的速度进行调整。此方案的优点是电路较为简单,缺点是继电器的响应时间慢,易损坏,寿命较短,可靠性不高。
方案三:采用专用电机驱动芯片L298N,实现框图如图1-1所示。该芯片集成度高,占用空间小,主要应用于电机调速场合。L298N是恒压恒流双H桥集成电机芯片,可同时控制两个电机,且输出电流可达到2A。L298N的数据口分别与单片机的I/O口相连,作为调制信号。这样精度高并且稳定,可行性好,而且通过编程能实现人机分离,利于调试。
综合以上三种方案,考虑到AVR单片机自带有PWM功能,能实现直流减速电机精准控制,选择方案三。

1.4.4 循迹模块选择分析

循迹模块确保了小车在黑色边界线的区域内行驶。考虑到边界线是黑色的,可以考虑利用传感器辨认赛车场地黑白两种不同状态。对传感器的选择有以下方案。
方案一:采用热探测器。热探测器是利用所接收到的红外辐射后,会引起温度的变化,温度的变化引起电信号不同的输出,且输出的电信号与温度的变化成比例,当红外线被黑色线吸收时,温度会降低,电压变低,而红外线没有被吸收时,电压不变,单片机可以根据电压的变化来判断小车显示的情况。由于温度受环境的影响很大,当温度变高时,即使黑色线吸收了红外线,但是也会有很高的电压,导致单片机判断出错。
方案二:采用红外对射管。红外发射接收管测量距离近,但反应灵敏、准确。由于测量的高度离场地仅1 cm,距离很近,符合其特点。相比热探测器而言,其体积较小,价格低,安装较容易。
综合以上两种方案,考虑到系统的稳定性和安装的简便性,选择方案二。

1.4.5无线模块选择分析

无线模块是用来进行控制端和小车之间的通信,控制小车进入不同的功能模式。
方案一:采用目前流行的WiFi无线模式。WiFi覆盖面广,传输里远,但是其硬件开销成本太高,需要很深厚的理论知识基础。短时间内实现有一定的难度。
方案二:采用TI的CC1101无线传输方案。有效传输距离为100米,工作频率为387~464MHZ。主从一体,既可以作为发送端,也可以作为接收端,软件控制灵活、简单。此模块高灵敏度(1.2kbps下-110dDm,0.1%数据包误码率)、内置硬件CRC 检错和点对多点通信地址控制、较低的电流消耗(RX中,15.6mA,2.4kbps,433MHz、可编程控制的输出功率,最大输出功率+10dBm、无线唤醒功能,支持低功率电磁波激活功能,无线唤醒低功耗睡眠状态的设备等优点。
综合以上两种方案,考虑到系统开发成本和开发时间,选择方案二。

1.4.6语音模块选择分析

语音模块是用来进行在小车进入不同的功能模式和小车转向时,进行语音播报,使整个系统更加人性化些。
方案一:采用555定时器,发出特定频率的声波。缺点:只能发出一定频率的波,难以发出人类的声音。
方案二:采用ISD1760专业语音录放芯片。ISD1760可录、放音十万次,存储内容可以断电保留一百年。两种录放模式:独立按键录放模式和SPI总线操作录放模式。可处理多达 255 段信息。录音数据存储在芯片的 FLASH 内,没有经过任何压缩,所以有较好的音质和断电存储。多种采样频率对应多种录放时间。工作电压:2.4V-5.5V。静态电流:0.5 - 1 μA。工作电流:20mA
综合以上两种方案,考虑到系统的功能要求和控制的灵活性,选择方案二。

1.4.7显示模块选择分析

方案一:采用LCD 1602液晶进行小车参数的信息显示。1602为2行16列式的液晶,可以显示一些数字和英文字母以及一些简单的图案,但是1602内部无字库,要想显示汉字就得自己编写汉字码了,软件开发繁琐。
方案二:采用LCD 12864 字符式液晶。由于12864液晶内部带字库,且能够显示的信息也足够多,LCD1284和LCD1602二者在时序控制上差别不大,软件一直很容易。
综合以上两种方案,考虑到系统的要求,选择方案二。

1.4.8按键模块选择分析

方案一:采用4*4矩阵键盘,共计需要16个独立按键,占用单片机8个IO端口。
方案二:采用独立的按键,结合本系统,只需要6个独立按键即可满足要求,单片机只要检测对应的引脚电平几个判断那一按键被按下。
综合以上两种方案,考虑到硬件的开发成本和软件程序上的简便性,选择方案二。

1.5 可行性分析

采用ATmega128A单片机作为控制核心,其标准工作频率为8MHz,可以为本系统提供高速的计算能力和实时控制能力。学校的硬件基础实验室可以提供焊接和调试场地,调试设备只需要电烙铁、万用表、示波器等常用设备即可。
对大学开设的《C语言编程》、《单片机技术》、《模拟电子技术》、《Protel应用技术》等相关课程的学习,可以为该系统的设计与实现提供理论知识。

第2章 系统整体设计2.1 系统结构框图

本系统主要分为两个大模块,车载控制器模块和控制端的控制器模块。

2.1.1 车载控制器部分

车载控制器模块如图2-1所示。


图 2-1 车载控制器模块结构框图

从图2-1中可以看出,车载部分的控制器模块主要包括电源模块、电机驱动模块、循迹模块、避障模块、无线模块。各个模块的功能介绍如下。
1.电源模块:
采用7.4V的锂电池,经过降压电路,降到5V后供给整个系统。
2.电机驱动模块:
使用两片L298N驱动小车的电机。利用单片机的PWM功能,控制驱动芯片,驱动芯片再控制电机,实现小车的行驶转向功能。
3.循迹模块:
采用7对红外对射管作为单片机输入,来检测黑色循迹线路。
4.无线模块:
车载控制器控制无线模块,接收控制端的无线信号,然后根据所接收到的无线信号,车载控制器控制小车执行不同的功能。

2.1.2 控制端控制器部分

车载控制器模块如图2-2所示。

相关文章:

  • 北京网站建设多少钱?
  • 辽宁网页制作哪家好_网站建设
  • 高端品牌网站建设_汉中网站制作
  • Dubbo源码解析-mock原理
  • Redis常见异常及优化方案
  • python面试题2:lambda是什么?有什么优点?(难度--简单)
  • SQL中distinct去重关键字的使用和count统计组合的使用
  • 17.路由配置与页面创建
  • 【vue-8】记事本案例
  • Java进阶工具: BigInteger, BigDecimal, 正则表达式 Arrays 实战指南
  • ai智能机器人让呼叫中心工作更轻松
  • 音视频主要概念
  • 行为型模式-解释器模式
  • css系列:音频播放效果-波纹律动
  • 深度神经网络——什么是深度强化学习?
  • 倾斜摄影优化之重:轻量化
  • Stream
  • C++ 14 之 宏函数
  • 【编码】-360实习笔试编程题(二)-2016.03.29
  • 【跃迁之路】【669天】程序员高效学习方法论探索系列(实验阶段426-2018.12.13)...
  • android 一些 utils
  • HTTP中的ETag在移动客户端的应用
  • js正则,这点儿就够用了
  • mysql外键的使用
  • Vue.js源码(2):初探List Rendering
  • 不用申请服务号就可以开发微信支付/支付宝/QQ钱包支付!附:直接可用的代码+demo...
  • 从0搭建SpringBoot的HelloWorld -- Java版本
  • 当SetTimeout遇到了字符串
  • 精彩代码 vue.js
  • 人脸识别最新开发经验demo
  • 使用API自动生成工具优化前端工作流
  • 文本多行溢出显示...之最后一行不到行尾的解决
  • 线性表及其算法(java实现)
  • 再次简单明了总结flex布局,一看就懂...
  • 正则表达式
  • 字符串匹配基础上
  • FaaS 的简单实践
  • 教程:使用iPhone相机和openCV来完成3D重建(第一部分) ...
  • ​​​【收录 Hello 算法】9.4 小结
  • ​iOS实时查看App运行日志
  • #{} 和 ${}区别
  • #13 yum、编译安装与sed命令的使用
  • #include<初见C语言之指针(5)>
  • #大学#套接字
  • (MIT博士)林达华老师-概率模型与计算机视觉”
  • (TOJ2804)Even? Odd?
  • (博弈 sg入门)kiki's game -- hdu -- 2147
  • (动态规划)5. 最长回文子串 java解决
  • (分享)自己整理的一些简单awk实用语句
  • (附源码)基于SSM多源异构数据关联技术构建智能校园-计算机毕设 64366
  • (附源码)计算机毕业设计SSM智能化管理的仓库管理
  • .bat批处理(十一):替换字符串中包含百分号%的子串
  • .equals()到底是什么意思?
  • .Net core 6.0 升8.0
  • .net core使用ef 6
  • .netcore 如何获取系统中所有session_ASP.NET Core如何解决分布式Session一致性问题
  • .NET连接数据库方式
  • /bin、/sbin、/usr/bin、/usr/sbin