""" 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)