入門用のマイコン・ボード
初心者がマイコンプログラミングを学ぶには 32bit の ARM より 8bit の AVR や PIC のほうがよいと思うが、AVRやPIC はチップ価格は200円とか安いくせに、公式のライター(プログラマ)が1万円以上するところが辛い。AVRだと安価に自作できるし、2000円程度の簡易ライターを購入することもできる。
しかし、STM32なボードの場合、1600円程度で買うことができ、その上標準でUSBケーブルで書き込むことができる。なので、いまさら AVR や PIC を初心者に進めるのは気が引けてしまう。
STM32 Nucleo Board STM32F303RE: マイコン関連 秋月電子通商-電子部品・ネット通販
STM32 Nucleo Board STM32F303K8: マイコン関連 秋月電子通商-電子部品・ネット通販
世の中的には Arduino と Raspberry Pi が有名だが、ハードウェアスペックからすると無駄に高い。また、Arduinoは「とりあえず動けば良い」場合は楽でよいが、ハードウェアを隠蔽した環境のため、融通がきかない。ピンアサインが固定であり、ペリフェラルの設定ができない。割り込みもびみょーだったきがする。
RaspberryPiにはHDMI出力が標準でついており、モニタを使わない機器の場合は全く無駄である。また、Linux前提なのでネットワーク関連(WiFi、Ethernet,Bluetooth)は強いが、その反面デバイスを制御するためのペリフェラルは貧弱だ。(ADCがない、タイマが少ない)
RasPiの場合は、自分では直接デバイスを制御せず、AVRなどにデバイス制御を任せ、AVRとI2CやSPIでやり取りをする、というのが正しい使い方だろう。
IoT用
Bluetoothと無線LANの両方、またはどちらかが必要だろう。
RasPiZeroW
RasPiは高価だが RasPi ZeroW
Raspberry Pi Zero W - スイッチサイエンス
は比較的安価。と、ここで
を発見。今後安価な Linux ボードを購入するならこれが良さそう。
しかし、前述のようにRasPi Zero 2W もデバイスを制御するのは苦手だ。
ESP32
他の候補として
ESP32−DevKitC−VE ESP32−WROVER−E開発ボード 8MB: 無線、高周波関連商品 秋月電子通商-電子部品・ネット通販
がある。1,360(税込) でWiFiとBluetoothがついている。
こちらはRasPiと違って ADC、DACもあるし、タイマ(64bit)も2つある。PWM出力もついている。
Sipeed Maix
IoT もインテリジェントエッジとして考えると、
もよい。比較的安価にAI(画像認識)できる。
ソフトウェア開発環境
初心者向けなのは
- Mbed
- Arduino
だろう。Mbed は、Webサイトでビルドできるため、開発環境をローカルに構築しなくてもよい。
もちろん、ローカルに開発環境をインストールすることもできる。
興味深い環境として、 Platformio がある。VSCode の拡張機能として使え、各種マイコンボードに対応している。
STM32
STM32の場合、STmicro が純正の IDE として
STM32CubeIDE - STM32用統合開発環境 - STMicroelectronics
関連ツールとして
STM32CubeMX - STM32Cube initialization code generator - STMicroelectronics
といったものを用意している。
ESP32
- Arduino IDE
- ESP-IDF
Get Started - ESP32 - — ESP-IDF Programming Guide v4.4 documentation
- Platformio
K210
M5StickV で RISC-V での 開発 事始め (SW編) - Qiita