我是靠谱客的博主 欢呼泥猴桃,最近开发中收集的这篇文章主要介绍基于ESP32智能车竞赛比赛系统硬件初步调试-5-6 §01 基于ESP32的竞赛比赛系统 §02 调试主控模块 ※ 初步调试总结 ※ ,觉得挺不错的,现在分享给大家,希望可以做个参考。

概述

简 介: 给出了对于基于ESP32设计的智能车竞赛的の比赛系统的硬件调试过程。基本上验证了硬件设计的合理与正确性。在第一部分的“修改建议”中也给出了硬件电路的修改意见。

关键词 智能车竞赛比赛系统ESP32电磁感应

 

§01 于ESP32的竞赛比赛系统


  AI视觉组基于ESP32的裁判系统第一版本设计要求 ,由龙邱设计制作了比赛系统的硬件模块。下面对于该模块的硬件进行初步调试。

1.硬件模块组成

  龙邱提供的比赛系统的硬件主要包括三个电路板模块:

(1)主控模块

  主控模块的核心ESP32-S放置在电路板的反面,其它的器件和接口都位于电路板的正面。

  主控模块的主要功能包括:

  • ESP32-S控制与通信模块
  • 对于车模通过传感器(感应线圈、LED光电检测板)和激光信号检测功能
  • USB接口、光电板、LED,BEEP接口等。

▲ 主控模块电路板

▲ 主控模块电路板

▲ 主控模块反面的ESP32-s模块

▲ 主控模块反面的ESP32-s模块

(2)激光信号检测模块

  激光信号检测模块只是用于功能测试。也就是测试单个光电管(中心监测点),四个光电管并联(边缘光电信号)检测。但是整个光电板的尺寸并不符合实际目标检测使用。

▲ 光电模块

▲ 光电模块

  在接收到激光信号接收板上并没有焊接 SP-1CL3陶瓷接收管(¥:2.3) 。在其上焊接SP-1CL3光电管。

▲ SP-1CL3高次接收管

▲ SP-1CL3高次接收管

  由于SP-1CL3价格稍高,在另外一块光电模块焊接 PT0805光电三极管 ,进行测试看是否能够满足要求。

▲ SP-1CL3封装示意图

▲ SP-1CL3封装示意图

(3)LED、BEEP指示模块

  在收到模块的时候,指示模块上的绿色LED并没有焊接。

▲ LED,BEEP知识模块

▲ 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按不下去

▲ 指示板上的LED的管脚间距不是100mil,LED按不下去

(2)蜂鸣器驱动T1的封装

  Speaker的驱动T1(NPN)的封装错误。

▲ SPEAKER驱动T1封装错误

▲ 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-1 测试控制主板的静态工作点

2、下载ESP32MicroPython

(1)制作下载转接线

  在电路板上的ESP32的下载线的接口(VGTRNG)为80mil的6PIN。 制作一条6PIN的转接线(100mil →80mil)。

▲ 图2-2 制作ESP32下载线转接线

▲ 图2-2 制作ESP32下载线转接线

(2)下载MicroPython

  根据 利用CH340C制作MicroPython ESP8266,ESP32的下载器-改进型 对ESP32下载MicroPython。

  VGTRNG端口距离旁边的拨码开关太近了,使得接入6pin的下载端口有些困难。建议:焊接VGTRNG从背面焊接,这样便可以接触插接6pina插头的问题

▲ 图2-3 下载端口

▲ 图2-3 下载端口

  下载结果:静态电流90mA的模块可以正常下载MicroPython,下载之后静态电流变为34mA。静态电流为25mA的模块始终无法正常下载MciroPython。

▲ 图2-4 电路板LED1(DG:ESP32-IO5)被点亮

▲ 图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-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

▲ 图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信号放大电路

▲ 图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-1 激光接收板的电路

▲ 图4-2 激光接收板的PCB图

▲ 图4-2 激光接收板的PCB图

(3)产生200Hz的驱动信号

  根据 AI视觉组基于ESP32的裁判系统第一版本设计要求 ,激光发送的信号是经过 125Hz 调制后的信号。下面使用Arduino Nano来产生调试信号,驱动激光器发送测试的激光信号。

▲ 图4-3 用于产生125Hz的Arguino 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-4 D2输出的125Hz的波形

▲ 图4-5 Arduino Nano驱动激光管

▲ 图4-5 Arduino Nano驱动激光管

▲ 图4-6 接收到的激光发送信号

▲ 图4-6 接收到的激光发送信号

5、测量OUT1、OUT2

(1)静态电压

OUT1,OUT2管脚:
OUT1:PIN6(IO34)
OUT2:PIN7(IO35)
静态端口电压:
OUTA:559mV
OUTB:553mV
VREF:560mV

▲ 图4-6-1 线圈放大电路

▲ 图4-6-1 线圈放大电路

(2)测量线圈放大波形


  在最初调试的时候,线圈1的输出时钟是平稳的波形,线圈无法感应磁铁通过。经过检查发现,电路板上C3,C19焊接反了。

放大通路耦合电容:
C3:103,放大滤波电容
C19:106,信号耦合电容

▲ 图4-7 C3,C19电容

▲ 图4-7 C3,C19电容

▲ 图4-8 静态放大输出带有50Hz的信号

▲ 图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 调试主控模块 ※ 初步调试总结 ※ 所遇到的程序开发问题。

如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(57)

评论列表共有 0 条评论

立即
投稿
返回
顶部