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