【ラズパイ】リモコンの赤外線通信を再現してみる。

まずは、前回のプログラムを元に、以下のようなプログラムを作成しました。

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でコントロールできるようにしてしまおうか。

できるよね?

知らんけど。

いろいろ調べてみる。

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です

このサイトはスパムを低減するために Akismet を使っています。コメントデータの処理方法の詳細はこちらをご覧ください