mbedのSeeeduino ArchをセットアップしてLチカする


最近ARMとIBMが発表したmbed IoT Starter KitFRDM-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ボタンを押してプロジェクトを作成します。

プロジェクトにはメインプログラムが用意されています。

main.cpp
#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が青く点灯します。