基于ESP32模块利用检测线圈检测车模停止时间,室内视觉AI裁判系统

 

01 室内视觉AI裁判系统


1.背景介绍

ESP32检测调制激光信号程序优化 以及 测试ESP32S基本模块的功能,并验证是否可以应用在AI智能车竞赛检测激光信号中 中测试了 ESP32串口转WiFi双天线ESP32-S模组 用于 全国大学生智能车竞赛 中的 室内AI视觉组裁判功能。

ESP32检测调制激光信号程序优化 中测试了ESP32对于调制激光信号检测方案的性能。现在还生下了使用 传统比赛系统的线圈感应方式 来检测车模在AI视觉组动物标靶前的停留时间(需要停留3秒钟)。

▲ 赛道上目标靶位的检测方式

▲ 赛道上目标靶位的检测方式

2.检测方案

(1)参考方案

根据 信标组裁判系统原理与实现 给出的电磁线圈放大方案,它是对于检测线圈给出的感应电动势进行放大之后送入单片机进行检测。

▲ 传统电磁线圈检测放大器方案

▲ 传统电磁线圈检测放大器方案

(2)方案修改

【Ⅰ.改变偏置电压】

为了 适应ESP32的AD输入通道(衰减6DB,检测范围 0 ~ 2V)电压范围的需要。将上面的电路中的 R 1 , R 2 R_1 ,R_2 R1,R2进行修改,分别修改为:

R 1 , R 2 R_1 ,R_2 R1,R2的电阻值:
R 1 = 10 k R_1 = 10k R1=10k
R 2 = 20 k R_2 = 20k R2=20k

这样输出信号的直流电压为1V,是ESP32的AD的检测范围的中间值。

【Ⅱ.增加放大通道】

由于需要检测车模进入以及离开的两个时间,因此将原本双线圈串联模式修改成单独检测模式,这样便可以比较精确进行判断时间间隔了。

将前面的线圈放大LMV321修改成LMV358,整个的线圈放大通道修改成两路。

 

02 信号放大电路


1.电路设计1

如下为实验电路SCH:

▲ 实验电路SCH

▲ 实验电路SCH

下面是 一分钟制版法 所使用的测试电路板PCB图。

▲ 快速制版设计的单面PCB

▲ 快速制版设计的单面PCB

2.电路板的焊接与调试

下面是焊接后的电路板。
▲ 焊接后的电路板

▲ 焊接后的电路板

(1)初步调试

工作电压为3.3V,输入线圈撤离。

通道1:静态电压:
分压电压:1.0964V
输出电压:0.652V
通道2:静态电压:
分压电压:1.0937V
输出电压:0.674V

上述静态输出电压与PIN+的分压之间相差较大,这主要是因为对应的反馈电阻(10M)太大的原因。将106电阻修改成105(1M),输出电压提升到1.04V左右。

但是,对于1M,放大倍数太小了,折中一下,将电阻修改成5.1M。输出的静态电压变为0.8~0.9V 之间。

(2)增加线圈

线圈基本参数:
串联电阻:18.85Ω
电感:1.778mH

▲ 磁铁通过感应线圈后引起的输出信号的变化

▲ 磁铁通过感应线圈后引起的输出信号的变化

 

03 使用ESP32采集信号


1.采集到的信号波形

(1)实验电路板

使用ESP32模块采集有放大信号输出的两路感应信号。

▲ ESP32 测试版测试感应信号

▲ ESP32 测试版测试感应信号

(2)采集波形

使用相同的采样率,对于输入到GPIO34,GPIO35两个通道的信号进行AD转换,形成采样后的数据波形。可以看到其中存在着明显的50Hz的干扰(0.5秒内,有25个周期)信号。

▲ 采集到的两路信号波形

▲ 采集到的两路信号波形

(3)实验代码

#------------------------------------------------------------
adc1 = ADC(Pin(36))
adc2 = ADC(Pin(39))
adc3 = ADC(Pin(34))
adc4 = ADC(Pin(35))

adc1.atten(ADC.ATTN_6DB)
adc2.atten(ADC.ATTN_6DB)
adc3.atten(ADC.ATTN_6DB)
adc4.atten(ADC.ATTN_6DB)

SAMPLE_NUM = const(500)
AVERAGE_NUM = 16
ad1dim = [0] * SAMPLE_NUM
ad2dim = [0] * SAMPLE_NUM
ad3dim = [0] * SAMPLE_NUM
ad4dim = [0] * SAMPLE_NUM

sample_point = 0
stop_flag = 0

def ADC4Sample(_):
    global ad1dim,ad2dim,ad3dim,ad4dim
    global sample_point
    global adc1,adc2,adc3
    global stop_flag

    ad1dim[sample_point] = adc1.read()
    ad2dim[sample_point] = adc2.read()
    ad3dim[sample_point] = adc3.read()
    ad4dim[sample_point] = adc4.read()

    sample_point += 1
    if sample_point >= SAMPLE_NUM:
        sample_point = 0

#------------------------------------------------------------
SAMPLE_PERIOD = 1

time0 = Timer(0)
time0.init(period=SAMPLE_PERIOD, mode=Timer.PERIODIC, callback=ADC4Sample)

2.数据滤波

由于存在的干扰为周期(50Hz及其高阶谐波)对于采集到的数据进行平滑滤波。选择平滑数据的窗口为20ms,也就是20个数据取其平均值,这样就可以将50Hz对应的周期滤除。

▲ 使用20ms窗口平滑后的数据

▲ 使用20ms窗口平滑后的数据

filter1 = array([1/20]*20)
fdata1 = convolve(data1,filter1, 'validate')
fdata2 = convolve(data2,filter1, 'validate')
平滑滤波效果:
平滑前两个通道数据方差分别为: 8614, 6085
平滑后两个通道数据方差分别为:14.4, 11.26

