最主要的原因是因為InvenSense的sensor有內建算法, 因此對於沒有算法team的公司而言,
使用I家的產品自然成為首選.
2. 現在這個範例是使用mpu6050 sensor board + stm32f401 discovery board + processing來示範,
主要的流程如下:
- STM32F401透過I2C來Init MPU6050 DMP, 並透過I2C來讀取MPU6050算出來的Orientation資料.
- STM32F401透過Virtual Com-Port將Orientation傳送給PC上的Processing軟體.
- Processing根據Orientation的數據來轉動小飛機.
3. 因此在操作之前, 必須先裝好裝滿Processing以及相關的Library.
- 首先先至Processing網站, 點選Download.
- 接著會出現問你要不要捐錢, 直接點選No Donation, 就會出現Download的標幟.
- 接著就根據你自己的平台來選擇安裝, 由於我是使用win10 64bit, 因此安裝64bit版本, 選擇後就會下載約100MB左右的壓縮檔.
- 解壓縮後, 會看到processing.exe, 執行後即可完成安裝.
- 由於我們在Processing上執行的demo範例必須要使用到toxiclibs這個library, 因此
我們必須也要到toxiclibs的網站去下載library.
- 到達下載頁面後, 直接選擇toxiclibs-complete-0020.zip, 即可下載至PC.
- 將toxiclibs-complete-0020.zip解壓縮後, 將整個資料夾複製到C:\Users\user\Documents\Processing\libraries資料夾內, 到這邊我們已經完成了PC端軟體的設置.
4. 接下來可以準備相關的硬體, 首先先完成mpu6050 sensor board和stm32f401 discovery board之
間的連接線路.
- stm32f401 discovery board :3V -> mpu6050 sensor board: VCC
- stm32f401 discovery board :GND -> mpu6050 sensor board: GND
- stm32f401 discovery board :PB6 -> mpu6050 sensor board: SCL
- stm32f401 discovery board :PB9 -> mpu6050 sensor board: SDA
- 接著將ST-LINK及USB端口分別使用USB Cable與PC相連, 此時會看到mpu6050 sensor board上的LED亮起, 這樣應該就代表電源沒接錯了, 到此硬體已全部準備完成.
5. Code Flow:
- STM32F401:
- 針對硬體上的Init, 其中最重要的是對I2C & USB VCP的初始化, 使用I2C與MPU6050溝通, 使用USB VCP將Orientation data傳給PC.
- 使用I2C對MPU6050執行初始化, 中間只要有一個步驟不正確, 則會跑到無窮迴圈.
- 當MPU6050 Init成功後, 便會跑到主迴圈, 此時會不斷地去詢問dmp fifo data是否已完成準備, 若是完成準備的話, 則會一口氣將fifo data全讀回來.
- 接著便會開始計算Yaw/Roll/Pitch, 並把quaternion透過USB VCP傳送給PC.
- Processing:
- 使用Processing開啟程式後, 會看到左上角的Run的符號, 按下即可執行程式.
- Processing程式中特別需要注意的是要去設定com port的編號, 首先我們先去觀察stm32 virtual com port在裝置管理員上的com port編號是多少, 從下圖可以看到目前是COM8.
- 接著我們可以先執行Processing端的程式, 可以看到下面的訊息窗會把目前PC上面的所有com port及編號皆列出來, 而我們要找的就是virtual com port對應的編號(ex: COM8), 從下圖看到COM8是第4個.
- 確定了vcp的編號後, 接著就是去修改processing程式上的com port編號, 如下圖在line 74行的地方, 將vcp number填入Serial.list()[vcp number].
6. Test Flow:
- 將stm32f401的測試程式燒入到stm32f401 discovery board上.
- 使用USB Cable將stm32f401 discovery board與PC相連接.
- 執行Processing程式, 成功的話會看到如下圖的小飛機出現, 此時移動sensor board, 飛機會有相對應的動作出現.
- Test Video:
7. Test Code Download Link:
沒有留言:
張貼留言