三軸加速度計

三軸加速度感應器是利用三個軸向移動的加速度,來算出旋轉的角度,在這個篇教學將使用 Webduino 來控制 ADXL345 這個型號的三軸加速度感應器,ADXL345 可以選擇使用 I2C 或 SPI 協定來傳遞資料,而 Arduino 的類比腳使用 I2C,所以這裏我們會使用到的腳位是 GND、VCC、CS、SDA 和 SCL。

範例影片展示

接線與實作

VCC 接在 3.3V 的位置 ( 電壓高於 3.6V 會導致晶片燒毀 ),GND 接 GND,CS 和 VCC 接在一起,把 CS 的電位拉高和 VCC 相同,目的在告訴晶片是走 I2C 的協定,IN1 和 IN2 是負責驅動中斷的兩個輸出引腳,在這邊實作的過程不會用到,所以不用接,SDO 屬於 SPI 協定使用因此在這個範例也用不到所以不用接。

因為要走 I2C 的協定,所以要在訊號端加入「上拉電阻」,在線路裡分別加入兩顆 10K 的電阻來作為上拉電阻 ( Arduino 官方網站建議使用 10K 的電阻作為上拉或下拉的電阻值 ) 。

接線示意圖:

Fly 接線三軸加速度計

實際接線照片:

Fly 接線三軸加速度計

Fly 接線三軸加速度計

基本操作

打開 Webduino Blockly 編輯工具 ( https://blockly.webduino.io ),因為這個範例會用網頁「顯示文字」來顯示三軸加速度計偵測到三維空間的數值,所以要先打開 Webduino Blockly 的網頁互動測試區,下拉選單選擇「顯示文字」,此時在右下角會出現對應的積木功能可以選擇。

網頁互動測試

把開發板放到編輯畫面裡,填入對應的 Webduino 開發板名稱,開發板內放入三軸加速度計的積木,名稱設定為 adxl,SDA 腳位設定 A4,SCL 腳位設定 A5。

三軸加速度計相關積木在「環境偵測 > 三軸加速度計」目錄下。

三軸加速度計積木

接著放入「adxl 開始偵測」的積木,使用「顯示」積木顯示偵測到的 x 方向數值。

三軸加速度計偵測積木

因為三軸加速度計會回傳五個數值 ( X、Y、Z、Roll、Pitch ),但文字顯示欄位只有一個,為了可以一次將所有數值顯示出來,這裏我們使用「建立字串」的積木,利用藍色小齒輪,增加五個缺口,這樣就可以一次顯示五個數值。

建立字串和文字的積木在「基本功能 > 文字」目錄下。

建立字串積木

當然只有數值不夠,還要標示這個數值代表什麼,所以用到二層的「建立字串」積木,裡面放入數值名稱,以及三軸加速度計所偵測到的數值,至於要取出何種數值,可以透過下拉選單選擇,同時文字裡面可以使用<br/>作為換行表示。

顯示三軸加速度計偵測數值

為了避免文字太大,這邊也可以利用文字大小和行高的積木,來調整文字大小。

文字大小與行高的積木在「顯示文字」目錄下

設定文字顯示樣式

填入裝置 Device ID,確認開發板上線,點選右上方紅色按鈕執行,上下左右轉動三軸加速度計,就會看到數值發生變化並且顯示在網頁上。

範例解答 ( 雲端平台 ):https://blocklypro.webduino.io/?demo=demo-area-01#RdWyr20mVb

範例解答 ( 體驗版 ):https://goo.gl/KlbNsI

相關參考