目的
今まで電子工作をほとんどして来なかったせいか全然マイコンとかいじれないのでサーボモータを動かせるようになっていずれはROSとかロボット設計から制御までできるようになりたいというのがモチベーション
ということでとりあえずSTM32マイコンを買ってみたのでLチカを試してみようと思う。
準備物
- Nucleo-STM32F446RE(今回使った開発ボード)
- STM32CubeIDE
- miniB USB(データ転送可能なやつ)
- 開発用PC(今回はノートPC), Intel Corei3-1005G1, メモリ16GB(DDR4)
開発ボードのリンクを張っておきますがメルカリとかで掘り出し物を見つけた方がよいかと思います。
開発環境を整える
ここから先は備忘録的に書いていく
STM32CubeIDEをインストール
最新版を下記リンクよりダウンロードする。
※ダウンロードする際にメールアドレス、名前を書いて同意する必要がある。
同意したら登録したメールアドレスにダウンロードリンクが届くのでそこからダウンロードする。
STM32CubeIDEを使ってみる
インストール後の初回起動から先は以下のリンクを参考に進めた。
まったく同じボードなのでなにも考えずに真似をすればできました。大変感謝。
仕様としては0.5秒ごとにLD2と書かれているLEDをオンオフ点灯させる。という簡単なLチカ動作となります。
一応他の注意事項も以下に示します。
日本語化するにはこれ
https://qiita.com/forest1/items/30a0fe08dd256a247ff0
※フォルダ名、ファイル名共に日本語には対応していないようなので注意。
ここはmatlabと一緒みたい。英語だったらコンパイルが正常に通る。
とりあえずできるようになりましたが、正直本当に自分でGPIOをいじれているのか。プログラムもうまく反映できているのかがわからなかったので、最終的にはB1に対応付けられているプッシュスイッチを押したらLED(LD2)=ON, スイッチを離したらLED=OFFとするLチカをやってみることにしました。
プログラム的にはmain.cの104行目付近をいじる。
HAL_GPIOでLD2_PinはPA5に対応している。
TestOUT_PinというのはPA6に対応するピン配置になっている。
後でオシロスコープで確認しようと思ってたのでコメントアウトで入れてあります。
今回使用しているのはSW(B1)とLED(LD2)のみ。
わからなかったらボードを見ると素子のそばに書いてあります。確認してみるとよいかも。
一応GitHubを使えるようになりたいのでGitHubの方にも勉強がてらUPしてみました。
GitHub - kwaz6/TestLED_forSTM32F446RE: First_Ltika_STM32
一応どんな感じになったかについてはtwitterに動画をあげたのでこちらを確認してみてください。
とりあえずSWでLチカできた。ちょっとだけわかった pic.twitter.com/OAfnP3s4s8
— 充実したデスマ (@kwaz6) 2021年4月20日
まとめ
今回はSTM32マイコンを使ってLチカしてみました。もう少し画像を追加して詳しくまとめるべきですが、自分への備忘録なのでこんなもんでしょうか。
博士とったのにこんなレベルの低いことやっているのかと思いますが、最終的には自分でロボットまで作れるようになりたいので地道に頑張っていきたいと思います。
あとで、参考リンクのパクリみたいになりますが、忘れないようにコンパイルまでの詳細な設定を画像で記録して追記しておきたいと思います。
お金に困ってなければ、何も考えず強い人と一緒に1年くらいインバータ、モータドライブ、ロボット設計までやりたいなぁ。
それでは