最近ARMとIBMが発表したmbed IoT Starter KitのFRDM-K64Fや、マイクロソフトのGR版 IoT Kit(仮称)のGR-SAKURAなど、IoTプラットフォームにmbedのマイコンボードを採用する例が出てきました。Arduinoと同じ位置づけになります。Arduinoに比べると拡張基板が少なかったり、割高なハードウェアが多いのですが、Seeeduino Archが比較的安く購入できたのでまずはLチカまでやってみます。
セットアップ手順は基本的にmbedを始めましょう!の通りですがいくつか情報が古くなっているようです。
ホストマシンと接続
mbedの開発はホストマシンとUSBケーブルで接続して利用します。今回はホストマシンにOSXを利用します。Seeeduino Archを箱からだして、OSXと接続するとmicroUSBコネクター横のLEDが以下のように光ります。ARM mbed Developer SiteのSeeeduino Archページにピン配置図があります。
- LED_USB: 青で点灯
- LED1-4: 赤 > 緑 > 黄 > 青と移動しながら点滅
OSXには「ARCH」という名前でボリュームがマウントされます。
ARCH
ボリュームにあるARCH.HTM
ファイルを実行するとArch V1.1のページが開きます。
ARM mbed Developer Site
サインアップ
先ほど表示したページの右上にサインアップボタンがあるので必要な情報を入れ、ARM mbed Developer Siteにユーザー登録をします。
mbed Compilerにプラットフォームの追加
ログインしたらメニューのプラットフォームから、今回接続しているSeeeduino Archの画像をクリックします。
- Platforms > Seeeduino Arch
Seeeduino Archのページからmbed CompilerにSeeeduino Archをプラットフォームとして追加します。mbedはオンラインIDEを使ってプログラミングとコンパイルができるが特徴の一つです。
- Followボタンを押してフォローする
- Add to your mbed Compilerボタンを押して、オンラインIDEに追加する
Lチカ
オンラインIDEでコンパイル
mbed Compilerが起動するとmbed_blinky
プロジェクトを作成するダイアログが表示されます。OKボタンを押してプロジェクトを作成します。
プロジェクトにはメインプログラムが用意されています。
#include "mbed.h"
DigitalOut myled(LED1);
int main() {
while(1) {
myled = 1;
wait(0.2);
myled = 0;
wait(0.2);
}
}
Compile ボタンを実行するとmbed_blinky_LPC11U24.bin
のバイナリファイルが作成されるので、OSXにダウンロードします。
FinderでARCHボリュームにコピーできない。
ダウンロードしたバイナリファイルをARCH
ボリュームにFinderからコピーしようとすると領域不足でコピーできないというメッセージが表示されて失敗します。
Programming Seeeduino Arch(LPC11U24) on Windows, Linux or Macによると、OSXやLinuxの場合はddコマンドを使ってファームウェアの書き込みをする必要があります。
USB-ISPモードで起動
Seeeduino Arch (LPC11U24)はUSB-ISP (In-System-Programming)を使ってファームウェアの更新をします。ArchをOSXにUSBケーブルで接続して、DCジャック下にあるリセットボタンを長押しするとUSB-ISPモードで起動します。ボリューム名が「CRP DISABLD」となってマウントされます。
ddコマンドでファームウェア書き込み
Linuxの場合はディスクを{mnt_dir}にマウントしてからddコマンドを使います。
$ dd if={new_firmware.bin} of={mnt_dir}/firmware.bin conv=notrunc
OSXの場合は以下の書式になります。
$ dd if={new_firmare.bin} of=/Volumes/CRP\ DISABLD/firmware.bin conv=notrunc
mbed Compilerからダウンロードしたバイナリファイルをddコマンドを使って書き込みます。
$ dd if=~/Downloads/mbed_blinky_LPC11U24.bin of=/Volumes/CRP\ DISABLD/firmware.bin conv=notrunc
20+1 records in
20+1 records out
10308 bytes transferred in 0.000083 secs (124238177 bytes/sec)
すぐに書き込みは終了するのでCRP DISABLD
ボリュームをアンマウントします。
$ sudo umount /Volumes/CRP\ DISABLD
Lチカの実行
DCジャック下のリセットボタンをちょっと押して、ファームウェアを更新するとLED1が赤く点滅を始めます。もう一度ボタンを押すとCRP DISABLD
ボリュームがUSB-ISPモードでマウントされLED_USBが青く点灯します。