更多

    製作 Arduino 測斜儀(上)

    最速 360Hz G-Sync 電競螢幕    ROG Swift PG259QN 全港率先體驗

    在年初 CES2020 時, NVIDIA 和 ASUS ROG 聯名「史上最快」的遊戲螢幕「 ROG Swift PG259QN 」,具最快 360Hz 刷新率並支援 G-Sync 功能,到底這款產品有何表現?又會不會令 PC 機迷愛不釋手?等 Norman 去為大家介紹。

    【#1413 PCM】NVIDIA GeForceRTX 3080 深度拆解+測試

    談到新一代的GeForce RTX 3080,都是些琅琅上口的名辭如2代RT Cores、3代Tensor Cores、2X FP32及流暢的4K遊戲性能等等。而最令人振奮的,是RTX 3080部分技術更超越數據中心用的A100 GPU,屬誠意之作。

    【#1413 Biz.iT】個人化推薦引擎 推動網店收益

    疫情推動商戶開設網店,已經有效吸納一批新客戶。下一步考慮推動更多消費,或需要工具協助,例如個人化推薦引擎。該技術是人工智能實用案例之一,亞馬遜、Netflix等是都利用自行開發的推薦引擎而成功增加收入的著名例子。

    在初中級數學科中三角比(正弦、餘弦及正切)的課堂,學生可以了解到直角三角形的角與邊的關係。現在可以利用這些理論,來計算一些有關距離或高度的問題,例如找出一座大廈的高度,或估計一條河的闊度等。
    三角比課題的其中一個延伸活動是製作測斜儀,學生可以利用量角器、硬卡紙、飲管、幼繩及重物等物資製作。使用者需以眼睛望向所要量度物件的最高點,從而在量角器上,估計出物件的仰角,然後運用三角比的公式來計算出物件的高度。然而目測方法較不準確,所估計出的角度仰角,往往誤差較大,而令計算出來物件的高度有頗大的偏差。
    今次的設計文章會描述如何運用 Arduino 微處理器、三軸加速度計感測器及激光發射器來製作測斜儀,從而得出一個較準確的量度高度的工具。

    三角比課題簡介

    製作中,會運用到初中級數學科中的三角比知識。假設是有一個同學站在禮堂的一個位置,與禮堂牆壁的距離是 a ,我們可以構想出一個直角三角形, ∠ABC 為該學生望向禮堂最高點的仰角為 x ,就可以用三角比的方法來找出禮堂的高度,概念圖如下:
    另一方面,從下面的公式,如果知道仰角 x 及同學站立位置與禮堂牆壁的距離 a ,我們就可以得出禮堂的高度。
    [row][double_paragraph] Photo2 [/double_paragraph][double_paragraph] Photo15
    [/double_paragraph] [/row]

    Arduino 測斜儀設計

    在文章的最初,提及到以往利用量角器製作的測斜儀,因為是利用目測的方法估計出的仰角,以致誤差較大,使計算出來物件的高度有頗大的偏差。今次運用的五項電子裝置,分別有 Arduino UNO 及以下四項,相關裝置用途如下。

    A. 激光發射器

    利用激光發射器將光束射向所需要量度物件的最高點,用來量度公式中的仰角 x 。激光發射器的使用是非常簡單,只需要接上 Arduino 的電源便可以發射光束。在實驗中,會把它連接到 Pin11 ,因為這是一個脈衝寬度調變 Pulse Width Modulation ( PWM ),方便調節光束的亮度。
    p80

    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]

    LCD wiring 正面有 16 個字元位置的顯示器。
    LCD wiring 正面有 16 個字元位置的顯示器。

    [/double_paragraph][double_paragraph]
    LCD wiring 背面是接線口。
    LCD wiring 背面是接線口。

    [/double_paragraph] [/row]
    下星期待續……

    您會感興趣的內容

    相關文章