0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
会员中心
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

学会了嘛?使用树莓派和 ADC 检测地震!

上海晶珩电子科技有限公司 ? 2025-07-25 15:59 ? 次阅读
加入交流群
微信小助手二维码

扫码添加小助手

加入工程师交流群

检波器是一种设备,可根据声波/压缩波中的粒子速度产生电信号。简单来说,检波器是用于地面的超低频麦克风。检波器在全球范围内用于测量地震和震颤,在地震反射测量(特别是地下地质测绘)、安全装置(通常与地下采矿情况有关)中,能够测量经过的脚步声,并在机器学习领域占据一席之地。这些是非常灵敏的被动设备,重要的是,它们产生的电信号是模拟信号。

尽管树莓派单板计算机功能强大,但默认情况下无法读取纯模拟信号。

因此,我们需要一个ADC模数转换器)作为这两个系统之间的转换器ADC将模拟信号转换为数字表示,以便读取和处理。大多数传感器,如温度传感器、声音传感器或力传感器,都会产生模拟输出电压,检波器也不例外。本指南的内容如下:

所需材料

将模拟信号输入树莓派——Adafruit ADS1115 ADC

硬件搭建

软件设置

演示——连续记录和24小时数据记录

下一步——达到阈值时拍照

脚本和产品数据表下载区(外加一些历史)

检波器是非常简单而巧妙的设备。检波器通常包含一个弹簧安装的线圈质量块,该质量块可以在壳体安装的永磁体磁场内自由移动(见下图)。设备的有效元件是悬挂在弹簧上的线圈质量块。当地面震动时(假设是由于地震),弹簧安装的质量块具有惯性,想要保持静止。随着地球继续移动,磁体在弹簧安装的质量块周围自由地上下移动。这种位移会产生变化的磁场,从而在线圈中产生可测量的电压信号。这些电压变化非常迅速。由于电压是自然现象的结果,因此会产生纯模拟信号。请查看下图,了解本指南中将要使用的SM-24检波器、检波器横截面以及应用示例。

42bddc2c-692d-11f0-a486-92fbcf53809c.png

检波器历史悠久,1906年,俄罗斯帝国的一位王子B. B. Galitizin发明了这种风格的检波器。它们还有不同的名称,如罐子、拾音器和Tortugas。一些特殊的完全耳道式助听器内部也有微型检波器系统。新西兰人在20世纪40年代的战争中使用了检波器。这是识别和定位敌方地下挖洞者方向的最佳方法。与SM-24完全相同的小型高频检波器通常用于全球的地震勘探和地震测量。

一如既往,如果您有任何问题、疑问或希望我对该系统进行的操作,请告诉我们您的想法!


所需材料

以下是设置树莓派读取SM-24检波器产生的模拟信号所需的所有材料。

树莓派掌上电脑(我使用的是树莓派4B 2GB版,但也可以使用早期低配版,如树莓派3)

检波器 - SM-24

ADS1115 16位ADC——4通道,带可编程增益放大器(该板的新版本为黑色PCB,也可使用其他ADC,用法类似)

预装树莓派操作系统的Micro SD

DuPont跳线连接器(母对公和母对母)

三个1kΩ电阻

免焊接面包板

用于将系统连接到显示器的Micro-HDMI转HDMI线

电源

鼠标和键盘


将模拟信号输入树莓派——Adafruit ADS1115 ADC

简单来说,数字信号是具有两个可区分电平(1或0)的二进制逻辑信号。这些信号由两个电压带表示,一个接近地/零伏,另一个接近电源电压。数字信号的主要关注点是数据传输。模拟信号则涵盖了其他所有信号。它们只能通过数学函数(如果可能的话)来真实表示。它们是有机信号,具有无限分辨率,直至分子级别。然而,无限分辨率的ADC是无法实现的,但一些现代ADC可以取得惊人的效果。请查看下图,了解数字信号、模拟信号以及模拟信号如何以数字方式读取的演示。

42e5cbe2-692d-11f0-a486-92fbcf53809c.png

模数转换器(ADC)有多种类型,日常制作者通常接触到的是12位ADC或10位ADC。10位ADC提供1024个可能的位分辨率(2的10次方)。还有更强大的32位ADC,具有4,294,967,296个可能的位分辨率(2的32次方)。只要计算机能够处理高采样率和高细节的模拟数据数字表示,这就能提供对模拟信号的极其准确的表示。请查看下图,了解不同位数导致的模拟信号数字表示的更精确/更不精确的图表。

