毕业设计 基于51单片机的视觉导航小车的设计


🔥 毕业设计和毕业答辩的要求和难度不断提升,传统的毕设题目缺少创新和亮点,往往达不到毕业答辩的要求,这两年不断有学弟学妹告诉学长自己做的项目系统达不到老师的要求。
为了大家能够顺利以及最少的精力通过毕设,学长分享优质毕业设计项目,今天要分享的是:基于51单片机的视觉导航小车的设计

1 项目硬件设计 

1.1 主控模块设计

1.1.1单片机选型

控制芯片的选择应适合设计要求,性能应具有功耗低,性能高,稳定性好,存储空间大的优点。当设计要求准确时,代码指令的兼容性就很高。 STM32结构设计最大限度地减少了外围设备,以实现最大的集成度。与STC89C51相比,它具有更多I/O口,可以进行更多的功能,包括上电复位,按钮复位,定时器时钟等功能,可以用作系统的主时钟,以满足丰富的片外设备和各种接口[2]。因此,在本设计中,选择了STM32,它起着编写程序的作用。它类似于微型计算机,可以用C语言和汇编语言进行编程,以它为核心,每个模块都连接到微控制器以实现各种功能。

1.1.2 STM32F103RCT6芯片

本设计使用STM32F103系列单片机的STM32F103RCT6作为主控制芯片。 STM32F103RCT6是嵌入式微控制器集成电路(IC)。该单片机具有32位ARM Cortex-M3内核,具有72MHz的速度和512K FLASH和48K SRAM存储器容量,具有3个ADC,13个通信接口。STM32F103系列芯片的主要参数如图1.1所示:

图1.1  STM32F103系列

其中本设计选用的STM32F103RCT6的管脚描述如图1.2所示:

图1.2  STM32F103RCT6引脚图

1.2单片机最小系统电路

STM32F103的最小系统电路由电源电路,时钟源电路,BOOT启动电路,调试接口电路,复位电路五部分组成。最小系统原理图如图1.3所示:

图1.3 最小系统原理图

晶振电路也就是时钟电路,整个系统处理信号和其它各部分运行也是一个频率,晶振电路就是为它们提供一个稳定的振荡频率,使系统各部分保持同步。本设计的晶振电路由两个30μF的电容和一个8MHZ的晶振组成。本设计使用的是内部时钟方式,即使用晶振内部电路产生时钟脉冲。

图1.4 晶振电路原理图

每个单片机系统都需要带复位电路。单片机复位电路就好比电脑的重启部分,当电脑在使用中出现死机,按下重启按钮电脑内部的程序从头开始执行。单片机也一样,当单片机系统在运行中,受到环境干扰出现程序跑飞的时候,按下复位按钮内部的程序自动从头开始执行。STM32只需在RESET接低电平信号即可实现复位功能,在单片机系统中,系统上电启动的时候复位一次,当按键按下的时候系统再次复位,如果释放后再按下,系统还会复位。所以可以通过按键的断开和闭合在运行的系统中控制其复位。图1.5如下图所示:

图1.5 复位电路原理图

1.3电机驱动模块设计

本设计使用的是L298N电机驱动模块,原理图如下图1.6所示。该芯片使用标准逻辑电平控制信号,并具有两个使能控制信号,可以检测外部电阻的变化并将该变化反馈到控制电路,为了改变车速,使用PWM脉冲编码速度控制来操控,并且通过改变DC伺服电动机的占空比电压来改变平均电压的值,从而改变电动机的速度[5]。相比于其他电机,还具有以下几点优点:

(1)直流电动机的转矩大,可以克服传动装置的摩擦转矩和负载转矩;

(2)能适应各种复杂的速度和信号的快速变化,并具有良好的响应能力;

(3)直流电动机的空载转矩大。当控制系统失速时,它可以立即做出反应并产生大扭矩,以防止汽车由于惯性而继续前进;

(4)与其他电动机相比,直流电动机声音小,运行稳定。

图1.6 L298N电机驱动模块原理图

其中,p4是电机控制部分, L298N用于驱动四个直流减速电机。本设计中,四个直流电机的线左右两边分别用不同颜色的线连接电机驱动模块的OUT1, OUT2, OUT3, OUT4,引脚A和B可用于PWM控制实现直线行驶,转弯,加速和减速等待动作。在本设计中,当给定ENA使能端的信号为1,IN1为1,IN2为0时,电动机正转;当给定的IN1为0,IN2为1时,电动机反转,原理相同,这样就能控制电动机的正反转。当给定ENA使能端的信号为0时,电动机停止转动。

