可控超声悬浮装置(物理实验设计大赛)

一、简介

        广东省物理实验设计大赛始于1992年,旨在培养大学生对物理学和物理实验的兴趣,提高学生的创新意识、知识综合运用能力和动手能力。从2010年开始,省物理学会对物理实验设计大赛赛程进行了改革,由原来一天的赛程改为两天,第一天进行作品检测,第二天进行答辩,另外还增加了特色作品交流环节,加强了各高校参赛队伍学生的互动与交流。

        这个比赛最初是物理系学生的比赛,然而,在10年前进行了一次改革,除了要求解决理论和仿真问题外,还必须制作实物进行演示。这样一来,比赛的难度就大大提高了,因为它要求我们在解决理论和仿真问题的同时,还要设计、制作并演示一个实际的物体。因此,每年物理系的学生都会找我们这些硬件工科的学生一起参赛。

二、题目要求

        当年很巧,国赛和省赛的题目一模一样。但是国赛每个学校只能派两支队伍,学校选中了我们队伍。

        国赛DDL比省赛的早了一个月,但只需要上传视频,不需要现场评比。

三、团队

        五个人组队,我,Q,以及以K为首的三人物理小队。

        我擅长嵌入式以及板级硬件方面的技能,熟悉STM32、FPGA、ARM嵌入式、板级电路设计等偏硬件的技术。

        Q擅长深度学习,图像处理那方面的AI技能,熟悉人流密度检测、人脸识别等偏软件的技术。

        Q的博客地址:Lin-sudo的博客_CSDN博客

        以K为首的三人物理小队是物理系学生,负责本作品的所有理论推导、验证方面的工作,K擅长数学建模,他是用数学建模的方法来计算本作品实现过程。

        团队模式相当于三个物理佬计算理论,然后外包给我和Q去做出实物。

四、分析

        在网上搜索了一下简单的声悬浮案例,例如:使用Arduino和HCSR04构建超声波悬浮装置-电子发烧友网 (elecfans.com),并且复现了一遍。但是K认为过于简单创新性不够,于是继续检索论文。

        声悬浮的原理在这条知乎的视频中说得很明白:超声波悬浮的原理什么? - 知乎 (zhihu.com)

        从单个超声换能器起振的原理出发,其本质是压电陶瓷,给予一定功率的方波或者正弦波就可以驱动其发出超声波。

        发声的电路示意图如图所示,给一40kHz的方波即可驱动换能器工作。

        K跟我和Q说,需要弄个上下对称的超声换能器阵列,并且要能够操纵每一个换能器的起振相位,这样他就可以控制阵列元的相位差从而使声阱移动,这样就能控制悬浮物的运动了。最好能够有更多辅助调试功能,例如可以控制距离,记录小球轨迹等。

        相位差的精度只要足够小就行,至于把相位差控制在多少才能够移动,这事包在他们物理小队身上,让我和Q不用操心。

五、开工

5.1 功能需求分析

        将K的需求一点一点列出来:

需求

描述

超声阵列板

一对5×5阵列板,上方下方对称布置

超声换能器相位控制

通过PC端软件控制50个超声换能器的相位

阵列板移动

下方阵列板固定,上方的阵列板能够上下左右移动

摄像头记录

在正前方放置摄像头记录实验现象

自动识别小球

摄像头能够自动识别悬浮小球并标记其运动轨迹

5.2 系统框架设计

        采用以下图所示的整体架构,在PC端设计一可视化软件,控制信号产生模块产生50路相位可调的40kHz的方波信号,硬件上信号经过驱动后输送给阵列,从而发出超声波。再另外使用单片机控制步进电机,从而移动上方的阵列板。

5.3 硬件选型与设计

5.3.1 信号产生模块选型与设计

        需要产生多路方波信号,并且对相位敏感,答案显而易见,应该选用并行器件——FPGA作为信号产生模块,FPGA能够能在同一时刻调整50路方波的相位。

         为了实现此功能,我们将FPGA划分为三部分:UART接口、数据缓冲区、方波输出区。UART接口负责接收由PC端传来的相位数据,并保存到数据缓冲区,当它接收到50组相位数据后,将数据缓冲区中50组数据同时传到方波输出口区,方波输出区根据得到的数据来输出相位不同的方波,从而能在同一时刻任意改变50个超声发射头的振动相对相位,其步进精度可以达到0.0008个周期。具体实现代码不难,这里不再赘述。

         选用ALTERA公司的EP4CE15F23C8N,设计一主板将需要用到的引脚引出,以排线的方式连接。

  

 5.3.2 信号驱动芯片选型

        FPGA产生的40kHz的方波电流不足,不能够直接驱动换能器,因此需要驱动,一般用一个MOS管作为驱动即可,此处考虑到体积以及方便焊接等问题,选用国产的驱动芯片EG27324。

        EG27324是一款带SD功能的双路独立驱动专用芯片,电源电压范围宽 2.8V~20V,输出电流能力 IO+/- 2/2.5A,在12V的供电电源下能够胜任驱动换能器的工作,单个驱动电路设计如下图所示。

         设计好的多个驱动电路板:

 5.3.3 超声换能器选型

        超声换能器选用发射型的,体积小的,能够使声势阱更密集。我们选用的是NU40C10T-2型号的换能器,直径9.8mm,标称频率为40±1kHz,发射灵敏度为108dB min,方向角80°±15°,最高输入电压为40V,外壳材料为铝壳。

        买回来后区分正负极,方法是用示波器探针连上双引脚,如图所示,然后用细棍戳一下内部的声腔,若此时示波器出现向上的脉冲,则示波器探针钩住的为正极;若出现向下的脉冲,则钩住的为负极。

        严格来说超声换能器并不用区分正负极也可以发出超声,因此很多商家的超声换能器上的正负极基本都是乱标注的。但为了严谨,还是统一标记一遍为好。

        然后阵列板的PCB板子做太大是会造成声波反射的,所以应当尽量切除不需要的部分。

