广告

利用Arduino R4自制一个地震检测器,其实非常简单

2024-12-31 14:55:44 Giovanni Di Maria 阅读:
构建地震运动检测器有多种技术。本文介绍的方法会使用一个简单的振动传感器、一个信号放大系统和一个Arduino R4,不过也可以根据需要用其他等效器件替换嵌入式器件···

构建地震运动检测器有多种技术。本文介绍的方法会使用一个简单的振动传感器、一个信号放大系统和一个Arduino R4,不过也可以根据需要用其他等效器件替换嵌入式器件。CPnednc

简介

该设备并不是要取代地质研究所使用的精密专业仪器,也不是说能够对地震现象进行精确测量。它的设计初衷是作为一种实验性和业余性的辅助设备,可用于被动检测局部地震的存在,而无需进行进一步的详细分析。它只是一个振动探测器,应该放置在远离城市的底层封闭场所。CPnednc

该探测器会告知用户发生了地震,但不会提供地震的距离或强度。它不可能替代专家的工作,而是一种专用于实验和研究的工具。其主要目的是探测4Hz以上高频的当地的地面振动,因此适用于识别附近的地震事件。CPnednc

运动传感器

地面振动检测仪器的特点是手工制作、部件易获得。如图1所示,它依次由以下元件组成:CPnednc

  • 透明塑料罐,构成传感器的容器
  • 必须钻孔的罐盖
  • 穿过盖子的螺纹杆
  • 弹簧(可以自己制作)
  • 附在弹簧上的穿孔圆柱体
  • 钕磁铁电池
  • 约1-2毫米的空空气隙
  • 一个顺磁性铝方块
  • 变压器线圈

组装过程虽然简单,但必须干净、精确。对于传感器线圈,您需要使用一个没有空气隙的变压器,只需使用一个线圈,即包含最多铁线圈的线圈,通常是初级线圈。该线圈将放置在钕磁铁附近。CPnednc

从图中可以看出,地震检波器的固有频率约为4Hz,最大振动时信号幅度(未放大)为400mVpp。请记住,磁传感器的信号与其频率成正比,因此这种类型的传感器不适用于检测远距离地震,而仅适用于当地的现象。CPnednc

特别值得一提的是弹簧,它可以在家里制作,但必须在弹性和硬度之间取得适当的平衡。在这个原型中,使用了一根吉他弦,它缠绕的能量很大,当然也可以在商店购买。在发生振动时,钕磁铁会长时间振荡,为了抑制这些振荡(尾部),我们使用了一小块顺磁性铝。CPnednc

CPnednc

图1:振动检测器及其信号波形图和频谱图CPnednc

信号放大器

为了使检波器的小信号更清晰,建议将其放大为电压信号。在非常小的振动的情况下,信号极低,电路的后续阶段将无法检测到它。为了尽量减少装配和设计操作,我们使用了现成的放大器模块。如图2所示,它是一个模拟信号放大器模块,放大倍数高达100倍,使用LM358集成电路。它配备了一个用于电源指示的LED,可以使用多圈微调器调整放大倍数。CPnednc

电源电压在5VDC和12VDC之间,非常适合我们的项目。模块的尺寸极小,约为33x14mm。得益于其多功能性,该模块可广泛应用于所有模拟电路,无论是在音频领域还是在电气测量领域。放大调节微调器为10kOhm。模块的外部连接如下:CPnednc

  • VCC
  • IN
  • OUT
  • GND

CPnednc

图2:现成的放大器模块使用LM358 ICCPnednc

电路图

出于教学和简化的原因,电路图被保持在最简单的程度,读者可以根据需要添加其他组件。如图3所示,从框图和实际电路图中都可以看出,本地地震检测系统由一些基本组件组成:CPnednc

  • 嵌入式系统电源及信号放大器
  • 运动传感器
  • 去耦电容(47uF)
  • 信号放大器
  • 嵌入式系统
  • 向操作员传送数据的前端

电源为嵌入式系统和信号放大器提供电压。它可以是电池、直流(DC)电源或其他电源,具体取决于能源需求,并要确保所有组件正常运行而不中断,能保持特定的电压和电流。在这种情况下,电由嵌入式系统提供,而嵌入式系统的电又由个人计算机提供。CPnednc

上一节已深入讨论了运动传感器,它通过提供非常微弱的信号来监测可能的地面震动,信号放大器的下一级会增加来自运动传感器的微弱信号的幅度,使其强度足以被嵌入式系统处理。保持输入信号的完整性并且不产生失真至关重要。CPnednc

在我们的案例中,嵌入式系统的代表是Arduino R4,它通过ADC处理从传感器收集的数据,对其进行处理后控制整个系统。它是电路的“大脑”,执行主要的操作,例如处理来自传感器的数据和控制响应。最后,前端将处理后的数据传送给操作员,它可以是一个图形或基于文本的用户界面,通过各种可视界面显示结果。CPnednc

所有这些组件虽然非常简单,但却共同构成了一个用于监测、处理和交流信息的完整系统。地震检波器项目的嵌入式系统以Arduino R4代表,但经过适当的修改,也可以用其他解决方案代替。CPnednc

CPnednc

图3:框图和电路图CPnednc

去耦电容器(或隔直耦合电容)的作用是隔离两个级之间的连续信号,例如传感器和放大器之间的连续信号,防止信号中不需要的成分从一个元件传输到另一个元件。必须根据要管理的频率仔细计算去耦电容器,因为其电容电抗会显著影响传输的信号量。CPnednc

