概述
简 介: 给出了对于基于ESP32设计的智能车竞赛的の比赛系统的硬件调试过程。基本上验证了硬件设计的合理与正确性。在第一部分的“修改建议”中也给出了硬件电路的修改意见。
关键词
: 智能车竞赛,比赛系统,ESP32,电磁感应
§01 基于ESP32的竞赛比赛系统
根据 AI视觉组基于ESP32的裁判系统第一版本设计要求 ,由龙邱设计制作了比赛系统的硬件模块。下面对于该模块的硬件进行初步调试。
1.硬件模块组成
龙邱提供的比赛系统的硬件主要包括三个电路板模块:
(1)主控模块
主控模块的核心ESP32-S放置在电路板的反面,其它的器件和接口都位于电路板的正面。
主控模块的主要功能包括:
- ESP32-S控制与通信模块
- 对于车模通过传感器(感应线圈、LED光电检测板)和激光信号检测功能
- USB接口、光电板、LED,BEEP接口等。
▲ 主控模块电路板
▲ 主控模块反面的ESP32-s模块
(2)激光信号检测模块
激光信号检测模块只是用于功能测试。也就是测试单个光电管(中心监测点),四个光电管并联(边缘光电信号)检测。但是整个光电板的尺寸并不符合实际目标检测使用。
▲ 光电模块
在接收到激光信号接收板上并没有焊接 SP-1CL3陶瓷接收管(¥:2.3) 。在其上焊接SP-1CL3光电管。
▲ SP-1CL3高次接收管
由于SP-1CL3价格稍高,在另外一块光电模块焊接 PT0805光电三极管 ,进行测试看是否能够满足要求。
▲ SP-1CL3封装示意图
(3)LED、BEEP指示模块
在收到模块的时候,指示模块上的绿色LED并没有焊接。
▲ LED,BEEP知识模块
2.初步硬件测试
(1)焊接指示模块上LED
在指示模块焊接绿色LED的时候发现原来模块上留给LED的焊接管脚间距不是100mil,使得LED无法按到底进行焊接。建议将LED的管脚间距修改成100mil。
(2)焊接光电管板
确定SP-1CL3光电管的极性,可以根据前面的它的数据手册上给出的定义。使用数字万用表测量,可以看到不同的测量结果不同。
-
使用数字万用电阻档测量:
-
正向测量:8.3MΩ
反向测量:-4.55MΩ
3.修改建议
根据硬件初步调试,给出对于原来的设计的修改意见。
(1)修改指示板LED的管脚间距
指示板上的LED的管脚间距不是100mil,LED按不下去。建议将LED的管脚的间距修改成与LED的封装间距已知,100mil。
▲ 指示板上的LED的管脚间距不是100mil,LED按不下去
(2)蜂鸣器驱动T1的封装
Speaker的驱动T1(NPN)的封装错误。
▲ SPEAKER驱动T1封装错误
(3)C3,C19焊接错误
详细参见调试线圈放大电路中的错误。
§02 调试主控模块
[^65556]:主控板AD设计工程文件:ADSmartCar2021LaserDetectLQ
1、静态调试[^65556]
(1)静态工作电流
接入+5V工作电源,工作电流为:24mA
左右。另外一个工作电流为90mA
左右。具体的区别现在还不太清楚。
(2)稳压输出3.3V
测量U2(LM1117-3.3V)的PIN2 ,可以测到稳压的电压3.3V。
▲ 图2-1 测试控制主板的静态工作点
2、下载ESP32MicroPython
(1)制作下载转接线
在电路板上的ESP32的下载线的接口(VGTRNG)为80mil的6PIN。 制作一条6PIN的转接线(100mil →80mil)。
▲ 图2-2 制作ESP32下载线转接线
(2)下载MicroPython
根据 利用CH340C制作MicroPython ESP8266,ESP32的下载器-改进型 对ESP32下载MicroPython。
VGTRNG端口距离旁边的拨码开关太近了,使得接入6pin的下载端口有些困难。建议:焊接VGTRNG从背面焊接,这样便可以接触插接6pina插头的问题。
▲ 图2-3 下载端口
下载结果:静态电流90mA的模块可以正常下载MicroPython,下载之后静态电流变为34mA。静态电流为25mA的模块始终无法正常下载MciroPython。
▲ 图2-4 电路板LED1(DG:ESP32-IO5)被点亮
电路板LED1(DG:ESP32-IO5)被点亮。
3、MicroPython程序测试
编程参考文档: MicroPython 官方网站 。
(1)测试LED1,LED2
测量电路板的LED1(IO5),LED2(IO18)的闪烁。
-
板载LED的IO:
-
LED1
:IO5
LED2
:IO18
from machine import Pin
import time
led1 = Pin(5, Pin.OUT)
led2 = Pin(18, Pin.OUT)
while True:
led1.on()
led2.off()
time.sleep_ms(200)
led1.off()
led2.on()
time.sleep_ms(200)
▲ 图2-5 运行测试程序
(2)测试Beep
-
BEEP控制端口:
-
Beep
:IO21
驱动波形
:PWM
from machine import Pin,PWM
import time
led1 = Pin(5, Pin.OUT)
led2 = Pin(18, Pin.OUT)
beep = PWM(Pin(21))
beep.freq(800)
beep.duty(511)
while True:
led1.on()
led2.off()
beep.duty(0)
time.sleep_ms(200)
led1.off()
led2.on()
beep.duty(511)
time.sleep_ms(200)
▲ 图2-6 BEEP以及驱动T1
(3)测试SW与LED
-
SW1端口设置:
-
SW1
:GPIO4
SW2
:TXD2(GPIO17)
SW3
:GPIO2
SW4
:GPIO15
BPLED端口:
-
LED1
:GPIO26
LED2
:GPIO25
LED3
:GPIO33
LED4
:GPIO32
下面的测试程序通过拨动对应的SWn,n=1,2,3,4
来改动PLEDn,n=1,2,3,4
的状态。
from machine import Pin,PWM
import time
led1 = Pin(5, Pin.OUT)
led2 = Pin(18, Pin.OUT)
beep = PWM(Pin(21))
beep.freq(800)
beep.duty(511)
pled1 = Pin(26, Pin.OUT)
pled2 = Pin(25, Pin.OUT)
pled3 = Pin(33, Pin.OUT)
pled4 = Pin(32, Pin.OUT)
sw1 = Pin(4, Pin.IN, Pin.PULL_UP)
sw2 = Pin(17, Pin.IN, Pin.PULL_UP)
sw3 = Pin(2, Pin.IN, Pin.PULL_UP)
sw4 = Pin(15, Pin.IN, Pin.PULL_UP)
while True:
led1.on()
led2.off()
beep.duty(0)
time.sleep_ms(200)
led1.off()
led2.on()
beep.duty(511)
time.sleep_ms(200)
if sw1.value() == 0:
pled1.off()
else: pled1.on()
if sw2.value() == 0:
pled2.off()
else: pled2.on()
if sw3.value() == 0:
pled3.off()
else: pled3.on()
if sw4.value() == 0:
pled4.off()
else: pled4.on()
4、测试ADC1,ADC2
(1)端口电压测量
-
ADC1,ADC2端口:
-
ADC1
:PIN4(SENSOR VP)
ADC2
:PIN5(SENSOR VN)
ADC1,ADC2静态电压:
-
ADC1
:1.045V
ADC2
:1.047V
▲ 图4-0 ADC1,ADC2信号放大电路
- ADC1,ADC2的电压是由3.3V经由R1(10k),R2(22k)分压之后的电压:
V A D C 1 , 2 = 3.3 × 10 k 22 k + 10 k = 1.03 V V_{ADC1,2} = {{3.3 times 10k} over {22k + 10k}} = 1.03V VADC1,2=22k+10k3.3×10k=1.03V
- U4 的VREF电压,测量电压为:0.564V。是3.3V经过2k与10k分压:
V r e f = 3.3 × 2 k 10 k + 2 k = 0.55 V V_{ref} = {{3.3 times 2k} over {10k + 2k}} = 0.55V Vref=10k+2k3.3×2k=0.55V
(2)激光接收电路
▲ 图4-1 激光接收板的电路
▲ 图4-2 激光接收板的PCB图
(3)产生200Hz的驱动信号
根据 AI视觉组基于ESP32的裁判系统第一版本设计要求 ,激光发送的信号是经过 125Hz
调制后的信号。下面使用Arduino Nano来产生调试信号,驱动激光器发送测试的激光信号。
▲ 图4-3 用于产生125Hz的Arguino Nano驱动板
利用D2输出125Hz的50%占空比的波形。
/*
**==============================================================================
** TEST2PWM.C: -- by Dr. ZhuoQing, 2021-06-07
**
**==============================================================================
*/
#define ON(pin) digitalWrite(pin, HIGH)
#define OFF(pin) digitalWrite(pin, LOW)
#define VAL(pin) digitalRead(pin)
#define IN(pin) pinMode(pin, INPUT)
#define OUT(pin) pinMode(pin, OUTPUT)
const int LED_PIN = 2;
//------------------------------------------------------------------------------
void setup(void) {
pinMode(LED_PIN, OUTPUT);
}
//------------------------------------------------------------------------------
void loop(void) {
ON(LED_PIN);
delay(4);
OFF(LED_PIN);
delay(4);
}
//==============================================================================
// END OF FILE : TEST2PWM.C
//------------------------------------------------------------------------------
▲ 图4-4 D2输出的125Hz的波形
▲ 图4-5 Arduino Nano驱动激光管
▲ 图4-6 接收到的激光发送信号
5、测量OUT1、OUT2
(1)静态电压
-
OUT1,OUT2管脚:
-
OUT1
:PIN6(IO34)
OUT2
:PIN7(IO35)
静态端口电压:
-
OUTA
:559mV
OUTB
:553mV
VREF
:560mV
▲ 图4-6-1 线圈放大电路
(2)测量线圈放大波形
在最初调试的时候,线圈1的输出时钟是平稳的波形,线圈无法感应磁铁通过。经过检查发现,电路板上C3,C19焊接反了。
-
放大通路耦合电容:
-
C3
:103,放大滤波电容
C19
:106,信号耦合电容
▲ 图4-7 C3,C19电容
▲ 图4-8 静态放大输出带有50Hz的信号
※ 初步调试总结 ※
对于来自于LQ制作的基于ESP32的裁判系统进行了初步调试。主要硬件需要修改部分在前面电路修改建议给出了。
1、后期调试
- 基于ESP32的竞赛裁判系统功能调试-计时线圈功能
- 基于ESP32的竞赛裁判系统功能调试-光电条检测板
- 基于ESP32的竞赛裁判系统功能调试-激光信号调试
- 基于ESP32的竞赛裁判系统功能调试-与微机通讯
在 基于ESP32的竞赛裁判系统功能调试-硬件修改建议 中给出了对于第一版本的硬件修改意见。
■ 相关文献链接:
- AI视觉组基于ESP32的裁判系统第一版本设计要求
- SP-1CL3 陶瓷接收管 光电接收二极管 红外线接收管
- PT0805光电三极管
- 利用CH340C制作MicroPython ESP8266,ESP32的下载器-改进型
- MicroPython 官方网站
● 相关图表链接:
- 主控模块电路板
- 主控模块反面的ESP32-s模块
- 光电模块
- SP-1CL3高次接收管
- SP-1CL3封装示意图
- LED,BEEP知识模块
- 指示板上的LED的管脚间距不是100mil,LED按不下去
- SPEAKER驱动T1封装错误
- 图2-1 测试控制主板的静态工作点
- 图2-2 制作ESP32下载线转接线
- 图2-3 下载端口
- 图2-4 电路板LED1(DG:ESP32-IO5)被点亮
- 图2-5 运行测试程序
- 图2-6 BEEP以及驱动T1
- 图4-0 ADC1,ADC2信号放大电路
- 图4-1 激光接收板的电路
- 图4-2 激光接收板的PCB图
- 图4-3 用于产生125Hz的Arguino Nano驱动板
- 图4-4 D2输出的125Hz的波形
- 图4-5 Arduino Nano驱动激光管
- 图4-6 接收到的激光发送信号
- 图4-6-1 线圈放大电路
- 图4-7 C3,C19电容
- 图4-8 静态放大输出带有50Hz的信号
最后
以上就是欢呼泥猴桃为你收集整理的基于ESP32智能车竞赛比赛系统硬件初步调试-5-6 §01 基于ESP32的竞赛比赛系统 §02 调试主控模块 ※ 初步调试总结 ※ 的全部内容,希望文章能够帮你解决基于ESP32智能车竞赛比赛系统硬件初步调试-5-6 §01 基于ESP32的竞赛比赛系统 §02 调试主控模块 ※ 初步调试总结 ※ 所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
发表评论 取消回复