整合加速度計的地震探測器設計

作者 : Giovanni Di Maria,EEWeb特約作者

文中介紹的振動探測器設計並無意用於取代地質研究所使用的專業模型,也無法用於精確測量地震事件。

本文著重於描述地震探測器涉及的各部份,而非介紹地震學和地震儀的概念。文中介紹的振動探測器設計並無意用於取代地質研究所使用的專業模型,也無法用於精確測量地震事件。

然而,在無法提供距離或震級的情況下,這款設計有助於被動地確定地震事件。設計人員因而必須透過電視或線上諮詢官方機構來探索地震的震央位置。此外,該裝置無法產生傳統的地震圖,但能夠偵測到1Hz至20Hz之間的任何高頻地面振動。因此,它特別適用於鄰近的地震。

振動探測器簡介

如前所述,我們所打造的裝置是一款振動探測器。因此,它應該放置在室內的一樓。由於建築物的振動及其彈性,在建築物內的某些位置可能發生異常振動,尤其是在較高樓層。這是一個無法調諧的鐘擺系統,我們為其配置一個加速度感測器並連接到其下方的頂部。在系統振動的情況下,加速度計將會提供相關資訊至Arduino,而Arduino將會相應地做出適當的決定。

該探測器可向用戶通報地震事件,並在監測器上顯示與振動發生有關的資訊(並可能將數據記錄在大容量記憶體中)。但該裝置無法提供地震的距離或強度資訊(見1),而只會警示用戶已發生的振動。

Figure 1: It would be useful to know how to predict and prevent earthquakes. Millions of lives could be saved

圖1:瞭解如何預測和預防地震很有幫助,可能因而挽救數百萬人的生命。

所使用的加速度計

該設計中所使用的模組是帶有MPU6050晶片的GY-521,因為其功能強大且價格便宜(2)。其中包括以下幾個元件:

  • 三軸加速度計
  • 三軸陀螺儀
  • 溫度感測器
  • 內部時脈振盪器
  • 數位動作處理器

該晶片必須以3.3V供電,而GY-521上的穩壓器允許使用高達5V的電壓。其尺寸極小,僅21.2mm×16.4mm×3.3mm。輸出可與Arduino I2C匯流排連接。使用MEMS技術可從移動質量計算出沿軸的加速度。輸出的振幅與加速度成正比。在正常位置時,x軸上的值為0G,y軸上為0G,z軸上為+1G。

Figure 2: the GY-521 accelerometer used in the project

圖2:設計中所使用的GY-521加速度計。

接線圖

接線圖(見3)非常簡單,實際上,只需將兩塊板的四個端子以相同數量的電纜連接起來即可。它僅提供加速度計的一些觸點,因為並不是所有來自該元件的資訊都是必要的。具體的連接如下:

  • Arduino: 5V — GY-521: Vcc
    • Arduino: GND — GY-521: GND
    • Arduino: A5 — GY-521: SCL
    • Arduino: A4 — GY-521: SDA

該配置顯然可以由使用者在有特殊需要的情況下進行修改。例如,可以添加警報、燈光執行器等。

Figure 3: The simple wiring diagram of the earthquake detector

3:地震探測器的簡單接線圖。

執行Sketch程式

使用適當的工具庫進行I2C通訊,與加速度計模組交換資訊就會比較簡單。Arduino的列表非常清晰(參見4)。它用於處理從位移感測器採集數據並將其傳送到COM序列埠。許多指令被保留用於配置序列參數、I/O埠和變量聲明(‘setup’函數)。‘loop’函數包含實際的操作部份。在編碼結束時,使用Arduino IDE的序列監測器和序列繪圖儀測試電路,以及檢查感測器的動態響應十分有幫助。

Figure 4: Arduino IDE with the sketch, the serial monitor and the serial plotter

圖4:帶有Sketch、序列監測器和序列繪圖儀的Arduino IDE。

FreebasicHarbor中的LOG程式

除非實施重大改變,否則Arduino程式無法將資料儲存在大容量記憶體中。為了儲存資料,可以使用外部程式透過PC的COM序列埠讀取Arduino資訊。在本文中,我們推薦兩種不同類型的軟體,其一採用Freebasic程式語言編寫,另一種則是用Harbor程式語言(參見5)。

第一種採用Freebasic的語言軟體是為了在視訊上顯示振動缸;第二種沒有繪圖視窗,則採用Harbor語言,將事件儲存於文字檔。5中並提供兩種列表附件。PC的軟體肯定比Arduino更複雜。在程式的開頭有一些變量的聲明和初始化,然後透過相關參數與COM埠建立序列通訊。如果連接Arduino的序列埠不同,則需要進行相應的修改。

Figure 5: screenshots of the Freebasic and Harbor language program

圖 5:Freebasic和Harbor程式語言的螢幕截圖。

鐘擺和櫃子的設置

鐘擺必須放置在傢具內部,遠離任何物理、電磁和大氣干擾源(參見6)。事實上,即使是輕微的風、振動、電磁波、噪音、雷聲和響亮的音樂,也可能導致系統振盪,因此任何擾動都可能干擾測量。這些情況對於該裝置來說也相當適用;因此,其實際建置應以良好的施工標準進行。任何建築材料都很合適,但推薦使用金屬;木材也可以,只要別用在潮濕的房間。此外,建議增加一扇門,以便打開來進行維護操作。而在不平坦的地板上,還應該使用可調節的支腳來平穩放置傢具。

系統的機械中心可由振盪質量塊來表示。其頂部由一根螺紋桿支撐,顯然改變了鐘擺的自然振盪週期,但至少實現了一種機械制動。測量裝置可以根據空間需求而改變。螺紋桿固定在櫃體的頂部,並在其下固定一些運動用的砝碼,從而構成了振盪質量。在此設計專案中,使用了一些總重量為4kg的鑄鐵盤。而在鐘擺的底部,振盪質量塊的下方,有一個加速度計轉而透過細電線連接到Arduino板。

Figure 6: the box with the pendulum, the accelerometer and Arduino

圖6:帶有鐘擺、加速度計和Arduino的盒子。

運作中的系統

測試過程執行起來非常簡單。只需要啓動Arduino板,然後在PC上啓動該軟體,系統就會立即啓動並顯示第一個測量值。在圖表上,可以看到微小的振動,這是加速度計正常運作的標誌。當發生地震振動時,就能在圖表上觀察到強烈變化,如7所示。如果有必要的話,可以透過Ocenaudio聲音處理程式分析軟體記錄的軌跡,該程式並可支援文字檔。

Figure 7: the recorded traces of an earthquake

圖7:某次地震記錄到的軌跡。

結論

本文所設計的裝置是以原始方式告知地面正在振動。因此,它應該安裝在開闊的鄉村,遠離城市並安裝在建築物的底層——無論如何,都不要安裝在上層,因為高樓層總是受到振動影響。如此才能避免檢測錯誤與誤報。建議的最佳位置是地下室。

然而,為了更精確地確定地震,在打造鐘擺時有必要將其調整至低頻,因而也能夠用於決定P波和L波的震度,以便計算震央的距離。如果某些振動超過了設定值,也可以透過軟體為該裝置設計建置警示訊息。

(參考原文:Earthquake Detector with Accelerometer,by Giovanni Di Maria)

本文同步刊登於EDN Taiwan 2022年6月號雜誌

加入LINE@,最新消息一手掌握!

發表評論