# **一、作品介绍**
```
本项目来自寒假训练营,采用GD32F470ZGT6为内核的四驱智能小车,
循迹、超声波避障、蓝牙遥控集一体的小车。用18650锂电池供电。
预留了OLED接口,待完成OLED显示部分,同时准备以后将小车底板改
小,然后结合四旋翼无人机,制作陆空两用小车;将轮胎改成麦克纳
姆轮,实现小车更高的移动自由度;将红外传感器改成灰度传感器,
实现道路选择;增加一个手柄遥控,实现远程遥控功能;增加一个摄
像头,实现图像处理功能;增加GPS,实现小车集群运动功能。
```
在本次寒假训练营,我学习到了:
1、利用车头的两个LED,模拟汽车灯光系统,学习单片机的输出功能;
2、使用独立按键,模拟汽车一键启动功能,学习单片机的输入检测;
3、使用电池电压检测功能,学习ADC电压采集功能;
4、四路电机独立控制,实现小车自如移动,学习电机驱动及PWM输出功能;
5、使用SR04超声波测距,实现小车避障功能,学习传感器的使用;
6、红外光电对管,实现小车循迹功能,学习传感器的使用;
7、使用蓝牙模块,通过手机APP控制小车行驶,掌握串口协议与数据传输;
实物展示
- - -
![梁山派多功能循迹小车.jpg]

![2 (2).jpg]

![2 (1).jpg]

# 二、功能介绍
- - -
###### **1、电源模块**
电源的输入选用了14500两节锂电池供电(后期因为容量问题换成了18650),工作电压为3.7*2=7.4V,通过LDO线性稳压芯片降压5v给主控芯片、模块供电,锂电池7.4v给四个N20电机驱动芯片进行供电,保证各个模块之间稳定工作。
![image.png]

###### **2、循迹模块**
红外循迹电路是以 ITR9909传感器为核心,使用LM393比较器进行检测输入状态,配合电位器,可以调节ITR9909传感器的灵敏度,从而调节测量距离,使测量距离在1mm~15mm范围内调节。
小车循迹一般是在白色地板上沿着一根黑线行走,利用红外光在不同颜色的反射情况进行识别。红外光一直对外发射,车底如果是白色地板,光线会被折射回去,此时接收管接收到信号,经过比较器输出低电平,LED指示灯亮,单片机检测到低电平;如果车行驶在黑线周边,红外光被黑色吸收,接收管接收不到发射的信号,此时比较器电路输出为高电平,LED指示灯熄灭,单片机检测到高电平。
本次小车利用的是五路循迹,利用合适的算法,调整检测黑线后的操作步骤即可实现小车循迹,一直沿着黑线走的功能,在五路循迹同时检测到黑线时小车停止。同时在小车需要往哪边偏移时,相应的左右车灯即可闪烁。
实物图如下:
![image.png]

电路图如下:
![image.png]

###### **3、超声波避障模块**
超声波模块的型号为HY-SR04,使用五个引脚与单片机连接,分别是GND、OUT、VCC、Trig以及Echo引脚,除去电源引脚,只需要两根信号线就可以检测超声波检测前方障碍物的距离。
HY-SR04采用IO口Trig触发测距,首先要给HY-SR04最少10us的高电平信号,然后模块会自动发送8个40kHz周期的电平并检测回波,一旦检测到有回波信号则输出回响信号,然后通过IO口Echo输出一个高电平,高电平持续的时间就是超声波从发射到返回的时间,从而可以计算出测试距离为:(高电平时间*声速(340M/S))/2
时序图如下:
![image.png]

实物图如下:
![image.png]

电路图如下:
![image.png]

###### **4、蓝牙模块**
HC05蓝牙是常见的智能小车无线控制方案,当然还可以选用红外、WiFi、2.4G等方案,蓝牙控制简单易学,可以直接利用手机APP直接遥控,十分方便,缺点就是传输距离不能太长,10m外就自动断连了,当然,还可以顺便学习一下蓝牙APP的设计。
HC05蓝牙模块一共有6个引脚。EN引脚用于控制蓝牙模块进入AT指令,设置为高电平时,可以设置蓝牙模块的状态与数据传输;VCC引脚和GND引脚为电源输入引脚,输入电压范围为3.6-6V;TXD和RXD是用于与单片机连接的串口引脚,其中RXD接单片机的TXD,TXD接单片机的RXD引脚,此处需留意不能接反;最后一个引脚为STATE引脚,功能是显示蓝牙配对的状态。当蓝牙连接上手机时,该引脚输出高电平。
实物图如下:
![image.png]

