マイコン
mbed Xadow - M0の使い方を確認しよう
前回ご紹介したArduino互換の小型マイコンボード Xadow main board に引き続き、 mbed対応の小型Xadowボード「Xadow – M0」をご紹介します。
Xadow – M0(以降 mbed Xadowと呼びます)とはSeeedStudio社の制作した、大きさ約25×20[mm]の小型mbedボードです。 この製品に搭載されているマイコンは、トラ技ARMライタと同じLPC 11U35です。 そのためmbed化したトラ技ARMライタとほとんど同様の方法で、プログラムの作成、コンパイル、書き込みが行えます。 前回ご紹介したArduino互換なXadow main boardで行ったような、 ドライバのインストールやIDEの書き換えは必要ありません。
ここからはこのmbed Xadowを用いた開発を行う第一歩として、 LED点滅(LED Blink)サンプルコードの動作までを確認します。
mbed Xadow をオンラインIDEに登録しよう
(持っていない人のみ)mbedアカウントの作成
mbedのオンライン開発環境を使うためには、mbedのアカウントが必要です。 アカウント作成の方法はLXPさんのサイトでわかりやすく説明されているので、こちらを参考に作成してください。
mbed Xadow を追加する
mbedでは、新しいmbed対応ボードを使って開発する際は、 使用するボードの設定をオンラインコンパイラに追加しなければいけません。 ボードの追加は以下のURLをから行います。
URLを開くとボードの選択画面が出ます。
この中の「Seeed Xadow M0」を選択すると、対応ボードの詳細ページに移ります。
ここで「Add to mbed Compiler」ボタンを押すと、Xadowがオンラインコンパイラに追加されます。 追加された後はボタンの表示が「Open mbed Compiler」に変わるので、これを押すと開発画面へ行くことができます
LED点滅サンプルをつくろう
mbed Xadowはサンプルプログラムの作成も非常に簡単です。
「Open mbed Compiler」より開いた開発画面上から、左上にある「New」ボタンを押して、新規プロジェクトを作成します。
すると新規プロジェクト作成ウィンドウが出てくるので、Templateから「blink the blue LED of Xadow M0」を選択してOKを押します。 そしてできたプロジェクトには、LED点滅サンプルコードが書かれた「main.cpp」ファイルができます。
この時点でLED点滅サンプルのコードは完成です。 後は「Compile」ボタンを押せばコンパイルが行われ、できたバイナリがブラウが経由でダウンロードされます。
サンプルコードの説明
これだけでは勉強にならないので、簡単にコードの説明を行います。 以下に「main.cpp」の中身を示します。
#include "mbed.h"
DigitalOut blue_led(P0_20);
int main() {
while(1) {
blue_led = 1;
wait(0.2);
blue_led = 0;
wait(0.2);
}
}
このサンプルコードは中身も非常に簡単です。 mbedではGPIOの制御は、DigitalOutクラスのインスタンスを生成して行います。 Xadowの青色LEDはP0_20ピンに接続されているので、 P0_20をコンストラクタに渡して、 DigitalOutクラスのインスタンス「blue_led」を生成します。 それを行うのが以下のコードになります。
DigitalOut blue_led(P0_20);
このDigitalOutクラスのインスタンスは「=」を用いて0,1を書き込むと、 その値に応じた電圧がコンストラクタで設定されたピン(今回はP0_20)に出力されます (DigitalOutクラスの詳細は公式のAPI資料を参照してください)。
blue_led = 1;
後はLEDを点滅させるため、0と1を適当な感覚で書き込むだけです。
while(1) {
blue_led = 1;
wait(0.2);
blue_led = 0;
wait(0.2);
}
サンプルプログラムを書き込もう
mbed XadowはUSB経由のISPモードを用いてプログラムの書き込みを行います。 この手順は以下の3手順で行います。
・ISPスイッチを押しながらUSBケーブルを差し込む
・認識されたストレージ「CRP DISABLED」にバイナリを書き込む
・リセットする
1. ISPモードを有効にする
XadowはUSBコネクタ横のスイッチを押しながらUSBケーブルを差し込むことで、ISPモードが有効となります。 よってISPスイッチを押しながらUSBケーブルを差し込み、ISPモードでパソコンに接続してください。
2. バイナリを書き込む
ISPモードで認識された場合は「CRP DISABLED」というストレージがマウントされます。 コンパイルして落ちてきたバイナリの名前を「firmware.bin」に書き換え、 「CRP DISABLED」内に上書きしてください。
※ Macをご使用の方は、以下のコマンドで上書きコピーを行ってください。
$ cp -X バイナリファイル名.bin /Volumes/CRP\ DISABLD/firmware.bin
3. リセットする
手順1. で押したスイッチをもう一度押すとリセットがかかり、プログラムが動き始めます。 青色のLEDが点滅すればサンプルの動作確認は完了です。
おわりに
今回はmbed Xadowでサンプルを動作させるまでの方法を確認しました。 私個人としては、mbed Xadowのほうが、プログラムの作成から書き込みまでが非常に簡単なのでお勧めです。 しかし、mbed Xadowは加速度センサが搭載されているため、 Arduino互換のXadow main boardよりもお値段が高いです。 今後Xadowの開発は、mbed Xadowを用いて行いますが、 みなさまはXadow main boardとmbed Xadow、両方のメリット・デメリットを考えて、 選んで使っていただければと思います。
作者
作者: 西永俊文
Twitter:tnishinaga
協力: マルツエレック株式会社