42f5f88c-692d-11f0-a486-92fbcf53809c.png

对于我们来说,我们将使用Adafruit ADS1115 16位ADC。请查看下图中的该设备、带标签的引脚图以及黑色PCB上带Stemma连接的新版本。该设备具有0到65,535个可能的数据点(2的16次方)的分辨率,非常适合我们的应用。需要注意的是,由于ADS1115板通常设置为处理正负值,因此一位用于表示+或-号,导致分辨率为32767。回到现实世界,16位分辨率是CD播放音乐的分辨率,听起来非常棒。ADS1115的采样率可以设置在每秒8到860个样本之间。请记住,采样率越高,ADC捕获和转换模拟信号所需的时间越短。该板还具有内置增益放大器,允许您将电压信号放大2-3倍至16倍。更高的增益值使您能够提高设备的灵敏度,从而有效地实现信号响应的无损放大。对于我们的检波器案例,我们将使用最大增益值16,以最大化灵敏度。

42fe511c-692d-11f0-a486-92fbcf53809c.png

这些ADC板广泛用于树莓派,因为IC芯片的工作电压为3V3。ADS1115具有四个模拟输入通道,支持两种数据采集方式——单端和差分。在单端转换中,从四个模拟输入引脚中的每一个独立采样模拟数据。在差分模式下,对两个模拟输入引脚之间的电压差进行采样。这种差分模式非常适合我们的用例,因为检波器是一种产生两个可测量电压的模拟设备。差分输入比单端输入更能抵抗电磁干扰(EMI)。为了进一步减少干扰,您可以扭转/盘绕来自检波器的电线。扭转确保了两根电线受到几乎相同的外界影响。

使用该板可以通过两种方式进行转换(单端或差分)。下面将进行解释。

转换由树莓派启动。转换后的值存储在ADS1115的寄存器中。然后树莓派读取该寄存器。

转换由ADS1115连续进行。信号以预编程的速率采样,转换后的值在ADS1115的寄存器中反复更新。树莓派必须根据编程的采样率反复读取ADS1115寄存器。如果树莓派以较低速率读取寄存器,则会错过几个捕获的样本。另一方面,如果树莓派以较高速率读取寄存器,则会记录同一样本的多个冗余值。

20世纪20年代,瑞典科学家Harry Nyquist提出了著名的Nyquist定理。他确定,如果以至少比信号中最快运动快两倍的速度定期对信号进行采样,则可以在传输的另一端无损地重建信号。地震测量很难确定最快运动是什么,因此我将尝试充分利用所有硬件,并使用Python编程语言获得最佳结果。值得注意的是,其他编程语言,如C、BASIC汇编语言,将具有更快的操作速度。但这些编程语言的可读性较差。


硬件搭建

现在我们将搭建硬件。首先,像连接台式电脑一样,将所有连接插入树莓派4B。

但暂时不要插入USB-C电源插头。现在,您需要在ADS1115板上焊接排针,并在SM-24检波器顶部焊接一些电线连接。检波器附带一个小型迷你PCB板,使焊接到其顶部变得更加容易。我倾向于使用DuPont跳线连接器,但您也可以直接将所有组件焊接在一起,或使用您喜欢的任何连接方式。有很多选择。请查看下图,了解我实现的焊接结果。

4311b1ee-692d-11f0-a486-92fbcf53809c.jpg

现在查看下面的原理图。我们将以完全相同的方式连接Adafruit ADS1115板和树莓派4B。树莓派通过GPIO引脚连接到ADS1115板。共有四个连接。红色连接用于向ADS1115提供3.3V VDD(电压排水排水)。黑色电线用于在两个板之间提供GND(接地)连接。最后两个连接用于I2C连接,SCL(串行时钟)和SDA(串行数据)。SCL是橙色电线,SDA是紫色电线。传感器可以由树莓派本身提供电压,就像我这样,但必须是3.3V连接。5V会损坏Adafruit ADS1115 ADC板。

43304f32-692d-11f0-a486-92fbcf53809c.jpg

请允许我解释一下SM-24检波器附近的电阻布局。中间的1kΩ电阻是根据数据表使用的校准电阻,用于平缓响应曲线。请查看下面从SM-24数据表中摘录的表格,对此进行了解释。所有数据表均可在本页底部下载。

433c81da-692d-11f0-a486-92fbcf53809c.jpg

