脇目を振らずに組込みを楽しむ
年に2回くらい聞かれるのですが、1年前なら組込み開発を独習したいという方にRaspberry pi(pico以外)を勧めていました。GUIのOSをインストールできてGPIOがあるため、パソコンを使っている人にも抵抗なく始められる間口の広さがあることと、関連書籍がダントツに多いからです。
しかし最近はRasperry Piを勧めるのは、以下の理由で軽率なのではないかと思い始めました。
円安や半導体不足による急激な値上げで手軽に購入できる値段ではなくなりました。どのくらい値上げされたかといいますと2020年以前の2倍以上です。
何か作ろうとすると基盤を作る、3Dプリンターでケースを作るなど大掛かりになってPoC(お試し実装)で終わりがちです。
多機能であるがゆえにやりたいことを絞り切れず、最終的にRetropieをインストールしてレトロゲーム機にして存在意義を見出しがちです。
そこで最近は同じ質問をされたときはM5Stack(Basic、Fireのいずれか)と答えるようにしました。こちらはマイコンですが、ファームウェアを書き換えることで様々なプログラミング言語に対応します。
またディスプレイ、ボタン、マイク、スピーカー、LED、IMUセンサーが内蔵されているため、アイデア次第では単体で便利なデバイスをPoC以上のクオリティーで作ることができます。
M5Stack関連の書籍はUIFlow(Blockly)を使った入門書が多い印象です。動作確認はやり辛いですが開発は非常に進めやすく、そこそこのものを作ることができます。実際にボードゲームタイマーは全てUIFlowで書きました。
しかし、分かりやすいプログラミング開発環境は、どうしてもその環境に合わせてソフトウェアを設計する部分があります。これが窮屈に感じ始めましたら、次のステップに行くのも良いと思います。UIFlow以外の開発環境を紹介します。
Visual StudioのPlatformIOプラグインでC、C++での開発
Visual Studioのvscode-m5stack-mpyプラグインでMicroPythonでの開発
Visual Studioの.NET nanoFrameWorkプラグインでC#での開発
Moddible SDKによるJavascriptでの開発(導入方法は下のページに手順が紹介されています)
個人的にはUIFlowで開発するとMicroPythonで書かれたコードを見ることができますので、このコードを参考にVisual Studioにvscode-m5stack-mpyプラグインを入れた環境に移行していくのが良いと思います。
スタックチャン(Stack-chan)でM5Stackを始めようと思った方はModdible SDKから始めることになります。