4021| 1
|
关于M5StickV的视频录制使用方法 |
本帖最后由 vany5921 于 2019-10-12 11:57 编辑 M5StickV是一款具备强大的AI识别能力的摄像头,内置K210芯片,支持python编程,通过GROVE接口提供丰富的扩展能力,由于FPIOA的存在,可以方便的配置UART和I2C,对于一款摄像头来说,最基本的功能就是录像,接下来带大家一起了解一下这款设备的录像功能。(之前见到有人问如果在Python中引入外部变量,其实很简单,单独新建一个py文件保存全局变量,程序运行时作为模块导入,或者创建文本文件,使用fs进行读写。) [mw_shl_code=python,true]import image import lcd import time import uos import video import sys from fpioa_manager import * from machine import I2C from Maix import I2S, GPIO #board_info.pin_map()可以查看引脚的定义名称,具体配置是GPIO哪个引脚可以通过前面品pin_map查看到的名称用board_info.来查看,比如输入board_info.BUTTON_A打印结#果为36,board_info.CONNEXT_A打印为35 fm.register(board_info.BUTTON_A, fm.fpioa.GPIO1) #使用fpioa管理器配置按键A but_a=GPIO(GPIO.GPIO1, GPIO.IN, GPIO.PULL_UP) #PULL_UP 必须上拉 fm.register(board_info.BUTTON_B, fm.fpioa.GPIO2) #使用fpioa管理器配置按键B but_b=GPIO(GPIO.GPIO2, GPIO.IN, GPIO.PULL_UP) #PULL_UP 必须上拉 lcd.init() lcd.rotation(2) sensor.reset() sensor.set_pixformat(sensor.RGB565) sensor.set_framesize(sensor.QVGA) sensor.run(1) sensor.skip_frames(30) #技巧》建立文本文件保存变量,自动添加文件名序号 noname="no.txt" basename="capture" ext=".avi" no = 1 while True: while True: img = sensor.snapshot() img.draw_string(img.width()//2-100,img.height()//2-4, "STOP", color=(0,0,255), scale=2,mono_space=False) lcd.display(img) if but_a.value() == 0: #按键A按下跳出循环准备拍摄 while but_a.value() != 0: break break if but_b.value() == 0: #按键B按下停止拍摄,清屏 sensor.run(0) lcd.clear() sys.exit() lcd.clear() print("Start") try: f = open("/sd/"+noname,"r") #打开no.txt文件读取no no = int(f.read()) f.close() except: no = 1 print(no) nm = "/sd/" + basename + str(no) + ext #文件命名 print(nm) # v = video.open(nm, record=1, interval=200000, quality=50) v = video.open(nm, record=1) while True: img = sensor.snapshot() img_len = v.record(img) # lcd.draw_string(lcd.width()//2-100,lcd.height()//2-4, "REC", lcd.WHITE, lcd.RED) img.draw_string(img.width()//2-100,img.height()//2-4, "REC", color=(255,0,0), scale=2,mono_space=False) lcd.display(img) if but_a.value() == 0: #按键A按下停止录像 while but_a.value() != 0: break break v.record_finish() print("Stop") lcd.clear() no = no + 1 f = open("/sd/"+noname,"w") #将no写入txt文件 f.write(str(no)) f.close()[/mw_shl_code] |
© 2013-2024 Comsenz Inc. Powered by Discuz! X3.4 Licensed