另外两个1kΩ电阻连接到ADS1115板,用于限流。在检波器输出电压大于ADC最大输入电压的情况下,这些电阻将保护我们的系统。即使输出电压为10V,远高于检波器通常的几mV输出,由于电阻的作用,电流将被限制在5mA。因此,我们不会损坏ADS1115模拟输入的静电放电二极管(ESD),系统可以长久使用。现在,我们将使用一些跳线将两个电阻端连接到ADC板上的A0和A1。

连接完所有部件后,您可以为系统供电。您的设置应该与下图非常相似。请确保将检波器直立放置,并将桶轴与地心对齐(或至少在几度范围内)。检波器在倒置或角度过大时无法捕获数据或捕获不准确的数据。有些检波器系统将多个轴向万向检波器集成到一个系统中,即使在震动时也能提供真实的轴向方向,但我们在这里不涉及这种复杂性。

434a427a-692d-11f0-a486-92fbcf53809c.png


软件设置

系统通电并完成(新)首次启动向导后,您将看到树莓派桌面。现在,Adafruit ADS1115 ADC需要I2C通信才能工作。默认情况下,树莓派操作系统上的这种通信方式是关闭的。因此,第一步是打开它。

为此,请打开树莓派配置菜单(通过左上角的菜单并滚动到首选项找到),然后在接口选项卡下启用I2C连接。启用后,重置树莓派以锁定更改。

现在,系统已重新启动并连接到互联网,请按屏幕左上角的黑色按钮打开一个新的终端窗口。这将打开一个终端窗口。请查看下面此操作的图片以及指向按下的终端按钮的大红色箭头。

此终端窗口将使我们能够从互联网下载所需的精确软件包。现在,在终端中输入以下行并回车,以获取所需的所有软件包。如果提示,请输入| Y |以继续/确认安装。请查看下面下载其中一个命令的图片。

如果您运行的是Bookworm操作系统(2024年起树莓派操作系统的默认版本),则需要使用所谓的虚拟环境。如果您尚未设置环境,可能会收到“外部管理环境”错误消息。设置虚拟环境很容易,只需执行一次,我们有一个非常简短的指南来介绍如何操作。如果您已经设置了环境,或者您运行的是较旧的操作系统,则可以跳过此步骤

sudo apt-getupdatesudo apt-getinstall build-essential python-devsudo pip3 install matplotlibsudo apt-getinstall libatlas-base-devpip3 install numpy--upgradesudo pip3 install adafruit-ads1x15sudo pip3 install adafruit-circuitpython-ads1x15

4387ac00-692d-11f0-a486-92fbcf53809c.png

完成后,我们已经完全设置了树莓派单板计算机,以便与SM-24检波器和ADS1115板一起工作。


演示——连续记录和24小时数据记录

我创建了一些示例代码,您可以在本页底部或此处找到并下载。

https://core-electronics.com.au/attachments/uploads/article-downloads-geophone-scripts-and-datasheets.zip

这些文件将位于一个Zip文件夹中,只需将其内容提取到您喜欢的任何位置,桌面是一个非常好的选择。右键单击并使用Thonny IDE打开任何文件,以查看它们的编写方式。Thonny IDE只是一个Python解释器软件,您可以使用任何您喜欢的软件。

让我们首先打开| Differential Graph Display.py |。所有脚本都经过了详细注释,因此您可以跟随。打开后,按大的绿色| 运行 |按钮。一旦按下运行,它将显示检波器的实时输出,并不断更新图表。摇动检波器,图表将相应响应。这些数据也记录在shell输出中。Y轴上的读数是检波器输出的毫伏值。数据以大约每秒25个读数的速度不断传入。脚本中的Y轴设置将防止其即使在剧烈摇动时(虽然我不推荐这样做)也会使垂直读数达到最大值。脚本中将使用16的增益,以便您可以看到此设备的灵敏度。它能够检测到桌子另一侧的轻敲手指。

439ab7aa-692d-11f0-a486-92fbcf53809c.png

接下来值得查看的脚本是| Differential-Data-Collect-Gain.py |。运行此脚本,它将采集100个电压数据样本,并将这100条信息存储在名为| Geophone_Data.txt |的CSV(逗号分隔值)文件中,每个数据点之间用新行分隔。如果此文本文件尚未创建,它将创建此文件。另外,请注意,每次运行此脚本时,它都会重写该文本文件。采集毫伏数据后,它还将打印到shell上采集数据所需的确切时间。请查看下面此脚本运行的图片。

43a69534-692d-11f0-a486-92fbcf53809c.png

