300 likes | 511 Views
感測網路實做. 三軸加速度實驗 -ADXL345 sensor. 三軸加速度偵測 實驗. 實驗介紹. 本實驗使用 MCU 板與 KIT 板作為實驗 平台 使用 三軸加速度感 測元件 做為 Input 元件 本 實驗將分成 3 份 PPT : Part-1 : ADXL345 基本介紹 Part-2 : ADXL345 SPI-3/SPI-4 的編程介紹 Part-3 : ADXL345 I2C 的 編程 介紹. 實驗目標. 學習 三軸加速度 感測器 ADXL345 的 使用 方式 瞭解 ADXL345 感測器的基本應用. M220 模組介紹.
E N D
感測網路實做 三軸加速度實驗-ADXL345sensor
三軸加速度偵測實驗 實驗介紹 • 本實驗使用MCU板與KIT板作為實驗平台 • 使用三軸加速度感測元件做為Input元件 • 本實驗將分成3份PPT: • Part-1:ADXL345基本介紹 • Part-2:ADXL345SPI-3/SPI-4的編程介紹 • Part-3:ADXL345I2C的編程介紹 實驗目標 • 學習三軸加速度感測器ADXL345的使用方式 • 瞭解ADXL345感測器的基本應用
M220模組接在JP2上 圖待補 實驗板配置
M220 三軸加速度感測模組 使用ADXL345做為主要的感測元件 • 支援SPI-3 和 SPI-4 • 支援I2C • 輕薄、低功率 • 高解析度(13-bit),範圍±16g • 使用多組暫存器操作狀態
M220 三軸加速度感測模組腳位設計圖 JP2(port , pin) SDA/SDI/SDIO (0,0) SCL/SCLK (0,1) SDO/ALT (0,2) CS (0,3) INT1 (0,4) VDD 3V GND
ADXL345功能說明 • 支援SPI-3 和 SPI-4 • 支援I2C • 輕薄、低功率 • 高解析度(13-bit),範圍±16g • 使用多組暫存器操作狀態
ADXL345 腳位功能說明 • 節錄至ADXL345手冊page.7
ADXL345SPI/I2C模式選擇方式 • I2Cmode:CS拉成HIGH,要與 VDD一樣(VDD有3.3v和5v) • SPImode:CS 拉成LOW • SPI的CS由Master控制 • SPI模式預設為SPI-4mode ※CS不可浮接(left unconnected),ADXL345沒有預設模式, 即SPI(CS-1)跟I2C(CS-0)一開始就要選一個 ※ 在兩個模式中,若是要寫入資料到ADXL345,那任何要 從ADXL345傳輸資料到Mater的動作都會被忽略
ADXL345SPI模式 • 支援SPI-3 和 SPI-4 • 由 DATA_FORMAT register決定要用哪個 Address 0x31 (0,1) (0,0) (0,0) (0,1) (0,2) (0,2) (0,3) (0,3)
ADXL345SPI-4TimeDiagram • ADXL345的取值和寫值的方式,都透過存取register達到,你可以從上頁的ppt看到紅框處的addressbit(詳暫存器設定) • 先確定好你的傳輸模式(Read/Write) • 在確定好你要存取的register address • 在SDI上1Bit、1Bit設定好address • 然後再依照TimeDiagram所示,依序控制腳位 • 如果要Read,則從SDO依序讀出1Bit、1Bit的資料 • 如果要Write,則將資料1Bit、1Bit填入SDI ※Address的第一個bit(W/R)是設定ADXL345處於Read(1)/Write(0)模式
ADXL345有多組register,手冊Page.24~27有針對各register的詳細說名。ADXL345有多組register,手冊Page.24~27有針對各register的詳細說名。 • 手冊Page.23有各register的初始狀態,這很重要,必須更改初始狀態,才可以使輸出符合需求。 • 後幾頁PPT會列出幾個本實習會用到的register • DATA_FORMAT 0X31 資料格式 • DATAX0 0X32 X軸資料的least significant byte • DATAX1 0X33 X軸資料的most significant byte • DATAY0 0X34 Y軸資料的least significant byte • DATAY1 0X35 Y軸資料的most significant byte • DATAZ0 0X36 Z軸資料的least significant byte • DATAZ1 0X37 Z軸資料的most significant byte • POWER_CTL 0X2D 電源控制相關 ADXL345 暫存器設定 • 詳細請看手冊Page.27
DATA_FORMATregister: • 控制register0x32~0x37之間的資料格式表示方式 ADXL345 暫存器設定 • 暫存器位址 :0x31 • 初始狀態 :00000000
DATA_FORMATregister: ADXL345 暫存器設定 • 數值設定 : • D1/D0Range: 00為±2g 01為±4g 10為±8g 11為±16g • D6SPI: 0為SPI-4 模式 1為SPI-3 模式 • D3FULL_RES: 0為full resolution mode 1為SPI-3 模式
POWER_CTLregister: ADXL345 暫存器設定 • 暫存器位址 :0x2D • 初始狀態:00000000
三軸加速度偵測實驗 專案配置 Workspace內的target,使用mcu-kit1內的library • components\targets\mcu-kit1
三軸加速度偵測實驗 程式設計參考流程圖
三軸加速度偵測實驗 程式設計重點
三軸加速度偵測實驗 實驗題目 將讀取到的XYZ數值分別顯示在螢幕上 完成結果
ADXL345 額外範例 簡易體感操作
ADXL345 額外範例 將ADXL345當作是類似wii的操作手把,屆此控制電腦程式中的物件,可當作是一個簡易的體感操作練習
ADXL345 額外範例 封包傳輸格式
ADXL345 額外範例 實驗題目 將讀取到的XYZ透過ethernet介面,傳輸到電腦之中,使電腦的接收程式內的直升機旋轉 完成結果