パソコンで赤外線リモコン(1)
この前、パソコンからArduinoを使ってラジコン送信してロボザックをコントロールできるようにしたので、どうせなので、赤外線リモコンでもロボザックをコントロールできるようにしてみようと思いやってみました
まず、Arduinoの赤外線リモコンの為のプログラミングですが、検索して「Arduinoで学習リモコン」というページを参考させて頂きました
ロボザックの赤外線リモコンは、赤外線受信センサーも赤外線リモコンも第36号に付いてきます。その受信センサーを使って、Arduinoと接続しました。
黄色:8番ポート
赤色:5V PWR
黒色:GND
「Arduinoで学習リモコン」のページに受送信のプログラムがあります。これをそのまま使えばいいんですが、データ取得用と、データ送信用とにプログラムを2つに分けました。
-------------------------------------------------------------------
int ir_in = 8;
int last = 0;
unsigned long us = micros();
// セットアップ
void setup() {
Serial.begin(57600); // シリアル通信速度の設定
pinMode(ir_in, INPUT); // 入出力ピンの設定
}
void loop() {
unsigned int val;
unsigned int cnt = 0;
// Wait for incoming IR signal
while ((val = digitalRead(ir_in)) == last) { // パルスが切り替わるまで待機
if (++cnt >= 30000) { // 30000回ループで信号が終了したとみなす
if (cnt == 30000) {
Serial.print("¥n");
}
cnt = 30000;
}
}
unsigned long us2 = micros();
Serial.print((us2-us)/10, DEC); // 赤外線のON/OFFが続いた時間を10us単位で送信
Serial.print(" ");
last = val;
us = us2;
}
-------------------------------------------------------------------
- 上記ソースをArduinoに「Upload」
- 「Serial Monitor」を表示
- Baudrateを57600に設定(ソースと合わせる)
- リモコンのボタンを押すと、「Serial Monitor」上に数値が表示されます。この数値は、ソースのコメントにあるように、赤外線のON/OFFが続いた時間が10us単位で表示されることになります。
得られたデーターを整理する
生データは例えば、以下の様な数値になっています。
¥n323198 503 96 54 45 55 94 55 45 54 95 54 44 55 44 55 .....
で、最初の数字はデータを受信してない部分なので無視して、その次の数値からがデータになります。
ここで、以前、ロボザックの赤外線リモコンようのiアプリを作っているし、どんなデータが送られているのかは解析済みなんですよね
- 5000µs:スタート
- 500µs (L) 500µs (H):理論0
- 1000µs (L) 500µs (H):理論1
- 50µs:ストップ
なんで、生データは、
503 96 54 45 55 94... (10us)
=5030 960 540 450 550 940... (1us)
=5000 1000/500 500/500 1000....
=スタート 理論1 理論0 理論1 理論0 ....
ってな感じになりますね
ということで、Arduinoで受信した32個のボタンの生データを整理してみました(※50は幅を合わせる為に050と書いてます)。
というところで、今日の所はここまで
Arduinoのプログラムの「Upload」ボタンは、「Download」という名称の方が正しいのではないのかな???ま、「Upload」の方がなんとなく理解しやすいからいいんだけど。。。
------------------------------------------
----------------
にほんブログ村
| 固定リンク
「赤外線リモコン」カテゴリの記事
- RXコントローラーを使ってみるぞ!(5)赤外線リモコンについて3(2012.02.19)
- RXコントローラーを使ってみるぞ!(4)赤外線リモコンについて2(2012.02.14)
- RXコントローラーを使ってみるぞ!(3)赤外線リモコンについて(2012.02.11)
- 「SoftModemインターフェースボード2」を買いました(2011.05.29)
- SoftModemインターフェースボード で遊んでみる(3)(2011.01.10)
「週刊 ロボザック」カテゴリの記事
- 関東ロボット練習会#83に行ってきました(2013.05.06)
- 関東ロボット練習会#83に行く事にした(2013.04.17)
- 週刊 ロボザック、ロボゼロ、ロビ の冊子検索(2012.12.07)
- RBT-001を繋げてみる(20):bt_sample_XeroZak 0.1.0 公開(2011.08.30)
- USB-PS2コントローラでRZ1Basicのシミュレーションをしてみた(2011.08.01)
「Arduino / Processing」カテゴリの記事
- Intel Galileo 開発ボード(1)入手(2014.02.24)
- FirmaSBBLE(浜サブレー) 公開(2013.12.30)
- SoftModemインターフェースボード で遊んでみる(5)(2011.10.13)
- SoftModemインターフェースボード で遊んでみる(4)(2011.10.13)
- SoftModemインターフェースボード で遊んでみる(6)(2011.10.21)
この記事へのコメントは終了しました。
コメント