|
——瘋殼·智能穿戴開發(fā)系列 三軸計步伐
三軸記步
1相關(guān)簡介
本次,我們將使用 DA14580 的硬件 I2C 讀取三軸傳感器的步數(shù)。
I2C 總線是一個為系統(tǒng)中電路通信提供支持的可編程控制總線,它是一個軟件定義的兩線通信協(xié)議。
兩線 I2C 串行接口包括一個串行數(shù)據(jù)線(SDA)和一個串行時鐘線(SCL);
支持兩種通行速率,標準模式(0~100Kb/s)和快速模式(小于等于 400Kb/s);
時鐘同步;
32 字節(jié)的發(fā)送接收 FIFO;
主機發(fā)送與接收操作;
7 或 10 位地址,7 或 10 位混合格式發(fā)送;
塊發(fā)送模式;
默認從地址為 0x055;
中斷或者輪詢操作模式;
可編程的數(shù)據(jù)線保持時間;
本次使用的三軸傳感器是 LIS2DS12。LIS2DS12 是一種超低功率高性能三軸線性加速度計,具有用戶可選擇的尺寸 2G/4G/8G/16G,能夠測量輸出數(shù)據(jù)速率從1Hz 到 6400Hz 的加速度。并且具有集成的 256 級先入先出(FIFO)緩沖器,讓用戶在存儲數(shù)據(jù)時,限制主機處理器的干預(yù)。LIS2DS12 支持 SPI 和 I2C 兩種接口, 我們這里采用的 I2C 接口。
2硬件設(shè)計
LIS2DS12 一共有 12 引腳。1 腳 SCL 是時鐘信號。2 腳 CS 是 SPI/I2C 使能引腳。第 3 引腳是 SPI 的數(shù)據(jù)輸出,由于這里用的 I2C,這個引腳空余。引腳 SDA 是 I2C 用來傳送數(shù)據(jù)的。還有兩個中斷腳 INT1、INT2,打開之后,當(dāng) LIS2DS12 檢測到步數(shù),能產(chǎn)生中斷電平。
圖 1
3軟件設(shè)計
首先,完成系統(tǒng)初始化,調(diào)用 system_init(),可以參考前面的電量檢測。接 下 來 就 是 I2C 的 使 用 了 。 第 一 步 我 們 配 置 I2C 的 相 關(guān) 引 腳 。
GPIO_ConfigurePin(I2C_GPIO_PORT, I2C_SCL_PIN, INPUT, PID_I2C_SCL, false);
GPIO_ConfigurePin(I2C_GPIO_PORT, I2C_SDA_PIN, INPUT, PID_I2C_SDA, false);
第二步,就是通過下面函數(shù)初始化 I2C。
代碼1
完成 I2C 的初始化之后, 我們就可以通過 i2c_eeprom_read_byte(uint32_taddress, uint8_t *byte) 對 LIS2DS12 進 行 讀 操 作 , 通 過
i2c_eeprom_write_byte(uint32_t address, uint8_t byte)對 LIS2DS12 進行寫操作。
通過 I2C 的讀寫函數(shù),對 LIS2DS12 寄存器進行讀寫,就能使用 LIS2DS12。詳細資料可以查詢 LIS2DS12 的 datasheet。
首先,我們是調(diào)用函數(shù) status_t LIS2DS12_ACC_R_WHO_AM_I_BIT(u8_t *value) 讀 取 設(shè) 備 ID , 判 定 是 否 為 正 確 的 設(shè) 備 。 然 后 , 我 們 調(diào) 用LIS2DS12_ACC_W_SOFT_RESET(LIS2DS12_ACC_SOFT_RESET_t newValue),軟件初始化 LIS2DS12 設(shè)備。如果讀取設(shè)備錯誤或者軟件初始化不成功,DA14580 會進入一個空的死循環(huán)。最后,我們會進入 Loop_Test_Pedometer(),記步測試。
代碼2
4 實驗現(xiàn)象
首先,插好 Jlink 和 USB 轉(zhuǎn)串口,然后打開打開串口調(diào)試助手。
(1)選擇串口號,我們圖中是 COM1,這個根據(jù)實際情況選擇。
(2)配置串口參數(shù),波特率為 115200,數(shù)據(jù)位 8,停止位 1,沒有校驗位和控制流,與下圖一致。
(3)點擊打開串口。
圖 2
配置完串口之后,打開我們提供的代碼。
(1)點擊仿真按鍵。
圖 3
(2)點擊運行代碼。
圖 4
完成上述操作,就會看到串口調(diào)試助手區(qū)域 4 中會顯示出步數(shù),我們搖晃單片機,會發(fā)現(xiàn)串口調(diào)試助手打印出新的步數(shù),并且步數(shù)在增加。
圖 5
文件下載請點擊:
6_(100%開源)藍牙心率防水運動手環(huán)_三軸計步伐.pdf
(612.82 KB)
2022-8-26 16:12 上傳
點擊文件名下載附件
下載積分: 積分 -1
|
|