5.3.4 单片机选型

        单片机的任务比较简单,只需要根据按钮来输出不同占空比的PWM波来控制步进电机即可。选用STM32F103C8T6,该芯片成本低,开发方便。

5.3.5 电机驱动选型

        步进电机只是用来控制阵列移动,阵列较轻,因此不需要太大的电流,因此选用A4988作为电机驱动,该芯片直流供电8-35V  最大2A的峰值电流,并且体积小,成本低。

5.4 软件系统架构设计

        软件系统相对简单,一个通过串口发送相位参数的可视化主程序,一个通过摄像头跟踪悬浮小球轨迹的辅助程序,以及单片机控制步进电机的程序。

5.4.1 主程序

        主程序使用python快速开发,流程图如下,将计算后的相位差数据按照一定的时间间隔发送至FPGA,即可使悬浮小球按照既定的轨迹移动。(该程序完全由Q开发)

5.4.2 辅助程序

        辅助程序用于观察和记录,生成网格坐标以辅助放置小球,并跟踪小球的运动轨迹。(该程序完全由Q开发)

5.4.3 STM32程序

        STM32程序就是根据按键的输入来产生两路占空比可调的PWM信号,并用OLED屏幕显示当前位置信息。程序简单,网上也有不少相关例程,此处不再赘述。

5.5 外部辅助功能设计

        主要是可移动平台的设计,在实验室找到了一台简易的废旧的3D打印机框架,用它来实现上阵列板的移动再好不过了~

        为防止误触,电路板上所有裸露的地方都涂上热熔胶给他绝缘了,再加上亚克力板外壳和泡沫纸板垫,即可放进大巴拿去参赛了,成品图如下。

         上下左右移动都可以:

    

5.6 整体测试

        装置整体如下:

        装置的操作示意图如下,做起实验来非常方便。

进行了以下测试,都能够完成。

  1. 单/多小球悬浮静止。
  2. 单小球悬浮横向移动。
  3. 单小球半圆弧向移动。
  4. 单小球“A”字轨迹移动。
  5. 双小球相向而动。

附上一些效果图:

   

六、现场评比

        省赛现场评比,第一天是集中作品展示,第二天进行答辩以及分享会。

        第一天各路神仙打架,各种装置都有。(打马赛克图片)

         第二天(打马赛克图片),K在讲解他的算法,基本上没我啥事。

        最终省赛获奖: 

        国赛DDL比省赛早一个月,当时我们只完成了基础的悬浮功能,并没有能让小球移动,比较遗憾。

七、总结与心得

7.1 总结

        本作品使用STM32、FPGA、步进电机等设备制作出一款基于超声相控阵的三维可操控悬浮实验装置,使用简单、方便,利用相关算法计算出相位阵列,即可实现悬浮物在三维空间中的任意轨迹移动。

7.2 遇到的困难

        由于设计的不完善,在某些情况下,FPGA无法正确接收串口数据,因此我们添加了一个校验位,以检查校验位是否正确。如果校验位正确,则开始改变相位差;否则,将重新传输一遍数据。

        在最初参加全国竞赛时,我们遇到了一个困难,即实际计算结果与预期不同。我们使用函数发生器逐个排查问题,并检查驱动板的输出。我们发现其中一个驱动芯片存在虚焊问题。

        悬浮小球能够大致按照既定轨迹走,但是中途掉下来,想到会不会是反射的原因,于是在重新设计声阵列板时,我考虑了反射的原因,并尽可能减小了PCB面积。

        阵列板的对齐问题是一个关键挑战,因为需要上下左右移动,而距离又要严格控制。为了解决这个问题,我加了一些行程限位开关。一旦到达既定位置,触及开关就会停止。

7.3 心得

        在团队中,每个人都有自己的职责和任务,但是并不是每个人都能掌握硬件和软件方面的技术。此时,沟通变得更加重要,需要将技术语言转化为通俗易懂的大白话,以便与非技术成员进行交流。这种能力不仅可以帮助团队更好地协作,还可以提高团队的效率和凝聚力。因此,它是不可或缺的。

  • 4
    点赞
  • 11
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值