2014年11月27日

マイコン

Xadowの開発環境を用意しよう

携帯電話をはじめ様々な電子機器が小型化されるにつれ、小型化された電子機器を体に身につける「ウェアラブル」と呼ばれるジャンルが出てきました。 今回ご紹介するXadowはそんなウェアラブルデバイスの製作にもってこいのデバイスです。
Xadow Main BoardとはSeeedStudio社の制作した、大きさ約25×20[mm]の小型Arduino互換デバイスです。 フラットケーブルを用いて同じXadowシリーズの周辺機器に簡単に接続し、工作ができるようになっています。
今回扱うXadow Main BoardはArduino互換デバイスなので、プログラムの開発はArduino IDEを用いて行うことができます。 しかしそのためにArduino IDEに少し手を加える必要があるので、これからその手順について説明します。

 

(Windowsの方のみ)ドライバーのインストール

Xadow Main BoardはWindowsの標準ドライバで認識してもらえないので、 Windowsをお使いの方は予めドライバのインストールを行う必要があります。

 

1. ドライバをダウンロードする

Xadow Main Boardのドライバを以下からダウンロードして、解凍してください。

driver_click_here

 

2. デバイスマネージャーからドライバ更新ウィンドウを開く

Xadow Main Boardをパソコンに接続した状態でデバイスマネージャーを開いてください。 すると「ほかのデバイス」に「Seeeduino Xadow」という項目があるので、 これを右クリックして「ドライバーソフトウェアの更新」をクリックしてください。

device_manager

 

3. ドライバをコンピューターから検索する

「ドライバー ソフトウェアの更新」というウィンドウが立ち上がるので、 「コンピュータを検索してドライバー ソフトウェアを検索します」をクリックしてください。

driver_search

 

4. ドライバを選択する

「ドライバー ソフトウェアの更新」のウィンドウに戻り、 参照ボタンを押して手順1. で解凍したディレクトリを選択してください、

driver_search2

 

5. ドライバインストールの許可

インストールが始まると以下のセキュリティ警告が出てくるので、「このドライバーソフトウェアをインストールします」をクリックしてインストールを行ってください。

driver_warning

これでドライバのインストールは完了です。

 

Arduino IDEにXadowの設定を追加する

 

Xadowの公式サイトに上がっているArduino IDEの修正方法はArduino IDE v1.0.5に依存しているため、 最新のArduino IDE v1.0.6ではエラーが出てコンパイル等ができなくなります。 そのため手動で以下の2つのファイルを修正します。

  • boards.txt
  • USBCore.cpp

 

boards.txtの修正

対応ボード情報を設定するファイル boards.txt の修正を行います。 Arduino IDEから以下のパスを開き、その中のboards.txtを開いてください。

  • Windows,Linuxの人
  • arduino-1.0.6/hardware/arduino
  • Macの人
  • Arduino.app(右クリックでパッケージの中身を表示)/Contents/Resources/Java/hardware/arduino

開いたら以下のテキストをboards.txtの一番最後に追記して保存してください。

##############################################################

Xadow.name=Seeeduino Xadow
Xadow.upload.protocol=avr109
Xadow.upload.maximum_size=28672
Xadow.upload.speed=57600
Xadow.upload.disable_flushing=true
Xadow.bootloader.low_fuses=0xff
Xadow.bootloader.high_fuses=0xd8
Xadow.bootloader.extended_fuses=0xcb
Xadow.bootloader.path=caterina
Xadow.bootloader.file=Caterina-Xadow.hex
Xadow.bootloader.unlock_bits=0x3F
Xadow.bootloader.lock_bits=0x2F
Xadow.build.mcu=atmega32u4
Xadow.build.f_cpu=16000000L
Xadow.build.vid=0x2886
Xadow.build.pid=0x8003
Xadow.build.core=arduino
Xadow.build.variant=leonardo

 

USBCore.cppの修正

対応ボード情報を設定するファイル USBCore.cpp の修正を行います。 Arduino IDEから以下のパスを開き、その中のUSBCore.cppを開いてください。

  • Windows,Linuxの人
  • arduino-1.0.6/hardware/arduino/cores/arduino
  • Macの人
  • Arduino.app(右クリックでパッケージの中身を表示)/Contents/Resources/Java/hardware/arduino/cores/arduino

開きましたら以下のdiffの結果を参照しつつ、行の最初に「+」のついた部分を追記してください。

