用于智能车竞赛的无线检测计时器

无线检测计时模块

 

01 线检测计时器


一、前言

  为了适应明年智能车竞赛室外比赛的要求, 需要设计一个独立计时的电路模块, 放置在车模上。 车模通过外部无线线圈时, 能够得到一个脉冲。 这样便可以对车模运行时间进行计时。 根据前面的实验, 下面利用 音叉晶体制作选频放大电路,  应用 单片机对信号进行采集检测, 并进行计时。  这样便可以得到比赛所需要的车模计时模块。  下面应用电路测试这个计时模块。

G5M1724667357_1920_1080.MP4|_-5

二、电路设计

  设计实验电路。 核心为单片机STM32F103,   利用LM358对来自 10mH 电感的感应信号进行选频放大。 音叉晶体的谐振频率为 32.768kHz,  信号放大电路在之前已经测试过了。 下面使用单片机通过 ADC 对接收到的震荡信号进行解调。 设计单面电路板。 适合一分钟制板。  一分钟之后得到测试电路板。  焊接之后进行清洗。  这就为接下来的软件开发提供了硬件平台。  下面, 开始对电路板进行初步调试。  确认信号放大解调的功能正常。

G10M1724656779_1920_1080.MP4|_-10

**AD\Test\2024\August\SigDetF103.PcbDoc ***

▲ 图1.2.1 电路原理图

▲ 图1.2.1 电路原理图

▲ 图1.2.2 PCB电路图

▲ 图1.2.2 PCB电路图

三、电路调试

  通过弹簧夹子, 将ST-LINK 接入电路板。  下载了由 STM32 CubeMX 生成的程序框架。   现在的程序功能为 LED 闪烁,   验证了单片机可以进行初步调试了。

G4M1724658501_1920_1080.MP4|_-4

  设置 TIME1 产生 32.768kHz 的中断,  在中断服务函数中, 切换 LED 的状态, 所以, LED信号的频率为 16.3kHz 左右。  中断出现抖动, 这是因为内部 ADC DMA中断引起的程序抖动。  下面利用ADC 检测外部信号的中的 32.768kHz 的震荡信号。

G4M1724659788_1920_1080.MP4|_-4
▲ 图1.3.1  LED上的信号波形

▲ 图1.3.1 LED上的信号波形

四、震荡检测

  设置ADC参数,  两个通道的ADC结果通过DMA传输到内存。  关闭 DMA 半传输中断, 这样只有在DMA传输完之后产生中断。  编写DMA 传输中断服务程序, 在中断程序中切换LED状态。  通过测量 LED 频率, 可以知道 DMA采集时间长度。 通过调整 DMA 内存长度, 使得中断频率为 1024。 这样每次 DMA中断时, 内存缓存中保持了 32 个周期信号的ADC采集数据。

G5M1724662561_1920_1080.MP4|_-5

  测量 LM358 输出的放大后的信号波形。  这是其中一帧ADC Buffer的采集数据。
G2M1724665325_1920_1080.MP4|_-2

▲ 图1.4.1  LM358放大后的信号

▲ 图1.4.1 LM358放大后的信号

▲ 图1.4.2 ADC Buffer 中的数据波形

▲ 图1.4.2 ADC Buffer 中的数据波形

▲ 图1.4.3 在没有外部信号时,采集到的数据

▲ 图1.4.3 在没有外部信号时,采集到的数据

  在没有施加外部32kHz 的交变磁场时, 采集到的数据是一些小幅度的脉冲信号。  经过计算, 所得到信号的平均面积为 3左右。  在有信号的时候, 所得到的信号交变分量的平均面积为 250左右, 可以看到, 通过计算采集信号的平均面积, 可以有效的检测到信号是否存在。

G3M1724665527_1920_1080.MP4|_-3

  使用单片机存储检测到的信号幅度,  这是外部震荡信号的起始时间,   对应幅度上升到 最大,   其中, 对应的时间延迟为 50ms左右。
G6M1724666172_1920_1080.MP4|_-6

▲ 图1.4.4 外部脉冲对应的数据

▲ 图1.4.4 外部脉冲对应的数据

from headm import *
from tsmodule.tsstm32       import *

stm32cmd("CLEAR")
stm32cmd("signal")
time.sleep(2)
stm32cmd("COPY")

strall = clipboard.paste().split("\r\n")

data = strall[1].split(" ")
ddim = [int(s) for s in data if len(s) > 0]
printf(ddim)

dim1 = ddim

plt.plot(dim1, lw=3, label='CH1')

plt.xlabel("N")
plt.ylabel("Data")
plt.grid(True)
plt.tight_layout()
plt.show()

  在没有外部交变磁场信号下, 所得到的信号面积非常小。 前面这部分是上电后电路的波动引起的数据变化幅度,  电路平稳之后, 可以看到噪声对应的检测数值非常小。 由此验证了这个检测电路具有非常好信噪比和检测灵敏度。
G3M1724666587_1920_1080.MP4|_-3

▲ 图1.4.5 没有信号时对应的测量数据

▲ 图1.4.5 没有信号时对应的测量数据

 

  结 ※


  文测试了一款无线检测电路。  使用音叉晶体作为选频器件, 对于10mH 电感接收到的 交变磁场信号进行放大。   使用单片机ADC采集信号, 计算信号的交变幅度。  进而可以获得车模通过交变信号的时刻。  将这个电路进行小型化设计, 通过小型锂电池供电。  便可以用于明年室外组别车模计时应用。

G6M1724666890_1920_1080.MP4|_-6


● 相关图表链接:

  • 27
    点赞
  • 13
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

卓晴

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值