micro:bitを手に入れた。
小型のARMマイコン基板だ。他の商品をAmazonで買ったときに表示されたのでつい買ってしまった。
BBC micro:bit (マイクロビット)(Amazon)
Raspberry Pi Zero Wと比べると、このくらいの大きさだ。
技適マークが基板に印字されてなくて、紙で付属している。いいのだろうか?
技適問題をちゃんとクリアしている互換基板のchibi:bitというのがあるらしい。
(自分が興味を持った)使い方は、PCにUSBケーブルに繋いで、PCでクラウドのエディタ(開発環境)を使ってMicroPythonのプログラムを書いて、micro:bitに書き込んで実行するというものだ。
→ はじめに — BBC microbit MicroPythonドキュメント
他にもTypeScript(JavaScriptのMicrosoft版)でプログラムを作ったり、mbed化したりなども可能。
無線機能としてはBLEのチップが載っているのだが、RAMが少ないのでmicroPythonからはBLEとしては使えない。
BLEではない独自のプロトコルでならmicro:bit同士で連携させて短いデータをやりとりするのはMicroPythonでできるようだ。
BLEではないので、IoTに使うには向いてない(?)かと思った。LANにつながらないからだ。
一応スマートフォンとBluetoothでつなげてリモコンロボットを遠隔操作するキットもあるので、Bluetooth通信はmicroPythonをあきらめれば、なんとかできるのかもしれない。
→ micro:bitを使った2輪ロボットの自作キット「MOVEミニバギーキット」が販売中 – AKIBA PC Hotline!
あるいはMicroPythonでなくTypeScrptで使うとかmbedで使えばRAMがPythonに取られなくて済むので動くということなのだろう。
ただし技適の問題があるので、自分はこの手持ちのmicro:bitでは試すわけにはいかない(?)かもしれない。要、確認だ。
あと他の特徴としては温度センサーと加速度センサーと電子コンパスのチップを積んでいるというのがある。ただし、温度センサーは気温測定用ではなく、CPUの温度測定用だ。
基板のエッジコネクタが特殊なので、自作の回路をつなぐのはちょっと面倒だ。
→ SparkFun microbit Breakout (with Headers) – BOB-13989 – SparkFun Electronics
電源とI/Oピン3本だけは大きめの基板パターンになっていて、スルーホールの大きな穴が開いている。
穴部分にターミナル部品を取り付けて使うのが簡便でいいみたいだ。I/Oが3本しか使えないけど。
→ microbitにターミナルを付けて手軽に回路実験 サヌキテックネット
この3本のピンがI2CやSPIとして使えるなら便利なのだけど、ピン配置を見ると違っている。残念。
→ micro:bit : BBC micro:bit pins
結局、自分にとっては「組み込み×Pythonで遊んでみる」というのが一番面白そうだと思ったマイコン基板だけど、RAMが少ないのでPythonであまり凝った応用に使うのは難しいのかもしれない。
—
追記
micro:bitのプログラムの作り方について、いろいろな方法があるのでちょっと迷うというか混乱する。
公式サイトで取り上げている方法としては大きく2つある。
1つはTypeScript(JavaScriptのMicrosoft版)ブロックエディタという、ブロックの絵を並べてつなげてソフトを作るという開発方法がある。インターネットブラウザでMicrosoftのMakeCodeというサイトのクラウド開発環境を使う。Node-REDに似てるかもしれない。
作成したhexファイルをUSBでPCに接続したmicro:bitに書き込んでプログラムを動作させる。
(JavaScriptなのに.hexというバイナリ用のファイルが生成させるというのが、ちょっと謎なのだけど。どうやら実行環境+スクリプトをマージしたバイナリを生成するらしい)
似たような名前のMicrosoftの”ブロックエディタ”というのもあるのが紛らわしい。
2つめの方法は、micro:bitのPythonエディタを使う方法で、これもインターネットブラウザでmicro:bitのサイトのクラウド上で使う開発方法だ。これもhexファイルが生成されてデバイスに書き込むようだ。
あるいはクラウドの開発環境の代わりにmuエディタというPC上で動くソフト使っても同様のことができるようだ。
他にCode KingdomsというJavaScript用の簡単に開発をするためのエディタ(クラウドの開発環境)があったり、Microsoft Touch Developという(Touch Develop scriptという言語の)開発環境があったりするようだ。
あるいはiOS/Androidのmicro:bit用アプリというのがあり、PCの代わりにスマートフォンを使って公式サイトのクラウドの開発環境を使ったり、プログラム(.hex)をmicro:bitにBluetooth経由で書き込んだりすることができる。USBで繋がなくてもBluetoothでワイヤレスに開発ができるのがちょっとユニークだ。
Scratchを使うという方法もある。この場合、PCにBluetoothのインターフェースが必要だ。micro:bitにscratch用のfirmware(?)の.hexファイルを書き込んで使う。クラウドの開発環境のScratchXというのを利用するようだ。(スタンドアローンで動くソフトは作れない?)
Microsoft Kodu Game Lab.という開発環境からmicro:bitを使うという方法もあるようだ。(スタンドアローンで動くソフトは作れない?)
あと他にはmbedのC/C++を使ってプログラムを作成する方法がある。yottaというパッケージを使うらしい。これが一番古典的だけど、従来のマイコン経験者にはわかりやすいだろう。
micro:bitは厳密にはmbedのクローンではなく、mbed 2.0のベース部分を流用して作られている。mbedの親戚みたいなものらしい。
本家mbed環境でもサポートされていてmbedのクラウド開発環境などでもmicro:bitのソフトの開発をすることができる。(C++のヘッダファイルはmbedと違うのを使ってる)
microPythonの実行環境やTypeScriptの実行環境はmbedから作られたらしいので、バイナリにはmbedのライブラリも入っている(?)