LPC810を使ってIchigoJamで赤外線リモコン受信を行う
IchigoJamを赤外線リモコンで操作する試みで、
この前やった、Arduino を使った赤外線リモコン受信をLPC810(通称 どんぐり)を使って
やってみました。まずはブレッドボード上にて実装しました。
結論としてはかなり使えそうです。3メール離れても受信出来ました。
基板実装して、ロボットカーをリモコン操作をやってみようと思います。
方式は下記のように、LPC810をI2CスレーブとしてIcihoJamから赤外線リモコンの
受信データを読みにいきます。
LPC810まわりの実装は、下図の通りです。
赤外線リモコン受信モジュールは、秋月電子で購入したPL-IRM2161-XD1を
使っています。2個で100円と安価な部品です。
赤外線リモコンは、こんな感じのを使いました。ボタンに割り当てられている
コードは写真の右側の値となります。NEC方式の通信方式です。
I2Cのアドレスは適当に0x40(8ビットアドレス)を割り当てました。
機能としては単純で4コマンドのみです。
コマンドコードを1バイト送信して、直前に押したリモコンボタンのコードと状態コードの
計4バイトを取得します。
送信コマンドは下記の通り
00 通常受信(リピート機能OFF)
01 リピート機能有効受信
FF デバッグモードON受信
FE デバッグモードOFF受信
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
|
これを実行した画面はこんな感じです。単純に○をリモコンで上下左右動かすだけです。
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」カテゴリの記事
- Ichigojam Rが届きました(2021.02.05)
- β版 IchigoJam Rを予約注文しました(2021.01.23)
- IchigoJamのファームウェア 1.4.1が正式に公開されました(2019.12.10)
- 「ichigoツール」をGithubにて公開しました(2019.11.09)
- ichigojamのファームウェアを1.4b13にアップデートしました(2019.11.06)
「ARM」カテゴリの記事
- Arduino IDE+Arduino STM32環境で指定と異なるgccが使われてしまう(2025.01.23)
- Arduino IDE 2.3.4でArduino STM32を利用する(2025.01.12)
- PocketGoで遊んでみる(1)(2020.03.24)
- Arduino用 MML文演奏ライブラリの作成 その1(2019.04.01)
- BluePillボードで4桁7セグLEDの制御(2019.03.21)
「LPC810」カテゴリの記事
- MCUXpresso IDEのインストール(2019.02.12)
- LPC810を使ってIchigoJamで赤外線リモコン受信を行う(4)(2016.08.17)
- LPC810を使ってIchigoJamで赤外線リモコン受信を行う(3)(2016.08.15)
- LPC810を使ったUART-I2Cブリッジの改良版が出来ました(2016.07.21)
- LPC810を使ったUART-I2Cブリッジの機能拡張の検討中(2016.07.13)
« STM32F103C8T6ボードでLチカ | トップページ | Windows 8.1で中国語(簡体字)の手書き入力を行う »
コメント