From e9b544106c0f436ecce3c4d42be44f82524c7e6e Mon Sep 17 00:00:00 2001 From: dahanzimin <353767514@qq.com> Date: Tue, 27 May 2025 13:42:46 +0800 Subject: [PATCH] =?UTF-8?q?=E6=9B=B4=E6=96=B0sant=E7=9A=84=E5=BA=93?= =?UTF-8?q?=EF=BC=8C=E4=BF=AE=E5=A4=8Dasr=5Fen,=20key=5Fadc,=20bot?= =?UTF-8?q?=E7=AB=AF=E5=8F=A3=E6=93=8D=E4=BD=9C?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../origin/build/lib/camera.py | 6 +-- .../origin/build/lib/ci1302x.py | 13 ++++--- .../origin/build/lib/mixgo_sant.py | 9 +++-- .../origin/build/lib/sant_bot.py | 38 +++++++++++-------- .../build/lib/{sant_g3.py => sant_gx.py} | 4 +- .../origin/build/lib/st7789_cf.py | 6 +-- 6 files changed, 42 insertions(+), 34 deletions(-) rename boards/default_src/micropython_esp32s3/origin/build/lib/{sant_g3.py => sant_gx.py} (83%) diff --git a/boards/default_src/micropython_esp32s3/origin/build/lib/camera.py b/boards/default_src/micropython_esp32s3/origin/build/lib/camera.py index 4e29192b..302a0b74 100644 --- a/boards/default_src/micropython_esp32s3/origin/build/lib/camera.py +++ b/boards/default_src/micropython_esp32s3/origin/build/lib/camera.py @@ -13,8 +13,7 @@ from mixgo_sant import onboard_bot class GC032A(Camera): def __init__(self, framesize=LCD, hmirror=None): - onboard_bot.cam_en(0) - time.sleep_ms(500) + onboard_bot.cam_en(1, 500) super().__init__() super().set_framesize(framesize) time.sleep_ms(100) @@ -26,5 +25,4 @@ class GC032A(Camera): def deinit(self): super().deinit() - time.sleep_ms(100) - onboard_bot.cam_en(1) + onboard_bot.cam_en(0,100) diff --git a/boards/default_src/micropython_esp32s3/origin/build/lib/ci1302x.py b/boards/default_src/micropython_esp32s3/origin/build/lib/ci1302x.py index aa366326..d73f09fa 100644 --- a/boards/default_src/micropython_esp32s3/origin/build/lib/ci1302x.py +++ b/boards/default_src/micropython_esp32s3/origin/build/lib/ci1302x.py @@ -8,21 +8,24 @@ MicroPython library for the CI130Xx (ASR-I2C) from ci130x import CI130X class CI1302(CI130X): - def __init__(self, i2c_bus, addr=0x64): + def __init__(self, i2c_bus, func, addr=0x64): self._device = i2c_bus self._address = addr self._cmd_id = None + self._func = func def _wreg(self, reg): '''Write memory address''' try: self._device.writeto(self._address, reg) - except Exception as e: - raise AttributeError("Power supply may not be turned on or", e) + except: + self._func(1, 700) #Power on + self._device.writeto(self._address, reg) def _rreg(self, reg, nbytes=1): '''Read memory address''' try: return self._device.readfrom_mem(self._address, reg, nbytes) - except Exception as e: - raise AttributeError("Power supply may not be turned on or", e) + except: + self._func(1, 700) #Power on + return self._device.readfrom_mem(self._address, reg, nbytes) diff --git a/boards/default_src/micropython_esp32s3/origin/build/lib/mixgo_sant.py b/boards/default_src/micropython_esp32s3/origin/build/lib/mixgo_sant.py index 26f6d275..12674a70 100644 --- a/boards/default_src/micropython_esp32s3/origin/build/lib/mixgo_sant.py +++ b/boards/default_src/micropython_esp32s3/origin/build/lib/mixgo_sant.py @@ -64,7 +64,7 @@ except Exception as e: '''ASR-Sensor''' try : from ci1302x import CI1302 - onboard_asr = CI1302(inboard_i2c) + onboard_asr = CI1302(inboard_i2c, onboard_bot.asr_en) except Exception as e: print("Warning: Failed to communicate with CI130X (ASR) or",e) @@ -80,15 +80,16 @@ onboard_music = MIDI(46, pa_ctrl=onboard_bot.spk_en) class KEYSensor: def __init__(self, pin, range): self.pin = pin - self.adc = ADC(Pin(pin), atten=ADC.ATTN_0DB) + self.adc = ADC(Pin(pin)) + self.adc.atten(ADC.ATTN_0DB) self.range = range self.flag = True def _value(self): values = [] - for _ in range(50): + for _ in range(25): values.append(self.adc.read()) - time.sleep_us(2) + time.sleep_us(5) return (self.range-200) < min(values) < (self.range+200) def get_presses(self, delay = 1): diff --git a/boards/default_src/micropython_esp32s3/origin/build/lib/sant_bot.py b/boards/default_src/micropython_esp32s3/origin/build/lib/sant_bot.py index 4b6a5a4a..912ffb9d 100644 --- a/boards/default_src/micropython_esp32s3/origin/build/lib/sant_bot.py +++ b/boards/default_src/micropython_esp32s3/origin/build/lib/sant_bot.py @@ -33,7 +33,14 @@ class BOT035: def _rreg(self, reg, nbytes=1): '''Read memory address''' self._i2c.writeto(_BOT035_ADDRESS, reg.to_bytes(1, 'little')) - return int.from_bytes(self._i2c.readfrom(_BOT035_ADDRESS, nbytes), 'little') + return int.from_bytes(self._i2c.readfrom(_BOT035_ADDRESS, nbytes), 'little') + + def _bits(self, offset, mask, value=None, delay=100, reg=_BOT035_CMD): + if value is None: + return (self._rreg(reg) & mask) >> offset + else: + self._wreg(reg, (self._rreg(reg) & (~ mask & 0xFF)) | (value << offset)) + time.sleep_ms(delay) def reset(self): self._i2c.writeto_mem(_BOT035_ADDRESS, _BOT035_PWM, b' Ndddd\x00\x00\x00\x8c\xb0') @@ -77,24 +84,25 @@ class BOT035: else: self._wreg(_BOT035_LED + index, max(min(duty, 100), 0)) - def tft_reset(self, value): - self._wreg(_BOT035_CMD, (self._rreg(_BOT035_CMD) & 0x7F) | (value << 7)) + def tft_reset(self, value=None, delay=50): + return self._bits(7, 0x80, value, delay) - def spk_en(self, value): - self._wreg(_BOT035_CMD, (self._rreg(_BOT035_CMD) & 0xBF) | (value << 6)) + def spk_en(self, value=None, delay=10): + return self._bits(6, 0x40, value, delay) - def cam_en(self, value): - self._wreg(_BOT035_CMD, (self._rreg(_BOT035_CMD) & 0xDF) | (value << 5)) - - def cam_reset(self, value): - self._wreg(_BOT035_CMD, (self._rreg(_BOT035_CMD) & 0xEF) | (value << 4)) + def cam_en(self, value=None, delay=500): + """Convert to high level effective""" + value = value if value is None else ~ value & 0x01 + return self._bits(5, 0x20, value, delay) + + def cam_reset(self, value=None, delay=50): + return self._bits(4, 0x10, value, delay) - def asr_en(self, value=None, delay=500): - self._wreg(_BOT035_CMD, (self._rreg(_BOT035_CMD) & 0xF3) | (value << 2)) - time.sleep_ms(delay) + def asr_en(self, value=None, delay=700): + return self._bits(2, 0x0C, value, delay) - def uart_select(self, value): - self._wreg(_BOT035_CMD, (self._rreg(_BOT035_CMD) & 0xFC) | value) + def uart_select(self, value=None, delay=50): + return self._bits(0, 0x03, value, delay) def rgb_sync(self, buffer, n=12): self._i2c.writeto_mem(_BOT035_ADDRESS, _BOT035_RGB, buffer if len(buffer) < n else buffer[:n]) diff --git a/boards/default_src/micropython_esp32s3/origin/build/lib/sant_g3.py b/boards/default_src/micropython_esp32s3/origin/build/lib/sant_gx.py similarity index 83% rename from boards/default_src/micropython_esp32s3/origin/build/lib/sant_g3.py rename to boards/default_src/micropython_esp32s3/origin/build/lib/sant_gx.py index fa37e485..70300f59 100644 --- a/boards/default_src/micropython_esp32s3/origin/build/lib/sant_g3.py +++ b/boards/default_src/micropython_esp32s3/origin/build/lib/sant_gx.py @@ -1,7 +1,7 @@ """ -SANT G2 -MixGo SANT EXT G2 +SANT GX -MixGo SANT EXT G3 -MicroPython library for the SANT G2 (Expansion board for MixGo SANT) +MicroPython library for the SANT GX (Expansion board for MixGo SANT) ======================================================= @dahanzimin From the Mixly Team """ diff --git a/boards/default_src/micropython_esp32s3/origin/build/lib/st7789_cf.py b/boards/default_src/micropython_esp32s3/origin/build/lib/st7789_cf.py index 4eb750fb..b16e98b5 100644 --- a/boards/default_src/micropython_esp32s3/origin/build/lib/st7789_cf.py +++ b/boards/default_src/micropython_esp32s3/origin/build/lib/st7789_cf.py @@ -11,10 +11,8 @@ from tftlcd import LCD15 class ST7789(uframebuf.FrameBuffer_Uincode): def __init__(self, width=240, height=240, reset=None, backlight=None, direction=1, font_address=0x700000): if reset is not None: - reset(0) - time.sleep_ms(50) - reset(1) - time.sleep_ms(100) + reset(0, 50) + reset(1, 100) self.display = LCD15(portrait=direction) self._width = width self._height = height