Example: 50-Arduino-Boards/Portenta-H7/54-Low-Power/himax_wakeup_on_motion_detection.py

# 本作品采用MIT许可证授权。
# 版权所有 (c) 2013-2023 OpenMV LLC。保留所有权利。
# https://github.com/openmv/openmv/blob/master/LICENSE
#
# 此示例展示了如何使用Himax运动检测功能
# 在运动检测中断时从低功耗停止模式唤醒。

import sensor
import pyb
import machine
from pyb import Pin, ExtInt

sensor.reset()
sensor.set_pixformat(sensor.GRAYSCALE)
sensor.set_framesize(sensor.QVGA)
sensor.set_framerate(15)

sensor.ioctl(sensor.IOCTL_HIMAX_MD_THRESHOLD, 10)
sensor.ioctl(sensor.IOCTL_HIMAX_MD_WINDOW, (0, 0, 320, 240))
sensor.ioctl(sensor.IOCTL_HIMAX_MD_CLEAR)
sensor.ioctl(sensor.IOCTL_HIMAX_MD_ENABLE, True)


def on_motion(line):
    pass


led = pyb.LED(3)
ext = ExtInt(Pin("PC15"), ExtInt.IRQ_RISING, Pin.PULL_DOWN, on_motion)

while True:
    led.off()
    sensor.ioctl(sensor.IOCTL_HIMAX_OSC_ENABLE, True)  # 切换到内部振荡器
    sensor.ioctl(sensor.IOCTL_HIMAX_MD_CLEAR)  # 清除运动检测标志
    machine.sleep()  # 进入低功耗模式,将在运动检测中断时唤醒。
    sensor.ioctl(sensor.IOCTL_HIMAX_OSC_ENABLE, False)  # 切换回主时钟
    led.on()
    for i in range(0, 60):  # 捕获几帧图像
        img = sensor.snapshot()

results matching ""

    No results matching ""