初始化

This commit is contained in:
lhx
2026-06-09 10:19:38 +08:00
commit d03691451f
6 changed files with 1589 additions and 0 deletions

92
ir_try.py Normal file
View 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(" 完全不亮 → 发送协议不对,板子根本没发射")