如果您还将数据打印到shell,则ADC大约每秒将提供100个读数(取决于树莓派硬件)。如果您注释掉所有将数据打印到shell的部分,则可以更快地接收100个样本。考虑到我们使用的是相对较慢的编程语言,这仍然是大量的数据点。对于本指南中使用的所有脚本,转换均由树莓派启动。如果数据由ADS1115板连续采集,则可以从ADS1115板获得更高的数据流。使用另一种“更快”的编程语言,如C或机器代码,将意味着更高的准确性和更多的数据。只是不要被数据淹没,请记住Nyquist定理。

要使用此脚本记录一整天的地震数据,我在第一个While循环下方直接创建了第二个While循环。如果您注释掉第一个循环并取消注释第二个循环,它将运行While循环一整天。在该时间段内收集所有数据并将其添加到文本文件中。当您有足够的数据或想要以图形方式观察某些内容时,可以使用Excel快速将这些数据转换为图表(如果需要)。请查看下面Python脚本的此更改。

43bdd2bc-692d-11f0-a486-92fbcf53809c.jpg

大多数地震仪测量速度/电压,就像我们在这里所做的那样。如果您想要位移,则对输出随时间进行积分;如果您想要加速度,则对输出随时间进行微分。


下一步——达到阈值时拍照

最后,我想根据检波器控制一些连接的硬件。这个想法是,当有人走过树莓派时,它将通过检波器检测到脚步声产生的振动。然后,它将触发拍摄走过的人的照片。为此,首先,我们需要在树莓派单板计算机的CSI端口上连接一个摄像头。有关设置高清树莓派摄像头的指南,请查看此处。完成后,您的设备应该与下图非常相似。

43d2e5c6-692d-11f0-a486-92fbcf53809c.jpg

在Python脚本方面,我调整了之前的脚本以添加阈值。系统将不断通过检波器监听。然后,一旦达到检波器响应的某个幅度,它将激活摄像头。摄像头将自动调整并拍摄其前方任何物体的照片。然后,系统将恢复监听。将为您执行此操作的脚本名为| Footsteps-Camera-Geophone.py |。以与之前相同的方式打开并运行最终的Python脚本,请查看下面系统在我走出办公室时自动捕获我的照片的图片(我想他们打算把我困在里面)。

43e06174-692d-11f0-a486-92fbcf53809c.jpg

此脚本的工作原理非常简单。如果检波器响应的值低于-30或高于30,则它将激活摄像头。摄像头将拍摄照片。照片保存的名称将是当前日期和时间。如果此值对您的应用过于敏感,请简单调整为更高的值。请记住,此检波器正在通过地毯地板和木桌检测振动,这非常了不起。请查看下面代码中的此If语句位置。

43f2a7c6-692d-11f0-a486-92fbcf53809c.png

这开启了一个有趣的控制世界,其中设置在墙后的设备,传感器完全不在视线范围内,仍然可以完全感知并控制连接的硬件。假设您晚上在家中走动,您的系统将确切知道您在哪里以及您在家中的方向。然后,它可以自动打开灯,照亮您走过的路径。它还可以用作秘密方法,跟踪走过特定位置的人数。


脚本和产品数据表下载区(外加一些历史)

据传,公元132年,中国汉朝的张衡发明了第一个地震仪,称为候风地动仪。这翻译为“测量季节性风和地球运动的仪器”。描述称,它是一个大型青铜容器,直径约2米。顶部八个点有龙首,龙首中持有青铜球。然后,当地震发生时,龙嘴之一会打开,将其球落入底部的青铜蟾蜍中,发出声音并指示地震的方向。此地震仪记录的第一次地震被确定为来自东方。几天后,一位来自东方的骑手报告了这次地震。

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • adc
    adc
    +关注

    关注

    99

    文章

    6718

    浏览量

    549484
  • 机器学习
    +关注

    关注

    66

    文章

    8507

    浏览量

    134763
  • 树莓派
    +关注

    关注

    121

    文章

    2027

    浏览量

    107592
收藏 人收藏
加入交流群
微信小助手二维码

扫码添加小助手

