この一連の記事ではスマート卓上ファンを作ってみます。このファンにはSTマイクロエレクトロニクスのToF(Time-of-Flight)測距センサを使っています。一部のToF測距センサはst.comで提供されるスマート人感検出(以下SPD : Smart Presence Detection)を使うことで高度な人感センサとして動作します。このSPDの結果を使い、羽の回転や左右の首振りを制御します。
前の記事へのリンク
前回までの記事ではSTマイクロエレクトロニクスのToFとSPDの紹介、機構・モーター制御の考察を進めてきました。この記事ではSTM32CubeMXを使って、NUCLEO-H533REのベースとなるプロジェクトを作っていきます!
3. プロジェクトを生成する
基本となるNUCLEO-H533REのプロジェクトを自動作成していきます。STM32H533ではなくてSTM32F401を使うこともできます。このプロジェクト生成や次章のSPDの移植は少し大変です。STM32F401を使う場合には本章と次章を飛ばしてください。まずはSTM32CubeMXを開いてBoard Selectorから「NUCLEO-H533RE」を選択します。
次にボードの機能を設定する場所がありますが、VCOMのチェックをはずします。VCOMは使用しますが、これをBSP機能で賄おうとすると後に出てくるGPDMAのRequestでUSART2_TXが選択できなくなります。融通がききません。
3.1 USART2の設定
面倒ですが、さきほどチェックを外したVCOMのための設定を手動で行います。115200にしておきます。
3.2 GPIOの設定
GPIOはボードの構成に合わせます。以前の設定ではデバッガを使っていたら途中で切れる現象などがありました。なぜかと頭をひねっていましたが、デバッガで使っているピンをGPIOにアサインしてしまっていたことに気づきました。基本的なことなのかもしれませんがご注意ください。未使用なピンで近いピンを選んで、それぞれ機能ごとに使います。
3.3 I2Cの設定
VL53L7CXはI2Cでコントロールします。I2C1を設定します。「Speed Mode」は「Fast Mode Plus」を選択します。
3.4 DMAの設定
SPDのソースコードではUARTの送信側にDMAを使っているので、DMAの設定をします。GPDMAを以下のように設定していきます。
3.5 その他の設定
DCACHEやICACHEはONにしないとコードのGenerateでエラーがでるので、ONにしますNVICで割り込みの関数を生成しておきます。
3.6 コードの生成
プロジェクト名を指定して、Application Structureを「Advance」にして、「Generate」ボタンを押してコードを生成します。生成されたプロジェクトを開いてエラー無くコンパイルできることを確認します。
今回はSTM32CubeMXを使って、NUCLEO-H533REのベースとなるプロジェクトを作りました。コンパイルはとおりましたでしょうか?次回はSPDライブラリをSTM32H533のプロジェクトに移植していきます。次の記事につづきます!