电赛E题声源定位跟踪系统制作全过程

声源定位

文章目录

  • 声源定位
  • 前言
  • 一、题目
  • 二、设计步骤
    • 1.设计思路
    • 2.声源追踪定位的分析
    • 3.舵机转角的确定
    • 4.声源距离的计算
  • 三、代码编写
    • 1.求均值
    • 2.卡尔曼滤波


复刻一下电赛的声源定位

前言

2023年的电子设计竞赛快要开始了,同时我也已经大三下了正在准备找工作,重新做一下2022年的电赛题目声源定位吧,也为电赛和找工作做点准备。

一、题目

设计制作一个声源定位跟踪系统,能够实时显示及指示声源的位置,当声源移动时能够用激光笔动态跟踪声源。声源检测系统测量区域分布俯视如图所示。
在这里插入图片描述

二、设计步骤

1.设计思路

以 k210 单片机为控制核心,由电源模块,音频发生模块,音频接收模块,二维电动云台,激光笔等模块构成。系统通过声源发出一定周期性的音频信号,由 6+1 个 MEMSMic 组成阵列对可移动声源的检测,通过麦克风端接收到的音 频信号,运算后输出电压信号传输到控制端的单片机,单片机使用 PID 算法经串口输出控制信号对电动云台舵机实行控制,使其转向声源方向,以实现对声源的定位追踪过程。

2.声源追踪定位的分析

对声源位置的追踪确过程,本系统采用时间差值法采用麦克风作为声波接收头,音频信号通过空气介质以 340m/s 的速度传播,到达五处麦克风的时间不同,从而不同麦克风接收到音频信号的时间差作为变量,可以推算出可移动声源的具体位置。由于每一个麦克风在接收音频信号的机械特性不一样,对于同一种音频信号的响应时间不用。经过测试,我们发现不同频率的声音在麦克风接受时有不同的效果,通过选用固定频率的声音作为声源信号,可以避免了一般的声音信号的干扰。同时有利于后期滤波程序的编写,软件硬件相结合,更好的克服了在接收音频信号时间差的不确定性。

3.舵机转角的确定

舵机转角,既声源与信号检测装置的连线与中心线 A 的夹角 γ,系统通过声源发出一定周期性的音频信号,由 6+1 个 MEMSMic 组成阵列对可移动声源的检测,通过麦克风端接收到的音频信号,运算后输出电压信号传输到控制端的单片机,单片机通过对各麦克风信号大小的分析,使用 PID 算法经串口输出控制信号
对电动云台舵机实行控制,使其转向声源方向,同时记录此时舵机的所处角度,
与舵机中值进行对比,从而确定舵机转角 γ。示意图如下
(−angle + 90) / 180 ∗ 10 + 2.5
在这里插入图片描述

4.声源距离的计算

声源距离既声源 A 与声源定位检测装置 B 两点间直线距离 γ 通过测量同一
音频信号到达麦克风接收器的时间不同,从而三个接收器接收到音频信号的时
间差作为变量,可以推算出可移动声源的具体方向,从而实现了移动声源的精
确定位。公式如下:
在这里插入图片描述

三、代码编写

声源的代码比较简单,这个难点在于怎么处理杂波,一个是求均值,另一个就是卡尔曼了

1.求均值


##########################求均值##############################
def get_arv(times):
    i=0
    j=0
    angle=[]
    maxAng=-999999
    minAng=999999
    sumAng=0
    while True:
        i=i+1
        Angle=get_mic_dir()
        if(Angle != -1):
            angle.append(Angle)
            j=j+1
            if(j>=times):
                break;
        if(i>2*times+20):
            break;
    if j>2:
        for ang in angle:
            sumAng=sumAng+float(ang)
            if( ang > maxAng):
                maxAng=ang
            if( ang < minAng):
                minAng=ang
        return (sumAng-minAng-maxAng)/(j-2)
    else:
        return -1
##########################求均值##############################

2.卡尔曼滤波


##########################卡尔曼##############################
KF_lastP=1000   #上次的协方差
KF_nowP=0      #本次的协方差
KF_x_hat=0     #卡尔曼滤波的计算值,即为后验最优值
KF_Kg=6000        #卡尔曼增益系数
KF_Q=5         #过程噪声
KF_R=0.01      #测量噪声
def Kalman_Filter(value):
    global KF_lastP        #上次的协方差
    global KF_nowP         #本次的协方差
    global KF_x_hat        #卡尔曼滤波的计算值,即为后验最优值
    global KF_Kg           #卡尔曼增益系数
    global KF_Q            #过程噪声
    global KF_R            #测量噪声
    output=0        #output为卡尔曼滤波计算值
    x_t=KF_x_hat    #当前先验预测值 = 上一次最优值
    KF_nowP=KF_lastP+KF_Q       #本次的协方差矩阵
    KF_Kg=KF_nowP/(KF_nowP+KF_R)#卡尔曼增益系数计算
    output=x_t+KF_Kg*(value-x_t)#当前最优值
    KF_x_hat=output     #更新最优值
    KF_lastP=(1-KF_Kg)*KF_nowP#更新协方差矩阵
    return output
