import sensor, image, time
from pyb import Pin
from pyb import LED,Pin

sensor.reset()
sensor.set_pixformat(sensor.GRAYSCALE)
sensor.set_framesize(sensor.QVGA)
sensor.skip_frames(time = 2000)

clock = time.clock()

blue_led = LED(1)
KEY = Pin('C13',Pin.IN,Pin.PULL_DOWN)

print("You're on camera!")
keycount=0
# 轻触开关
pin0 = Pin('P0', Pin.IN, Pin.PULL_UP)

waitkeyflag=0
keyval=0
#等开关按下并松开
def wait_key():
    global keyval,waitkeyflag
    while KEY.value():
        img = sensor.snapshot().lens_corr(1.8)
        time.sleep_ms(10)
        while KEY.value():
            while KEY.value(): #wait key up
                i=0   #anything you like
                print("here01")
            keyval=100  
            waitkeyflag=1
            print(keyval)
            print(waitkeyflag)
            print("key press11")
#        for y in range(len(rois)):
#            for x in range(len(rois[y])):
#                img.draw_rectangle(rois[y][x])
#    while not KEY.value():
#        time.sleep_ms(1)


while(True):
    clock.tick()
    if waitkeyflag==0:
        wait_key()
        print(waitkeyflag)
        print("wait key00")
    elif waitkeyflag==1 :
        img = sensor.snapshot().lens_corr(1.8)
        print(clock.fps())

mv:按键_固件


mv:按键_git_02


https://gitee.com/WeAct-TC/MiniSTM32H7xx/blob/master/SDK/openmv/Example/snapshot.py

# WeAct Studio
# 微行工作室

import sensor, image, pyb
from time import sleep
from pyb import LED,Pin

# OV5640 AF 固件初始化
def OV5640AF_Init():
    AFConfigFile = open('AF_REG.txt','r')
    addr=0x8000
    sensor.__write_reg(0x3000,0x20)
    while True:
        AFConfig=AFConfigFile.readline()
        if not AFConfig:
            break
        str_new = AFConfig.replace(' ', '')
        str_new = str_new.replace(',', '')
        str_new = str_new.replace('0x', '')
        str_new = str_new[:-8]
        len_s = int(len(str_new)/2)
        list_nums = []
        i = 0
        for i in range(0, len_s):
            chs = str_new[2*i : 2*i + 2]
            num = int(chs, 16)
            list_nums.append(num)
        bys = bytes(list_nums)
        # print(bys)
        for char in bys:
            sensor.__write_reg(addr,char)
            addr += 1
    sensor.__write_reg(0x3022,0x00)
    sensor.__write_reg(0x3023,0x00)
    sensor.__write_reg(0x3024,0x00)
    sensor.__write_reg(0x3025,0x00)
    sensor.__write_reg(0x3026,0x00)
    sensor.__write_reg(0x3027,0x00)
    sensor.__write_reg(0x3028,0x00)
    sensor.__write_reg(0x3029,0x7f)
    sensor.__write_reg(0x3000,0x00)

    while(True):
        result = sensor.__read_reg(0x3029)
        print('FW_STATUS: %X' %result)
        if result != 0x7F:
            break
        sleep(0.5)


sensor.reset() # Initialize the camera sensor.
sensor.set_pixformat(sensor.RGB565) # or sensor.GRAYSCALE
sensor.set_framesize(sensor.QVGA) # or sensor.QQVGA (or others)

if sensor.get_id() == sensor.OV7725:
    sensor.set_hmirror(True)
    sensor.set_vflip(True)
elif sensor.get_id() == sensor.OV5640:
    OV5640AF_Init()

sensor.skip_frames(time = 2000) # Let new settings take affect.

blue_led = LED(1)
KEY = Pin('C13',Pin.IN,Pin.PULL_DOWN)

print("You're on camera!")
keycount=0
file_count=0
while(True):
    sensor.snapshot()
    if KEY.value() == 1:
        while KEY.value() == 1:
            blue_led.on()
            sleep(0.05)
            blue_led.off()
            sleep(0.05)
            keycount += 1
            if keycount > 3:
                # 长按K1,开始对焦
                if sensor.get_id() == sensor.OV5640:
                    while KEY.value() == 1:
                        blue_led.on()
                        sleep(0.1)
                        blue_led.off()
                        sleep(0.1)
                    sensor.__write_reg(0x3022,0x03)

        if keycount <= 3:
            sleep(0.1)
            name='example'+str(file_count)+'.jpg'
            sensor.snapshot().save(name)
            print("Done! Reset the camera to see the saved image.")
            print(name)
            file_count += 1
            if sensor.get_id() != sensor.OV5640:
                keycount = 0

    if sensor.get_id() == sensor.OV5640:
        # 判断对焦是否完成
        if keycount != 0:
            # 读取对焦状态
            result = sensor.__read_reg(0x3029)
            print('FW_STATUS: %X' %result)
            if result == 0x10 or result == 0x70:
                # 对焦完成,暂停对焦过程,使镜头将保持在此对焦位置
                sensor.__write_reg(0x3022,0x06)
                keycount = 0

    else:
        keycount = 0