更多

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

    上星期和大家談及實驗的簡介、資料和硬件配備,也開始作了手作部分。今期會繼續接駁 Raspberry Pi 與 MCP3008 ,以及製作程式的部分。
    承上期,連接蜂鳴片後,現在準備餘下的部分。由於 Raspberry Pi 只有數碼輸入,因此不能將震盪器的模擬訊號直接輸入 Raspberry Pi ,所以需要使用一顆模擬數碼轉換器 MCP3008 。
    [row][double_paragraph]

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

    [/double_paragraph][double_paragraph]
    圖中是模擬數位轉換器 MCP3008 的實際接駁情況。
    圖中是模擬數碼轉換器 MCP3008 的實際接駁情況。

    [/double_paragraph] [/row]
    完成接駁之後,可量度一下金屬球下墜到木板時所產生的電壓。
    相對於靜止狀態,一般來說,下墜的金屬球可產生多大約數十倍的電壓量。
    相對於靜止狀態,一般來說,下墜的金屬球可產生多大約數十倍的電壓量。

    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 樓跌落至地下,就可以降低實驗中所量度的時間和下墜距離的誤差率,大家不妨多作嘗試。

    您會感興趣的內容

    相關文章