单片机运动控制系统设计
摘 要
本文介绍了利用红外反射式传感器实现小车自动寻迹的设计与实现。本设计中的小车能够自动识别路线 ,......。
......。
关键词:自动寻迹;传感器;单片机;机器人;数据采集
Abstract
This article introduces the design and execution of auto-searching for track by usage of the reflected infrared sensor on the auto-guided car. The car discern the routs automatically, .......
.......
Keyword: Auto-tracking;Infrared Sensor; Single-chip microcomputer; Robot; Data Collection
目 录
1 绪 论. 1
1.1机器人的运动控制背景. 1
1.2 本设计的应用及意义. 1
1.3 论文主要工作. 1
2 系统总体方案. 2
2.1 系统总体规划. 2
2.2 单片机内部结构及接口描述. 2
2.3 技术指标. 2
2.4 主要芯片的选型. 2
2.4.1 电机驱动芯片的选型. 2
2.4.2温度传感器芯片的选型. 3
2.5 其他芯片的简介. 3
2.5.1 ATMEL 93C46 3
2.5.2 LCD1602 3
2.5.3 74HC540 3
2.5.4 74HC245 3
3 硬件设计与实现. 4
3.1系统运动控制部分设计. 4
3.1.1 电机选型. 4
3.1.2 L298N驱动电机. 4
3.2 寻迹模块设计. 4
3.3无线电发射接收模块介绍. 4
3.4测温系统设计. 5
3.5 电源. 5
3.5.1电源的选型. 5
3.5.2稳压电路设计. 5
3.5.3抗干扰设计. 5
4 测试及其控制程序设计. 6
5 总结与展望. 7
致 谢. 8
参考文献. 9
附录1 机器实体照片. 10
近年来,人类的生产和生活方式发生了巨大的变化,产生这一变化的重要原因就是计算机技术的飞速发展。第一台计算机诞生至今仅仅几十年的时间,计算机的性能已经大大提高,价格不断的下降,从而使之可以迅速而广泛地应用于人类的生产和生活的各个领域。然而机器人的发展无疑得益于计算机技术的发展。
......
什么叫机器人?
......
本文的设计正是一个本着学习、创新和服务人类的思想的机器人设计。让机器按照自己预定的想法和目的运作,一直是我人生的追求和梦想。我选择自动化专业,正是要加入自动化这个大家庭,吸收文化不断提高自己,不断的走近自己的梦想。
.....
本论文主要的工作就是通过一个自动寻线小车的软件、硬件和整体结构的设计和实现,......。
本章围绕系统的总体设计,介绍系统组成框图、主控芯片单片机的内部硬件资源及其接口技术、整个机器人系统所用到的其它IC的介绍。
整个系统的构成是由两部分组成。一部分的用于整个机器人系统的运动控制, 一部分的机器人体内装载的传感器件,负责检测和采集现场的环境参数。
......
......
......,P3口也接收一些控制信号,如表 2-1所示。
表 2-1 各口线的特殊功能和信号名称
......
......
......
考虑到,本机器人需要的驱动能力比较高,......。
......,外型如图2-4示。
图2-4 L298N外型
考虑到......。
本设计是......。
IC:93c46是储存器件(如图2-6示),负责储存机器人系统中温度采集系统采集到的温度参数。
......
......
......
74HC245是8总线收发......。
......
本设计的机器人采用废弃的电脑光驱机盒钢板做为整个硬件体系的骨架,......。
......
......
L298N芯片已在电机驱动芯片的选型一节介绍过,本设计中具体应用电路进行说明,如图3-1示。
......
......
本设计采用辅助模块,无线电发射模块原理图如图3-14示,就是为了达到远程手动控制的目的,由于无线电的设计涉及的学科知识面比较广,调频比较困难。故此本设计直接应用市场上的成品无线电模块,出于成本的考虑,选用的无线电的有效控制距离是比较短的,但是这个不限制本设计功能的实现,距离的远近用户完全可以根据需要更换模块。
......
......................................,驱动电流约2mA,与发射器上的四个按键一一对应。
......,表3-1中5个输出引脚10、11、12、13、VT的“0”代表低电位OV,1代表高电位5V。
表3-1 接收模块输出电位表
续表3-1
本设计采用LCD1602作为显示器件,相比数码管显示,显示内容丰富更加丰富、显示方式更为灵活,而且硬件电路得到简化。LCD1602作为一款非常经典的液晶显示模块,具有良好的性价比,完全符合和满足本设计的要求。
......
由于本系统需要电池供电,我们考虑了如下集中方案为系统供电。
......
......
由于此单片机控制的运动系统,工作在各种恶劣的环境中,所以抗干扰处理是必不可少的。
......
......
......
自从我接触单片机,到现在能够用以单片机为控制核心设计出我的毕业设计——单片机运动控制系统设计。这是一个学习的过程,......。
......
......
[12] 高稚允,高岳. 光电检测技术[M]. 北京:国防工业出版社,1995.
[13] 金篆芷,王明时. 现代传感技术[M]. 北京:电子工业出版社,1995
[14] 罗志增 .简易红外接近觉传感器 [C].全国青年第三届机器人学研讨会论文集 ,1990.
[15] Brian W. Kernighan & Dennis M. Ritchie . The C Programming Language (The second Edition). Prentice-Hall , 1988.
......
摘 要
本文介绍了利用红外反射式传感器实现小车自动寻迹的设计与实现。本设计中的小车能够自动识别路线 ,......。
......。
关键词:自动寻迹;传感器;单片机;机器人;数据采集
Abstract
This article introduces the design and execution of auto-searching for track by usage of the reflected infrared sensor on the auto-guided car. The car discern the routs automatically, .......
.......
Keyword: Auto-tracking;Infrared Sensor; Single-chip microcomputer; Robot; Data Collection
目 录
1 绪 论. 1
1.1机器人的运动控制背景. 1
1.2 本设计的应用及意义. 1
1.3 论文主要工作. 1
2 系统总体方案. 2
2.1 系统总体规划. 2
2.2 单片机内部结构及接口描述. 2
2.3 技术指标. 2
2.4 主要芯片的选型. 2
2.4.1 电机驱动芯片的选型. 2
2.4.2温度传感器芯片的选型. 3
2.5 其他芯片的简介. 3
2.5.1 ATMEL 93C46 3
2.5.2 LCD1602 3
2.5.3 74HC540 3
2.5.4 74HC245 3
3 硬件设计与实现. 4
3.1系统运动控制部分设计. 4
3.1.1 电机选型. 4
3.1.2 L298N驱动电机. 4
3.2 寻迹模块设计. 4
3.3无线电发射接收模块介绍. 4
3.4测温系统设计. 5
3.5 电源. 5
3.5.1电源的选型. 5
3.5.2稳压电路设计. 5
3.5.3抗干扰设计. 5
4 测试及其控制程序设计. 6
5 总结与展望. 7
附录1 机器实体照片. 8
参考文献. 9
致 谢. 10
1、并行接口
并行接口又简称为“并口”。目前,计算机中的并行接口主要作为打印机端口,使用的不再是36 针接头而是25 针D 形接头。所谓“并行”,是指8 位数据同时通过并行线进行传送,这样数据传送速度大大提高,但并行传送的线路长度受到限制 ,因为长度增加,干扰就会增加,数据也就容易出错。现在有5 种常见的并口:4 位、8 位、半8 位、EPP 和ECP,大多数PC 机配有4 位或8 位的并口,支持全部IEEE1284 并口规格的计算机基本上都配有ECP 并口。
2、串行接口
计算机的标准接口叫做串行接口,简称为“串口”。现 在的PC 机一般有两个串行口COM 1 和COM 2 。串行口不 同于并行口之处在于它的数据和控制信息是一位接一位 地传送出去的。 虽然这样速度会慢一些,但传送距离较并行口更长, 因此若要进行较长距离的通信时,应使用串行口。通常 COM 1 使用的是9 针D 形连接器,而COM 2 有的使用的是 老式的DB25 针连接器。
3、USB 接口
USB 即“Universal Serial Bus ”,中文名称为通 用串行总线。这是近两年逐步在PC 领域广为应用的新型接口技术。理论上讲,USB 技术由3 部分组成:具备USB 接口的PC 系统、能够支持USB 系统软件和使用USB 接口 的设备。
4、IEEE 1394 接口
IEEE 1394 接口具有高速、可热插拔等特点,在视 频系统中被广泛应用。由于电脑的飞速发展,现在已经在PC 机上看到1394 的身影了,如技嘉推出的GA-6VX7- 1394 主板就具有3 个1394 接口。IEEE 1394 的主板可广 泛利用在各种视频系统中,可通过IEEE 1394 接口简单 地将数码相机(VCR)里的数据直接送到PC 机里进行处理, 或通过IEEE 1394 接口传输到1394 硬盘里保存。而且 IEEE 1394 接口还可以用于网络连接,所有的设备均可通过IEEE 1394 接口高速传输数据。
5、硬盘中的SATA接口
使用SATA(Serial ATA)口的硬盘又叫串口硬盘,是未来PC机硬盘的趋势。20##年,由Intel、APT、Dell、IBM、希捷、迈拓这几大厂商组成的Serial ATA委员会正式确立了Serial ATA 1.0规范,20##年,虽然串行ATA的相关设备还未正式上市,但Serial ATA委员会已抢先确立了Serial ATA 2.0规范。Serial ATA采用串行连接方式,串行ATA总线使用嵌入式时钟信号,具备了更强的纠错能力,与以往相比其最大的区别在于能对传输指令(不仅仅是数据)进行检查,如果发现错误会自动矫正,这在很大程度上提高了数据传输的可靠性。串行接口还具有结构简单、支持热插拔的优点。
串口硬盘是一种完全不同于并行ATA的新型硬盘接口类型,由于采用串行方式传输数据而知名。相对于并行ATA来说,就具有非常多的优势。首先,Serial ATA以连续串行的方式传送数据,一次只会传送1位数据。这样能减少SATA接口的针脚数目,使连接电缆数目变少,效率也会更高。实际上,Serial ATA 仅用四支针脚就能完成所有的工作,分别用于连接电缆、连接地线、发送数据和接收数据,同时这样的架构还能降低系统能耗和减小系统复杂性。其次,Serial ATA的起点更高、发展潜力更大,Serial ATA 1.0定义的数据传输率可达150MB/s,这比目前最新的并行ATA(即ATA/133)所能达到133MB/s的最高数据传输率还高,而在Serial ATA 2.0的数据传输率将达到300MB/s,最终SATA将实现600MB/s的最高数据传输率。
串行接口Serial Interface是指数据一位位地顺序传送,其特点是通信线路简单,只要一对传输线就可以实现双向通信,并可以利用电话线,从而大大降低了成本,特别适用于远距离通信,但传送速度较慢。一条信息的各位数据被逐位按顺序传送的通讯方式称为串行通讯。串行通讯的特点是:数据位传送,传按位顺序进行,最少只需一根传输线即可完成;成本低但送速度慢。串行通讯的距离可以从几米到几千米;根据信息的传送方向,串行通讯可以进一步分为单工、半双工和全双工三种。
串口的出现是在1980年前后,数据传输率是115kbps~230kbps。串口出现的初期是为了实现连接计算机外设的目的,初期串口一般用来连接鼠标和外置Modem以及老式摄像头和写字板等设备。串口也可以应用于由于两台计算机(或设备)之间的互联及数据传输。由于串口(COM)不支持热插拔及传输速率较低目前部分新主板和大部分便携电脑已开始取消该接口,目前串口多用于工控和测量设备以及部分通信设备中。
串口通信的概念非常简单,串口按位(bit)发送和接收字节。尽管比按字节(byte)的并行通信慢,但是串口可以在使用一根线发送数据的同时用另一根线接收数据。它很简单并且能够实现远距离通信。比如IEEE488定义并行通行状态时,规定设备线总常不得超过20米,并且任意两个设备间的长度不得超过2米;而对于串口而言,长度可达1200米。典型地,串口用于ASCII码字符的传输。通信使用3根线完成:(1)地线,(2)发送,(3)接收。由于串口通信是异步的,端口能够在一根线上发送数据同时在另一根线上接收数据。其他线用于握手,但是不是必须的。串口通信最重要的参数是波特率、数据位、停止位和奇偶校验。
在Qt中并没有特定的串口控制类,现在大部分人使用的是第三方写的qextserialport类,这里也使用了该类。qextserialport类由以下文件组成:
posix_qextserialport.h、posix_qextserialport.cpp、qextserialbase.h、qextserialbase.cpp、qextserialenumerator.h、qextserialenumerator.cpp、qextserialport.h、qextserialport.cpp、win_qextserialport.h、win_qextserialport.cpp。
qextserialbase.cpp和qextserialbase.h文件定义了一个QextSerialBase类,win_qextserialport.cpp和win_qextserialport.h文件定义了一个Win_QextSerialPort类,posix_qextserialport.cpp和posix_qextserialport.h文件定义了一个Posix_QextSerialPort类,qextserialport.cpp和qextserialport.h文件定义了一个QextSerialPort类。这个QextSerialPort类就是上面所说的那个,它是所有这些类的子类,是最高的抽象,它屏蔽了平台特征,使得在任何平台上都可以使用它。
下面是几个类的关系图
可以看到它们都继承自QIODevice类,所以该类的一些函数也可以直接来使用。图中还有一个QextBaseType类,其实它只是一个标识,没有具体的内容,它用来表示Win_QextSerialPort或Posix_QextSerialPort 中的一个类,因为在QextSerialPort类中使用了条件编译,所以QextSerialPort类既可以继承自Win_QextSerialPort类,也可以继承自Posix_QextSerialPort类,所以使用了QextBaseType来表示。这一点可以在qextserialport.h文件中看到。再说QextSerialPort类,其实它只是为了方便程序的跨平台编译,使用它可以在不同的平台上,根据不同的条件编译继承不同的类。所以它只是一个抽象,提供了几个构造函数而已,并没有具体的内容。在qextserialport.h文件中的条件编译内容如下:
/*POSIX CODE*/
#ifdef _TTY_POSIX_
#include “posix_qextserialport.h”
#define QextBaseType Posix_QextSerialPort
/*MS WINDOWS CODE*/
#else
#include “win_qextserialport.h”
#define QextBaseType Win_QextSerialPort
#endif
所以,其实没有必要使用这个类,直接使用Win_QextSerialPort或Posix_QextSerialPort就可以了。当然如果你想使用这个类,实现同样的源程序可以直接在Windows和Linux下编译运行,那么一定要注意在Linux下这里需要添加 #define _TTY_POSIX_ 。
QextSerialBase类继承自QIODevice类,它提供了操作串口所必需的一些变量和函数等,而Win_QextSerialPort和Posix_QextSerialPort均继承自QextSerialBase类,Win_QextSerialPort类添加了Windows平台下操作串口的一些功能,Posix_QextSerialPort类添加了Linux平台下操作串口的一些功能。所以说,在Windows下使用Win_QextSerialPort类,在Linux下使用Posix_QextSerialPort类。
在QextSerialBase类中还涉及到了一个枚举变量QueryMode。它有两个值Polling和EventDriven 。QueryMode指的是读取串口的方式,下面我们称为查询模式,我们将Polling称为查询方式Polling,将EventDriven称为事件驱动方式。
事件驱动方式EventDriven就是使用事件处理串口的读取,一旦有数据到来,就会发出readyRead()信号,我们可以关联该信号来读取串口的数据。在事件驱动的方式下,串口的读写是异步的,调用读写函数会立即返回,它们不会冻结调用线程。而查询方式Polling则不同,读写函数是同步执行的,信号不能工作在这种模式下,而且有些功能也无法实现。但是这种模式下的开销较小。我们需要自己建立定时器来读取串口的数据。
需要实现串口的参数设置,接受数据以及发送数据,文件传输的模块。通过qtcreator来进行界面的规划,使用布局管理器以及qt的控件来进行串口助手的界面实现。通过编辑ui文件,添加相应的控件来进行ui的设计。通过布局管理器,把mainwindow分成几块。使用了一个qtextbrowser显示要接收的数据。通过qcombobox来进行串口参数的设置。串口需要设置的参数为:串口号、波特率、数据位、校验位、停止位、是否连续发送、发送间隔为多少。
需要实现对应功能的按钮,打开串口,关闭串口,添加串口,读取间隔,读取文件,写入文件、保存数据、计数清零、清空串口,这些功能按钮的实现。使串口助手能通过点击对应按钮来使用对应的功能。
打开串口需要通过设置对应的qcombobox设置对应的参数来打开串口。添加串口用来关闭当前使用的串口。添加串口用来添加串口。读取间隔是用来设置读取串口数据的时间间隔。读取文件是将外部文件载入作为发送内容。写入文件是吧读取数据写入文件。保存数据是用来保存收发框的内容。计数清零是用来清零应经收到的字节数。清空串口是用来清空串口中的I/O数据
......
......
考虑到,本机器人需要的驱动能力比较高,......。
......,外型如图2-4示。
图2-4 L298N外型
考虑到......。
本设计是......。
IC:93c46是储存器件(如图2-6示),负责储存机器人系统中温度采集系统采集到的温度参数。
......
......
......
74HC245是8总线收发......。
......
首先获取串口名,并且以Polling方式来查询串口,尝试打开串口,相关代码如下:
QString portName = ui->portNameComboBox->currentText(); //获取串口名
myCom = new Win_QextSerialPort(portName, QextSerialBase::Polling);
//这里QextSerialBase::QueryMode应该使用QextSerialBase::Polling
if(myCom->open(QIODevice::ReadWrite)){
QMessageBox::information(this, tr("打开成功"), tr("已成功打开串口 ") + portName, QMessageBox::Ok);
}else{
QMessageBox::critical(this, tr("打开失败"), tr("未能打开串口 ") + portName + tr("\n该串口设备不存在或已被占用"), QMessageBox::Ok);
return;
}
设置串口的参数,包括波特率,数据位,校验位,停止位,先关代码如下:
//设置波特率
myCom->setBaudRate((BaudRateType)ui->baudRateComboBox->currentIndex());
//设置数据位
myCom->setDataBits((DataBitsType)ui->dataBitsComboBox->currentIndex());
//设置校验
myCom->setParity((ParityType)ui->parityComboBox->currentIndex());
//设置停止位
myCom->setStopBits((StopBitsType)ui->stopBitsComboBox->currentIndex());
//界面控制
默认以间隔读取来读取串口数据,相关代码如下
setActionsEnabled(true);
//开启读取定时器
timer->start(timerdly);
//设置数据流控制
myCom->setFlowControl(FLOW_OFF);
//设置延时
myCom->setTimeout(TIME_OUT);
使用一个QByteArray类型的临时变量temp变量来读取串口的数据,当temp不为空时,就把读取到的数据显示到用来接收数据的qtextbrowser上面。并且根据设定的显示方式显示出来。部分实现代码如下:
QByteArray temp = myCom->readAll();
if(!temp.isEmpty()){
if(write2fileName.isEmpty()){
ui->textBrowser->setTextColor(Qt::lightGray);
ui->textBrowser->append(tr("接收: "));
ui->textBrowser->setTextColor(Qt::black);
if(ui->ccradioButton->isChecked()){
ui->textBrowser->append(temp);
}else if(ui->chradioButton->isChecked()){
ui->textBrowser->append(tr("")+temp.toHex());
}else{
ui->textBrowser->append(tr("")+temp.toInt());
}
}
先判断当前是否在发送数据,如果正在发送,将会暂停发送,如果发送的数据位空,将出现提示,并且根据用户设置是否连续发送来进行发送,部分相关能代码如下:
//如果当前正在连续发送数据,暂停发送
if(ui->sendmsgBtn->text() == tr("暂停")){
obotimer->stop();
return;
}
//如果发送数据为空,给出提示并返回
if(ui->sendMsgLineEdit->text().isEmpty()){
QMessageBox::information(this, tr("提示消息"), tr("没有需要发送的数据"), QMessageBox::Ok);
return;
}
//发送数据
myCom->write(ui->sendMsgLineEdit->text().toAscii());
本设计采用LCD1602作为显示器件,相比数码管显示,显示内容丰富更加丰富、显示方式更为灵活,而且硬件电路得到简化。LCD1602作为一款非常经典的液晶显示模块,具有良好的性价比,完全符合和满足本设计的要求。
......
由于本系统需要电池供电,我们考虑了如下集中方案为系统供电。
......
......
由于此单片机控制的运动系统,工作在各种恶劣的环境中,所以抗干扰处理是必不可少的。
......
......
......
自从我接触单片机,到现在能够用以单片机为控制核心设计出我的毕业设计——单片机运动控制系统设计。这是一个学习的过程,......。
......
......
[12] 高稚允,高岳. 光电检测技术[M]. 北京:国防工业出版社,1995.
[13] 金篆芷,王明时. 现代传感技术[M]. 北京:电子工业出版社,1995
[14] 罗志增 .简易红外接近觉传感器 [C].全国青年第三届机器人学研讨会论文集 ,1990.
[15] Brian W. Kernighan & Dennis M. Ritchie . The C Programming Language (The second Edition). Prentice-Hall , 1988.
毕业论文参考选题表1.AGV自动导引小车的设计(字数:12258.页数:47118)2.工业机器人(字数:10736.页数:291…
机电一体化专业毕业论文参考题目一、现代机电控制技术应用方面(包括系统设计或设计、维修技术难点分析的论文)1.土高精度大屏幕LED日…
公益项目风险控制方法研究目录第一章:绪论(一)选题背景(二)研究的目的和意义1.研究目的2.研究意义(三)国内外研究现状1.公益项…
小动物(伴侣动物)临床的相关研究兽医临床手术方法的改进兽医外科感染性疾病用药体会273例犬瘟热病例病情发病及治疗情况调查长时间吸入…
公司简介芜湖鸠兹建设有限公司始建于19xx年x月,位于芜湖市中山北路26号。公司经国家建设部批准为房屋建筑工程施工总承包壹级企业,…
桂林电子科技大学职业技术学院姓名:詹晓琴学号:091253206专业:电子商务论文选题方向为:中小企业的国际贸易与电子商务题目:论…
目录毕业论文原创性声明和毕业论文版权使用授权书摘要Abstract插图索引附表索引一绪论1二整体真实相关概念的界定3一整体真实3二…
图书分类号密级毕业论文企业财务风险分析与防范班级学号学生姓名学院名称专业名称指导教师08财务管理1班陶禹竹管理学院财务管理李佰阳2…
安徽大学成教院毕业设计论文年级专业09计算机信息管理学生姓名指导教师专业负责人答辩日期毕业设计开题报告网络信息安全与防范摘要网络发…
单片机运动控制系统设计摘要本文介绍了利用红外反射式传感器实现小车自动寻迹的设计与实现本设计中的小车能够自动识别路线关键词自动寻迹传…
各位老师:试卷、教案和学生论文是教育部评估检查的重点之一。按照以往情况,论文摘要和参考文献通常在检查中首当其冲。本周教务例会提出论…