フォト
2025年4月
    1 2 3 4 5
6 7 8 9 10 11 12
13 14 15 16 17 18 19
20 21 22 23 24 25 26
27 28 29 30      
無料ブログはココログ

« STM32F103C8T6ボードでLチカ | トップページ | Windows 8.1で中国語(簡体字)の手書き入力を行う »

2015年5月31日 (日)

LPC810を使ってIchigoJamで赤外線リモコン受信を行う

IchigoJamを赤外線リモコンで操作する試みで、
この前やった、Arduino を使った赤外線リモコン受信LPC810(通称 どんぐり)を使って
やってみました。まずはブレッドボード上にて実装しました。

結論としてはかなり使えそうです。3メール離れても受信出来ました。
基板実装して、ロボットカーをリモコン操作をやってみようと思います。

Dscn3858

方式は下記のように、LPC810をI2CスレーブとしてIcihoJamから赤外線リモコンの
受信データを読みにいきます。

03

LPC810まわりの実装は、下図の通りです。
赤外線リモコン受信モジュールは、秋月電子で購入したPL-IRM2161-XD1
使っています。2個で100円と安価な部品です。

01

シリアル通信(115200)はデバッグ用に利用します。通常は接続しなくてもOKです。
赤外線リモコンは、こんな感じのを使いました。ボタンに割り当てられている
コードは写真の右側の値となります。NEC方式の通信方式です。

I2Cのアドレスは適当に0x40(8ビットアドレス)を割り当てました。

機能としては単純で4コマンドのみです。
コマンドコードを1バイト送信して、直前に押したリモコンボタンのコードと状態コードの
計4バイトを取得します。

送信コマンドは下記の通り
  00 通常受信(リピート機能OFF)
  01 リピート機能有効受信
  FF デバッグモードON受信
  FE デバッグモードOFF受信

受信データ4バイト
  2バイト: 状態コード   (0:新しい値  1:前回済み)
  2バイト: ボタンコード  00~ FF

リピート機能OFFの場合、ボタンを押しっぱなしにした場合は1回だけ押されたと判断
します。リピート機能ONの場合、ボタンを押しっぱなしは"連打"に相当します。

IchigoJamで使う場合、次のような感じで使います。

10 'I2C IR remote
20 CLS:CLV:POKE #700,1
30 X=16:Y=12
40 R=I2CR(#20,#700,1,#8CC,4)
50 LC 0,0:?HEX$(B,2);:?" ";:? A
60 IF A=1 GOTO 110
70 IF B=#88 IF Y>1  Y=Y-1
80 IF B=#98 IF Y<22 Y=Y+1
90 IF B=#28 IF X>1 X=X-1
100 IF B=#68 IF X <30 X=X+1
110 LC X,Y:? "O"
120 GOTO 40

これを実行した画面はこんな感じです。単純に○をリモコンで上下左右動かすだけです。

02

40行のI2CRコマンドでコマンドの送信とリモコン操作のボタンコードを取得しています。
#8CCのアドレスに受信データを格納します。このアドレスから4バイトは変数のA、B
の領域です。そのためプログラムで変数A、Bを使って値判定しています。

変数領域#800~#8FFの内訳は次のようになっているようです。
1変数あたり2バイトを使用します。
  #800  - #8C9  配列変数  [00] - [100]
  #8CA - #8CB  空き
  #8CC - #8FF  変数 A - Z

次にLPC810のプログラムについてです。
IR受信処理はarduinoのソースをちょこと修正しただけで利用できました。
I2Cスレーブまわりはライブラリを自作しました。LPC810のマニュアルを読み込んで
実装したのですが、取りあえず動いているといった感じです。

ソースを置いておきます。

LPC810ソース ダウンロード IRtoI2C_050531.zip (281.3K)

関連記事
  LPC810を使ってIchigoJamで赤外線リモコン受信を行う       ・・・ この記事
  LPC810を使ってIchigoJamで赤外線リモコン受信を行う(2) ・・・ 基板実装
  LPC810を使ってIchigoJamで赤外線リモコン受信を行う(3) ・・・ 改良版
  LPC810を使ってIchigoJamで赤外線リモコン受信を行う(4) ・・・ サーボモーターの制御
  IchigoJamでDVR8830を使ったロボットカー制御(2)            ・・・ 赤外線リモコンで操作

« STM32F103C8T6ボードでLチカ | トップページ | Windows 8.1で中国語(簡体字)の手書き入力を行う »

IchigoJam」カテゴリの記事

ARM」カテゴリの記事

LPC810」カテゴリの記事

コメント

コメントを書く

(ウェブ上には掲載しません)

トラックバック


この記事へのトラックバック一覧です: LPC810を使ってIchigoJamで赤外線リモコン受信を行う:

« STM32F103C8T6ボードでLチカ | トップページ | Windows 8.1で中国語(簡体字)の手書き入力を行う »