お久しぶりです。
突然ではありますが、STM32マイコンの評価ボードの一種であるNUCLEO-F411REを秋月電子から購入しました。
もともとマイコンにも興味があったんですが、最近は特にマイコンプログラミングの必要性を感じずにはいられませんでした。
というのも、
- オーディオ用DAコンバータの殆どは設定をI2CまたはSPIで行う
- FPGAでアップサンプリングなどの信号処理を実装し、動作確認としてDAコンバータと接続したい
- 確認用のDAコンバータの設定にI2CやSPIでの制御が必要になる
というのが理由です。
探すのに一苦労
で、探し始めるわけですがこれがなかなか難しかったです。
求める条件としては
- I2C/SPIが出せるもの
- デバッガが一体となっていること
- PCと接続してプログラムするもの
といったところです。
常々マイコンを使っているという方であればPICやAVRマイコンのICを単体で購入して・・・という手順を踏むのだと思いますが、何もしたことがないAUDIYからしたらデバッガやライタなどを別途揃えるというのも不安でした。
また、I2Cが出せるのかというのも、明確な記載がされているものが少なく(「そこが組み込みプログラマの腕の見せどころ」ということでしょうか?)、目星をつけても決定打に欠けるという印象です。
また、条件3の時点でラズベリーパイは無し。
・・・とまぁそんなこんなで調べて行き着いた候補が
- Arduino
- STM32-NUCLEO
の2つとなりました。
STM32を選んだ理由
最終的にArduinoかSTM32-NUCLEOかに決めるわけですが、
という理由からSTM32に決定しました。
最後の理由はAUDIYの偏見が入っていますが、Arduinoが実際の家電に入っているという例は聞いたことがありません(まぁマイコンIC自体はAVRですから・・・)。
「ひょっとしたら実務でも扱われているような開発環境で勉強しておけば今後役立つときが来るかもしれない」という淡い期待です。
注文
で、このSTM32-NUCLEOボードなんですが、
どのマイコンICが載っていても大きな価格差がありません。
秋月だと1500円~2000円で購入できます。
ということで、本来であれば秋月の取り扱いの中で最も高性能なNUCLEO-F446REが欲しかったですが、在庫切れとのことでその次に高性能なF411REを購入しました。
開封
シンプルです。本体と簡単な説明書きのみです。
USBケーブルすら入っていないというシンプルさ。
そして本体も想像より小さかったです。
Raspberry Piより長さが少し短くなり、若干幅広になった感じです。
ボード上にスリットがありますが、それより上の部分がデバッガ/ライタとなっています。
USBケーブルはUSB Mini-Bとなっているので要注意です。
AUDIYもまんまとやられました・・・
えぇ端子ちがうやーん..... pic.twitter.com/KYcNy8RKuD
— AUDIY (@AUDIY14) December 4, 2021
早速試してみる
STM32純正の開発環境(STM32CubeIDE)でさっそくプッシュスイッチに連動するLチカの実践動画があったので試してみました。
ビデオ見ながらSTM32の勉強している pic.twitter.com/dPowVAwJEB
— AUDIY (@AUDIY14) December 5, 2021
もともと学生までずっとプログラミングしていた人間だったのですが、組み込みソフトウェアというのは本当に初めてなもので、ソースコードの内容を未だ全ては理解できていませんが、なかなか新鮮で刺激がありました。
Lチカできた! pic.twitter.com/2oGZbmkpqZ
— AUDIY (@AUDIY14) December 5, 2021
開発環境のSTM32CubeIDEですが、ECLIPSEベースのIDEらしく、「ECLIPSEベース」から想像していたのとは裏腹に軽快に動作していました。
また、ピンアサインをGUIで決定できるというのはとても直感的でわかりやすいと感じました。
Arduinoスケッチでも動作させてみる
Arduino IDEでもSTM32用の設定をすれば開発可能とのことで、正弦波をPWMで出力してLEDを点滅させてみました。
Arduinoスケッチでで正弦波Lチカできた!
— AUDIY (@AUDIY14) December 9, 2021
今度はSTM32CubeIDEでより本格的に実装したい pic.twitter.com/CAk09B7iJw
Arduinoスケッチ、記法からして明らかにC言語派生ですが基本的なプログラムならライブラリのincludeが不要など、比較的優しい仕様になっていると感じます。
ただ、Arduino IDEからの書き込みは数分待つ必要があるので、早いところSTM32CubeIDEに慣れてしまったほうが良いかもしれません。
以上、STM32マイコンの購入報告と、「組み込みプログラミング界のHello World (?)」であるLチカを試してみたという報告でした。
STM32マイコンそのものはARMなので、知識さえ身につければかなり高度なプログラミングが楽しめるかと思います。
電子工作のかたわらマイコンプログラミングの技術も少しずつ身に付けて行きたいです。