【01Studio MaixPy AI K210】23.照相机

目录

导包:

注册引脚:

构造GPIO口的对象:

例程:

导包:

import sensor, lcd, utime
from Maix import GPIO
from fpioa_manager import fm

注册引脚:

'''
【pin】芯片外部 IO 
【function】芯片功能
【force】=True 则强制注册,清除之前的注册记录
'''
fm.register(pin,function,force=False)
fm.register(16, fm.fpioa.GPIOHS0, force=True)
fm.register(18, fm.fpioa.GPIOHS1, force=True)

构造GPIO口的对象:

'''
【ID】内部 GPIO 编号
【MODE】 GPIO 模式;
	    GPIO.IN :输入模式
	    GPIO.OUT :输出模式
【PULL】 GPIO.PULL_UP :上拉
		GPIO.PULL_DOWN :下拉
		GPIO.PULL_NONE :无
【value】GPIO 初始化电平
		1:高电平
		0:低电平
'''
GPIO(ID,MODE,PULL,VALUE)
KEY1=GPIO(GPIO.GPIOHS0, GPIO.IN, GPIO.PULL_UP)
KEY2=GPIO(GPIO.GPIOHS1, GPIO.IN, GPIO.PULL_UP)

例程:

'''
main.py

说明:通过按键1按下进行拍照拍照并保存到SD卡,同时在LCD上显示一段时间,按键2切换摄像头模式。
注意:按键2需外接。
'''

import sensor, lcd, utime
from Maix import GPIO
from fpioa_manager import fm

#注册KEY的外部IO
fm.register(16, fm.fpioa.GPIOHS0, force=True)
fm.register(18, fm.fpioa.GPIOHS1, force=True)

#构建KEY对象
KEY1=GPIO(GPIO.GPIOHS0, GPIO.IN, GPIO.PULL_UP)
KEY2=GPIO(GPIO.GPIOHS1, GPIO.IN, GPIO.PULL_UP)

#摄像头初始化
sensor.reset() # Initialize the camera sensor.
sensor.set_pixformat(sensor.RGB565) # or sensor.GRAYSCALE
sensor.set_framesize(sensor.QVGA) # or sensor.QVGA (or others)
sensor.skip_frames(30) # Let new settings take affect.
flag=1
sensor.set_vflip(flag)    #摄像头后置模式

#LCD初始化
lcd.init()

key_num = 0  #按键标志位
name_num = 0  #照片名字

##############################################
#  按键和其回调函数
##############################################
def fun1(KEY1):
    global key_num
    utime.sleep_ms(10) #消除抖动
    if KEY1.value()==0: #确认按键被按下
        key_num = 1

def fun2(KEY2):
    global key_num
    utime.sleep_ms(10) #消除抖动
    if KEY2.value()==0: #确认按键被按下
        key_num = 2

#开启中断,下降沿触发
KEY1.irq(fun1, GPIO.IRQ_FALLING)
KEY2.irq(fun2, GPIO.IRQ_FALLING)

while True:

    lcd.display(sensor.snapshot()) # LCD实时显示

    if key_num==1: #按键1被按下
        key_num = 0 #清空按键标志位

        #拍照并保存
        lcd.display(sensor.snapshot().save("/sd/"+str(name_num)+".jpg"))
        name_num=name_num+1 #名字编码加1

        print("Done! Reset the camera to see the saved image.")
        lcd.draw_string(100,100,"Tu_Pian_Yi_Bao_Cun!!!",lcd.RED,lcd.WHITE)

        #延时3秒,观看拍摄图片
        utime.sleep_ms(3000)
    elif key_num==2:#更换摄像头模式
        key_num=0
        if flag==1:
            flag=0
            sensor.set_vflip(flag)
        elif flag==0:
            flag=1
            sensor.set_vflip(flag)

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

因心,三人水

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值