FC2ブログ

スポンサーサイト

 --------
上記の広告は1ヶ月以上更新のないブログに表示されています。
新しい記事を書く事で広告が消せます。
カテゴリ :スポンサー広告 トラックバック(-) コメント(-)

lirc 音声入出力を使って赤外線リモコンする - receive and transmit via audio interface

 2017-10-23
ちょくちょく問い合わせを受けるので、記事を書いておきます。
 

背景 introduction

C.H.I.P.でlircを動かしたかったが、オーディオインターフェース経由で入出力するには2007年で更新が止った(?)古いライブラリを使用する必要があり、あまり利口とは言えない感じだったので、wavファイルを再生する手法で目的を実現しました。
I want lirc on a C.H.I.P., but it's difficult. because "audio" module need a very old portaudio libs. i think it's bad idea.

受信 receive

オーディオ入力を、lircのaudio_alsaモジュールで受信する。aldio_alsaは受信だけしか出来ないが、ちゃんと動く。
receive via audio input using "audio_alsa" modules. "audio_alsa" is receive only..

送信 transmit

位相をずらしたsin波のwavファイルを再生し、オーディオ出力の電位差を使って赤外線LEDを駆動する。
drive a IR-LED using a audio output. playing phase shifted sine-wave.

ハードウェア回路 hardware circuit

赤外線センサーの出力をR1,R2で分圧し、C1経由でオーディオ入力へ接続する。オーディオ出力をC2経由で互い違いに接続した赤外線LEDに接続する。R1,R2は受信時のレベル飽和を防ぐ程度に調整すること。これは受信時のソフトウェア的安定動作に非常に重要。
Connect to Audio input via C1,R1,R2 from a IR-receiver/sensor. Connect to 2 of IR-LED that connected vise-versa via C2. R1 and R2 avoid a input saturation/clipping that is very important for stability of software stuff.
lirc_rawcode2wav_01.png

位相をずらしたsin波を再生すると左右の電位差は最大で3.88Vに達し、赤外線LEDを駆動するには十分だった。飛距離を伸ばすにはトランジスタで電流増幅すると良い。
Phase shifted sine wave generate a 3.88V peak-to-peak. it can drive a IR LED. if you need more transmit range, then you need current amplitude using a transistor.
lirc_rawcode2wav_02.jpg

ソフトウェア software

lircのrawcodeからwavファイルを生成するスクリプトです。
it is script that generate a wav file from a lirc's rawcode.

github : lirc_rawcode2wav


使用例 How to use

# install tools
[chip@chip01]% sudo apt-get install lirc bc sox

# get RAW_CODES
[chip@chip01]% sudo mode2 -H audio_alsa -d default | tee switch.txt
space 765
pulse 127
space 214
pulse 80
space 1208273
pulse 2624
space 2658

pulse 852
space 1895
pulse 831
space 809
pulse 855
^C <--- Ctrl-C to exit

# convert to wav
[chip@chip01]% ./makewave.sh ./switch.txt switch.wav
/usr/bin/sox WARN sox: `switch.wav' output clipped 46 samples; decrease volume?

# IR transmit
[chip@chip01]% aplay switch.wav
Playing WAVE 'switch.wav' : Signed 24 bit Little Endian in 3bytes, Rate 192000 Hz, Stereo

元ネタ refs

bbs.nextthingに投稿したものが最初。経緯などはそこが詳しい(怪しげな英語で。)
first post is at the bbs.nextthing. with my funky english :)

Installing LIRC on C.H.I.P - C.H.I.P. - Next Thing Co. - Bulletin Board System :
https://bbs.nextthing.co/t/installing-lirc-on-c-h-i-p/2449/5



動画 movie


 
コメント












管理者にだけ表示を許可する
トラックバック
トラックバックURL:
http://wbbwbb.blog83.fc2.com/tb.php/307-0f8a9801
≪ トップページへこのページの先頭へ  ≫
上記広告は1ヶ月以上更新のないブログに表示されています。新しい記事を書くことで広告を消せます。