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

news2024/11/16 9:58:03

第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所示。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1818371.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

国学诗词app开发,学古贯今,句句珠玑

“鹅鹅鹅,曲项向天歌。”这是很多人学会的第一首诗,国学诗词作为中华传统文化的重要组成部分,不仅在历史中占据重要地位,也是儿童学前启蒙的不二选择。对于家长来说,他们更喜欢在学前教孩子一些经典国学和古诗词&#…

180.二叉树:二叉搜索树(力扣)

代码解决 /*** Definition for a binary tree node.* struct TreeNode {* int val;* TreeNode *left;* TreeNode *right;* TreeNode() : val(0), left(nullptr), right(nullptr) {}* TreeNode(int x) : val(x), left(nullptr), right(nullptr) {}* Tre…

好用的FTP客户端 Transmit 5中文

Transmit 5是一款专为macOS设计的FTP客户端软件,由Panic公司开发。它支持FTP、SFTP、WebDAV和Amazon S3等多种传输协议,满足用户多样化的文件传输需求。Transmit 5拥有用户友好的界面设计,提供了清晰的文件传输状态和详细的信息,让…

Java面经总结

一、java基础 1.重载和重写的区别 重载: 发生在同一类中,函数名必须一样,参数类型、参数个数、参数顺序、返回值、修饰符可以不一样。重写: 发生在父子类中,函数名、参数、返回值必须一样,访问修饰符必须…

【Android面试八股文】1. 你说一说Handler机制吧 2. 你知道Handler的同步屏障吗? 3. Looper一直在循环,会造成阻塞吗?为什么?

文章目录 一. 你说一说Handler机制吧二、你知道Handler的同步屏障吗?2.1 Handler消息的分类2.2 什么是同步屏障2.3 为什么要设计同步屏障2.4 同步屏障的用法 三、Looper一直在循环,会造成阻塞吗?为什么?扩展阅读 一. 你说一说Hand…

PostgreSQL和Oracle的数据类型对比:时间类型 #PG培训

在数据库管理系统中,时间数据类型是非常关键的一部分。时间数据类型的选择和使用直接影响到数据存储、查询效率和应用程序的设计。本文将对比PostgreSQL和Oracle在时间类型方面的实现和特性。 #PG考试#postgresql培训#postgresql考试#postgresql认证 日期和时间类型…

JAVA开发 创建TXT文件,写入并读取数据流输出到控制台

通过BufferedReader类和BufferedWriter类操作txt文件 1、BufferedReader类和BufferedWriter类1.1 BufferedReader类1.1.1 构造方法1.1.2 重要方法1.1.3 作用 1.2 BufferedWriter类1.2.1 构造方法1.2.2 重要方法1.2.3 作用 1.3 总结 2、案例2.1 实现代码2.2 输出 1、BufferedRea…

STM32理论 —— μCOS-Ⅲ(2/2):时间管理、消息队列、信号量、任务内嵌信号量/队列、件标志组

文章目录 9. 时间管理9.1 OSTimeDly()9.2 OSTimeDlyHMSM()9.3 OSTimeDlyResume()9.4 延时函数实验 10. 消息队列10.1 创建消息队列函数OSQCreate()10.2 发送消息到消息队列函数(写入队列)OSQPost()10.3 获取消息队列中的消息函数(读出队列)OSQPend()10.4 消息队列操作实验 11. …

产品经理简要介绍主流电商平台商品API接口的重要应用价值

主流电商平台: 截至目前(2024年6月),主流电商平台通常指的是国内外知名的在线购物平台,包括但不限于以下几家: 1. 中国电商平台: - 淘宝网(taobao.com) - 天猫商…

阿里云香港服务器怎么样?

大家都知道阿里云是国内最受欢迎的云服务商,那么阿里云香港服务器究竟怎么样呢?和硅云的香港服务器用于做外贸网站等业务相比各有哪些优缺点呢? 阿里云和硅云在香港云服务领域有着广泛的应用和良好的口碑。然而,它们各自的特点和…

霍廷格TruPlasma RF 1001 to 1003 (G2/13)手侧通快电源

霍廷格TruPlasma RF 1001 to 1003 (G2/13)手侧通快电源

深入 Go 语言核心:结构体的全方位解析

Go 语言,作为一种高效、静态类型的编程语言,自其问世以来便以其并发处理能力和简洁的语法结构广受开发者欢迎。虽然 Go 不是传统意义上的面向对象语言,它却以独特的方式支持面向对象编程的核心概念,其中结构体扮演了非常关键的角色…

解决Servlet报404未找到

一、检查project struture 打开Project Struture 检查jdk 检查Modules的depencies 如果缺少servlet的jar依赖,则可以先配置tomcat,然后执行如下图的添加依赖(这种方法不适用于maven构建的项目) 把Tomcat里的jar添加进来就可…

Sqlite3入门和c/c++下使用

1. SQLite3基本介绍 1.1 数据库的数据类型 1.2 基本语法 1. 创建数据表格 create table 表名(字段名 数据类型, 字段名 数据类型); create table student(id int, name varchar(256), address text, QQ char(32)); 2. 插入数据 insert into 表名 valu…

音频处理1_基本概念

AI变声和音乐创作的基础 声音本质上是人类可察觉范围内的气压周期性波动, 即声波 声波是一种连续信号,在任意时间内的声音信号有无数个取值。对于只能读取有限长数组计算机来说,我们需要将连续的声音信号转换为一个离散的序列,即数字化表示。…

【一竞技DOTA2】Malr1ne有可能是第二个奇迹哥

1、近日Falcons战队一号位选手skiter在直播中讲到战队组建过程,并称赞了队内中单Malr1ne很强,甚至可能是第二个Miracle-。 “去年我在Tundra的时候曾经与Nemiga的Malr1ne合作过,他替补Nine来打比赛。尽管我们在比赛中没拿到好成绩&#xff0c…

IPv6 ND 协议功能概述

ND 协议功能概述 ND(Neighbor Discovery,邻居发现)协议是 IPv6 的一个关键协议,它综合了 IPv4 中的 ARP,ICMP 路由发现和 ICMP 重定向等协议,并对它们做了改进。 作为 IPv6 的基础性协议,ND 协…

MNIST手写字符分类-卷积

MNIST手写字符分类-卷积 文章目录 MNIST手写字符分类-卷积1 模型构造2 训练3 推理4 导出5 onnx测试6 opencv部署7 总结 在上一篇中,我们介绍了如何在pytorch中使用线性层ReLU非线性层堆叠的网络进行手写字符识别的网络构建、训练、模型保存、导出和推理测试。本篇文…

数字人的技术实现原理

数字人是一种利用计算机图形学、人工智能等技术创建的虚拟人物。数字人可以模拟真人进行各种动作和表情,并与用户进行交互。数字人的技术实现原理主要包括以下几个方面。北京木奇移动技术有限公司,专业的软件外包开发公司,欢迎交流合作。 1. …

如何将 API 管理从 Postman 转移到 Apifox

上一篇推文讲到用 Swagger 管理的 API 怎么迁移到 Apifox,有许多同学反馈说能不能介绍一下 Postman 的迁移以及迁移过程中需要注意的事项。那么今天,它来了! 从 Postman 迁移到 Apifox 的方法有两种: 导出 Postman 集合 &#x…