Posts Tagged チョロQ

QステアをArduinoから操作

今回は、タカラトミーのQ STEERをArduinoから操作するハックになります。

先週末、日本橋にある共立電子産業株式会社 3階のセンサー売り場にて赤外線のパーツ類を購入しました。

そんなわけで日曜大工エンジニアです。

○赤外線LED
東芝製 TLN115A(大) 60円
東芝製 TLN119(小) 80円

○赤外線リモコン受信モジュール
EVERLIGHT製 IRM-3638N3 210円

赤外線LED 赤外線リモコン受信モジュール
左からOUTPUT、GND、vcc(2.5-5.5V)
赤外線受信用回路
赤外線受信用回路

赤外線解析用コードは、ArduinoのサイトからInfrared receiver modulesのコードを利用して解析しました。

○キャプチャ値
データーの0と1が点灯、消灯の間隔。
点灯時は常に点灯しているのではなく、ON、OFFを繰り返します。
この繰り返しの間隔次第で変調信号として機能してます。
今回は38khzの変調信号での利用となります。

—- ここから
0    0
1796    0
1796    1
2168    1
2168    0
2648    0
2648    1
3016    1
…. 略
157372    0
158284    0
158284    1
—- ここまで
Qステア赤外線解析のサイトに書かれているのとほぼ同じ値が返ってきてます。

他には、1回の操作で2回同じ信号が送信されており、2回目の信号を送る間隔はch毎に異なっています。
Ach 間隔 7516
Bch 間隔 21860
Cch 間隔 36212
Dch 間隔 50568

チャネル毎に操作する場合は必要と考えれます。

○Ach の前進用サンプルコード
キャプチャした値の点灯間隔をサンプルコードに設定

#define LED 13
unsigned long us = micros();

void setup(){

pinMode(LED , OUTPUT);

}

void loop(){

digitalWrite(LED, LOW);

delay(1000);

int testdata[] = {1796 ,372 ,480 ,368 ,480 ,368 ,480 ,368 ,480 ,372 ,480 ,364 ,912 ,7516 ,1744 ,396 ,480 ,372 ,476 ,368 ,484 ,364 ,484 ,364 ,484 ,368 ,912 ,93576 ,1792 ,372 ,452 ,400 ,480 ,368 ,476 ,368 ,480 ,372 ,480 ,368 ,908 ,7512 ,1772 ,368 ,480 ,372 ,476 ,368 ,480 ,368 ,484 ,364 ,484 ,368 ,908 ,15680 ,1800 ,368 ,456 ,392 ,480 ,368 ,912 };

for (int cnt = 0; cnt < 500; cnt++) {

unsigned long len = testdata[cnt];

if (len == 0) break;

unsigned long us = micros();

do {

digitalWrite(LED, 1 – (cnt&1)); // iが偶数なら赤外線ON、奇数なら0のOFFのまま

delayMicroseconds(8); // キャリア周波数38kHzでON/OFFするよう時間調整

digitalWrite(LED, 0);

delayMicroseconds(7);

} while (long(us + len – micros()) > 0);

}

}

以上が今回のハックの内容となります。

前回と違い非常に安価にラジコンが製作出来ます。

また、赤外線は様々な用途での利用が考えれます。

今後も発想次第で色々作れそうです。

, , , , , , ,

No Comments