【follow me第二季第一期】任务三,入侵检测报警
[复制链接]
本帖最后由 crimsonsnow 于 2024-9-27 09:22 编辑
import time
from adafruit_circuitplayground import cp
# 设定一个阈值来表示检测到物体时的红外值
# 这个值可能需要根据你的环境和测试进行调整
IR_THRESHOLD = 10
while True:
# 读取板载红外传感器数据
ir_value = cp.ir_proximity
# 检查是否有人或物体靠近
if ir_value > IR_THRESHOLD:
# 点亮所有LED灯
cp.pixels.brightness = 0.5 # 设置LED亮度
for i in range(10):
cp.pixels[i] = (255, 0, 0) # 红色表示警告
# 发出声音报警
# 播放一个简单的警报音
for _ in range(3):
cp.start_tone(2000) # 发出2000Hz的音调
time.sleep(0.1)
cp.stop_tone()
time.sleep(0.1)
else:
# 关闭LED灯
cp.pixels.brightness = 0.0 # 关闭LED灯
cp.stop_tone() # 停止声音
# 稍微延迟后再次检测
time.sleep(0.1)
任务指示建议使用红外发射与接收来操作,但是红外的效果似乎比较一般,不是一直在报警就是一直不报警
有用光线传感器做的方法,原理是接近后光量下降,从而进行判定
效果很不错
import time
from adafruit_circuitplayground import cp
# 设定一个阈值来表示光线强度低时的值
# 这个值可能需要根据你的环境和测试进行调整
LIGHT_THRESHOLD = 100
while True:
# 读取板载光线传感器数据
light_value = cp.light
# 检查光线强度是否低于阈值
if light_value < LIGHT_THRESHOLD:
# 点亮所有LED灯
cp.pixels.brightness = 0.5 # 设置LED亮度
for i in range(10):
cp.pixels[i] = (255, 0, 0) # 红色表示警告
# 发出声音报警
# 播放一个简单的警报音
for _ in range(3):
cp.start_tone(2000) # 发出2000Hz的音调
time.sleep(0.1)
cp.stop_tone()
time.sleep(0.1)
else:
# 关闭LED灯
cp.pixels.brightness = 0.0 # 关闭LED灯
cp.stop_tone() # 停止声音
# 稍微延迟后再次检测
time.sleep(0.1)
遮挡之后迅速反应,亮灯报警
|