1.4红外模块设计

在视觉导航小车的设计中,为了实现最基本的循迹功能以及避障功能,采用了2个TCRT5000循迹模块,2个红外避障模块。本设计中,利用红外线对不同物体的的反射特性不一样的原则,对白色物体,红外线反射多,对黑色物体,红外线反射少的特性,进行了循迹模块的设计,将左右循迹的线插在了单片机的D3和D4引脚上。循迹模块的工作原理是当左循迹模块检测到是白色,右循迹模块检测到的也是白色,小车继续根据轨迹行驶;当左循迹模块检测到是黑色,右循迹模块检测到的是白色,小车会根据检测到的信号向右行驶;当左循迹模块检测到是白色,右循迹模块检测到的是黑色,小车会根据检测到的信号向左行驶。

在本设计中,为了让小车通过两种不同方式进行避障,选用了红外避障模块,红外避障的方向是向前进行发射,和循迹是向下进行发射,在调试过程中,将左右避障模块的线分别插在了单片机的D5和D6引脚上,如图1.7所示。红外避障模块的工作原理是红外灯检测到前方有障碍物,将输出低电平,相应电路板上的指示灯点亮,如果没有障碍物,则输出高电平。

图1.7 循迹和避障模块原理图

1.5红外遥控模块设计

为了让人们可以在现场远程控制小车,从遥控器进行调试小车,让它去人们无法工作的地方进行工作,所以在本课题中加了一个红外接收头,插在了单片机的A4端口上,如下图1.8所示,用来遥控视觉导航小车。可以通过按遥控器的按钮,对小车进行控制,CH键是前进,蓝色是向左前进,绿色是向右前进,+号是向后倒退,蓝色的向右键是停止,遥控器如下图2.9所示。当用遥控器对着红外接收头控制时,红外线进入模块,它可以在其输出端便可以获悉原来发射器发出的数字编码,只要它由STM32解码程序解码,就可以知道按下了哪个按钮并执行相应的控制过程以完成红外遥控操作。

图1.9 遥控器实物图

1.6超声波避障模块设计

    为了避免小车在没人看管的情况下碰撞发生事故,又根据超声波测距,测量距离障碍物的位置可以避免这种事故,因此本设计中加入超声波避障模块以便实现该需求。

根据设计要求,当超声波模块检测到前方有障碍物时,小车会停止移动并往后退一定距离,防止小车由于速度过快,从而传感器无法分析信号,在小车后退之后,舵机会开始左右转动,超声波模块开始工作,这时超声波模块会检测到三个数据值,左侧右侧前方,这时候会进行判断,这样的连续周期测量可以达到移动测量的值,小车可以根据测量值避开障碍物。因此,为了符合项目需求,选用了HC-SR04,该模块使用电压为5V,静态电流小于2mA,感应角度不大于15度,探测距离足够。该模块共有4个引脚,两个电源引脚,2个控制引脚,并将引脚插在单片机上,超声波模块原理图如下1.10中所示。

图1.10超声波模块原理图

1.7 视觉采集模块设计

本课题的目的是为了让视觉导航小车进入人们无法进入的地方,以便人们可以在手机端或PC端看到视觉导航小车周围的环境,以执行操作和工作。因此,为了实现观察功能,必须添加摄像头。摄像头的工作原理是通过图像传感器实现的。图像传感器的工作原理是将采集的场景对象的AD样本转换为图像电信号,然后将图像电信号发送到图像。根据处理芯片的像素大小和颜色分布,将其转换为相应的数字信号。成像系统基于对转换后的数字信号的分析和提取来判断获得了用于收集视频信息的各种运动信号。当前,有CMOS摄像头和USB摄像头。基于以上分析,比较了以下两种设计方案。

方案一:使用通用的CMOS图像传感器。它内部不仅包含图像传感器,还包含转换器,并且是可以连接到SCCB接口的主机控制芯片或视频编码器。 CMOS重量轻且外围电路简单,并且可以由5V供电。

方案二:采用USB数字摄像头。摄像机无需驱动即可实时收集数字视频信息。

由于USB接口是当前广泛使用的接口模式,即插即用且易于使用,因此,选择了Mosheng rqeso 008 USB摄像头。为了使电路设计更加简单方便,所以采用USB连接,仅从连接WIFI模块获得的电压可以满足摄像头正常工作所需的电压,因此无需连接外部电压。尽管就捕获动态图像和成像清晰度而言,USB摄像头无法与接口摄像头相提并论,但其操作简单且即插即用。

