基于立创梁山派的智能小车设计与实现。
# **一、作品介绍**
梁山派开发板以GD32F470ZGT6为内核,GPIO等外设资源丰富,引脚足够设计出一个功能多样的智能小车。当前作品具有五路红外循迹、超声波避障、蓝牙/2.4G遥控、AD电源检测等功能。等待日后学习完成诸如WIFI遥控、4G通信、火焰监测、可燃气体泄漏检测、摄像头录像、基于opencv的图像识别等功能。
# 二、电路设计
原理图和PCB均使用立创EDA专业版。
## 1、引脚资源
![image.png]
引脚资源使用情况如下,由此可见梁山派开发板的引脚资源及其丰富,足够满足学习设计的需求。
## 2、电源电路
![电源电路.png]
使用两节3.7V的14500锂电池提供7.4V的电压,通过电路稳压降压为开发板提供电源。插件电池座不方便拆装,因此使用了带线电池座加接线端子的组合,由此也可以使用同样是3.7V的18650电池,续航能力更强。
## 3、循迹电路
![循迹电路.png]
使用两个ITR9909红外开关检测黑线,组成两路循迹。当检测到黑线时输出高电平,循迹电路蓝灯亮起。使用一个LM393比较器就足够满足电路需求。
## 4、AD电源检测电路
![AD.png]
# 三、模块选择
## 1、超声波模块
![HC-SR04.png]
超声波模块型号为HC-SR04,具有两个压电陶瓷超声传感器,一个用于发出超声波信号,一个用于接收反射回来的超声波信号。由于发出信号和接收信号都比较微弱,所以需要通过外围信号放大器提高发出信号的功率,和将反射回来信号进行放大,以能更稳定地将信号传输给单片机。
### 电气参数
![HC-SR04参数.png]
超声波模块有4个引脚,分别为VCC、Trig(控制端)、Echo(接收端)、GND;其中VCC、GND接上5V电源,Trig(控制端)控制发出的超声波信号,Echo(接收端)接收反射回来的超声波信号。
### 控制原理
通过Trig引脚发一个 10US 以上的高电平,就可以在Echo接收口等待高电平输出;一有输出就可以开定时器计时,当此口变为低电平时就可以读定时器的值,此时就为此次测距的时间,方可算出距离。
### 工作流程
a.单片机引脚触发Trig测距,给至少10us的高电平信号;
b.模块自动发送8个40khz的方波,自动检测是否有信号返回;
c.有信号返回,通过IO输出一高电平,并单片机定时器计算高电平持续的时间;
d.超声波从发射到返回的时间.
计算公式:测试距离=(高电平时间*声速(340M/S))/2;
## 2、蓝牙模块
![蓝牙.png]
使用HC05蓝牙主从模块,一共有6个引脚。EN引脚用于控制蓝牙模块的AT指令,设置为高电平时,可以设置蓝牙模块的状态与数据传输;VCC引脚和GND引脚为电源输入引脚,输入电压范围为3.6-6V;TXD和RXD是用于与单片机连接的串口引脚;STATE引脚功能是显示蓝牙配对的状态。蓝牙连接成功时该引脚输出高电平。
# 四、软件设计
主要介绍避障和循迹程序
## 1、避障
distance=HCSR04_Get_Distance();
if(distance <= 100)//前方10cm有障碍
{
if(distance <= 50){
beep_on();//蜂鸣器鸣叫
car_back_out();
}
else {
beep_on();//蜂鸣器鸣叫
car_left_out();
}
delay_1ms(1000);
}
else if(distance > 100 && distance <= 1000)//前方无障碍
{
beep_off();//蜂鸣器关闭
car_front_out();
}
## 2、循迹
Black_Line_Detection();
if(XJ01 == Black_Line_Found && XJ02 == Black_Line_Found){
car_front_out();
}
if(XJ01 == No_Black_Line_Found && XJ02 == Black_Line_Found){
car_right_out();
}
if(XJ01 == Black_Line_Found && XJ02 == No_Black_Line_Found){
car_left_out();
}
if(XJ01 == No_Black_Line_Found && XJ02 == No_Black_Line_Found){
car_stop_out();
}
# 五、实物展示
![IMG_0166.JPEG]
![IMG_0168.JPEG]
![IMG_0169.JPEG]
![IMG_0170.JPEG]