@@ -59,6 +59,8 @@ const u16 STRING_IPRODUCT[17] = {
      'A','r','d','u','i','n','o',' ','E','s','p','l','o','r','a',' ' 
#elif USB_PID == 0x9208 
      'L','i','l','y','P','a','d','U','S','B',' ',' ',' ',' ',' ',' ' 
+#elif USB_PID == 0x8003 // Seeeduino Xadow 
+ 'S','e','e','e','d','u','i','n','o',' ','X','a','d','o','w',' ' 
#else 
    'U','S','B',' ','I','O',' ','B','o','a','r','d',' ',' ',' ',' ' 
#endif 

@@ -68,6 +70,8 @@ const u16 STRING_IMANUFACTURER[12] = { 
   (3<<8) | (2+2*11), 
#if USB_VID == 0x2341 
    'A','r','d','u','i','n','o',' ','L','L','C' 
+#elif USB_VID == 0x2886 
+ 'S','e','e','e','d','S','t','u','d','i','o' // Seeedstudio 
#elif USB_VID == 0x1b4f 
   'S','p','a','r','k','F','u','n',' ',' ',' '
#else

これでArduino IDEの修正は完了です。

 

LED点滅サンプルを動かす

Xadow Main Boardは既存のArduinoとLEDの接続先等が異なるため、 LED点滅サンプル(LED Blink)を動かすために専用のライブラリを必要とします。 これからそのライブラリを用いた開発方法を説明します。

Xadow Main Boardライブラリをダウンロード

Xadow Main Boardを扱うためのライブラリは以下で配布されています。 gitを用いてcloneするか、「Download ZIP」ボタンでダウンロードを行ってください。

 

ライブラリを用いたプログラムの作成

先ほどダウンロードしたライブラリを用いたプログラムの作り方を説明します。
 

1. 空のソースコードを用意する

Arduinoのコードはソースコードと同じ名前のディレクトリを作る必要があります。 今回作成するサンプルは「ledblink.ino」なので、 「ledblink」というディレクトリを作り、その中に「ledblink.ino」という空のファイルを作成してください。

2. ライブラリをコピーする

先ほどダウンロードしたXadow Main Boardライブラリを使うためには、.inoファイルと同じディレクトリに置く必要があります。 ライブラリの .cpp ファイルと .h ファイルをコピーして、「ledblink」ディレクトリ内に入れてください。

3. テンプレートの作成

Xadow Main Boardライブラリを用いて開発を行うための、ソースコードテンプレートを示します。 今後開発する際はこのテンプレートを元に作成してください。

#include <Wire.h>

#include "xadow.h"

void setup()
{
    Xadow.init();
}


void loop()
{
    
}

 

LED点滅サンプルを作る

LED点滅コードを記述する

ソースコードのloop関数内に以下のコードを追加してください。

Xadow.greenLed(LEDON);                  // green led on
Xadow.redLed(LEDOFF);                   // red led off
delay(200);
Xadow.redLed(LEDON);                    // red led on
Xadow.greenLed(LEDOFF);                 // green led off
delay(200);

 

書き込み先にXadow Main Boardを選択する

Arduino IDEの「ツール」→「マイコンボード」→「Seeeduino Xadow」を選択し、 同様に「ツール」→「シリアルポート」から対象をXadowに変更します。

書き込む

最後にArduino IDEの書き込みボタンを押して、XadowボードのLEDが点滅すれば書き込みは成功です。

write_button

 

おわりに

今回はXadow Main Boardの開発環境を整えることを行いました。 Arduinoコンパチであるので、普通のArduinoと同様に気軽にLED点滅サンプルが動くものだと思っていましたが、 意外とこちらで設定することが多く、ちょっと大変でした。

そんな手間のかかる子でしたが、ボード自体は非常に小さく、他のモジュールとの接続も簡単なので、 今後ウェアブル製品を作る際や、細かいところにマイコンを入れたいときなどに力を発揮するいい子だと私は考えています。 次回以降、そんなこの子のいいところを発見して行ければと考えていますので、よろしくおねがいします。

 

作者

作者: 西永俊文
Twitter:tnishinaga
協力: マルツエレック株式会社

クリエイティブ・コモンズ・ライセンス
この 作品 は クリエイティブ・コモンズ 表示 – 改変禁止 4.0 国際 ライセンスの下に提供されています。

ページトップへ