STM32でToFセンサーを動作させる
今回はSTMマイコンでToFセンサーを動作させたときのことをまとめます。
STM公式のToF評価ボードを使った例はたくさん出てきますが、sparkfunなどの単体のToFセンサーを使った例はほとんどなかったので、初心者の自分にとってはまあまあ苦労しました。
環境(必要な機材)
マイコン:
STM32Hシリーズ
(これじゃなくても動くと思います)
ToFセンサー:
Qwiic VL53L5CX搭載 ミニToF測距センサ
抵抗:
2.2kΩ 2個(SDAとSCL)
47kΩ 2個(INTとRST)
手順
前提としてプロジェクトは作成済みとする。
1.ドライバーをPCにダウンロードする
最初はソフト側の設定です。
STMマイコンでToFセンサーを動作するためのドライバーが用意されているので、以下のリンクからダウンロードする。
https://www.st.com/ja/embedded-software/stsw-img023.html
2.ドライバーをプロジェクトに追加する
以下のリンクの"Add the Driver"を参考に、ドライバーをプロジェクトに追加する。
Getting Started with the VL53L5CX ToF Sensor
3.プロジェクト内でピンの設定をする
以下のリンクの"Configure the STM32 Device"を参考に、ピンの設定をする。
Getting Started with the VL53L5CX ToF Sensor
今回はSDA、SCL、I2C_RST_C、INT_Cを設定しました。
4.コード上に組み込む
2で追加したドライバーのパッケージ内にサンプルコードがあるため、そのコードを参考に自分のコード上に関数を追加する。
(サンプルコードの1の内容だけで基本的なデータを取得するプログラムは書けます)
5.ToFセンサーをSTMマイコンに繋げる
次にハード側の準備です。
SDA、SCL、GND、3Vを使うため、ToFセンサーのこの4つのピンとSTMマイコンの該当するピンを繋げます。
SDA、SCLはマイコンによってピンが決まってるのでマイコンの仕様書を読んで確認してください。
またSDA、SCLはI2Cなのでプルアップ抵抗を使います。
繋ぎ方はデータシートの7ページを参照。
(INTとRSTはコードによっては繋げなくても大丈夫です、今回は繋げなくても動く)
参考サイト
直接参考になったサイト
Getting Started with the VL53L5CX ToF Sensor
"Configure the STM32 Device"と"Add the Driver"を参考にした。
Qwiic ToF Imager - VL53L5CX Hookup Guide
レジスタアドレスなどのセンサーのインターフェイス周りを参考にした。
vl53l5cx_neopixel_demo
platform.cの内容はユーザが書かないといけないが、その内容はこのリポジトリの内容をそのままコピーした。
知識として参考になったサイト
Using the STM32Cube HAL I2C Driver in Master Mode