Works & Entries Our Events API Dictionary Mashup Awards Login

Work Detail

コーディネート

1.本作品をひとことで言えば、「カメレオンを見習い、背景色に合わせて、自分の服の色を変える」デバイスです。

2.概要(仕組み)
アンドロイドアプリを作って、カメラのプレビュー画面の中央点のカラー情報(R・G・B値 ※0~255の整数値)を取得、その情報をArduinoへ送り、服に仕込んだフルカラーLEDテープ(10メートル分・LED数300個)をその色で光らせます。

3.MA事務局の方が撮影してくれましたプレゼン動画(ありがとうございます)
https://pic.twitter.com/YdapVhe7HY
(2017年11月19日 Mashup Battle 1stStage in 東京二部 会場リクルートメディアテクノロジーラボ)

4.本作品で示したかったコンセプト
 「衣服は、ハード。 
  購入後、ソフトで柄や色を変更できる時代はもうすぐ。」
ということです。
 ※フルカラーLEDテープには、
①本作品で使用したnon-addressable led(アドレス指定不可能;300個全部のフルカラーLED電球を統一的にコントロール)と、
②addressable led(アドレス指定可能;300個全部のフルカラーLED電球を個別にコントロール)とがあります。
②を使用すれば、色だけでなく柄や模様もデザインすることができます。

5.出典
本作品のコードのほとんどは、オープン・ソースに依存しています。
すなわち、
(1)AndroidでRGB値を取得するコード;
    yoggyさんの
   「ColorPickerCamera」
    https://github.com/yoggy/ColorPickerCamera
(2)AndroidからArduinoへRGB値を送るコード;
    Trevor Shannonさんの
    「Android Powered LED Table」
    http://trevorshp.com/creations/android_led.htm
      ※上記のもっと詳しいページ
       https://makezine.com/projects/make-36-boards/android-arduino-led-strip-lights/
      ※上記詳しいページの日本語訳
       http://bunkeina.blogspot.jp/2014/06/androidled.html      
★本作品は、上記(1)及び(2)を連携させたものです。
★本作品の未署名デバッグAPKファイルは、ここからダウンロードできます。
 ダウンロード;http://wikyou.org/forMA2017/app-debug.apk

6.覚書その(1)
上記5.(2) Trevor Shannonさんの「Android Powered LED Table」は、
現在販売されている「Arduino Uno Rev3」をつないでも、動きません。
おそらく原因は、
「Android Powered LED Table」は、AndroidからArduinoへ色のデータを送るのに「usb-serial-for-android」というライブラリを使用しますが、そのライブラリの中で定義されている「Arduino Uno Rev3」のベンダーIDが、現在一般販売されている製品「Arduino Uno Rev3」のベンダーIDと異なっているからです。
 
次のページに現在のベンダーID及びプロダクトIDのリストが掲載されています。
これを見ますと、
「usb-serial-for-android」に組み込まれていないベンダーIDも複数存在することがわかります。
https://github.com/arduino/Arduino/blob/1.8.0/hardware/arduino/avr/boards.txt#L51-L58

ちなみに、上記ページによれば、「Arduino Uno Rev3」のベンダーIDは、次のとおり。
【16進数】
uno.vid.0=0x2341
uno.pid.0=0x0043
uno.vid.1=0x2341
uno.pid.1=0x0001
uno.vid.2=0x2A03 ★未定義
uno.pid.2=0x0043
uno.vid.3=0x2341
uno.pid.3=0x0243

上記のうち、uno.vid2(0x2A03)は「usb-serial-for-android」に定義されていません。
(手持ちのArduinoのベンダーIDは、デバイスマネージャーから参照できます。方法は、https://www.teradas.net/archives/3818/ )

ですから、対策は「usb-serial-for-android」に現在の製品のベンダーIDであるuno.vid2(0x2A03)を追記します。
方法は、下記に公開されています。

https://github.com/mik3y/usb-serial-for-android/pull/162/files/01e42a5bd71213e115c9bc365a46c44ab14f1a71
(なお、同時に「usb-serial-for-android」の「device_filter.xml」に、「0x2A03」の16進数から10進数へ変換した値「10755」を追記することも必要です。16進数から10進数への変換ツールは https://hogehoge.tk/tool/number.html 。変換ツール使用時、「0x」は除きます。)

もうひとつの対策は、
「usb-serial-for-android」を使用せず、bluetoothを使用する方法です。
そのコードは下記に公開されています。

https://github.com/trevorshannon/ArduinoColor/commit/6443bf138d30daf96b58e45276d60f9e35814132

さらに三つ目の対策は(これが最も簡単な方法ですが)、
「Arduino Uno Rev3」を使用せず、その互換機を使用します。
下記の互換機(2017年10月アマゾンからの購入品)は、ベンダーIDが「usb-serial-for-android」内で定義されているベンダーIDと同じですから、コードを何ら修正しなくても「usb-serial-for-android」が機能します。

「keyestudio UNO R3 開発ボード + USBケーブル UNO R3 Arduino互換」

7.覚書その(2)上記(1)互換機以外の購入部品等について
  ※すべてアマゾンで2017年9月~10月に購入。
①電源について
 ArduinoへはandroidスマホからOTGケーブルにより電力を供給します。
 これだけですと、10メートル、300個のフルカラーLED電球を光らせることはできませんので、ハイパワーのトランジスターによりArduinoからLEDテープへの出力を増幅します。そのトランジスターに流す電力は、大容量のモバイルバッテリーを使用します。
 使用した製品は、次のとおりです。
 「Poweradd Pilot Pro2 23000mAhモバイルバッテリー 超大容量 DC/USB出力 LCD電圧表示 iPhone / iPad / iPod / ノートパソコン / スマートフォン / タブレッド等対応 5V 9V 12V 16V 19V 20V」
 このモバイルバッテリーの出力電圧を12Vに設定して(ボタンで切り替え可能)使用します。

②Androidスマホは、Arduinoヘ信号と電力を送れる機能(OTG機能)が必要ですが、最近のスマホはどれもこの機能が搭載されているようです。
使用したのは、「エイスース SIMフリースマートフォン ZenFone Go レッド ZB551KL-RD16」。

③LEDテープは、「WenTop LEDテープライトスーツ 両面テープ SMD 5050 防水ledテープ 10m 300連 正面発光ledテープ led RGB 30leds/m 44K リモコンと12v電源 高輝度 切断可能 明るいライト」。
 
④トランジスターは、「TIP31C TIP31 NPN ハイ パワー 100V 3A トランジスタ パック 並行輸入品」。

⑤Arduinoから上記①モバイルバッテリーへの接続には、「Kabenjee 10個セット2.1mm x5.5mmネジ端子DCアダプタコネクタ、LEDテープライト用DCジャック変換プラグ」。

⑥LEDテープとArduinoとの接続には、「LEDテープライト RGB 用 (GT-5050RGB-2C) 2分配ケーブル 4芯 28cm(ピン無し)1-2分岐ケーブル」及び「Kabenjee SMD5050/2835/3528 4ピンRGB LEDテープライトLタイプコネクタ」。