From a5fa5034f9df3732a5945c84f50c0e6381ee8eb6 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?=E7=8E=8B=E7=AB=8B=E5=B8=AE?= <3294713004@qq.com>
Date: Tue, 13 Jan 2026 15:09:06 +0800
Subject: [PATCH] =?UTF-8?q?feat(boards):=20=E6=89=80=E6=9C=89micropython?=
=?UTF-8?q?=20esp=E6=9D=BF=E5=8D=A1=E5=8A=A0=E5=85=A5=20`PE=20GX`=20?=
=?UTF-8?q?=E7=B1=BB=E5=88=AB?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
---
.../default_src/micropython/blocks/pe_g1.js | 41 +-
.../micropython/blocks/sensor_onboard.js | 4 +-
.../micropython_educore/template.xml | 2 +-
.../micropython_esp32/template.xml | 134 +++----
.../css/color_esp32c3_mixgocc.css | 10 +
.../default_src/micropython_esp32c2/index.js | 4 +
.../micropython_esp32c2/template.xml | 192 ++++++++--
.../css/color_esp32c3_mixgocc.css | 10 +
.../default_src/micropython_esp32c3/index.js | 4 +
.../micropython_esp32c3/template.xml | 356 ++++++++++++------
.../micropython_esp32c5/css/color_esp32c5.css | 10 +
.../micropython_esp32c5/template.xml | 134 ++++++-
.../css/color_esp32s2_mixgoce.css | 10 +
.../micropython_esp32s2/template.xml | 152 +++++++-
.../css/color_esp32s2_mixgoce.css | 10 +
.../micropython_esp32s3/template.xml | 250 +++++++++---
.../micropython_robot/template.xml | 124 +++---
common/msg/blockly/en.js | 2 +-
common/msg/blockly/zh-hans.js | 2 +-
common/msg/blockly/zh-hant.js | 2 +-
20 files changed, 1059 insertions(+), 394 deletions(-)
diff --git a/boards/default_src/micropython/blocks/pe_g1.js b/boards/default_src/micropython/blocks/pe_g1.js
index 41754ce3..5336d8cd 100644
--- a/boards/default_src/micropython/blocks/pe_g1.js
+++ b/boards/default_src/micropython/blocks/pe_g1.js
@@ -1,13 +1,9 @@
import * as Blockly from 'blockly/core';
-import * as Mixly from 'mixly';
const PEG1_HUE = 100;
export const pe_g1_use_i2c_init = {
init: function () {
- var version = Mixly.Boards.getSelectedBoardKey().split(':')[2];
- if (version == "mixgo_ce") { var name = 'CE G6' }
- else if (version == "mixgo_pe") { var name = 'PE G1' }
this.setColour(PEG1_HUE);
this.appendValueInput('I2CSUB')
.appendField(Blockly.Msg.CONTROLS_FOR_INPUT_WITH + "I2C")
@@ -17,7 +13,7 @@ export const pe_g1_use_i2c_init = {
.setCheck("var");
this.appendDummyInput("")
.appendField(Blockly.Msg.MIXLY_SETUP + Blockly.Msg.LISTS_SET_INDEX_INPUT_TO)
- .appendField(name);
+ .appendField('PE GX');
this.setInputsInline(true);
this.setPreviousStatement(true, null);
this.setNextStatement(true, null);
@@ -26,12 +22,9 @@ export const pe_g1_use_i2c_init = {
export const pe_g1_battery_left = {
init: function () {
- var version = Mixly.Boards.getSelectedBoardKey().split(':')[2];
- if (version == "mixgo_ce") { var name = 'CE G6' }
- else if (version == "mixgo_pe") { var name = 'PE G1' }
this.setColour(PEG1_HUE);
this.appendValueInput('SUB')
- .appendField(name)
+ .appendField('PE GX')
.setCheck("var");
this.appendDummyInput()
.appendField(Blockly.Msg.MIXLY_MIXGO_CAR_BATTERY_LEFT);
@@ -42,12 +35,9 @@ export const pe_g1_battery_left = {
export const pe_g1_dc_motor = {
init: function () {
- var version = Mixly.Boards.getSelectedBoardKey().split(':')[2];
- if (version == "mixgo_ce") { var name = 'CE G6' }
- else if (version == "mixgo_pe") { var name = 'PE G1' }
this.setColour(PEG1_HUE);
this.appendValueInput('SUB')
- .appendField(name)
+ .appendField('PE GX')
.setCheck("var");
this.appendValueInput('PIN')
.appendField(Blockly.Msg.MOTOR_DC)
@@ -74,12 +64,9 @@ export const pe_g1_dc_motor = {
export const pe_g1_dc_motor_speed = {
init: function () {
- var version = Mixly.Boards.getSelectedBoardKey().split(':')[2];
- if (version == "mixgo_ce") { var name = 'CE G6' }
- else if (version == "mixgo_pe") { var name = 'PE G1' }
this.setColour(PEG1_HUE);
this.appendValueInput('SUB')
- .appendField(name)
+ .appendField('PE GX')
.setCheck("var");
this.appendValueInput('PIN')
.appendField(Blockly.Msg.MOTOR_DC)
@@ -94,12 +81,9 @@ export const pe_g1_dc_motor_speed = {
export const pe_g1_servo_set_angle = {
init: function () {
- var version = Mixly.Boards.getSelectedBoardKey().split(':')[2];
- if (version == "mixgo_ce") { var name = 'CE G6' }
- else if (version == "mixgo_pe") { var name = 'PE G1' }
this.setColour(PEG1_HUE);
this.appendValueInput('SUB')
- .appendField(name)
+ .appendField('PE GX')
.setCheck("var");
this.appendValueInput('PIN')
.appendField('180°' + Blockly.Msg.MIXLY_SERVO)
@@ -118,12 +102,9 @@ export const pe_g1_servo_set_angle = {
export const pe_g1_servo_set_speed = {
init: function () {
- var version = Mixly.Boards.getSelectedBoardKey().split(':')[2];
- if (version == "mixgo_ce") { var name = 'CE G6' }
- else if (version == "mixgo_pe") { var name = 'PE G1' }
this.setColour(PEG1_HUE);
this.appendValueInput('SUB')
- .appendField(name)
+ .appendField('PE GX')
.setCheck("var");
this.appendValueInput('PIN')
.appendField('360°' + Blockly.Msg.MIXLY_SERVO)
@@ -144,12 +125,9 @@ export const pe_g1_servo_set_speed = {
export const pe_g1_servo_get_angle = {
init: function () {
- var version = Mixly.Boards.getSelectedBoardKey().split(':')[2];
- if (version == "mixgo_ce") { var name = 'CE G6' }
- else if (version == "mixgo_pe") { var name = 'PE G1' }
this.setColour(PEG1_HUE);
this.appendValueInput('SUB')
- .appendField(name)
+ .appendField('PE GX')
.setCheck("var");
this.appendValueInput('PIN')
.appendField('180°' + Blockly.Msg.MIXLY_SERVO)
@@ -163,12 +141,9 @@ export const pe_g1_servo_get_angle = {
export const pe_g1_servo_get_speed = {
init: function () {
- var version = Mixly.Boards.getSelectedBoardKey().split(':')[2];
- if (version == "mixgo_ce") { var name = 'CE G6' }
- else if (version == "mixgo_pe") { var name = 'PE G1' }
this.setColour(PEG1_HUE);
this.appendValueInput('SUB')
- .appendField(name)
+ .appendField('PE GX')
.setCheck("var");
this.appendValueInput('PIN')
.appendField('360°' + Blockly.Msg.MIXLY_SERVO)
diff --git a/boards/default_src/micropython/blocks/sensor_onboard.js b/boards/default_src/micropython/blocks/sensor_onboard.js
index 68dc061f..03241ca3 100644
--- a/boards/default_src/micropython/blocks/sensor_onboard.js
+++ b/boards/default_src/micropython/blocks/sensor_onboard.js
@@ -361,7 +361,9 @@ export const number5 = {
["0", "0"],
["1", "1"],
["2", "2"],
- ["3", "3"]
+ ["3", "3"],
+ ["4", "4"],
+ ["5", "5"]
]), 'op')
this.setOutput(true);
this.setTooltip(Blockly.Msg.MIXLY_TOOLTIP_INOUT_HIGHLOW);
diff --git a/boards/default_src/micropython_educore/template.xml b/boards/default_src/micropython_educore/template.xml
index 4cd5e9fc..9fca83f4 100644
--- a/boards/default_src/micropython_educore/template.xml
+++ b/boards/default_src/micropython_educore/template.xml
@@ -1166,7 +1166,7 @@
-
+
mydict
diff --git a/boards/default_src/micropython_esp32/template.xml b/boards/default_src/micropython_esp32/template.xml
index 0c2ec4a4..dec01714 100644
--- a/boards/default_src/micropython_esp32/template.xml
+++ b/boards/default_src/micropython_esp32/template.xml
@@ -93,12 +93,12 @@
-
+
-
+
@@ -1382,20 +1382,20 @@
-
+ m-show="mixgo rm_e1 mpython mixgo_pe">
+
-
+
-
+
@@ -1406,7 +1406,7 @@
-
+
@@ -1417,7 +1417,7 @@
-
+
@@ -1426,45 +1426,45 @@
-
+
-
+
p
-
+
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
2018
@@ -1496,21 +1496,21 @@
-
+
2023,1,1,12,0,0
-
+
-
+
-
+
18029
@@ -1526,23 +1526,23 @@
-
+ m-show="mixgo rm_e1 mpython">
+
-
-
+
+
100
-
-
+
+
@@ -1552,13 +1552,13 @@
-
+
-
+
@@ -1569,14 +1569,14 @@
-
+
440
-
+
440
@@ -1588,7 +1588,7 @@
-
+
0
@@ -1602,7 +1602,7 @@
-
+
@@ -1612,7 +1612,7 @@
-
+
@@ -1628,7 +1628,7 @@
-->
-
+
4
@@ -1640,8 +1640,8 @@
-
-
+
+
@@ -1681,7 +1681,7 @@
-
+
0
@@ -1703,7 +1703,7 @@
-
+
1000
@@ -1711,7 +1711,7 @@
-
+
100
@@ -1720,7 +1720,7 @@
+ m-show="mixgo mixgo_pe">
@@ -1781,11 +1781,11 @@
-
-
-
-
-
+
+
+
+
+
@@ -1842,7 +1842,7 @@
-
+
@@ -2063,7 +2063,7 @@
-
+
@@ -3299,7 +3299,7 @@
+ m-hide='mixgo_pe generic'>
@@ -3792,7 +3792,7 @@
-
+
-
-
-
+
+
+
-
-
-
-
-
-
-
-
+
+
+
+
+
+
+
+
@@ -1548,7 +1548,7 @@
-
+
@@ -1558,7 +1558,7 @@
-
+
@@ -1568,7 +1568,7 @@
-
+
@@ -1579,13 +1579,13 @@
-
+
-
+
@@ -1718,15 +1718,15 @@
-
+
100
-
-
+
+
20000
@@ -1734,7 +1734,7 @@
-
+
@@ -1744,14 +1744,14 @@
-
+
-
+
@@ -1769,7 +1769,7 @@
-
+
Hello, Mixly!
@@ -1781,9 +1781,9 @@
-
+
-
+
mixly.wav
@@ -1839,7 +1839,7 @@
-
+
@@ -1859,8 +1859,8 @@
-
-
+
+
@@ -1920,7 +1920,7 @@
-
+
@@ -2013,13 +2013,139 @@
-
+
+
+
+
+ i2c_extend
+
+
+
+
+ 21
+
+
+
+
+ 22
+
+
+
+
+ 400000
+
+
+
+
+
+
+ pe
+
+
+
+
+ i2c_extend
+
+
+
+
+
+
+
+
+ pe
+
+
+
+
+
+
+ pe
+
+
+
+
+
+
+
+
+ 100
+
+
+
+
+
+
+ pe
+
+
+
+
+
+
+
+
+
+
+ pe
+
+
+
+
+
+
+
+
+ 100
+
+
+
+
+
+
+ pe
+
+
+
+
+
+
+
+
+
+
+ pe
+
+
+
+
+
+
+
+
+ 100
+
+
+
+
+
+
+ pe
+
+
+
+
+
+
+
+
+
-
+
@@ -2054,7 +2180,7 @@
-
+
diff --git a/boards/default_src/micropython_esp32c3/css/color_esp32c3_mixgocc.css b/boards/default_src/micropython_esp32c3/css/color_esp32c3_mixgocc.css
index 5013b08b..9bf36a64 100644
--- a/boards/default_src/micropython_esp32c3/css/color_esp32c3_mixgocc.css
+++ b/boards/default_src/micropython_esp32c3/css/color_esp32c3_mixgocc.css
@@ -158,6 +158,16 @@ div.blocklyToolboxDiv>div.blocklyToolboxContents>div:nth-child(12)>div.blocklyTr
background-size: 100% auto;
}
+#catPE_G1.blocklyTreeRow>div.blocklyTreeRowContentContainer>span.blocklyTreeIcon {
+ background: url('../../../../common/media/mark/act.png') no-repeat;
+ background-size: 100% auto;
+}
+
+#catPE_G1.blocklyTreeRow.blocklyTreeSelected>div.blocklyTreeRowContentContainer>span.blocklyTreeIcon {
+ background: url('../../../../common/media/mark/act2.png') no-repeat;
+ background-size: 100% auto;
+}
+
#catME_G1.blocklyTreeRow>div.blocklyTreeRowContentContainer>span.blocklyTreeIcon {
background: url('../../../../common/media/mark/sensor.png') no-repeat;
background-size: 100% auto;
diff --git a/boards/default_src/micropython_esp32c3/index.js b/boards/default_src/micropython_esp32c3/index.js
index 07fa1f6a..c1f356be 100644
--- a/boards/default_src/micropython_esp32c3/index.js
+++ b/boards/default_src/micropython_esp32c3/index.js
@@ -48,6 +48,7 @@ import {
MicroPythonInputBlocks,
MicroPythonIotBlocks,
MicroPythonNetworkBlocks,
+ MicroPythonPeG1Blocks,
MicroPythonSensorExternBlocks,
MicroPythonSensorOnBoardBlocks,
MicroPythonSerialBlocks,
@@ -67,6 +68,7 @@ import {
MicroPythonInputGenerators,
MicroPythonIotGenerators,
MicroPythonNetworkGenerators,
+ MicroPythonPeG1Generators,
MicroPythonSensorExternGenerators,
MicroPythonSensorOnBoardGenerators,
MicroPythonSerialGenerators,
@@ -128,6 +130,7 @@ Object.assign(
MicroPythonSensorOnBoardBlocks,
MicroPythonSensorExternBlocks,
MicroPythonNetworkBlocks,
+ MicroPythonPeG1Blocks,
MicroPythonAIBlocks,
MicroPythonActuatorOnBoardBlocks,
MicroPythonActuatorExternBlocks,
@@ -167,6 +170,7 @@ Object.assign(
MicroPythonSensorOnBoardGenerators,
MicroPythonSensorExternGenerators,
MicroPythonNetworkGenerators,
+ MicroPythonPeG1Generators,
MicroPythonAIGenerators,
MicroPythonActuatorOnBoardGenerators,
MicroPythonActuatorExternGenerators,
diff --git a/boards/default_src/micropython_esp32c3/template.xml b/boards/default_src/micropython_esp32c3/template.xml
index bafbe5e3..a46e562f 100644
--- a/boards/default_src/micropython_esp32c3/template.xml
+++ b/boards/default_src/micropython_esp32c3/template.xml
@@ -1356,20 +1356,20 @@
-
+ m-hide='generic'>
+
-
+
-
+
@@ -1380,7 +1380,7 @@
-
+
@@ -1391,17 +1391,17 @@
-
-
+
+
-
+
1
-
+
attachInterrupt_func
@@ -1417,34 +1417,34 @@
-
-
-
-
-
-
-
+
+
+
+
+
+
+
-
-
-
-
+
+
+
+
+ m-show="mixgo_cc mixgo_me">
+ m-show="mixgo_cc mixgo_me">
-
-
-
+ m-show="mixgo_cc mixgo_me">
+
+
+
0
-
+
0
@@ -1456,7 +1456,7 @@
-
+
0
@@ -1531,9 +1531,9 @@
+ m-hide='generic'>
+ m-show='mixgo_cc mixgo_me'>
@@ -1544,14 +1544,14 @@
+ m-show='mixgo_cc mixgo_me'>
+ m-show='mixgo_cc mixgo_me'>
@@ -1563,34 +1563,34 @@
+ m-show='mixgo_cc mixgo_me'>
-
+
-
+
100
-
-
+
+
100
-
+
@@ -1720,7 +1720,7 @@
+ m-hide='generic mixgocar_c3'>
@@ -1781,11 +1781,11 @@
-
-
-
-
-
+
+
+
+
+
@@ -1844,7 +1844,7 @@
+ m-show='mixgo_me mixgo_cc'>
@@ -1935,9 +1935,135 @@
-
+
-
+
+
+
+
+ i2c_extend
+
+
+
+
+ 21
+
+
+
+
+ 22
+
+
+
+
+ 400000
+
+
+
+
+
+
+ pe
+
+
+
+
+ i2c_extend
+
+
+
+
+
+
+
+
+ pe
+
+
+
+
+
+
+ pe
+
+
+
+
+
+
+
+
+ 100
+
+
+
+
+
+
+ pe
+
+
+
+
+
+
+
+
+
+
+ pe
+
+
+
+
+
+
+
+
+ 100
+
+
+
+
+
+
+ pe
+
+
+
+
+
+
+
+
+
+
+ pe
+
+
+
+
+
+
+
+
+ 100
+
+
+
+
+
+
+ pe
+
+
+
+
+
+
+
+
+
@@ -1976,7 +2102,7 @@
+ m-show='mixgo_cc mixgo_me'>
@@ -2444,7 +2570,7 @@
+ m-show="mixgo_me mixgo_cc">
@@ -3099,7 +3225,7 @@
-
+
@@ -3622,7 +3748,7 @@
-->
-
+
i2c_extend
@@ -3658,91 +3784,91 @@
-
+
xsensor
-
+
xsensor
-
+
xsensor
-
+
xsensor
-
+
xsensor
-
+
xsensor
-
+
xsensor
-
+
xsensor
-
+
xsensor
-
+
xsensor
-
+
xsensor
-
+
xsensor
-
+
xsensor
@@ -3754,56 +3880,56 @@
-
+
xsensor
-
+
xsensor
-
+
xsensor
-
+
xsensor
-
+
xsensor
-
+
xsensor
-
+
xsensor
-
+
xsensor
@@ -3871,7 +3997,7 @@
xsensor
-
+
spi
@@ -3898,7 +4024,7 @@
-
+
spi
@@ -3918,14 +4044,14 @@
-
+
ysensor
-
+
ysensor
@@ -3937,7 +4063,7 @@
-
+
ysensor
@@ -3949,7 +4075,7 @@
-
+
ysensor
@@ -3966,7 +4092,7 @@
-
+
ysensor
@@ -3984,7 +4110,7 @@
-
+
ysensor
@@ -4004,14 +4130,14 @@
-
+
ysensor
-
+
ysensor
@@ -4024,7 +4150,7 @@
-
+
@@ -4034,7 +4160,7 @@
-
+
4
@@ -4148,7 +4274,7 @@
-
+
0
@@ -4169,7 +4295,7 @@
-
+
zsensor
@@ -4298,7 +4424,7 @@
-
+
@@ -4308,7 +4434,7 @@
-
+
midi
@@ -4320,7 +4446,7 @@
-
+
midi
@@ -4332,7 +4458,7 @@
-
+
midi
@@ -4349,7 +4475,7 @@
-
+
midi
@@ -4368,7 +4494,7 @@
-
+
@@ -4378,7 +4504,7 @@
-
+
@@ -4398,7 +4524,7 @@
-
+
midi
@@ -4415,21 +4541,21 @@
-
+
midi
-
+
midi
-
+
rgb
@@ -4446,7 +4572,7 @@
-
+
rgb
@@ -4473,7 +4599,7 @@
-
+
rgb
@@ -4495,7 +4621,7 @@
-
+
rgb
@@ -4522,7 +4648,7 @@
-
+
rgb
@@ -4534,14 +4660,14 @@
-
+
rgb
-
+
@@ -4551,12 +4677,12 @@
-
+
-
+
@@ -4566,12 +4692,12 @@
-
+
-
+
i2c_extend
@@ -4607,7 +4733,7 @@
-
+
Motor
@@ -4620,7 +4746,7 @@
-
+
Motor
@@ -4637,7 +4763,7 @@
-
+
0
@@ -4658,7 +4784,7 @@
-
+
actuator
@@ -4668,14 +4794,14 @@
-
+
actuator
-
+
actuator
@@ -4685,7 +4811,7 @@
-
+
actuator
@@ -4747,7 +4873,7 @@
-
+
diff --git a/boards/default_src/micropython_esp32c5/css/color_esp32c5.css b/boards/default_src/micropython_esp32c5/css/color_esp32c5.css
index 08b690b9..f0d61147 100644
--- a/boards/default_src/micropython_esp32c5/css/color_esp32c5.css
+++ b/boards/default_src/micropython_esp32c5/css/color_esp32c5.css
@@ -148,6 +148,16 @@ div.blocklyToolboxDiv>div.blocklyToolboxContents>div:nth-child(12)>div.blocklyTr
background-size: 100% auto;
}
+#catPE_G1.blocklyTreeRow>div.blocklyTreeRowContentContainer>span.blocklyTreeIcon {
+ background: url('../../../../common/media/mark/act.png') no-repeat;
+ background-size: 100% auto;
+}
+
+#catPE_G1.blocklyTreeRow.blocklyTreeSelected>div.blocklyTreeRowContentContainer>span.blocklyTreeIcon {
+ background: url('../../../../common/media/mark/act2.png') no-repeat;
+ background-size: 100% auto;
+}
+
#catSANT_G3.blocklyTreeRow>div.blocklyTreeRowContentContainer>span.blocklyTreeIcon {
background: url('../../../../common/media/mark/sensor.png') no-repeat;
background-size: 100% auto;
diff --git a/boards/default_src/micropython_esp32c5/template.xml b/boards/default_src/micropython_esp32c5/template.xml
index 40781e9f..31036b28 100644
--- a/boards/default_src/micropython_esp32c5/template.xml
+++ b/boards/default_src/micropython_esp32c5/template.xml
@@ -1380,7 +1380,7 @@
-
+
@@ -1536,7 +1536,7 @@
-
+
@@ -1763,7 +1763,7 @@
-
+
@@ -2324,7 +2324,133 @@
-
+
+
+
+
+ i2c_extend
+
+
+
+
+ 21
+
+
+
+
+ 22
+
+
+
+
+ 400000
+
+
+
+
+
+
+ pe
+
+
+
+
+ i2c_extend
+
+
+
+
+
+
+
+
+ pe
+
+
+
+
+
+
+ pe
+
+
+
+
+
+
+
+
+ 100
+
+
+
+
+
+
+ pe
+
+
+
+
+
+
+
+
+
+
+ pe
+
+
+
+
+
+
+
+
+ 100
+
+
+
+
+
+
+ pe
+
+
+
+
+
+
+
+
+
+
+ pe
+
+
+
+
+
+
+
+
+ 100
+
+
+
+
+
+
+ pe
+
+
+
+
+
+
+
+
+
diff --git a/boards/default_src/micropython_esp32s2/css/color_esp32s2_mixgoce.css b/boards/default_src/micropython_esp32s2/css/color_esp32s2_mixgoce.css
index c3d44391..73c322ae 100644
--- a/boards/default_src/micropython_esp32s2/css/color_esp32s2_mixgoce.css
+++ b/boards/default_src/micropython_esp32s2/css/color_esp32s2_mixgoce.css
@@ -168,6 +168,16 @@ div.blocklyToolboxDiv>div.blocklyToolboxContents>div:nth-child(12)>div.blocklyTr
background-size: 100% auto;
}
+#catPE_G1.blocklyTreeRow>div.blocklyTreeRowContentContainer>span.blocklyTreeIcon {
+ background: url('../../../../common/media/mark/act.png') no-repeat;
+ background-size: 100% auto;
+}
+
+#catPE_G1.blocklyTreeRow.blocklyTreeSelected>div.blocklyTreeRowContentContainer>span.blocklyTreeIcon {
+ background: url('../../../../common/media/mark/act2.png') no-repeat;
+ background-size: 100% auto;
+}
+
#catCC_G1.blocklyTreeRow>div.blocklyTreeRowContentContainer>span.blocklyTreeIcon {
background: url('../../../../common/media/mark/sensor.png') no-repeat;
background-size: 100% auto;
diff --git a/boards/default_src/micropython_esp32s2/template.xml b/boards/default_src/micropython_esp32s2/template.xml
index 480d5e07..cd9d047c 100644
--- a/boards/default_src/micropython_esp32s2/template.xml
+++ b/boards/default_src/micropython_esp32s2/template.xml
@@ -1383,7 +1383,7 @@
+ m-hide='generic'>
@@ -1436,7 +1436,7 @@
-
+
@@ -1502,8 +1502,8 @@
-
+ m-hide='generic'>
+
@@ -1513,13 +1513,13 @@
-
+
-
+
@@ -1530,7 +1530,7 @@
-
+
@@ -1665,7 +1665,7 @@
+ m-hide='generic'>
@@ -1727,7 +1727,7 @@
-
+
@@ -1782,7 +1782,7 @@
-
+
@@ -1875,7 +1875,7 @@
-
+
@@ -2001,7 +2001,133 @@
-
+
+
+
+
+ i2c_extend
+
+
+
+
+ 21
+
+
+
+
+ 22
+
+
+
+
+ 400000
+
+
+
+
+
+
+ pe
+
+
+
+
+ i2c_extend
+
+
+
+
+
+
+
+
+ pe
+
+
+
+
+
+
+ pe
+
+
+
+
+
+
+
+
+ 100
+
+
+
+
+
+
+ pe
+
+
+
+
+
+
+
+
+
+
+ pe
+
+
+
+
+
+
+
+
+ 100
+
+
+
+
+
+
+ pe
+
+
+
+
+
+
+
+
+
+
+ pe
+
+
+
+
+
+
+
+
+ 100
+
+
+
+
+
+
+ pe
+
+
+
+
+
+
+
+
+
@@ -2837,7 +2963,7 @@
-
+
diff --git a/boards/default_src/micropython_esp32s3/css/color_esp32s2_mixgoce.css b/boards/default_src/micropython_esp32s3/css/color_esp32s2_mixgoce.css
index 08b690b9..f0d61147 100644
--- a/boards/default_src/micropython_esp32s3/css/color_esp32s2_mixgoce.css
+++ b/boards/default_src/micropython_esp32s3/css/color_esp32s2_mixgoce.css
@@ -148,6 +148,16 @@ div.blocklyToolboxDiv>div.blocklyToolboxContents>div:nth-child(12)>div.blocklyTr
background-size: 100% auto;
}
+#catPE_G1.blocklyTreeRow>div.blocklyTreeRowContentContainer>span.blocklyTreeIcon {
+ background: url('../../../../common/media/mark/act.png') no-repeat;
+ background-size: 100% auto;
+}
+
+#catPE_G1.blocklyTreeRow.blocklyTreeSelected>div.blocklyTreeRowContentContainer>span.blocklyTreeIcon {
+ background: url('../../../../common/media/mark/act2.png') no-repeat;
+ background-size: 100% auto;
+}
+
#catSANT_G3.blocklyTreeRow>div.blocklyTreeRowContentContainer>span.blocklyTreeIcon {
background: url('../../../../common/media/mark/sensor.png') no-repeat;
background-size: 100% auto;
diff --git a/boards/default_src/micropython_esp32s3/template.xml b/boards/default_src/micropython_esp32s3/template.xml
index 0685c351..69d6188b 100644
--- a/boards/default_src/micropython_esp32s3/template.xml
+++ b/boards/default_src/micropython_esp32s3/template.xml
@@ -1381,7 +1381,7 @@
+ m-hide="generic">
@@ -1432,31 +1432,31 @@
-
-
-
-
-
-
+
+
+
+
+
+
-
-
-
-
-
-
-
+
+
+
+
+
+
+
-
-
-
+
+
+
0
-
+
0
@@ -1468,7 +1468,7 @@
-
+
0
@@ -1543,7 +1543,7 @@
+ m-hide="generic">
@@ -1577,22 +1577,22 @@
-
+
100
-
-
+
+
100
-
+
-
+
440
@@ -1619,12 +1619,12 @@
-->
-
+
-
+
/sd/1.wav
@@ -1636,14 +1636,14 @@
-
+
/sd/1.wav
-
+
https://gitee.com/dahanzimin/test/raw/master/wav/8.wav
@@ -1651,14 +1651,14 @@
-
+
440
-
+
440
@@ -1670,31 +1670,31 @@
-
+
0
-
+
100
-
+
-
+
-
+
4
@@ -1706,8 +1706,8 @@
-
-
+
+
@@ -1779,23 +1779,23 @@
-
+
100
-
-
+
+
20000
-
-
+
+
@@ -1805,14 +1805,14 @@
-
+
-
+
@@ -1830,7 +1830,7 @@
-
+
Hello, Mixly!
@@ -1843,7 +1843,7 @@
-
+
@@ -1975,7 +1975,7 @@
-
+
mixly.jpg
@@ -2307,7 +2307,7 @@
-
+
new_clock
@@ -2337,7 +2337,7 @@
-
+
new_clock
@@ -2367,7 +2367,7 @@
-
+
new_clock
@@ -2464,25 +2464,25 @@
-
+
-
-
-
-
+
+
+
+
-
-
+
+
-
+
你们,米思齐
@@ -3175,8 +3175,134 @@
-->
-
-
+
+
+
+
+
+ i2c_extend
+
+
+
+
+ 21
+
+
+
+
+ 22
+
+
+
+
+ 400000
+
+
+
+
+
+
+ pe
+
+
+
+
+ i2c_extend
+
+
+
+
+
+
+
+
+ pe
+
+
+
+
+
+
+ pe
+
+
+
+
+
+
+
+
+ 100
+
+
+
+
+
+
+ pe
+
+
+
+
+
+
+
+
+
+
+ pe
+
+
+
+
+
+
+
+
+ 100
+
+
+
+
+
+
+ pe
+
+
+
+
+
+
+
+
+
+
+ pe
+
+
+
+
+
+
+
+
+ 100
+
+
+
+
+
+
+ pe
+
+
+
+
+
+
+
+
+
@@ -5759,7 +5885,7 @@
-
+
diff --git a/boards/default_src/micropython_robot/template.xml b/boards/default_src/micropython_robot/template.xml
index 704e4a1c..e44d741d 100644
--- a/boards/default_src/micropython_robot/template.xml
+++ b/boards/default_src/micropython_robot/template.xml
@@ -62,13 +62,13 @@
-
+
-
+
@@ -277,7 +277,7 @@
-
+
@@ -1418,7 +1418,7 @@
-
+
@@ -1426,35 +1426,35 @@
-
-
-
+
+
+
-
+
+ m-hide="feiyi micropython:esp32:mixbot micropython:esp32:rm_e1">
-
-
-
-
-
-
-
-
-
+ m-hide="feiyi micropython:esp32:mixbot micropython:esp32:rm_e1">
+
+
+
+
+
+
+
+
+
0
-
+
0
@@ -1466,7 +1466,7 @@
-
+
0
@@ -1549,38 +1549,38 @@
-
+
100
-
-
+
+
100
-
+
-
-
+
+
100
-
+
+ m-show='micropython:esp32:mixbot feiyi'>
440
@@ -1588,7 +1588,7 @@
+ m-show='micropython:esp32:mixbot feiyi'>
440
@@ -1601,7 +1601,7 @@
+ m-show='micropython:esp32:mixbot feiyi'>
0
@@ -1609,7 +1609,7 @@
+ m-show='micropython:esp32:mixbot feiyi'>
@@ -1619,7 +1619,7 @@
-
+
4
@@ -1631,8 +1631,8 @@
-
-
+
+
@@ -1707,7 +1707,7 @@
+ m-show="micropython:esp32:mixbot feiyi">
@@ -1770,7 +1770,7 @@
-
+
@@ -1813,7 +1813,7 @@
-
+
@@ -1824,7 +1824,7 @@
-
+
@@ -1832,7 +1832,7 @@
-
+
@@ -2303,7 +2303,7 @@
-
+
@@ -3249,7 +3249,7 @@
+ m-show="micropython:esp32:mixbot feiyi">
@@ -3262,33 +3262,33 @@
+ m-show="micropython:esp32:mixbot feiyi">
+ m-show="micropython:esp32:mixbot feiyi">
+ m-show="micropython:esp32:mixbot feiyi">
-
+
+ m-show="micropython:esp32:mixbot feiyi">
+ m-show="micropython:esp32:mixbot feiyi">
+ m-show="micropython:esp32:mixbot feiyi">
-
+
@@ -3312,7 +3312,7 @@
-
+
100
@@ -3320,14 +3320,14 @@
+ m-show="micropython:esp32:mixbot feiyi">
+ m-show="micropython:esp32:mixbot feiyi">
-
+
100
@@ -3336,23 +3336,23 @@
+ m-show="micropython:esp32:mixbot feiyi">
+ m-show="micropython:esp32:mixbot feiyi">
+ m-show="micropython:esp32:mixbot feiyi">
+ m-show="micropython:esp32:mixbot feiyi">
+ m-show="micropython:esp32:mixbot feiyi">
@@ -3366,11 +3366,11 @@
+ m-show="micropython:esp32:mixbot feiyi">
+ m-show="micropython:esp32:mixbot feiyi">
@@ -3384,7 +3384,7 @@
+ m-show="micropython:esp32:mixbot feiyi">
diff --git a/common/msg/blockly/en.js b/common/msg/blockly/en.js
index 850201bf..89cea43b 100644
--- a/common/msg/blockly/en.js
+++ b/common/msg/blockly/en.js
@@ -30,7 +30,7 @@ En.MSG = {
catStorageEEPROM: 'EEPROM',
catME_GO:"ME GO",
catME_G1:"ME G1",
- catPE_G1:"PE G1",
+ catPE_G1:"PE GX",
catCE_G6:"CE G6",
catCC_G1:"CC G1",
catMINI_G2:"MINI G2",
diff --git a/common/msg/blockly/zh-hans.js b/common/msg/blockly/zh-hans.js
index c4e0ea14..0e094ec9 100644
--- a/common/msg/blockly/zh-hans.js
+++ b/common/msg/blockly/zh-hans.js
@@ -29,7 +29,7 @@ ZhHans.MSG = {
catStorageEEPROM: 'EEPROM',
catME_GO:"ME GO",
catME_G1:"ME G1",
- catPE_G1:"PE G1",
+ catPE_G1:"PE GX",
catCE_G6:"CE G6",
catCC_G1:"CC G1",
catMINI_G2:"MINI G2",
diff --git a/common/msg/blockly/zh-hant.js b/common/msg/blockly/zh-hant.js
index 1a51f9e9..3d8426b1 100644
--- a/common/msg/blockly/zh-hant.js
+++ b/common/msg/blockly/zh-hant.js
@@ -29,7 +29,7 @@ ZhHant.MSG = {
catStorageEEPROM: 'EEPROM',
catME_GO:"ME GO",
catME_G1:"ME G1",
- catPE_G1:"PE G1",
+ catPE_G1:"PE GX",
catCE_G6:"CE G6",
catCC_G1:"CC G1",
catMINI_G2:"MINI G2",