电子制作
大部分地震监测仪的核心装置,简单说起来就是在磁场中悬挂一个固定有线圈的重物。当发生地震时,地面带动设备中产生磁场的磁铁一起震动,而线圈却因为悬挂重物的惯性保持基本静止。这时线圈因为切割磁力线产生了感应电流,采集这个信号,再做一些滤波和阻尼处理,就可以得到有意义的信息。
我的地震仪采用了一个低阻抗的半成品检测器,自带阻尼功能,这是设备的系统原理框图。
运动传感器
● 这就是整个设备的照片,丑是丑点,但是很实用的。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分钟的记录图。
● 第一排的前两个图形是我用手指敲了敲房顶,然后关上了我工作室的门,其他的都是背景噪声。很明显我的设备超级灵敏的,这样灵敏的结果就是当地震真正来时,在惊慌中你会发现所有震动都会跳出振幅的阈值,图像被红线填满了。如果此时你还会想要估计地震的强度,参考显示器本身的跳动幅度会更加准确。
程序代码如下:
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
全部0条评论
快来发表一下你的评论吧 !