APP设计界面如下:
![image.png]

电路图如下:
![image.png]

###### **5、电机驱动部分**
该部分采用了4个RZ7889作为驱动芯片,每个芯片可以承受3A的驱动电流和3V-25V的驱动电压,是DC双向马达驱动电路,有两个逻辑输入端子来控制电机前进、后退及制动,具有良好的抗干扰性,微小的待机电流,低的输出内阻,同时还具有内置二极管能释放感性负载的反向冲击电流。
注意:可通过PWM调速,但频率不能太高,否则RZ7899发热厉害,实际使用中设置的PWM频率小于1K。
![85B77ECC8C007B85A9FA64C75AA197C5.jpg]

实物图如下:
![image.png]

电路图如下:
![image.png]

###### **6、ADC采样电路**
ADC是模拟数字转换器(Analog to Digital Converter,或称AD转换器)的简称。ADC是将模拟量转换为数字量的器件,常见的应用是将连续变化的电压值转换为数字量。原理是采样原理,可以简单理解为,以一定的频率采样电压值,使连续值变为离散值,也就得到了若干数字量。
ADC转换包括采样、保持、量化、编码四个步骤。采样阶段需要在规定的采样时间内将外部信号的电压完整无误的采样到ADC的采样电容上,即在采样开关SW关闭的过程中,外部输入信号通过外部的输入电阻RAIN和ADC采样电阻RADC对采样电容CADC充电。一般ADC有并联比较型、逐次逼近型、积分型、∑-Δ型、流水线型,梁山派里面采用的是逐次逼近型。
由于我们是使用两节锂电池供电,最大电压即3.7*2=7.4V,而梁山派开发板的参考电压为3.3V无法采集7.4V,那就需要使用电阻进行分压或者说使用运放电路将电压降低到单片机容忍的电压以内。这里我们使用了三颗10K的电阻进行分压,取1/3电压点接到单片机的ADC引脚。
电路图如下:
![image.png]

###### **7、蜂鸣器电路**
采用5V有源蜂鸣器:内部自带振荡源,将正负极接上直流电压即可持续发声,频率固定。
因为单片机的引脚驱动能力有限,蜂鸣器的功率比较大,所以需要通过三极管来驱动,R10为限流电阻,单片机引脚(BUZZER)如果给低电平,则三极管导通,5v便给蜂鸣器供电得电发声,如果给高电平,则三极管断开。(注意:如果是3V蜂鸣器,则需要将5V电源改成3.3V电源)
实物图如下:
![image.png]

电路图如下:
![image.png]

###### **8、按键电路**
通过独立按键和程序控制可以实现模式切换以及一键启动的功能,由于按键存在机械抖动,所以需要采用物理或者软件进行消抖,我这里使用的是软件消抖,具体方法看程序部分
可以将按键与单片机的中断引脚相连,可以使用中断进行控制,效果更好,我这里没有用中断,利用按键扫描进行控制
实物图如下:
![image.png]

电路图如下:
![image.png]

###### **9、LED车灯部分**
我这里用了两种车灯,分别利用单片机进行控制,其中一种是插件封装,模拟小车的左右车灯,可以用蓝牙进行手动控制,或者循迹时进行控制。另外一种是贴片封装,进行按键指示,在启动按键按下,启动指示灯亮,模式切换按键按下,模式指示灯亮。
LED灯的阴极接电源地GND,限流电阻的取值可以控制LED电流,从而控制灯的亮暗情况。LED灯的程序控制也比较容易,将LED的阳极与单片机的IO口相连,当引脚输出高电平时,二极管导通,LED就被点亮了。
实物图如下:
![image.png]

电路图如下:
![image.png]

# 三、个人心得
- - -
```
这是第二次参加训练营并做出一个像样一点的实物,总体来说还是学到了很多东西,真的十分感谢嘉立创,每一次都是手把手教我们,一直鼓励我们,还给我们资金支持,让我们一直在努力变强的路上。同时也感谢群友大佬们的鼓励和帮助,每次遇到困难都会有群友来给我解答,在教会我DIY制作的同时还锻炼了与人交往的能力。
虽然这次的制作并没有那么高级,也没有什么突出的功能,同时有些地方不够完善,像红外对管坏了。但是还是较为圆满的做出来了我所期望的小车,我相信以后如果有第二代、第三代小车,肯定会更加完美,功能更加多,更加高级。
最后再次感谢嘉立创以及可爱的群友大佬!
```