himax_wakeup_on_motion_detection.py

# هذا العمل مرخص بموجب ترخيص MIT.
# حقوق النشر (c) 2013-2023 OpenMV LLC. جميع الحقوق محفوظة.
# https://github.com/openmv/openmv/blob/master/LICENSE
#
# يوضح هذا المثال كيفية استخدام ميزة كشف الحركة من Himax
# للاستيقاظ من وضع الإيقاف منخفض الطاقة عند حدوث مقاطعات كشف الحركة.

import csi
import pyb
import machine
from pyb import Pin, ExtInt

csi0 = csi.CSI()
csi0.reset()
csi0.pixformat(csi.GRAYSCALE)
csi0.framesize(csi.QVGA)
csi0.framerate(15)

csi0.ioctl(csi.IOCTL_HIMAX_MD_THRESHOLD, 10)
csi0.ioctl(csi.IOCTL_HIMAX_MD_WINDOW, (0, 0, 320, 240))
csi0.ioctl(csi.IOCTL_HIMAX_MD_CLEAR)
csi0.ioctl(csi.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()
    csi0.ioctl(csi.IOCTL_HIMAX_OSC_ENABLE, True)  # التبديل إلى المذبذب الداخلي (internal OSC)
    csi0.ioctl(csi.IOCTL_HIMAX_MD_CLEAR)  # مسح علامة MD (MD flag)
    machine.sleep()  # الدخول في وضع الطاقة المنخفضة، وسيتم الاستيقاظ عند حدوث مقاطعة MD.
    csi0.ioctl(csi.IOCTL_HIMAX_OSC_ENABLE, False)  # العودة إلى MCLK
    led.on()
    for i in range(0, 60):  # التقاط بضعة إطارات
        img = csi0.snapshot()

results matching ""

    No results matching ""