LoginSignup
14
10

More than 3 years have passed since last update.

micro:bitでWebUSBを使う

Last updated at Posted at 2018-09-20

MakeCode for micro:bit のベータ版で、WebUSBが使えるようになったので、試してみました。詳細はこちら。

この記事の内容確認は、全てMac上のGoogle Chromeで行いました。Windows 10環境で動作しない場合は、以下の情報を参考にしてください

https://support.microbit.org/support/solutions/articles/19000089574-beta-testing-mbed-driver-doesn-t-work-with-windows

DAPLinkバイナリのダウンロード

まず、micro:bitのDAPLinkファームウェアを最新版に更新します。WebUSBに対応したファームウェアバージョンは、v0249以降になります。

DAPLinkファームウェアの書き込み

続いて、このDAPLinkファームウェアをmicro:bitに書き込みます。

  • micro:bit 背面のリセットボタンを押しながら、USBケーブルでPCと接続する
  • MAINTENACE という名前のドライブがマウントされるので、0253_kl26z_microbit_0x8000.hex ファイルをコピーする

書き込みが終わるとUSBドライブはアンマウントられ、再びマウントされます。MICROBIT という名前のドライブがマウントされれば成功です。

MakeCode for micro:bit から使ってみる

これで準備が出来たので、MakeCodeからWebUSBの機能を使ってみます。

  • MakeCodeを開く
    https://makecode.microbit.org/

  • 設定(画面右上の歯車のアイコン)から、Pair deviceまたは「デバイスを接続する」を選択する

スクリーンショット 2018-09-18 10.54.50.png

  • 表示されたデバイスを選び、接続ボタンを押す

select.png

これでデバイスが設定されます。ダウンロードボタンを押すと、プログラムがファイルとしてダウンロードされるのではなく、デバイス側に直接書き込まれます。

以上!!

これだけだと、「デバイスに直接書き込めるので、ホストパソコン側にファイルが増えなくて便利」だけなのですが、WebUSBの機能を使ったNode.jsパッケージがArmから公開されています。

DAP.js を使う

DAP.jsは、CMSIS-DAP のJavaScriptインタフェースです。CMSIS-DAPを通じてArmマイコンをNode.jsや、WebUSBを使ってブラウザから制御することが出来ます。詳細は、DAP.jsリポジトリの説明をご覧下さい。

以下は、WebUSBが有効なDAPLinkファームウェアが載ったmicro:bitを繋いで、examples/read-registers/ のサンプルコードを動作させた例です。

$ node webusb.js 
Select a device to read registers:
1: BBC micro:bit CMSIS-DAP
R0: 00000000
R1: 200021e4
R2: 00000000
R3: 00000000
R4: 00000018
R5: 20002ce4
R6: 200024d4
R7: 0002f10f
R8: 00000000
R9: 00000000
R10: 00000000
R11: 00000000
R12: 0002f299
R13: 20003fec
R14: 0002f2a7
R15: 0001a832

いかがでしょうか?Armマイコン(Cortex-M0)の汎用レジスタの内容が表示されています。
今までは、専用デバッガだったり、OpenOCD/pyOCDとGDB等のデバッグソフトウェアを組み合わせて使ったりしなければ、マイコンのデバッグ制御が出来ませんでした。WebUSBなDAPLinkファームウェアとDAP.jsの組み合わせで、一気に可能性が広がりそうです。
コアレジスタやメモリを操作するためのDAPにアクセスする機能は全て実装されているので、そのうちウェブブラウザ上でマイコンのデバッグが出来るようになるのかも知れませんね。

14
10
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
14
10