・Maker Pi RP2040と赤外線センサーを接続した写真
実行手順
1. 部品の用意Maker Pi RP2040以外に以下の部品を用意します。
・赤外線リモコン受信モジュールOSRB38C9AA(2個入)
https://akizukidenshi.com/catalog/g/gI-04659/
・オプトサプライ赤外線リモコン
https://akizukidenshi.com/catalog/g/gM-07245/
2. 部品の接続
OSRB38C9AAのピン配列を受光面&足を下にした面から見て、以下のように接続します。
OSRB38C9AAの左側のピン -> Maker Pi RP2040のコネクター1のGP1ピン
OSRB38C9AAの中央のピン -> Maker Pi RP2040のコネクター1のGNDピン
OSRB38C9AAの右側のピン -> Maker Pi RP2040のコネクター1の3V3(OUT)ピン
3. adafruit_irremoteモジュールのダウンロード
以下のページからモジュールのソースコードをダウンロードして、Maker Pi RP2040のlibフォルダに保存します。
https://github.com/adafruit/Adafruit_CircuitPython_IRRemote/blob/main/adafruit_irremote.py
4. code.pyを開いて、以下のプログラムを書き込みます。
オプトサプライの赤外線リモコンのA,B,CボタンでRGB LEDの発光が変化し、電源ボタンで消灯することを確認します。
※circuit python 7.2.5以降にアップグレードしてから実行してください。
※Mu Editorを使用せず、code.pyを直接エクスプローラーなどから保存する事も出来ます。
import time
import board
import pulseio
import digitalio
import adafruit_irremote
import neopixel_write
pulsein = pulseio.PulseIn(board.GP1, maxlen=108, idle_state=True)
decoder = adafruit_irremote.NonblockingGenericDecode(pulsein)
keydata ={
27:"Power",
31:"A",
30:"B",
26:"C",
141:"Upper Left",
5:"Up",
132:"Upper Right",
8:"Left",
4:"Center",
1:"Right",
136:"Bottom Left",
0:"Down",
129:"Bottom Right",
}
# RGB LEDを初期化
dio18 = digitalio.DigitalInOut(board.GP18)
dio18.direction = digitalio.Direction.OUTPUT
while True:
for message in decoder.read():
if isinstance(message, adafruit_irremote.IRMessage):
if len(message.code) == 4 and message.code[3] in keydata:
print(keydata[message.code[3]])
if message.code[3] == 31:
# Aのボタンの場合は2つのRGBLEDを緑色で点灯(GRB)
pixel_buf = bytearray([128, 0, 0, 128, 0, 0])
neopixel_write.neopixel_write(dio18, pixel_buf)
if message.code[3] == 30:
# Bのボタンの場合は2つのRGBLEDを赤色で点灯(GRB)
pixel_buf = bytearray([0, 128, 0, 0, 128, 0])
neopixel_write.neopixel_write(dio18, pixel_buf)
if message.code[3] == 26:
# Cのボタンの場合は2つのRGBLEDを青色で点灯(GRB)
pixel_buf = bytearray([0, 0, 128, 0, 0, 128])
neopixel_write.neopixel_write(dio18, pixel_buf)
if message.code[3] == 27:
# 電源のボタンの場合は2つのRGBLEDを消灯(GRB)
pixel_buf = bytearray([0, 0, 0, 0, 0, 0])
neopixel_write.neopixel_write(dio18, pixel_buf)
関連情報
・Maker Pi RP2040に関する他の情報はこちらを参照してください。・Mu Editorに関する他の情報はこちらを参照してください。
0 件のコメント:
コメントを投稿