很久很久以前,在遥远的北爱尔兰,一位靠谱的DIYer做出了一个“靠谱的地震仪”。他表示这个自制仪器可以检测路过他家门口的卡车、暴躁邻居的敲门声、和一英里外打桩机的打桩频率,但是鉴于北爱尔兰空白的有点可耻的地震记录,一次地震也没检测出来(这个唯恐地球不震的DIYer此处表示了非常遗憾)。于是作为一位靠谱的译者,为表达对自制靠谱地震仪行为本身由衷的敬意,我郑重的在靠谱地震仪的前面加上了一个表示浓浓爱意“卟”字,是的如果你愿意读做“不”也可以的。下面我们就来看看这位北爱尔兰的朋友是怎么把自己武装成地震监测“卟”专家的~
大部分地震监测仪的核心装置,简单说起来就是在磁场中悬挂一个固定有线圈的重物。当发生地震时,地面带动设备中产生磁场的磁铁一起震动,而线圈却因为悬挂重物的惯性保持基本静止。这时线圈因为切割磁力线产生了感应电流,采集这个信号,再做一些滤波和阻尼处理,就可以得到有意义的信息。
我的地震仪采用了一个低阻抗的半成品检测器,自带阻尼功能,这是设备的系统原理框图。
运动传感器
● 这就是整个设备的照片,丑是丑点,但是很实用的。A和B是两个废弃的硬盘,这里我们去掉磁碟,只使用它的磁头臂。
● 磁头臂在硬盘中工作时,由音圈电机驱动。电机驱动器给音圈电机中线圈通电,线圈就会带动磁头臂移动。与其他所有电机相同,音圈电机也能反着用,也就是说当移动磁头臂时,音圈电机中的线圈里就会产生一股电流。我们可以放大这个电流信号,再把它采集到电脑中去。
● C是个很重很重的铅块,是从我家奇怪的天花板上剥下来的,这里采用弹簧悬挂的方式挂在设备上。D是一个附着在铅块C上的传动结构,负责把铅块C与底板的相对移动传到硬盘的磁头臂。两块硬盘的磁头臂分别负责采集两个方向的移动。E和F是两个用以保证设备稳定的铅块。G是选择开关,可以选择采集A和/或B线圈中的信息。经过我的实验,同时采集A和B线圈是最靠谱的。
● 当地震发生时,悬挂铅块C因为惯性基本保持不动,传动结构D也相对C不动,但是这时E、F会随地震震动,于是磁头臂移动,A、B线圈产生出感应电流,地震就被检测到了。
● 据我所知还没有人这样使用硬盘,所以这个地震仪应该是个原创发明,啊哈哈哈~
● 这个设备还有个优点。因为音圈电机本来就是要在高速下驱动磁头臂,电机的阻抗特别低,所以电路基本不存在受到电磁干扰的问题。在旁边工作着四台电脑和一个显示器的情况下,信号都不会掺杂太多电源的噪声。
放大器
● 这是一个比较标准的放大器电路,用2个741运算放大器制作。整个电路由15V的正负双电源驱动。
● 选择开关可以选择输入L1和/或L2线圈(A、B音圈电机)中的信号。
● 当输入信号时,R1或R2与R3匹配能使信号获得1000或300倍的反向放大。因为要检测的频率很低(典型地震的频率是1Hz或更低),我们的电路还是很可能获得这么高增益的。VR1是一个接调零端的10K微调电阻,用以调整输出的直流模拟信号,方便进行模数转换。R5和LED是电源指示灯。最后还要把整个电路的输出接入单位增益缓冲器,好有足够的电流去驱动8位数模转换器。
● 如果要把设备放到一个地震频发的地方去,就不需要这么灵敏,可以把R1、R2换成阻值较小的电阻来减少放大倍数。不过要记得把R4也换成和R1、R2相近阻值的电阻。这个电路的放大倍数是-(R3/R1或R2),如果你想要100倍的反向放大,用个10K的电阻就可以实现。
● 这是我做的电路布局,如果你需要可以RiscPC文件,可以联系我。
剩下的部分
● 这幅图上是全部电路设备,A是一个数模转换板,上面插的是ZN449 8位数模转换芯片,这是我最喜欢的一个多才多艺的芯片,我的人生因它而不同。虽然这么说,只要与电脑匹配,别的8位数模转换芯片也可以用的。B是电缆适配器。C是上一段说明过的放大器。
程序
● 我编了个名叫!Quaker的小小共享程序用来记录仪器的输出。这个程序可以每5分钟保存一副图片,记录这段时间内周围发生的震动。如果和RiscOS4配合可以把好几天的记录都存在同一个目录下面。下图是软件界面和5分钟的记录图。
● 第一排的前两个图形是我用手指敲了敲房顶,然后关上了我工作室的门,其他的都是背景噪声。很明显我的设备超级灵敏的,这样灵敏的结果就是当地震真正来时,在惊慌中你会发现所有震动都会跳出振幅的阈值,图像被红线填满了。如果此时你还会想要估计地震的强度,参考显示器本身的跳动幅度会更加准确。
最后再做一点说明,地震监测、地震预警、还有地震预报都是不一样的概念。简单的说:地震监测是要在地震来时采集地震的数据和强度;地震预警是要在地震第一波较弱震动到来时,及时预警下一波更强烈的地震;而在现有条件下,地震预报则是不靠谱的、希望能完全提前预报地震的手段。本文中的这个“地震仪”,应该说是一个不错的震动监测仪,不过如果有高人改装一下,能做成个地震预警装置也说不定的,DIY装置什么的,可都是潜力股哦~
附程序代码:
10 REM Quaker
20 REM Simple earth quake detector demonstration
30 REM Needs Velleman K8055 USB Experiment Interface board
40 REM Jochen Lueg
50 REM December 2009
60
70 MODE 15
80
90 REM Find dll routines addresses
100 PROCinit
110
120 VDU5
130 REM Turn board 0 on
140 SYS USB_OpenDevice%,0
150 CLG
160
170 MOUSE ON
180
190 COLOUR 5
200 MOVE 10,1000
210 PRINT“Press the left mouse button to start”
220 MOVE 10,960
230 PRINT “Press the right button to pause”
240 REPEAT
250 MOUSE x%,x%,b%
260 UNTIL b%=4
270 CLG
280 GCOL 5
290 REM Start at the top of the screen and repeat until you reach the bottom - 5 traces
300
310 REPEAT
320 CLG
330 FOR Y%= 1800 TO 200 STEP -200
340
350 FOR X%= 0 TO 2559 STEP 2
360 SYS A%,1 TO V%
370 PLOT 5, X%,Y%+V%*4
380 MOUSE x%,y%,b%
390 IF b%=1 THEN
400 REPEAT
410 MOUSE x%,y%,b%
420 UNTIL b%=4
430 ENDIF
440 NEXT
450 MOVE 0,Y%-200
460 NEXT
470 UNTIL FALSE
480 SYS USB_CloseDevice%
490
500 *QUIT
510
520 END
530
540 DEFPROCinit
550 REM Typing errors in routine name do not generate an error message - they just hang up the program.
560 SYS“LoadLibrary”,“K8055D.dll” TO USB_Board%
570 SYS“GetProcAddress”,USB_Board%,“OpenDevice” TO USB_OpenDevice%
580 SYS“GetProcAddress”,USB_Board%,“ReadAnalogueChannel”,1 TO USB_ReadAnalogue%
590 SYS“GetProcAddress”,USB_Board%,“SetAllDigital” TO USB_SetAllDigital%
600 SYS“GetProcAddress”,USB_Board%,“CloseDevice” TO USB_CloseDevice%
610 SYS“GetProcAddress”,USB_Board%,“ClearAllDigital” TO USB_ClearAllDigital%
620 SYS“GetProcAddress”,USB_Board%,“ClearDigitalChannel” TO USB_ClearDigitalChannel%
630 SYS“GetProcAddress”,USB_Board%,“SetDigitalChannel” TO USB_SetDigitalChannel%
640 SYS“GetProcAddress”,USB_Board%,“ReadAnalogChannel” TO A%
650 ENDPROC
评论
查看更多