まずは、前回のプログラムを元に、以下のようなプログラムを作成しました。
import RPi.GPIO as GPIO
import time
def __main__():
GPIO.setmode(GPIO.BCM)
GPIO.setup(21,GPIO.IN)
try:
while True:
out = GPIO.input(21)
if out == 0:
print(1)
else:
print(0)
time.sleep(0.0001)
except KeyboardInterrupt:
GPIO.cleanup()
__main__()
0.1ミリ秒周期で赤外線通信の受信信号を読み取って、0/1で出力するプログラムを作成してみました。
これを使用して、テレビのボリュームUP/DOWNの信号を読み取って、
こんなプログラムを作成して、赤外線LEDを点灯させるプログラムを作成。
import RPi.GPIO as GPIO
import time
pattern = [1,1,1,1,1,1,1,1,1,1,1,1,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,1,0,0,0,1,1,1,1,0,0,0,1,1,1,0,0,0,1,1,1,0,0,0,1,1,1,
0,0,0,1,1,1,0,0,0,1,1,1,0,0,0,0,0,0,0,0,0,1,1,1,1,0,0,1,1,1,0,0,0,0,0,0,0,0,0,0,1,1,1,0,0,0,0,0,0,0,0,0,1,1,1,0,0,0,0,0,0,0,
0,0,1,1,1,0,0,0,0,0,0,0,0,0,0,1,1,1,0,0,0,0,0,0,0,0,0,1,1,1,0,0,0,0,0,0,0,0,0,1,1,1,0,0,0,1,1,1,1,0,0,0,0,0,0,0,0,0,1,1,1,0,
0,0,1,1,1,0,0,0,0,0,0,0,0,0,0,1,1,1,0,0,0,1,1,1,0,0,0,0,0,0,0,0,0,1,1,1,0,0,0,0,0,0,0,0,0,1,1,1,1,0,0,1,1,1,1,0,0,0,1,1,1,0,
0,0,1,1,1,0,0,0,0,0,0,0,0,0,1,1,1,0,0,0,1,1,1,0,0,0,0,1,1,1,0,0,0,1,1,1,0,0,1,1,1,0,0,0,0,0,0,0,0,0,1,1,1,0,0,0,0,0,0,0,0,0,
1,1,1,0,0,0,0,0,0,0,0,0,1,1,1,1]
def __main__():
GPIO.setmode(GPIO.BCM)
GPIO.setup(20,GPIO.OUT)
try:
for out in pattern:
GPIO.output(20, GPIO.HIGH)
time.sleep(0.0001)
GPIO.output(20, GPIO.LOW)
except KeyboardInterrupt:
GPIO.cleanup()
GPIO.cleanup()
__main__()
import RPi.GPIO as GPIO
import time
pattern = [1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,
0,0,0,0,0,0,0,0,0,0,1,1,1,1,0,0,1,1,1,1,0,0,0,1,1,1,0,0,0,1,1,1,0,0,0,1,1,1,0,0,0,1,1,1,0,0,0,1,1,1,0,0,0,0,0,0,0,0,0,1,1,1,
0,0,0,1,1,1,0,0,0,0,0,0,0,0,0,1,1,1,0,0,0,0,0,0,0,0,0,1,1,1,1,0,0,0,0,0,0,0,0,0,1,1,1,0,0,0,0,0,0,0,0,0,1,1,1,0,0,0,0,0,0,0,
0,0,1,1,1,0,0,0,0,0,0,0,0,0,1,1,1,0,0,0,1,1,1,0,0,0,0,0,0,0,0,0,1,1,1,0,0,0,1,1,1,0,0,0,0,0,0,0,0,0,1,1,1,1,0,0,0,0,0,0,0,0,
0,1,1,1,0,0,0,0,0,0,0,0,0,1,1,1,0,0,0,0,0,0,0,0,0,1,1,1,0,0,0,1,1,1,0,0,0,1,1,1,0,0,0,1,1,1,0,0,0,0,0,0,0,0,0,1,1,1,0,0,0,1,
1,1,0,0,0,1,1,1,1,0,0,1,1,1,1,0,0,0,1,1,1,0,0,0,0,0,0,0,0,0,1,1,1,0,0,0,0,0,0,0,0,0,1,1,1,0,0,0,0,0,0,0,0,1,1,1]
def __main__():
GPIO.setmode(GPIO.BCM)
GPIO.setup(20,GPIO.OUT)
try:
for out in pattern:
GPIO.output(20, GPIO.HIGH)
time.sleep(0.0001)
GPIO.output(20, GPIO.LOW)
except KeyboardInterrupt:
GPIO.cleanup()
GPIO.cleanup()
__main__()
これで、リモコンの信号を再現できるはず!
そう思っていましたが、
テレビは何も反応しませんでした。
やっぱり考えは甘かったか。
そこで、ネットの情報を探してみると、
こんなサイトを見つけました。
https://deviceplus.jp/hobby/entry_y18/
リモコンの信号を読み取って、再現するライブラリがラズパイにあるらしい。
しかも、このサイトの中では、音声でテレビをコントロールしようともしている。
ならばこっちは、最終的にAlexaでコントロールできるようにしてしまおうか。
できるよね?
知らんけど。
いろいろ調べてみる。