Myu
2026年8月23日日曜日
raspi3で赤外線の実験
赤外線モジュールをつないで、受信
受信モジュールのピン Raspi3の接続先 ピン番号(物理)
VCC (または + ) 3.3V Power 1番ピン
GND (または -) GND 6番ピン
OUT (または S / Data) GPIO 17 11番ピン
送信は図のような回路をつないでみた
以下のコードで受信可能
ir-ctl -r -d /dev/lirc1 > single.txt
送信は
ir-ctl -s single.txt -d /dev/lirc0
sudo apt update sudo apt install v4l-utils -y *********ir-ctl.py import os import time # 送信デバイスのパス(環境によっては /dev/lirc1 の場合があります) LIRC_DEV = "/dev/lirc0" # 真似したいリモコンのパルスデータ(マイクロ秒単位の整数) # ※先ほど画面に出た「(0, 9.02), (1, 4.45)」などのミリ秒データを # マイクロ秒(1000倍)にして、数字だけを並べたものです。 # 例:[ONの時間, OFFの時間, ONの時間, OFFの時間...] sample_signal = [ 9000, 4500, # リーダーコード(開始の合図) 560, 560, # ここからデータビット(0や1の集まり) 560, 1690, 560, 560, 560, 560, # (ここにお手持ちのリモコンのデータをずらっと並べます) ] def send_ir(pulse_list): if not os.path.exists(LIRC_DEV): print(f"エラー: {LIRC_DEV} が見つかりません。設定か再起動を確認してください。") return # パルスデータをテキスト形式に変換(ir-ctl コマンドが読める形式) # 例: "pulse 9000\nspace 4500\npulse 560..." ir_content = "" for i, duration in enumerate(pulse_list): if i % 2 == 0: ir_content += f"pulse {duration}\n" else: ir_content += f"space {duration}\n" # 一時ファイルに書き出し with open("temp_tx.txt", "w") as f: f.write(ir_content) # Linuxのコマンドを呼び出して、2SK4017から赤外線を発射! print("赤外線信号を発射します...") os.system(f"ir-ctl -s temp_tx.txt -d {LIRC_DEV}") # 使い終わった一時ファイルを削除 os.remove("temp_tx.txt") # 実行 send_ir(sample_signal)
0 件のコメント:
コメントを投稿
次の投稿
前の投稿
ホーム
登録:
コメントの投稿 (Atom)
0 件のコメント:
コメントを投稿