去耦电容器的作用是阻断来自传感器信号中的直流(DC)分量,允许交流(AC)分量通过,交流(AC)分量代表要放大的有用信号。换句话说,电容器就像一个滤波器,只允许所需频率(AC)信号通过,保护放大器免受直流电压的影响,因为直流电压可能会干扰放大器的工作,或在极端情况下将放大器接地(即损坏放大器或限制其正确放大信号的能力)。项目中使用的是47uF电容器,它可以阻断直流,但同时允许交流分量(要放大的信号)传递到放大器。CPnednc

如果不使用去耦电容,放大器输入可能会接地,从而导致其无法正常工作。从图4中的图表可以看出,电容电抗(用Xc表示)是电容器对电路中交流电通过造成的一种阻力,与在所有频率下都恒定起作用的纯电阻不同,电容电抗取决于交流电的频率和电容器的电容。它用以下公式计算:CPnednc

CPnednc

其中:CPnednc

  • Xc:是电容电抗,单位为欧姆
  • f:是交流电的频率,单位赫兹
  • C:是电容器的电容,单位法拉

不过,该值并不重要,用户也可以选择略有不同的值模型,但一定要考虑到其截止和滤波曲线。CPnednc

CPnednc

图4:项目中使用的47uF电容器的电抗与频率的关系图CPnednc

Sketch

要加载到Arduino上的固件已减少到最低限度,它是进一步改进和后续实施的基础。源代码列表如下:CPnednc

long lettura1;CPnednc

void setup() {CPnednc

   Serial.begin(9600);CPnednc

}CPnednc

void loop() {CPnednc

   lettura1=0;CPnednc

   for(int i=1;i<=1000;i++) {CPnednc

       lettura1=lettura1+(analogRead(A0));CPnednc

   }CPnednc

   lettura1=lettura1/1000;CPnednc

   Serial.println(lettura1);CPnednc

}CPnednc

这个Arduino sketch旨在从输入A0读取模拟信号,并计算1000个读数的平均值。这样,系统每秒可产生约43个采样点,足以描述约4Hz的输入信号。变量“reading1”被声明为长整数(long类型),用于存储模拟读数的总和,然后计算它们的平均值。CPnednc

当Arduino开启或重置时,setup()函数会执行一次,并在其中通过Serial.begin(9600)函数初始化串行通信,速度为9600bps,这是将数据从微控制器发送到计算机或其他设备所必需的。loop()函数以无限循环执行,并通过超级采样获取放大传感器的模拟信号。最后,使用Serial.println(reading1)函数将得到的平均值发送到串行监视器。对于那些想要更高分辨率信号的人,可在Arduino R4中使用以下函数对12位ADC进行编程:CPnednc

analogReadResolution(12);CPnednc

插入到setup()函数中。这样,根据更有限的10位分辨率,采集的信号的动态范围将介于0到4095之间,而不是0到1023之间。CPnednc

测试

测试相当简单,不需要任何校准。如果sketch已正确加载并且接线正确,系统应能立即工作。如果发生局部地震冲击,即使人类无法察觉,系统也会检测到地震产生的信号。为Arduino供电后,信号已在处理过程中,设计人员可以采用不同的解决方案对其进行可视化和分析。CPnednc

图5显示了一些可视化地震检波器产生的电信号的解决方案。该图分别显示了使用“Better Serial Plotter”软件进行的记录,然后是使用定制软件,最后是将信号的文本数据导入电子表格(例如Excel或Calc)。可用于信号处理的选项有很多,还包括有前端的图形变体,如:CPnednc

  • Arduino IDE串行绘图仪的使用
  • 使用能够读取和显示串行端口数据的第三方软件
  • 使用用户定制的软件和程序
  • 在Arduino R4矩阵上显示数据,即使是低分辨率的数据
  • 通过MQTT协议通过互联网发送数据
  • 通过TV-OUT库在电视上显示地震图
  • 通过短信发送警告信息
  • 还有很多其他的。

CPnednc

图5:地面振动测量的一些示例CPnednc

然而,最好的方法是生成一个文本LOG文件,并通过各种计算应用程序处理其中包含的数据。本文提出的解决方案非常简单,目的是建立一个实用的功能基础,读者可以在此基础上进一步深入了解和改进。例如,在sketch中,可以实现一个警报系统,当信号超过特定阈值时,就会启动执行器。CPnednc

结论

本文介绍的设备是检测地面振动的第一步。为了确保更高的测量精度,建议将其安装在远离市区的农村地区,最好安装在底层。应避免将其安装在容易振动的建筑物上层,这样可以减少因当地和人类活动而造成误报的风险。CPnednc

理想的定位位置是地下室。不过,为了获得更精确的地震测量结果,有必要开发调谐到低频的摆锤,这样既能探测P波和L波,还能计算与震中的距离。此外,可以在软件层面配置当前设备,以便在振动超过预设阈值时发送警报消息。CPnednc

(原文刊登于EDN姊妹网站Embedded,参考链接:Geophone With Arduino R4,由Ricardo Xie编译。)CPnednc

责编:Ricardo
本文为电子技术设计原创文章,未经授权禁止转载。请尊重知识产权,违者本司保留追究责任的权利。
  • 微信扫一扫
    一键转发
  • 最前沿的电子设计资讯
    请关注“电子技术设计微信公众号”
广告
热门推荐
广告
广告
广告
EE直播间
在线研讨会
广告
面包芯语
广告
向右滑动:上一篇 向左滑动:下一篇 我知道了