build(boards): xpython板卡执行 npm run build:prod
This commit is contained in:
Binary file not shown.
@@ -5,43 +5,113 @@ MicroPython library for the Camera(Inherit C module)
|
||||
=======================================================
|
||||
@dahanzimin From the Mixly Team
|
||||
"""
|
||||
|
||||
import time
|
||||
import base64
|
||||
import jpeg
|
||||
import time, gc
|
||||
import urequests
|
||||
from _camera import *
|
||||
from jpeg import Encoder
|
||||
from base64 import b64encode
|
||||
from machine import SoftI2C, Pin
|
||||
from mixgo_sant import onboard_bot
|
||||
from jpeg import Encoder, Decoder
|
||||
|
||||
class IMG:
|
||||
def __init__(self, image, width, height):
|
||||
self.image = image
|
||||
self.width = width
|
||||
self.height = height
|
||||
self.format = "RGB565"
|
||||
|
||||
class Camera(Camera):
|
||||
def __init__(self, frame_size=FrameSize.R240X240, pixel_format=PixelFormat.RGB565, hmirror=False, vflip=False, **kwargs):
|
||||
def __init__(self, frame_size=FrameSize.R240X240, pixel_format=PixelFormat.RGB565, skip_frame=3, hmirror=False, vflip=False, **kwargs):
|
||||
from mixgo_sant import onboard_bot
|
||||
onboard_bot.cam_reset(1, 0)
|
||||
onboard_bot.cam_en(1, 150)
|
||||
super().__init__(frame_size=frame_size, pixel_format=pixel_format, **kwargs)
|
||||
self.set_hmirror(not hmirror)
|
||||
time.sleep_ms(50)
|
||||
time.sleep_ms(150)
|
||||
self.set_vflip(not vflip)
|
||||
time.sleep_ms(50)
|
||||
SoftI2C(scl=Pin(47), sda=Pin(48), freq=400000) # 恢复I2C
|
||||
for _ in range(skip_frame):
|
||||
super().capture()
|
||||
|
||||
def deinit(self):
|
||||
super().deinit()
|
||||
gc.collect()
|
||||
onboard_bot.cam_reset(0, 0)
|
||||
onboard_bot.cam_en(0, 100)
|
||||
|
||||
def snapshot(self, path=None, formats=0, quality=90, rotation=0):
|
||||
if formats == 0 and path is None:
|
||||
def snapshot(self, path=None, quality=90, rotation=0):
|
||||
if path is None:
|
||||
return self.capture()
|
||||
else:
|
||||
_encoder = Encoder(pixel_format="RGB565_BE", quality=quality, rotation=rotation, width=self.get_pixel_width(), height=self.get_pixel_height())
|
||||
_jpeg = _encoder.encode(self.capture())
|
||||
del _encoder
|
||||
if path is None:
|
||||
if formats == 1:
|
||||
return _jpeg
|
||||
else:
|
||||
return b'data:image/jpg;base64,' + base64.b64encode(_jpeg)
|
||||
Image.save(self.capture(), path, quality=quality, rotation=rotation)
|
||||
|
||||
def capture(self):
|
||||
return IMG(super().capture(), self.get_pixel_width(), self.get_pixel_height())
|
||||
|
||||
class Image:
|
||||
def save(self, img, path="mixly.jpg", **kwargs):
|
||||
'''quality(1-100), rotation (0, 90, 180, 270)'''
|
||||
_encoder = Encoder(pixel_format="RGB565_BE", width=img.width, height=img.height, **kwargs)
|
||||
_jpeg = _encoder.encode(img.image)
|
||||
del _encoder
|
||||
gc.collect()
|
||||
if isinstance(path, str):
|
||||
with open(path, 'wb') as f:
|
||||
f.write(_jpeg)
|
||||
else:
|
||||
return _jpeg
|
||||
|
||||
def open(self, path="mixly.jpg", scale_width=None, scale_height=None, tft_width=240, tft_height=240, **kwargs):
|
||||
'''rotation (0, 90, 180, 270), clipper_width, clipper_height'''
|
||||
with open(path, "rb") as f:
|
||||
_jpeg = f.read()
|
||||
return self._jpg_decoder(_jpeg, scale_width, scale_height, tft_width, tft_height, **kwargs)
|
||||
|
||||
def convert(self, img, formats=0, **kwargs):
|
||||
if formats == 0:
|
||||
return self.save(img, None, **kwargs)
|
||||
elif formats == 1:
|
||||
return b'data:image/jpg;base64,' + b64encode(self.save(img, None, **kwargs))
|
||||
|
||||
def download(self, url, path=None, scale_width=None, scale_height=None, tft_width=240, tft_height=240, block=1024, **kwargs):
|
||||
'''rotation (0, 90, 180, 270), clipper_width, clipper_height'''
|
||||
response = urequests.get(url, stream=True)
|
||||
if path is None:
|
||||
_image = self._jpg_decoder(response.raw.read(), scale_width, scale_height, tft_width, tft_height, **kwargs)
|
||||
response.close()
|
||||
return _image
|
||||
else:
|
||||
with open(path, 'wb') as f:
|
||||
while True:
|
||||
_data = response.raw.read(block)
|
||||
if not _data:
|
||||
break
|
||||
else:
|
||||
f.write(_data)
|
||||
response.close()
|
||||
|
||||
def _jpg_decoder(self, jpg, scale_width, scale_height, tft_width, tft_height, **kwargs):
|
||||
'''Automatically zoom based on the screen'''
|
||||
if scale_width is None or scale_height is None:
|
||||
_width = tft_width
|
||||
_height = tft_height
|
||||
for i in range(min(len(jpg), 1024)):
|
||||
if jpg[i] == 0xFF and (jpg[i + 1] & 0xF0) == 0xC0:
|
||||
if jpg[i + 1] not in [0xC4, 0xC8, 0xCC]:
|
||||
_width = jpg[i + 7] << 8 | jpg[i + 8]
|
||||
_height = jpg[i + 5] << 8| jpg[i + 6]
|
||||
break
|
||||
if _width > tft_width or _height > tft_height:
|
||||
_scale = max(_width / tft_width, _height / tft_height) * 8
|
||||
_decoder = Decoder(pixel_format="RGB565_BE", scale_width=round(_width / _scale) * 8, scale_height=round(_height / _scale) * 8, **kwargs)
|
||||
else:
|
||||
with open(path, 'wb') as f:
|
||||
f.write(_jpeg)
|
||||
return True
|
||||
_decoder = Decoder(pixel_format="RGB565_BE", **kwargs)
|
||||
else:
|
||||
_decoder = Decoder(pixel_format="RGB565_BE", scale_width=scale_width // 8 * 8, scale_height=scale_height // 8 * 8, **kwargs)
|
||||
_info = _decoder.get_img_info(jpg)
|
||||
_image = IMG(_decoder.decode(jpg), _info[0], _info[1])
|
||||
del _decoder, jpg
|
||||
gc.collect()
|
||||
return _image
|
||||
|
||||
#图像处理
|
||||
Image = Image()
|
||||
|
||||
@@ -9,9 +9,54 @@ from espdl import *
|
||||
|
||||
def analyze(results, keys=None, num=0):
|
||||
if keys is None:
|
||||
return results is not None
|
||||
return True if results else False
|
||||
if results:
|
||||
if keys == "len":
|
||||
return len(results)
|
||||
else:
|
||||
return results[num][keys]
|
||||
|
||||
#简单处理模型运行结果
|
||||
_onboard_tft = None
|
||||
|
||||
def simple_run(molde, camera, keys="len", keyx=None, num=0, color=0xF800, size=2, sync=True):
|
||||
global _onboard_tft
|
||||
if _onboard_tft is None:
|
||||
from mixgo_sant import onboard_tft
|
||||
_onboard_tft = onboard_tft
|
||||
|
||||
if sync: _onboard_tft.fill(0, sync=False)
|
||||
_img = camera.capture()
|
||||
_onboard_tft.display(_img, sync=False)
|
||||
_result = molde.run(_img.image)
|
||||
_data = None
|
||||
|
||||
if _result:
|
||||
_x_of = (camera.get_pixel_width() - _onboard_tft.width) // 2
|
||||
_y_of = (camera.get_pixel_height() - _onboard_tft.height) // 2
|
||||
|
||||
for r in _result:
|
||||
x = 0
|
||||
y = 0
|
||||
|
||||
if r['box']:
|
||||
_onboard_tft.rect(r['box'][0] - _x_of, r['box'][1] - _y_of, r['box'][2], r['box'][3], color, sync=False)
|
||||
x = r['box'][0]
|
||||
y = r['box'][1] + r['box'][3]
|
||||
|
||||
if "person" in r:
|
||||
_onboard_tft.shows(r['person']['name'], x=x - _x_of, y=y - _y_of, size=size, center=0, color=color, sync=False)
|
||||
else:
|
||||
if r['box']:
|
||||
_onboard_tft.shows(r['data'], x=x - _x_of, y=y - _y_of, size=size, center=0, color=color, sync=False)
|
||||
else:
|
||||
_onboard_tft.shows(r['data'], y=0, size=size, center=True, color=color, sync=False)
|
||||
break
|
||||
|
||||
if keys == "len":
|
||||
_data = len(_result)
|
||||
else:
|
||||
_data = _result[num][keys] if keyx is None else _result[num][keys][keyx]
|
||||
|
||||
if sync: _onboard_tft.show()
|
||||
return _data
|
||||
|
||||
@@ -2,15 +2,16 @@
|
||||
"camera": {
|
||||
"__require__": [
|
||||
"time",
|
||||
"base64",
|
||||
"jpeg",
|
||||
"gc",
|
||||
"urequests",
|
||||
"_camera",
|
||||
"jpeg",
|
||||
"base64",
|
||||
"machine",
|
||||
"jpeg",
|
||||
"mixgo_sant"
|
||||
],
|
||||
"__file__": true,
|
||||
"__size__": 1617,
|
||||
"__size__": 4782,
|
||||
"__name__": "camera.py"
|
||||
},
|
||||
"ci1302x": {
|
||||
@@ -32,10 +33,11 @@
|
||||
},
|
||||
"esp_dl": {
|
||||
"__require__": [
|
||||
"espdl"
|
||||
"espdl",
|
||||
"mixgo_sant"
|
||||
],
|
||||
"__file__": true,
|
||||
"__size__": 417,
|
||||
"__size__": 2060,
|
||||
"__name__": "esp_dl.py"
|
||||
},
|
||||
"mixgo_nova": {
|
||||
@@ -77,13 +79,13 @@
|
||||
},
|
||||
"mixgo_sant": {
|
||||
"__require__": [
|
||||
"gc",
|
||||
"time",
|
||||
"math",
|
||||
"machine",
|
||||
"music",
|
||||
"ws2812x",
|
||||
"machine",
|
||||
"time",
|
||||
"gc",
|
||||
"st7789_cf",
|
||||
"math",
|
||||
"sant_bot",
|
||||
"sc7a20",
|
||||
"ltr553als",
|
||||
@@ -92,7 +94,7 @@
|
||||
"ci1302x"
|
||||
],
|
||||
"__file__": true,
|
||||
"__size__": 7403,
|
||||
"__size__": 7375,
|
||||
"__name__": "mixgo_sant.py"
|
||||
},
|
||||
"mixgo_soar": {
|
||||
@@ -110,7 +112,7 @@
|
||||
"mmc5603"
|
||||
],
|
||||
"__file__": true,
|
||||
"__size__": 6805,
|
||||
"__size__": 6752,
|
||||
"__name__": "mixgo_soar.py"
|
||||
},
|
||||
"mixgo_soar_voice": {
|
||||
@@ -177,6 +179,18 @@
|
||||
"__size__": 731,
|
||||
"__name__": "sant_gx.py"
|
||||
},
|
||||
"sant_tts": {
|
||||
"__require__": [
|
||||
"gc",
|
||||
"esp_tts",
|
||||
"machine",
|
||||
"pwm_audio",
|
||||
"mixgo_sant"
|
||||
],
|
||||
"__file__": true,
|
||||
"__size__": 747,
|
||||
"__name__": "sant_tts.py"
|
||||
},
|
||||
"soar_bot": {
|
||||
"__require__": [
|
||||
"time",
|
||||
@@ -190,11 +204,10 @@
|
||||
"__require__": [
|
||||
"time",
|
||||
"uframebuf",
|
||||
"machine",
|
||||
"micropython"
|
||||
"machine"
|
||||
],
|
||||
"__file__": true,
|
||||
"__size__": 4455,
|
||||
"__size__": 3711,
|
||||
"__name__": "st7789_bf.py"
|
||||
},
|
||||
"st7789_cf": {
|
||||
@@ -202,11 +215,10 @@
|
||||
"time",
|
||||
"uframebuf",
|
||||
"machine",
|
||||
"jpeg",
|
||||
"micropython"
|
||||
"camera"
|
||||
],
|
||||
"__file__": true,
|
||||
"__size__": 3953,
|
||||
"__size__": 3595,
|
||||
"__name__": "st7789_cf.py"
|
||||
},
|
||||
"ws2812x": {
|
||||
|
||||
@@ -1,18 +1,16 @@
|
||||
"""
|
||||
mixgo_sant Onboard resources(v1.9)
|
||||
mixgo_sant Onboard resources(v2.0)
|
||||
|
||||
Micropython library for the mixgo_sant Onboard resources
|
||||
=======================================================
|
||||
|
||||
@dahanzimin From the Mixly Team
|
||||
"""
|
||||
import gc
|
||||
import time
|
||||
import math
|
||||
from machine import *
|
||||
from music import MIDI
|
||||
from ws2812x import NeoPixel
|
||||
from machine import *
|
||||
import time
|
||||
import gc
|
||||
import st7789_cf
|
||||
import math
|
||||
|
||||
'''RTC'''
|
||||
rtc_clock = RTC()
|
||||
@@ -33,6 +31,7 @@ except Exception as e:
|
||||
print("Warning: Failed to communicate with BOT035 (Coprocessor) or", e)
|
||||
|
||||
'''TFT/240*240'''
|
||||
import st7789_cf
|
||||
onboard_tft = st7789_cf.ST7789(onboard_spi, 240, 240, dc_pin=45, reset=onboard_bot.tft_reset, backlight=onboard_bot.tft_brightness, font_address=0xF00000)
|
||||
|
||||
'''ACC-Sensor'''
|
||||
@@ -83,8 +82,6 @@ onboard_rgb = NeoPixel(onboard_bot.rgb_sync, 4)
|
||||
onboard_music = MIDI(46, pa_ctrl=onboard_bot.spk_en)
|
||||
|
||||
'''5KEY_Sensor'''
|
||||
|
||||
|
||||
class KEYSensor:
|
||||
def __init__(self, pin, range):
|
||||
self.pin = pin
|
||||
@@ -122,10 +119,7 @@ class KEYSensor:
|
||||
def irq(self, handler, trigger):
|
||||
Pin(self.pin, Pin.IN).irq(handler=handler, trigger=trigger)
|
||||
|
||||
|
||||
'''1KEY_Button'''
|
||||
|
||||
|
||||
class Button(KEYSensor):
|
||||
def __init__(self, pin):
|
||||
self.pin = pin
|
||||
@@ -135,7 +129,6 @@ class Button(KEYSensor):
|
||||
def _value(self):
|
||||
return not self.key.value()
|
||||
|
||||
|
||||
B1key = Button(0)
|
||||
B2key = KEYSensor(17, 0)
|
||||
A1key = KEYSensor(17, 1600)
|
||||
@@ -144,8 +137,6 @@ A3key = KEYSensor(17, 550)
|
||||
A4key = KEYSensor(17, 2100)
|
||||
|
||||
'''2-LED'''
|
||||
|
||||
|
||||
class LED:
|
||||
def __init__(self, func):
|
||||
self._func = func
|
||||
@@ -168,10 +159,8 @@ class LED:
|
||||
def getonoff(self, index):
|
||||
return True if self.getbrightness(index) > 50 else False
|
||||
|
||||
|
||||
onboard_led = LED(onboard_bot.led_pwm)
|
||||
|
||||
|
||||
class Voice_Energy:
|
||||
def read(self, samples=10):
|
||||
values = []
|
||||
@@ -180,10 +169,8 @@ class Voice_Energy:
|
||||
0x08, 3)[:2], 'little')) # 在语音识别里获取
|
||||
return sorted(values)[samples // 2]
|
||||
|
||||
|
||||
onboard_sound = Voice_Energy()
|
||||
|
||||
|
||||
class Clock:
|
||||
def __init__(self, x, y, radius, color, oled=onboard_tft): # 定义时钟中心点和半径
|
||||
self.display = oled
|
||||
@@ -254,6 +241,5 @@ class Clock:
|
||||
def clear(self, color=0): # 清除
|
||||
self.display.ellipse(self.xc, self.yc, self.r, self.r, color, True)
|
||||
|
||||
|
||||
'''Reclaim memory'''
|
||||
gc.collect()
|
||||
|
||||
@@ -59,14 +59,12 @@ except Exception as e:
|
||||
print("Warning: Failed to communicate with MMC5603 (MGS) or", e)
|
||||
|
||||
'''TFT/240*240'''
|
||||
onboard_tft = st7789_bf.ST7789(onboard_spi, 240, 240, dc_pin=46, cs_pin=45, bl_pin=onboard_bot.tft_brightness, brightness=0, font_address=0x700000)
|
||||
onboard_tft = st7789_bf.ST7789(onboard_spi, 240, 240, dc_pin=46, cs_pin=45, bl_pin=onboard_bot.tft_brightness, brightness=0.6, font_address=0x700000)
|
||||
|
||||
'''2RGB_WS2812'''
|
||||
onboard_rgb = NeoPixel(Pin(40), 4)
|
||||
|
||||
'''5KEY_Sensor'''
|
||||
|
||||
|
||||
class KEYSensor:
|
||||
def __init__(self, pin, range):
|
||||
self.pin = pin
|
||||
@@ -103,10 +101,7 @@ class KEYSensor:
|
||||
def irq(self, handler, trigger):
|
||||
Pin(self.pin, Pin.IN).irq(handler=handler, trigger=trigger)
|
||||
|
||||
|
||||
'''1KEY_Button'''
|
||||
|
||||
|
||||
class Button(KEYSensor):
|
||||
def __init__(self, pin):
|
||||
self.pin = pin
|
||||
@@ -116,7 +111,6 @@ class Button(KEYSensor):
|
||||
def _value(self):
|
||||
return not self.key.value()
|
||||
|
||||
|
||||
B1key = Button(0)
|
||||
B2key = KEYSensor(17, 0)
|
||||
A1key = KEYSensor(17, 2300)
|
||||
@@ -125,8 +119,6 @@ A3key = KEYSensor(17, 800)
|
||||
A4key = KEYSensor(17, 2900)
|
||||
|
||||
'''2LED-Independent'''
|
||||
|
||||
|
||||
class LED:
|
||||
def __init__(self, pins=[]):
|
||||
self._pins = [PWM(Pin(pin), duty_u16=0) for pin in pins]
|
||||
@@ -153,10 +145,8 @@ class LED:
|
||||
def getonoff(self, index):
|
||||
return True if self.getbrightness(index) > 50 else False
|
||||
|
||||
|
||||
onboard_led = LED([38, 39])
|
||||
|
||||
|
||||
class Clock:
|
||||
def __init__(self, x, y, radius, color, oled=onboard_tft): # 定义时钟中心点和半径
|
||||
self.display = oled
|
||||
@@ -227,7 +217,5 @@ class Clock:
|
||||
def clear(self, color=0): # 清除
|
||||
self.display.ellipse(self.xc, self.yc, self.r, self.r, color, True)
|
||||
|
||||
|
||||
'''Reclaim memory'''
|
||||
gc.collect()
|
||||
onboard_tft.set_brightness(0.6)
|
||||
|
||||
31
boards/default/micropython_esp32s3/build/lib/sant_tts.py
Normal file
31
boards/default/micropython_esp32s3/build/lib/sant_tts.py
Normal file
@@ -0,0 +1,31 @@
|
||||
"""
|
||||
SANT-TTS
|
||||
|
||||
MicroPython library for the SANT-TTS(暂行)
|
||||
=======================================================
|
||||
@dahanzimin From the Mixly Team
|
||||
"""
|
||||
import gc
|
||||
from esp_tts import TTS
|
||||
from machine import Pin
|
||||
from pwm_audio import PWMAudio
|
||||
from mixgo_sant import onboard_bot
|
||||
|
||||
audio = PWMAudio(Pin(46))
|
||||
tts = TTS()
|
||||
|
||||
def play(text, speed=3):
|
||||
try:
|
||||
onboard_bot.spk_en(1, 100)
|
||||
if tts.parse_chinese(text):
|
||||
audio.start()
|
||||
while True:
|
||||
data = tts.stream_play(speed)
|
||||
if not data:
|
||||
break
|
||||
else:
|
||||
audio.write(data)
|
||||
finally:
|
||||
onboard_bot.spk_en(0)
|
||||
audio.stop()
|
||||
gc.collect()
|
||||
@@ -3,32 +3,11 @@ ST7789/FrameBuffer
|
||||
|
||||
MicroPython library for the ST7789(TFT-SPI)
|
||||
=======================================================
|
||||
#Preliminary composition 20240110
|
||||
|
||||
@dahanzimin From the Mixly Team
|
||||
"""
|
||||
import time
|
||||
import uframebuf
|
||||
from machine import Pin, PWM
|
||||
from micropython import const
|
||||
|
||||
_CMD_SWRESET = const(0x01)
|
||||
_CMD_SLPIN = const(0x10)
|
||||
_CMD_SLPOUT = const(0x11)
|
||||
_CMD_PTLON = const(0x12)
|
||||
_CMD_NORON = const(0x13)
|
||||
_CMD_INVOFF = const(0x20)
|
||||
_CMD_INVON = const(0x21)
|
||||
_CMD_DISPOFF = const(0x28)
|
||||
_CMD_DISPON = const(0x29)
|
||||
_CMD_CASET = const(0x2A)
|
||||
_CMD_RASET = const(0x2B)
|
||||
_CMD_RAMWR = const(0x2C)
|
||||
_CMD_RAMRD = const(0x2E)
|
||||
_CMD_PTLAR = const(0x30)
|
||||
_CMD_VSCRDEF = const(0x33)
|
||||
_CMD_COLMOD = const(0x3A)
|
||||
_CMD_MADCTL = const(0x36)
|
||||
|
||||
class ST7789(uframebuf.FrameBuffer_Uincode):
|
||||
def __init__(self, spi, width, height, dc_pin=None, cs_pin=None, bl_pin=None, brightness=0.6, font_address=0x700000):
|
||||
@@ -39,15 +18,10 @@ class ST7789(uframebuf.FrameBuffer_Uincode):
|
||||
super().__init__(self._buffer, width, height, uframebuf.RGB565)
|
||||
self.font(font_address)
|
||||
self._init()
|
||||
self.show()
|
||||
if brightness > 0:
|
||||
time.sleep_ms(100)
|
||||
# self.show()
|
||||
self.bl_led = bl_pin if callable(bl_pin) else PWM(Pin(bl_pin))
|
||||
self._oneclight = True
|
||||
self._brightness = brightness
|
||||
if callable(bl_pin):
|
||||
self.bl_led = bl_pin
|
||||
else:
|
||||
self.bl_led = PWM(Pin(bl_pin), duty_u16=int(
|
||||
self._brightness * 60000)) if bl_pin else None
|
||||
|
||||
def _write(self, cmd, dat=None):
|
||||
self.cs.off()
|
||||
@@ -63,26 +37,24 @@ class ST7789(uframebuf.FrameBuffer_Uincode):
|
||||
def _init(self):
|
||||
"""Display initialization configuration"""
|
||||
for cmd, data, delay in [
|
||||
# (_CMD_SWRESET, None, 20000),
|
||||
(_CMD_SLPOUT, None, 120000),
|
||||
(_CMD_MADCTL, b'\x00', 50),
|
||||
(_CMD_COLMOD, b'\x05', 50),
|
||||
(0xB2, b'\x0c\x0c\x00\x33\x33', 10),
|
||||
(0xB7, b'\x35', 10),
|
||||
(0xBB, b'\x19', 10),
|
||||
(0x11, None, 120000),
|
||||
(0x36, b'\x00', 10),
|
||||
(0x3A, b'\x05', 10),
|
||||
(0xB2, b'\x1F\x1F\x00\x33\x33', 10),
|
||||
(0xB7, b'\x00', 10),
|
||||
(0xBB, b'\x3F', 10),
|
||||
(0xC0, b'\x2C', 10),
|
||||
(0xC2, b'\x01', 10),
|
||||
(0xC3, b'\x12', 10),
|
||||
(0xC3, b'\x0F', 10),
|
||||
(0xC4, b'\x20', 10),
|
||||
(0xC6, b'\x0F', 10),
|
||||
(0xC6, b'\x13', 10),
|
||||
(0xD0, b'\xA4\xA1', 10),
|
||||
(0xE0, b'\xD0\x04\x0D\x11\x13\x2B\x3F\x54\x4C\x18\x0D\x0B\x1F\x23', 10),
|
||||
(0xE1, b'\xD0\x04\x0C\x11\x13\x2C\x3F\x44\x51\x2F\x1F\x1F\x20\x23', 10),
|
||||
(0xD6, b'\xA1', 10),
|
||||
(0xE0, b'\xF0\x06\x0D\x0B\x0A\x07\x2E\x43\x45\x38\x14\x13\x25\x29', 10),
|
||||
(0xE1, b'\xF0\x07\x0A\x08\x07\x23\x2E\x33\x44\x3A\x16\x17\x26\x2C', 10),
|
||||
(0xE4, b'\x1D\x00\x00', 10),
|
||||
(0x21, None, 10),
|
||||
(0x29, None, 10),
|
||||
# (_CMD_INVOFF, None, 10),
|
||||
# (_CMD_NORON, None, 10),
|
||||
# (_CMD_DISPON, None, 200),
|
||||
]:
|
||||
self._write(cmd, data)
|
||||
if delay:
|
||||
@@ -112,7 +84,7 @@ class ST7789(uframebuf.FrameBuffer_Uincode):
|
||||
if callable(self.bl_led):
|
||||
self.bl_led(brightness * 100)
|
||||
elif isinstance(self.bl_led, PWM):
|
||||
self.bl_led.duty_u16(int(brightness*60000))
|
||||
self.bl_led.duty_u16(int(brightness * 60000))
|
||||
|
||||
def color(self, red, green=None, blue=None):
|
||||
""" Convert red, green and blue values (0-255) into a 16-bit 565 encoding."""
|
||||
@@ -123,6 +95,9 @@ class ST7789(uframebuf.FrameBuffer_Uincode):
|
||||
|
||||
def show(self):
|
||||
"""Refresh the display and show the changes."""
|
||||
self._write(_CMD_CASET, b'\x00\x00\x01\x3f')
|
||||
self._write(_CMD_RASET, b'\x00\x00\x00\xef')
|
||||
self._write(_CMD_RAMWR, self._buffer)
|
||||
if self._oneclight:
|
||||
self.set_brightness(self._brightness)
|
||||
self._oneclight = False
|
||||
self._write(0x2A, b'\x00\x00\x00\xef')
|
||||
self._write(0x2B, b'\x00\x00\x00\xef')
|
||||
self._write(0x2C, self._buffer)
|
||||
|
||||
@@ -8,26 +8,7 @@ MicroPython library for the ST7789(TFT-SPI)
|
||||
import time
|
||||
import uframebuf
|
||||
from machine import Pin
|
||||
from jpeg import Decoder
|
||||
from micropython import const
|
||||
|
||||
_CMD_SWRESET = const(0x01)
|
||||
_CMD_SLPIN = const(0x10)
|
||||
_CMD_SLPOUT = const(0x11)
|
||||
_CMD_PTLON = const(0x12)
|
||||
_CMD_NORON = const(0x13)
|
||||
_CMD_INVOFF = const(0x20)
|
||||
_CMD_INVON = const(0x21)
|
||||
_CMD_DISPOFF = const(0x28)
|
||||
_CMD_DISPON = const(0x29)
|
||||
_CMD_CASET = const(0x2A)
|
||||
_CMD_RASET = const(0x2B)
|
||||
_CMD_RAMWR = const(0x2C)
|
||||
_CMD_RAMRD = const(0x2E)
|
||||
_CMD_PTLAR = const(0x30)
|
||||
_CMD_VSCRDEF = const(0x33)
|
||||
_CMD_COLMOD = const(0x3A)
|
||||
_CMD_MADCTL = const(0x36)
|
||||
from camera import Image, IMG
|
||||
|
||||
class ST7789(uframebuf.FrameBuffer_Uincode):
|
||||
def __init__(self, spi, width, height, dc_pin=None, backlight=None, reset=None, font_address=0x700000):
|
||||
@@ -35,25 +16,25 @@ class ST7789(uframebuf.FrameBuffer_Uincode):
|
||||
self.dc = Pin(dc_pin, Pin.OUT, value=1)
|
||||
self._buffer = bytearray(width * height * 2)
|
||||
super().__init__(self._buffer, width, height, uframebuf.RGB565)
|
||||
reset(1, 100)
|
||||
if reset: reset(1, 100)
|
||||
self.font(font_address)
|
||||
self._init()
|
||||
# self.show()
|
||||
self._oneclight = True
|
||||
self._backlight = backlight
|
||||
|
||||
def display(self, data=None, rotation=0, sync=True):
|
||||
def display(self, data=None, x=None, y=None, scale_width=None, scale_height=None, rotation=0, sync=True):
|
||||
if type(data) is str:
|
||||
with open(data, "rb") as f:
|
||||
_jpeg = f.read()
|
||||
_decoder = Decoder(pixel_format="RGB565_BE", rotation=rotation)
|
||||
self._buffer[:] = _decoder.decode(_jpeg)
|
||||
del _decoder
|
||||
data = Image.open(data, scale_width, scale_height, self.width, self.height, rotation=rotation)
|
||||
if sync: self.fill(0x0, sync=False)
|
||||
self.blit_rgb565(data.image, data.width, data.height, x, y)
|
||||
if sync: self.show()
|
||||
|
||||
def screenshot(self, x=0, y=0, w=None, h=None):
|
||||
if (w is None and h is None):
|
||||
return IMG(memoryview(self._buffer), self.width, self.height)
|
||||
else:
|
||||
self._buffer[:] = data # 后期做图像大小处理
|
||||
if sync:
|
||||
self.show()
|
||||
return self._buffer
|
||||
return IMG(memoryview(self.crop_rgb565(x,y,w,h)), w, h)
|
||||
|
||||
def _write(self, cmd, dat=None):
|
||||
self.dc.off()
|
||||
@@ -65,23 +46,24 @@ class ST7789(uframebuf.FrameBuffer_Uincode):
|
||||
def _init(self):
|
||||
"""Display initialization configuration"""
|
||||
for cmd, data, delay in [
|
||||
# (_CMD_SWRESET, None, 20000),
|
||||
(_CMD_SLPOUT, None, 120000),
|
||||
(_CMD_MADCTL, b'\x00', 50),
|
||||
(_CMD_COLMOD, b'\x05', 50),
|
||||
(0xB2, b'\x0c\x0c\x00\x33\x33', 10),
|
||||
(0xB7, b'\x35', 10),
|
||||
(0xBB, b'\x19', 10),
|
||||
(0x11, None, 120000),
|
||||
(0x36, b'\x00', 50),
|
||||
(0x3A, b'\x05', 50),
|
||||
(0xB2, b'\x1F\x1F\x00\x33\x33', 10),
|
||||
(0xB7, b'\x00', 10),
|
||||
(0xBB, b'\x36', 10),
|
||||
(0xC0, b'\x2C', 10),
|
||||
(0xC2, b'\x01', 10),
|
||||
(0xC3, b'\x12', 10),
|
||||
(0xC3, b'\x13', 10),
|
||||
(0xC4, b'\x20', 10),
|
||||
(0xC6, b'\x0F', 10),
|
||||
(0xC6, b'\x13', 10),
|
||||
(0xD0, b'\xA4\xA1', 10),
|
||||
(0xE0, b'\xD0\x04\x0D\x11\x13\x2B\x3F\x54\x4C\x18\x0D\x0B\x1F\x23', 10),
|
||||
(0xE1, b'\xD0\x04\x0C\x11\x13\x2C\x3F\x44\x51\x2F\x1F\x1F\x20\x23', 10),
|
||||
(_CMD_INVON, None, 10),
|
||||
(_CMD_DISPON, None, 10),
|
||||
(0xD6, b'\xA1', 10),
|
||||
(0xE0, b'\xF0\x08\x0E\x09\x08\x04\x2F\x33\x45\x36\x13\x12\x2A\x2D', 10),
|
||||
(0xE1, b'\xF0\x0E\x12\x0C\x0A\x15\x2E\x32\x44\x39\x17\x18\x2B\x2F', 10),
|
||||
(0xE4, b'\x1D\x00\x00', 10),
|
||||
(0x21, None, 10),
|
||||
(0x29, None, 10),
|
||||
]:
|
||||
self._write(cmd, data)
|
||||
if delay:
|
||||
@@ -108,6 +90,6 @@ class ST7789(uframebuf.FrameBuffer_Uincode):
|
||||
if self._oneclight:
|
||||
self.set_brightness(0.6)
|
||||
self._oneclight = False
|
||||
self._write(_CMD_CASET, b'\x00\x00\x00\xef')
|
||||
self._write(_CMD_RASET, b'\x00\x00\x00\xef')
|
||||
self._write(_CMD_RAMWR, self._buffer)
|
||||
self._write(0x2A, b'\x00\x00\x00\xef')
|
||||
self._write(0x2B, b'\x00\x00\x00\xef')
|
||||
self._write(0x2C, self._buffer)
|
||||
|
||||
@@ -118,7 +118,7 @@
|
||||
"type": "command",
|
||||
"portSelect": "all",
|
||||
"micropython:esp32s3:mixgo_sant": {
|
||||
"command": "\"{esptool}\" --chip esp32s3 --port {com} --baud {baudrate} --after hard_reset write_flash -e 0x0 \"{indexPath}/build/Mixgo_Sant_lib-v1.13.0.bin\" 0xE00000 \"{indexPath}/../micropython/build/HZK16_GBK.bin\""
|
||||
"command": "\"{esptool}\" --chip esp32s3 --port {com} --baud {baudrate} --after hard_reset write_flash -e 0x0 \"{indexPath}/build/Mixgo_Sant_lib_DL-v1.25.0.bin\" 0xF00000 \"{indexPath}/../micropython/build/HZK16_GBK.bin\" 0xC00000 \"{indexPath}/../micropython/build/esp_tts_voice_data_xiaole.dat\""
|
||||
},
|
||||
"micropython:esp32s3:mixgo_nova": {
|
||||
"command": "\"{esptool}\" --chip esp32s3 --port {com} --baud {baudrate} --after hard_reset write_flash -e 0x0 \"{indexPath}/build/Mixgo_Nova_lib-v1.21.0.bin\" 0x700000 \"{indexPath}/../micropython/build/HZK12.bin\""
|
||||
@@ -182,10 +182,13 @@
|
||||
"binFile": [
|
||||
{
|
||||
"offset": "0x0000",
|
||||
"path": "./build/Mixgo_Sant_lib-v1.13.0.bin"
|
||||
"path": "./build/Mixgo_Sant_lib_DL-v1.25.0.bin"
|
||||
}, {
|
||||
"offset": "0xE00000",
|
||||
"offset": "0xF00000",
|
||||
"path": "../micropython/build/HZK16_GBK.bin"
|
||||
}, {
|
||||
"offset": "0xC00000",
|
||||
"path": "../micropython/build/esp_tts_voice_data_xiaole.dat"
|
||||
}
|
||||
]
|
||||
},
|
||||
|
||||
@@ -0,0 +1 @@
|
||||
<xml version="Mixly 3.0 rc0" board="Python ESP32-S3@元控自强" shown="block"><block type="display_scroll_string" id="BTkq(VwNpygemX+r[/:V" x="-1486" y="-273"><value name="data"><shadow type="text" id="bW6FuKB-drFf891|?g2/"><field name="TEXT">你好,米思齐!</field></shadow></value><next><block type="display_show_image" id="N0r]6|Cm|+z^81!8BjL4"><value name="data"><shadow type="pins_builtinimg" id="zv@Hf1z=O#P`1Zlh5S(`"><field name="PIN">expression_picture.Heart</field></shadow></value><value name="boolean"><shadow type="logic_boolean" id="h:=pBe(,2MU5`lLn}+-C"><field name="BOOL">TRUE</field></shadow></value></block></next></block></xml><config>{}</config><code>ZnJvbSBtaXhnb19zYW50IGltcG9ydCBvbmJvYXJkX3RmdApmcm9tIGV4cHJlc3Npb25fcGljdHVyZSBpbXBvcnQgSGVhcnQKCm9uYm9hcmRfdGZ0LnNjcm9sbCgn5L2g5aW977yM57Gz5oCd6b2Q77yBJywgY29sb3I9MHhmZmZmKQpvbmJvYXJkX3RmdC5pbWFnZShIZWFydCwgY29sb3I9MHhmZmZmLHN5bmM9VHJ1ZSkK</code>
|
||||
@@ -0,0 +1 @@
|
||||
<xml version="Mixly 3.0 rc0" board="Python ESP32-S3@元控自强" shown="block"><block type="controls_whileUntil" id="58?7C{E-wg0r9V}.*KRW" x="-739" y="234"><field name="MODE">WHILE</field><value name="BOOL"><shadow type="logic_boolean" id="7;QrIaESP*m]uK6yI0e:"><field name="BOOL">TRUE</field></shadow></value><statement name="DO"><block type="display_show_image" id="tn`qU9AT=x4K@*YgpJ_I"><value name="data"><shadow type="pins_builtinimg" id="8]E#7{RwNl6h0JzIa(+,"><field name="PIN">expression_picture.Heart</field></shadow></value><value name="boolean"><shadow type="logic_boolean" id="!(Kw-NWU{Yaon[bD_NAe"><field name="BOOL">TRUE</field></shadow></value><next><block type="controls_delay_new" id="oPP;{2rGY*+yC}G}xHCW"><field name="Time">s</field><value name="DELAY_TIME"><shadow type="math_number" id=",X.,Ly}Cs8ENmVwh}4_f"><field name="NUM">1</field></shadow></value><next><block type="display_show_image" id="vu|oRFl-K^(U|0^LXVQL"><value name="data"><shadow type="pins_builtinimg" id="km,1l.]8|l*AWm#ZQ{=E"><field name="PIN">expression_picture.Small_heart</field></shadow></value><value name="boolean"><shadow type="logic_boolean" id="6uRI,5!OH[~BHQQI?:Wb"><field name="BOOL">TRUE</field></shadow></value><next><block type="controls_delay_new" id="bhzNI@M*Ae72eBPJ.Wny"><field name="Time">s</field><value name="DELAY_TIME"><shadow type="math_number" id="(n`XS*HE5Zc=kAy8vj=t"><field name="NUM">1</field></shadow></value></block></next></block></next></block></next></block></statement></block></xml><config>{}</config><code>ZnJvbSBleHByZXNzaW9uX3BpY3R1cmUgaW1wb3J0IEhlYXJ0CmZyb20gbWl4Z29fc2FudCBpbXBvcnQgb25ib2FyZF90ZnQKaW1wb3J0IHRpbWUKZnJvbSBleHByZXNzaW9uX3BpY3R1cmUgaW1wb3J0IFNtYWxsX2hlYXJ0Cgp3aGlsZSBUcnVlOgogICAgb25ib2FyZF90ZnQuaW1hZ2UoSGVhcnQsIGNvbG9yPTB4ZmZmZixzeW5jPVRydWUpCiAgICB0aW1lLnNsZWVwKDEpCiAgICBvbmJvYXJkX3RmdC5pbWFnZShTbWFsbF9oZWFydCwgY29sb3I9MHhmZmZmLHN5bmM9VHJ1ZSkKICAgIHRpbWUuc2xlZXAoMSkK</code>
|
||||
@@ -0,0 +1 @@
|
||||
<xml version="Mixly 3.0 rc0" board="Python ESP32-S3@元控自强" shown="block"><block type="display_scroll_string" id="=n02_~6FP6$sbwLqr;!#" x="-883" y="151"><value name="data"><shadow type="text" id="EWyVV9W(1Kq$$3#seQv!"><field name="TEXT">我爱米思齐!</field></shadow></value><next><block type="controls_whileUntil" id="C`3wA^Yn}fhzv5Uy9!8,"><field name="MODE">WHILE</field><value name="BOOL"><shadow type="logic_boolean" id="~-y_-Bz6;fVQpM0KkWbA"><field name="BOOL">TRUE</field></shadow></value><statement name="DO"><block type="display_show_image" id="$NH.f!`vx:63VLM=4cR~"><value name="data"><shadow type="pins_builtinimg" id="98#BR(A0`eH;f4[dsZDw"><field name="PIN">expression_picture.Heart</field></shadow></value><value name="boolean"><shadow type="logic_boolean" id="k^FV/1fh{iAvEC(*ZbBd"><field name="BOOL">TRUE</field></shadow></value><next><block type="controls_delay_new" id="3bw8yq-?R~g#S?tpG0L["><field name="Time">s</field><value name="DELAY_TIME"><shadow type="math_number" id="iR[Yn2}@Oc5+)q6K8NW-"><field name="NUM">1</field></shadow></value><next><block type="display_show_image" id="H*fD5-AV{d*B+NId((~D"><value name="data"><shadow type="pins_builtinimg" id="szErV#v:9x}Wy]{t!U:q"><field name="PIN">expression_picture.Small_heart</field></shadow></value><value name="boolean"><shadow type="logic_boolean" id="3h9jdk2oKj2(Qq}$Bq*@"><field name="BOOL">TRUE</field></shadow></value><next><block type="controls_delay_new" id=":#M]SAMTqb_:,@*PGMSA"><field name="Time">s</field><value name="DELAY_TIME"><shadow type="math_number" id="k)v7l7(uyPKav:=s.3SO"><field name="NUM">1</field></shadow></value></block></next></block></next></block></next></block></statement></block></next></block></xml><config>{}</config><code>ZnJvbSBtaXhnb19zYW50IGltcG9ydCBvbmJvYXJkX3RmdApmcm9tIGV4cHJlc3Npb25fcGljdHVyZSBpbXBvcnQgSGVhcnQKaW1wb3J0IHRpbWUKZnJvbSBleHByZXNzaW9uX3BpY3R1cmUgaW1wb3J0IFNtYWxsX2hlYXJ0CgpvbmJvYXJkX3RmdC5zY3JvbGwoJ+aIkeeIseexs+aAnem9kO+8gScsIGNvbG9yPTB4ZmZmZikKd2hpbGUgVHJ1ZToKICAgIG9uYm9hcmRfdGZ0LmltYWdlKEhlYXJ0LCBjb2xvcj0weGZmZmYsc3luYz1UcnVlKQogICAgdGltZS5zbGVlcCgxKQogICAgb25ib2FyZF90ZnQuaW1hZ2UoU21hbGxfaGVhcnQsIGNvbG9yPTB4ZmZmZixzeW5jPVRydWUpCiAgICB0aW1lLnNsZWVwKDEpCg==</code>
|
||||
@@ -0,0 +1 @@
|
||||
<xml version="Mixly 3.0 rc0" board="Python ESP32-S3@元控自强" shown="block"><block type="controls_whileUntil" id="~4:*.4luJjFSH0^Z*|qO" x="-752" y="165"><field name="MODE">WHILE</field><value name="BOOL"><shadow type="logic_boolean" id="2oT.`,Ur:Hc(v`JBiMGm"><field name="BOOL">TRUE</field></shadow></value><statement name="DO"><block type="controls_if" id="-S/0Sg,kv[yvR(7}mg48"><value name="IF0"><block type="sensor_mixgo_button_is_pressed" id="P@T4?Ds:cHm|nI-mC:2+"><value name="btn"><shadow type="pins_button" id="L#/Z+j-nC6?^6o?MH=}~"><field name="PIN">B1key</field></shadow></value></block></value><statement name="DO0"><block type="display_show_image" id="p.fttCZ|0(f?B=:?Syp("><value name="data"><shadow type="pins_builtinimg" id="$NgX2kG5W@t[mLz?0RZ2"><field name="PIN">expression_picture.Heart</field></shadow></value><value name="boolean"><shadow type="logic_boolean" id="Hw-]x`yop5BmneNo-v;)"><field name="BOOL">TRUE</field></shadow></value><next><block type="controls_delay_new" id="9`woDWGiQ-Qc(F{Kkc,N"><field name="Time">s</field><value name="DELAY_TIME"><shadow type="math_number" id="cBt},TL_kh8TT|7g4RGq"><field name="NUM">0.1</field></shadow></value><next><block type="display_show_image" id="*`ej/$BDPF*Z*x^h]{Xf"><value name="data"><shadow type="pins_builtinimg" id="QCbgh8d;W)dZ(^|DX*]?"><field name="PIN">expression_picture.Small_heart</field></shadow></value><value name="boolean"><shadow type="logic_boolean" id="l9Bp=i)s=RM:PjTks9jJ"><field name="BOOL">TRUE</field></shadow></value><next><block type="controls_delay_new" id="`*py0U_~8Mf.,3MnAcl-"><field name="Time">s</field><value name="DELAY_TIME"><shadow type="math_number" id="icYi]OX9=KBsCu*`?`lC"><field name="NUM">0.1</field></shadow></value></block></next></block></next></block></next></block></statement></block></statement></block></xml><config>{}</config><code>aW1wb3J0IG1peGdvX3NhbnQKZnJvbSBleHByZXNzaW9uX3BpY3R1cmUgaW1wb3J0IEhlYXJ0CmZyb20gbWl4Z29fc2FudCBpbXBvcnQgb25ib2FyZF90ZnQKaW1wb3J0IHRpbWUKZnJvbSBleHByZXNzaW9uX3BpY3R1cmUgaW1wb3J0IFNtYWxsX2hlYXJ0Cgp3aGlsZSBUcnVlOgogICAgaWYgbWl4Z29fc2FudC5CMWtleS5pc19wcmVzc2VkKCk6CiAgICAgICAgb25ib2FyZF90ZnQuaW1hZ2UoSGVhcnQsIGNvbG9yPTB4ZmZmZixzeW5jPVRydWUpCiAgICAgICAgdGltZS5zbGVlcCgwLjEpCiAgICAgICAgb25ib2FyZF90ZnQuaW1hZ2UoU21hbGxfaGVhcnQsIGNvbG9yPTB4ZmZmZixzeW5jPVRydWUpCiAgICAgICAgdGltZS5zbGVlcCgwLjEpCg==</code>
|
||||
@@ -0,0 +1 @@
|
||||
<xml version="Mixly 3.0 rc0" board="Python ESP32-S3@元控自强" shown="block"><block type="controls_whileUntil" id="+HhR=F)eQSwr@-1tEr[#" x="-651" y="184"><field name="MODE">WHILE</field><value name="BOOL"><shadow type="logic_boolean" id="Zr{N)R^bo6tku!7S8{Uc"><field name="BOOL">TRUE</field></shadow></value><statement name="DO"><block type="controls_if" id="ao-Lv{Isz_/[Sk^88v+Z"><value name="IF0"><block type="sensor_mixgo_button_is_pressed" id="YvW;u)pVxqxe#Mn,@yUE"><value name="btn"><shadow type="pins_button" id="vdApB,N;Ww?hOQq]Dt?u"><field name="PIN">B1key</field></shadow></value></block></value><statement name="DO0"><block type="display_show_image" id="n?)*:Xl0$)V#jO:i4.(v"><value name="data"><shadow type="pins_builtinimg" id="#SGHgeJc5!!1VskZ_]{*"><field name="PIN">expression_picture.Heart</field></shadow></value><value name="boolean"><shadow type="logic_boolean" id="R$O[B2.v#(PNht$j]n=("><field name="BOOL">TRUE</field></shadow></value><next><block type="controls_delay_new" id="(GboVNdJxXAm~SiZem6u"><field name="Time">s</field><value name="DELAY_TIME"><shadow type="math_number" id="K2.q/n+h.u}K;4v+8v_y"><field name="NUM">0.1</field></shadow></value><next><block type="display_show_image" id="^-h1M8}uH8l4F{V!KoQN"><value name="data"><shadow type="pins_builtinimg" id="5LuM9+=4-I:K9^ws$2.l"><field name="PIN">expression_picture.Small_heart</field></shadow></value><value name="boolean"><shadow type="logic_boolean" id="$B@2~Z)S{[W1d8Dn^E~Q"><field name="BOOL">TRUE</field></shadow></value><next><block type="controls_delay_new" id="UN#`fS+R/52O48C7xNSY"><field name="Time">s</field><value name="DELAY_TIME"><shadow type="math_number" id="jwAkN(GESwerM88mRes["><field name="NUM">0.1</field></shadow></value></block></next></block></next></block></next></block></statement><next><block type="controls_if" id=";037IbPza;@PCAvQVw}G"><value name="IF0"><block type="sensor_mixgo_button_is_pressed" id="MQ.a0{_{nq{YZ)60cu3J"><value name="btn"><shadow type="pins_button" id="PoVW6d*}{^c8:r)ZzfEl"><field name="PIN">B2key</field></shadow></value></block></value><statement name="DO0"><block type="display_show_image" id="8Lq9)no#uW,OUgiCPw9u"><value name="data"><shadow type="pins_builtinimg" id="@WRo9k**^:0qKD$u,ct2"><field name="PIN">expression_picture.Heart</field></shadow></value><value name="boolean"><shadow type="logic_boolean" id="VqH?({|j[@RlPT}$h~eZ"><field name="BOOL">TRUE</field></shadow></value><next><block type="controls_delay_new" id=";=IlhYJ)6YQ;I6wNWmj|"><field name="Time">s</field><value name="DELAY_TIME"><shadow type="math_number" id=":p1rAOld#Roz.f~Q^0f`"><field name="NUM">0.5</field></shadow></value><next><block type="display_show_image" id="du4f4$a2?~pPReC4Nl)g"><value name="data"><shadow type="pins_builtinimg" id=";O=jC8f^6+e.p$/(fhr2"><field name="PIN">expression_picture.Small_heart</field></shadow></value><value name="boolean"><shadow type="logic_boolean" id="pT/HYCLvOwpkn@Z;2d,z"><field name="BOOL">TRUE</field></shadow></value><next><block type="controls_delay_new" id="I~l9}#2g+h#[QIsAK[J."><field name="Time">s</field><value name="DELAY_TIME"><shadow type="math_number" id="f!W|U@TMc)?OS|Q)#Ocl"><field name="NUM">0.5</field></shadow></value></block></next></block></next></block></next></block></statement></block></next></block></statement></block></xml><config>{}</config><code>aW1wb3J0IG1peGdvX3NhbnQKZnJvbSBleHByZXNzaW9uX3BpY3R1cmUgaW1wb3J0IEhlYXJ0CmZyb20gbWl4Z29fc2FudCBpbXBvcnQgb25ib2FyZF90ZnQKaW1wb3J0IHRpbWUKZnJvbSBleHByZXNzaW9uX3BpY3R1cmUgaW1wb3J0IFNtYWxsX2hlYXJ0Cgp3aGlsZSBUcnVlOgogICAgaWYgbWl4Z29fc2FudC5CMWtleS5pc19wcmVzc2VkKCk6CiAgICAgICAgb25ib2FyZF90ZnQuaW1hZ2UoSGVhcnQsIGNvbG9yPTB4ZmZmZixzeW5jPVRydWUpCiAgICAgICAgdGltZS5zbGVlcCgwLjEpCiAgICAgICAgb25ib2FyZF90ZnQuaW1hZ2UoU21hbGxfaGVhcnQsIGNvbG9yPTB4ZmZmZixzeW5jPVRydWUpCiAgICAgICAgdGltZS5zbGVlcCgwLjEpCiAgICBpZiBtaXhnb19zYW50LkIya2V5LmlzX3ByZXNzZWQoKToKICAgICAgICBvbmJvYXJkX3RmdC5pbWFnZShIZWFydCwgY29sb3I9MHhmZmZmLHN5bmM9VHJ1ZSkKICAgICAgICB0aW1lLnNsZWVwKDAuNSkKICAgICAgICBvbmJvYXJkX3RmdC5pbWFnZShTbWFsbF9oZWFydCwgY29sb3I9MHhmZmZmLHN5bmM9VHJ1ZSkKICAgICAgICB0aW1lLnNsZWVwKDAuNSkK</code>
|
||||
@@ -0,0 +1 @@
|
||||
<xml version="Mixly 3.0 rc0" board="Python ESP32-S3@元控自强" shown="block"><block type="controls_whileUntil" id="TL[9o,hvI)k_h2,^F[;y" x="-773" y="183"><field name="MODE">WHILE</field><value name="BOOL"><shadow type="logic_boolean" id="tJksA`CPxImTQwhH!LGS"><field name="BOOL">TRUE</field></shadow></value><statement name="DO"><block type="controls_if" id="H,y!SN[o@8U=8349,;Z2"><value name="IF0"><block type="sensor_mixgo_button_was_pressed" id="[Q4*4;Plmu2mu=7:@#C/"><value name="btn"><shadow type="pins_button" id="YqKvWCz8::O/,]fu+eXt"><field name="PIN">B1key</field></shadow></value></block></value><statement name="DO0"><block type="controls_whileUntil" id="6Y]qs6$`9YT,CCO/t]=8"><field name="MODE">WHILE</field><value name="BOOL"><shadow type="logic_boolean" id="E5LyJ*JhvRSL`ZaXekNM"><field name="BOOL">TRUE</field></shadow></value><statement name="DO"><block type="display_show_image" id="FTBN6WNvW?Bt6xXE(q~r"><value name="data"><shadow type="pins_builtinimg" id="vWbqC,kwe3_de{V|6-Bc"><field name="PIN">expression_picture.Heart</field></shadow></value><value name="boolean"><shadow type="logic_boolean" id="#N;0{*^v@ras!C`4/h{n"><field name="BOOL">TRUE</field></shadow></value><next><block type="controls_delay_new" id="}?U$FK!_}v?WFtEv=;1y"><field name="Time">s</field><value name="DELAY_TIME"><shadow type="math_number" id="Q)R`SW^_DG|wXIWuGK^#"><field name="NUM">0.1</field></shadow></value><next><block type="display_show_image" id="3@.|nIgZ6{8a,M9m}#uY"><value name="data"><shadow type="pins_builtinimg" id="wmUZoP$U;b,!W[?#67*D"><field name="PIN">expression_picture.Small_heart</field></shadow></value><value name="boolean"><shadow type="logic_boolean" id="s}QVt.9]gYPbGTT$Gbb|"><field name="BOOL">TRUE</field></shadow></value><next><block type="controls_delay_new" id="O]i|O7@#Y:VP-]lB.d1i"><field name="Time">s</field><value name="DELAY_TIME"><shadow type="math_number" id="MR7ysTv3}Y/:sio(p$^k"><field name="NUM">0.1</field></shadow></value></block></next></block></next></block></next></block></statement></block></statement></block></statement></block></xml><config>{}</config><code>aW1wb3J0IG1peGdvX3NhbnQKZnJvbSBleHByZXNzaW9uX3BpY3R1cmUgaW1wb3J0IEhlYXJ0CmZyb20gbWl4Z29fc2FudCBpbXBvcnQgb25ib2FyZF90ZnQKaW1wb3J0IHRpbWUKZnJvbSBleHByZXNzaW9uX3BpY3R1cmUgaW1wb3J0IFNtYWxsX2hlYXJ0Cgp3aGlsZSBUcnVlOgogICAgaWYgbWl4Z29fc2FudC5CMWtleS53YXNfcHJlc3NlZCgpOgogICAgICAgIHdoaWxlIFRydWU6CiAgICAgICAgICAgIG9uYm9hcmRfdGZ0LmltYWdlKEhlYXJ0LCBjb2xvcj0weGZmZmYsc3luYz1UcnVlKQogICAgICAgICAgICB0aW1lLnNsZWVwKDAuMSkKICAgICAgICAgICAgb25ib2FyZF90ZnQuaW1hZ2UoU21hbGxfaGVhcnQsIGNvbG9yPTB4ZmZmZixzeW5jPVRydWUpCiAgICAgICAgICAgIHRpbWUuc2xlZXAoMC4xKQo=</code>
|
||||
@@ -0,0 +1 @@
|
||||
<xml version="Mixly 3.0 rc0" board="Python ESP32-S3@元控自强" shown="block"><block type="controls_whileUntil" id="8vL{B~kaVNBzj)0?M,Q/" x="-773" y="183"><field name="MODE">WHILE</field><value name="BOOL"><shadow type="logic_boolean" id="Y[B-qERJL`oy9cwX9:Vo"><field name="BOOL">TRUE</field></shadow></value><statement name="DO"><block type="controls_if" id="y1Lo|`Z_Ge*`{Q)o1v^m"><value name="IF0"><block type="sensor_mixgo_button_was_pressed" id="X+?8=^vWD?8l4c(6oAxo"><value name="btn"><shadow type="pins_button" id="^?!UZ`a|Oj~F{s;!QQmQ"><field name="PIN">B1key</field></shadow></value></block></value><statement name="DO0"><block type="controls_whileUntil" id="uYQ*{m|x|5qG4dZ(]#w#"><field name="MODE">WHILE</field><value name="BOOL"><shadow type="logic_boolean" id="vu,]38vQms?-AdwSP$T6"><field name="BOOL">TRUE</field></shadow></value><statement name="DO"><block type="display_show_image" id="ia;!pphxB5ZS-?zJlTgR"><value name="data"><shadow type="pins_builtinimg" id="LpRoLcVINhnp!H[XH6jf"><field name="PIN">expression_picture.Heart</field></shadow></value><value name="boolean"><shadow type="logic_boolean" id="~`t8{tM4`g-3#6kucyaR"><field name="BOOL">TRUE</field></shadow></value><next><block type="controls_delay_new" id="/VHU=5[(0Ur?T.yU2eI_"><field name="Time">s</field><value name="DELAY_TIME"><shadow type="math_number" id="!dg?=?|w9AIrQ?O#M|k("><field name="NUM">0.1</field></shadow></value><next><block type="display_show_image" id="me|x=a1bdt,v}c9oYN]]"><value name="data"><shadow type="pins_builtinimg" id="*s)~4D*01+#+Ue4AZiRK"><field name="PIN">expression_picture.Small_heart</field></shadow></value><value name="boolean"><shadow type="logic_boolean" id="yAp;=)L=yFw~zbeTR|yc"><field name="BOOL">TRUE</field></shadow></value><next><block type="controls_delay_new" id="1;Mn/:OWajXwkR,HN)SR"><field name="Time">s</field><value name="DELAY_TIME"><shadow type="math_number" id="Of=?YL,:.^W/qp==-I6`"><field name="NUM">0.1</field></shadow></value><next><block type="controls_if" id="i-HI~doagDEs/wyyP`V("><value name="IF0"><block type="sensor_mixgo_button_was_pressed" id="5lJV1@-G;iJ#/?[}6hqm"><value name="btn"><shadow type="pins_button" id="V,}i__$o~pz)i+s$xYSz"><field name="PIN">B1key</field></shadow></value></block></value><statement name="DO0"><block type="controls_flow_statements" id="gwTef.j7{A}f}c,#*Q@M"><field name="FLOW">BREAK</field></block></statement></block></next></block></next></block></next></block></next></block></statement></block></statement></block></statement></block></xml><config>{}</config><code>aW1wb3J0IG1peGdvX3NhbnQKZnJvbSBleHByZXNzaW9uX3BpY3R1cmUgaW1wb3J0IEhlYXJ0CmZyb20gbWl4Z29fc2FudCBpbXBvcnQgb25ib2FyZF90ZnQKaW1wb3J0IHRpbWUKZnJvbSBleHByZXNzaW9uX3BpY3R1cmUgaW1wb3J0IFNtYWxsX2hlYXJ0Cgp3aGlsZSBUcnVlOgogICAgaWYgbWl4Z29fc2FudC5CMWtleS53YXNfcHJlc3NlZCgpOgogICAgICAgIHdoaWxlIFRydWU6CiAgICAgICAgICAgIG9uYm9hcmRfdGZ0LmltYWdlKEhlYXJ0LCBjb2xvcj0weGZmZmYsc3luYz1UcnVlKQogICAgICAgICAgICB0aW1lLnNsZWVwKDAuMSkKICAgICAgICAgICAgb25ib2FyZF90ZnQuaW1hZ2UoU21hbGxfaGVhcnQsIGNvbG9yPTB4ZmZmZixzeW5jPVRydWUpCiAgICAgICAgICAgIHRpbWUuc2xlZXAoMC4xKQogICAgICAgICAgICBpZiBtaXhnb19zYW50LkIxa2V5Lndhc19wcmVzc2VkKCk6CiAgICAgICAgICAgICAgICBicmVhawo=</code>
|
||||
@@ -0,0 +1 @@
|
||||
<xml version="Mixly 3.0 rc0" board="Python ESP32-S3@元控自强" shown="block"><block type="variables_set" id="9;iJiS1X!7dY8;4]t`CX" x="-651" y="147"><field name="VAR">心跳</field><value name="VALUE"><block type="logic_boolean" id="dFJBKA+r67ekSD(RhyNL"><field name="BOOL">FALSE</field></block></value><next><block type="controls_whileUntil" id="V_Z.0zmM.I:(/CE#xsJt"><field name="MODE">WHILE</field><value name="BOOL"><shadow type="logic_boolean" id="*4NmVU/FY[(e#J(b3a[*"><field name="BOOL">TRUE</field></shadow></value><statement name="DO"><block type="controls_if" id="uu$/xn3_`M^|RR]FiT6Z"><value name="IF0"><block type="sensor_mixgo_button_was_pressed" id="v9st?dt_w|TFD|9AJ{.o"><value name="btn"><shadow type="pins_button" id="-$Gq_U|~+KxK`c_K/-gZ"><field name="PIN">B1key</field></shadow></value></block></value><statement name="DO0"><block type="variables_set" id="T|?r!j+H4J4ma[/maIO2"><field name="VAR">心跳</field><value name="VALUE"><block type="logic_boolean" id="EwG53r(KW7*eN/=+3y3z"><field name="BOOL">FALSE</field></block></value></block></statement><next><block type="controls_if" id="83(}xnB*#!./C[M,D9`p"><value name="IF0"><block type="sensor_mixgo_button_was_pressed" id="4K8`.iyb?kh0[])ixX.u"><value name="btn"><shadow type="pins_button" id="`eu#0Y3TwJmLum,P)xA@"><field name="PIN">B2key</field></shadow></value></block></value><statement name="DO0"><block type="variables_set" id="!uHEF-iQUx`;thn(6cF{"><field name="VAR">心跳</field><value name="VALUE"><block type="logic_boolean" id="pvJGrAe_TT}!v:D-f=1q"><field name="BOOL">TRUE</field></block></value></block></statement><next><block type="controls_if" id="=|:lC#C-Ft8YpkdH,fYR"><value name="IF0"><block type="variables_get" id="C`K`LZ4EKcV~}0C53qi`"><field name="VAR">心跳</field></block></value><statement name="DO0"><block type="display_show_image" id="dPcAJPI5^Gxzg;5=B6/*"><value name="data"><shadow type="pins_builtinimg" id="[+3|.dGrvE9n`daDsBT9"><field name="PIN">expression_picture.Heart</field></shadow></value><value name="boolean"><shadow type="logic_boolean" id="X4^x${o*|x_Ux6IU|,+y"><field name="BOOL">TRUE</field></shadow></value><next><block type="controls_delay_new" id="]yeA8SqhMy{iLs3+8*;b"><field name="Time">s</field><value name="DELAY_TIME"><shadow type="math_number" id="6j/WZh6FQ[O1e)t[CL5*"><field name="NUM">0.1</field></shadow></value><next><block type="display_show_image" id="qo{]Icu?CF]i{NMA~-+F"><value name="data"><shadow type="pins_builtinimg" id="kvBdUcCojvQks$dd^|1k"><field name="PIN">expression_picture.Small_heart</field></shadow></value><value name="boolean"><shadow type="logic_boolean" id="0jzxJNE}5`l-IN1?J~$/"><field name="BOOL">TRUE</field></shadow></value><next><block type="controls_delay_new" id="r+q=$BaaO[2wq{~XVp0Y"><field name="Time">s</field><value name="DELAY_TIME"><shadow type="math_number" id="0$JV@bNk}R-H/tKQq=Yg"><field name="NUM">0.1</field></shadow></value></block></next></block></next></block></next></block></statement></block></next></block></next></block></statement></block></next></block></xml><config>{}</config><code>aW1wb3J0IG1peGdvX3NhbnQKZnJvbSBleHByZXNzaW9uX3BpY3R1cmUgaW1wb3J0IEhlYXJ0CmZyb20gbWl4Z29fc2FudCBpbXBvcnQgb25ib2FyZF90ZnQKaW1wb3J0IHRpbWUKZnJvbSBleHByZXNzaW9uX3BpY3R1cmUgaW1wb3J0IFNtYWxsX2hlYXJ0Cgrlv4Pot7MgPSBGYWxzZQp3aGlsZSBUcnVlOgogICAgaWYgbWl4Z29fc2FudC5CMWtleS53YXNfcHJlc3NlZCgpOgogICAgICAgIOW/g+i3syA9IEZhbHNlCiAgICBpZiBtaXhnb19zYW50LkIya2V5Lndhc19wcmVzc2VkKCk6CiAgICAgICAg5b+D6LezID0gVHJ1ZQogICAgaWYg5b+D6LezOgogICAgICAgIG9uYm9hcmRfdGZ0LmltYWdlKEhlYXJ0LCBjb2xvcj0weGZmZmYsc3luYz1UcnVlKQogICAgICAgIHRpbWUuc2xlZXAoMC4xKQogICAgICAgIG9uYm9hcmRfdGZ0LmltYWdlKFNtYWxsX2hlYXJ0LCBjb2xvcj0weGZmZmYsc3luYz1UcnVlKQogICAgICAgIHRpbWUuc2xlZXAoMC4xKQo=</code>
|
||||
@@ -0,0 +1 @@
|
||||
<xml version="Mixly 3.0 rc0" board="Python ESP32-S3@元控自强" shown="block"><block type="variables_set" id="zZUAY*vw]UgPaDqMlzRP" x="-651" y="147"><field name="VAR">心跳</field><value name="VALUE"><block type="logic_boolean" id="cpO8F|VreS$R},/b#l1C"><field name="BOOL">FALSE</field></block></value><next><block type="controls_whileUntil" id="_.0NH?OBGe`,8JwcJvtt"><field name="MODE">WHILE</field><value name="BOOL"><shadow type="logic_boolean" id=":)B(Iq7}Sk,j/?#g]Zm3"><field name="BOOL">TRUE</field></shadow></value><statement name="DO"><block type="controls_if" id="PNYs$Z}FDjN-8UshJogL"><value name="IF0"><block type="sensor_mixgo_button_was_pressed" id="5lAe)eL*(M(HoCxH[)8|"><value name="btn"><shadow type="pins_button" id="lnXZgggr$Z/^MmU9#pXL"><field name="PIN">B1key</field></shadow></value></block></value><statement name="DO0"><block type="variables_set" id="*b38845[jj.,BElmR2;Y"><field name="VAR">心跳</field><value name="VALUE"><block type="logic_negate" id="ad(u^#WW_iWVP/!pCG7W"><value name="BOOL"><block type="variables_get" id="Ly8uKLMcKl*l`1`Du-w7"><field name="VAR">心跳</field></block></value></block></value></block></statement><next><block type="controls_if" id="iBFcvmc2`.?56^z0Rgq#"><value name="IF0"><block type="variables_get" id="`4^Y_;n?KzT2x,Wl@Y:)"><field name="VAR">心跳</field></block></value><statement name="DO0"><block type="display_show_image" id="#HoCkG;}lL2^csXP-Vb|"><value name="data"><shadow type="pins_builtinimg" id="!T+x(*-r(oVDzLUQgpl~"><field name="PIN">expression_picture.Heart</field></shadow></value><value name="boolean"><shadow type="logic_boolean" id="(f=]=5+y=^`LeK[exk7Q"><field name="BOOL">TRUE</field></shadow></value><next><block type="controls_delay_new" id="tkQa=;q^rBj8.aWm{h:`"><field name="Time">s</field><value name="DELAY_TIME"><shadow type="math_number" id="ASPj}`-KP0@}l;jxv5h#"><field name="NUM">0.1</field></shadow></value><next><block type="display_show_image" id="aNFcv/3H}QiV!LO(bWh."><value name="data"><shadow type="pins_builtinimg" id="?lm@zTCbI?CLU:#{j.v)"><field name="PIN">expression_picture.Small_heart</field></shadow></value><value name="boolean"><shadow type="logic_boolean" id="=-m#GCbzh)DUIX`AQ9JG"><field name="BOOL">TRUE</field></shadow></value><next><block type="controls_delay_new" id="f])DdAMF:DH{DSL@PiD-"><field name="Time">s</field><value name="DELAY_TIME"><shadow type="math_number" id="J=we,nj5M!3+GmIM@h9}"><field name="NUM">0.1</field></shadow></value></block></next></block></next></block></next></block></statement></block></next></block></statement></block></next></block></xml><config>{}</config><code>aW1wb3J0IG1peGdvX3NhbnQKZnJvbSBleHByZXNzaW9uX3BpY3R1cmUgaW1wb3J0IEhlYXJ0CmZyb20gbWl4Z29fc2FudCBpbXBvcnQgb25ib2FyZF90ZnQKaW1wb3J0IHRpbWUKZnJvbSBleHByZXNzaW9uX3BpY3R1cmUgaW1wb3J0IFNtYWxsX2hlYXJ0Cgrlv4Pot7MgPSBGYWxzZQp3aGlsZSBUcnVlOgogICAgaWYgbWl4Z29fc2FudC5CMWtleS53YXNfcHJlc3NlZCgpOgogICAgICAgIOW/g+i3syA9IG5vdCDlv4Pot7MKICAgIGlmIOW/g+i3szoKICAgICAgICBvbmJvYXJkX3RmdC5pbWFnZShIZWFydCwgY29sb3I9MHhmZmZmLHN5bmM9VHJ1ZSkKICAgICAgICB0aW1lLnNsZWVwKDAuMSkKICAgICAgICBvbmJvYXJkX3RmdC5pbWFnZShTbWFsbF9oZWFydCwgY29sb3I9MHhmZmZmLHN5bmM9VHJ1ZSkKICAgICAgICB0aW1lLnNsZWVwKDAuMSkK</code>
|
||||
@@ -0,0 +1 @@
|
||||
<xml version="Mixly 3.0 rc0" board="Python ESP32-S3@元控自强" shown="block"><block type="controls_whileUntil" id="~HLyY2{hXknhfleIR)So" x="-716" y="132"><field name="MODE">WHILE</field><value name="BOOL"><shadow type="logic_boolean" id="^IBzm1`m?9CO]l].Y8Dh"><field name="BOOL">TRUE</field></shadow></value><statement name="DO"><block type="controls_if" id="o$Ih(As#!/abw46Qn:9M"><value name="IF0"><block type="sensor_mixgo_button_was_pressed" id="p8w*SJEP})-Iy17f(cHZ"><value name="btn"><shadow type="pins_button" id="p@Hy.uNpbKZB/MjUU{,e"><field name="PIN">B1key</field></shadow></value></block></value><statement name="DO0"><block type="actuator_led_bright" id="=O:A?.kTkH}V/Oo@c+^P"><value name="led"><shadow type="number" id="E.d}yp/7~y;MlYkWA,K="><field name="op">1</field></shadow></value><value name="bright"><shadow type="ledswitch" id="$sZI)ekG5SS5{|8W}nS0"><field name="flag">1</field></shadow></value><next><block type="actuator_led_bright" id="1Bc:||}G|rtb^3?K67+M"><value name="led"><shadow type="number" id="IW{FgNpkiy)-Q(bz@qdw"><field name="op">2</field></shadow></value><value name="bright"><shadow type="ledswitch" id="U~F^emBn9SL(X*0-przz"><field name="flag">1</field></shadow></value></block></next></block></statement><next><block type="controls_if" id="/`24$:e8Z@gyL7:.]B_~"><value name="IF0"><block type="sensor_mixgo_button_was_pressed" id="Tz!K*0E0jl,m8R9^(l@T"><value name="btn"><shadow type="pins_button" id="(^H[oh_iz.4*ysm|c05k"><field name="PIN">B2key</field></shadow></value></block></value><statement name="DO0"><block type="actuator_led_bright" id="I`M,X[fw@dcV0xZqn9z0"><value name="led"><shadow type="number" id="!AOeRj:4.Y:1fCKWUTHg"><field name="op">1</field></shadow></value><value name="bright"><shadow type="ledswitch" id="P;#ynJ3Lnu:heB-iYdiV"><field name="flag">0</field></shadow></value><next><block type="actuator_led_bright" id="KM=@Vwm|JnE!-EKzoWUw"><value name="led"><shadow type="number" id="ZWHkFvvSVUEWZ$jDI#D["><field name="op">2</field></shadow></value><value name="bright"><shadow type="ledswitch" id="iuvL/!.T5=fPg3H=kGNx"><field name="flag">0</field></shadow></value></block></next></block></statement></block></next></block></statement></block></xml><config>{}</config><code>aW1wb3J0IG1peGdvX3NhbnQKZnJvbSBtaXhnb19zYW50IGltcG9ydCBvbmJvYXJkX2xlZAoKCndoaWxlIFRydWU6CiAgICBpZiBtaXhnb19zYW50LkIxa2V5Lndhc19wcmVzc2VkKCk6CiAgICAgICAgb25ib2FyZF9sZWQuc2V0b25vZmYoMSwxKQogICAgICAgIG9uYm9hcmRfbGVkLnNldG9ub2ZmKDIsMSkKICAgIGlmIG1peGdvX3NhbnQuQjJrZXkud2FzX3ByZXNzZWQoKToKICAgICAgICBvbmJvYXJkX2xlZC5zZXRvbm9mZigxLDApCiAgICAgICAgb25ib2FyZF9sZWQuc2V0b25vZmYoMiwwKQo=</code>
|
||||
@@ -0,0 +1 @@
|
||||
<xml version="Mixly 3.0 rc0" board="Python ESP32-S3@元控自强" shown="block"><block type="variables_set" id="9$jtIC$X)^G(/l(Ct(r[" x="-715" y="83"><field name="VAR">亮灯</field><value name="VALUE"><block type="logic_boolean" id="/r+Onod+,=,c!-xO@]!o"><field name="BOOL">FALSE</field></block></value><next><block type="controls_whileUntil" id="?G-Qz@H3s.RCH6ZtxU{x"><field name="MODE">WHILE</field><value name="BOOL"><shadow type="logic_boolean" id="[c,(+c!zHloIeygpL+Ng"><field name="BOOL">TRUE</field></shadow></value><statement name="DO"><block type="controls_if" id="IVR.pplTl7f*c,:/DF4v"><value name="IF0"><block type="sensor_mixgo_button_was_pressed" id="s+J:mo]zZlY[0+b8~e30"><value name="btn"><shadow type="pins_button" id="4kB?7jqOy|s,KwX26RF!"><field name="PIN">B1key</field></shadow></value></block></value><statement name="DO0"><block type="variables_set" id="W?rzS:-q6ZzUCf=~X_9x"><field name="VAR">亮灯</field><value name="VALUE"><block type="logic_negate" id="2}|rFJ~~HN~ztzIzsH{F"><value name="BOOL"><block type="variables_get" id="I!~}h6R3BjA|qO00wxBx"><field name="VAR">亮灯</field></block></value></block></value></block></statement><next><block type="actuator_led_bright" id=",`M.j3:;a7z.jI5u[5iF"><value name="led"><shadow type="number" id="D+990athEu14V1ET!s!u"><field name="op">1</field></shadow></value><value name="bright"><shadow type="ledswitch" id="#Bz3WMyE5epd)TZCJZ]p"><field name="flag">0</field></shadow><block type="variables_get" id="nhNcSZ(}kgflHTCwINrz"><field name="VAR">亮灯</field></block></value><next><block type="actuator_led_bright" id="E7rQ$7]O6+RU|y@;U=2d"><value name="led"><shadow type="number" id="!#vTF8_O7:J;L-.eLSL$"><field name="op">2</field></shadow></value><value name="bright"><shadow type="ledswitch" id="khx,1r=5RAErD!^wWX3:"><field name="flag">0</field></shadow><block type="variables_get" id="1},zcX71h$.#RO,oS2a!"><field name="VAR">亮灯</field></block></value></block></next></block></next></block></statement></block></next></block></xml><config>{}</config><code>aW1wb3J0IG1peGdvX3NhbnQKZnJvbSBtaXhnb19zYW50IGltcG9ydCBvbmJvYXJkX2xlZAoKCuS6rueBryA9IEZhbHNlCndoaWxlIFRydWU6CiAgICBpZiBtaXhnb19zYW50LkIxa2V5Lndhc19wcmVzc2VkKCk6CiAgICAgICAg5Lqu54GvID0gbm90IOS6rueBrwogICAgb25ib2FyZF9sZWQuc2V0b25vZmYoMSzkuq7nga8pCiAgICBvbmJvYXJkX2xlZC5zZXRvbm9mZigyLOS6rueBrykK</code>
|
||||
@@ -0,0 +1 @@
|
||||
<xml version="Mixly 3.0 rc0" board="Python ESP32-S3@元控自强" shown="block"><block type="controls_whileUntil" id="cQdt/R:7`Pa69zlWl6{$" x="-725" y="181"><field name="MODE">WHILE</field><value name="BOOL"><shadow type="logic_boolean" id="U{IQc#jsUMQ1A|-+B-/N"><field name="BOOL">TRUE</field></shadow></value><statement name="DO"><block type="controls_if" id="Y!:$J-qG#~*]45#E|2RK"><value name="IF0"><block type="sensor_mixgo_button_was_pressed" id=",Onk!J0x,.~b}_a^XK(z"><value name="btn"><shadow type="pins_button" id="4IrMe*i:cbD?vMISC$Q?"><field name="PIN">B1key</field></shadow></value></block></value><statement name="DO0"><block type="actuator_led_bright" id="rweq=ijSZ4nmNKwk?f`6"><value name="led"><shadow type="number" id="Y3FM4[-?rs-s6k-PJc,["><field name="op">1</field></shadow></value><value name="bright"><shadow type="ledswitch" id="3m:)S2)gSaNjp;z]wIdj"><field name="flag">1</field></shadow></value><next><block type="controls_delay_new" id="_d|~l5)(8NK/_+gG!r]]"><field name="Time">s</field><value name="DELAY_TIME"><shadow type="math_number" id="`oxbX]s_T(#@o3r3:Qjo"><field name="NUM">2</field></shadow></value><next><block type="actuator_led_bright" id="xVwpbVCuAfai@UxcH{c]"><value name="led"><shadow type="number" id="DJu~^jX.qdW,$Fu`3AG`"><field name="op">1</field></shadow></value><value name="bright"><shadow type="ledswitch" id="lMyBVoF$tkAA|DiCRLcj"><field name="flag">0</field></shadow></value></block></next></block></next></block></statement></block></statement></block></xml><config>{}</config><code>aW1wb3J0IG1peGdvX3NhbnQKZnJvbSBtaXhnb19zYW50IGltcG9ydCBvbmJvYXJkX2xlZAppbXBvcnQgdGltZQoKCndoaWxlIFRydWU6CiAgICBpZiBtaXhnb19zYW50LkIxa2V5Lndhc19wcmVzc2VkKCk6CiAgICAgICAgb25ib2FyZF9sZWQuc2V0b25vZmYoMSwxKQogICAgICAgIHRpbWUuc2xlZXAoMikKICAgICAgICBvbmJvYXJkX2xlZC5zZXRvbm9mZigxLDApCg==</code>
|
||||
@@ -0,0 +1 @@
|
||||
<xml version="Mixly 3.0 rc0" board="Python ESP32-S3@元控自强" shown="block"><block type="controls_whileUntil" id="Z,OD1x9ftrDsV$Lt.o]F" x="-725" y="181"><field name="MODE">WHILE</field><value name="BOOL"><shadow type="logic_boolean" id="nU,#ZMu*FI+?pEOgRC7{"><field name="BOOL">TRUE</field></shadow></value><statement name="DO"><block type="controls_if" id="W,bo76``]aX3E^$JdDYT"><value name="IF0"><block type="sensor_mixgo_button_was_pressed" id="Jtg0X|YZ/i7tZ,q:kQ,z"><value name="btn"><shadow type="pins_button" id="6.x]j)$MYU7eu|{2K,e|"><field name="PIN">B1key</field></shadow></value></block></value><statement name="DO0"><block type="actuator_led_bright" id="[kJG1U4dzK$eWp+O)r@s"><value name="led"><shadow type="number" id="5F3#]B!H?6$Oz7gYqA7*"><field name="op">1</field></shadow></value><value name="bright"><shadow type="ledswitch" id="$-7,]D;r6AU}gS#L2}6~"><field name="flag">1</field></shadow></value></block></statement><next><block type="controls_if" id="j{]hLFet.SS+JW#rlfuh"><value name="IF0"><block type="sensor_mixgo_button_was_pressed" id="1:Li9qNC8x2)idYtPxV6"><value name="btn"><shadow type="pins_button" id="DLCR-q~Fz73eg^!Ni):m"><field name="PIN">B2key</field></shadow></value></block></value><statement name="DO0"><block type="controls_delay_new" id="uNd#PwPsK(T.DhB3v/{0"><field name="Time">s</field><value name="DELAY_TIME"><shadow type="math_number" id="KW:YcyS15]@/Y0gXO2RZ"><field name="NUM">2</field></shadow></value><next><block type="actuator_led_bright" id="~N:-x[uDl,c/=@kVS_Fs"><value name="led"><shadow type="number" id="i5$cg7(PH|BiN9,0aaT;"><field name="op">1</field></shadow></value><value name="bright"><shadow type="ledswitch" id="|x}Icf|*[VXL?!Nq3|wT"><field name="flag">0</field></shadow></value></block></next></block></statement></block></next></block></statement></block></xml><config>{}</config><code>aW1wb3J0IG1peGdvX3NhbnQKZnJvbSBtaXhnb19zYW50IGltcG9ydCBvbmJvYXJkX2xlZAppbXBvcnQgdGltZQoKCndoaWxlIFRydWU6CiAgICBpZiBtaXhnb19zYW50LkIxa2V5Lndhc19wcmVzc2VkKCk6CiAgICAgICAgb25ib2FyZF9sZWQuc2V0b25vZmYoMSwxKQogICAgaWYgbWl4Z29fc2FudC5CMmtleS53YXNfcHJlc3NlZCgpOgogICAgICAgIHRpbWUuc2xlZXAoMikKICAgICAgICBvbmJvYXJkX2xlZC5zZXRvbm9mZigxLDApCg==</code>
|
||||
@@ -0,0 +1 @@
|
||||
<xml version="Mixly 3.0 rc0" board="Python ESP32-S3@元控自强" shown="block"><block type="controls_whileUntil" id="7:DcSh::cK0Hmu|3,/TP" x="-725" y="181"><field name="MODE">WHILE</field><value name="BOOL"><shadow type="logic_boolean" id="}UWEI(h(P*-iR@3UIEH("><field name="BOOL">TRUE</field></shadow></value><statement name="DO"><block type="system_print" id="d2$;o=3E}UWw@~A$0q7;"><value name="VAR"><shadow type="text" id="|6mr~*|l.p*O1_qT(9K2"><field name="TEXT">Mixly</field></shadow><block type="sensor_sound" id="B44BZYhY2qCN`;sY8-^r"></block></value><next><block type="controls_delay_new" id="2D`v[^YQ834)iL~!ZQKW"><field name="Time">s</field><value name="DELAY_TIME"><shadow type="math_number" id="Qc=${St0bU`dA32KgIBW"><field name="NUM">1</field></shadow></value></block></next></block></statement></block></xml><config>{}</config><code>aW1wb3J0IG1hY2hpbmUKZnJvbSBtaXhnb19zYW50IGltcG9ydCBvbmJvYXJkX3NvdW5kCmltcG9ydCB0aW1lCgoKd2hpbGUgVHJ1ZToKICAgIHByaW50KG9uYm9hcmRfc291bmQucmVhZCgpKQogICAgdGltZS5zbGVlcCgxKQo=</code>e>
|
||||
@@ -0,0 +1 @@
|
||||
<xml version="Mixly 3.0 rc0" board="Python ESP32-S3@元控自强" shown="block"><block type="controls_whileUntil" id="83.etEi_0v49k7)3?^Ep" x="-875" y="152"><field name="MODE">WHILE</field><value name="BOOL"><shadow type="logic_boolean" id=":MXTx~$rYt0CQjac;HfT"><field name="BOOL">TRUE</field></shadow></value><statement name="DO"><block type="variables_set" id="Qy:O(zJ-tBt:Rf,4.ReD"><field name="VAR">声音</field><value name="VALUE"><block type="sensor_sound" id="w`IYBKA^+y3U4^Wr:Liz"></block></value><next><block type="system_print" id="r;s(XY}aDC]Q]]#?}35v"><value name="VAR"><shadow type="text" id=":*_Ckt4x.[VfOQTPtDh?"><field name="TEXT">Mixly</field></shadow><block type="variables_get" id="c{1zhyDZFaZYk(P,z[v@"><field name="VAR">声音</field></block></value><next><block type="controls_if" id="2B[iFnYwsca]c?SF$SfE"><value name="IF0"><block type="logic_compare" id="Rn=NiH0h#[(6IT6~?U[K"><field name="OP">GT</field><value name="A"><block type="variables_get" id="dY|)(CXzm]]YifAo(uuU"><field name="VAR">声音</field></block></value><value name="B"><block type="math_number" id="35XT;b)OP?CqHbUm/sAu"><field name="NUM">500</field></block></value></block></value><statement name="DO0"><block type="actuator_led_bright" id="jHMFY9K13gZf$/6Ol)UF"><value name="led"><shadow type="number" id="kH8!HB`Ybdzh}r(1A6.P"><field name="op">1</field></shadow></value><value name="bright"><shadow type="ledswitch" id="D,6],D/A$RrW_w6cTEmx"><field name="flag">-1</field></shadow></value><next><block type="controls_delay_new" id="**JKY9Z?!M#]aRW_an0-"><field name="Time">s</field><value name="DELAY_TIME"><shadow type="math_number" id="kRmlI!.tA^oVn$,9!i5@"><field name="NUM">0.5</field></shadow></value></block></next></block></statement><next><block type="controls_delay_new" id="+$T/pEy1dtzXl|JM9!iw"><field name="Time">s</field><value name="DELAY_TIME"><shadow type="math_number" id="B/X1^Yb$7v?]E-5YrF3,"><field name="NUM">0.1</field></shadow></value></block></next></block></next></block></next></block></statement></block></xml><config>{}</config><code>ZnJvbSBtaXhnb19zYW50IGltcG9ydCBvbmJvYXJkX3NvdW5kCmltcG9ydCBtYWNoaW5lCmZyb20gbWl4Z29fc2FudCBpbXBvcnQgb25ib2FyZF9sZWQKaW1wb3J0IHRpbWUKCgp3aGlsZSBUcnVlOgogICAg5aOw6Z+zID0gb25ib2FyZF9zb3VuZC5yZWFkKCkKICAgIHByaW50KOWjsOmfsykKICAgIGlmIOWjsOmfsyA+IDUwMDoKICAgICAgICBvbmJvYXJkX2xlZC5zZXRvbm9mZigxLC0xKQogICAgICAgIHRpbWUuc2xlZXAoMC41KQogICAgdGltZS5zbGVlcCgwLjEpCg==</code>
|
||||
@@ -0,0 +1 @@
|
||||
<xml version="Mixly 3.0 rc0" board="Python ESP32-S3@元控自强" shown="block"><block type="controls_whileUntil" id="4pP2W/:)HsYF_g@:2L|3" x="-1129" y="200"><field name="MODE">WHILE</field><value name="BOOL"><shadow type="logic_boolean" id=",:!R!u?4;?f4(*o.8967"><field name="BOOL">TRUE</field></shadow></value><statement name="DO"><block type="variables_set" id="X#bqKoV}*dSOn1aNqTVy"><field name="VAR">声音</field><value name="VALUE"><block type="sensor_sound" id="N)^HBrwYb+o^ThGL~|nk"></block></value><next><block type="system_print" id="ru#)f~$b7|hU;B~NuYLn"><value name="VAR"><shadow type="text" id="?7lhoL.hY-_Pn{TvFJ_B"><field name="TEXT">Mixly</field></shadow><block type="variables_get" id="@785Q!X/i2=qHZqh*,Nh"><field name="VAR">声音</field></block></value><next><block type="controls_if" id="2MA-hEAp:aknmg8I_d}v"><value name="IF0"><block type="logic_compare" id="V/x.]Odi@Ay*pCr1(A7e"><field name="OP">GT</field><value name="A"><block type="variables_get" id="pD;-BYZ.I:q1tjmOfJ-Q"><field name="VAR">声音</field></block></value><value name="B"><block type="math_number" id="8P~?R2AS7Jh]HKt_W0bV"><field name="NUM">500</field></block></value></block></value><statement name="DO0"><block type="actuator_led_bright" id="GNwUCK-BTs4-0F(C^Fx]"><value name="led"><shadow type="number" id="C62iU2AK[[Vyhq5;_ili"><field name="op">1</field></shadow></value><value name="bright"><shadow type="ledswitch" id="rht2${Y{jv[be4rpvOJl"><field name="flag">1</field></shadow></value><next><block type="controls_delay_new" id="LUKRUG~=Cz6a}duU9JkN"><field name="Time">s</field><value name="DELAY_TIME"><shadow type="math_number" id="duWyYykf0qZ[ZIyZ-]})"><field name="NUM">3</field></shadow></value><next><block type="actuator_led_bright" id="(L~~CJgJDe8;;)NM@1hn"><value name="led"><shadow type="number" id="/5OxYoOH~c4c@^u@`Cc@"><field name="op">1</field></shadow></value><value name="bright"><shadow type="ledswitch" id="LWr|OB)dL#,]`7;z/cpV"><field name="flag">0</field></shadow></value></block></next></block></next></block></statement><next><block type="controls_delay_new" id="NK[a,cSw6/+89HKr3HC+"><field name="Time">s</field><value name="DELAY_TIME"><shadow type="math_number" id="cq,x|/=RhvPCq_kSz6{C"><field name="NUM">0.1</field></shadow></value></block></next></block></next></block></next></block></statement></block></xml><config>{}</config><code>ZnJvbSBtaXhnb19zYW50IGltcG9ydCBvbmJvYXJkX3NvdW5kCmltcG9ydCBtYWNoaW5lCmZyb20gbWl4Z29fc2FudCBpbXBvcnQgb25ib2FyZF9sZWQKaW1wb3J0IHRpbWUKCgp3aGlsZSBUcnVlOgogICAg5aOw6Z+zID0gb25ib2FyZF9zb3VuZC5yZWFkKCkKICAgIHByaW50KOWjsOmfsykKICAgIGlmIOWjsOmfsyA+IDUwMDoKICAgICAgICBvbmJvYXJkX2xlZC5zZXRvbm9mZigxLDEpCiAgICAgICAgdGltZS5zbGVlcCgzKQogICAgICAgIG9uYm9hcmRfbGVkLnNldG9ub2ZmKDEsMCkKICAgIHRpbWUuc2xlZXAoMC4xKQo=</code>OWjsOmfsykKICAgIGlmIOWjsOmfsyA+IDUwMDoKICAgICAgICBvbmJvYXJkX2xlZC5zZXRvbm9mZigxLDEpCiAgICAgICAgdGltZS5zbGVlcCgzKQogICAgICAgIG9uYm9hcmRfbGVkLnNldG9ub2ZmKDEsMCkKICAgIHRpbWUuc2xlZXAoMC4xKQo=</code>
|
||||
@@ -0,0 +1 @@
|
||||
<xml version="Mixly 3.0 rc0" board="Python ESP32-S3@元控自强" shown="block"><block type="controls_whileUntil" id="uV0E}NuA0/WmLzj#;`Q;" x="-1318" y="196"><field name="MODE">WHILE</field><value name="BOOL"><shadow type="logic_boolean" id="R^^p?~GKDAPt_c+mjS1M"><field name="BOOL">TRUE</field></shadow></value><statement name="DO"><block type="variables_set" id="gPFNEJ?H}Q4GWuBH+c.~"><field name="VAR">声音</field><value name="VALUE"><block type="sensor_sound" id="YJ!HdJWqUk9s(CytPRno"></block></value><next><block type="variables_set" id="tO#037IE2)./NH,zhDYX"><field name="VAR">光照</field><value name="VALUE"><block type="sensor_mixgo_nova_LTR308" id="cb17E.xT,PX)#Mar1!)w"><field name="direction">l</field></block></value><next><block type="system_print_many" id="D!Y!GrCyYW{ngr^q-IxR"><mutation items="2"></mutation><value name="ADD0"><block type="variables_get" id="tym!pSDF)nY8m@cIatA+"><field name="VAR">声音</field></block></value><value name="ADD1"><block type="variables_get" id="o[@RM7p/h:}_QW,.,UAi"><field name="VAR">光照</field></block></value><next><block type="controls_if" id=")Qb;Pp]=Bp$B]8Q*pE=F"><value name="IF0"><block type="logic_operation" id="_RA$mn}X$9|0aK8a3/P1" inline="false"><field name="OP">AND</field><value name="A"><block type="logic_compare" id="]?mLy4v5xzg^DRAro0(`"><field name="OP">GT</field><value name="A"><block type="variables_get" id="DU[)9+nkT{LhmU3pj4Wu"><field name="VAR">声音</field></block></value><value name="B"><block type="math_number" id="J?q[(uq^0yS.{1f7#{+o"><field name="NUM">500</field></block></value></block></value><value name="B"><block type="logic_compare" id="I9xO=0A]OwN6Vk:F#0jJ"><field name="OP">LT</field><value name="A"><block type="variables_get" id=".ddt+!^26aasaK=Bx0`-"><field name="VAR">光照</field></block></value><value name="B"><block type="math_number" id="NyV.$h9xsHl}l#5n)od^"><field name="NUM">10</field></block></value></block></value></block></value><statement name="DO0"><block type="actuator_led_bright" id="]DV+h9Y]a$JE+EPDbD~|"><value name="led"><shadow type="number" id="pNzeJL_Ty617L0qd3~,^"><field name="op">1</field></shadow></value><value name="bright"><shadow type="ledswitch" id="J95zL9/.j)=qmg5tlUez"><field name="flag">1</field></shadow></value><next><block type="controls_delay_new" id=".{zh?|*vd(4ihB7b}h[C"><field name="Time">s</field><value name="DELAY_TIME"><shadow type="math_number" id=".7hHHeVmle.*a,;dGC3K"><field name="NUM">3</field></shadow></value><next><block type="actuator_led_bright" id="66pN/Fo#VCqDn#ob:G_x"><value name="led"><shadow type="number" id="R[EAk4Fpk3O|kU)AGUn8"><field name="op">1</field></shadow></value><value name="bright"><shadow type="ledswitch" id=";XV!M)pkK95M#KhUXo$B"><field name="flag">0</field></shadow></value></block></next></block></next></block></statement><next><block type="controls_delay_new" id="/`@N}QCFulSWeg?o}_W4"><field name="Time">s</field><value name="DELAY_TIME"><shadow type="math_number" id="G1e5~N+p;OJ:!sT/:dus"><field name="NUM">0.1</field></shadow></value></block></next></block></next></block></next></block></next></block></statement></block></xml><config>{}</config><code>ZnJvbSBtaXhnb19zYW50IGltcG9ydCBvbmJvYXJkX3NvdW5kCmZyb20gbWl4Z29fc2FudCBpbXBvcnQgb25ib2FyZF9hbHNfbApmcm9tIG1peGdvX3NhbnQgaW1wb3J0IG9uYm9hcmRfbGVkCmltcG9ydCB0aW1lCgoKd2hpbGUgVHJ1ZToKICAgIOWjsOmfsyA9IG9uYm9hcmRfc291bmQucmVhZCgpCiAgICDlhYnnhacgPSBvbmJvYXJkX2Fsc19sLmFsc192aXMoKQogICAgcHJpbnQo5aOw6Z+zLCDlhYnnhacpCiAgICBpZiDlo7Dpn7MgPiA1MDAgYW5kIOWFieeFpyA8IDEwOgogICAgICAgIG9uYm9hcmRfbGVkLnNldG9ub2ZmKDEsMSkKICAgICAgICB0aW1lLnNsZWVwKDMpCiAgICAgICAgb25ib2FyZF9sZWQuc2V0b25vZmYoMSwwKQogICAgdGltZS5zbGVlcCgwLjEpCg==</code>
|
||||
@@ -0,0 +1 @@
|
||||
<xml version="Mixly 3.0 rc0" board="Python ESP32-S3@元控自强" shown="block"><block type="controls_whileUntil" id="da((zPw$?gw?w+DcBx:V" x="-838" y="236"><field name="MODE">WHILE</field><value name="BOOL"><shadow type="logic_boolean" id="bgd)]K(Qi}o(+uuVW?!{"><field name="BOOL">TRUE</field></shadow></value><statement name="DO"><block type="system_print" id="ZAGe47?HbzqHK?or/|:T"><value name="VAR"><shadow type="text" id="j0K.01d4M*Dp+/2NqCuF"><field name="TEXT">Mixly</field></shadow><block type="sensor_mixgo_touch_slide" id="~5)Re?nS5L:H}QPFs`bS"></block></value><next><block type="controls_delay_new" id="Nk=)_Q`ahmw1X[][pZ5y"><field name="Time">s</field><value name="DELAY_TIME"><shadow type="math_number" id=",1(c=drYyEo5dbyErtse"><field name="NUM">0.1</field></shadow></value></block></next></block></statement></block></xml><config>{}</config><code>aW1wb3J0IG1hY2hpbmUKZnJvbSBtaXhnb19zYW50IGltcG9ydCBvbmJvYXJkX2JvdAppbXBvcnQgdGltZQoKCndoaWxlIFRydWU6CiAgICBwcmludChvbmJvYXJkX2JvdC50b3VjaF9zbGlkZSgpKQogICAgdGltZS5zbGVlcCgwLjEpCg==</code>
|
||||
@@ -0,0 +1 @@
|
||||
<xml version="Mixly 3.0 rc0" board="Python ESP32-S3@元控自强" shown="block"><block type="controls_whileUntil" id="OKTu8RrE=V^L+,NeF[Wy" x="-844" y="165"><field name="MODE">WHILE</field><value name="BOOL"><shadow type="logic_boolean" id=",tY:8D~2$oTqs$)a:IS3"><field name="BOOL">TRUE</field></shadow></value><statement name="DO"><block type="variables_set" id="^!vV0X/~hYmjvD?zOA]x"><field name="VAR">亮度</field><value name="VALUE"><block type="math_to_int" id="1pjWMtkeu+tR]4cWKP-2"><field name="OP">ceil</field><value name="A"><shadow type="math_number" id="h((X#U{|ZdId09T=8^@z"><field name="NUM">0.998</field></shadow><block type="math_map" id="3qt7D)7^)0HRME]6b=#M" inline="false"><value name="NUM"><shadow type="math_number" id="=J^~;*]HV~D^F^9!mHA;"><field name="NUM">50</field></shadow><block type="sensor_mixgo_touch_slide" id=";8q,U40m-GBphTuN$$Nm"></block></value><value name="fromLow"><shadow type="math_number" id="b}Q[{=(gTGr-@CqxWv_M"><field name="NUM">-100</field></shadow></value><value name="fromHigh"><shadow type="math_number" id="g]+WkSGhG.Z|ChG]nh0F"><field name="NUM">100</field></shadow></value><value name="toLow"><shadow type="math_number" id="S|w/T?Oo,|T8,f.m]Wf."><field name="NUM">0</field></shadow></value><value name="toHigh"><shadow type="math_number" id="53aT]O-+GEF){#V/+C:F"><field name="NUM">100</field></shadow></value></block></value></block></value><next><block type="actuator_led_brightness" id="Z(z?!|RG:k{ADyKee4U5"><value name="led"><shadow type="number" id="+|QHxi7;RFiVKgtwzrHL"><field name="op">2</field></shadow></value><value name="bright"><shadow type="math_number" id="ju.WE4y#n=:DJa]?,?-N"><field name="NUM">100</field></shadow><block type="variables_get" id="[Tt)xa^2*V0o]uE2U~[,"><field name="VAR">亮度</field></block></value></block></next></block></statement></block></xml><config>{}</config><code>ZnJvbSBtaXhnb19zYW50IGltcG9ydCBvbmJvYXJkX2JvdApmcm9tIG1peHB5IGltcG9ydCBtYXRoX21hcAppbXBvcnQgbWF0aApmcm9tIG1peGdvX3NhbnQgaW1wb3J0IG9uYm9hcmRfbGVkCgoKd2hpbGUgVHJ1ZToKICAgIOS6ruW6piA9IG1hdGguY2VpbChtYXRoX21hcChvbmJvYXJkX2JvdC50b3VjaF9zbGlkZSgpLCAoLTEwMCksIDEwMCwgMCwgMTAwKSkKICAgIG9uYm9hcmRfbGVkLnNldGJyaWdodG5lc3MoMiwg5Lqu5bqmKQo=</code>
|
||||
@@ -0,0 +1 @@
|
||||
<xml version="Mixly 3.0 rc0" board="Python ESP32-S3@元控自强" shown="block"><block type="controls_whileUntil" id="wuI`jcWr=VxW:NCn/vm-" x="-844" y="165"><field name="MODE">WHILE</field><value name="BOOL"><shadow type="logic_boolean" id="LKVid2sgPMUOeh8d3aB9"><field name="BOOL">TRUE</field></shadow></value><statement name="DO"><block type="controls_if" id="yZ=CBodc,.to)KcK!`oJ"><mutation else="1"></mutation><value name="IF0"><block type="logic_negate" id="D@btjf$G6^R+={sEEl6h"><value name="BOOL"><block type="logic_compare_continous" id="@yVRXvpSdduXxhg2]nMH"><field name="OP1">LT</field><field name="OP2">LT</field><value name="A"><shadow type="math_number" id="5A$Ptb{9Xov/Afa-EUF^"><field name="NUM">-5</field></shadow></value><value name="B"><shadow type="variables_get" id="rpv_`$n)01NSXwGQp6T#"><field name="VAR">x</field></shadow><block type="sensor_mixgo_touch_slide" id="`#z+GBev/Euq_1tKUq]~"></block></value><value name="C"><shadow type="math_number" id="XIO?EyHzfSV}u[gKDV*["><field name="NUM">5</field></shadow></value></block></value></block></value><statement name="DO0"><block type="variables_set" id="Y-}aS$v0RKB2:L7B0XFo"><field name="VAR">亮度</field><value name="VALUE"><block type="math_to_int" id="(o[!`h?F}DRIROt)G(|!"><field name="OP">ceil</field><value name="A"><shadow type="math_number" id="^enbpg[e$OGt)Qn:r?No"><field name="NUM">0.998</field></shadow><block type="math_map" id="Rtj5P=6o?)dP*JNSOs.H" inline="false"><value name="NUM"><shadow type="math_number" id="]#$c5lK:x^U{9H0d_^oA"><field name="NUM">50</field></shadow><block type="sensor_mixgo_touch_slide" id="P}qeBR/^~vGug;scsy_Q"></block></value><value name="fromLow"><shadow type="math_number" id="V?a7jEfDW0[|js{9yC~2"><field name="NUM">-100</field></shadow></value><value name="fromHigh"><shadow type="math_number" id="KzIcjj{fc;kq-0w[o=p4"><field name="NUM">100</field></shadow></value><value name="toLow"><shadow type="math_number" id="f^H]K?8/v`R+T.hkY,q9"><field name="NUM">0</field></shadow></value><value name="toHigh"><shadow type="math_number" id="h`@{+FyvVS:R^NL*)Dx_"><field name="NUM">100</field></shadow></value></block></value></block></value><next><block type="actuator_led_brightness" id="VjsHem6;CTJhi$8busD]"><value name="led"><shadow type="number" id="jqp{A+NOfiK{[2@ZZh7?"><field name="op">2</field></shadow></value><value name="bright"><shadow type="math_number" id="Cc6h`+,Af)wQaF4/]*kx"><field name="NUM">100</field></shadow><block type="variables_get" id="1DJ1O3`1P$MnBZSX*[Y4"><field name="VAR">亮度</field></block></value><next><block type="controls_delay_new" id="RTTbBpp)dewiFQ{;*g@j"><field name="Time">s</field><value name="DELAY_TIME"><shadow type="math_number" id="9/mq`9,Q-Q8!J!bfv-mo"><field name="NUM">0.1</field></shadow></value></block></next></block></next></block></statement><statement name="ELSE"><block type="actuator_led_brightness" id="YFdecdMOs^n9Md__#:q:"><value name="led"><shadow type="number" id="v4o+UPJJ`86L|,TD|*?^"><field name="op">2</field></shadow></value><value name="bright"><shadow type="math_number" id="?k`Pj1|$EpD]q7A5je?7"><field name="NUM">0</field></shadow></value></block></statement></block></statement></block></xml><config>{}</config><code>ZnJvbSBtaXhnb19zYW50IGltcG9ydCBvbmJvYXJkX2JvdApmcm9tIG1peHB5IGltcG9ydCBtYXRoX21hcAppbXBvcnQgbWF0aApmcm9tIG1peGdvX3NhbnQgaW1wb3J0IG9uYm9hcmRfbGVkCmltcG9ydCB0aW1lCgoKd2hpbGUgVHJ1ZToKICAgIGlmIG5vdCAoLTUgPCBvbmJvYXJkX2JvdC50b3VjaF9zbGlkZSgpIDwgNSk6CiAgICAgICAg5Lqu5bqmID0gbWF0aC5jZWlsKG1hdGhfbWFwKG9uYm9hcmRfYm90LnRvdWNoX3NsaWRlKCksICgtMTAwKSwgMTAwLCAwLCAxMDApKQogICAgICAgIG9uYm9hcmRfbGVkLnNldGJyaWdodG5lc3MoMiwg5Lqu5bqmKQogICAgICAgIHRpbWUuc2xlZXAoMC4xKQogICAgZWxzZToKICAgICAgICBvbmJvYXJkX2xlZC5zZXRicmlnaHRuZXNzKDIsIDApCg==</code>
|
||||
@@ -0,0 +1 @@
|
||||
<xml version="Mixly 3.0 rc0" board="Python ESP32-S3@元控自强" shown="block"><block type="controls_whileUntil" id="2}gXl*^I(V.P^N6u]YEV" x="-844" y="165"><field name="MODE">WHILE</field><value name="BOOL"><shadow type="logic_boolean" id="X*.8l,+rB|q|ZNt*BwLK"><field name="BOOL">TRUE</field></shadow></value><statement name="DO"><block type="controls_if" id="WFog4J0T;o1-n:h-kF5)"><mutation else="1"></mutation><value name="IF0"><block type="logic_negate" id="B=UeA+,4uHE8yY{=S({y"><value name="BOOL"><block type="logic_compare_continous" id="|^BD#*Yhgy`=^S$DMpkX"><field name="OP1">LT</field><field name="OP2">LT</field><value name="A"><shadow type="math_number" id="OBdZo(ID+[+GadTm=}|m"><field name="NUM">-5</field></shadow></value><value name="B"><shadow type="variables_get" id="c/c:W;rk]_*Z#oI7.NEg"><field name="VAR">x</field></shadow><block type="sensor_mixgo_touch_slide" id="4{16T/cQb^pIiQ*}MICF"></block></value><value name="C"><shadow type="math_number" id="M|BG6-FocOYi.kHH!#2S"><field name="NUM">5</field></shadow></value></block></value></block></value><statement name="DO0"><block type="variables_set" id="xDc.@N:PDdW+oGGTa!U)"><field name="VAR">亮度</field><value name="VALUE"><block type="math_to_int" id="O.mPU`J6QXYzC}+z_Rv]"><field name="OP">ceil</field><value name="A"><shadow type="math_number" id="FVv$M]S`qTQQ!BisLZ$$"><field name="NUM">0.998</field></shadow><block type="math_map" id="A_oGRjI91a!S?+:abW6|" inline="false"><value name="NUM"><shadow type="math_number" id="n3=LPQj}HMY/,9Q8R)(Q"><field name="NUM">50</field></shadow><block type="sensor_mixgo_touch_slide" id="Z]~?s8:wkPaJe._|}$U~"></block></value><value name="fromLow"><shadow type="math_number" id="OkZs8E4Z-./Yh2`nW12g"><field name="NUM">-100</field></shadow></value><value name="fromHigh"><shadow type="math_number" id="bHxaFKz:@e@dN}StIQ7g"><field name="NUM">100</field></shadow></value><value name="toLow"><shadow type="math_number" id="RjocNDXSM/FQk~,PPCE`"><field name="NUM">0</field></shadow></value><value name="toHigh"><shadow type="math_number" id="NRe1@moU}5=`evIq}_o:"><field name="NUM">100</field></shadow></value></block></value></block></value><next><block type="actuator_led_brightness" id="UBe+fjW+tCba(N~rK21)"><value name="led"><shadow type="number" id="Zn}b~=YELRQS0m@#-gY`"><field name="op">2</field></shadow></value><value name="bright"><shadow type="math_number" id="x#[,d_dL0uSBL_VvxY)("><field name="NUM">100</field></shadow><block type="variables_get" id="]4T*8VvgF+;u0pI+])V6"><field name="VAR">亮度</field></block></value><next><block type="controls_delay_new" id="N}z^|iwrPdEI@QAb0Amj"><field name="Time">s</field><value name="DELAY_TIME"><shadow type="math_number" id="v37YE1IaU+nbWu7rC.NK"><field name="NUM">0.1</field></shadow></value></block></next></block></next></block></statement><statement name="ELSE"><block type="actuator_led_brightness" id="SR2eYdbU#Vt0y]XwTaL|" disabled-reasons="MANUALLY_DISABLED"><value name="led"><shadow type="number" id="#4:7{Wrf0B$W5WHHo}Eh"><field name="op">2</field></shadow></value><value name="bright"><shadow type="math_number" id=":uT;1NhqcW70*105y/LZ"><field name="NUM">0</field></shadow></value></block></statement></block></statement></block></xml><config>{}</config><code>ZnJvbSBtaXhnb19zYW50IGltcG9ydCBvbmJvYXJkX2JvdApmcm9tIG1peHB5IGltcG9ydCBtYXRoX21hcAppbXBvcnQgbWF0aApmcm9tIG1peGdvX3NhbnQgaW1wb3J0IG9uYm9hcmRfbGVkCmltcG9ydCB0aW1lCgoKd2hpbGUgVHJ1ZToKICAgIGlmIG5vdCAoLTUgPCBvbmJvYXJkX2JvdC50b3VjaF9zbGlkZSgpIDwgNSk6CiAgICAgICAg5Lqu5bqmID0gbWF0aC5jZWlsKG1hdGhfbWFwKG9uYm9hcmRfYm90LnRvdWNoX3NsaWRlKCksICgtMTAwKSwgMTAwLCAwLCAxMDApKQogICAgICAgIG9uYm9hcmRfbGVkLnNldGJyaWdodG5lc3MoMiwg5Lqu5bqmKQogICAgICAgIHRpbWUuc2xlZXAoMC4xKQogICAgZWxzZToKICAgICAgICBwYXNzCg==</code>
|
||||
@@ -0,0 +1 @@
|
||||
<xml version="Mixly 3.0 rc0" board="Python ESP32-S3@元控自强" shown="block"><block type="variables_set" id="Mn!d^xrFehrA?JQYwrCk" x="-1160" y="-583"><field name="VAR">亮度目标</field><value name="VALUE"><block type="math_number" id="Y+!|@,dw9n7I/[MyCJ+w"><field name="NUM">40</field></block></value><next><block type="variables_set" id="R.3}_Xho0x@A_VO9j;SD"><field name="VAR">RGB亮度</field><value name="VALUE"><block type="math_number" id="MPP/eGITyxB3M,KRhb]z"><field name="NUM">0</field></block></value><next><block type="controls_whileUntil" id="Z$S483Ej].!hP#pu3.sl"><field name="MODE">WHILE</field><value name="BOOL"><shadow type="logic_boolean" id="WbHe_L2~EhKc}pvx]z?8"><field name="BOOL">TRUE</field></shadow></value><statement name="DO"><block type="actuator_onboard_neopixel_rgb_all" id="O.f9JCG[0+$]FRcp3E[k"><value name="RVALUE"><shadow type="math_number" id="d`C)AX~eQ;,#y5AcSt[A"><field name="NUM">0</field></shadow><block type="variables_get" id="H=W@;2t-g2N?pzj2sThO"><field name="VAR">RGB亮度</field></block></value><value name="GVALUE"><shadow type="math_number" id="sR;Fa2@=7yrMM|[uo$gw"><field name="NUM">0</field></shadow><block type="variables_get" id="bc!.0#{xOBm?j:n3XMc:"><field name="VAR">RGB亮度</field></block></value><value name="BVALUE"><shadow type="math_number" id="}}FSET[13~.9S8HXYib7"><field name="NUM">0</field></shadow><block type="variables_get" id="+yKcd+Eg;kBq~zl*qWp:"><field name="VAR">RGB亮度</field></block></value><next><block type="actuator_onboard_neopixel_write" id="gV/4dxJ0=woL/qE=BtG7"><next><block type="variables_set" id="Xvtd7aK}l*`1nM+dpi1q"><field name="VAR">当前亮度</field><value name="VALUE"><block type="sensor_mixgo_nova_LTR308" id="Zvrstc-@2(^~kM|YXuWv"><field name="direction">l</field></block></value><next><block type="system_print" id="H(AgV6l9|h~iz)a|@w)j"><value name="VAR"><shadow type="text" id="O)R6z/yHNYpLp~op7v0z"><field name="TEXT">Mixly</field></shadow><block type="variables_get" id="_9b9wiivwyoXy0)Is(0o"><field name="VAR">当前亮度</field></block></value><next><block type="controls_if" id="Nz(ivDeHu[k(;`*Di3N4"><mutation elseif="1" else="1"></mutation><value name="IF0"><block type="logic_compare" id="rGiS9MQ-n_0f,{rHlRdk"><field name="OP">LT</field><value name="A"><block type="variables_get" id=".g1G~9Kw/v(rQ:gUn1cz"><field name="VAR">当前亮度</field></block></value><value name="B"><block type="variables_get" id="/WozB|ZZQ/yuWFCs2w.e"><field name="VAR">亮度目标</field></block></value></block></value><statement name="DO0"><block type="math_selfcalcu" id="y-9px=MhF.#-8C8JFeXE"><field name="OP">ADD</field><value name="A"><shadow type="variables_get" id="g-PuU($Vb@FF=i)Gd0N0"><field name="VAR">a</field></shadow><block type="variables_get" id="GxH,|?DvQ;LJKwZ1))@B"><field name="VAR">RGB亮度</field></block></value><value name="B"><shadow type="math_number" id="hwx!ZcJ}D=B*rskC$W-s"><field name="NUM">1</field></shadow></value></block></statement><value name="IF1"><block type="logic_compare" id="rf1yC^U)PJoF0hJ+2.}t"><field name="OP">GT</field><value name="A"><block type="variables_get" id="9}-?mu9=iqp5(cbFSKC^"><field name="VAR">当前亮度</field></block></value><value name="B"><block type="variables_get" id="V@FJ6t^ChpjQ!p|Sx=vU"><field name="VAR">亮度目标</field></block></value></block></value><statement name="DO1"><block type="math_selfcalcu" id="-3^!B}av$!LtnP,F=,oR"><field name="OP">MINUS</field><value name="A"><shadow type="variables_get" id="l)SD9t0;W}c,0{ss^jb0"><field name="VAR">a</field></shadow><block type="variables_get" id="d=XWyhhfgj`qKUGveY,R"><field name="VAR">RGB亮度</field></block></value><value name="B"><shadow type="math_number" id="X=4!bZ;RxiJMI{XvGDc]"><field name="NUM">1</field></shadow></value></block></statement><next><block type="controls_delay_new" id=")`Q~{(^vFyxvYo6jcAch"><field name="Time">s</field><value name="DELAY_TIME"><shadow type="math_number" id=":20_h6=L#H-j:g9ed7BP"><field name="NUM">0.1</field></shadow></value></block></next></block></next></block></next></block></next></block></next></block></statement></block></next></block></next></block></xml><config>{}</config><code>ZnJvbSBtaXhnb19zYW50IGltcG9ydCBvbmJvYXJkX3JnYgpmcm9tIG1peGdvX3NhbnQgaW1wb3J0IG9uYm9hcmRfYWxzX2wKaW1wb3J0IG1hY2hpbmUKaW1wb3J0IHRpbWUKCgrkuq7luqbnm67moIcgPSA0MApSR0Lkuq7luqYgPSAwCndoaWxlIFRydWU6CiAgICBvbmJvYXJkX3JnYi5maWxsKChSR0Lkuq7luqYsIFJHQuS6ruW6piwgUkdC5Lqu5bqmKSkKICAgIG9uYm9hcmRfcmdiLndyaXRlKCkKICAgIOW9k+WJjeS6ruW6piA9IG9uYm9hcmRfYWxzX2wuYWxzX3ZpcygpCiAgICBwcmludCjlvZPliY3kuq7luqYpCiAgICBpZiDlvZPliY3kuq7luqYgPCDkuq7luqbnm67moIc6CiAgICAgICAgUkdC5Lqu5bqmICs9IDEKICAgIGVsaWYg5b2T5YmN5Lqu5bqmID4g5Lqu5bqm55uu5qCHOgogICAgICAgIFJHQuS6ruW6piAtPSAxCiAgICBlbHNlOgogICAgICAgIHBhc3MKICAgIHRpbWUuc2xlZXAoMC4xKQo=</code>>
|
||||
File diff suppressed because one or more lines are too long
@@ -0,0 +1 @@
|
||||
<xml version="Mixly 3.0 rc0" board="Python ESP32-S3@元控自强" shown="block"><block type="controls_whileUntil" id="tX7n|3c.1A+t2l]$8}dR" x="-2112" y="-573"><field name="MODE">WHILE</field><value name="BOOL"><shadow type="logic_boolean" id="/3-SR=RrHwDwTn}/BTg)"><field name="BOOL">TRUE</field></shadow></value><statement name="DO"><block type="actuator_led_bright" id="$v/z_`FbD5H[/8B!=`D4"><value name="led"><shadow type="number" id="uz}0n[L_BvfDL#h|lDXB"><field name="op">2</field></shadow></value><value name="bright"><shadow type="ledswitch" id="jQD$K=nZVhI_r]j]x5ge"><field name="flag">1</field></shadow></value><next><block type="do_while" id=".1t_0MB#`fqcK=;/1yD?"><field name="type">true</field><value name="select_data"><block type="sensor_mixgo_button_is_pressed" id="Mc!~r*=l_Q^}nOws`Jw$"><value name="btn"><shadow type="pins_button" id="nM|i/7?~$XP@Wcrag{uB"><field name="PIN">B1key</field></shadow></value></block></value><next><block type="actuator_led_bright" id="x/:WYT.cN6ratE}Q1)Q]"><value name="led"><shadow type="number" id="-}5Z!*ZOfxJ9Ty{wA/b$"><field name="op">2</field></shadow></value><value name="bright"><shadow type="ledswitch" id="^r8Y4P-t_m7pf$3.FfaT"><field name="flag">0</field></shadow></value><next><block type="controls_delay_new" id="r]EcrJ?#z8RA5wEdLojT"><field name="Time">s</field><value name="DELAY_TIME"><shadow type="math_number" id="v[1=u]zBtFx.YldKHSmW"><field name="NUM">1</field></shadow></value></block></next></block></next></block></next></block></statement></block></xml><config>{}</config><code>ZnJvbSBtaXhnb19zYW50IGltcG9ydCBvbmJvYXJkX2xlZAppbXBvcnQgbWl4Z29fc2FudAppbXBvcnQgdGltZQoKCndoaWxlIFRydWU6CiAgICBvbmJvYXJkX2xlZC5zZXRvbm9mZigyLDEpCiAgICB3aGlsZSBUcnVlOgogICAgICAgIGlmIChtaXhnb19zYW50LkIxa2V5LmlzX3ByZXNzZWQoKSk6CiAgICAgICAgICAgIGJyZWFrCiAgICBvbmJvYXJkX2xlZC5zZXRvbm9mZigyLDApCiAgICB0aW1lLnNsZWVwKDEpCg==</code>
|
||||
@@ -0,0 +1 @@
|
||||
<xml version="Mixly 3.0 rc0" board="Python ESP32-S3@元控自强" shown="block"><block type="variables_set" id="cxi3i.O@UrweG/+V)v5?" x="-1808" y="-548"><field name="VAR">亮灯时刻</field><value name="VALUE"><block type="math_number" id="#9AH;7$@FQ0/{(*cB8-g"><field name="NUM">0</field></block></value><next><block type="variables_set" id="C.HALW$81p8TZC92b:+4"><field name="VAR">按下时刻</field><value name="VALUE"><block type="math_number" id="nC(8:;ngVd$QaJcg@.Sk"><field name="NUM">0</field></block></value><next><block type="controls_whileUntil" id="AN)}U6G!fU|SPgIiR)Z+"><field name="MODE">WHILE</field><value name="BOOL"><shadow type="logic_boolean" id="L_hV$p8#k10/9i-^*=c]"><field name="BOOL">TRUE</field></shadow></value><statement name="DO"><block type="actuator_led_bright" id="HH7wE1L{7O{Z?eg:#ytE"><value name="led"><shadow type="number" id="CAHGV|[4*4a:4o20:rU]"><field name="op">2</field></shadow></value><value name="bright"><shadow type="ledswitch" id="/T4$h4}Pk#ZFzZTu2]#J"><field name="flag">1</field></shadow></value><next><block type="variables_set" id="D)FWY6;D#KH8@cXN)!r@"><field name="VAR">亮灯时刻</field><value name="VALUE"><block type="controls_millis" id="!f]Z5pm{^t|AyEV#[5y1"><field name="Time">ms</field></block></value><next><block type="do_while" id="oh2JDM{H4Yy[rz~SgAgC"><field name="type">true</field><value name="select_data"><block type="sensor_mixgo_button_is_pressed" id="L,2lC=xn-[kG3`.C7JS8"><value name="btn"><shadow type="pins_button" id="le2)8SF#?6!?4+dI`T1j"><field name="PIN">B1key</field></shadow></value></block></value><next><block type="actuator_led_bright" id="P-2J=u.P~c}Dd}t4?3XW"><value name="led"><shadow type="number" id="gDf|P$XlVjFy9f4+mer-"><field name="op">2</field></shadow></value><value name="bright"><shadow type="ledswitch" id="`!1aO;$kT|D#7yIy7hO$"><field name="flag">0</field></shadow></value><next><block type="variables_set" id="IY8sLb/uh/@qiR7}~kt)"><field name="VAR">按下时刻</field><value name="VALUE"><block type="controls_millis" id="UhyDKM1S18E+MA#_Y[xY"><field name="Time">ms</field></block></value><next><block type="controls_delay_new" id="M/T$L;XTEPga1^tSTL^/"><field name="Time">s</field><value name="DELAY_TIME"><shadow type="math_number" id="U=.r4wU~}p!gKCVh(PQg"><field name="NUM">1</field></shadow></value></block></next></block></next></block></next></block></next></block></next></block></statement></block></next></block></next></block></xml><config>{}</config><code>ZnJvbSBtaXhnb19zYW50IGltcG9ydCBvbmJvYXJkX2xlZAppbXBvcnQgdGltZQppbXBvcnQgbWl4Z29fc2FudAoKCuS6rueBr+aXtuWIuyA9IDAK5oyJ5LiL5pe25Yi7ID0gMAp3aGlsZSBUcnVlOgogICAgb25ib2FyZF9sZWQuc2V0b25vZmYoMiwxKQogICAg5Lqu54Gv5pe25Yi7ID0gdGltZS50aWNrc19tcygpCiAgICB3aGlsZSBUcnVlOgogICAgICAgIGlmIChtaXhnb19zYW50LkIxa2V5LmlzX3ByZXNzZWQoKSk6CiAgICAgICAgICAgIGJyZWFrCiAgICBvbmJvYXJkX2xlZC5zZXRvbm9mZigyLDApCiAgICDmjInkuIvml7bliLsgPSB0aW1lLnRpY2tzX21zKCkKICAgIHRpbWUuc2xlZXAoMSkK</code>
|
||||
@@ -0,0 +1 @@
|
||||
<xml version="Mixly 3.0 rc0" board="Python ESP32-S3@元控自强" shown="block"><block type="variables_set" id="R*,$o2*OX0YUh.R[R-ju" x="-1645" y="-513"><field name="VAR">亮灯时刻</field><value name="VALUE"><block type="math_number" id="FRjXul~Z]e6zpr/b^Hs0"><field name="NUM">0</field></block></value><next><block type="variables_set" id=",83:GC`JA2r)JHO[R+ey"><field name="VAR">按下时刻</field><value name="VALUE"><block type="math_number" id="faVVD5uE5{]9`c]?UDr}"><field name="NUM">0</field></block></value><next><block type="controls_whileUntil" id="PIz|-btAQZU7Va#0dloj"><field name="MODE">WHILE</field><value name="BOOL"><shadow type="logic_boolean" id="a38IHWFPRhlV-YNymuv!"><field name="BOOL">TRUE</field></shadow></value><statement name="DO"><block type="actuator_led_bright" id="Z+6*LOLHD6w.7Ka$rJ@y"><value name="led"><shadow type="number" id="w=ra}Z:.g|y`vZ7n2-!Z"><field name="op">2</field></shadow></value><value name="bright"><shadow type="ledswitch" id="tp:v9dl*39jVE}b|#i)v"><field name="flag">1</field></shadow></value><next><block type="variables_set" id=")N0xAz~z0J0Y4*,e1X|a"><field name="VAR">亮灯时刻</field><value name="VALUE"><block type="controls_millis" id="x^~u,ZrmlhbT2Itkgk)L"><field name="Time">ms</field></block></value><next><block type="do_while" id="jx/XTvxvN8x3{D|6gLD^"><field name="type">true</field><value name="select_data"><block type="sensor_mixgo_button_is_pressed" id="{xbX2i:@t2+05s:s8I08"><value name="btn"><shadow type="pins_button" id="YxNXEqC2Ng_AbrqiT@7q"><field name="PIN">B1key</field></shadow></value></block></value><next><block type="actuator_led_bright" id="PPz}:3Y;AW|nBlBW*Jw-"><value name="led"><shadow type="number" id="eggAa9|PC^{p6wVk7;(?"><field name="op">2</field></shadow></value><value name="bright"><shadow type="ledswitch" id="m#4@1S}Y1pCD}8CIftwc"><field name="flag">0</field></shadow></value><next><block type="variables_set" id="/L5zBHti8M$y`MD-VaEg"><field name="VAR">按下时刻</field><value name="VALUE"><block type="controls_millis" id="s]C6vD1TAq;1j`an7l9["><field name="Time">ms</field></block></value><next><block type="display_show_image_or_string_delay" id="9z@~`^+`@c$p!i5,`h-x"><field name="center">True</field><value name="data"><shadow type="text" id="oIT^@Mbu^;Ah@?)N^g~8"><field name="TEXT">Mixly</field></shadow><block type="number_to_text" id="]olbmw#vvasJD;+-[A6H"><value name="VAR"><shadow type="variables_get" id="k|OwJ|5~P|in(uxd$=pJ"><field name="VAR">x</field></shadow><block type="math_arithmetic" id="pG9ylYapPr!SE~u7fnY$"><field name="OP">MINUS</field><value name="A"><shadow type="math_number" id="rla2KaQ$s[[)u]yx.R:("><field name="NUM">1</field></shadow><block type="variables_get" id="jQ1F6WOV1-bftihtXvsO"><field name="VAR">按下时刻</field></block></value><value name="B"><shadow type="math_number" id="V2*Ms@wtly~z#mX-nZ@!"><field name="NUM">1</field></shadow><block type="variables_get" id="J:oHLyIT,^n.=XU40R_2"><field name="VAR">亮灯时刻</field></block></value></block></value></block></value><value name="space"><shadow type="math_number" id="MS*`C+:oXxKfb#0y{`[p"><field name="NUM">0</field></shadow></value><next><block type="controls_delay_new" id="#{m}IdGUWSC)1pN#MmD`"><field name="Time">s</field><value name="DELAY_TIME"><shadow type="math_number" id=",d,P+YN-YGNta!}CO_gj"><field name="NUM">1</field></shadow></value></block></next></block></next></block></next></block></next></block></next></block></next></block></statement></block></next></block></next></block></xml><config>{}</config><code>ZnJvbSBtaXhnb19zYW50IGltcG9ydCBvbmJvYXJkX2xlZAppbXBvcnQgdGltZQppbXBvcnQgbWl4Z29fc2FudApmcm9tIG1peGdvX3NhbnQgaW1wb3J0IG9uYm9hcmRfdGZ0CgoK5Lqu54Gv5pe25Yi7ID0gMArmjInkuIvml7bliLsgPSAwCndoaWxlIFRydWU6CiAgICBvbmJvYXJkX2xlZC5zZXRvbm9mZigyLDEpCiAgICDkuq7nga/ml7bliLsgPSB0aW1lLnRpY2tzX21zKCkKICAgIHdoaWxlIFRydWU6CiAgICAgICAgaWYgKG1peGdvX3NhbnQuQjFrZXkuaXNfcHJlc3NlZCgpKToKICAgICAgICAgICAgYnJlYWsKICAgIG9uYm9hcmRfbGVkLnNldG9ub2ZmKDIsMCkKICAgIOaMieS4i+aXtuWIuyA9IHRpbWUudGlja3NfbXMoKQogICAgb25ib2FyZF90ZnQuc2hvd3Moc3RyKCjmjInkuIvml7bliLsgLSDkuq7nga/ml7bliLspKSwgc3BhY2U9MCwgY2VudGVyPVRydWUpCiAgICB0aW1lLnNsZWVwKDEpCg==</code>uc2hvd3Moc3RyKChfRTZfOENfODlfRTRfQjhfOEJfRTZfOTdfQjZfRTVfODhfQkIgLSBfRTRfQkFfQUVfRTdfODFfQUZfRTZfOTdfQjZfRTVfODhfQkIpKSxzcGFjZSA9IDAsY2VudGVyID0gVHJ1ZSkKICAgIHRpbWUuc2xlZXAoMSkK</code>
|
||||
@@ -0,0 +1 @@
|
||||
<xml version="Mixly 3.0 rc0" board="Python ESP32-S3@元控自强" shown="block"><block type="variables_set" id="hl.{|##QyCannq?e/w#p" x="-1787" y="-538"><field name="VAR">亮灯时刻</field><value name="VALUE"><block type="math_number" id="bAA:*,Uayiok@*b]HrJ;"><field name="NUM">0</field></block></value><next><block type="variables_set" id="b)`Lr~NCfnJwa}lodrhn"><field name="VAR">按下时刻</field><value name="VALUE"><block type="math_number" id="H0^Rzo83$dW=p,p0:-LG"><field name="NUM">0</field></block></value><next><block type="controls_whileUntil" id="8xfqQ*h$pDn_1K~jN-R3"><field name="MODE">WHILE</field><value name="BOOL"><shadow type="logic_boolean" id="`DFZVe$1dce6mg#0L{q`"><field name="BOOL">TRUE</field></shadow></value><statement name="DO"><block type="controls_delay_new" id="EH+[9r,xcg7c1LT5w=zc"><field name="Time">s</field><value name="DELAY_TIME"><shadow type="math_number" id="38X7*K1.3~WX_*X^tbCa"><field name="NUM">1</field></shadow><block type="math_random" id="BRaWj`rg(^99ZHibz?e-"><field name="TYPE">float</field><value name="FROM"><shadow type="math_number" id=".,LRA7re;8oX@`I?W2ZR"><field name="NUM">1</field></shadow></value><value name="TO"><shadow type="math_number" id="r2LkG`G|i+D6C*BJ`?ud"><field name="NUM">2</field></shadow></value></block></value><next><block type="actuator_led_bright" id="bR$1sF~[k-sc_Q//_;.]"><value name="led"><shadow type="number" id="MQ(3vfq)9aXQJ-wZl*7R"><field name="op">2</field></shadow></value><value name="bright"><shadow type="ledswitch" id=",=Vv)0A,VYvhHEXu,sY|"><field name="flag">1</field></shadow></value><next><block type="variables_set" id="zAn3|Q]:Sno!NTc_$VeF"><field name="VAR">亮灯时刻</field><value name="VALUE"><block type="controls_millis" id="B|75Kky^w:pd:05+`P=x"><field name="Time">ms</field></block></value><next><block type="do_while" id="#v=_-pfyyag*[^u?Gvs{"><field name="type">true</field><value name="select_data"><block type="sensor_mixgo_button_is_pressed" id="tBf[wS-C#!iC.(`2nopx"><value name="btn"><shadow type="pins_button" id=",,3ld~4(t9J#D~wjfUZ3"><field name="PIN">B1key</field></shadow></value></block></value><next><block type="actuator_led_bright" id="KooBl/^VhHF=$)JnqBEl"><value name="led"><shadow type="number" id="=i8xp?O:jp8z|/Rba3lh"><field name="op">2</field></shadow></value><value name="bright"><shadow type="ledswitch" id="ujyS1$h4J*J#f$_ubKJ8"><field name="flag">0</field></shadow></value><next><block type="variables_set" id="0*`P7b*SUEv=z[G@a[1J"><field name="VAR">按下时刻</field><value name="VALUE"><block type="controls_millis" id="H2}[S*pyMq7t@4odKNlq"><field name="Time">ms</field></block></value><next><block type="display_show_image_or_string_delay" id="!+gEx*YK}rPoITg]3)YA"><field name="center">True</field><value name="data"><shadow type="text" id="sfy8/]nRQ-p(gN+{hXn5"><field name="TEXT">Mixly</field></shadow><block type="math_arithmetic" id="vyUUI)a?2E6?Rxj|:c=q"><field name="OP">MINUS</field><value name="A"><shadow type="math_number" id="nC3ChJWLK-[ilI7ocCx-"><field name="NUM">1</field></shadow><block type="variables_get" id="G7`2^^Du;T,@L$#)oGV}"><field name="VAR">按下时刻</field></block></value><value name="B"><shadow type="math_number" id="wjuq;ybC^.wwSd[HhB.L"><field name="NUM">1</field></shadow><block type="variables_get" id="kE{Ft*=@8;!kg7FRtz(q"><field name="VAR">亮灯时刻</field></block></value></block></value><value name="space"><shadow type="math_number" id=")upH#@7BBcVO45FEHaL]"><field name="NUM">0</field></shadow></value><value name="boolean"><shadow type="logic_boolean" id=":HepRkBeu@B$7A|q;qzw"><field name="BOOL">TRUE</field></shadow></value></block></next></block></next></block></next></block></next></block></next></block></next></block></statement></block></next></block></next></block></xml><config>{}</config><code>aW1wb3J0IHRpbWUKaW1wb3J0IHJhbmRvbQpmcm9tIG1peGdvX3NhbnQgaW1wb3J0IG9uYm9hcmRfbGVkCmltcG9ydCBtaXhnb19zYW50CmZyb20gbWl4Z29fc2FudCBpbXBvcnQgb25ib2FyZF90ZnQKCuS6rueBr+aXtuWIuyA9IDAK5oyJ5LiL5pe25Yi7ID0gMAp3aGlsZSBUcnVlOgogICAgdGltZS5zbGVlcCgocmFuZG9tLnVuaWZvcm0oMSwgMikpKQogICAgb25ib2FyZF9sZWQuc2V0b25vZmYoMiwxKQogICAg5Lqu54Gv5pe25Yi7ID0gdGltZS50aWNrc19tcygpCiAgICB3aGlsZSBUcnVlOgogICAgICAgIGlmIChtaXhnb19zYW50LkIxa2V5LmlzX3ByZXNzZWQoKSk6CiAgICAgICAgICAgIGJyZWFrCiAgICBvbmJvYXJkX2xlZC5zZXRvbm9mZigyLDApCiAgICDmjInkuIvml7bliLsgPSB0aW1lLnRpY2tzX21zKCkKICAgIG9uYm9hcmRfdGZ0LnNob3dzKOaMieS4i+aXtuWIuyAtIOS6rueBr+aXtuWIuywgc3BhY2U9MCwgY2VudGVyPVRydWUsc3luYz1UcnVlKQo=</code>fODFfQUZfRTZfOTdfQjZfRTVfODhfQkIpKSkK</code>
|
||||
@@ -0,0 +1 @@
|
||||
<xml version="Mixly 3.0 rc0" board="Python ESP32-S3@元控自强" shown="block"><block type="variables_set" id="8w.=n:yu0iH({x@H#Gp/" x="-2000" y="-625"><field name="VAR">亮灯时刻</field><value name="VALUE"><block type="math_number" id="su}+mz3ccDOC~XfAv~B="><field name="NUM">0</field></block></value><next><block type="variables_set" id="@2VRaWx@@qR(XDJjA*J-"><field name="VAR">按下时刻</field><value name="VALUE"><block type="math_number" id="`}e7sQ?S9`i}OzF31x=6"><field name="NUM">0</field></block></value><next><block type="variables_set" id="(EK9*,MDWxg#!42~7iYf"><field name="VAR">亮灯编号</field><value name="VALUE"><block type="math_number" id=".mYV7x0d-?u;Eh}IKFx4"><field name="NUM">0</field></block></value><next><block type="controls_whileUntil" id=";x|S;=(UCd(0#58GAkq`"><field name="MODE">WHILE</field><value name="BOOL"><shadow type="logic_boolean" id="LzQboOBnxnnUZGXuaM=z"><field name="BOOL">TRUE</field></shadow></value><statement name="DO"><block type="variables_set" id="0~x:05X5Zc_uJ$:i/b9b"><field name="VAR">亮灯编号</field><value name="VALUE"><block type="math_random" id="H~sytfd*k@*v)qU4A}2t"><field name="TYPE">int</field><value name="FROM"><shadow type="math_number" id="WMTx(.W0U//C2Cu(s*|("><field name="NUM">1</field></shadow></value><value name="TO"><shadow type="math_number" id="L_,{Nu3_n]#fBs942W_w"><field name="NUM">2</field></shadow></value></block></value><next><block type="controls_delay_new" id="e?BUKIv_qyyT=}n8r(dm"><field name="Time">s</field><value name="DELAY_TIME"><shadow type="math_number" id="Ur3=*P6ZWr2Uj{`|LJlQ"><field name="NUM">1</field></shadow><block type="math_random" id="Y9FJdysWZW`7-bqAEW^t"><field name="TYPE">float</field><value name="FROM"><shadow type="math_number" id="nW{?QS{6cvO_9HBkv]D;"><field name="NUM">1</field></shadow></value><value name="TO"><shadow type="math_number" id="_y:MW9GmaM,bM]yyvi`Y"><field name="NUM">2</field></shadow></value></block></value><next><block type="actuator_led_bright" id="r:}N@,rzR^YWD|Up:vu;"><value name="led"><shadow type="number" id="_*5;X+#Pb0l/0zp@O3jT"><field name="op">1</field></shadow><block type="variables_get" id="?ZOXoosjnMHx^EO[`6)p"><field name="VAR">亮灯编号</field></block></value><value name="bright"><shadow type="ledswitch" id="rfoU$Yi9U^RE)Zvx~G[="><field name="flag">1</field></shadow></value><next><block type="variables_set" id="y3GKXoixsTK!sc7c.1/H"><field name="VAR">亮灯时刻</field><value name="VALUE"><block type="controls_millis" id="*NgwP}5=?Qr+[v{Dh{#*"><field name="Time">ms</field></block></value><next><block type="controls_delay_new" id="vkvu_NZ6lU*(*n3:n*PB"><field name="Time">s</field><value name="DELAY_TIME"><shadow type="math_number" id="PX~.$m;x[$mHJy_kjkJT"><field name="NUM">1</field></shadow></value><next><block type="actuator_led_bright" id="[wyH,av$|vo3$wEIMJLH"><value name="led"><shadow type="number" id="_*5;X+#Pb0l/0zp@O3jT"><field name="op">1</field></shadow><block type="variables_get" id="i`2k[a+ez:;r9eJN`{qr"><field name="VAR">亮灯编号</field></block></value><value name="bright"><shadow type="ledswitch" id="TVF}RpeEb(4@_^Fm^D:P"><field name="flag">0</field></shadow></value></block></next></block></next></block></next></block></next></block></next></block></statement></block></next></block></next></block></next></block></xml><config>{}</config><code>aW1wb3J0IHJhbmRvbQppbXBvcnQgdGltZQpmcm9tIG1peGdvX3NhbnQgaW1wb3J0IG9uYm9hcmRfbGVkCgoK5Lqu54Gv5pe25Yi7ID0gMArmjInkuIvml7bliLsgPSAwCuS6rueBr+e8luWPtyA9IDAKd2hpbGUgVHJ1ZToKICAgIOS6rueBr+e8luWPtyA9IHJhbmRvbS5yYW5kaW50KDEsIDIpCiAgICB0aW1lLnNsZWVwKChyYW5kb20udW5pZm9ybSgxLCAyKSkpCiAgICBvbmJvYXJkX2xlZC5zZXRvbm9mZijkuq7nga/nvJblj7csMSkKICAgIOS6rueBr+aXtuWIuyA9IHRpbWUudGlja3NfbXMoKQogICAgdGltZS5zbGVlcCgxKQogICAgb25ib2FyZF9sZWQuc2V0b25vZmYo5Lqu54Gv57yW5Y+3LDApCg==</code>
|
||||
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
@@ -0,0 +1 @@
|
||||
<xml version="Mixly 3.0 rc0" board="Python ESP32-S3@元控自强" shown="block"><block type="controls_whileUntil" id="ft=Vq0(0CCngaWogssjS" x="-1405" y="-729"><field name="MODE">WHILE</field><value name="BOOL"><shadow type="logic_boolean" id="*dNmezeEs(^6thRVFw}-"><field name="BOOL">TRUE</field></shadow></value><statement name="DO"><block type="system_print" id="I]2S#r7r_*iDi}8fIL`4"><value name="VAR"><shadow type="text" id="$waXA.6Nu|odi_zEu439"><field name="TEXT">Mixly</field></shadow><block type="sensor_get_acceleration" id="6f5:?JzNTnp67P,Bq,r0"><field name="key"></field></block></value><next><block type="controls_delay_new" id="fw#:04O(;H$#^IVqeQz#"><field name="Time">s</field><value name="DELAY_TIME"><shadow type="math_number" id=".a2:f]+2Y0=lU~YcsRd="><field name="NUM">0.1</field></shadow></value></block></next></block></statement></block></xml><config>{}</config><code>aW1wb3J0IG1hY2hpbmUKZnJvbSBtaXhnb19zYW50IGltcG9ydCBvbmJvYXJkX2FjYwppbXBvcnQgdGltZQoKCndoaWxlIFRydWU6CiAgICBwcmludChvbmJvYXJkX2FjYy5hY2NlbGVyYXRpb24oKSkKICAgIHRpbWUuc2xlZXAoMC4xKQo=</code>
|
||||
@@ -0,0 +1 @@
|
||||
<xml version="Mixly 3.0 rc0" board="Python ESP32-S3@元控自强" shown="block"><block type="controls_whileUntil" id="HCp2@ye1s~X_b6xTnJm6" x="-1895" y="-1135"><field name="MODE">WHILE</field><value name="BOOL"><shadow type="logic_boolean" id="zClYRQio#D,|=a:mk/8,"><field name="BOOL">TRUE</field></shadow></value><statement name="DO"><block type="controls_forEach" id="aY4YSdRlVkI1xM0?NTLX"><value name="LIST"><shadow type="list_many_input" id="d!kRiK#rYY1@B?CuNE*2"><field name="CONTENT">0,1,2,3</field></shadow><block type="controls_range" id=":mNr.Y^b+sAXhU]qZlLl"><value name="FROM"><shadow type="math_number" id="dO!8})3wr}h:N1H.{8T1"><field name="NUM">0</field></shadow></value><value name="TO"><shadow type="math_number" id="|W{y,iYZL+gY16v[tHrV"><field name="NUM">12</field></shadow></value><value name="STEP"><shadow type="math_number" id="5@0E!xaDS{};!Hv8/Hn="><field name="NUM">1</field></shadow></value></block></value><value name="VAR"><shadow type="variables_get" id="r}WOU5vR/;W8pF;4L$ky"><field name="VAR">x</field></shadow></value><statement name="DO"><block type="controls_delay_new" id="ios}E-Nbv|(23Q^=V{0*"><field name="Time">s</field><value name="DELAY_TIME"><shadow type="math_number" id="#ZwCh8j?hI*7lY;ZqR6V"><field name="NUM">0.1</field></shadow></value><next><block type="display_clear" id="AvPq6?C^_[|_C9W(x3;j"><value name="boolean"><shadow type="logic_boolean" id="nEE!xe25y}=7r?{_!`-N"><field name="BOOL">FALSE</field></shadow></value><next><block type="onboard_tft_display_shape_rect" id="IVOlc~M:S:lYAw9,^d-)"><field name="shape">fill_rect</field><value name="x"><shadow type="math_number" id="+m?Ul(oFD}5MgNsD;ntM"><field name="NUM">20</field></shadow><block type="math_arithmetic" id="WB]$IL(/wpW`Ihh}.GFS"><field name="OP">MULTIPLY</field><value name="A"><shadow type="math_number" id="qq,+pmlvi=iVHK[`ddB;"><field name="NUM">10</field></shadow><block type="variables_get" id="a$Ext^V#fcimbHw~l6:!"><field name="VAR">x</field></block></value><value name="B"><shadow type="math_number" id="jMO1U|cN`/^|nttQARGT"><field name="NUM">20</field></shadow></value></block></value><value name="y"><shadow type="math_number" id="2jQ;GR=)kdQ]QQ@XABQ-"><field name="NUM">120</field></shadow></value><value name="w"><shadow type="math_number" id="Q(72IuUn024SlNb}E_+5"><field name="NUM">20</field></shadow></value><value name="h"><shadow type="math_number" id="4.u;)nBl$Ie0CU)e+gh!"><field name="NUM">15</field></shadow></value><value name="VAR"><shadow type="tuple_create_with_text_return" id="6myn!f.e#]5l66Y:$8`Y"><field name="TEXT">255,255,0</field></shadow><block type="display_color_seclet" id="+z:$~3V).JT1sh2TcxH)"><field name="COLOR">#ffffff</field></block></value><value name="boolean"><shadow type="logic_boolean" id="DN$73xcsx4)IVYfIh#S-"><field name="BOOL">TRUE</field></shadow></value></block></next></block></next></block></statement></block></statement></block></xml><config>{}</config><code>aW1wb3J0IHRpbWUKZnJvbSBtaXhnb19zYW50IGltcG9ydCBvbmJvYXJkX3RmdAoKd2hpbGUgVHJ1ZToKICAgIGZvciB4IGluIHJhbmdlKDAsIDEyLCAxKToKICAgICAgICB0aW1lLnNsZWVwKDAuMSkKICAgICAgICBvbmJvYXJkX3RmdC5maWxsKDAsc3luYz1GYWxzZSkKICAgICAgICBvbmJvYXJkX3RmdC5maWxsX3JlY3QoKHggKiAyMCksIDEyMCwgMjAsIDE1LCAweGZmZmYsc3luYz1UcnVlKQo=</code>
|
||||
@@ -0,0 +1 @@
|
||||
<xml version="Mixly 3.0 rc0" board="Python ESP32-S3@元控自强" shown="block"><block type="variables_set" id="OdOM7ZN8*|h)#Xfc3~G9" x="-1644" y="-960"><field name="VAR">x</field><value name="VALUE"><block type="math_number" id="U(7[[SzMu+)1l4Ob6*yR"><field name="NUM">6</field></block></value><next><block type="controls_whileUntil" id=";ZcO=*},x!u{c]y,_Azm"><field name="MODE">WHILE</field><value name="BOOL"><shadow type="logic_boolean" id="j4+Xqj-?2HTtoBvk5r3)"><field name="BOOL">TRUE</field></shadow></value><statement name="DO"><block type="controls_if" id="(gjUqq=@l^$$cRb{E3d~"><value name="IF0"><block type="logic_compare" id="o4-Hxu?e`v-^D[9D{#^r"><field name="OP">LT</field><value name="A"><block type="sensor_get_acceleration" id="$gxdE5YiY1BUp?XPOEfE"><field name="key">[0]</field></block></value><value name="B"><block type="math_number" id="3s2pwMN+OKBJFZ@L;Az|"><field name="NUM">-0.01</field></block></value></block></value><statement name="DO0"><block type="math_selfcalcu" id="/Vw7=jRXF5^oVI41IlcM"><field name="OP">MINUS</field><value name="A"><shadow type="variables_get" id="#yB0Z-AqFk*JTx-w}68H"><field name="VAR">x</field></shadow></value><value name="B"><shadow type="math_number" id="o)@66Jxt5$O-hW6L2@O,"><field name="NUM">1</field></shadow></value></block></statement><next><block type="controls_if" id="|?9*yvr]t5e`$0i$h$@7"><value name="IF0"><block type="logic_compare" id="q/JBWo`9MktFv`}|4u}c"><field name="OP">GT</field><value name="A"><block type="sensor_get_acceleration" id="vna`]r:@}J9ga]K$l!R~"><field name="key">[0]</field></block></value><value name="B"><block type="math_number" id="wn[`+RyylD_i$2q6vlFN"><field name="NUM">0.01</field></block></value></block></value><statement name="DO0"><block type="math_selfcalcu" id="WFR1M(_d*wV;Pyv!*G#-"><field name="OP">ADD</field><value name="A"><shadow type="variables_get" id="et_48f)(hGg*e{SP/yVu"><field name="VAR">x</field></shadow></value><value name="B"><shadow type="math_number" id="Gzb15bPFfzBvL8AA}InG"><field name="NUM">1</field></shadow></value></block></statement><next><block type="display_clear" id=":+Qw`dzn.-{PeR0rmk*5"><value name="boolean"><shadow type="logic_boolean" id="?Vj.5[BdGHllMK3g_fQ-"><field name="BOOL">FALSE</field></shadow></value><next><block type="onboard_tft_display_shape_rect" id="1I/:T?Q(K,zcnSvFJa$d"><field name="shape">fill_rect</field><value name="x"><shadow type="math_number" id="Rl3DIaRwgBi1$|67LPQ*"><field name="NUM">20</field></shadow><block type="math_arithmetic" id="l#]57x]f_hamt15;X}XN"><field name="OP">MULTIPLY</field><value name="A"><shadow type="math_number" id="WxBoz@Ci,=Fzau^o1oN."><field name="NUM">1</field></shadow><block type="variables_get" id="+kK.DHf]BltIwa}~E6^)"><field name="VAR">x</field></block></value><value name="B"><shadow type="math_number" id="6qfa`{SvmMAH@Q?(N#ya"><field name="NUM">20</field></shadow></value></block></value><value name="y"><shadow type="math_number" id="O4hI54|Nk1Aujbce!HLd"><field name="NUM">120</field></shadow></value><value name="w"><shadow type="math_number" id="1R0|C6$|7Xs*OrMs-@$0"><field name="NUM">20</field></shadow></value><value name="h"><shadow type="math_number" id=":^CUU3v#?K{FN)!:fh8T"><field name="NUM">15</field></shadow></value><value name="VAR"><shadow type="tuple_create_with_text_return" id="L=k5SLZ6iM#jC?cg^g2}"><field name="TEXT">255,255,0</field></shadow><block type="display_color_seclet" id="=+~Ji(UzyqTt-09Ag6Yf"><field name="COLOR">#ffffff</field></block></value><value name="boolean"><shadow type="logic_boolean" id="AR$.g4B/T)C2Id6my/cR"><field name="BOOL">TRUE</field></shadow></value><next><block type="controls_delay_new" id="8cAi~t!f@@,T1k+~W?Zr"><field name="Time">s</field><value name="DELAY_TIME"><shadow type="math_number" id="qsr1hReY2ztFCjxu0PwY"><field name="NUM">0.1</field></shadow></value></block></next></block></next></block></next></block></next></block></statement></block></next></block></xml><config>{}</config><code>ZnJvbSBtaXhnb19zYW50IGltcG9ydCBvbmJvYXJkX2FjYwpmcm9tIG1peGdvX3NhbnQgaW1wb3J0IG9uYm9hcmRfdGZ0CmltcG9ydCB0aW1lCgp4ID0gNgp3aGlsZSBUcnVlOgogICAgaWYgb25ib2FyZF9hY2MuYWNjZWxlcmF0aW9uKClbMF0gPCAtMC4wMToKICAgICAgICB4IC09IDEKICAgIGlmIG9uYm9hcmRfYWNjLmFjY2VsZXJhdGlvbigpWzBdID4gMC4wMToKICAgICAgICB4ICs9IDEKICAgIG9uYm9hcmRfdGZ0LmZpbGwoMCxzeW5jPUZhbHNlKQogICAgb25ib2FyZF90ZnQuZmlsbF9yZWN0KCh4ICogMjApLCAxMjAsIDIwLCAxNSwgMHhmZmZmLHN5bmM9VHJ1ZSkKICAgIHRpbWUuc2xlZXAoMC4xKQo=</code>
|
||||
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
@@ -0,0 +1 @@
|
||||
<xml version="Mixly 3.0 rc0" board="Python ESP32-S3@元控自强" shown="block"><block type="CREATE_CAMERA" id="?$Jy$C.}Hc|}T1-n,vxj" x="-1228" y="-731"><field name="cmd">R240X240</field><value name="HM"><shadow type="yesorno" id="NyJ;I)0tn;US+NtI)Ch4"><field name="state">False</field></shadow></value><value name="VF"><shadow type="yesorno" id="f34#|v^/Z4l*c`KH75xj"><field name="state">False</field></shadow></value><next><block type="controls_whileUntil" id="CqMYnQpYI|CcM`X=qY)1"><field name="MODE">WHILE</field><value name="BOOL"><shadow type="logic_boolean" id="?td]c~.*mYp.yIF|k487"><field name="BOOL">TRUE</field></shadow></value><statement name="DO"><block type="variables_set" id="sM7pG*0};H)XFCMjnF#3"><field name="VAR">image</field><value name="VALUE"><block type="GET_PICTURE_DATA_EXACT" id="/c#IA$pW^;MS=}(;u(?-"></block></value><next><block type="SCREEN_SHOW_CAM_GRAPH_SHOOT" id="(oERsTjD;;woUZ-`|;IU"><value name="SUB"><shadow type="variables_get" id="eQz/5C4Qd:{,yt)w3y5U"><field name="VAR">image</field></shadow></value><value name="boolean"><shadow type="logic_boolean" id="7d]NA[$(0xQN$r{pJ|ow"><field name="BOOL">TRUE</field></shadow></value></block></next></block></statement></block></next></block></xml><config>{"BurnSpeed":{"key":"921600","label":"921600"}}</config><code>ZnJvbSBjYW1lcmEgaW1wb3J0IENhbWVyYSxGcmFtZVNpemUKZnJvbSBtaXhnb19zYW50IGltcG9ydCBvbmJvYXJkX3RmdAoKCmNhbWVyYSA9IENhbWVyYShGcmFtZVNpemUuUjI0MFgyNDAsaG1pcnJvcj1GYWxzZSx2ZmxpcD1GYWxzZSkKd2hpbGUgVHJ1ZToKICAgIGltYWdlID0gY2FtZXJhLmNhcHR1cmUoKQogICAgb25ib2FyZF90ZnQuZGlzcGxheShpbWFnZSwgc3luYz1UcnVlKQo=</code>
|
||||
@@ -0,0 +1 @@
|
||||
<xml version="Mixly 3.0 rc0" board="Python ESP32-S3@元控自强" shown="block"><block type="CREATE_CAMERA" id="+/-VpLta(DM,3!na}MQ#" x="-1501" y="-1024"><field name="cmd">R240X240</field><value name="HM"><shadow type="yesorno" id="fJX0^c)h~srO$h6$tzlG"><field name="state">False</field></shadow></value><value name="VF"><shadow type="yesorno" id="y!Q[MC4PG1$^572XmzN2"><field name="state">False</field></shadow></value><next><block type="controls_whileUntil" id="a{h$=A`x!xL)!C(w)r]B"><field name="MODE">WHILE</field><value name="BOOL"><shadow type="logic_boolean" id="`}Kc:liMrwCb{`9JjC_R"><field name="BOOL">TRUE</field></shadow></value><statement name="DO"><block type="variables_set" id="@#,g#_y|VUXq8E[(AN-1"><field name="VAR">image</field><value name="VALUE"><block type="GET_PICTURE_DATA_EXACT" id="WNr7X!l}kFZw$RD7$qQc"></block></value><next><block type="SCREEN_SHOW_CAM_GRAPH_SHOOT" id="t7*_B9JY)ZgZn?s_92LP"><value name="SUB"><shadow type="variables_get" id="jUT:=0#=~_}{M/g*$YZR"><field name="VAR">image</field></shadow></value><value name="boolean"><shadow type="logic_boolean" id="lo]ZdP@3y+hw=qgIj6Ed"><field name="BOOL">FALSE</field></shadow></value><next><block type="variables_set" id="JyEC5|}AP;5?PRerB(ID"><field name="VAR">image</field><value name="VALUE"><block type="GET_SCREEN_IMAGE_SIZE" id="npR=wh{o[1ij/uQ*Ir#O"><value name="x"><shadow type="math_number" id="JFdT]nK##`z$67OegDUD"><field name="NUM">40</field></shadow></value><value name="y"><shadow type="math_number" id="LNV/Jv,sDv^li6!DSlby"><field name="NUM">40</field></shadow></value><value name="w"><shadow type="math_number" id="Q~K4TIMF;mkejgVvSKsH"><field name="NUM">80</field></shadow></value><value name="h"><shadow type="math_number" id="L}53x88XYp9Kia`@gbNS"><field name="NUM">80</field></shadow></value></block></value><next><block type="SCREEN_SHOW_CAM_GRAPH_SHOOT" id="wo`2v3,ZW6Y3j3@HkS1A"><value name="SUB"><shadow type="variables_get" id="qjJWr3fxl_?-2WAL+:KP"><field name="VAR">image</field></shadow></value><value name="boolean"><shadow type="logic_boolean" id="P]cg`/lPbp0CnnzTxH{l"><field name="BOOL">TRUE</field></shadow></value></block></next></block></next></block></next></block></statement></block></next></block></xml><config>{"BurnSpeed":{"key":"921600","label":"921600"}}</config><code>ZnJvbSBjYW1lcmEgaW1wb3J0IENhbWVyYSxGcmFtZVNpemUKZnJvbSBtaXhnb19zYW50IGltcG9ydCBvbmJvYXJkX3RmdAoKCmNhbWVyYSA9IENhbWVyYShGcmFtZVNpemUuUjI0MFgyNDAsaG1pcnJvcj1GYWxzZSx2ZmxpcD1GYWxzZSkKd2hpbGUgVHJ1ZToKICAgIGltYWdlID0gY2FtZXJhLmNhcHR1cmUoKQogICAgb25ib2FyZF90ZnQuZGlzcGxheShpbWFnZSwgc3luYz1GYWxzZSkKICAgIGltYWdlID0gb25ib2FyZF90ZnQuc2NyZWVuc2hvdCh4PTQwLHk9NDAsdz04MCxoPTgwKQogICAgb25ib2FyZF90ZnQuZGlzcGxheShpbWFnZSwgc3luYz1UcnVlKQo=</code>
|
||||
@@ -0,0 +1,2 @@
|
||||
<xml version="Mixly 3.0 rc0" board="Python ESP32-S3@元控自强" shown="block"><comment id="US(ac`Y8_}=Qk`TSHv~z" x="-654.6447219848633" y="-887.7999877929688" w="172.1663055419922" h="100">可以通过板卡文件管理上传图片到板子
|
||||
</comment><block type="SCREEN_DISPLAY_IMAGE" id="azEW0K3aVVj;QVOe#Us2" x="-1483" y="-1014"><field name="angle">0</field><value name="direct"><shadow type="text" id="^ZjllGAlJIo3yShP#gwN"><field name="TEXT">111.jpg</field></shadow></value><value name="boolean"><shadow type="logic_boolean" id="qIz?IsEAtitxX[-K7I#X"><field name="BOOL">TRUE</field></shadow></value><next><block type="controls_whileUntil" id="a{h$=A`x!xL)!C(w)r]B"><field name="MODE">WHILE</field><value name="BOOL"><shadow type="logic_boolean" id="`}Kc:liMrwCb{`9JjC_R"><field name="BOOL">TRUE</field></shadow></value></block></next></block></xml><config>{"BurnSpeed":{"key":"921600","label":"921600"}}</config><code>ZnJvbSBtaXhnb19zYW50IGltcG9ydCBvbmJvYXJkX3RmdAoKCm9uYm9hcmRfdGZ0LmRpc3BsYXkoJzExMS5qcGcnLHJvdGF0aW9uPTAsc3luYz1UcnVlKQp3aGlsZSBUcnVlOgogICAgcGFzcwo=</code>
|
||||
@@ -0,0 +1,2 @@
|
||||
<xml version="Mixly 3.0 rc0" board="Python ESP32-S3@元控自强" shown="block"><comment id="US(ac`Y8_}=Qk`TSHv~z" x="-654" y="-887" w="172.1663055419922" h="100">可以通过板卡文件管理上传图片到板子
|
||||
</comment><block type="SCREEN_DISPLAY_IMAGE_LOCATION" id="haY1v7Mh}no?G:i{pBM7" x="-1513" y="-1157"><field name="angle">0</field><value name="direct"><shadow type="text" id="B]7[/+|/v?ZvJ2Q|-3Hh"><field name="TEXT">111.jpg</field></shadow></value><value name="x"><shadow type="math_number" id="7z7vF6Vd6ZN3UrfAJZE*"><field name="NUM">0</field></shadow></value><value name="y"><shadow type="math_number" id="UJ9S*AGCo}}./xDhgINc"><field name="NUM">0</field></shadow></value><value name="boolean"><shadow type="logic_boolean" id="o@xkjFWfdpwL4gmS5|L)"><field name="BOOL">FALSE</field></shadow></value><next><block type="variables_set" id="Pn.Xk?xO1SRrIL3yqQPg"><field name="VAR">image</field><value name="VALUE"><block type="GET_SCREEN_IMAGE_SIZE" id="Cg$YL1w{XfL/JZ:VD2$("><value name="x"><shadow type="math_number" id="Tm[{.D4o.QstcM809Hp1"><field name="NUM">20</field></shadow></value><value name="y"><shadow type="math_number" id=",t9*Ezsj^JQE4(zT-7Uf"><field name="NUM">20</field></shadow></value><value name="w"><shadow type="math_number" id="Vdp4K#HtdNuJExc!$Dj4"><field name="NUM">200</field></shadow></value><value name="h"><shadow type="math_number" id="q.g^a[xC7T|^1irn0AB^"><field name="NUM">200</field></shadow></value></block></value><next><block type="SCREEN_SHOW_CAM_GRAPH_SHOOT_LOCATION" id="VyxaH(hCu}u.boo@#(]}"><value name="SUB"><shadow type="variables_get" id="HgeZ5-kfCfI3VW@mYemz"><field name="VAR">image</field></shadow></value><value name="x"><shadow type="math_number" id=":Xy8F}!7ZJ}TgG+OJMeO"><field name="NUM">20</field></shadow></value><value name="y"><shadow type="math_number" id=":Q?.-vDLJ[M8hC;Sd,oO"><field name="NUM">20</field></shadow></value><value name="boolean"><shadow type="logic_boolean" id="ylEaZRaG]-AlRX:]R6|l"><field name="BOOL">TRUE</field></shadow></value><next><block type="controls_whileUntil" id="(Fr;Y)IW+zY]IPDbF{#L"><field name="MODE">WHILE</field><value name="BOOL"><shadow type="logic_boolean" id="4l_D{#Wkuem(*2?vAw6I"><field name="BOOL">TRUE</field></shadow></value></block></next></block></next></block></next></block></xml><config>{"BurnSpeed":{"key":"921600","label":"921600"}}</config><code>ZnJvbSBtaXhnb19zYW50IGltcG9ydCBvbmJvYXJkX3RmdAoKCm9uYm9hcmRfdGZ0LmRpc3BsYXkoJzExMS5qcGcnLHg9MCx5PTAscm90YXRpb249MCxzeW5jPUZhbHNlKQppbWFnZSA9IG9uYm9hcmRfdGZ0LnNjcmVlbnNob3QoeD0yMCx5PTIwLHc9MjAwLGg9MjAwKQpvbmJvYXJkX3RmdC5kaXNwbGF5KGltYWdlLHg9MjAseT0yMCwgc3luYz1UcnVlKQp3aGlsZSBUcnVlOgogICAgcGFzcwo=</code>
|
||||
@@ -0,0 +1,2 @@
|
||||
<xml version="Mixly 3.0 rc0" board="Python ESP32-S3@元控自强" shown="block"><comment id="US(ac`Y8_}=Qk`TSHv~z" x="-941.2343199432323" y="-977.8827223410711" w="172.1663055419922" h="100">可以通过板卡文件管理上传图片到板子,有些图片格式不支持
|
||||
</comment><block type="SCREEN_DISPLAY_IMAGE" id="MmE=|J{Zk_:u-xZ`1m.r" x="-1716" y="-1094"><field name="angle">0</field><value name="direct"><shadow type="text" id="aD~d4Iq#o~NvWAec.UWJ"><field name="TEXT">1.jpg</field></shadow></value><value name="boolean"><shadow type="logic_boolean" id="^n_!xVS:HRk(:i+}Oa2+"><field name="BOOL">TRUE</field></shadow></value><next><block type="controls_whileUntil" id="VW4Y~nn{:J9Hv?_@qX]i"><field name="MODE">WHILE</field><value name="BOOL"><shadow type="logic_boolean" id="Z`y2YO=.$2W8zwGrXZ/D"><field name="BOOL">TRUE</field></shadow></value><statement name="DO"><block type="controls_if" id=";*(38=?k`Yyvqu05cAMt"><value name="IF0"><block type="sensor_mixgo_button_was_pressed" id="r=/LWDxTzLH({{UpDdc,"><value name="btn"><shadow type="pins_button" id="iCB$=u-KlSes_klG!6D1"><field name="PIN">A1key</field></shadow></value></block></value><statement name="DO0"><block type="SCREEN_DISPLAY_IMAGE" id="*7!/fcX^I+yyBs]FPB5_"><field name="angle">90</field><value name="direct"><shadow type="text" id="b6[.r{m=_~fw:)3+jjx="><field name="TEXT">1.jpg</field></shadow></value><value name="boolean"><shadow type="logic_boolean" id=":a8vLM|C1]9iu(]pvWWj"><field name="BOOL">TRUE</field></shadow></value></block></statement><next><block type="controls_if" id="3iui)O[X(m!8Mr??Ulet"><value name="IF0"><block type="sensor_mixgo_button_was_pressed" id="C{.j(ab,AB37,-]NUFN!"><value name="btn"><shadow type="pins_button" id="fVJ!:G2TJO`6u9evwmHZ"><field name="PIN">A2key</field></shadow></value></block></value><statement name="DO0"><block type="SCREEN_DISPLAY_IMAGE" id="[Lz[Ii-Q9n3u{D?E}kgd"><field name="angle">180</field><value name="direct"><shadow type="text" id="{,dS4s]y4Xr*bhbrQ#qG"><field name="TEXT">1.jpg</field></shadow></value><value name="boolean"><shadow type="logic_boolean" id="1}:0kbq95zgbN@A|!RdU"><field name="BOOL">TRUE</field></shadow></value></block></statement><next><block type="controls_if" id="v-Hhd]:.;y0F;4?uS|)s"><value name="IF0"><block type="sensor_mixgo_button_was_pressed" id="Da`kA$AeUJ}.:6A#n#)."><value name="btn"><shadow type="pins_button" id="Ru_4tm{nSkY1WUo`M*th"><field name="PIN">A3key</field></shadow></value></block></value><statement name="DO0"><block type="SCREEN_DISPLAY_IMAGE" id="J1BEqpM$l=#0^7D@rrk@"><field name="angle">270</field><value name="direct"><shadow type="text" id="o4te3K:|zz0Rd?+$0{2i"><field name="TEXT">1.jpg</field></shadow></value><value name="boolean"><shadow type="logic_boolean" id="BNb$WEEW2UM40Hz?Hoy#"><field name="BOOL">TRUE</field></shadow></value></block></statement><next><block type="controls_if" id="QaO.O^Dqxsh}p)1oQy{m"><value name="IF0"><block type="sensor_mixgo_button_was_pressed" id="`J`fb|AlTG?FG(Qyp$B{"><value name="btn"><shadow type="pins_button" id="K`,KzDArX7Bo|r|~M~-u"><field name="PIN">A4key</field></shadow></value></block></value><statement name="DO0"><block type="SCREEN_DISPLAY_IMAGE" id="`yQ}5oPQ,j;p~#B1XpnN"><field name="angle">0</field><value name="direct"><shadow type="text" id="F,}EcVxoD0/~QNp}i`4c"><field name="TEXT">1.jpg</field></shadow></value><value name="boolean"><shadow type="logic_boolean" id="JE3}*(rgLHT_J!TsSvEz"><field name="BOOL">TRUE</field></shadow></value></block></statement></block></next></block></next></block></next></block></statement></block></next></block></xml><config>{"BurnSpeed":{"key":"921600","label":"921600"}}</config><code>ZnJvbSBtaXhnb19zYW50IGltcG9ydCBvbmJvYXJkX3RmdAppbXBvcnQgbWl4Z29fc2FudAoKCm9uYm9hcmRfdGZ0LmRpc3BsYXkoJzEuanBnJyxyb3RhdGlvbj0wLHN5bmM9VHJ1ZSkKd2hpbGUgVHJ1ZToKICAgIGlmIG1peGdvX3NhbnQuQTFrZXkud2FzX3ByZXNzZWQoKToKICAgICAgICBvbmJvYXJkX3RmdC5kaXNwbGF5KCcxLmpwZycscm90YXRpb249OTAsc3luYz1UcnVlKQogICAgaWYgbWl4Z29fc2FudC5BMmtleS53YXNfcHJlc3NlZCgpOgogICAgICAgIG9uYm9hcmRfdGZ0LmRpc3BsYXkoJzEuanBnJyxyb3RhdGlvbj0xODAsc3luYz1UcnVlKQogICAgaWYgbWl4Z29fc2FudC5BM2tleS53YXNfcHJlc3NlZCgpOgogICAgICAgIG9uYm9hcmRfdGZ0LmRpc3BsYXkoJzEuanBnJyxyb3RhdGlvbj0yNzAsc3luYz1UcnVlKQogICAgaWYgbWl4Z29fc2FudC5BNGtleS53YXNfcHJlc3NlZCgpOgogICAgICAgIG9uYm9hcmRfdGZ0LmRpc3BsYXkoJzEuanBnJyxyb3RhdGlvbj0wLHN5bmM9VHJ1ZSkK</code>
|
||||
@@ -0,0 +1,2 @@
|
||||
<xml version="Mixly 3.0 rc0" board="Python ESP32-S3@元控自强" shown="block"><comment id="US(ac`Y8_}=Qk`TSHv~z" x="-1191.4423899858448" y="-939.7343948292935" w="172.1663055419922" h="100">可以通过板卡文件管理上传图片到板子,有些图片格式不支持
|
||||
</comment><block type="variables_set" id="$(A.$`_A)xsLruZUz{4U" x="-1686" y="-1190"><field name="VAR">x</field><value name="VALUE"><block type="math_number" id="6**~oJ6VR:WIe.,I50m7"><field name="NUM">0</field></block></value><next><block type="variables_set" id="yl^`EZ!4;Y8O?,_8z1U("><field name="VAR">y</field><value name="VALUE"><block type="math_number" id="_0L#V3zOT1KL9JVF,cP]"><field name="NUM">0</field></block></value><next><block type="controls_whileUntil" id="VW4Y~nn{:J9Hv?_@qX]i"><field name="MODE">WHILE</field><value name="BOOL"><shadow type="logic_boolean" id="Z`y2YO=.$2W8zwGrXZ/D"><field name="BOOL">TRUE</field></shadow></value><statement name="DO"><block type="SCREEN_DISPLAY_IMAGE_LOCATION" id="RE#+6-`GFmr*6lGC8HO-"><field name="angle">0</field><value name="direct"><shadow type="text" id="?f;ag.qHF$p=|L/zwq0:"><field name="TEXT">1.jpg</field></shadow></value><value name="x"><shadow type="math_number" id=",7PF|}zjK/w;!KUD8wIG"><field name="NUM">0</field></shadow><block type="variables_get" id="V~F6mHVV{,U0|}s~_0@M"><field name="VAR">x</field></block></value><value name="y"><shadow type="math_number" id="QvpZ1(t2j?$qffi0ufX-"><field name="NUM">0</field></shadow><block type="variables_get" id="ps]qrPHwPc#W)_MvI+`6"><field name="VAR">y</field></block></value><value name="boolean"><shadow type="logic_boolean" id="9|wr2g{G8Y`!!;i6V5C;"><field name="BOOL">TRUE</field></shadow></value><next><block type="controls_if" id=";*(38=?k`Yyvqu05cAMt"><value name="IF0"><block type="sensor_mixgo_button_was_pressed" id="r=/LWDxTzLH({{UpDdc,"><value name="btn"><shadow type="pins_button" id="iCB$=u-KlSes_klG!6D1"><field name="PIN">A1key</field></shadow></value></block></value><statement name="DO0"><block type="math_selfcalcu" id="D.~~`FxO~2)BupEBynWN"><field name="OP">ADD</field><value name="A"><shadow type="variables_get" id="Iw9+[B/4Q=h=g/5JWB)I"><field name="VAR">y</field></shadow></value><value name="B"><shadow type="math_number" id="X*(}u[X4(pZdrm/kwh8T"><field name="NUM">10</field></shadow></value></block></statement><next><block type="controls_if" id="3iui)O[X(m!8Mr??Ulet"><value name="IF0"><block type="sensor_mixgo_button_was_pressed" id="C{.j(ab,AB37,-]NUFN!"><value name="btn"><shadow type="pins_button" id="fVJ!:G2TJO`6u9evwmHZ"><field name="PIN">A2key</field></shadow></value></block></value><statement name="DO0"><block type="math_selfcalcu" id="8plkGH@}+ruEnP}-{0ZV"><field name="OP">MINUS</field><value name="A"><shadow type="variables_get" id="hwrZ9au!5!Hl6#kPr!qN"><field name="VAR">x</field></shadow></value><value name="B"><shadow type="math_number" id="XnF?{-(]K+GtH}dHVVx?"><field name="NUM">10</field></shadow></value></block></statement><next><block type="controls_if" id="v-Hhd]:.;y0F;4?uS|)s"><value name="IF0"><block type="sensor_mixgo_button_was_pressed" id="Da`kA$AeUJ}.:6A#n#)."><value name="btn"><shadow type="pins_button" id="Ru_4tm{nSkY1WUo`M*th"><field name="PIN">A3key</field></shadow></value></block></value><statement name="DO0"><block type="math_selfcalcu" id="hYForH(?4=!UD/N;0IzL"><field name="OP">MINUS</field><value name="A"><shadow type="variables_get" id="3,KxW[YO2Xu@1,,)b_lH"><field name="VAR">y</field></shadow></value><value name="B"><shadow type="math_number" id="XE8IS/J8z]~ue)p;TNq#"><field name="NUM">10</field></shadow></value></block></statement><next><block type="controls_if" id="QaO.O^Dqxsh}p)1oQy{m"><value name="IF0"><block type="sensor_mixgo_button_was_pressed" id="`J`fb|AlTG?FG(Qyp$B{"><value name="btn"><shadow type="pins_button" id="K`,KzDArX7Bo|r|~M~-u"><field name="PIN">A4key</field></shadow></value></block></value><statement name="DO0"><block type="math_selfcalcu" id="@8UF0{302cIV[Va`0S-X"><field name="OP">ADD</field><value name="A"><shadow type="variables_get" id="+aes)l[43CwgU*3i.w?1"><field name="VAR">x</field></shadow></value><value name="B"><shadow type="math_number" id=",x62pcn*@S!vzkE$z6WI"><field name="NUM">10</field></shadow></value></block></statement></block></next></block></next></block></next></block></next></block></statement></block></next></block></next></block></xml><config>{"BurnSpeed":{"key":"921600","label":"921600"}}</config><code>ZnJvbSBtaXhnb19zYW50IGltcG9ydCBvbmJvYXJkX3RmdAppbXBvcnQgbWl4Z29fc2FudAoKCnggPSAwCnkgPSAwCndoaWxlIFRydWU6CiAgICBvbmJvYXJkX3RmdC5kaXNwbGF5KCcxLmpwZycseD14LHk9eSxyb3RhdGlvbj0wLHN5bmM9VHJ1ZSkKICAgIGlmIG1peGdvX3NhbnQuQTFrZXkud2FzX3ByZXNzZWQoKToKICAgICAgICB5ICs9IDEwCiAgICBpZiBtaXhnb19zYW50LkEya2V5Lndhc19wcmVzc2VkKCk6CiAgICAgICAgeCAtPSAxMAogICAgaWYgbWl4Z29fc2FudC5BM2tleS53YXNfcHJlc3NlZCgpOgogICAgICAgIHkgLT0gMTAKICAgIGlmIG1peGdvX3NhbnQuQTRrZXkud2FzX3ByZXNzZWQoKToKICAgICAgICB4ICs9IDEwCg==</code>
|
||||
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
@@ -0,0 +1 @@
|
||||
<xml version="Mixly 3.0 rc0" board="Python ESP32-S3@元控自强" shown="block"><block type="CREATE_CAMERA" id="DWv7G^2Oav:RWXynvku#" x="-1580" y="-410"><field name="cmd">R240X240</field><value name="HM"><shadow type="yesorno" id="9Ck2tA};3eaVj+xiB^qw"><field name="state">False</field></shadow></value><value name="VF"><shadow type="yesorno" id="SK6Q#g^+N5rG+h?mc0)v"><field name="state">False</field></shadow></value><next><block type="AI_CAMERA_INIT" id="~l_{iFN^kRug{?xGPRXF"><field name="kind">ImageNet</field><value name="SUB"><shadow type="variables_get" id="/!74|@b:`jIdr8jgc[Eb"><field name="VAR">Model</field></shadow></value><value name="WIDTH"><shadow type="MODEL_INIT_WIDTH" id=")4G.BojJ,Q4*LALC;O?B"><field name="width">240</field></shadow></value><value name="HEIGHT"><shadow type="MODEL_INIT_HEIGHT" id="Z+!P3mO8+]*1|qdX6)u+"><field name="height">240</field></shadow></value><next><block type="controls_whileUntil" id="l}E$_.h.wyif;RYW)VM_"><field name="MODE">WHILE</field><value name="BOOL"><shadow type="logic_boolean" id="yBCB?xoK#Stldi}O*pI7"><field name="BOOL">TRUE</field></shadow></value><statement name="DO"><block type="variables_set" id="bOzFdMf,Ypus2I59[;vp"><field name="VAR">image</field><value name="VALUE"><block type="GET_PICTURE_DATA_EXACT" id="~~w+NQ3f)]VH1HQ|aK@K"></block></value><next><block type="SCREEN_SHOW_CAM_GRAPH_SHOOT" id="nv{L`9!uz#^.1j*7rX1m"><value name="SUB"><shadow type="variables_get" id="207bvx54g4UZXsqj^9;A"><field name="VAR">image</field></shadow></value><value name="boolean"><shadow type="logic_boolean" id="0l2iw)H1IqL3Z={iY(hB"><field name="BOOL">FALSE</field></shadow></value><next><block type="variables_set" id="a3xB:=HmG{xg.MYM@KV)"><field name="VAR">_results</field><value name="VALUE"><block type="MODEL_RUN" id="br;fAL2cRSQhm9X?SjwW"><value name="SUB"><shadow type="variables_get" id="*vxrOT5C+bsY+1:;EOdf"><field name="VAR">Model</field></shadow></value><value name="FRAME"><shadow type="variables_get" id="*SVc*wk/JDXd;F:=Fd(7"><field name="VAR">image</field></shadow></value></block></value><next><block type="controls_if" id="5*Rsv?tgObT#dg:l)GsY"><value name="IF0"><block type="MODEL_WHETHER_RUN_SUCCEED" id="dp2OUQ4Pb}nHzm4!t`Z?"><value name="SUB"><shadow type="variables_get" id="K^#g?xuW^Rnlm+I$T|BJ"><field name="VAR">_results</field></shadow></value></block></value><statement name="DO0"><block type="esp32_onboard_music_pitch_with_time" id="{V,rO+ka5{UvNWb.wH(H"><value name="pitch"><shadow type="pins_tone_notes" id="rOgsX1w]/H=(fpfXou`c"><field name="PIN">659</field></shadow></value><value name="time"><shadow type="math_number" id="KIH+QjR`9:mNr7Gi76jP"><field name="NUM">100</field></shadow></value><next><block type="system_print" id="j$;|VRD6ABc;gER8a+2?"><value name="VAR"><shadow type="text" id="we84-G$-vxIN?t;G,[f:"><field name="TEXT">Mixly</field></shadow><block type="text_format_noreturn" id="(k`A2:O,1vh)bv$1fl;_" inline="false"><mutation items="2"></mutation><value name="VAR"><shadow type="text" id="`k-Ff4D/|d0Ua)?o$H2`"><field name="TEXT"> 内容: {} 置信度:{}</field></shadow></value><value name="ADD0"><block type="GET_NO_RECOGNITION" id=")LdTQi[q^x5Yu`|*(,d;"><field name="kind">ImageNet</field><value name="SUB"><shadow type="variables_get" id="$(mE4v8gqYaA=o(8$_yj"><field name="VAR">_results</field></shadow></value><value name="NO"><shadow type="math_number" id="@kG;|U1[:F95bS*1^g8z"><field name="NUM">0</field></shadow></value></block></value><value name="ADD1"><block type="GET_NO_CAT_OR_FACE_RECOGNITION" id="-`k4rzS1SK$e5k7JS!U0"><field name="kind">ImageNet</field><value name="SUB"><shadow type="variables_get" id="a1)|--xF|8AcKrsl,f*h"><field name="VAR">_results</field></shadow></value><value name="NO"><shadow type="math_number" id="n^XdAWxZvqPxR|7Od8D`"><field name="NUM">0</field></shadow></value></block></value></block></value></block></next></block></statement><next><block type="display_available" id="gvS$IyF3z!wIx^5h5WfE"></block></next></block></next></block></next></block></next></block></statement></block></next></block></next></block></xml><config>{"BurnSpeed":{"key":"921600","label":"921600"}}</config><code>ZnJvbSBjYW1lcmEgaW1wb3J0IENhbWVyYSxGcmFtZVNpemUKaW1wb3J0IGVzcF9kbApmcm9tIG1peGdvX3NhbnQgaW1wb3J0IG9uYm9hcmRfdGZ0CmZyb20gbWl4Z29fc2FudCBpbXBvcnQgb25ib2FyZF9tdXNpYwppbXBvcnQgbWFjaGluZQoKCmNhbWVyYSA9IENhbWVyYShGcmFtZVNpemUuUjI0MFgyNDAsaG1pcnJvcj1GYWxzZSx2ZmxpcD1GYWxzZSkKTW9kZWwgPSBlc3BfZGwuSW1hZ2VOZXQod2lkdGg9MjQwLCBoZWlnaHQ9MjQwKQp3aGlsZSBUcnVlOgogICAgaW1hZ2UgPSBjYW1lcmEuY2FwdHVyZSgpCiAgICBvbmJvYXJkX3RmdC5kaXNwbGF5KGltYWdlLCBzeW5jPUZhbHNlKQogICAgX3Jlc3VsdHMgPSBNb2RlbC5ydW4oaW1hZ2UuaW1hZ2UpCiAgICBpZiBlc3BfZGwuYW5hbHl6ZShfcmVzdWx0cyk6CiAgICAgICAgb25ib2FyZF9tdXNpYy5waXRjaF90aW1lKDY1OSwgMTAwKQogICAgICAgIHByaW50KCcg5YaF5a65OiB7fSDnva7kv6HluqY6e30nLmZvcm1hdChlc3BfZGwuYW5hbHl6ZShfcmVzdWx0cywiZGF0YSIsMCksIGVzcF9kbC5hbmFseXplKF9yZXN1bHRzLCJzY29yZSIsMCkpKQogICAgb25ib2FyZF90ZnQud3JpdGUoKQo=</code>
|
||||
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
@@ -0,0 +1 @@
|
||||
<xml version="Mixly 3.0 rc0" board="Python ESP32-S3@元控自强" shown="block"><block type="controls_whileUntil" id="B~p)EdlJTeMF4@koZ]UG" x="-3763" y="-845"><field name="MODE">WHILE</field><value name="BOOL"><shadow type="logic_boolean" id="(vmv0^9KkB#G{.Ji5/$m"><field name="BOOL">TRUE</field></shadow></value><statement name="DO"><block type="controls_delay_new" id="G!NQ:q;XJwG.AY*bm10}"><field name="Time">s</field><value name="DELAY_TIME"><shadow type="math_number" id="/aFS9]sB^5:5r.8Q|aHK"><field name="NUM">1</field></shadow></value><next><block type="system_print" id="ko2[Z5ynRhoW*YTF;`/M"><value name="VAR"><shadow type="text" id="^165iIe~972e0U_@fpC3"><field name="TEXT">Mixly</field></shadow><block type="controls_millis" id="x+gZU45ID)5CB45zGU3~"><field name="Time">ms</field></block></value></block></next></block></statement></block></xml><config>{}</config><code>aW1wb3J0IHRpbWUKaW1wb3J0IG1hY2hpbmUKCndoaWxlIFRydWU6CiAgICB0aW1lLnNsZWVwKDEpCiAgICBwcmludCh0aW1lLnRpY2tzX21zKCkpCg==</code>
|
||||
@@ -0,0 +1 @@
|
||||
<xml version="Mixly 3.0 rc0" board="Python ESP32-S3@元控自强" shown="block"><variables><variable id="ok:ro0iEW(eJAtg/iAsj">tim</variable></variables><block type="system_timer_init" id="}UG56dfzH2VTG@]00U:J" x="-3798" y="-1049"><value name="SUB"><shadow type="variables_get" id="?Q7:YOvm;p6neeo]L}Tf"><field name="VAR">tim</field></shadow></value><next><block type="system_timer" id="(IEb,i`[~]39P4ee[F:v"><field name="mode">PERIODIC</field><value name="VAR"><shadow type="variables_get" id="`ZZFhX(,Zz,Ba}3L!Z*^"><field name="VAR">tim</field></shadow></value><value name="period"><shadow type="math_number" id="TzuFIoMu,|FBAztF.;pd"><field name="NUM">1000</field></shadow></value><value name="callback"><shadow type="factory_block_return" id="o6VM{76TXqYKwNu7B);|"><field name="VALUE">tim_callback</field></shadow></value><next><block type="controls_whileUntil" id="gb_q=z7C+X~+,c_|eJ6X"><field name="MODE">WHILE</field><value name="BOOL"><shadow type="logic_boolean" id="YZ@`vOwaHO6b2Nd6=`*$"><field name="BOOL">TRUE</field></shadow></value></block></next></block></next></block><block type="procedures_defnoreturn" id="DzM[Xx5;j(hXYQ*{/dYw" x="-3798" y="-879"><mutation><arg name="tim" varid="ok:ro0iEW(eJAtg/iAsj"></arg></mutation><field name="NAME">tim_callback</field><statement name="STACK"><block type="system_print" id="Xf[o5mc7}m}3pR8gg_y="><value name="VAR"><block type="controls_millis" id="5}u@ygem2PeOcQ)b:^IR"><field name="Time">ms</field></block></value></block></statement></block></xml><config>{}</config><code>aW1wb3J0IG1hY2hpbmUKaW1wb3J0IHRpbWUKCmRlZiB0aW1fY2FsbGJhY2sodGltKToKICAgIHByaW50KHRpbWUudGlja3NfbXMoKSkKCgp0aW0gPSBtYWNoaW5lLlRpbWVyKDApCnRpbS5pbml0KHBlcmlvZCA9IDEwMDAsIG1vZGU9bWFjaGluZS5UaW1lci5QRVJJT0RJQywgY2FsbGJhY2s9dGltX2NhbGxiYWNrKQp3aGlsZSBUcnVlOgogICAgcGFzcwo=</code>ode>=</code>
|
||||
@@ -0,0 +1 @@
|
||||
<xml version="Mixly 3.0 rc0" board="Python ESP32-S3@元控自强" shown="block"><variables><variable id="ok:ro0iEW(eJAtg/iAsj">tim</variable></variables><block type="variables_set" id="SqdB6]EyPd)iNf#jhPT:" x="-3802" y="-1080"><field name="VAR">计时</field><value name="VALUE"><block type="math_number" id="_58M7xoPWzR9?EJ0Y/_~"><field name="NUM">0</field></block></value><next><block type="system_timer_init" id="wLFtUv;AZ_Eg|/N*h/j{"><value name="SUB"><shadow type="variables_get" id="susEb`WCEAaswrDbw4p1"><field name="VAR">tim</field></shadow></value><next><block type="system_timer" id="Nua?WY[si7:IVwYF*0-5"><field name="mode">PERIODIC</field><value name="VAR"><shadow type="variables_get" id="H+HN_eS2Acp:{VfxWAJ]"><field name="VAR">tim</field></shadow></value><value name="period"><shadow type="math_number" id="mB,6h_59h-1ZQy-(=[2-"><field name="NUM">100</field></shadow></value><value name="callback"><shadow type="factory_block_return" id="bA(tyqTvxbBVBp:I,V~*"><field name="VALUE">tim_callback</field></shadow></value></block></next></block></next></block><block type="procedures_defnoreturn" id="HCPP8cWv7J~zuk8vnpO*" x="-3798" y="-955"><mutation><arg name="tim" varid="ok:ro0iEW(eJAtg/iAsj"></arg></mutation><field name="NAME">tim_callback</field><statement name="STACK"><block type="variables_global" id="/by`Iu{Gtgd!=ocxM4t("><value name="VAR"><block type="variables_get" id="WTUcy2Gl*ptFh_)Kt(rG"><field name="VAR">计时</field></block></value><next><block type="math_selfcalcu" id="HDrp_a$58|^LvijXV=XZ"><field name="OP">ADD</field><value name="A"><shadow type="variables_get" id="LT[T$[un!L;2N:K:c9/$"><field name="VAR">计时</field></shadow></value><value name="B"><shadow type="math_number" id="R9hv.k2FelWSywdtf{_0"><field name="NUM">1</field></shadow></value></block></next></block></statement></block><block type="controls_whileUntil" id="{!}4XIw?$/K*K0e._RP[" x="-3796" y="-826"><field name="MODE">WHILE</field><value name="BOOL"><shadow type="logic_boolean" id="j8L|@Id)0?C0SR32}^$$"><field name="BOOL">TRUE</field></shadow></value><statement name="DO"><block type="display_show_image_or_string_delay" id="SdS_6]7A(QL1y3L0k!F^"><field name="center">True</field><value name="data"><shadow type="text" id="dCU7otf^q-1~8@oE955A"><field name="TEXT">Mixly</field></shadow><block type="variables_get" id="8RD$fAvmvnBgG:5m_,5S"><field name="VAR">计时</field></block></value><value name="space"><shadow type="math_number" id="3M|1Ar7b-g]cO?gOorGa"><field name="NUM">0</field></shadow></value><value name="boolean"><shadow type="logic_boolean" id="RM1~NH$].wlHeG^U*!K7"><field name="BOOL">TRUE</field></shadow></value></block></statement></block></xml><config>{}</config><code>aW1wb3J0IG1hY2hpbmUKZnJvbSBtaXhnb19zYW50IGltcG9ydCBvbmJvYXJkX3RmdAoKZGVmIHRpbV9jYWxsYmFjayh0aW0pOgogICAgZ2xvYmFsIOiuoeaXtgogICAg6K6h5pe2ICs9IDEKCgrorqHml7YgPSAwCnRpbSA9IG1hY2hpbmUuVGltZXIoMCkKdGltLmluaXQocGVyaW9kID0gMTAwLCBtb2RlPW1hY2hpbmUuVGltZXIuUEVSSU9ESUMsIGNhbGxiYWNrPXRpbV9jYWxsYmFjaykKCndoaWxlIFRydWU6CiAgICBvbmJvYXJkX3RmdC5zaG93cyjorqHml7YsIHNwYWNlPTAsIGNlbnRlcj1UcnVlLHN5bmM9VHJ1ZSkK</code>
|
||||
@@ -0,0 +1 @@
|
||||
<xml version="Mixly 3.0 rc0" board="Python ESP32-S3@元控自强" shown="block"><variables><variable id="ok:ro0iEW(eJAtg/iAsj">tim</variable></variables><block type="variables_set" id="qM+Q|0Yx=e3wTOMSxWqA" x="-2908" y="-1031"><field name="VAR">开始</field><value name="VALUE"><block type="logic_boolean" id="4_/*[XYzBXD{Mapyo:2S"><field name="BOOL">FALSE</field></block></value><next><block type="variables_set" id="zxw`=95uZOD+kJ70mM5}"><field name="VAR">计时</field><value name="VALUE"><block type="math_number" id="qWsI.uQZ:]9_Zlsm?9F?"><field name="NUM">0</field></block></value><next><block type="system_timer_init" id="G/Bl+Ljy5`[]00#!)R/o"><value name="SUB"><shadow type="variables_get" id="{Vw7Me#]vf{*~Q!|TO=1"><field name="VAR">tim</field></shadow></value><next><block type="system_timer" id="D,*pO-5(TBMP0IZ,)Uib"><field name="mode">PERIODIC</field><value name="VAR"><shadow type="variables_get" id="BxiNqBueqw:Ayc_D)X)/"><field name="VAR">tim</field></shadow></value><value name="period"><shadow type="math_number" id="Dbqb@S.*0]Z{78=G/0}@"><field name="NUM">100</field></shadow></value><value name="callback"><shadow type="factory_block_return" id=")be.N?TZ+We7*JG0I,$y"><field name="VALUE">tim_callback</field></shadow></value><next><block type="controls_whileUntil" id="+@Qe7Jo?oOwgw,G*28D="><field name="MODE">WHILE</field><value name="BOOL"><shadow type="logic_boolean" id="_!ptlR^a^Q7CF?vA7^@S"><field name="BOOL">TRUE</field></shadow></value><statement name="DO"><block type="controls_if" id="]*-:^NLW]:VAng[rNS,+"><value name="IF0"><block type="sensor_mixgo_button_was_pressed" id="fATi$:i4|$XP0RP(uwzY"><value name="btn"><shadow type="pins_button" id="IG*OxDh{}bHwQA0]z#AS"><field name="PIN">B1key</field></shadow></value></block></value><statement name="DO0"><block type="variables_set" id="KlIT5$=8V7n3Cf@T{!3x"><field name="VAR">开始</field><value name="VALUE"><block type="logic_negate" id="t8loXl3=|2CncT+qLbW$"><value name="BOOL"><block type="variables_get" id="DWM_1b@Y.]3(95kBy]S;"><field name="VAR">开始</field></block></value></block></value></block></statement><next><block type="display_show_image_or_string_delay" id="[,yo(a58ixq-sDM;HTfG"><field name="center">True</field><value name="data"><shadow type="text" id="K[Gr=6K=FsA;G@(6x9yg"><field name="TEXT">Mixly</field></shadow><block type="variables_get" id="c:SFIOFu/*yn|Av;MK!#"><field name="VAR">计时</field></block></value><value name="space"><shadow type="math_number" id="w}Mv{yf;To0X_KaU]09z"><field name="NUM">0</field></shadow></value><value name="boolean"><shadow type="logic_boolean" id="PsA.hfOYiNbzyo=Rc^#Q"><field name="BOOL">TRUE</field></shadow></value></block></next></block></statement></block></next></block></next></block></next></block></next></block><block type="procedures_defnoreturn" id="/8-p~PZ~1X]!;g!A^Bg;" x="-2902" y="-690"><mutation><arg name="tim" varid="ok:ro0iEW(eJAtg/iAsj"></arg></mutation><field name="NAME">tim_callback</field><statement name="STACK"><block type="variables_global" id="Oshl2bjttM{RayzB(e*B"><value name="VAR"><block type="variables_get" id="4U5?xSo1g/LyQQ@UCssU"><field name="VAR">计时</field></block></value><next><block type="variables_global" id="+k#AO}$x!Yrg@I+`=fut"><value name="VAR"><block type="variables_get" id="b2gvN;R:,fDIZ+J0;e-e"><field name="VAR">开始</field></block></value><next><block type="controls_if" id="pG.`|;6bhq:?I?`c_eb/"><value name="IF0"><block type="variables_get" id="t@W6L?!VIRL9NmbVSJsJ"><field name="VAR">开始</field></block></value><statement name="DO0"><block type="math_selfcalcu" id="95V]3PwSq~hmUElJ9sOR"><field name="OP">ADD</field><value name="A"><shadow type="variables_get" id="{EjCPQ=d!*y5$NNN]`Rf"><field name="VAR">a</field></shadow><block type="variables_get" id="]tHd^Izp6KNELw!-YYpb"><field name="VAR">计时</field></block></value><value name="B"><shadow type="math_number" id="k-!{G?a34c:GQoeX9F.^"><field name="NUM">1</field></shadow></value></block></statement></block></next></block></next></block></statement></block></xml><config>{}</config><code>aW1wb3J0IG1hY2hpbmUKaW1wb3J0IG1peGdvX3NhbnQKZnJvbSBtaXhnb19zYW50IGltcG9ydCBvbmJvYXJkX3RmdAoKZGVmIHRpbV9jYWxsYmFjayh0aW0pOgogICAgZ2xvYmFsIOiuoeaXtgogICAgZ2xvYmFsIOW8gOWniwogICAgaWYg5byA5aeLOgogICAgICAgIOiuoeaXtiArPSAxCgoK5byA5aeLID0gRmFsc2UK6K6h5pe2ID0gMAp0aW0gPSBtYWNoaW5lLlRpbWVyKDApCnRpbS5pbml0KHBlcmlvZCA9IDEwMCwgbW9kZT1tYWNoaW5lLlRpbWVyLlBFUklPRElDLCBjYWxsYmFjaz10aW1fY2FsbGJhY2spCndoaWxlIFRydWU6CiAgICBpZiBtaXhnb19zYW50LkIxa2V5Lndhc19wcmVzc2VkKCk6CiAgICAgICAg5byA5aeLID0gbm90IOW8gOWniwogICAgb25ib2FyZF90ZnQuc2hvd3Mo6K6h5pe2LCBzcGFjZT0wLCBjZW50ZXI9VHJ1ZSxzeW5jPVRydWUpCg==</code>
|
||||
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
@@ -0,0 +1 @@
|
||||
<xml version="Mixly 3.0 rc0" board="Python ESP32-S3@元控自强" shown="block"><block type="controls_whileUntil" id="ydZO{g34gntRDIPf(u=D" x="-1568" y="51"><field name="MODE">WHILE</field><value name="BOOL"><shadow type="logic_boolean" id="XSw/*StYt_cw;.Vn1-2B"><field name="BOOL">TRUE</field></shadow></value><statement name="DO"><block type="actuator_onboard_neopixel_rgb" id="Om*scc(hl)g*jA?F#f1K"><value name="_LED_"><shadow type="math_number" id="VDc@69vH:W_t@JdAo:fu"><field name="NUM">0</field></shadow></value><value name="RVALUE"><shadow type="math_number" id="q#g/6AK[e_Sl!u4Ps]t2"><field name="NUM">0</field></shadow></value><value name="GVALUE"><shadow type="math_number" id="zBWBaV[.TO?Wa/=1q[jE"><field name="NUM">30</field></shadow></value><value name="BVALUE"><shadow type="math_number" id="Wv*$@$/eSqeWl;Y9/lhD"><field name="NUM">0</field></shadow></value><next><block type="actuator_onboard_neopixel_write" id=";Jp3Tbr:-{{keoouH^(O"><next><block type="controls_delay_new" id="O[oa+38C(j0jw#t|T0hu"><field name="Time">s</field><value name="DELAY_TIME"><shadow type="math_number" id="lCClZQ#*!9glJK]/i/[s"><field name="NUM">2</field></shadow></value><next><block type="actuator_onboard_neopixel_rgb" id=";~9~9(klMuJGuvOyV4)!"><value name="_LED_"><shadow type="math_number" id="n)Ok$$29ks^TnziOnTQR"><field name="NUM">0</field></shadow></value><value name="RVALUE"><shadow type="math_number" id="1#@wI?TL-Ed`Xi-o9@:$"><field name="NUM">30</field></shadow></value><value name="GVALUE"><shadow type="math_number" id="Kc+K0HO$PNh(vV{mt;D,"><field name="NUM">30</field></shadow></value><value name="BVALUE"><shadow type="math_number" id="/ywj.~MZ8N*2b5cyf0Hd"><field name="NUM">0</field></shadow></value><next><block type="actuator_onboard_neopixel_write" id="ONgM}$/!(?r+5IukX/@Q"><next><block type="controls_delay_new" id="ucNh|@HpM|x.K9~[ZX[;"><field name="Time">s</field><value name="DELAY_TIME"><shadow type="math_number" id="dDZg@K!mnM?;`*7YI]3f"><field name="NUM">0.5</field></shadow></value><next><block type="actuator_onboard_neopixel_rgb" id="bI_lO4F~my4#3Wq`)Pyb"><value name="_LED_"><shadow type="math_number" id="oylLvA+LCeXC?.gh=^L1"><field name="NUM">0</field></shadow></value><value name="RVALUE"><shadow type="math_number" id="g1zr+iL*5Lb4zBq|Mxik"><field name="NUM">30</field></shadow></value><value name="GVALUE"><shadow type="math_number" id="Y=kuCm1a4IFAB*Q$7YlY"><field name="NUM">0</field></shadow></value><value name="BVALUE"><shadow type="math_number" id="Dbna)ZXyFxb;KyTsnw)~"><field name="NUM">0</field></shadow></value><next><block type="actuator_onboard_neopixel_write" id="~G=`,vyiROBuF9fagj}8"><next><block type="controls_delay_new" id="[mb`vE(!k1},KFRss2L~"><field name="Time">s</field><value name="DELAY_TIME"><shadow type="math_number" id="KN3uhKhte?g:[zR6+yF,"><field name="NUM">2</field></shadow></value></block></next></block></next></block></next></block></next></block></next></block></next></block></next></block></next></block></statement></block></xml><config>{}</config><code>ZnJvbSBtaXhnb19zYW50IGltcG9ydCBvbmJvYXJkX3JnYgppbXBvcnQgdGltZQoKCndoaWxlIFRydWU6CiAgICBvbmJvYXJkX3JnYlswXSA9ICgwLCAzMCwgMCkKICAgIG9uYm9hcmRfcmdiLndyaXRlKCkKICAgIHRpbWUuc2xlZXAoMikKICAgIG9uYm9hcmRfcmdiWzBdID0gKDMwLCAzMCwgMCkKICAgIG9uYm9hcmRfcmdiLndyaXRlKCkKICAgIHRpbWUuc2xlZXAoMC41KQogICAgb25ib2FyZF9yZ2JbMF0gPSAoMzAsIDAsIDApCiAgICBvbmJvYXJkX3JnYi53cml0ZSgpCiAgICB0aW1lLnNsZWVwKDIpCg==</code>
|
||||
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
@@ -0,0 +1 @@
|
||||
<xml version="Mixly 3.0 rc0" board="Python ESP32-S3@元控自强" shown="block"><block type="controls_whileUntil" id="j1y_}Y/h+LISoBs`YPi@" x="-715" y="-199"><field name="MODE">WHILE</field><value name="BOOL"><shadow type="logic_boolean" id="pmxf``GD.cY#uOGk1sY~"><field name="BOOL">TRUE</field></shadow></value><statement name="DO"><block type="onboard_tft_display_line" id="~gDRaN]{01l/lsi[ih,m"><value name="x1"><shadow type="math_number" id="X2Oafo|xv65Ka#Er{e.Z"><field name="NUM">238</field></shadow></value><value name="y1"><shadow type="math_number" id=",|i.J)F=(dZIacT*`A0S"><field name="NUM">0</field></shadow></value><value name="x2"><shadow type="math_number" id="hwc]eZh}}KGr-LY#^@4N"><field name="NUM">238</field></shadow></value><value name="y2"><shadow type="math_number" id="GCJNd^def{YK$8HGeo)8"><field name="NUM">50</field></shadow><block type="text_to_number" id="6Y_C7oRL=v9]BD5xYMb7"><field name="TOWHAT">int</field><value name="VAR"><shadow type="variables_get" id="*6v)yC_Kq{Gv,I[,.6@T"><field name="VAR">x</field></shadow><block type="math_map" id=":f]fwdz|!v7,P~:hj6sO" inline="false"><value name="NUM"><shadow type="math_number" id="uM]KWq.P3-oyb.6/ph.x"><field name="NUM">50</field></shadow><block type="sensor_sound" id="C=uhM)~wC{0DX)Lmx^-;"></block></value><value name="fromLow"><shadow type="math_number" id="8I*R;$Sr=OG046zNVD^w"><field name="NUM">0</field></shadow></value><value name="fromHigh"><shadow type="math_number" id="6!j]X(j_x580!V]Nq|*o"><field name="NUM">6000</field></shadow></value><value name="toLow"><shadow type="math_number" id="JO,v7h:tA2xigCaD__m$"><field name="NUM">0</field></shadow></value><value name="toHigh"><shadow type="math_number" id="/*X(r_zf2`;8MyOEvGNv"><field name="NUM">239</field></shadow></value></block></value></block></value><value name="VAR"><shadow type="tuple_create_with_text_return" id="TyTC=d@f~5Hy~bn8.:N1"><field name="TEXT">255,255,0</field></shadow><block type="display_color_seclet" id="nB#$28d|ASVx)a6@NZUB"><field name="COLOR">#3366ff</field></block></value><value name="boolean"><shadow type="logic_boolean" id="T8|1D(W/|Tj2(QrFz)Kt"><field name="BOOL">FALSE</field></shadow></value><next><block type="display_shift" id="|@gKzo/Rw1o(Q1R/:0ow"><field name="OP">shift_left</field><value name="val"><shadow type="math_number" id=":mb(?obN31|BFa+|qf{$"><field name="NUM">1</field></shadow></value><value name="boolean"><shadow type="logic_boolean" id="#5v6Mk|-AP5.;YnaC*-x"><field name="BOOL">TRUE</field></shadow></value></block></next></block></statement></block></xml><config>{}</config><code>ZnJvbSBtaXhnb19zYW50IGltcG9ydCBvbmJvYXJkX3RmdApmcm9tIG1peGdvX3NhbnQgaW1wb3J0IG9uYm9hcmRfc291bmQKZnJvbSBtaXhweSBpbXBvcnQgbWF0aF9tYXAKCndoaWxlIFRydWU6CiAgICBvbmJvYXJkX3RmdC5saW5lKDIzOCwgMCwgMjM4LCBpbnQoKG1hdGhfbWFwKG9uYm9hcmRfc291bmQucmVhZCgpLCAwLCA2MDAwLCAwLCAyMzkpKSksIDB4MzMzZixzeW5jPUZhbHNlKQogICAgb25ib2FyZF90ZnQuc2hpZnRfbGVmdCgxLHN5bmM9VHJ1ZSkK</code>et" id="4r20VqO`(/m07i!}a-1S"><field name="COLOR">#ffffff</field></block></value></block></statement></block></next></block></statement></block></xml><config>{}</config><code>ZnJvbSBtaXhnb19zYW50IGltcG9ydCBvbmJvYXJkX3RmdApmcm9tIG1peGdvX3NhbnQgaW1wb3J0IG9uYm9hcmRfc291bmQKZnJvbSBtaXhweSBpbXBvcnQgbWF0aF9tYXAKCgp3aGlsZSBUcnVlOgogICAgb25ib2FyZF90ZnQuZmlsbCgwKQogICAgb25ib2FyZF90ZnQuc2hvdygpCiAgICBmb3IgeCBpbiByYW5nZSgwLCAyMzksIDEpOgogICAgICAgIG9uYm9hcmRfdGZ0LmxpbmUoeCwgMCwgeCwgaW50KChtYXRoX21hcChvbmJvYXJkX3NvdW5kLnJlYWQoKSwgMCwgNjAwMCwgMCwgMjM5KSkpLCAweGZmZmYpCiAgICAgICAgb25ib2FyZF90ZnQuc2hvdygpCg==</code>
|
||||
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user