Files
mixly3/boards/default/micropython_esp32s3/build/lib/camera.py

70 lines
2.0 KiB
Python

"""
Camera GC032A/FrameBuffer(Inherit C module)
MicroPython library for the GC032A(Inherit C module)
=======================================================
@dahanzimin From the Mixly Team
"""
import time
import base64
from sensor import *
from machine import SoftI2C, Pin
from mixgo_sant import onboard_bot
from esp_usb import CAM
class GC032A(Camera):
def __init__(self, framesize=LCD, hmirror=None, frame=1):
onboard_bot.cam_en(1, 500)
super().__init__(frame)
super().set_framesize(framesize)
time.sleep_ms(100)
if hmirror is not None:
super().set_hmirror(hmirror)
time.sleep_ms(100)
SoftI2C(scl=Pin(47), sda=Pin(48), freq=400000)
SoftI2C(scl=Pin(47), sda=Pin(38), freq=400000)
def deinit(self):
super().deinit()
onboard_bot.cam_en(0, 100)
def display(self, show=True):
if show:
super().display()
else:
super().display_stop()
def snapshot(self, path=None, formats=0, quality=50):
if path is None:
_data = super().snapshot(formats=formats, quality=quality)
if formats >= 2:
return b'data:image/jpg;base64,' + base64.b64encode(_data)
else:
return _data
else:
return super().snapshot(path, quality=50)
class UVC(CAM):
def __init__(self, framesize=QVGA):
super().__init__(framesize)
def deinit(self):
super().deinit()
def display(self, show=True):
if show:
super().display()
else:
super().display_stop()
def snapshot(self, path=None, formats=0, quality=50):
if path is None:
_data = super().snapshot(formats=formats, quality=quality)
if formats >= 2:
return b'data:image/jpg;base64,' + base64.b64encode(_data)
else:
return _data
else:
return super().snapshot(path, quality=50)