70 lines
2.0 KiB
Python
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)
|