#既存プラットフォームの不満
色々なマイコンプラットフォームを触ってきましたが、どれも自分のやりたいことがすんなりできないという状況が続いてきました。
##Arduino
- 長く使えそうだと思っていた思っていたAruduino 101が、後継機種無しのディスコンになってしまった。(Intelの、いつものちょっと売れないと辞めちゃう悪い癖が出ただけでArduinoが悪いわけではないですが。)
- デバイスライブラリが弱く、I2Cデバイス等、少し凝ったデバイスを使おうとすると、D/Sを眺めながら一からプログラムしなければならない。(Arduinoの手軽さがイマイチ活きない。)
- MCUの性能を完全に引き出せない。(まあ、そういうプラットフォームじゃないので、批判するべき点ではないですが)
*それでも懲りずに、Arduino nano BLE33 senseは触ってみようと思ってますが。
##MBed
- 仕事で使おうと思ったときに、メモリ書き込みでのプログラム実行はセキュリティのハードルが高い。
- ライブラリがオープンソースなので、メンテされてないことがままあり、それの調査で逆にプログラムの手間がかかる。(micro:bitはある程度仕方ないにしろ、STの加速度センサが動かないのは参りました...)
##micro:bit
- せっかくBLEチップが乗っているのに、標準開発環境では、フルに機能を引き出せない。(micro:bitの開発コンセプトとかけ離れているので、仕方がないですが。)
##M5Stack
- ハードウェアの電気特性が良くない。(ADC使うとスピーカーから音が出たり、BLE反応速度が悪かったり)
#Nucleoとは?
##特長
STM32という、シンプルな組み込み用ARM ICと、そのICにプログラムを書き込むツール、デバッグツールが一体になっているボードです。
##デバッグツールとは?
ざっくり言えば、
- マイコンのプログラムを逐次実行(止めながら実行)できる。
- プログラムを止めたとき、その時の変数が分かる。
ツールです。
ArduinoやMBedでプログラムのデバッグする場合は、問題になってそうな場所に、シリアルポートに変数を出力するコードを書くなどして、いろいろ試行錯誤すると思いますが、そのようなコードを書くことなく、かつ複数の変数を確認することができます。
##デバッグツールを使うには?
Nucleoでは、ArduinoIDEでもMBed IDEでも、プログラムを書くことができますが、このデバッグツールを活用することは出来ません。ARM専用のプログラミングツールを使う必要があります。
#STM32CubeIDEとは?
ST社純正のARM開発ツールです。
##特長
- フリーウェア
- ICのIOの設定やクロックの設定をGUIで設定することができる。
- Nucleoのデバッグツールを利用できる。
##短所
- GUIで生成したソースのどこを触っていいのか、分かりにくい。
- ツールや関数のリファレンスとなる情報が少ない。
#まとめ
自分のやりたいことが、音を扱うマイコンプログラミングという、MAKER界隈で、余り盛んでない分野(シンセ分野はアナログ回路が中心。マイコン界隈は、ロボットやIoTなど、そこまでリアルタイム性が問われない分野が中心)なのに、既存のお手軽ツールを使って何かしよう、という考えが間違ってた、ということに気づくのに、随分、時間がかかってしまいました。
何か面白いものが出来たら、また記事にします。