在初中級數學科中三角比(正弦、餘弦及正切)的課堂,學生可以了解到直角三角形的角與邊的關係。現在可以利用這些理論,來計算一些有關距離或高度的問題,例如找出一座大廈的高度,或估計一條河的闊度等。
三角比課題的其中一個延伸活動是製作測斜儀,學生可以利用量角器、硬卡紙、飲管、幼繩及重物等物資製作。使用者需以眼睛望向所要量度物件的最高點,從而在量角器上,估計出物件的仰角,然後運用三角比的公式來計算出物件的高度。然而目測方法較不準確,所估計出的角度仰角,往往誤差較大,而令計算出來物件的高度有頗大的偏差。
今次的設計文章會描述如何運用 Arduino 微處理器、三軸加速度計感測器及激光發射器來製作測斜儀,從而得出一個較準確的量度高度的工具。
三角比課題簡介
製作中,會運用到初中級數學科中的三角比知識。假設是有一個同學站在禮堂的一個位置,與禮堂牆壁的距離是 a ,我們可以構想出一個直角三角形, ∠ABC 為該學生望向禮堂最高點的仰角為 x ,就可以用三角比的方法來找出禮堂的高度,概念圖如下:
另一方面,從下面的公式,如果知道仰角 x 及同學站立位置與禮堂牆壁的距離 a ,我們就可以得出禮堂的高度。
[row][double_paragraph] [/double_paragraph][double_paragraph]
[/double_paragraph] [/row]
Arduino 測斜儀設計
在文章的最初,提及到以往利用量角器製作的測斜儀,因為是利用目測的方法估計出的仰角,以致誤差較大,使計算出來物件的高度有頗大的偏差。今次運用的五項電子裝置,分別有 Arduino UNO 及以下四項,相關裝置用途如下。
A. 激光發射器
利用激光發射器將光束射向所需要量度物件的最高點,用來量度公式中的仰角 x 。激光發射器的使用是非常簡單,只需要接上 Arduino 的電源便可以發射光束。在實驗中,會把它連接到 Pin11 ,因為這是一個脈衝寬度調變 Pulse Width Modulation ( PWM ),方便調節光束的亮度。
B. 三軸加速度計感測器
加速度計的感測器原理是基於地球表面的重力加速度是有方向性的,當感應器傾斜的時候,晶片會根據重力的改變來測量三軸傾斜的變化,然後輸出三軸的類比數值。
不過,此習作中,只需使用 x 軸的訊號,但要留意的是不能直接使用接
收訊號,要需要先將這些訊號校準( Calibration ),範圍由 0° 至 90° 。校準的方法如下,將感測器平放在一個正方體上面(仰角為 0° )並放在一個水平面上,記下 x 軸的類比數值,然後將正方體轉動 90° ,再次記下 x 軸的類比數值,最後在程式中將 0° 至 90° 映射到剛才記錄到的兩個數值上,這個校準步驟變完成了。
[row][double_paragraph]
[/double_paragraph][double_paragraph]
[/double_paragraph] [/row]
C. Keypad
在使用這個 Arduino 測斜儀工具時,可以利用 4×4 鍵盤,將水平距離輸入至 Arduino 。在 Arduino 中使用鍵盤是非常簡單,只需加入 Keypad Library 便可,但請注意,確定輸入的數據類型是「數字」,而不是「字串」,因為我們需要運用這個輸入來計算出物件高度。 Keypad 的接駁方法,鍵盤的接是 8 / 7 / 6 / 5 /4 / 3 / 2 / 1 ,再接駁到 Arduino 的 5 / 4 / 3 / 2 / 9/ 8 / 7 / 6 接口。
D. LCD液晶顯示器
最後,需要利用 LCD 液晶顯示器來顯示輸入的水平距離,量度到的仰
角,及想求出的物件高度。我們所使用的是 1602 液晶模組,即是包括兩行,每行有 16 個字元位置的顯示器,在此題目中已十分足夠應用。為方便製作,運用背面已經焊接好 I2C 介面的控制板可直接接駁顯示器,只需要接駁四條電線就可以, LCD 液晶顯示器的接駁方法是 LCD 液晶顯示器的接口按序是 VCC / GND / SCL / SDA ,分別接駁到 Arduino 的 5V / Gnd / A5 / A4 接口。
[row][double_paragraph]
[/double_paragraph][double_paragraph]
[/double_paragraph] [/row]
下星期待續……