
【立创开发板】智能小车(嘉立创2023年寒假训练营)
简介
用梁山派作为主控,设计一款智能小车。主要的功能包括: * 基本运动功能(前进、后退、转向)。 * 蓝牙遥控。 * 红外循迹。 * 超声波避障。 * 电量检测和低电量提示。
简介:用梁山派作为主控,设计一款智能小车。主要的功能包括: * 基本运动功能(前进、后退、转向)。 * 蓝牙遥控。 * 红外循迹。 * 超声波避障。 * 电量检测和低电量提示。开源协议
:GPL 3.0
描述
目标
设计基于梁山派开发板的智能小车。
- 功能:基本运动功能(前进、后退、转向)、红外循迹、超声波避障、蓝牙遥控、电量检测和低电量预警。
- 技术栈:
- 硬件基础(电路设计、PCB、焊接)
- 编程能力(C、软件基础及软件调试)
- 资料检索
- 问题解决能力
原理图设计说明
引脚分配
连接标签 | 引脚 | 说明 |
---|---|---|
电机 | ||
LF+ | PB4 | 左前轮+ |
LF- | PA7 | 左前轮- |
RF+ | PA3 | 右前轮+ |
RF- | PA2 | 右前轮- |
LB+ | PB0 | 左后轮+ |
LB- | PB1 | 左后轮- |
RB+ | PA0 | 右后轮+ |
RB- | PA1 | 右后轮- |
循迹 | ||
XJ01 | PA15 | 循迹01 |
XJ02 | PC10 | 循迹02 |
XJ03 | PC12 | 循迹03 |
XJ04 | PB13 | 循迹04 |
XJ05 | PB15 | 循迹05 |
按键 | ||
KEY_M | PB5 | 运动模式切换按键 |
KEY_S | PE5 | 启动运动按键 |
LED | ||
LED_L | PA12 | 左车灯 |
LED_R | PG7 | 右车灯 |
LED_M | PB3 | KEY_M指示灯 |
LED_S | PE2 | KEY_S指示灯 |
蓝牙 | ||
STATE | PF9 | 状态引脚 |
TXD | PF7 | 单片机的串口发送引脚 |
RXD | PF6 | 单片机的串口接收引脚 |
EN | PF10 | 使能引脚 |
超声波模块 | ||
TRIG | PB12 | 超声波模块TRIG引脚 |
ECHO | PB10 | 超声波模块ECHO引脚 |
蜂鸣器 | ||
BUZZER | PF8 | 蜂鸣器 |
ADC | ||
ADC | PC5 | ADC电压检测 |
电源
电源需求分析:
- 梁山派开发板:3.3V或兼容5V(可提供3.3V输出)
- 循迹电路:5V
- 超声波模块:5V
- 蜂鸣器:5V
- 蓝牙模块:3.3V
- 电机驱动:RZ7899芯片,不超过25V
电源设计:使用14500锂电池(两节串联7.4V)。然后通过肖特基二极管,拨动开关,连接到线性稳压器(LDO),通过LDO输出稳定的5V直流电压。
- 电机驱动的供电直接来锂电池VCC,约7.4V。
- 蓝牙供电来自梁山派开发板,3V。
- 其他元器件的供电来自LDO,5V。
元器件作用和连接说明:
- 肖特基二极管:可以防止电池反接,选用SS34。正极接锂电池,负极接波动开关。
- 拨动开关:控制电源的通断。
- LDO:将电池的电压降到稳定的5V,为电路中的其他需要5V输入的元件供电。输入连接VCC,输出连接两个电容滤波,避免干扰。
- LED:指示电源的通断。正极连接到VCC,负极通过限流电阻连接到GND。
LED
本例子中的LED包括两部分:状态指示和照明。
状态显示的LED会在对应的模块介绍,这里仅仅针对照明LED。
照明:作为小车照明,LED_L和LED_R。
元器件连接:
状态显示的LED会在对应的模块介绍,这里仅仅针对照明LED。
按键
按键,主要用于状态切换。
元器件作用和连接说明:
- KEY_M:模式按键。一端连接到GPIO输入引脚,一端接地。
- KEY_S:开始按键。一端连接到GPIO输入引脚,一端接地。
【注意】:
当按键按下时,GPIO口为低电平,所以GPIO需要配置为上拉输入模式,这样才能检测到低电平。也可以加上一个上拉电阻将IO的电平拉高,这样就不用配置为上拉输入了。
电机驱动
由于单片机的IO电流非常弱,无法正常驱动电机的转动,因此必须使用电机驱动芯片来驱动电机。这里选用RZ7899电机驱动芯片。
RZ7899是一款DC双向马达驱动电路,适用于自动阀门电机驱动、电磁门锁驱动等,该电路具有良好的抗干扰性,微小的待机电流、低的输出内阻,同 时它还具有内置二极管能释放感性负载的反向冲击电流。
两个逻辑输入端子BI和FI来控制电机的前进、后退及制动。我们将BI和FI与单片机IO进行连接,通过改变单片机I/O口电平从而改变芯片控制端输出引脚的电平,就可以对电机进行正反转,停止以及制动控制。只要将BI和FI引脚连接到单片机的定时器通道引脚,就可以结合单片机的定时器PWM输出功能控制电机转速,从而改变我们智能小车行驶的速度。
RZ7899芯片的特点:
- 微小的待机电流,小于 2uA;工作电压范围宽 3.0V~25V。
- 有紧急停止功能 ; 有过热保护功能 。
- 有过流嵌流及短路保护功能 ; 封装外形为: SOP8。
驱动芯片的真值表:
元器件连接说明:
- BI:后退输入。连接到单片机的定时器通道引脚。
- FI:前进输入。连接到单片机的定时器通道引脚。
- BO:后退输出。连接到电机引脚。
- FI:前进输出。连接到电机引脚。
- GND:地。
- VCC:7.4V。
ADC电压采集电路
使用ADC之前,需要知道ADC的位数(即精度)。通过查看用户手册知道,GD32的ADC是12位的,所以精度为,精度范围为0~4095。
![[Pasted image 20230210225836.png]]
由于IO口最大兼容5V,超过5V就会把IO烧坏,而电池的工作电压为7.4V(最大8.4V,最低6.6V),超过了IO的最大兼容电压,所以需要分压电路,分压后的电压不要超过IO口的最大兼容电压就可以。
那么,如何通过ADC的数值计算采集的电压的实际数值呢?
- 线性映射。
- 计算过程:
前提:假设ADC是12位的,电池供电最高8.4V,最低6.6V(低于就开始报警提醒充电);
-------知道电压求ADC值-------
(1)ADC端占的电压比例:10K/(10K+10K+10k)≈0.3333;
(2)电池电量最高时,ADC端分压得到的电压为:0.3333*8.4V≈2.7997V
电池电量最低时,ADC端分压得到的电压为:0.3333*6.6V≈2.1998V
如果参照3V,即满电状态下为3V,没电是0V
电池电量最高时的ADC值为:(2.7997/3V)*4095=3821
电池电量最低时的ADC值为:(2.1998/3V)*4095=3002
-------知道ADC值求电压-------
如果参照3V,即满电状态下为3V,没电是0V;
通过上式子的逆运算可以知道,任意ADC值对应采集的电压值为:V_value=(ADC*3)/4095 单位:V
蜂鸣器
蜂鸣器采用有源蜂鸣器,内置振荡源,只要通电就会鸣叫。但因为单片机的引脚驱动能力较弱,无法直接驱动蜂鸣器,所以采用一个PNP型三极管充当电控开关,通过单片机I/O的输出电压高低来控制蜂鸣器的开关。
- 当IO输出高电平时,发射极的电压没有远大于基极电压,三极管没有导通,处于截止状态,蜂鸣器没有发出声音。
- 当IO输出低电平时,发射极的电压远大于基极电压,三极管导通,电流从发射极流入集电极,蜂鸣器发出鸣叫。
元器件作用及连接说明:
- 蜂鸣器:正极连接三极管的集电极,负极连接GND。
- 1k电阻:限流电阻,防止进入GPIO的电流过大。
- 10k电阻:防干扰电阻。连接在发射极和基极之间。
- PNP三极管:发射极连接+5V,基极通过限流电阻连接到GPIO引脚,集电极连接到蜂鸣器的正极。
蓝牙
直接选用蓝牙模块,选型时注意VCC是多少(5V OR 3.3V),在供电的时候,要相应匹配好。
另外,连接单片机引脚时,注意串口的引脚连接,蓝牙RXD---单片机TXD,蓝牙TXD---单片机RXD。
直接使用一个1*6
的2.45mm排母,绘制原理图。
超声波
选用HC-SR04超声波模块
注意接收和发送的引脚连接不要弄错。使用一个1*4
的2.45mm排母绘制原理图。
循迹
循迹电路的设计是利用了红外光遇到不同颜色地面反射程度不同的原理。循迹使用红外光电开关ITR9909,ITR9909的内部集成了红外发射管和接红外收管。使用5路循迹电路,每一路都可以通过可调电阻调节灵敏度。使用电压比较器LM393芯片,因为一个比较器芯片支持两路,所以只需要使用3个比较器芯片。
- 检测黑线的原理是红外发射管发射光线到地面,当红外光遇到白色地面则被反射,红外接收管接收到反射光,经过电压比较器后输出低电平。
- 检测黑线的原理是红外发射管发射光线到地面,当红外光遇到黑色地面则被吸收,红外接收管未接收到反射光,经过电压比较器后输出高电平。
比较器的输出引脚连接到单片机的GPIO上,并设置IO为输入模式。
原理图整理
原理图整理,将不同模块的电路,用框区分开,并进行说明。
PCB布局和走线
蓝牙APP
实物展示
设计图

BOM


评论