用 Raspberry Pi 進行物理實驗(下)

用 Raspberry Pi 進行物理實驗(下)

上星期和大家談及實驗的簡介、資料和硬件配備,也開始作了手作部分。今期會繼續接駁 Raspberry Pi 與 MCP3008 ,以及製作程式的部分。

承上期,連接蜂鳴片後,現在準備餘下的部分。由於 Raspberry Pi 只有數碼輸入,因此不能將震盪器的模擬訊號直接輸入 Raspberry Pi ,所以需要使用一顆模擬數碼轉換器 MCP3008 。

按著圖中的接駁方法, Raspberry Pi 就可讀入模擬信號。

按著圖中的接駁方法, Raspberry Pi 就可讀入模擬信號。

圖中是模擬數位轉換器 MCP3008 的實際接駁情況。

圖中是模擬數碼轉換器 MCP3008 的實際接駁情況。

完成接駁之後,可量度一下金屬球下墜到木板時所產生的電壓。

相對於靜止狀態,一般來說,下墜的金屬球可產生多大約數十倍的電壓量。

相對於靜止狀態,一般來說,下墜的金屬球可產生多大約數十倍的電壓量。

Python 程式設計

最後的階段,在 Raspberry Pi 編寫程式讓整個實驗進行。我們將使用最新的 GPIO Zero Library ,可以更容易學習及編寫 Python 程式,如系統還未安裝 GPIO Zero Library ,可在 Terminal 中鍵入 sudo apt-get update 以更新軟件,然後再鍵入 sudo apt-get install python3-gpiozero 以下載 Library 。

程式碼如圖。

程式碼如圖。

有關實驗中的程式碼,當中的一些重點解釋如下:
行數 1 : 載入 GPIO Zero Library ,及加入 LED 、按鈕及擬數碼轉換
器。
行數 4 : 將按鈕設定在 2 號接口上。
行數 5 : 將繼電器設定在 17 號接口上。
行數 6 : 壓電陶瓷蜂鳴片設定在數碼轉換器 MCP3008 的第一隻腳上。
行數 7 : 要求學生輸入金屬小球下墜的距離(以米作單位)。
行數 8-10 : 當按鈕接收到按下的訊號,即連接至 GND , Raspberry Pi 便會列印出「 Button is pressed 」(行數 9 ),及輸出訊號給繼電器(行數 10 ),以供電給電磁鐵設以施產生磁力,吸著金屬小球。
行數 12-15 :當按鈕沒有被按下,系統會停止供電給電磁鐵(行數 15 ),
電磁鐵便沒有磁力,金屬小球開始下墜。這時候電腦便會記下系統時間 t1 (行數 13 ),並會列印出「 Button is released 」(行數 14 ) 。
行數 18-24 : 當金屬小球下墜到地下的木板上,便會使到壓電陶瓷蜂鳴片
產生電壓訊號。但因為這個訊號很微弱, 我們要把訊號乘上 100 倍,以放大訊號的數值。當這個數值大於 80 時(行數 18 ),我們便可確定金屬小球已經下墜至木板的位置了。這時候電腦便會記下系統時間 t2 (行數 19 ),將 t2 減去 t1 ,並捨入至一個小數位(行數 20 ),便可得出金屬小球的下墜時間( roundt )。最後用公式就可求出重力加速度。

1257kid04p07

完成以上的步驟之後,就可以進行這一個實驗活動了。首先,開啟 Raspberry pi 的 Python 程式,將以上的程式碼輸入至一個新的檔案,將檔案儲存之後,按一下 F5 ,程式便開始執行。在實驗中,金屬小球的下墜距離設定為 1.25 米,得出重力加速度的數值為 9.68ms-2 ,結果令人滿意。

如果能夠將實驗中的下墜距離設定為更大的數值,例如把金屬小球由 2 樓跌落至地下,就可以降低實驗中所量度的時間和下墜距離的誤差率,大家不妨多作嘗試。