1.8 WIFI模块设计

随着时代的不断进步,WIFI技术也在不断完善,甚至进入人们的生活,无论人们身在何处,都可以连接WIFI进行娱乐。由于通信方式比传统通信方式具有更大的覆盖范围,布线相对简单,传输速度快,因此可以应用于机电设备密集,空间小的煤矿,在有线电缆连接很困难的环境中,并满足复杂工业现场对环境危害的各种要求,因此在视觉导航小车的设计中,为了使人们能够实时观察视觉导航小车的行驶周边情况,并可以在PC或手机上控制小车,所以本课题是在视觉导航小车中添加WIFI模块进行传输,在安装完WIFI模块之后,将杜邦线插在单片机的端口上,根据顺序依次连接。该模块体积小,功耗低,发热量低,WIFI和网络端口的传输性能稳定。模块的外围电路非常简单,仅需添加3.3V直流电源即可启动系统并控制WIFI。其参数以及实物如下1.11和1.12所示。

图1.11 WIFI模块参数图

图1.12 WIFI模块实物图

2 仿真与调试

2.1 系统硬件调试

在调试的过程中,小车循迹出现了在地面上不走的情况,于是检查了两路循迹探头的发射和接收有没有焊接好,然后调节了上面的电位器,增加它的灵敏度,这样做了之后还是不好使,于是检查了红外发射二极管有没有红外光发出,打开手电筒功能对着红外发射二极管,看有没有红外光发出,发现没有红外光发出,找了商家重新更换了循迹探头,最后实现了功能。

在调试循迹功能的过程中,发现小车在规定的轨道上可以进行移动,但是拐弯的时候,会跑出轨道,检查程序,程序没有错误,于是把目标转到循迹探头灵敏度,原因是灵敏度太强了,于是看哪边先出的轨道,就把对应的那个循迹探头上面的电位器往顺时针方向调节降低灵敏度,最后实现功能。

2.2 系统软件调试

在软件调试过程中,点击编译按键,若文件在系统中正常运行,会在下面的应用窗口上显示提示信息。若显示的提示的信息中有“error”,就要根据提示找到错误程序并且进行改正,无提示错误信息的图如下2.1所示。

图2.1 无错误信息图

在程序编译无错误之后,烧录程序到单片机中,开始验证系统功能是否满足要求,如果功能有问题,需要继续调试程序,反复进行,直到所有功能都满足为止。

但在实际调试过程中,首次对程序进行编译时提示窗口提示错误,经过检查发现在程序句中无分号以及少符号。

2.3实物测试

根据本设计需求,对实物功能进行逐一测试:

(1)当按钮启动的同时,小车可以在平面上进行运动; 

(2)小车可以避开障碍物,选择一条无碰路径,遇见障碍物就停止运动;

(3)小车能够将控制器发出的命令以及采集出来视频与控制器连接;

(4)PC或手机可以清晰显示小车采集到的视频数据以及可以显示各种命令。

所有预设功能均以实现,实物展示图如图2.2所示。

图2.2 实物展示图

