初始化
This commit is contained in:
92
ir_try.py
Normal file
92
ir_try.py
Normal file
@@ -0,0 +1,92 @@
|
||||
# -*- coding: utf-8 -*-
|
||||
"""
|
||||
快速尝试单个协议 — 带手机摄像头观察红外LED是否发光
|
||||
"""
|
||||
|
||||
import sys
|
||||
import time
|
||||
import serial
|
||||
|
||||
PORT = sys.argv[1] if len(sys.argv) > 1 else "COM8"
|
||||
KEY = 0x0D # 上
|
||||
|
||||
ser = serial.Serial(PORT, baudrate=9600, timeout=0.3)
|
||||
|
||||
# ═══════════════════════════════════════════════════════
|
||||
# 尝试1: 完整4字节 NEC [addr, ~addr, cmd, ~cmd]
|
||||
# ═══════════════════════════════════════════════════════
|
||||
frame = bytes([0x3B, 0xC4, KEY, KEY ^ 0xFF])
|
||||
print(f"尝试: NEC完整4字节 → {frame.hex(' ').upper()}")
|
||||
print("用手机摄像头看红外LED是否发光...")
|
||||
ser.reset_input_buffer()
|
||||
ser.write(frame)
|
||||
ser.flush()
|
||||
time.sleep(0.15)
|
||||
# 读回应
|
||||
resp = ser.read(ser.in_waiting)
|
||||
if resp:
|
||||
print(f" 板子回应: {resp.hex(' ').upper()}")
|
||||
else:
|
||||
print(" (无回应)")
|
||||
|
||||
time.sleep(0.5)
|
||||
|
||||
# ═══════════════════════════════════════════════════════
|
||||
# 尝试2: NEC 地址命令格式 [addr, cmd] (有些板子只要2字节)
|
||||
# ═══════════════════════════════════════════════════════
|
||||
frame = bytes([0x3B, KEY])
|
||||
print(f"\n尝试: NEC短帧2字节 → {frame.hex(' ').upper()}")
|
||||
print("用手机摄像头看红外LED是否发光...")
|
||||
ser.reset_input_buffer()
|
||||
ser.write(frame)
|
||||
ser.flush()
|
||||
time.sleep(0.15)
|
||||
resp = ser.read(ser.in_waiting)
|
||||
if resp:
|
||||
print(f" 板子回应: {resp.hex(' ').upper()}")
|
||||
else:
|
||||
print(" (无回应)")
|
||||
|
||||
time.sleep(0.5)
|
||||
|
||||
# ═══════════════════════════════════════════════════════
|
||||
# 尝试3: 带命令前缀的发送 (常见 YS-IRTM 风格)
|
||||
# A1 F1 + 地址 + 命令
|
||||
# ═══════════════════════════════════════════════════════
|
||||
frame = bytes([0xA1, 0xF1, 0x3B, KEY])
|
||||
print(f"\n尝试: A1F1命令格式 → {frame.hex(' ').upper()}")
|
||||
print("用手机摄像头看红外LED是否发光...")
|
||||
ser.reset_input_buffer()
|
||||
ser.write(frame)
|
||||
ser.flush()
|
||||
time.sleep(0.15)
|
||||
resp = ser.read(ser.in_waiting)
|
||||
if resp:
|
||||
print(f" 板子回应: {resp.hex(' ').upper()}")
|
||||
else:
|
||||
print(" (无回应)")
|
||||
|
||||
time.sleep(0.5)
|
||||
|
||||
# ═══════════════════════════════════════════════════════
|
||||
# 尝试4: 换一种候选 — 单字节地址
|
||||
# ═══════════════════════════════════════════════════════
|
||||
frame = bytes([0xC4, KEY])
|
||||
print(f"\n尝试: 单地址2字节 → {frame.hex(' ').upper()}")
|
||||
ser.reset_input_buffer()
|
||||
ser.write(frame)
|
||||
ser.flush()
|
||||
time.sleep(0.15)
|
||||
resp = ser.read(ser.in_waiting)
|
||||
if resp:
|
||||
print(f" 板子回应: {resp.hex(' ').upper()}")
|
||||
else:
|
||||
print(" (无回应)")
|
||||
|
||||
ser.close()
|
||||
|
||||
print("\n──────")
|
||||
print("用手机摄像头观察:")
|
||||
print(" 红外LED = 白色透明或深紫色的小珠子")
|
||||
print(" 发送时如果发光 → 手机屏幕里能看到紫白色闪光")
|
||||
print(" 完全不亮 → 发送协议不对,板子根本没发射")
|
||||
Reference in New Issue
Block a user