关于M5StickV的视频录制使用方法
本帖最后由 vany5921 于 2019-10-12 14:15 编辑M5StickV是一款具备强大的AI识别能力的摄像头,内置K210芯片,支持python编程,通过GROVE接口提供丰富的扩展能力,由于FPIOA的存在,可以方便的配置UART和I2C,对于一款摄像头来说,最基本的功能就是录像,接下来带大家一起了解一下这款设备的录像功能。(之前见到有人问如果在Python中引入外部变量,其实很简单,单独新建一个py文件保存全局变量,程序运行时作为模块导入,或者创建文本文件,使用fs进行读写。)
import sensor
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()
谢谢分享。等我找个TF卡试试 实测有错误。
启动是正常的,但是当我按下录制键时,提133行有错,
Traceback (most recent call last):
File "<stdin>", line 133, in <module>
OSError: ENOENT
复制到MAIXpy上的话,由于多了空行,所以133行是这一行代码:v = video.open(nm, record=1)
请问这个是什么错误,要怎么解决?
页:
[1]