2017年10月08日

micro:bitのハードウェアのブロック図を描いてみた

microbit-block-diagram.png

micro:bitにはCPUが2つとセンサーとLEDが搭載されていますが、それぞれがどのようにつながっているのか一目で解る図が無かったので、作ってみました。(ちなみにこの図はdraw.ioで描いています。)

micro:bitの回路図はこちらに掲載されています。

bbcmicrobit/hardware: Hardware designs for the BBC micro:bit

ただ、これはちょっと見づらいので、以下に掲載されているリファレンスデザインの回路図を参考にしました。

microbit-foundation/microbit-reference-design: micro:bit Reference Design

メインのCPUはnRF51822のほうで、それに対してKL26Zはプログラマとして動作します。

nRF51822は5×5(内部的には3×9)のLED、I2C経由でセンサ2つに接続されており、KL26ZとUARTで通信できます。また、SPIが拡張コネクタに引き出されています。
拡張コネクタのピン配列は以下のページにあります。ただしP1, P2,...の番号はコネクタのピン番号で、nRF51822のポート番号ではありません。

Schematics

一方、KL26ZはUSBポートに対してmbedとして動作し、nRF51822をSWD(Serial Wire Debug)信号でプログラムします。KL26Zの信号線は拡張コネクタには接続されていません。
また、KL26ZはUARTでnRF51822と通信しますが、この通信はUSBポートのUSBシリアルインタフェースへそのまま受け渡されます。
詳細は以下のページに解説があります。

DAPLink and the USB Interface

micro:bitはターゲットCPUとプログラマCPUが同居しているという点ではArduino UNOに似ています。
また、プログラムの書き込み方法や、オンラインでプログラムをコンパイルできるという点はmbedの資産を活用しています。
Arduinoとmbedの良いとこ取りを狙った構成と言えそうです。
posted by boochow at 15:42| Comment(0) | micro:bit | このブログの読者になる | 更新情報をチェックする

micro:bitを動かしてみた

microbit.jpg

話題になっていたので買ってみたものの、放置して積ボードになる寸前だったmicro:bitです。
ESP32+MicroPythonが思ったより面白かったので、すっかり後回しになってしまっていました。

ですが、試食してみた結果、教育用としてはかなりよくできていると思っています。
日本語サイトもよくできています。
センスが良いですよね。
microbitorg.png


あと、開発ツールをちゃんと用意しているのがすごいです。
このサイトでプログラミングの勉強をするつもりは無いのですが、どのような教材なのかは興味があります。
子供向けのプログラミングですから、ハードル高いです。
分かりやすくて、楽しく、安定して動作することが必要です。

makecodemicrobitorg.png


ハードウェアは2000円ですが、価格の割には凝ったボードだなあというのが第一印象です。
以下の概要図(公式ページより。日本語訳は私がつけました)を見ても、教材として、柔軟性やコスト、使いやすさなど考え抜いたものだということが伝わってきます。
microbit-hardware.png


図にはありませんが、micro:bitはCPUを2つ積んでいます。

ひとつはNordic nRF51822で、Bluetoothにつながっています。もう一つはKinetis KL26Zで、USBにつながっています。
このKL26Zはmbed式のインタフェースになっており、USBに接続すると8MBのUSBストレージが現れます。
ここへプログラムをドラッグ&ドロップしてmicro:bitへ転送できるようになっています。
microbit-mbed.png

一方、nRF51822のほうはスマホとBluetoothで通信してプログラムを書き込むことができます。
そのためには専用のアプリおよびBluetoothのペアリングが必要になります。
microbit-pairing1.png

micro:bitのAボタンとBボタンを押したまま、リセットする(再起動するまでABボタンは押したまま)と、ペアリングモードになります。
ペアリングモードでLEDに表示されたパターンを、スマホアプリ側に入力します。
このパターンはいつも同じなので、おそらくmicro:bit側のMACアドレスなのでしょう。
microbit-pairing2.png

入力が完了すると、ペアリングが始まります。これはmicro:bit側で表示された数字をスマホアプリ側に入力することで行います。

パターンを正しく入力した後、micro:bitのAボタンを押すと、7桁(たぶん)の数字が順に表示されます。
これをスマホ側のアプリに入力するとペアリング完了です。
この操作はモタモタしているとタイムアウトになってしまいますので、少しハードルが高いです。


なお、USB経由でWindows PCに接続するとプラグ&プレイでドライバがインストールされますが、シリアルポートはドライバが見つからずにエラーになります。
win-driver-install.png

このデバイスドライバは以下からダウンロードすることができます。

Windows serial configuration - Handbook | Mbed

というわけでとりあえず動くようになりました。

まだ実際にプログラムは書いていませんが、JavaScript + Blockの環境はエミュレータが動いていますし、Pythonの環境も完成度が高いです。

題名未設定 - makecode.microbit.org

Micro:bit - Python editor

どちらもWebの上で動作し、操作も軽快です。
使い勝手だけならArduinoやmbedより上でしょう。
大したものだと思います。
posted by boochow at 00:34| Comment(0) | micro:bit | このブログの読者になる | 更新情報をチェックする
人気記事