##########################卡尔曼##############################

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/23171.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

涨点神器:基于Yolov5/Yolov7的小目标性能提升

1.小目标介绍 目标检测近十年涌现了一大批如Faster R-CNN、RetinaNet、YOLO等可以在工业界实用的目标检测方法,但小目标检测性能差的问题至今也没有被完全解决。因为Swin Transformer的提出,COCO test-dev上的 AP 已经刷到64 ,但小目标检测性能(即APS )和大目标检测性能(…

分享以MM32SPIN0280单片机为主控洗衣机方案

洗衣机是利用电能产生机械作用来洗涤衣物的清洁电器&#xff0c;按驱动方法有3类&#xff0c;直接驱动&#xff0c;皮带驱动&#xff0c;波轮式驱动。 主变一体洗衣机方案以MM32SPIN0280为主控 MCU规格&#xff1a; -ArmCortex-M0内核&#xff0c;最高工作频率可达96MHz -128…

MOSN 基于延迟负载均衡算法——走得更快,期待走得更稳

文&#xff5c;纪卓志&#xff08;GitHub ID&#xff1a;jizhuozhi) 京东高级开发工程师 MOSN 项目 Committer 专注于云原生网关研发的相关工作&#xff0c;长期投入在负载均衡和流量控制领域 前言 这篇文章主要是介绍 MOSN 在 v1.5.0 中新引入的基于延迟的负载均衡算法#2…

【vimsolo】让vim看起来像VSCode:颜色主题和状态栏的配置

文章目录 1. 目的2. 理念&#xff1a; vimsolo3. vimrc: 配置颜色4. vimrc: 配置状态栏5. 拷贝颜色主题和.vimrc: python安装脚本 1. 目的 习惯了 VSCode 默认的配色&#xff1a;黑色主题&#xff0c;蓝色状态栏。偶尔使用 Vim 时想让 vim 伪装的像 VSCode&#xff0c;不考虑花…

float浮点/double双精度浮点和二进制的相互转换,小白也能看明白!

二进制文件包含了太多的数据&#xff0c;如何看懂二进制文件&#xff0c;决定于基础。 文章目录 前言1、重点知识1.1何为二进制文件1.2浮点和双精度的浮点如何生成二进制1.2.1 float和double的基础知识1.2.2 IEEE754约束的重点1.2.3 浮点是如何表示二进制 1.3 例子说明 双精度d…

市面上常见的语音芯片的IO口有哪些作用

语音芯片的IO口有哪些作用&#xff1f; 语音芯片的IO口一般有多种用途&#xff0c;包括以下几种&#xff1a; 1. 语音输入&#xff1a;可以通过外部麦克风接口&#xff0c;将外部声音信号输入到语音芯片中&#xff0c;进行语音信号处理。 2. 语音输出&#xff1a;语音芯片可…

Java版电子招投标系统源码之了解电子招标投标全流程

随着各级政府部门的大力推进&#xff0c;以及国内互联网的建设&#xff0c;电子招投标已经逐渐成为国内主流的招标投标方式&#xff0c;但是依然有很多人对电子招投标的流程不够了解&#xff0c;在具体操作上存在困难。虽然各个交易平台的招标投标在线操作会略有不同&#xff0…

【MySQL】实验十 E-R图

文章目录 1. 学校2. 院系3. 图书馆4. 舰队5. 工厂6. 网购7. IT8. 医院9. 公司1. 学校 设有如下实体: 班主任:工号、姓名、电话 班级:班号、专业、毕业总学分 学生:学号、姓名、性别、年龄 课程:课程号、课程名 上述实体中存在如下联系: (1)一个班主任管理一个班级,一…

字节跳动五面都过了,结果被刷了,问了hr原因竟说是...

摘要 说在前面&#xff0c;面试时最好不要虚报工资。本来字节跳动是很想去的&#xff0c;几轮面试也通过了&#xff0c;最后没offer&#xff0c;自己只想到几个原因&#xff1a;1、虚报工资&#xff0c;比实际高30%&#xff1b;2、有更好的人选&#xff0c;这个可能性不大&…

分布式事务

一、为什么需要分布式事务: 分布式事务是指 会涉及到操作多个数据库(服务)的事务。 其实就是将对 同一数据库&#xff08;服务&#xff09;事务的概念扩大到了多个数据库&#xff08;服务&#xff09;的事务。 目的是为了保证分布式系统中的数据一致性。 二、分布式事务XA规范…

RHCE第五次作业

1.总结变量的类型及含义&#xff1f; 2.实现课堂案例计算长方形面积&#xff1f;&#xff08;6种方式&#xff09; 3.定义变量urlhttps://blog.csdn.net/weixin_45029822/article/details/103568815&#xff08;通过多种方法实现&#xff09; 1&#xff09;截取网站访问的协议 …

如何在华为OD机试中获得满分?Java实现【字母组合】一文详解

✅创作者:陈书予 🎉个人主页:陈书予的个人主页 🍁陈书予的个人社区,欢迎你的加入: 陈书予的社区 🌟专栏地址: Java华为OD机试真题(2022&2023) 文章目录 1. 题目描述2. 输入描述3. 输出描述4. Java算法源码5. 测试6.解题思路1. 题目描述 每个数字对应多个字母,…

2023年,真的别裸辞....

作为IT行业的大热岗位——软件测试&#xff0c;只要你付出了&#xff0c;就会有回报。说它作为IT热门岗位之一是完全不虚的。可能很多人回说软件测试是吃青春饭的&#xff0c;但放眼望去&#xff0c;哪个工作不是这样的呢&#xff1f;会有哪家公司愿意养一些闲人呢&#xff1f;…

node.js PM2部署项目

文章更新 2023-05-21 更新NSSM安装服务的方式 pm2 是什么 pm2 是一个守护进程管理工具,它能帮你守护和管理你的应用程序。通常一般会在服务上线的时候使用 pm2 进行管理。本文围绕以下重点进行讲解&#xff1a;安装pm2&#xff1b;命令行部署到PM2&#xff1b;PM2查看日志等命…

PLX31-EIP-MBTCP 以太网/IP到Modbus TCP/IP

PLX31-EIP-MBTCP ProSoft Technology的EtherNet/IP to Modbus TCP/IP通信网关允许在支持EtherNet/IP的控制器或设备与Modbus TCP/IP控制器或设备之间进行高速双向数据传输。 我们的Modbus TCP/IP驱动程序具有多种客户端和服务器功能&#xff0c;可实现更快的数据传输。此外&a…

【Linux】普通用户无法使用sudo指令的方法

​ ​&#x1f4dd;个人主页&#xff1a;Sherry的成长之路 &#x1f3e0;学习社区&#xff1a;Sherry的成长之路&#xff08;个人社区&#xff09; &#x1f4d6;专栏链接&#xff1a;Linux &#x1f3af;长路漫漫浩浩&#xff0c;万事皆有期待 上一篇博客&#xff1a;【Linux】…

云计算安全

前言 什么是云计算&#xff1f; 云计算就是一种新兴的计算资源利用方式&#xff0c;云计算的服务商通过对硬件资源的虚拟化&#xff0c;将基础IT资源变成了可以自由调度的资源池&#xff0c;从而实现IT资源的按需分配&#xff0c;向客户提供按使用付费的云计算服务。用户可以…

智能排班系统 【管理系统功能、操作说明——中篇】

文章目录 页面与功能展示企业管理角色管理用户管理系统管理员身份使用企业管理员身份使用门店管理员身份使用 门店管理职位管理排班规则设置节日管理消息管理 页面与功能展示 企业管理 企业管理页面如图 34所示&#xff0c;在企业管理页面&#xff0c;系统管理员可以查询所注…

Unity Shader variants (shader 变体)

官方地址 https://docs.unity3d.com/cn/2022.2/Manual/SL-MultipleProgramVariants.html 教程可以看这里 https://www.jianshu.com/p/48ad75f0b4b9 https://www.jianshu.com/p/3e6b84317097 变种用我自己的理解就是 能用程序控制的shader 举个例子 这里声明了 a b c d 四个变…

cpu 内核 逻辑处理器的关系

6核CPU&#xff0c;12个逻辑处理器 一颗内核在一个时间片内只能执行一个内核线程&#xff1b;当物理CPU使用了超线程技术后&#xff0c;在CPU的一颗内核中&#xff0c;利用就是利用其中空闲的执行单元&#xff0c;模拟出另外一个核心&#xff08;并不是真正的物理运算核心&…