学習リモコン(ADRSIR)のスイッチを押すプログラム

ADRSIRの10個あるスイッチを押すサンプルプログラムがなかったので作ってみた。動作はNode-REDのリモコンサブフローの内容を参考にした。

下記のように実行すればスイッチ1が押せる。
./sw.py 1

#!/usr/bin/env python3
# -*- coding: utf-8 -*-
#
# 学習リモコン(ADRSIR)のスイッチを押す動作
#
# 引数はスイッチ番号

import sys
from time import sleep
from RPi import GPIO

# スイッチ番号をGPIOのPIN番号に変換する
def getBcmFromSwitchNo(switchNo):
  bcm = -1
  if switchNo == '1':
    bcm = 4
  elif switchNo == '2':
    bcm = 17
  elif switchNo == '3':
    bcm = 27
  elif switchNo == '4':
    bcm = 18
  elif switchNo == '5':
    bcm = 5
  elif switchNo == '6':
    bcm = 6
  elif switchNo == '7':
    bcm = 13
  elif switchNo == '8':
    bcm = 12
  elif switchNo == '9':
    bcm = 22
  elif switchNo == '10':
    bcm = 23
  return bcm
    
if __name__ == '__main__':
  argvc = sys.argv
  argc = len(argvc)
  if argc == 2:
    GPIO.setwarnings(False) # warningsは無視
    GPIO.setmode(GPIO.BCM)
    bcm = getBcmFromSwitchNo(sys.argv[1])
    if bcm > 0:
      GPIO.setup(bcm, GPIO.OUT)
      GPIO.output(bcm, GPIO.LOW)
      sleep(0.002)
      GPIO.output(bcm, GPIO.HIGH)
      #GPIO.cleanup() #GPIOの全ての状態をもとに戻す  学習リモコンのNode-Redが実行中なのでクリーンアップはしない。

 

このページはこれらの動作を保証するものではありません。同様のことをトライされる場合は自己責任でお願致します。