Annikken AndeeでテープLEDを制御してみる

[Annikken Andee-An Easy Link between Arduino and Android. | Indiegogo](http://www.indiegogo.com/projects/annikken-andee-an-easy-link-between-arduino-and-android "Annikken Andee-An Easy Link between Arduino and Android. | Indiegogo") のブツが届いたので試してみた。

![IMG_20130823_143013.jpg](https://qiita-image-store.s3.amazonaws.com/0/19582/9de96ad0-e81d-2829-88f8-b73cc2448de0.jpeg)

とりあえず手元にあったフルカラーのテープLEDの操作を試してみることにした。

テープLEDは[akibaLED ピカリ館](http://www.akiba-led.jp/product-list/89 "RGBテープLED &gt; アノードCOM(+共通) - テープLEDならピカリ館!!LEDテープ・LEDバルブを激安価格で速攻通販 - akibaLED ピカリ館")で購入したフルカラータイプのもの。ついでに点灯テスト用にコントローラーも購入。秋月で売ってるものと同じタイプだと思われる。

![IMG_20130823_143715.jpg](https://qiita-image-store.s3.amazonaws.com/0/19582/558c49b5-5ffd-b13f-9352-9e2d235ded17.jpeg)

はじめは[フルカラーLEDコントローラ（赤外リモコン式）およびフルカラーLEDテープ（3-1/3） (キットと初歩の電子工作　Kits and Kids)](http://www.eleki-jack.com/KitsandKids2/2011/01/ledled313.html "フルカラーLEDコントローラ（赤外リモコン式）およびフルカラーLEDテープ（3-1/3） (キットと初歩の電子工作　Kits and Kids)")を参考にテストしてた。

![IMG_20130823_143626.jpg](https://qiita-image-store.s3.amazonaws.com/0/19582/3e8436ab-7f1f-1628-fdc1-0c4fb1b74232.jpeg)

これでも良かったけど、コントローラーが赤外線リモコン対応だったので赤外線LEDでコントロールしてみることにした。

リモコンのライブラリはGrove Systemの[IRSendRev](http://www.seeedstudio.com/wiki/Grove_-_Infrared_Emitter "Grove - Infrared Emitter - Wiki")を使った。

![IMG_20130823_144020.jpg](https://qiita-image-store.s3.amazonaws.com/0/19582/6b59f60d-e0ac-c896-3aa4-6d375957a70a.jpeg)

![andee.png](https://qiita-image-store.s3.amazonaws.com/0/19582/2ade3732-9d30-2e7c-17d5-9917cb4278ae.png)

ボタンの反応が若干遅いのが気になるが、簡単に使えるところは気に入った。

```c:
#include <IRSendRev.h>
#include <SPI.h>
#include <Andee.h>
#include <time.h> //to use delay function

AndeeHelper andeeHelper[6]; //Declare 6 instance of AndeeHelper.
unsigned char d[][10] = {
  {9,	178,	89,	11,	32,	4,	0,	255,	176,	79	},
  {9,	178,	88,	10,	32,	4,	0,	255,	248,	7	},
  {9,	179,	88,	11,	32,	4,	0,	255,	152,	103	},
  {9,	177,	88,	11,	32,	4,	0,	255,	216,	39	},
  {9,	177,	88,	11,	32,	4,	0,	255,	136,	119	},
  {9,	177,	88,	11,	32,	4,	0,	255,	168,	87	}
};

void setup(){
  Andee.begin();  //Setup communications between Annikken Andee and Arduino 
  setInitialData();
  Andee.clear();//Clear the screen of any previous displays
}

void setInitialData(){
  andeeHelper[0].setId(0);
  andeeHelper[0].setType(BUTTON_IN);
  andeeHelper[0].setLocation(0,0,HALF);
  andeeHelper[0].setTitle("ON");
  andeeHelper[1].setId(1);
  andeeHelper[1].setType(BUTTON_IN);
  andeeHelper[1].setLocation(0,1,HALF);
  andeeHelper[1].setTitle("OFF");
  
  andeeHelper[2].setId(2);
  andeeHelper[2].setType(BUTTON_IN);
  andeeHelper[2].setLocation(1,0,ONE_QUART);
  andeeHelper[2].setTitle("R");
  andeeHelper[2].setColor(RED);
  andeeHelper[3].setId(3);
  andeeHelper[3].setType(BUTTON_IN);
  andeeHelper[3].setLocation(1,1,ONE_QUART);
  andeeHelper[3].setTitle("G");
  andeeHelper[3].setColor(GREEN);
  andeeHelper[4].setId(4);
  andeeHelper[4].setType(BUTTON_IN);
  andeeHelper[4].setLocation(1,2,ONE_QUART);
  andeeHelper[4].setTitle("B");
  andeeHelper[4].setColor(BLUE);
  andeeHelper[5].setId(5);
  andeeHelper[5].setType(BUTTON_IN);
  andeeHelper[5].setLocation(1,3,ONE_QUART);
  andeeHelper[5].setTitle("W");
  andeeHelper[5].setColor(GRAY);
}
void loop(){
  int i;

  // Tell Andee to display data
  for(i=0; i<6; i++){
    andeeHelper[i].update();
    if (andeeHelper[i].isPressed()) {
      IR.Send(d[i], 38);
      andeeHelper[i].ack();
    }
  }
  
  //Delay for 1 second, here we send update every second.
  delay(1000);
}
```