智能循迹小车实训报告.docx
《智能循迹小车实训报告.docx》由会员分享,可在线阅读,更多相关《智能循迹小车实训报告.docx(20页珍藏版)》请在冰豆网上搜索。
![智能循迹小车实训报告.docx](https://file1.bdocx.com/fileroot1/2023-1/24/74d97a7f-e833-43a5-a02a-a11e7ce6b063/74d97a7f-e833-43a5-a02a-a11e7ce6b0631.gif)
智能循迹小车实训报告
实训报告
课程名称:
单片机实训
完成日期:
年月日
任务书
实训(习)题目:
智能小车的功能设计与实现
实训(习)目的:
()、巩固、加深和扩大单片机应用的知识面,提高综合及灵活运用所学知识解决工业控制的能力;
()培养针对课程需要。
锻炼学生查阅有关手册、图标及文献资料的自学能力,提高组成系统、编程、调试的动手能力;
()对课程的方案分析、选择、比较、熟悉单片机系统开发、研制的过程,软硬件设计的方法、内容及步骤。
实训(习)内容:
安装智能小车及相关功能设计、调试
实训(习)要求:
本实训要求由一个团队完成,团队人员不超过个人。
通过所学知识并利用智能小车、计算机、软件、烧写软件等完成实训项目,并拟定实训报告。
能正确组装和调试智能小车。
实训完成后,根据实训内容撰写实训报告书一份。
实训报告应包括的主要内容(参考)
系统硬件组成与工作原理
控制器与最小系统
显示模块与按键模块
报警模块
电机与驱动模块的工作原理与接口
循迹模块的工作原理与接口
避障模块的工作原理与接口
功能方案及软件设计
功能设计
软件设计
(结合某一赛道、障碍设置说明程序设计思路,给出流程图、程序代码)
功能调试与总结
功能调试
排版要求:
正文小宋体;段首缩进字,行间距固定值磅。
内容展开可以按级标题形式,如:
按、、形式(如果需要)。
每个级标题另起一页,级标题三号黑体居中,题序和标题之间空两个空格,不加标点,段前、段后均为行,固定值磅。
级标题:
四号黑体左起,四号黑体,段前、段后均为磅。
三级标题:
小四号黑体左起,段前、段后均为磅。
图名、表名五号黑体,英文、数字字体为
页边距:
上、下、左厘米,右厘米,纸打印。
1系统硬件组成与工作原理
控制器与最小系统
最小系统:
要使一块单片机芯片工作起来最简陋的接线方式就是单片机的最小系统。
下面单片机的最小系统(注意:
不同封装的单片机引脚位置不同,下图是封装)。
将一块单片机芯片接成这样就能工作了。
下面分析一下电路中各个部分的作用:
1.供电电路:
脚接电源,脚接地,这样便完成了单片机的供电。
2.选择使用内部:
我们下载程序的时候是将程序下载的单片机内部的里面存放的,将端接到高电平(),就告诉单片机系统我们选择的是内部的,这样单片机工作的时候就会执行内部里面的代码了。
如果将接地,单片机就会执行扩展的外部,我们没有扩展呀,以后在没有扩展的时候我们都将它接高电平就。
3.复位电路:
复位电路由电阻和电容组成。
复位电路是用以完成单片机的复位初始化操作的(复位单片机和各个寄存器的值的)。
也就是说,在单片机还没工作之前,我们先把寄存器的值全部复位成初始的默认值然后再开始工作,避免执行程序的时候发生错乱。
那复位电路的工作原理是怎样的呢?
在单片机没上电的时候,电容两个极板没有电荷,在单片机上电的瞬间,电容两端获得电压开始充电,既然要充电那么就必定有电流通过,所以在两端产生了瞬时电压,这个电压被加到了单片机的端,单片机的端得到了一个高电平便复位了。
随着时间的推移,充满电了,再也没电流通过了,两端便没有了电压,单片机的引脚又由高电平变成了低电平,这时,单片机便开始工作了。
值得注意的是,要引起单片机的复位,加在端的高电平必须保持在一定的时间以上(连续个机器周期以上高电平)。
4.时钟电路:
时钟电路由、和晶振组成。
时钟电路的作用是给单片机提供时钟脉冲,只有给单片机提供时钟脉冲单片机才会执行程序。
显示模块与按键模块
显示模块学习目标
认识数码管是什么东西?
用点亮第一个数码管,认识一个新的芯片
集成电路的应用。
单个数码管原理图
如果需要显示字符,则段都不显示,其
他段点亮
可以根据上图算出需要的位段码值:
共阴进制:
共阳进制:
本开发板使用共阴数码管
开发板数码管模块原理图
源码编写
开始写程序之前认识一下锁存器():
顾名思义,就是把输入端的数据锁存(或送)到输出端,请看下图中的元件,第角(锁存端)为高电平的时候,右边的输入与左边的输出是直通的,就是说,输入端是什么电平,输出端就是什么电平,可以把它当作不存在。
当第角为低电平的时候,左右两端就被断开了,无论输入端怎么变化,输出端都不会变化,当第角由低电平变为高电平的一瞬间,输入端的数据立刻被传送到输出端,并且在角保持为高电平期间,输出端数据始终与输入端数据相同,如果此时我们再次把第角设置为低电平,那么以后当输入端无论再怎么变化,输出端都不会变化而是保持刚才第角在下降沿(由高电平到低电平跳变)之间时输入端的值,这样就达到了锁存数据的目的,这也就是所谓的总线设计思路,一个位的数据线加一个锁存器后就可以扩接多个元件,当选通哪个元件的片选信号,就送数据给那个元件。
先说这个元件,以后用到别的元件我们再解释。
脚接高电平,锁存不起作用,相当于直通。
相应的段赋值有效。
、、赋值则输出端分别是置,如,
则;;则;即选通第七个数码管。
程序如下
内容:
数码管使用动态扫描显示,所以可以同时看到数码管同时显示数字或者
字符,扫描原理可以参
每一个语言程序有且只有一个主函数,
循环条件永远为真,以下程序一直执行下去。
显示一个
显示一位数码管?
可以自己修改显示位数
多个数码管同时显示
上一节单个数码管显示,实际使用中单个数码管往往不能满足要求,这就需要多个数码管组合使用,单个数码管一般用静态显示,占用口线较多,如果使用普通的静态显示,单片机的口是不够用的。
所以就需要使用动态扫描。
通过程序让任意一位数码管显示任意一种字符,这样我们可以以时间为轴,循环显示每个数码管需要的数值,当循环显示的时间比较小时,眼睛就不能分辨出闪烁,而是看到一个静态的数值显示,可以通过下载数码管动态扫描和数码管动态扫描演示,就可以深入了解这个原理,以后使用的数码管显示的部分都是基于这个原理的。
总结
数码管是最常用的显示输出模块,可以显示温度,时间,步进电机转速等,数码管里面简单一点说是集成了个发光管,由点变成线,由条线个点组成个数码管,发光管我们会写程序控制它了,这个数码管一定难不到我们,原理方法是一样的,这次不是单片机口直接驱动的,是加了还有共同来控制数码管的点亮,主要是为了节省单片机口,一口多用,一个位口实现多功能控制。
学习目标
独立按键是区别于矩阵键盘的一种按键方式,主要是按键直接连接到口,另外一端连接或者,一般情况连接到(地),也就是按键按下的时候,口的电平被强制拉低,即,而通过输入检测该端口电平就可以判断按键是否按下。
硬件电路
原理图
触点存在抖动现象说明
由于按键本身都存在不同的机械抖动,单片机属于高速检测器件,可以很容易检测出抖动,但抖动并不是我们需要的,容易造成误操作,所以正常使用过程中需要添加去抖动程序,主要用于跳过抖动,避免造成干扰。
开发板独立按键模块原理图
源码编写
独立按键软件操作简单,主要检测按键连接的口是否为,为表
示按键按下。
用以下语句:
(!
)添加按键按下时需要执行的操作
实际使用中按键有固定的机械抖动,根据不同按键抖动时间不同,一般,根据这个特点,需要延时躲避抖动,由于按下和释放都会存着抖动,实际使用程序需要进行次去抖。
具体程序如下:
定义按键的输入端键
按键计数每按一下加
延时程序
按键判断程序
判断是否按下键盘
延时软件去干扰
确认按键按下
按键计数加
计次重新计数
将清零
按键锁定每按一次只加
广告灯向左移动移动函数
初始华参数设置
永远循环扫描判断按键是否按下
调用按键识别函数
调用广告灯移动函数
如果有干扰请加去抖程序
红外接收头部分用黑色物质遮光,防止干扰按键,因为红外接收和按键使用同
一个端口
报警模块
一、蜂鸣器介绍
蜂鸣器有两种:
一种是有源蜂鸣器,只要给它加上恒定的电压,就能发声,另一
种是无源蜂鸣器,必须给它加上一定频率的方波或正弦波才能发声,一般实验板
配的是无源蜂鸣器,开发板也不例外,由于驱动蜂鸣器电流要求比较大,
所以我们使用三极管来放大驱动,电路如下:
口为
图蜂鸣器外形图
注意:
喇叭和蜂鸣器不同,如果蜂鸣器直接加电源则发出固定频率的
声音。
掉电后会消失。
喇叭不同,加电压后是不发声的,但是器件处
于最大功耗状态,会有非常大的热功耗。
长时间会烧毁喇叭。
所以使
用的时候要注意,如果不是专门针对它操作,请断开它的输入信号端
子,防止误操作导致意外损坏。
二、蜂鸣器编程实例
具体编程时我们间隔一段时间将线置反,就能输出一个固定频率的方波,让
蜂鸣器响起来。
大家可能会问,给蜂鸣器多少频率的方波呢?
首先这个频率必须在音频范围内,
也就是到之间,但是到的频率送给蜂鸣器后,只有某一
点的频率是最响的,这个频率称为蜂鸣器的谐振频率,离它越远,蜂鸣器发出的
声音越轻。
开发板配的蜂鸣器的谐振频率是,其半周期是这样我们就确
定了口线每延时就要变反。
下面是一个蜂鸣器发声的实例程序:
以下程序为程序,晶振频率为
定义蜂鸣器端口
延时
喇叭发声的时间循环,改变大小可以改变发声时间长短
参数决定发声的频率,估算值
喇叭停止工作,间歇的时间,可更改
电机与驱动模块的工作原理与接口
电机驱动原理图
电机驱动接口图
电机驱动模块
采用功率三极管作为功率放大器的输出控制直流电机。
线性型驱动的电路结构和原理简单,加速能力强,采用由达林顿管组成的型桥式电路。
用单片机控制达林顿管使之工作在占空比可调的开关状态下,精确调整电动机转速。
这种电路由于工作在管子的饱和截止模式下,效率非常高,型桥式电路保证了简单的实现转速和方向的控制,电子管的开关速度很快,稳定性也极强,是一种广泛采用的调速技术。
这种调速方式有调速特性优良、调整平滑、调速范围广、过载能力大,能承受频繁的负载冲击,还可以实现频繁的无级快速启动、制动和反转等优点。
因此决定采用使用功率三极管作为功率放大器的输出控制直流电机。
循迹模块的工作原理与接口
1.6避障模块的工作原理与接口
功能方案及软件设计
功能设计
本次功能设计为智能小车循迹加避障,循迹指寻黑线走,避障指遇到障碍物小车会自动避开,寻找无障碍路线走下去;以及小车快速前进走直线后慢速后退走直线功能。
软件设计
程序设计要求
赛道一:
小车循迹黑线,在桌子上用黑线画出一个椭圆赛道,小车将沿着黑线做循迹运动;中间会设置障碍物,看小车能否自动避障。
程序代码
包含单片机头文件,内部有各种寄存器定义
包含蓝牙智能小车驱动口定义等函数
定义小车驱动模块输入口
蜂鸣器接线定义
左传感器(循迹)
右传感器(循迹)
左传感器(避障)
右传感器(避障)
信号端
信号端
左电机向前走
左边电机向后转
左边电机停转
右边电机向前走
右边电机向后走
右边电机停转
变量定义
左电机占空比
右电机占空比
延时函数
前速前进
速度调节变量。
。
。
最小,最大
左电机往前走
右电机往前走
后退函数如果看不明白,请看慧净电子智能小车视频教程
速度调节变量。
。
。
最小,最大
左电机往后走
右电机往后走
左转
右电机往前走
左电机往后走
右转
左电机往前走
右电机往后走
调制电机转速
左电机调速
调节的值改变电机转速占空比
右电机调速
中断服务子函数产生信号
定时
主函数