▲ 使用40ms时间窗口平滑滤波后的数据

▲ 使用40ms时间窗口平滑滤波后的数据

使用40ms时间窗口平滑滤波:
通道一的数据方差:7.94
通道二的数据方差:4.999

▲ 使用100ms时间窗口平滑滤波后的数据

▲ 使用100ms时间窗口平滑滤波后的数据

使用100ms时间窗口平滑滤波:
通道一的数据方差:3.12
通道二的数据方差:1.36

下图是使用50ms对应的时间窗口进行平滑滤波。
▲ 使用50ms时间窗口平滑滤波后的数据

▲ 使用50ms时间窗口平滑滤波后的数据

使用50ms时间窗口平滑滤波:
通道一的数据方差:143.9
通道二的数据方差:99.6

由此可以表面,对于周期造成去除的最好的方法就是采用周期噪声的周数倍数时间平滑。

3.有磁铁经过时采集到的信号波形

(1)原始信号波形

▲ 带有磁铁经过采集数据波形

▲ 带有磁铁经过采集数据波形

(2)采用40ms平滑窗口滤波后的波形

▲ 带有磁铁经过时滤波后的采集数据波形

▲ 带有磁铁经过时滤波后的采集数据波形

 

▌实验结论


待补充。

 


■ 相关文献链接:


  1. 线圈放大电路AD工程文件:AD\SmartCar\2021\LaserDetect\CoilSignal2.SchDoc ↩︎

已标记关键词 清除标记
<p> <span style="color:#FF0000;"><strong>micropython语法和python3一样,编写起来非常方便。如果你快速入门单片机玩物联网而且像轻松实现各种功能,那绝力推荐使用micropython。方便易懂易学。</strong></span> </p> <p> <span style="color:#FF0000;"><strong><br /> </strong></span> </p> <p> <span><span style="color:#FF0000;"><strong>同时如果你懂C语音,也可以用C写好函数并编译进micropython固件里然后进入micropython调用(非必须)。</strong></span></span> </p> <p> <span><span style="color:#FF0000;"><strong><br /> </strong></span></span> </p> <p> <span style="color:#FF0000;"><span><strong>能通过WIFI联网(2.1章),也能通过sim卡使用2G/3G/4G/5G联网(4.5章)。</strong></span></span> </p> <p> <span style="color:#FF0000;"><span><strong><br /> </strong></span></span> </p> <p> <span style="color:#FF0000;"><strong>为实现语音控制,本教程会教大家使用tensorflow利用神经网络训练自己的语音型并应用。</strong></span> </p> <p> <span style="color:#FF0000;"><strong>为实现通过网页控制,本教程会教大家linux(debian10 nginx->uwsgi->python3->postgresql)网站前后台入门。</strong></span> </p> <p> <span style="color:#FF0000;"><strong>为记录单片机传输过来的数据, 本教程会教大家入门数据库。</strong></span> </p> <p> <span style="color:#FF0000;"><strong><br /> </strong></span> </p> <p> <span style="color:#FF0000;"><strong> </strong></span> </p> <p> <strong> <strong><span style="color:#000000;">本教程会通过通俗易懂的比喻来讲解各种原理与思路,并手把手编写程序来实现各项功能。</span></strong> </strong> </p> <strong> </strong> <p> <strong> <strong><span style="color:#000000;">micropython版本是 2019年6月发布的1.11;</span></strong> </strong> </p> <strong> </strong> <p> <span style="color:#FF0000;"><strong>更多内容请看视频列表。</strong></span> </p> <p> <span style="color:#FF0000;"><strong><br /> </strong></span> </p> <p> <span style="color:#FF0000;"><strong><strong> </strong></strong></span> </p> <p> <strong><strong> <strong><span style="color:#000000;">学习这门课程</span><span style="color:#E53333;">之前</span><span style="color:#000000;">你需要至少掌握:</span><br /> </strong> </strong></strong> </p> <strong><strong> </strong></strong> <p> <strong><strong> <strong><span style="color:#000000;">1: python3基础(变量, 循环, 函数, 常用库, 常用方法)。</span></strong> </strong></strong> </p> <strong><strong> </strong></strong> <p> <strong><strong> <br /> </strong></strong> </p> <strong><strong> </strong></strong> <p> <span style="color:#000000;"> </span> </p> <p> <span><strong> </strong></span> </p> <p> <strong> <span><strong>本视频使用到的零件与淘宝上大致价格:</strong></span> </strong> </p> <strong> </strong> <p> <strong> <span><strong>    1: 超声波传感器(3)</strong></span> </strong> </p> <strong> </strong> <p> <strong> <span><strong>    2: MAX9814麦克风放大模块(8)</strong></span> </strong> </p> <strong> </strong> <p> <strong> <span><strong>    3: DHT22(15)</strong></span> </strong> </p> <strong> </strong> <p> <strong> <span><strong>    4: LED(0.1)</strong></span> </strong> </p> <strong> </strong> <p> <strong> <span><strong>    5: 8路5V低电平触发继电器(12)</strong></span> </strong> </p> <strong> </strong> <p> <strong> <span><strong>    6: HX1838红外接收模块(2)</strong></span> </strong> </p> <strong> </strong> <p> <strong> <span><strong>    7:红外发射管(0.1),HX1838红外接收板(1)</strong></span> </strong> </p> <strong> </strong> <p> <strong> <span><strong>    other: 电表, 排线, 面包板(2)*2,ESP32(28)</strong></span> </strong> </p> <strong> </strong> <p> <br /> </p>
相关推荐
©️2020 CSDN 皮肤主题: Age of Ai 设计师:meimeiellie 返回首页