加入工程师交流群

    评论

    相关推荐
    热点推荐

    树莓制作地震预警设备 总造价不超过110美元

    `近日加州大学伯克利分校的天体物理学教授Josh Bloom打造了家用地震预警设备,未来有望同火警和一氧化碳传感器成为家庭标准配置。该设备总造价不超过$110,而且零件都是大量现成的,树莓作为核心
    发表于 09-11 17:32

    树莓内部有ADC 和 DAC吗

    手上有一款树莓,不知道怎么用,树莓可以像stm32一样,调用ADC、DAC、SPI等外设吗?简单一点就是
    发表于 06-17 11:21

    学习树莓之前,该学啥,需要学会32吗,或者需要学会51吗

    学习树莓之前,该学啥,需要学会32吗,或者需要学会51吗
    发表于 03-09 00:33

    树莓的故障分析检测

    各位大神,我的树莓B4,经常读不出卡数据,卡换个新的,故障依旧。请指点树莓的故障检查与维修。
    发表于 04-27 11:30

    树莓装机教程

    树莓装机教程树莓装机教程树莓装机教程树莓
    发表于 11-25 10:14 ?52次下载

    树莓的种类_树莓安装教程

    树莓(Raspberry Pi)是尺寸仅有信用卡大小的一个小型电脑,您可以将树莓连接电视、显示器、键盘鼠标等设备使用。目前,树莓
    发表于 11-27 22:01 ?5610次阅读

    树莓3wifi配置_树莓3开启wifi热点_树莓3的wifi使用教程

    树莓3在2016年2月29号正式发布了,树莓3几乎和树莓2代板型一致,大外观没什么变化小电
    发表于 12-08 11:47 ?3.2w次阅读

    树莓3硬件配置_树莓3都能装什么系统_树莓3系统安装教程

    树莓3一直颇受电子发烧友的青睐,这篇文章主要讨论的就是树莓3的硬件配置、树莓3都能装什么系
    发表于 12-08 14:36 ?2.7w次阅读

    一块神奇的树莓电子板竟让我学会了Linux系统

    ?树莓(Raspberry Pi)是基于ARM的微型电脑主板,外形只有信用卡大小,因此也被称为新型卡片式电脑,树莓具有电脑的所有基本功能,可谓麻雀虽小五脏俱全。而其
    发表于 04-02 14:50 ?227次阅读

    树莓是什么树莓的简单介绍

    要想玩转树莓,首先得知道树莓是什么。在本节中,作者将带领大家揭开树莓的神秘面纱,了解
    发表于 05-15 18:09 ?31次下载
    <b class='flag-5'>树莓</b><b class='flag-5'>派</b>是什么<b class='flag-5'>树莓</b><b class='flag-5'>派</b>的简单介绍

    树莓3和树莓4的原理图免费下载

    本文档的主要内容详细介绍的是树莓3和树莓4的原理图免费下载。
    发表于 01-07 10:23 ?230次下载
    <b class='flag-5'>树莓</b><b class='flag-5'>派</b>3和<b class='flag-5'>树莓</b><b class='flag-5'>派</b>4的原理图免费下载

    树莓IO扩展板的技术规格 树莓扩展板该怎么用

    树莓IO扩展板是著名开源硬件商DFRobot专为树莓开发的IO扩展板,IO扩展板支持PWM、ADC、读取模拟量、数字量,支持
    的头像 发表于 05-17 15:18 ?4020次阅读
    <b class='flag-5'>树莓</b><b class='flag-5'>派</b>IO扩展板的技术规格 <b class='flag-5'>树莓</b><b class='flag-5'>派</b>扩展板该怎么用

    距离检测报警使用树莓Pico

    电子发烧友网站提供《距离检测报警使用树莓Pico.zip》资料免费下载
    发表于 11-09 11:49 ?0次下载
    距离<b class='flag-5'>检测</b>报警使用<b class='flag-5'>树莓</b><b class='flag-5'>派</b>Pico

    树莓分类器:用树莓识别不同型号的树莓

    在本教程系列的第一部分中,您将学习如何使用树莓AI摄像头来检测不同的树莓型号。本系列由DavidPlowman创建,他是
    的头像 发表于 06-13 16:39 ?465次阅读
    <b class='flag-5'>树莓</b><b class='flag-5'>派</b>分类器:用<b class='flag-5'>树莓</b><b class='flag-5'>派</b>识别不同型号的<b class='flag-5'>树莓</b><b class='flag-5'>派</b>!

    如何在树莓 AI HAT+上进行YOLO目标检测

    行YOLO目标检测?如何在树莓AIHAT+上进行YOLO姿态估计?今天是第三部分:如何在树莓AIHAT+上进行YOLO目标
    的头像 发表于 07-19 08:34 ?242次阅读
    如何在<b class='flag-5'>树莓</b><b class='flag-5'>派</b> AI HAT+上进行YOLO目标<b class='flag-5'>检测</b>?