如果你需要帮助、建议或解决问题,不要犹豫,可以随时向老师提问或寻求支持。专注于单片机的解决方案可以为你提供有关电子设计、嵌入式系统、编程和硬件方面的宝贵信息。无论你的问题涉及到哪个方面,都可以向老师咨询,以获得有针对性的建议和指导。祝愿你在单片机设计领域取得成功!

  • 1
    点赞
  • 9
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
第一章.... 4 【实例1】使用累加器进行简单加法运算:... 4 【实例2】使用B寄存器进行简单乘法运算:... 4 【实例3】通过设置RS1,RS0选择工作寄存器区1:... 4 【实例4】使用数据指针DPTR访问外部数据数据存储器:... 4 【实例5】使用程序计数器PC查表:... 4 【实例6】if语句实例:... 4 【实例7】switch-case语句实例:... 4 【实例8】for语句实例:... 4 【实例9】while语句实例:... 5 【实例10】do…while语句实例:... 5 【实例11】语句形式调用实例:... 5 【实例12】表达式形式调用实例:... 5 【实例13】以函数的参数形式调用实例:... 5 【实例14】函数的声明实例:... 5 【实例15】函数递归调用的简单实例:... 5 【实例16】数组的实例:... 6 【实例17】指针的实例:... 6 【实例18】数组与指针实例:... 6 【实例19】P1口控制直流电动机实例... 6 第二章.... 8 【实例20】用74LS165实现串口扩展并行输入口... 8 【实例21】用74LS164实现串口扩展并行输出口... 10 【实例22】P0 I/O扩展并行输入口... 12 【实例23】P0 I/O扩展并行输出口... 12 【实例24】用8243扩展I/O端口... 12 【实例25】用8255A扩展I/O口... 14 【实例26】用8155扩展I/O口... 19 第三章.... 26 【实例29】与AT24系列EEPROM接口及驱动程序... 26 【实例30】EEPROM(X5045)接口及驱动程序... 30 【实例31】与铁电存储器接口及驱动程序... 33 【实例32】与双口RAM存储器接口及应用实例... 35 【实例33】与NANDFLASH(K9F5608)接口及驱动程序... 35 第四章.... 43 【实例34】独立键盘控制... 43 【实例35】矩阵式键盘控制... 44 【实例36】改进型I/O端口键盘... 46 【实例37】PS/2键盘的控制... 49 【实例38】LED显示... 53 【实例39】段数码管(HD7929)显示实例... 54 【实例40】16×2字符型液晶显示实例... 55 【实例41】点阵型液晶显示实例... 61 【实例42】LCD显示图片实例... 63 第五章.... 70 【实例43】简易电子琴的设计... 70 【实例44】基于MCS-51单片机的四路抢答器... 71 【实例45】电子调光灯的制作... 76 【实例46】数码管时钟的制作... 81 【实例47】LCD时钟的制作... 96 【实例48】 数字化语音存储与回放... 103 【实例49】电子标签设计... 112 第六章.... 120 【实例50】指纹识别模块... 121 【实例51】数字温度传感器... 121 第七章.... 124 【实例53】超声波测距... 124 【实例54】数字气压计... 125 【实例55】基于单片机的电压表设计... 132 【实例56】基于单片机的称重显示仪表设计... 133 【实例57】基于单片机的车轮测速系统... 136 第八章.... 138 【实例58】电源切换控制... 138 【实例59】步进电机控制... 140 【实例60】单片机控制自动门系统... 141 【实例61】控制微型打印机... 144 【实例62】单片机控制的EPSON微型打印头... 144 【实例63】简易智能电动车... 145 【实例64】洗衣机控制器... 149 第九章.... 152 【实例65】串行A/D转换... 152 【实例66】并行A/D转换... 153 【实例67】模拟比较器实现A/D转换... 154 【实例68】串行D/A转换... 155 【实例69】并行电压型D/A转换... 156 【实例70】并行电流型D/A转换... 156 【实例71】file:///C:\DOCUME~1\ADMINI~1\LOCALS~1\Temp\msohtmlclip1\01\clip_image002.gif接口的A/D转换... 157 【实例72】file:///C:\DOCUME~1\ADMINI~1\LOCALS~1\Temp\msohtmlclip1\01\clip_image002.gif接口的D/A转换... 161 第十章.... 164 【实例73】单片机间双机通信... 164 【实例74】单片机间多机通信方法之一... 166 【实例75】单片机间多机通信方法之二... 171 【实例76】 PC与单片机通信... 176 【实例77】红外通信接口... 178 第十一章.... 180 【实例79】单片机实现PWM信号输出... 180 【实例80】实现基于单片机的低频信号发生器... 182 【实例81】软件滤波方法... 183 【实例82】FSK信号解码接收... 186 【实例83】单片机浮点数运算实现... 187 【实例84】神经网络在单片机中的实现... 192 【实例85】信号数据的FFT变换... 194 第十二章.... 198 【实例86】file:///C:\DOCUME~1\ADMINI~1\LOCALS~1\Temp\msohtmlclip1\01\clip_image005.gif总线接口的软件实现... 198 【实例87】SPI总线接口的软件实现... 200 【实例88】1-WIRE总线接口的软件实现... 205 【实例89】单片机外挂CAN总线接口... 207 【实例90】单片机外挂USB总线接口... 210 【实例91】单片机实现以太网接口... 214 【实例92】单片机控制GPRS传输... 221 【实例93】单片机实现TCP/IP协议... 223 第十三章.... 229 【实例94】读写U盘... 229 【实例95】非接触IC卡读写... 234 【实例96】SD卡读写... 238 【实例97】高精度实时时钟芯片的应用... 242 第十四章.... 247 【实例98】智能手机充电器设计... 247 【实例99】单片机控制门禁系统... 248

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值