feat(boards): 所有micropython esp板卡加入 PE GX 类别

This commit is contained in:
王立帮
2026-01-13 15:09:06 +08:00
parent 583b82452a
commit a5fa5034f9
20 changed files with 1059 additions and 394 deletions

View File

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

View File

@@ -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);

View File

@@ -1166,7 +1166,7 @@
</shadow>
</value>
</block>
<block type="dicts_to_json2" m-show='micropython:educore:educore'>
<block type="dicts_to_json2" m-show='educore'>
<value name="DICT">
<shadow type="variables_get">
<field name="VAR">mydict</field>

View File

@@ -93,12 +93,12 @@
<block type="controls_pass"></block>
</statement>
</block>
<block type="inout_analog_write_init" m-show='micropython:esp32:mixgo'>
<block type="inout_analog_write_init" m-show='mixgo'>
<value name="PIN">
<shadow type="pins_dac_pin"></shadow>
</value>
</block>
<block type="inout_analog_write" m-show='micropython:esp32:mixgo'>
<block type="inout_analog_write" m-show='mixgo'>
<value name="PIN">
<shadow type="pins_dac"></shadow>
</value>
@@ -1382,20 +1382,20 @@
</category>
<!-- <category id="catOnBoard" name="catOnBoard" colour="65"> -->
<category id="catOnBoardSensor" name="catOnBoardSensor" colour="#947C54"
m-show="micropython:esp32:mixgo micropython:esp32:rm_e1 micropython:esp32:mpython micropython:esp32:mixgo_pe">
<block type="sensor_mixgo_button_is_pressed" m-hide="micropython:esp32:mixgo_pe">
m-show="mixgo rm_e1 mpython mixgo_pe">
<block type="sensor_mixgo_button_is_pressed" m-hide="mixgo_pe">
<value name="btn">
<shadow type="pins_button">
</shadow>
</value>
</block>
<block type="sensor_mixgo_button_was_pressed" m-hide="micropython:esp32:mixgo_pe">
<block type="sensor_mixgo_button_was_pressed" m-hide="mixgo_pe">
<value name="btn">
<shadow type="pins_button">
</shadow>
</value>
</block>
<block type="sensor_mixgo_button_get_presses" m-hide="micropython:esp32:mixgo_pe">
<block type="sensor_mixgo_button_get_presses" m-hide="mixgo_pe">
<value name="btn">
<shadow type="pins_button">
</shadow>
@@ -1406,7 +1406,7 @@
</shadow>
</value>
</block>
<block type="sensor_mixgo_button_attachInterrupt" m-hide="micropython:esp32:mixgo_pe">
<block type="sensor_mixgo_button_attachInterrupt" m-hide="mixgo_pe">
<value name="btn">
<shadow type="pins_button">
</shadow>
@@ -1417,7 +1417,7 @@
</shadow>
</value>
</block>
<block type="procedures_defnoreturn" m-hide="micropython:esp32:mixgo_pe">
<block type="procedures_defnoreturn" m-hide="mixgo_pe">
<mutation>
<arg name="x"></arg>
</mutation>
@@ -1426,45 +1426,45 @@
<block type="controls_pass"></block>
</statement>
</block>
<block type="sensor_mixgo_pin_pressed" m-show="micropython:esp32:mixgo">
<block type="sensor_mixgo_pin_pressed" m-show="mixgo">
<value name="button">
<shadow type="number1">
</shadow>
</value>
</block>
<block type="sensor_mpython_pin_pressed" m-show="micropython:esp32:mpython">
<block type="sensor_mpython_pin_pressed" m-show="mpython">
<value name="button">
<shadow type="pins_mpython_touch">p
</shadow>
</value>
</block>
<block type="sensor_mixgoce_pin_pressed" m-show="micropython:esp32:mixgo_pe">
<block type="sensor_mixgoce_pin_pressed" m-show="mixgo_pe">
<value name="button">
<shadow type="number3">
</shadow>
</value>
</block>
<!-- <block type="sensor_mixgo_pin_near" m-hide="micropython:esp32:mixgo"></block> -->
<block type="sensor_mixgo_pin_near_double" m-show="micropython:esp32:mixgo"></block>
<block type="sensor_rm_pin_near_double" m-show="micropython:esp32:rm_e1"></block>
<block type="sensor_rm_battery_left" m-show="micropython:esp32:rm_e1"></block>
<block type="sensor_rm_acc" m-show="micropython:esp32:rm_e1"></block>
<block type="sensor_LTR308" m-show="micropython:esp32:mixgo micropython:esp32:mpython"></block>
<block type="sensor_sound" m-show="micropython:esp32:mixgo micropython:esp32:mpython"></block>
<block type="sensor_onboard_mpu9250_gesture" m-show="micropython:esp32:mixgo"></block>
<block type="sensor_onboard_mpu9250_get_acceleration" m-show="micropython:esp32:mixgo"></block>
<block type="sensor_onboard_mpu9250_get_magnetic" m-show="micropython:esp32:mixgo"></block>
<block type="sensor_onboard_mpu9250_get_gyro" m-show="micropython:esp32:mixgo"></block>
<block type="sensor_onboard_mpu9250_temperature" m-show="micropython:esp32:mixgo"></block>
<block type="sensor_onboard_mpu9250_calibrate_compass" m-show="micropython:esp32:mixgo"></block>
<block type="sensor_onboard_mpu9250_field_strength" m-show="micropython:esp32:mixgo"></block>
<block type="sensor_onboard_compass_reset" m-show="micropython:esp32:mixgo"></block>
<block type="sensor_mpython_qmi8658_temperature" m-show="micropython:esp32:mpython"></block>
<block type="sensor_get_acceleration" m-show="micropython:esp32:mpython"></block>
<block type="sensor_mpython_qmi8658_get_gyro" m-show="micropython:esp32:mpython"></block>
<block type="sensor_mixgo_cc_mmc5603_get_magnetic" m-show="micropython:esp32:mpython"></block>
<block type="sensor_mixgo_cc_mmc5603_get_angle" m-show="micropython:esp32:mpython"></block>
<block type="onboard_RTC_set_datetime" m-hide="micropython:esp32:mixgo_pe">
<!-- <block type="sensor_mixgo_pin_near" m-hide="mixgo"></block> -->
<block type="sensor_mixgo_pin_near_double" m-show="mixgo"></block>
<block type="sensor_rm_pin_near_double" m-show="rm_e1"></block>
<block type="sensor_rm_battery_left" m-show="rm_e1"></block>
<block type="sensor_rm_acc" m-show="rm_e1"></block>
<block type="sensor_LTR308" m-show="mixgo mpython"></block>
<block type="sensor_sound" m-show="mixgo mpython"></block>
<block type="sensor_onboard_mpu9250_gesture" m-show="mixgo"></block>
<block type="sensor_onboard_mpu9250_get_acceleration" m-show="mixgo"></block>
<block type="sensor_onboard_mpu9250_get_magnetic" m-show="mixgo"></block>
<block type="sensor_onboard_mpu9250_get_gyro" m-show="mixgo"></block>
<block type="sensor_onboard_mpu9250_temperature" m-show="mixgo"></block>
<block type="sensor_onboard_mpu9250_calibrate_compass" m-show="mixgo"></block>
<block type="sensor_onboard_mpu9250_field_strength" m-show="mixgo"></block>
<block type="sensor_onboard_compass_reset" m-show="mixgo"></block>
<block type="sensor_mpython_qmi8658_temperature" m-show="mpython"></block>
<block type="sensor_get_acceleration" m-show="mpython"></block>
<block type="sensor_mpython_qmi8658_get_gyro" m-show="mpython"></block>
<block type="sensor_mixgo_cc_mmc5603_get_magnetic" m-show="mpython"></block>
<block type="sensor_mixgo_cc_mmc5603_get_angle" m-show="mpython"></block>
<block type="onboard_RTC_set_datetime" m-hide="mixgo_pe">
<value name="year">
<shadow type="math_number">
<field name="NUM">2018</field>
@@ -1496,21 +1496,21 @@
</shadow>
</value>
</block>
<block type="onboard_RTC_settime_string" m-hide="micropython:esp32:mixgo_pe">
<block type="onboard_RTC_settime_string" m-hide="mixgo_pe">
<value name="CONTENT">
<shadow type="tuple_input">
<field name="TUPLE">2023,1,1,12,0,0</field>
</shadow>
</value>
</block>
<block type="onboard_RTC_get_time" m-hide="micropython:esp32:mixgo_pe"></block>
<block type="onboard_RTC_get_time" m-hide="mixgo_pe"></block>
<block type="onboard_RTC_get_time_str"></block>
<block type="onboard_RTC_get_timestamp" m-hide="micropython:esp32:mixgo_pe">
<block type="onboard_RTC_get_timestamp" m-hide="mixgo_pe">
<value name="LIST">
<block type="onboard_RTC_get_time"></block>
</value>
</block>
<block type="onboard_RTC_timestamp_totuple" m-hide="micropython:esp32:mixgo_pe">
<block type="onboard_RTC_timestamp_totuple" m-hide="mixgo_pe">
<value name="VAR">
<shadow type="math_number">
<field name="NUM">18029</field>
@@ -1526,23 +1526,23 @@
</block>
</category>
<category id="catOnBoardActuator" name="catOnBoardActuator" colour="#6C9858"
m-show="micropython:esp32:mixgo micropython:esp32:rm_e1 micropython:esp32:mpython">
<block type="rm_actuator_led_bright" m-show='micropython:esp32:rm_e1'>
m-show="mixgo rm_e1 mpython">
<block type="rm_actuator_led_bright" m-show='rm_e1'>
<value name="bright">
<shadow type="ledswitch">
</shadow>
</value>
</block>
<block type="rm_actuator_get_led_state" m-show='micropython:esp32:rm_e1'></block>
<block type="rm_actuator_led_brightness" m-show='micropython:esp32:rm_e1'>
<block type="rm_actuator_get_led_state" m-show='rm_e1'></block>
<block type="rm_actuator_led_brightness" m-show='rm_e1'>
<value name="bright">
<shadow type="math_number">
<field name="NUM">100</field>
</shadow>
</value>
</block>
<block type="rm_actuator_get_led_bright" m-show='micropython:esp32:rm_e1'></block>
<block type="actuator_led_bright" m-show='micropython:esp32:mixgo'>
<block type="rm_actuator_get_led_bright" m-show='rm_e1'></block>
<block type="actuator_led_bright" m-show='mixgo'>
<value name="led">
<shadow type="number">
</shadow>
@@ -1552,13 +1552,13 @@
</shadow>
</value>
</block>
<block type="actuator_get_led_state" m-show='micropython:esp32:mixgo'>
<block type="actuator_get_led_state" m-show='mixgo'>
<value name="led">
<shadow type="number">
</shadow>
</value>
</block>
<block type="actuator_led_brightness" m-show='micropython:esp32:mixgo'>
<block type="actuator_led_brightness" m-show='mixgo'>
<value name="led">
<shadow type="number">
</shadow>
@@ -1569,14 +1569,14 @@
</shadow>
</value>
</block>
<block type="esp32_onboard_music_pitch" m-hide='micropython:esp32:rm_e1'>
<block type="esp32_onboard_music_pitch" m-hide='rm_e1'>
<value name="pitch">
<shadow type="pins_tone_notes">
<field name="PIN">440</field>
</shadow>
</value>
</block>
<block type="esp32_onboard_music_pitch_with_time" m-hide='micropython:esp32:rm_e1'>
<block type="esp32_onboard_music_pitch_with_time" m-hide='rm_e1'>
<value name="pitch">
<shadow type="pins_tone_notes">
<field name="PIN">440</field>
@@ -1588,7 +1588,7 @@
</shadow>
</value>
</block>
<block type="esp32_onboard_music_stop" m-hide='micropython:esp32:rm_e1'>
<block type="esp32_onboard_music_stop" m-hide='rm_e1'>
<value name="PIN">
<shadow type="pins_pwm_pin">
<field name="PIN">0</field>
@@ -1602,7 +1602,7 @@
</shadow>
</value>
</block>
<block type="esp32_onboard_music_play_list" m-hide='micropython:esp32:rm_e1'>
<block type="esp32_onboard_music_play_list" m-hide='rm_e1'>
<value name="LIST">
<shadow type="pins_playlist"></shadow>
</value>
@@ -1612,7 +1612,7 @@
</shadow>
</value>
</block>
<block type="backstage_onboard_music_play_list" m-hide='micropython:esp32:rm_e1'>
<block type="backstage_onboard_music_play_list" m-hide='rm_e1'>
<value name="LIST">
<shadow type="pins_playlist"></shadow>
</value>
@@ -1628,7 +1628,7 @@
</shadow>
</value>
</block>-->
<block type="esp32_music_set_tempo" m-hide='micropython:esp32:rm_e1'>
<block type="esp32_music_set_tempo" m-hide='rm_e1'>
<value name="TICKS">
<shadow type="math_number">
<field name="NUM">4</field>
@@ -1640,8 +1640,8 @@
</shadow>
</value>
</block>
<block type="esp32_music_get_tempo" m-hide='micropython:esp32:rm_e1'></block>
<block type="esp32_music_reset" m-hide='micropython:esp32:rm_e1'></block>
<block type="esp32_music_get_tempo" m-hide='rm_e1'></block>
<block type="esp32_music_reset" m-hide='rm_e1'></block>
<block type="actuator_onboard_neopixel_rgb">
<value name="_LED_">
<shadow type="math_number">
@@ -1681,7 +1681,7 @@
</shadow>
</value>
</block>
<block type="actuator_onboard_neopixel_rgb_show_all_chase" m-hide="micropython:esp32:mixgo">
<block type="actuator_onboard_neopixel_rgb_show_all_chase" m-hide="mixgo">
<value name="RVALUE">
<shadow type="math_number">
<field name="NUM">0</field>
@@ -1703,7 +1703,7 @@
</shadow>
</value>
</block>
<block type="actuator_onboard_neopixel_rgb_show_all_rainbow" m-hide="micropython:esp32:mixgo">
<block type="actuator_onboard_neopixel_rgb_show_all_rainbow" m-hide="mixgo">
<value name="time">
<shadow type="math_number">
<field name="NUM">1000</field>
@@ -1711,7 +1711,7 @@
</value>
</block>
<block type="actuator_onboard_neopixel_write"></block>
<block type="rm_motor" m-show='micropython:esp32:rm_e1'>
<block type="rm_motor" m-show='rm_e1'>
<value name="speed">
<shadow type="math_number">
<field name="NUM">100</field>
@@ -1720,7 +1720,7 @@
</block>
</category>
<category id="catOnBoardDisplay" name="catOnBoardDisplay" colour='#569A98'
m-show="micropython:esp32:mixgo micropython:esp32:mixgo_pe">
m-show="mixgo mixgo_pe">
<block type="display_show_image">
<value name="data">
<shadow type="pins_builtinimg"></shadow>
@@ -1781,11 +1781,11 @@
</shadow>
</value>
</block>
<block type="mixgome_display_font" m-show='micropython:esp32:mixgo_pe'></block>
<block type="mixgome_display_bitmap_create" m-show='micropython:esp32:mixgo_pe'></block>
<block type="mixgo_display_bitmap_create" m-show='micropython:esp32:mixgo'></block>
<block type="display_image_builtins" m-hide='micropython:esp32:mixgo_pe'></block>
<block type="display_image_builtins_all" m-show='micropython:esp32:mixgo_pe'></block>
<block type="mixgome_display_font" m-show='mixgo_pe'></block>
<block type="mixgome_display_bitmap_create" m-show='mixgo_pe'></block>
<block type="mixgo_display_bitmap_create" m-show='mixgo'></block>
<block type="display_image_builtins" m-hide='mixgo_pe'></block>
<block type="display_image_builtins_all" m-show='mixgo_pe'></block>
<block type="image_arithmetic">
<value name="A">
<shadow type="pins_builtinimg"></shadow>
@@ -1842,7 +1842,7 @@
<block type="display_clear"></block>
<!-- </category> -->
</category>
<category id="catOnBoardOled" colour='#78B5B4' m-show="micropython:esp32:mpython">
<category id="catOnBoardOled" colour='#78B5B4' m-show="mpython">
<block type="mpython_pbm_image"></block>
<block type="onboard_oled_show_image">
<value name="data">
@@ -2063,7 +2063,7 @@
</block>
<block type="display_clear"></block>
</category>
<category id="catPE_G1" colour="100" m-show='micropython:esp32:mixgo_pe'>
<category id="catPE_G1" colour="100" m-show='mixgo_pe'>
<block type="communicate_i2c_init">
<value name="SUB">
<shadow type="variables_get">
@@ -3299,7 +3299,7 @@
</category>
<category id="catI2C" colour="140">
<block type="communicate_i2c_onboard"
m-hide='micropython:esp32:mixgo_pe micropython:esp32:generic'></block>
m-hide='mixgo_pe generic'></block>
<block type="communicate_i2c_init">
<value name="SUB">
<shadow type="variables_get">
@@ -3792,7 +3792,7 @@
</block>
</category>
</category>
<category id="catExternSensor" colour='#A58C5B' m-hide="micropython:esp32:rm_e1">
<category id="catExternSensor" colour='#A58C5B' m-hide="rm_e1">
<!--
<block type="sensor_lm35">
<value name="PIN">
@@ -4456,7 +4456,7 @@
</block>
</category>
<category id="catExternActuator" colour='#74A55B' m-hide="micropython:esp32:rm_e1">
<category id="catExternActuator" colour='#74A55B' m-hide="rm_e1">
<block type="esp32_music_pitch_init">
<value name="SUB">
<shadow type="variables_get">
@@ -4874,7 +4874,7 @@
</block>
</category>
<category id="catExternMonitor" colour='5BA5A5' m-hide="micropython:esp32:rm_e1">
<category id="catExternMonitor" colour='5BA5A5' m-hide="rm_e1">
<category id="catMatrix" colour='5BA5A5'>
<block type="communicate_i2c_init">

View File

@@ -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;

View File

@@ -50,6 +50,7 @@ import {
MicroPythonInputBlocks,
MicroPythonIotBlocks,
MicroPythonNetworkBlocks,
MicroPythonPeG1Blocks,
MicroPythonSensorExternBlocks,
MicroPythonSensorOnBoardBlocks,
MicroPythonSerialBlocks,
@@ -71,6 +72,7 @@ import {
MicroPythonInputGenerators,
MicroPythonIotGenerators,
MicroPythonNetworkGenerators,
MicroPythonPeG1Generators,
MicroPythonSensorExternGenerators,
MicroPythonSensorOnBoardGenerators,
MicroPythonSerialGenerators,
@@ -137,6 +139,7 @@ Object.assign(
MicroPythonSensorOnBoardBlocks,
MicroPythonSensorExternBlocks,
MicroPythonNetworkBlocks,
MicroPythonPeG1Blocks,
MicroPythonAIBlocks,
MicroPythonActuatorOnBoardBlocks,
MicroPythonActuatorExternBlocks,
@@ -179,6 +182,7 @@ Object.assign(
MicroPythonSensorOnBoardGenerators,
MicroPythonSensorExternGenerators,
MicroPythonNetworkGenerators,
MicroPythonPeG1Generators,
MicroPythonAIGenerators,
MicroPythonActuatorOnBoardGenerators,
MicroPythonActuatorExternGenerators,

View File

@@ -1424,7 +1424,7 @@
</value>
</block>
<block type="sensor_mixgo_touch_slide"></block>
<block type="sensor_sound" m-show='micropython:esp32c2:mixgo_mini'></block>
<block type="sensor_sound" m-show='mixgo_mini'></block>
<!-- <block type="sensor_mixgocar_pin_near_line"
@@ -1434,18 +1434,18 @@
m-show='micropython:esp32c3:mixgocar_c3'></block>
<block type="sensor_mixgocar_battery_left" m-show='micropython:esp32c3:mixgocar_c3'></block>
-->
<block type="sensor_mixgo_pin_near_single" m-show='micropython:esp32c2:mixgo_mini'></block>
<block type="sensor_LTR308" m-show='micropython:esp32c2:mixgo_mini'></block>
<block type="sensor_eulerangles" m-show="micropython:esp32c2:mixgo_mini"></block>
<block type="sensor_mixgo_pin_near_single" m-show='mixgo_mini'></block>
<block type="sensor_LTR308" m-show='mixgo_mini'></block>
<block type="sensor_eulerangles" m-show="mixgo_mini"></block>
<!-- MixGo Me Onboard_sensor: -->
<block type="sensor_mixgome_temperature" m-show='micropython:esp32c2:mixgo_mini'></block>
<block type="sensor_hp203" m-show='micropython:esp32c2:mixgo_mini'></block>
<block type="sensor_aht11" m-show='micropython:esp32c2:mixgo_mini'></block>
<block type="sensor_get_acceleration" m-show='micropython:esp32c2:mixgo_mini'></block>
<block type="sensor_mixgo_cc_mmc5603_calibrate_compass" m-show="micropython:esp32c2:mixgo_mini"></block>
<block type="sensor_mixgo_cc_mmc5603_get_magnetic" m-show="micropython:esp32c2:mixgo_mini"></block>
<block type="sensor_mixgo_cc_mmc5603_get_angle" m-show="micropython:esp32c2:mixgo_mini"></block>
<block type="sensor_get_the_coprocessor_version" m-show="micropython:esp32c2:mixgo_mini"></block>
<block type="sensor_mixgome_temperature" m-show='mixgo_mini'></block>
<block type="sensor_hp203" m-show='mixgo_mini'></block>
<block type="sensor_aht11" m-show='mixgo_mini'></block>
<block type="sensor_get_acceleration" m-show='mixgo_mini'></block>
<block type="sensor_mixgo_cc_mmc5603_calibrate_compass" m-show="mixgo_mini"></block>
<block type="sensor_mixgo_cc_mmc5603_get_magnetic" m-show="mixgo_mini"></block>
<block type="sensor_mixgo_cc_mmc5603_get_angle" m-show="mixgo_mini"></block>
<block type="sensor_get_the_coprocessor_version" m-show="mixgo_mini"></block>
<block type="rfid_readid" m-show='micropython:esp32c3:mixgo_cc'>
<value name="SUB">
<shadow type="variables_get">
@@ -1548,7 +1548,7 @@
</category>
<category id="catOnBoardActuator" name="catOnBoardActuator" colour="#6C9858"
m-hide='micropython:esp32c3:generic'>
<block type="actuator_led_bright" m-show='micropython:esp32c2:mixgo_mini'>
<block type="actuator_led_bright" m-show='mixgo_mini'>
<value name="led">
<shadow type="number">
</shadow>
@@ -1558,7 +1558,7 @@
</shadow>
</value>
</block>
<block type="actuator_mixgo_zero_led_color" m-show='micropython:esp32c2:mixgo_mini'>
<block type="actuator_mixgo_zero_led_color" m-show='mixgo_mini'>
<value name="led">
<shadow type="number">
</shadow>
@@ -1568,7 +1568,7 @@
</shadow>
</value>
</block>
<block type="actuator_led_brightness" m-show='micropython:esp32c2:mixgo_mini'>
<block type="actuator_led_brightness" m-show='mixgo_mini'>
<value name="led">
<shadow type="number">
</shadow>
@@ -1579,13 +1579,13 @@
</shadow>
</value>
</block>
<block type="actuator_get_led_bright" m-show='micropython:esp32c2:mixgo_mini'>
<block type="actuator_get_led_bright" m-show='mixgo_mini'>
<value name="led">
<shadow type="number">
</shadow>
</value>
</block>
<block type="actuator_get_led_state" m-show='micropython:esp32c2:mixgo_mini'>
<block type="actuator_get_led_state" m-show='mixgo_mini'>
<value name="led">
<shadow type="number">
</shadow>
@@ -1718,15 +1718,15 @@
</block>
<block type="actuator_onboard_neopixel_write">
</block>
<block type="set_power_output" m-show="micropython:esp32c2:mixgo_mini">
<block type="set_power_output" m-show="mixgo_mini">
<value name="duty">
<shadow type="math_number">
<field name="NUM">100</field>
</shadow>
</value>
</block>
<block type="get_power_output" m-show="micropython:esp32c2:mixgo_mini"></block>
<block type="set_all_power_output" m-show="micropython:esp32c2:mixgo_mini">
<block type="get_power_output" m-show="mixgo_mini"></block>
<block type="set_all_power_output" m-show="mixgo_mini">
<value name="duty">
<shadow type="math_number">
<field name="NUM">20000</field>
@@ -1734,7 +1734,7 @@
</value>
</block>
<block type="analog_keyboard_input" m-show="micropython:esp32c2:mixgo_mini">
<block type="analog_keyboard_input" m-show="mixgo_mini">
<value name="special">
<block type="special_key">
</block>
@@ -1744,14 +1744,14 @@
</block>
</value>
</block>
<block type="general_key_tuple" m-show="micropython:esp32c2:mixgo_mini">
<block type="general_key_tuple" m-show="mixgo_mini">
<value name="general">
<block type="general_key">
</block>
</value>
</block>
<block type="analog_mouse_input" m-show="micropython:esp32c2:mixgo_mini">
<block type="analog_mouse_input" m-show="mixgo_mini">
<value name="key">
<block type="mouse_key">
</block>
@@ -1769,7 +1769,7 @@
</shadow>
</value>
</block>
<block type="analog_keyboard_str" m-show="micropython:esp32c2:mixgo_mini">
<block type="analog_keyboard_str" m-show="mixgo_mini">
<value name="str">
<shadow type="text">
<field name="TEXT">Hello, Mixly!</field>
@@ -1781,9 +1781,9 @@
</shadow>
</value>
</block>
<block type="set_microphone_amplification" m-show="micropython:esp32c2:mixgo_mini">
<block type="set_microphone_amplification" m-show="mixgo_mini">
</block>
<block type="record_audio" m-show="micropython:esp32c2:mixgo_mini">
<block type="record_audio" m-show="mixgo_mini">
<value name="str">
<shadow type="text">
<field name="TEXT">mixly.wav</field>
@@ -1839,7 +1839,7 @@
</shadow>
</value>
</block>
<block type="display_scroll_way" m-show='micropython:esp32c2:mixgo_mini'></block>
<block type="display_scroll_way" m-show='mixgo_mini'></block>
<block type="display_show_frame_string">
<value name="data">
<shadow type="text">
@@ -1859,8 +1859,8 @@
</shadow>
</value>
</block>
<block type="mixgomini_display_bitmap_create" m-show='micropython:esp32c2:mixgo_mini'></block>
<block type="display_image_builtins_all" m-show='micropython:esp32c2:mixgo_mini'></block>
<block type="mixgomini_display_bitmap_create" m-show='mixgo_mini'></block>
<block type="display_image_builtins_all" m-show='mixgo_mini'></block>
<block type="image_arithmetic">
<value name="A">
<shadow type="pins_builtinimg"></shadow>
@@ -1920,7 +1920,7 @@
</block>
</category>
<category id="catME_GO" colour="100" m-show='micropython:esp32c2:mixgo_mini'>
<category id="catME_GO" colour="100" m-show='mixgo_mini'>
<block type="ce_go_led_bright">
<value name="led">
<shadow type="ce_go_light_number">
@@ -2013,13 +2013,139 @@
<block type="ce_go_pin_light"></block>
<block type="sensor_mixgome_eulerangles" m-show='micropython:esp32c3:mixgo_me'></block>
</category>
<category id="catCC_G1" colour="40" m-show="micropython:esp32c2:mixgo_mini">
<category id="catPE_G1" colour="100" m-show='mixgo_mini'>
<block type="communicate_i2c_init">
<value name="SUB">
<shadow type="variables_get">
<field name="VAR">i2c_extend</field>
</shadow>
</value>
<value name="TX">
<shadow type="pins_digital_pin">
<field name="PIN">21</field>
</shadow>
</value>
<value name="RX">
<shadow type="pins_digital_pin">
<field name="PIN">22</field>
</shadow>
</value>
<value name="freq">
<shadow type="math_number">
<field name="NUM">400000</field>
</shadow>
</value>
<next>
<block type="pe_g1_use_i2c_init">
<value name="SUB">
<shadow type="variables_get">
<field name="VAR">pe</field>
</shadow>
</value>
<value name="I2CSUB">
<shadow type="variables_get">
<field name="VAR">i2c_extend</field>
</shadow>
</value>
</block>
</next>
</block>
<block type="pe_g1_battery_left">
<value name="SUB">
<shadow type="variables_get">
<field name="VAR">pe</field>
</shadow>
</value>
</block>
<block type="pe_g1_servo_set_angle">
<value name="SUB">
<shadow type="variables_get">
<field name="VAR">pe</field>
</shadow>
</value>
<value name="PIN">
<shadow type="number5">
</shadow>
</value>
<value name="NUM">
<shadow type="math_number">
<field name="NUM">100</field>
</shadow>
</value>
</block>
<block type="pe_g1_servo_get_angle">
<value name="SUB">
<shadow type="variables_get">
<field name="VAR">pe</field>
</shadow>
</value>
<value name="PIN">
<shadow type="number5">
</shadow>
</value>
</block>
<block type="pe_g1_servo_set_speed">
<value name="SUB">
<shadow type="variables_get">
<field name="VAR">pe</field>
</shadow>
</value>
<value name="PIN">
<shadow type="number5">
</shadow>
</value>
<value name="NUM">
<shadow type="math_number">
<field name="NUM">100</field>
</shadow>
</value>
</block>
<block type="pe_g1_servo_get_speed">
<value name="SUB">
<shadow type="variables_get">
<field name="VAR">pe</field>
</shadow>
</value>
<value name="PIN">
<shadow type="number5">
</shadow>
</value>
</block>
<block type="pe_g1_dc_motor">
<value name="SUB">
<shadow type="variables_get">
<field name="VAR">pe</field>
</shadow>
</value>
<value name="PIN">
<shadow type="number4">
</shadow>
</value>
<value name="speed">
<shadow type="math_number">
<field name="NUM">100</field>
</shadow>
</value>
</block>
<block type="pe_g1_dc_motor_speed">
<value name="SUB">
<shadow type="variables_get">
<field name="VAR">pe</field>
</shadow>
</value>
<value name="PIN">
<shadow type="number4">
</shadow>
</value>
</block>
</category>
<category id="catCC_G1" colour="40" m-show="mixgo_mini">
<block type="cc_g1_read_bat"></block>
<block type="cc_g1_read_joystick"></block>
<block type="cc_g1_read_key"></block>
<block type="cc_g1_turnoff"></block>
</category>
<category id="catMINI_G2" colour="40" m-show='micropython:esp32c2:mixgo_mini'>
<category id="catMINI_G2" colour="40" m-show='mixgo_mini'>
<block type="rfid_status"></block>
<block type="rfid_readid"></block>
<block type="rfid_readcontent">
@@ -2054,7 +2180,7 @@
</value>
</block>
</category>
<category id="catMINI_G5" colour="40" m-show='micropython:esp32c2:mixgo_mini'>
<category id="catMINI_G5" colour="40" m-show='mixgo_mini'>
<block type="rfid_status"></block>
<block type="rfid_readid"></block>
<block type="rfid_readcontent">

View File

@@ -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;

View File

@@ -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,

View File

@@ -1356,20 +1356,20 @@
<!--<category
id="catOnBoard" name="catOnBoard" colour="65">-->
<category id="catOnBoardSensor" name="catOnBoardSensor" colour="#947C54"
m-hide='micropython:esp32c3:generic'>
<block type="sensor_mixgo_button_is_pressed" m-hide='micropython:esp32c3:mixgocar_c3'>
m-hide='generic'>
<block type="sensor_mixgo_button_is_pressed" m-hide='mixgocar_c3'>
<value name="btn">
<shadow type="pins_button">
</shadow>
</value>
</block>
<block type="sensor_mixgo_button_was_pressed" m-hide='micropython:esp32c3:mixgocar_c3'>
<block type="sensor_mixgo_button_was_pressed" m-hide='mixgocar_c3'>
<value name="btn">
<shadow type="pins_button">
</shadow>
</value>
</block>
<block type="sensor_mixgo_button_get_presses" m-hide='micropython:esp32c3:mixgocar_c3'>
<block type="sensor_mixgo_button_get_presses" m-hide='mixgocar_c3'>
<value name="btn">
<shadow type="pins_button">
</shadow>
@@ -1380,7 +1380,7 @@
</shadow>
</value>
</block>
<block type="sensor_mixgo_button_attachInterrupt" m-hide='micropython:esp32c3:mixgocar_c3'>
<block type="sensor_mixgo_button_attachInterrupt" m-hide='mixgocar_c3'>
<value name="btn">
<shadow type="pins_buttonB">
</shadow>
@@ -1391,17 +1391,17 @@
</shadow>
</value>
</block>
<block type="sensor_mixgocar42_button_is_pressed" m-show='micropython:esp32c3:mixgocar_c3'></block>
<block type="sensor_mixgocar42_button_was_pressed" m-show='micropython:esp32c3:mixgocar_c3'>
<block type="sensor_mixgocar42_button_is_pressed" m-show='mixgocar_c3'></block>
<block type="sensor_mixgocar42_button_was_pressed" m-show='mixgocar_c3'>
</block>
<block type="sensor_mixgocar42_button_get_presses" m-show='micropython:esp32c3:mixgocar_c3'>
<block type="sensor_mixgocar42_button_get_presses" m-show='mixgocar_c3'>
<value name="VAR">
<shadow type="math_number">
<field name="NUM">1</field>
</shadow>
</value>
</block>
<block type="sensor_mixgocar42_button_attachInterrupt" m-show='micropython:esp32c3:mixgocar_c3'>
<block type="sensor_mixgocar42_button_attachInterrupt" m-show='mixgocar_c3'>
<value name="DO">
<shadow type="factory_block_return">
<field name="VALUE">attachInterrupt_func</field>
@@ -1417,34 +1417,34 @@
<block type="controls_pass"></block>
</statement>
</block>
<block type="sensor_mixgocar_pin_near_line" m-show='micropython:esp32c3:mixgocar_c3'></block>
<block type="sensor_mixgocar_pin_near" m-show='micropython:esp32c3:mixgocar_c3'></block>
<block type="sensor_mixgocar_pin_near_state_change" m-show='micropython:esp32c3:mixgocar_c3'></block>
<block type="sensor_mixgocar_battery_left" m-show='micropython:esp32c3:mixgocar_c3'></block>
<block type="sensor_mixgo_pin_near_single" m-hide='micropython:esp32c3:mixgocar_c3'></block>
<block type="sensor_LTR308" m-hide='micropython:esp32c3:mixgocar_c3'></block>
<block type="sensor_sound" m-hide='micropython:esp32c3:mixgocar_c3'></block>
<block type="sensor_mixgocar_pin_near_line" m-show='mixgocar_c3'></block>
<block type="sensor_mixgocar_pin_near" m-show='mixgocar_c3'></block>
<block type="sensor_mixgocar_pin_near_state_change" m-show='mixgocar_c3'></block>
<block type="sensor_mixgocar_battery_left" m-show='mixgocar_c3'></block>
<block type="sensor_mixgo_pin_near_single" m-hide='mixgocar_c3'></block>
<block type="sensor_LTR308" m-hide='mixgocar_c3'></block>
<block type="sensor_sound" m-hide='mixgocar_c3'></block>
<!-- MixGo Me Onboard_sensor: -->
<block type="sensor_mixgome_temperature" m-show='micropython:esp32c3:mixgo_me'></block>
<block type="sensor_hp203" m-show='micropython:esp32c3:mixgo_cc'></block>
<block type="sensor_aht11" m-show='micropython:esp32c3:mixgo_cc'></block>
<block type="sensor_get_acceleration" m-hide='micropython:esp32c3:mixgocar_c3'></block>
<block type="sensor_mixgome_temperature" m-show='mixgo_me'></block>
<block type="sensor_hp203" m-show='mixgo_cc'></block>
<block type="sensor_aht11" m-show='mixgo_cc'></block>
<block type="sensor_get_acceleration" m-hide='mixgocar_c3'></block>
<block type="sensor_mixgo_cc_mmc5603_calibrate_compass"
m-show="micropython:esp32c3:mixgo_cc micropython:esp32c3:mixgo_me"></block>
m-show="mixgo_cc mixgo_me"></block>
<block type="sensor_mixgo_cc_mmc5603_get_magnetic"
m-show="micropython:esp32c3:mixgo_cc micropython:esp32c3:mixgo_me"></block>
m-show="mixgo_cc mixgo_me"></block>
<block type="sensor_mixgo_cc_mmc5603_get_angle"
m-show="micropython:esp32c3:mixgo_cc micropython:esp32c3:mixgo_me"></block>
<block type="rfid_status" m-show='micropython:esp32c3:mixgo_cc'></block>
<block type="rfid_readid" m-show='micropython:esp32c3:mixgo_cc'></block>
<block type="rfid_readcontent" m-show='micropython:esp32c3:mixgo_cc'>
m-show="mixgo_cc mixgo_me"></block>
<block type="rfid_status" m-show='mixgo_cc'></block>
<block type="rfid_readid" m-show='mixgo_cc'></block>
<block type="rfid_readcontent" m-show='mixgo_cc'>
<value name="SECTOR">
<shadow type="math_number">
<field name="NUM">0</field>
</shadow>
</value>
</block>
<block type="rfid_write" m-show='micropython:esp32c3:mixgo_cc'>
<block type="rfid_write" m-show='mixgo_cc'>
<value name="SECTOR">
<shadow type="math_number">
<field name="NUM">0</field>
@@ -1456,7 +1456,7 @@
</shadow>
</value>
</block>
<block type="rfid_write_return" m-show='micropython:esp32c3:mixgo_cc'>
<block type="rfid_write_return" m-show='mixgo_cc'>
<value name="SECTOR">
<shadow type="math_number">
<field name="NUM">0</field>
@@ -1531,9 +1531,9 @@
</category>
<category id="catOnBoardActuator" name="catOnBoardActuator" colour="#6C9858"
m-hide='micropython:esp32c3:generic'>
m-hide='generic'>
<block type="actuator_led_bright"
m-show='micropython:esp32c3:mixgo_cc micropython:esp32c3:mixgo_me'>
m-show='mixgo_cc mixgo_me'>
<value name="led">
<shadow type="number">
</shadow>
@@ -1544,14 +1544,14 @@
</value>
</block>
<block type="actuator_get_led_state"
m-show='micropython:esp32c3:mixgo_cc micropython:esp32c3:mixgo_me'>
m-show='mixgo_cc mixgo_me'>
<value name="led">
<shadow type="number">
</shadow>
</value>
</block>
<block type="actuator_led_brightness"
m-show='micropython:esp32c3:mixgo_cc micropython:esp32c3:mixgo_me'>
m-show='mixgo_cc mixgo_me'>
<value name="led">
<shadow type="number">
</shadow>
@@ -1563,34 +1563,34 @@
</value>
</block>
<block type="actuator_get_led_bright"
m-show='micropython:esp32c3:mixgo_cc micropython:esp32c3:mixgo_me'>
m-show='mixgo_cc mixgo_me'>
<value name="led">
<shadow type="number">
</shadow>
</value>
</block>
<block type="actuator_get_led_state" m-show='micropython:esp32c3:mixgo_cc micropython:esp32c3:mixgo_me'>
<block type="actuator_get_led_state" m-show='mixgo_cc mixgo_me'>
<value name="led">
<shadow type="number">
</shadow>
</value>
</block>
<block type="actuator_stepper_keep" m-show='micropython:esp32c3:mixgocar_c3'>
<block type="actuator_stepper_keep" m-show='mixgocar_c3'>
<value name="speed">
<shadow type="math_number">
<field name="NUM">100</field>
</shadow>
</value>
</block>
<block type="actuator_stepper_stop" m-show='micropython:esp32c3:mixgocar_c3'></block>
<block type="actuator_dc_motor" m-show='micropython:esp32c3:mixgocar_c3'>
<block type="actuator_stepper_stop" m-show='mixgocar_c3'></block>
<block type="actuator_dc_motor" m-show='mixgocar_c3'>
<value name="speed">
<shadow type="math_number">
<field name="NUM">100</field>
</shadow>
</value>
</block>
<block type="actuator_dc_motor_stop" m-show='micropython:esp32c3:mixgocar_c3'></block>
<block type="actuator_dc_motor_stop" m-show='mixgocar_c3'></block>
<block type="esp32_onboard_music_pitch">
<value name="pitch">
<shadow type="pins_tone_notes">
@@ -1720,7 +1720,7 @@
</block>
</category>
<category id="catOnBoardDisplay" name="catOnBoardDisplay" colour='#569A98'
m-hide='micropython:esp32c3:generic micropython:esp32c3:mixgocar_c3'>
m-hide='generic mixgocar_c3'>
<block type="display_show_image">
<value name="data">
<shadow type="pins_builtinimg"></shadow>
@@ -1781,11 +1781,11 @@
</shadow>
</value>
</block>
<block type="mixgome_display_font" m-show='micropython:esp32c3:mixgo_me'></block>
<block type="mixgome_display_bitmap_create" m-show='micropython:esp32c3:mixgo_me'></block>
<block type="display_bitmap_create" m-show='micropython:esp32c3:mixgo_cc'></block>
<block type="display_image_builtins" m-show='micropython:esp32c3:mixgo_cc'></block>
<block type="display_image_builtins_all" m-show='micropython:esp32c3:mixgo_me'></block>
<block type="mixgome_display_font" m-show='mixgo_me'></block>
<block type="mixgome_display_bitmap_create" m-show='mixgo_me'></block>
<block type="display_bitmap_create" m-show='mixgo_cc'></block>
<block type="display_image_builtins" m-show='mixgo_cc'></block>
<block type="display_image_builtins_all" m-show='mixgo_me'></block>
<block type="image_arithmetic">
<value name="A">
<shadow type="pins_builtinimg"></shadow>
@@ -1844,7 +1844,7 @@
</category>
<category id="catME_GO" colour="100"
m-show='micropython:esp32c3:mixgo_me micropython:esp32c3:mixgo_cc'>
m-show='mixgo_me mixgo_cc'>
<block type="ce_go_led_bright">
<value name="led">
<shadow type="ce_go_light_number">
@@ -1935,9 +1935,135 @@
<block type="ce_go_pin_near_line"></block>
<block type="ce_go_pin_near"></block>
<block type="ce_go_pin_light"></block>
<block type="sensor_mixgome_eulerangles" m-show='micropython:esp32c3:mixgo_me'></block>
<block type="sensor_mixgome_eulerangles" m-show='mixgo_me'></block>
</category>
<category id="catME_G1" colour="40" m-show='micropython:esp32c3:mixgo_me'>
<category id="catPE_G1" colour="100" m-hide='generic'>
<block type="communicate_i2c_init">
<value name="SUB">
<shadow type="variables_get">
<field name="VAR">i2c_extend</field>
</shadow>
</value>
<value name="TX">
<shadow type="pins_digital_pin">
<field name="PIN">21</field>
</shadow>
</value>
<value name="RX">
<shadow type="pins_digital_pin">
<field name="PIN">22</field>
</shadow>
</value>
<value name="freq">
<shadow type="math_number">
<field name="NUM">400000</field>
</shadow>
</value>
<next>
<block type="pe_g1_use_i2c_init">
<value name="SUB">
<shadow type="variables_get">
<field name="VAR">pe</field>
</shadow>
</value>
<value name="I2CSUB">
<shadow type="variables_get">
<field name="VAR">i2c_extend</field>
</shadow>
</value>
</block>
</next>
</block>
<block type="pe_g1_battery_left">
<value name="SUB">
<shadow type="variables_get">
<field name="VAR">pe</field>
</shadow>
</value>
</block>
<block type="pe_g1_servo_set_angle">
<value name="SUB">
<shadow type="variables_get">
<field name="VAR">pe</field>
</shadow>
</value>
<value name="PIN">
<shadow type="number5">
</shadow>
</value>
<value name="NUM">
<shadow type="math_number">
<field name="NUM">100</field>
</shadow>
</value>
</block>
<block type="pe_g1_servo_get_angle">
<value name="SUB">
<shadow type="variables_get">
<field name="VAR">pe</field>
</shadow>
</value>
<value name="PIN">
<shadow type="number5">
</shadow>
</value>
</block>
<block type="pe_g1_servo_set_speed">
<value name="SUB">
<shadow type="variables_get">
<field name="VAR">pe</field>
</shadow>
</value>
<value name="PIN">
<shadow type="number5">
</shadow>
</value>
<value name="NUM">
<shadow type="math_number">
<field name="NUM">100</field>
</shadow>
</value>
</block>
<block type="pe_g1_servo_get_speed">
<value name="SUB">
<shadow type="variables_get">
<field name="VAR">pe</field>
</shadow>
</value>
<value name="PIN">
<shadow type="number5">
</shadow>
</value>
</block>
<block type="pe_g1_dc_motor">
<value name="SUB">
<shadow type="variables_get">
<field name="VAR">pe</field>
</shadow>
</value>
<value name="PIN">
<shadow type="number4">
</shadow>
</value>
<value name="speed">
<shadow type="math_number">
<field name="NUM">100</field>
</shadow>
</value>
</block>
<block type="pe_g1_dc_motor_speed">
<value name="SUB">
<shadow type="variables_get">
<field name="VAR">pe</field>
</shadow>
</value>
<value name="PIN">
<shadow type="number4">
</shadow>
</value>
</block>
</category>
<category id="catME_G1" colour="40" m-show='mixgo_me'>
<block type="me_g1_aht11"></block>
<block type="me_g1_hp203"></block>
<block type="me_g1_varistor"></block>
@@ -1976,7 +2102,7 @@
</block>
</category>
<category id="catCC_G1" colour="40"
m-show='micropython:esp32c3:mixgo_cc micropython:esp32c3:mixgo_me'>
m-show='mixgo_cc mixgo_me'>
<block type="cc_g1_read_bat"></block>
<block type="cc_g1_read_joystick"></block>
<block type="cc_g1_read_key"></block>
@@ -2444,7 +2570,7 @@
</block>
</category>
<category id="catAIOT" colour="205"
m-show="micropython:esp32c3:mixgo_me micropython:esp32c3:mixgo_cc">
m-show="mixgo_me mixgo_cc">
<block type="iot_wifi_connect">
<value name="WIFINAME">
<shadow type="text">
@@ -3099,7 +3225,7 @@
</block>
</category>
<category id="catI2C" colour="140">
<block type="communicate_i2c_onboard" m-hide='micropython:esp32c3:generic'></block>
<block type="communicate_i2c_onboard" m-hide='generic'></block>
<block type="communicate_i2c_init">
<value name="SUB">
<shadow type="variables_get">
@@ -3622,7 +3748,7 @@
</value>
</block>
-->
<block type="communicate_i2c_init" m-hide='micropython:esp32c3:mixgocar_c3'>
<block type="communicate_i2c_init" m-hide='mixgocar_c3'>
<value name="SUB">
<shadow type="variables_get">
<field name="VAR">i2c_extend</field>
@@ -3658,91 +3784,91 @@
</block>
</next>
</block>
<block type="sensor_mpu9250_get_acceleration" m-hide='micropython:esp32c3:mixgocar_c3'>
<block type="sensor_mpu9250_get_acceleration" m-hide='mixgocar_c3'>
<value name="SUB">
<shadow type="variables_get">
<field name="VAR">xsensor</field>
</shadow>
</value>
</block>
<block type="sensor_mpu9250_get_magnetic" m-hide='micropython:esp32c3:mixgocar_c3'>
<block type="sensor_mpu9250_get_magnetic" m-hide='mixgocar_c3'>
<value name="SUB">
<shadow type="variables_get">
<field name="VAR">xsensor</field>
</shadow>
</value>
</block>
<block type="sensor_mpu9250_get_gyro" m-hide='micropython:esp32c3:mixgocar_c3'>
<block type="sensor_mpu9250_get_gyro" m-hide='mixgocar_c3'>
<value name="SUB">
<shadow type="variables_get">
<field name="VAR">xsensor</field>
</shadow>
</value>
</block>
<block type="sensor_mpu9250_temperature" m-hide='micropython:esp32c3:mixgocar_c3'>
<block type="sensor_mpu9250_temperature" m-hide='mixgocar_c3'>
<value name="SUB">
<shadow type="variables_get">
<field name="VAR">xsensor</field>
</shadow>
</value>
</block>
<block type="sensor_bmp" m-hide='micropython:esp32c3:mixgocar_c3'>
<block type="sensor_bmp" m-hide='mixgocar_c3'>
<value name="SUB">
<shadow type="variables_get">
<field name="VAR">xsensor</field>
</shadow>
</value>
</block>
<block type="sensor_sht" m-hide='micropython:esp32c3:mixgocar_c3'>
<block type="sensor_sht" m-hide='mixgocar_c3'>
<value name="SUB">
<shadow type="variables_get">
<field name="VAR">xsensor</field>
</shadow>
</value>
</block>
<block type="sensor_adxl345_get_acceleration" m-hide='micropython:esp32c3:mixgocar_c3'>
<block type="sensor_adxl345_get_acceleration" m-hide='mixgocar_c3'>
<value name="SUB">
<shadow type="variables_get">
<field name="VAR">xsensor</field>
</shadow>
</value>
</block>
<block type="sensor_LTR308_extern" m-hide='micropython:esp32c3:mixgocar_c3'>
<block type="sensor_LTR308_extern" m-hide='mixgocar_c3'>
<value name="SUB">
<shadow type="variables_get">
<field name="VAR">xsensor</field>
</shadow>
</value>
</block>
<block type="sensor_LTR390UV_extern" m-hide='micropython:esp32c3:mixgocar_c3'>
<block type="sensor_LTR390UV_extern" m-hide='mixgocar_c3'>
<value name="SUB">
<shadow type="variables_get">
<field name="VAR">xsensor</field>
</shadow>
</value>
</block>
<block type="sensor_hp203_extern" m-hide='micropython:esp32c3:mixgocar_c3'>
<block type="sensor_hp203_extern" m-hide='mixgocar_c3'>
<value name="SUB">
<shadow type="variables_get">
<field name="VAR">xsensor</field>
</shadow>
</value>
</block>
<block type="sensor_spl06_001_extern" m-hide='micropython:esp32c3:mixgocar_c3'>
<block type="sensor_spl06_001_extern" m-hide='mixgocar_c3'>
<value name="SUB">
<shadow type="variables_get">
<field name="VAR">xsensor</field>
</shadow>
</value>
</block>
<block type="sensor_ms5611_extern" m-hide='micropython:esp32c3:mixgocar_c3'>
<block type="sensor_ms5611_extern" m-hide='mixgocar_c3'>
<value name="SUB">
<shadow type="variables_get">
<field name="VAR">xsensor</field>
</shadow>
</value>
</block>
<block type="sensor_ms5611_extern_altitude" m-hide='micropython:esp32c3:mixgocar_c3'>
<block type="sensor_ms5611_extern_altitude" m-hide='mixgocar_c3'>
<value name="SUB">
<shadow type="variables_get">
<field name="VAR">xsensor</field>
@@ -3754,56 +3880,56 @@
</shadow>
</value>
</block>
<block type="sensor_shtc3_extern" m-hide='micropython:esp32c3:mixgocar_c3'>
<block type="sensor_shtc3_extern" m-hide='mixgocar_c3'>
<value name="SUB">
<shadow type="variables_get">
<field name="VAR">xsensor</field>
</shadow>
</value>
</block>
<block type="sensor_aht11_extern" m-hide='micropython:esp32c3:mixgocar_c3'>
<block type="sensor_aht11_extern" m-hide='mixgocar_c3'>
<value name="SUB">
<shadow type="variables_get">
<field name="VAR">xsensor</field>
</shadow>
</value>
</block>
<block type="sensor_ltr381_extern" m-hide='micropython:esp32c3:mixgocar_c3'>
<block type="sensor_ltr381_extern" m-hide='mixgocar_c3'>
<value name="SUB">
<shadow type="variables_get">
<field name="VAR">xsensor</field>
</shadow>
</value>
</block>
<block type="sensor_ucs12071_extern" m-hide='micropython:esp32c3:mixgocar_c3'>
<block type="sensor_ucs12071_extern" m-hide='mixgocar_c3'>
<value name="SUB">
<shadow type="variables_get">
<field name="VAR">xsensor</field>
</shadow>
</value>
</block>
<block type="sensor_VL530LX_extern" m-hide='micropython:esp32c3:mixgocar_c3'>
<block type="sensor_VL530LX_extern" m-hide='mixgocar_c3'>
<value name="SUB">
<shadow type="variables_get">
<field name="VAR">xsensor</field>
</shadow>
</value>
</block>
<block type="sensor_QMC5883L_extern" m-hide='micropython:esp32c3:mixgocar_c3'>
<block type="sensor_QMC5883L_extern" m-hide='mixgocar_c3'>
<value name="SUB">
<shadow type="variables_get">
<field name="VAR">xsensor</field>
</shadow>
</value>
</block>
<block type="sensor_MAX30102_extern" m-hide='micropython:esp32c3:mixgocar_c3'>
<block type="sensor_MAX30102_extern" m-hide='mixgocar_c3'>
<value name="SUB">
<shadow type="variables_get">
<field name="VAR">xsensor</field>
</shadow>
</value>
</block>
<block type="sensor_APDS9960_extern" m-hide='micropython:esp32c3:mixgocar_c3'>
<block type="sensor_APDS9960_extern" m-hide='mixgocar_c3'>
<value name="SUB">
<shadow type="variables_get">
<field name="VAR">xsensor</field>
@@ -3871,7 +3997,7 @@
<field name="VAR">xsensor</field>
</shadow>
</block>
<block type="communicate_spi_init" m-hide='micropython:esp32c3:mixgocar_c3'>
<block type="communicate_spi_init" m-hide='mixgocar_c3'>
<value name="VAR">
<shadow type="variables_get">
<field name="VAR">spi</field>
@@ -3898,7 +4024,7 @@
</shadow>
</value>
<next>
<block type="sensor_use_spi_init" m-hide='micropython:esp32c3:mixgocar_c3'>
<block type="sensor_use_spi_init" m-hide='mixgocar_c3'>
<value name="SPISUB">
<shadow type="variables_get">
<field name="VAR">spi</field>
@@ -3918,14 +4044,14 @@
</next>
</block>
<block type="extern_rfid_status" m-hide='micropython:esp32c3:mixgocar_c3'>
<block type="extern_rfid_status" m-hide='mixgocar_c3'>
<value name="SUB">
<shadow type="variables_get">
<field name="VAR">ysensor</field>
</shadow>
</value>
</block>
<block type="extern_rfid_readid" m-hide='micropython:esp32c3:mixgocar_c3'>
<block type="extern_rfid_readid" m-hide='mixgocar_c3'>
<value name="SUB">
<shadow type="variables_get">
<field name="VAR">ysensor</field>
@@ -3937,7 +4063,7 @@
</shadow>
</value>
</block>
<block type="extern_rfid_readcontent" m-hide='micropython:esp32c3:mixgocar_c3'>
<block type="extern_rfid_readcontent" m-hide='mixgocar_c3'>
<value name="SUB">
<shadow type="variables_get">
<field name="VAR">ysensor</field>
@@ -3949,7 +4075,7 @@
</shadow>
</value>
</block>
<block type="extern_rfid_write" m-hide='micropython:esp32c3:mixgocar_c3'>
<block type="extern_rfid_write" m-hide='mixgocar_c3'>
<value name="SUB">
<shadow type="variables_get">
<field name="VAR">ysensor</field>
@@ -3966,7 +4092,7 @@
</shadow>
</value>
</block>
<block type="extern_rfid_write_return" m-hide='micropython:esp32c3:mixgocar_c3'>
<block type="extern_rfid_write_return" m-hide='mixgocar_c3'>
<value name="SUB">
<shadow type="variables_get">
<field name="VAR">ysensor</field>
@@ -3984,7 +4110,7 @@
</value>
</block>
<block type="weather_have_data" m-hide='micropython:esp32c3:mixgocar_c3'>
<block type="weather_have_data" m-hide='mixgocar_c3'>
<value name="SUB">
<shadow type="variables_get">
<field name="VAR">ysensor</field>
@@ -4004,14 +4130,14 @@
</block>
</value>
</block>
<block type="weather_data" m-hide='micropython:esp32c3:mixgocar_c3'>
<block type="weather_data" m-hide='mixgocar_c3'>
<value name="SUB">
<shadow type="variables_get">
<field name="VAR">ysensor</field>
</shadow>
</value>
</block>
<block type="weather_uart_mixio" m-hide='micropython:esp32c3:mixgocar_c3'>
<block type="weather_uart_mixio" m-hide='mixgocar_c3'>
<value name="SUB">
<shadow type="variables_get">
<field name="VAR">ysensor</field>
@@ -4024,7 +4150,7 @@
</value>
</block>
<block type="sensor_dht11" m-hide='micropython:esp32c3:mixgocar_c3'>
<block type="sensor_dht11" m-hide='mixgocar_c3'>
<value name="PIN">
<shadow type="pins_digital_pin"></shadow>
</value>
@@ -4034,7 +4160,7 @@
<shadow type="pins_digital_pin"></shadow>
</value>
</block>
<block type="HCSR04" m-hide='micropython:esp32c3:mixgocar_c3'>
<block type="HCSR04" m-hide='mixgocar_c3'>
<value name="PIN1">
<shadow type="pins_digital_pin">
<field name="PIN">4</field>
@@ -4148,7 +4274,7 @@
</shadow>
</value>
</block>
<block type="serial_softserial_new" m-hide='micropython:esp32c3:mixgocar_c3'>
<block type="serial_softserial_new" m-hide='mixgocar_c3'>
<value name="RX">
<shadow type="pins_digital_pin">
<field name="PIN">0</field>
@@ -4169,7 +4295,7 @@
</block>
</next>
</block>
<block type="pm25_get_data" m-hide='micropython:esp32c3:mixgocar_c3'>
<block type="pm25_get_data" m-hide='mixgocar_c3'>
<value name="SUB">
<shadow type="variables_get">
<field name="VAR">zsensor</field>
@@ -4298,7 +4424,7 @@
</block>
</category>
<category id="catExternActuator" colour='#74A55B'>
<block type="servo_move" m-show='micropython:esp32c3:mixgocar_c3'>
<block type="servo_move" m-show='mixgocar_c3'>
<value name="PIN">
<shadow type="pins_pwm_pin"></shadow>
</value>
@@ -4308,7 +4434,7 @@
</shadow>
</value>
</block>
<block type="esp32_music_pitch_init" m-hide='micropython:esp32c3:mixgocar_c3'>
<block type="esp32_music_pitch_init" m-hide='mixgocar_c3'>
<value name="SUB">
<shadow type="variables_get">
<field name="VAR">midi</field>
@@ -4320,7 +4446,7 @@
</shadow>
</value>
</block>
<block type="esp32_music_pitch" m-hide='micropython:esp32c3:mixgocar_c3'>
<block type="esp32_music_pitch" m-hide='mixgocar_c3'>
<value name="SUB">
<shadow type="variables_get">
<field name="VAR">midi</field>
@@ -4332,7 +4458,7 @@
</shadow>
</value>
</block>
<block type="esp32_music_pitch_with_time" m-hide='micropython:esp32c3:mixgocar_c3'>
<block type="esp32_music_pitch_with_time" m-hide='mixgocar_c3'>
<value name="SUB">
<shadow type="variables_get">
<field name="VAR">midi</field>
@@ -4349,7 +4475,7 @@
</shadow>
</value>
</block>
<block type="esp32_music_stop" m-hide='micropython:esp32c3:mixgocar_c3'>
<block type="esp32_music_stop" m-hide='mixgocar_c3'>
<value name="SUB">
<shadow type="variables_get">
<field name="VAR">midi</field>
@@ -4368,7 +4494,7 @@
</shadow>
</value>
</block>
<block type="esp32_music_play_list" m-hide='micropython:esp32c3:mixgocar_c3'>
<block type="esp32_music_play_list" m-hide='mixgocar_c3'>
<value name="LIST">
<shadow type="pins_playlist_extern"></shadow>
</value>
@@ -4378,7 +4504,7 @@
</shadow>
</value>
</block>
<block type="backstage_esp32_music_play_list" m-hide='micropython:esp32c3:mixgocar_c3'>
<block type="backstage_esp32_music_play_list" m-hide='mixgocar_c3'>
<value name="LIST">
<shadow type="pins_playlist_extern"></shadow>
</value>
@@ -4398,7 +4524,7 @@
</shadow>
</value>
</block>
<block type="esp32_music_set_tempo_extern" m-hide='micropython:esp32c3:mixgocar_c3'>
<block type="esp32_music_set_tempo_extern" m-hide='mixgocar_c3'>
<value name="SUB">
<shadow type="variables_get">
<field name="VAR">midi</field>
@@ -4415,21 +4541,21 @@
</shadow>
</value>
</block>
<block type="esp32_music_get_tempo_extern" m-hide='micropython:esp32c3:mixgocar_c3'>
<block type="esp32_music_get_tempo_extern" m-hide='mixgocar_c3'>
<value name="SUB">
<shadow type="variables_get">
<field name="VAR">midi</field>
</shadow>
</value>
</block>
<block type="esp32_music_reset_extern" m-hide='micropython:esp32c3:mixgocar_c3'>
<block type="esp32_music_reset_extern" m-hide='mixgocar_c3'>
<value name="SUB">
<shadow type="variables_get">
<field name="VAR">midi</field>
</shadow>
</value>
</block>
<block type="actuator_neopixel_init" m-hide='micropython:esp32c3:mixgocar_c3'>
<block type="actuator_neopixel_init" m-hide='mixgocar_c3'>
<value name="SUB">
<shadow type="variables_get">
<field name="VAR">rgb</field>
@@ -4446,7 +4572,7 @@
</shadow>
</value>
</block>
<block type="actuator_neopixel_rgb" m-hide='micropython:esp32c3:mixgocar_c3'>
<block type="actuator_neopixel_rgb" m-hide='mixgocar_c3'>
<value name="SUB">
<shadow type="variables_get">
<field name="VAR">rgb</field>
@@ -4473,7 +4599,7 @@
</shadow>
</value>
</block>
<block type="actuator_neopixel_rgb_all" m-hide='micropython:esp32c3:mixgocar_c3'>
<block type="actuator_neopixel_rgb_all" m-hide='mixgocar_c3'>
<value name="SUB">
<shadow type="variables_get">
<field name="VAR">rgb</field>
@@ -4495,7 +4621,7 @@
</shadow>
</value>
</block>
<block type="actuator_neopixel_rgb_show_all_chase" m-hide='micropython:esp32c3:mixgocar_c3'>
<block type="actuator_neopixel_rgb_show_all_chase" m-hide='mixgocar_c3'>
<value name="SUB">
<shadow type="variables_get">
<field name="VAR">rgb</field>
@@ -4522,7 +4648,7 @@
</shadow>
</value>
</block>
<block type="actuator_neopixel_rgb_show_all_rainbow" m-hide='micropython:esp32c3:mixgocar_c3'>
<block type="actuator_neopixel_rgb_show_all_rainbow" m-hide='mixgocar_c3'>
<value name="SUB">
<shadow type="variables_get">
<field name="VAR">rgb</field>
@@ -4534,14 +4660,14 @@
</shadow>
</value>
</block>
<block type="actuator_neopixel_write" m-hide='micropython:esp32c3:mixgocar_c3'>
<block type="actuator_neopixel_write" m-hide='mixgocar_c3'>
<value name="SUB">
<shadow type="variables_get">
<field name="VAR">rgb</field>
</shadow>
</value>
</block>
<block type="servo_set_angle" m-hide='micropython:esp32c3:mixgocar_c3'>
<block type="servo_set_angle" m-hide='mixgocar_c3'>
<value name="PIN">
<shadow type="pins_pwm_pin"></shadow>
</value>
@@ -4551,12 +4677,12 @@
</shadow>
</value>
</block>
<block type="servo_get_angle" m-hide='micropython:esp32c3:mixgocar_c3'>
<block type="servo_get_angle" m-hide='mixgocar_c3'>
<value name="PIN">
<shadow type="pins_pwm_pin"></shadow>
</value>
</block>
<block type="servo_set_speed" m-hide='micropython:esp32c3:mixgocar_c3'>
<block type="servo_set_speed" m-hide='mixgocar_c3'>
<value name="PIN">
<shadow type="pins_pwm_pin"></shadow>
</value>
@@ -4566,12 +4692,12 @@
</shadow>
</value>
</block>
<block type="servo_get_speed" m-hide='micropython:esp32c3:mixgocar_c3'>
<block type="servo_get_speed" m-hide='mixgocar_c3'>
<value name="PIN">
<shadow type="pins_pwm_pin"></shadow>
</value>
</block>
<block type="communicate_i2c_init" m-hide='micropython:esp32c3:mixgocar_c3'>
<block type="communicate_i2c_init" m-hide='mixgocar_c3'>
<value name="SUB">
<shadow type="variables_get">
<field name="VAR">i2c_extend</field>
@@ -4607,7 +4733,7 @@
</block>
</next>
</block>
<block type="actuator_ms32006_dcmotor" m-hide='micropython:esp32c3:mixgocar_c3'>
<block type="actuator_ms32006_dcmotor" m-hide='mixgocar_c3'>
<value name="SUB">
<shadow type="variables_get">
<field name="VAR">Motor</field>
@@ -4620,7 +4746,7 @@
</value>
</block>
<block type="actuator_ms32006_stepper" m-hide='micropython:esp32c3:mixgocar_c3'>
<block type="actuator_ms32006_stepper" m-hide='mixgocar_c3'>
<value name="SUB">
<shadow type="variables_get">
<field name="VAR">Motor</field>
@@ -4637,7 +4763,7 @@
</shadow>
</value>
</block>
<block type="serial_softserial_new" m-hide='micropython:esp32c3:mixgocar_c3'>
<block type="serial_softserial_new" m-hide='mixgocar_c3'>
<value name="RX">
<shadow type="pins_digital_pin">
<field name="PIN">0</field>
@@ -4658,7 +4784,7 @@
</block>
</next>
</block>
<block type="syn6288_set_voice" m-hide='micropython:esp32c3:mixgocar_c3'>
<block type="syn6288_set_voice" m-hide='mixgocar_c3'>
<value name="SUB">
<shadow type="variables_get">
<field name="VAR">actuator</field>
@@ -4668,14 +4794,14 @@
<shadow type="pins_tts_voice"></shadow>
</value>
</block>
<block type="syn6288_get_voice" m-hide='micropython:esp32c3:mixgocar_c3'>
<block type="syn6288_get_voice" m-hide='mixgocar_c3'>
<value name="SUB">
<shadow type="variables_get">
<field name="VAR">actuator</field>
</shadow>
</value>
</block>
<block type="syn6288_builtin_voice" m-hide='micropython:esp32c3:mixgocar_c3'>
<block type="syn6288_builtin_voice" m-hide='mixgocar_c3'>
<value name="SUB">
<shadow type="variables_get">
<field name="VAR">actuator</field>
@@ -4685,7 +4811,7 @@
<shadow type="pins_tts_builtin_music"></shadow>
</value>
</block>
<block type="syn6288_tts_play" m-hide='micropython:esp32c3:mixgocar_c3'>
<block type="syn6288_tts_play" m-hide='mixgocar_c3'>
<value name="SUB">
<shadow type="variables_get">
<field name="VAR">actuator</field>
@@ -4747,7 +4873,7 @@
</block>
</category>
</category>
<category id="catExternMonitor" colour='5BA5A5' m-hide='micropython:esp32c3:mixgocar_c3'>
<category id="catExternMonitor" colour='5BA5A5' m-hide='mixgocar_c3'>
<category id="catMatrix" colour='5BA5A5'>
<block type="communicate_i2c_init">
<value name="SUB">

View File

@@ -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;

View File

@@ -1380,7 +1380,7 @@
<block type="serial_readstr"></block>
<block type="serial_readline"></block>
</category>
<category id="catOnBoardSensor" name="catOnBoardSensor" colour="#947C54" m-hide='micropython:esp32c5:generic'>
<category id="catOnBoardSensor" name="catOnBoardSensor" colour="#947C54" m-hide="generic">
<block type="sensor_mixgo_button_is_pressed">
<value name="btn">
<shadow type="pins_button">
@@ -1536,7 +1536,7 @@
</block>
</category>
<category id="catOnBoardActuator" name="catOnBoardActuator" colour="#6C9858" m-hide='micropython:esp32c5:generic'>
<category id="catOnBoardActuator" name="catOnBoardActuator" colour="#6C9858" m-hide="generic">
<block type="actuator_led_bright">
<value name="led">
<shadow type="number">
@@ -1763,7 +1763,7 @@
</value>
</block>
</category>
<category id="catOnBoardDisplay" colour='#78B5B4' m-hide='micropython:esp32c5:generic'>
<category id="catOnBoardDisplay" colour='#78B5B4' m-hide="generic">
<block type="display_image_builtins_all"></block>
<block type="display_show_image">
<value name="data">
@@ -2324,7 +2324,133 @@
</value>
</block>
</category>
<category id="catAIonboard" colour="#2FAD7A" m-show='micropython:esp32c5:mixgo_sowl'>
<category id="catPE_G1" colour="100" m-hide="generic">
<block type="communicate_i2c_init">
<value name="SUB">
<shadow type="variables_get">
<field name="VAR">i2c_extend</field>
</shadow>
</value>
<value name="TX">
<shadow type="pins_digital_pin">
<field name="PIN">21</field>
</shadow>
</value>
<value name="RX">
<shadow type="pins_digital_pin">
<field name="PIN">22</field>
</shadow>
</value>
<value name="freq">
<shadow type="math_number">
<field name="NUM">400000</field>
</shadow>
</value>
<next>
<block type="pe_g1_use_i2c_init">
<value name="SUB">
<shadow type="variables_get">
<field name="VAR">pe</field>
</shadow>
</value>
<value name="I2CSUB">
<shadow type="variables_get">
<field name="VAR">i2c_extend</field>
</shadow>
</value>
</block>
</next>
</block>
<block type="pe_g1_battery_left">
<value name="SUB">
<shadow type="variables_get">
<field name="VAR">pe</field>
</shadow>
</value>
</block>
<block type="pe_g1_servo_set_angle">
<value name="SUB">
<shadow type="variables_get">
<field name="VAR">pe</field>
</shadow>
</value>
<value name="PIN">
<shadow type="number5">
</shadow>
</value>
<value name="NUM">
<shadow type="math_number">
<field name="NUM">100</field>
</shadow>
</value>
</block>
<block type="pe_g1_servo_get_angle">
<value name="SUB">
<shadow type="variables_get">
<field name="VAR">pe</field>
</shadow>
</value>
<value name="PIN">
<shadow type="number5">
</shadow>
</value>
</block>
<block type="pe_g1_servo_set_speed">
<value name="SUB">
<shadow type="variables_get">
<field name="VAR">pe</field>
</shadow>
</value>
<value name="PIN">
<shadow type="number5">
</shadow>
</value>
<value name="NUM">
<shadow type="math_number">
<field name="NUM">100</field>
</shadow>
</value>
</block>
<block type="pe_g1_servo_get_speed">
<value name="SUB">
<shadow type="variables_get">
<field name="VAR">pe</field>
</shadow>
</value>
<value name="PIN">
<shadow type="number5">
</shadow>
</value>
</block>
<block type="pe_g1_dc_motor">
<value name="SUB">
<shadow type="variables_get">
<field name="VAR">pe</field>
</shadow>
</value>
<value name="PIN">
<shadow type="number4">
</shadow>
</value>
<value name="speed">
<shadow type="math_number">
<field name="NUM">100</field>
</shadow>
</value>
</block>
<block type="pe_g1_dc_motor_speed">
<value name="SUB">
<shadow type="variables_get">
<field name="VAR">pe</field>
</shadow>
</value>
<value name="PIN">
<shadow type="number4">
</shadow>
</value>
</block>
</category>
<category id="catAIonboard" colour="#2FAD7A" m-show="mixgo_sowl">
<category id="catAIvoicesensor" colour="#2FAD7A">
<block type="VOICE_RECOGNITION_CONTROL"></block>
<block type="CI130X_IDENTIFY_AND_SAVE_SANT"></block>

View File

@@ -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;

View File

@@ -1383,7 +1383,7 @@
<!--<category
id="catOnBoard" name="catOnBoard" colour="65">-->
<category id="catOnBoardSensor" name="catOnBoardSensor" colour="#947C54"
m-hide='micropython:esp32s2:generic'>
m-hide='generic'>
<block type="sensor_mixgo_button_is_pressed">
<value name="btn">
<shadow type="pins_button">
@@ -1436,7 +1436,7 @@
<block type="sensor_mixgo_pin_near_double"></block>
<block type="sensor_mixgo_light"></block>
<block type="sensor_sound"></block>
<block type="sensor_mixgoce_temperature" m-show='micropython:esp32s2:mixgo_ce'></block>
<block type="sensor_mixgoce_temperature" m-show='mixgo_ce'></block>
<block type="sensor_get_acceleration"></block>
<block type="onboard_RTC_set_datetime">
@@ -1502,8 +1502,8 @@
</category>
<category id="catOnBoardActuator" name="catOnBoardActuator" colour="#6C9858"
m-hide='micropython:esp32s2:generic'>
<block type="actuator_led_bright" m-show='micropython:esp32s2:mixgo_ce'>
m-hide='generic'>
<block type="actuator_led_bright" m-show='mixgo_ce'>
<value name="led">
<shadow type="number">
</shadow>
@@ -1513,13 +1513,13 @@
</shadow>
</value>
</block>
<block type="actuator_get_led_state" m-show='micropython:esp32s2:mixgo_ce'>
<block type="actuator_get_led_state" m-show='mixgo_ce'>
<value name="led">
<shadow type="number">
</shadow>
</value>
</block>
<block type="actuator_led_brightness" m-show='micropython:esp32s2:mixgo_ce'>
<block type="actuator_led_brightness" m-show='mixgo_ce'>
<value name="led">
<shadow type="number">
</shadow>
@@ -1530,7 +1530,7 @@
</shadow>
</value>
</block>
<block type="actuator_get_led_bright" m-show='micropython:esp32s2:mixgo_ce'>
<block type="actuator_get_led_bright" m-show='mixgo_ce'>
<value name="led">
<shadow type="number">
</shadow>
@@ -1665,7 +1665,7 @@
</block>
</category>
<category id="catOnBoardDisplay" name="catOnBoardDisplay" colour='#569A98'
m-hide='micropython:esp32s2:generic'>
m-hide='generic'>
<block type="display_show_image">
<value name="data">
<shadow type="pins_builtinimg"></shadow>
@@ -1727,7 +1727,7 @@
</shadow>
</value>
</block>
<block type="mixgo_display_bitmap_create" m-show='micropython:esp32s2:mixgo_ce'></block>
<block type="mixgo_display_bitmap_create" m-show='mixgo_ce'></block>
<block type="display_image_builtins_all"></block>
<block type="image_arithmetic">
@@ -1782,7 +1782,7 @@
</block>
<block type="display_clear"></block>
</category>
<category id="catME_GO" colour="100" m-hide='micropython:esp32s2:generic'>
<category id="catME_GO" colour="100" m-hide='generic'>
<block type="ce_go_led_bright">
<value name="led">
<shadow type="ce_go_light_number">
@@ -1875,7 +1875,7 @@
<block type="ce_go_pin_light"></block>
<block type="sensor_mixgome_eulerangles"></block>
</category>
<category id="catCE_G6" colour="100" m-hide='micropython:esp32s2:generic'>
<category id="catCE_G6" colour="100" m-hide='generic'>
<block type="communicate_i2c_init">
<value name="SUB">
<shadow type="variables_get">
@@ -2001,7 +2001,133 @@
</value>
</block>
</category>
<category id="catCC_G1" colour="40" m-show='micropython:esp32s2:mixgo_ce'>
<category id="catPE_G1" colour="100" m-hide='generic'>
<block type="communicate_i2c_init">
<value name="SUB">
<shadow type="variables_get">
<field name="VAR">i2c_extend</field>
</shadow>
</value>
<value name="TX">
<shadow type="pins_digital_pin">
<field name="PIN">21</field>
</shadow>
</value>
<value name="RX">
<shadow type="pins_digital_pin">
<field name="PIN">22</field>
</shadow>
</value>
<value name="freq">
<shadow type="math_number">
<field name="NUM">400000</field>
</shadow>
</value>
<next>
<block type="pe_g1_use_i2c_init">
<value name="SUB">
<shadow type="variables_get">
<field name="VAR">pe</field>
</shadow>
</value>
<value name="I2CSUB">
<shadow type="variables_get">
<field name="VAR">i2c_extend</field>
</shadow>
</value>
</block>
</next>
</block>
<block type="pe_g1_battery_left">
<value name="SUB">
<shadow type="variables_get">
<field name="VAR">pe</field>
</shadow>
</value>
</block>
<block type="pe_g1_servo_set_angle">
<value name="SUB">
<shadow type="variables_get">
<field name="VAR">pe</field>
</shadow>
</value>
<value name="PIN">
<shadow type="number5">
</shadow>
</value>
<value name="NUM">
<shadow type="math_number">
<field name="NUM">100</field>
</shadow>
</value>
</block>
<block type="pe_g1_servo_get_angle">
<value name="SUB">
<shadow type="variables_get">
<field name="VAR">pe</field>
</shadow>
</value>
<value name="PIN">
<shadow type="number5">
</shadow>
</value>
</block>
<block type="pe_g1_servo_set_speed">
<value name="SUB">
<shadow type="variables_get">
<field name="VAR">pe</field>
</shadow>
</value>
<value name="PIN">
<shadow type="number5">
</shadow>
</value>
<value name="NUM">
<shadow type="math_number">
<field name="NUM">100</field>
</shadow>
</value>
</block>
<block type="pe_g1_servo_get_speed">
<value name="SUB">
<shadow type="variables_get">
<field name="VAR">pe</field>
</shadow>
</value>
<value name="PIN">
<shadow type="number5">
</shadow>
</value>
</block>
<block type="pe_g1_dc_motor">
<value name="SUB">
<shadow type="variables_get">
<field name="VAR">pe</field>
</shadow>
</value>
<value name="PIN">
<shadow type="number4">
</shadow>
</value>
<value name="speed">
<shadow type="math_number">
<field name="NUM">100</field>
</shadow>
</value>
</block>
<block type="pe_g1_dc_motor_speed">
<value name="SUB">
<shadow type="variables_get">
<field name="VAR">pe</field>
</shadow>
</value>
<value name="PIN">
<shadow type="number4">
</shadow>
</value>
</block>
</category>
<category id="catCC_G1" colour="40" m-show='mixgo_ce'>
<block type="cc_g1_read_bat"></block>
<block type="cc_g1_read_joystick"></block>
<block type="cc_g1_read_key"></block>
@@ -2837,7 +2963,7 @@
</block>
</category>
<category id="catI2C" colour="140">
<block type="communicate_i2c_onboard" m-hide='micropython:esp32s2:generic'></block>
<block type="communicate_i2c_onboard" m-hide='generic'></block>
<block type="communicate_i2c_init">
<value name="SUB">
<shadow type="variables_get">

View File

@@ -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;

View File

@@ -1381,7 +1381,7 @@
<block type="serial_readline"></block>
</category>
<category id="catOnBoardSensor" name="catOnBoardSensor" colour="#947C54"
m-hide='micropython:esp32s3:generic'>
m-hide="generic">
<block type="sensor_mixgo_button_is_pressed">
<value name="btn">
<shadow type="pins_button">
@@ -1432,31 +1432,31 @@
</value>
</block>
<block type="sensor_mixgo_touch_slide"></block>
<block type="sensor_mixgo_pin_near_single" m-show='micropython:esp32s3:mixgo_soar'></block>
<block type="sensor_mixgo_nova_pin_near" m-hide='micropython:esp32s3:mixgo_soar'></block>
<block type="sensor_LTR308" m-show='micropython:esp32s3:mixgo_soar'></block>
<block type="sensor_mixgo_nova_LTR308" m-hide='micropython:esp32s3:mixgo_soar'></block>
<block type="simulated_light_sensor" m-show='micropython:esp32s3:mixgo_soar'></block>
<!-- <block type="sensor_mixgo_sant_color" m-show='micropython:esp32s3:mixgo_sant'></block> -->
<block type="sensor_mixgo_pin_near_single" m-show='mixgo_soar'></block>
<block type="sensor_mixgo_nova_pin_near" m-hide='mixgo_soar'></block>
<block type="sensor_LTR308" m-show='mixgo_soar'></block>
<block type="sensor_mixgo_nova_LTR308" m-hide='mixgo_soar'></block>
<block type="simulated_light_sensor" m-show='mixgo_soar'></block>
<!-- <block type="sensor_mixgo_sant_color" m-show="mixgo_sant"></block> -->
<block type="sensor_sound"></block>
<block type="sensor_hp203" m-show='micropython:esp32s3:mixgo_soar'></block>
<block type="sensor_aht11" m-hide='micropython:esp32s3:mixgo_soar'></block>
<block type="sensor_get_acceleration" m-hide='micropython:esp32s3:mixgo_soar'></block>
<block type="sensor_mixbot_get_gyro" m-show='micropython:esp32s3:mixgo_soar'></block>
<block type="sensor_mixgo_cc_mmc5603_calibrate_compass" m-hide='micropython:esp32s3:mixgo_soar'></block>
<block type="sensor_mixgo_cc_mmc5603_get_magnetic" m-hide='micropython:esp32s3:mixgo_soar'></block>
<block type="sensor_mixgo_cc_mmc5603_get_angle" m-hide='micropython:esp32s3:mixgo_soar'></block>
<block type="sensor_hp203" m-show='mixgo_soar'></block>
<block type="sensor_aht11" m-hide='mixgo_soar'></block>
<block type="sensor_get_acceleration" m-hide='mixgo_soar'></block>
<block type="sensor_mixbot_get_gyro" m-show='mixgo_soar'></block>
<block type="sensor_mixgo_cc_mmc5603_calibrate_compass" m-hide='mixgo_soar'></block>
<block type="sensor_mixgo_cc_mmc5603_get_magnetic" m-hide='mixgo_soar'></block>
<block type="sensor_mixgo_cc_mmc5603_get_angle" m-hide='mixgo_soar'></block>
<block type="rfid_status" m-hide='micropython:esp32s3:mixgo_sant micropython:esp32s3:mixgo_soar'></block>
<block type="rfid_readid" m-hide='micropython:esp32s3:mixgo_sant micropython:esp32s3:mixgo_soar'></block>
<block type="rfid_readcontent" m-hide='micropython:esp32s3:mixgo_sant micropython:esp32s3:mixgo_soar'>
<block type="rfid_status" m-hide='mixgo_sant mixgo_soar'></block>
<block type="rfid_readid" m-hide='mixgo_sant mixgo_soar'></block>
<block type="rfid_readcontent" m-hide='mixgo_sant mixgo_soar'>
<value name="SECTOR">
<shadow type="math_number">
<field name="NUM">0</field>
</shadow>
</value>
</block>
<block type="rfid_write" m-hide='micropython:esp32s3:mixgo_sant micropython:esp32s3:mixgo_soar'>
<block type="rfid_write" m-hide='mixgo_sant mixgo_soar'>
<value name="SECTOR">
<shadow type="math_number">
<field name="NUM">0</field>
@@ -1468,7 +1468,7 @@
</shadow>
</value>
</block>
<block type="rfid_write_return" m-hide='micropython:esp32s3:mixgo_sant micropython:esp32s3:mixgo_soar'>
<block type="rfid_write_return" m-hide='mixgo_sant mixgo_soar'>
<value name="SECTOR">
<shadow type="math_number">
<field name="NUM">0</field>
@@ -1543,7 +1543,7 @@
</category>
<category id="catOnBoardActuator" name="catOnBoardActuator" colour="#6C9858"
m-hide='micropython:esp32s3:generic'>
m-hide="generic">
<block type="actuator_led_bright">
<value name="led">
<shadow type="number">
@@ -1577,22 +1577,22 @@
</shadow>
</value>
</block>
<block type="actuator_mixgo_nova_mic_set" m-hide='micropython:esp32s3:mixgo_sant'>
<block type="actuator_mixgo_nova_mic_set" m-hide='mixgo_sant'>
<value name="bright">
<shadow type="math_number">
<field name="NUM">100</field>
</shadow>
</value>
</block>
<block type="actuator_mixgo_nova_mic_get" m-hide='micropython:esp32s3:mixgo_sant'></block>
<block type="actuator_mixgo_nova_voice_set" m-hide='micropython:esp32s3:mixgo_sant'>
<block type="actuator_mixgo_nova_mic_get" m-hide='mixgo_sant'></block>
<block type="actuator_mixgo_nova_voice_set" m-hide='mixgo_sant'>
<value name="bright">
<shadow type="math_number">
<field name="NUM">100</field>
</shadow>
</value>
</block>
<block type="actuator_mixgo_nova_voice_get" m-hide='micropython:esp32s3:mixgo_sant'></block>
<block type="actuator_mixgo_nova_voice_get" m-hide='mixgo_sant'></block>
<!-- <block type="actuator_mixgo_nova_onboard_music_pitch">
<value name="pitch">
<shadow type="pins_tone_notes">
@@ -1600,7 +1600,7 @@
</shadow>
</value>
</block> -->
<block type="esp32_onboard_music_pitch_with_time" m-hide='micropython:esp32s3:mixgo_sant'>
<block type="esp32_onboard_music_pitch_with_time" m-hide='mixgo_sant'>
<value name="pitch">
<shadow type="pins_tone_notes">
<field name="PIN">440</field>
@@ -1619,12 +1619,12 @@
</shadow>
</value>
</block> -->
<block type="esp32_onboard_music_play_list" m-hide='micropython:esp32s3:mixgo_sant'>
<block type="esp32_onboard_music_play_list" m-hide='mixgo_sant'>
<value name="LIST">
<shadow type="pins_playlist"></shadow>
</value>
</block>
<block type="actuator_mixgo_nova_record_audio" m-hide='micropython:esp32s3:mixgo_sant'>
<block type="actuator_mixgo_nova_record_audio" m-hide='mixgo_sant'>
<value name="PATH">
<shadow type="text">
<field name="TEXT">/sd/1.wav</field>
@@ -1636,14 +1636,14 @@
</shadow>
</value>
</block>
<block type="actuator_mixgo_nova_play_audio" m-hide='micropython:esp32s3:mixgo_sant'>
<block type="actuator_mixgo_nova_play_audio" m-hide='mixgo_sant'>
<value name="PATH">
<shadow type="text">
<field name="TEXT">/sd/1.wav</field>
</shadow>
</value>
</block>
<block type="actuator_mixgo_nova_play_online_audio" m-hide='micropython:esp32s3:mixgo_sant'>
<block type="actuator_mixgo_nova_play_online_audio" m-hide='mixgo_sant'>
<value name="PATH">
<shadow type="text">
<field name="TEXT">https://gitee.com/dahanzimin/test/raw/master/wav/8.wav</field>
@@ -1651,14 +1651,14 @@
</value>
</block>
<block type="esp32_onboard_music_pitch" m-show='micropython:esp32s3:mixgo_sant'>
<block type="esp32_onboard_music_pitch" m-show="mixgo_sant">
<value name="pitch">
<shadow type="pins_tone_notes">
<field name="PIN">440</field>
</shadow>
</value>
</block>
<block type="esp32_onboard_music_pitch_with_time" m-show='micropython:esp32s3:mixgo_sant'>
<block type="esp32_onboard_music_pitch_with_time" m-show="mixgo_sant">
<value name="pitch">
<shadow type="pins_tone_notes">
<field name="PIN">440</field>
@@ -1670,31 +1670,31 @@
</shadow>
</value>
</block>
<block type="esp32_onboard_music_stop" m-show='micropython:esp32s3:mixgo_sant'>
<block type="esp32_onboard_music_stop" m-show="mixgo_sant">
<value name="PIN">
<shadow type="pins_pwm_pin">
<field name="PIN">0</field>
</shadow>
</value>
</block>
<block type="set_music_volume" m-show='micropython:esp32s3:mixgo_sant'>
<block type="set_music_volume" m-show="mixgo_sant">
<value name="percent">
<shadow type="math_number">
<field name="NUM">100</field>
</shadow>
</value>
</block>
<block type="esp32_onboard_music_play_list" m-show='micropython:esp32s3:mixgo_sant'>
<block type="esp32_onboard_music_play_list" m-show="mixgo_sant">
<value name="LIST">
<shadow type="pins_playlist"></shadow>
</value>
</block>
<block type="esp32_onboard_music_play_list" m-show='micropython:esp32s3:mixgo_sant'>
<block type="esp32_onboard_music_play_list" m-show="mixgo_sant">
<value name="LIST">
<shadow type="pins_playlist"></shadow>
</value>
</block>
<block type="esp32_music_set_tempo" m-show='micropython:esp32s3:mixgo_sant'>
<block type="esp32_music_set_tempo" m-show="mixgo_sant">
<value name="TICKS">
<shadow type="math_number">
<field name="NUM">4</field>
@@ -1706,8 +1706,8 @@
</shadow>
</value>
</block>
<block type="esp32_music_get_tempo" m-show='micropython:esp32s3:mixgo_sant'></block>
<block type="esp32_music_reset" m-show='micropython:esp32s3:mixgo_sant'></block>
<block type="esp32_music_get_tempo" m-show="mixgo_sant"></block>
<block type="esp32_music_reset" m-show="mixgo_sant"></block>
<block type="actuator_onboard_neopixel_rgb">
<value name="_LED_">
@@ -1779,23 +1779,23 @@
</block>
<block type="actuator_onboard_neopixel_write">
</block>
<block type="set_power_output" m-show="micropython:esp32s3:mixgo_sant micropython:esp32s3:mixgo_soar">
<block type="set_power_output" m-show="mixgo_sant mixgo_soar">
<value name="duty">
<shadow type="math_number">
<field name="NUM">100</field>
</shadow>
</value>
</block>
<block type="get_power_output" m-show="micropython:esp32s3:mixgo_sant micropython:esp32s3:mixgo_soar"></block>
<block type="set_all_power_output" m-show="micropython:esp32s3:mixgo_sant micropython:esp32s3:mixgo_soar">
<block type="get_power_output" m-show="mixgo_sant mixgo_soar"></block>
<block type="set_all_power_output" m-show="mixgo_sant mixgo_soar">
<value name="duty">
<shadow type="math_number">
<field name="NUM">20000</field>
</shadow>
</value>
</block>
<block type="get_keyboard_light" m-show="micropython:esp32s3:mixgo_sant micropython:esp32s3:mixgo_soar"></block>
<block type="analog_keyboard_input" m-show="micropython:esp32s3:mixgo_sant micropython:esp32s3:mixgo_soar">
<block type="get_keyboard_light" m-show="mixgo_sant mixgo_soar"></block>
<block type="analog_keyboard_input" m-show="mixgo_sant mixgo_soar">
<value name="special">
<block type="special_key">
</block>
@@ -1805,14 +1805,14 @@
</block>
</value>
</block>
<block type="general_key_tuple" m-show="micropython:esp32s3:mixgo_sant micropython:esp32s3:mixgo_soar">
<block type="general_key_tuple" m-show="mixgo_sant mixgo_soar">
<value name="general">
<block type="general_key">
</block>
</value>
</block>
<block type="analog_mouse_input" m-show="micropython:esp32s3:mixgo_sant micropython:esp32s3:mixgo_soar">
<block type="analog_mouse_input" m-show="mixgo_sant mixgo_soar">
<value name="key">
<block type="mouse_key">
</block>
@@ -1830,7 +1830,7 @@
</shadow>
</value>
</block>
<block type="analog_keyboard_str" m-show="micropython:esp32s3:mixgo_sant micropython:esp32s3:mixgo_soar">
<block type="analog_keyboard_str" m-show="mixgo_sant mixgo_soar">
<value name="str">
<shadow type="text">
<field name="TEXT">Hello, Mixly!</field>
@@ -1843,7 +1843,7 @@
</value>
</block>
</category>
<category id="catOnBoardDisplay" colour='#78B5B4' m-hide='micropython:esp32s3:generic'>
<category id="catOnBoardDisplay" colour='#78B5B4' m-hide="generic">
<block type="display_image_builtins_all"></block>
<block type="display_show_image">
<value name="data">
@@ -1975,7 +1975,7 @@
</shadow>
</value>
</block>
<block type="SCREEN_DISPLAY_IMAGE" m-show="micropython:esp32s3:mixgo_sant">
<block type="SCREEN_DISPLAY_IMAGE" m-show="mixgo_sant">
<value name="direct">
<shadow type="text">
<field name="TEXT">mixly.jpg</field>
@@ -2307,7 +2307,7 @@
</value>
</block>
<block type="display_available"></block>
<block type="onboard_tft_clock_init" m-show="micropython:esp32s3:mixgo_sant">
<block type="onboard_tft_clock_init" m-show="mixgo_sant">
<value name="SUB">
<shadow type="variables_get">
<field name="VAR">new_clock</field>
@@ -2337,7 +2337,7 @@
</shadow>
</value>
</block>
<block type="onboard_tft_clock_init" m-show="micropython:esp32s3:mixgo_nova">
<block type="onboard_tft_clock_init" m-show="mixgo_nova">
<value name="SUB">
<shadow type="variables_get">
<field name="VAR">new_clock</field>
@@ -2367,7 +2367,7 @@
</shadow>
</value>
</block>
<block type="onboard_tft_clock_init" m-show="micropython:esp32s3:mixgo_soar">
<block type="onboard_tft_clock_init" m-show="mixgo_soar">
<value name="SUB">
<shadow type="variables_get">
<field name="VAR">new_clock</field>
@@ -2464,25 +2464,25 @@
</value>
</block>
</category>
<category id="catAIonboard" colour="#2FAD7A" m-show='micropython:esp32s3:mixgo_sant'>
<category id="catAIonboard" colour="#2FAD7A" m-show="mixgo_sant">
<category id="catAIvoicesensor" colour="#2FAD7A">
<block type="VOICE_RECOGNITION_CONTROL"></block>
<block type="CI130X_IDENTIFY_AND_SAVE_SANT" m-show='micropython:esp32s3:mixgo_sant'></block>
<block type="CI130X_GET_WHETHER_IDENTIFY_SANT" m-show='micropython:esp32s3:mixgo_sant'></block>
<block type="CI130X_GET_THE_RECOGNIZED_CMD_SANT" m-show='micropython:esp32s3:mixgo_sant'></block>
<block type="CI130X_BROADCAST_SANT" m-show='micropython:esp32s3:mixgo_sant'>
<block type="CI130X_IDENTIFY_AND_SAVE_SANT" m-show="mixgo_sant"></block>
<block type="CI130X_GET_WHETHER_IDENTIFY_SANT" m-show="mixgo_sant"></block>
<block type="CI130X_GET_THE_RECOGNIZED_CMD_SANT" m-show="mixgo_sant"></block>
<block type="CI130X_BROADCAST_SANT" m-show="mixgo_sant">
<value name="NUM">
<block type="logic_null"></block>
</value>
</block>
<block type="CI130X_SET_SYSTEM_CMD_SANT" m-show='micropython:esp32s3:mixgo_sant'></block>
<block type="CI130X_BROADCAST_SYSTEM_TIME" m-show='micropython:esp32s3:mixgo_sant'>
<block type="CI130X_SET_SYSTEM_CMD_SANT" m-show="mixgo_sant"></block>
<block type="CI130X_BROADCAST_SYSTEM_TIME" m-show="mixgo_sant">
<value name="boolean">
<shadow type="logic_boolean">
</shadow>
</value>
</block>
<block type="CI130X_PLAY_SYSTEM_CMD_SANT" m-show='micropython:esp32s3:mixgo_sant'>
<block type="CI130X_PLAY_SYSTEM_CMD_SANT" m-show="mixgo_sant">
<value name="text">
<shadow type="text">
<field name="TEXT">你们,米思齐</field>
@@ -3175,8 +3175,134 @@
</value>
</block> -->
</category>
</category>
<category id="catSANT_G3" colour="40" m-show='micropython:esp32s3:mixgo_sant'>
</category>
<category id="catPE_G1" colour="100" m-hide="generic">
<block type="communicate_i2c_init">
<value name="SUB">
<shadow type="variables_get">
<field name="VAR">i2c_extend</field>
</shadow>
</value>
<value name="TX">
<shadow type="pins_digital_pin">
<field name="PIN">21</field>
</shadow>
</value>
<value name="RX">
<shadow type="pins_digital_pin">
<field name="PIN">22</field>
</shadow>
</value>
<value name="freq">
<shadow type="math_number">
<field name="NUM">400000</field>
</shadow>
</value>
<next>
<block type="pe_g1_use_i2c_init">
<value name="SUB">
<shadow type="variables_get">
<field name="VAR">pe</field>
</shadow>
</value>
<value name="I2CSUB">
<shadow type="variables_get">
<field name="VAR">i2c_extend</field>
</shadow>
</value>
</block>
</next>
</block>
<block type="pe_g1_battery_left">
<value name="SUB">
<shadow type="variables_get">
<field name="VAR">pe</field>
</shadow>
</value>
</block>
<block type="pe_g1_servo_set_angle">
<value name="SUB">
<shadow type="variables_get">
<field name="VAR">pe</field>
</shadow>
</value>
<value name="PIN">
<shadow type="number5">
</shadow>
</value>
<value name="NUM">
<shadow type="math_number">
<field name="NUM">100</field>
</shadow>
</value>
</block>
<block type="pe_g1_servo_get_angle">
<value name="SUB">
<shadow type="variables_get">
<field name="VAR">pe</field>
</shadow>
</value>
<value name="PIN">
<shadow type="number5">
</shadow>
</value>
</block>
<block type="pe_g1_servo_set_speed">
<value name="SUB">
<shadow type="variables_get">
<field name="VAR">pe</field>
</shadow>
</value>
<value name="PIN">
<shadow type="number5">
</shadow>
</value>
<value name="NUM">
<shadow type="math_number">
<field name="NUM">100</field>
</shadow>
</value>
</block>
<block type="pe_g1_servo_get_speed">
<value name="SUB">
<shadow type="variables_get">
<field name="VAR">pe</field>
</shadow>
</value>
<value name="PIN">
<shadow type="number5">
</shadow>
</value>
</block>
<block type="pe_g1_dc_motor">
<value name="SUB">
<shadow type="variables_get">
<field name="VAR">pe</field>
</shadow>
</value>
<value name="PIN">
<shadow type="number4">
</shadow>
</value>
<value name="speed">
<shadow type="math_number">
<field name="NUM">100</field>
</shadow>
</value>
</block>
<block type="pe_g1_dc_motor_speed">
<value name="SUB">
<shadow type="variables_get">
<field name="VAR">pe</field>
</shadow>
</value>
<value name="PIN">
<shadow type="number4">
</shadow>
</value>
</block>
</category>
<category id="catSANT_G3" colour="40" m-show="mixgo_sant">
<block type="rfid_status"></block>
<block type="rfid_readid"></block>
<block type="rfid_readcontent">
@@ -5759,7 +5885,7 @@
</block>
</category>
</category>
<category id="catNova_G1" colour='100' m-show="micropython:esp32s3:mixgo_nova">
<category id="catNova_G1" colour='100' m-show="mixgo_nova">
<block type="get_potential_num">
</block>
<block type="nova_g1_motor">

View File

@@ -62,13 +62,13 @@
</shadow>
</value>
</block>
<block type="inout_pin_pressed_init" m-hide="micropython:esp32c3:feiyi">
<block type="inout_pin_pressed_init" m-hide="feiyi">
<value name="PIN">
<shadow type="pins_touch_pin">
</shadow>
</value>
</block>
<block type="inout_pin_pressed" m-hide="micropython:esp32c3:feiyi">
<block type="inout_pin_pressed" m-hide="feiyi">
<value name="pin">
<shadow type="pins_touch">
</shadow>
@@ -277,7 +277,7 @@
</shadow>
</value>
</block>
<block type="system_bitbot_shutdown" m-show="micropython:esp32c3:feiyi">
<block type="system_bitbot_shutdown" m-show="feiyi">
</block>
<block type="system_wdt_init">
<value name="period">
@@ -1418,7 +1418,7 @@
<block type="sensor_mixbot_patrol_calibrate" m-show='micropython:esp32:mixbot'></block>
<block type="sensor_mixbot_patrol_value" m-show='micropython:esp32:mixbot'></block>
<block type="sensor_rm_pin_near_double" m-hide="micropython:esp32c3:feiyi"></block>
<block type="sensor_rm_pin_near_double" m-hide="feiyi"></block>
<block type="sensor_rm_battery_left"></block>
<block type="sensor_rm_acc" m-show="micropython:esp32:rm_e1"></block>
@@ -1426,35 +1426,35 @@
<block type="sensor_mixbot_temperature" m-show='micropython:esp32:mixbot'></block>
<block type="sensor_get_acceleration" m-show='micropython:esp32:mixbot'></block>
<block type="sensor_mixbot_get_gyro" m-show='micropython:esp32:mixbot'></block>
<block type="sensor_mixgo_pin_near_single" m-show="micropython:esp32c3:feiyi"></block>
<block type="sensor_LTR308" m-show="micropython:esp32c3:feiyi"></block>
<block type="sensor_bitbot_ALS" m-show="micropython:esp32c3:feiyi">
<block type="sensor_mixgo_pin_near_single" m-show="feiyi"></block>
<block type="sensor_LTR308" m-show="feiyi"></block>
<block type="sensor_bitbot_ALS" m-show="feiyi">
<value name="mode">
<shadow type="bitbot_als_num">
</shadow>
</value>
</block>
<block type="sensor_sound" m-show="micropython:esp32c3:feiyi"></block>
<block type="sensor_sound" m-show="feiyi"></block>
<block type="sensor_hp203"
m-hide="micropython:esp32c3:feiyi micropython:esp32:mixbot micropython:esp32:rm_e1"></block>
m-hide="feiyi micropython:esp32:mixbot micropython:esp32:rm_e1"></block>
<block type="sensor_aht11"
m-hide="micropython:esp32c3:feiyi micropython:esp32:mixbot micropython:esp32:rm_e1"></block>
<block type="sensor_get_temperature" m-show="micropython:esp32c3:feiyi"></block>
<block type="sensor_get_acceleration" m-show="micropython:esp32c3:feiyi"></block>
<block type="sensor_eulerangles" m-show="micropython:esp32c3:feiyi"></block>
<block type="sensor_mixgo_cc_mmc5603_calibrate_compass" m-show="micropython:esp32c3:feiyi"></block>
<block type="sensor_mixgo_cc_mmc5603_get_magnetic" m-show="micropython:esp32c3:feiyi"></block>
<block type="sensor_mixgo_cc_mmc5603_get_angle" m-show="micropython:esp32c3:feiyi"></block>
<block type="rfid_status" m-show="micropython:esp32c3:feiyi"></block>
<block type="rfid_readid" m-show="micropython:esp32c3:feiyi"></block>
<block type="rfid_readcontent" m-show="micropython:esp32c3:feiyi">
m-hide="feiyi micropython:esp32:mixbot micropython:esp32:rm_e1"></block>
<block type="sensor_get_temperature" m-show="feiyi"></block>
<block type="sensor_get_acceleration" m-show="feiyi"></block>
<block type="sensor_eulerangles" m-show="feiyi"></block>
<block type="sensor_mixgo_cc_mmc5603_calibrate_compass" m-show="feiyi"></block>
<block type="sensor_mixgo_cc_mmc5603_get_magnetic" m-show="feiyi"></block>
<block type="sensor_mixgo_cc_mmc5603_get_angle" m-show="feiyi"></block>
<block type="rfid_status" m-show="feiyi"></block>
<block type="rfid_readid" m-show="feiyi"></block>
<block type="rfid_readcontent" m-show="feiyi">
<value name="SECTOR">
<shadow type="math_number">
<field name="NUM">0</field>
</shadow>
</value>
</block>
<block type="rfid_write" m-show="micropython:esp32c3:feiyi">
<block type="rfid_write" m-show="feiyi">
<value name="SECTOR">
<shadow type="math_number">
<field name="NUM">0</field>
@@ -1466,7 +1466,7 @@
</shadow>
</value>
</block>
<block type="rfid_write_return" m-show="micropython:esp32c3:feiyi">
<block type="rfid_write_return" m-show="feiyi">
<value name="SECTOR">
<shadow type="math_number">
<field name="NUM">0</field>
@@ -1549,38 +1549,38 @@
</shadow>
</value>
</block>
<block type="bitbot_move" m-show="micropython:esp32c3:feiyi">
<block type="bitbot_move" m-show="feiyi">
<value name="speed">
<shadow type="math_number">
<field name="NUM">100</field>
</shadow>
</value>
</block>
<block type="bitbot_stop" m-show="micropython:esp32c3:feiyi"></block>
<block type="bitbot_motor" m-show="micropython:esp32c3:feiyi">
<block type="bitbot_stop" m-show="feiyi"></block>
<block type="bitbot_motor" m-show="feiyi">
<value name="speed">
<shadow type="math_number">
<field name="NUM">100</field>
</shadow>
</value>
</block>
<block type="rm_actuator_led_bright" m-hide="micropython:esp32c3:feiyi">
<block type="rm_actuator_led_bright" m-hide="feiyi">
<value name="bright">
<shadow type="ledswitch">
</shadow>
</value>
</block>
<block type="rm_actuator_get_led_state" m-hide="micropython:esp32c3:feiyi"></block>
<block type="rm_actuator_led_brightness" m-hide="micropython:esp32c3:feiyi">
<block type="rm_actuator_get_led_state" m-hide="feiyi"></block>
<block type="rm_actuator_led_brightness" m-hide="feiyi">
<value name="bright">
<shadow type="math_number">
<field name="NUM">100</field>
</shadow>
</value>
</block>
<block type="rm_actuator_get_led_bright" m-hide="micropython:esp32c3:feiyi"></block>
<block type="rm_actuator_get_led_bright" m-hide="feiyi"></block>
<block type="esp32_onboard_music_pitch"
m-show='micropython:esp32:mixbot micropython:esp32c3:feiyi'>
m-show='micropython:esp32:mixbot feiyi'>
<value name="pitch">
<shadow type="pins_tone_notes">
<field name="PIN">440</field>
@@ -1588,7 +1588,7 @@
</value>
</block>
<block type="esp32_onboard_music_pitch_with_time"
m-show='micropython:esp32:mixbot micropython:esp32c3:feiyi'>
m-show='micropython:esp32:mixbot feiyi'>
<value name="pitch">
<shadow type="pins_tone_notes">
<field name="PIN">440</field>
@@ -1601,7 +1601,7 @@
</value>
</block>
<block type="esp32_onboard_music_stop"
m-show='micropython:esp32:mixbot micropython:esp32c3:feiyi'>
m-show='micropython:esp32:mixbot feiyi'>
<value name="PIN">
<shadow type="pins_pwm_pin">
<field name="PIN">0</field>
@@ -1609,7 +1609,7 @@
</value>
</block>
<block type="esp32_onboard_music_play_list"
m-show='micropython:esp32:mixbot micropython:esp32c3:feiyi'>
m-show='micropython:esp32:mixbot feiyi'>
<value name="LIST">
<shadow type="pins_playlist"></shadow>
</value>
@@ -1619,7 +1619,7 @@
</shadow>
</value>
</block>
<block type="esp32_music_set_tempo" m-show='micropython:esp32:mixbot micropython:esp32c3:feiyi'>
<block type="esp32_music_set_tempo" m-show='micropython:esp32:mixbot feiyi'>
<value name="TICKS">
<shadow type="math_number">
<field name="NUM">4</field>
@@ -1631,8 +1631,8 @@
</shadow>
</value>
</block>
<block type="esp32_music_get_tempo" m-show='micropython:esp32:mixbot micropython:esp32c3:feiyi'></block>
<block type="esp32_music_reset" m-show='micropython:esp32:mixbot micropython:esp32c3:feiyi'></block>
<block type="esp32_music_get_tempo" m-show='micropython:esp32:mixbot feiyi'></block>
<block type="esp32_music_reset" m-show='micropython:esp32:mixbot feiyi'></block>
<block type="actuator_mixbot_buzzer_on_off" m-show='micropython:esp32:mixbot'></block>
<block type="actuator_onboard_neopixel_rgb">
<value name="_LED_">
@@ -1707,7 +1707,7 @@
</category>
<category id="catOnBoardDisplay" name="catOnBoardDisplay" colour='#569A98'
m-show="micropython:esp32:mixbot micropython:esp32c3:feiyi">
m-show="micropython:esp32:mixbot feiyi">
<block type="display_show_image">
<value name="data">
<shadow type="pins_builtinimg"></shadow>
@@ -1770,7 +1770,7 @@
</block>
<block type="mixbot_display_bitmap_create" m-show="micropython:esp32:mixbot"></block>
<block type="bitbot_display_bitmap_create" m-show="micropython:esp32c3:feiyi"></block>
<block type="bitbot_display_bitmap_create" m-show="feiyi"></block>
<block type="display_image_builtins_all"></block>
<block type="image_arithmetic">
<value name="A">
@@ -1813,7 +1813,7 @@
</shadow>
</value>
</block>
<block type="mixbot_display_rotate" m-show="micropython:esp32:mixbot micropython:esp32c3:feiyi"></block>
<block type="mixbot_display_rotate" m-show="micropython:esp32:mixbot feiyi"></block>
<block type="mixbot_display_bright_screen" m-show="micropython:esp32:mixbot">
<value name="x">
@@ -1824,7 +1824,7 @@
</block>
<block type="mixbot_display_get_screen_pixel" m-show="micropython:esp32:mixbot"></block>
<block type="mixbot_display_get_ambientbright" m-show="micropython:esp32:mixbot"></block>
<block type="display_bright_screen" m-show="micropython:esp32c3:feiyi">
<block type="display_bright_screen" m-show="feiyi">
<value name="x">
<shadow type="math_number">
@@ -1832,7 +1832,7 @@
</shadow>
</value>
</block>
<block type="display_get_screen_pixel" m-show="micropython:esp32c3:feiyi"></block>
<block type="display_get_screen_pixel" m-show="feiyi"></block>
<block type="display_clear"></block>
<!-- </category> -->
</category>
@@ -2303,7 +2303,7 @@
</value>
</block>
</category>
<category id="catAIOT" colour="205" m-show="micropython:esp32c3:feiyi">
<category id="catAIOT" colour="205" m-show="feiyi">
<block type="iot_wifi_connect">
<value name="WIFINAME">
<shadow type="text">
@@ -3249,7 +3249,7 @@
</category>
</category>
<category id="catExternSensor" colour='#A58C5B'
m-show="micropython:esp32:mixbot micropython:esp32c3:feiyi">
m-show="micropython:esp32:mixbot feiyi">
<block type="mixbot_sensor_extern_get_addr" m-show="micropython:esp32:mixbot"></block>
<block type="mixbot_sensor_extern_set_addr" m-show="micropython:esp32:mixbot">
<value name="old">
@@ -3262,33 +3262,33 @@
</value>
</block>
<block type="robot_button_extern_get_value"
m-show="micropython:esp32:mixbot micropython:esp32c3:feiyi">
m-show="micropython:esp32:mixbot feiyi">
</block>
<block type="robot_touch_extern_get_value"
m-show="micropython:esp32:mixbot micropython:esp32c3:feiyi">
m-show="micropython:esp32:mixbot feiyi">
</block>
<block type="robot_infrared_extern_get_value"
m-show="micropython:esp32:mixbot micropython:esp32c3:feiyi">
m-show="micropython:esp32:mixbot feiyi">
</block>
<block type="robot_infrared_extern_grey_get_value" m-show="micropython:esp32c3:feiyi">
<block type="robot_infrared_extern_grey_get_value" m-show="feiyi">
</block>
<block type="robot_potentiometer_extern_get_value"
m-show="micropython:esp32:mixbot micropython:esp32c3:feiyi">
m-show="micropython:esp32:mixbot feiyi">
</block>
<block type="robot_color_extern_get_value"
m-show="micropython:esp32:mixbot micropython:esp32c3:feiyi">
m-show="micropython:esp32:mixbot feiyi">
</block>
<block type="robot_sonar_extern_get_value"
m-show="micropython:esp32:mixbot micropython:esp32c3:feiyi">
m-show="micropython:esp32:mixbot feiyi">
</block>
<block type="robot_sonar_extern_led" m-show="micropython:esp32:mixbot micropython:esp32c3:feiyi">
<block type="robot_sonar_extern_led" m-show="micropython:esp32:mixbot feiyi">
<value name="light">
<shadow type="pins_digital_dot"></shadow>
@@ -3312,7 +3312,7 @@
</shadow>
</value>
</block>
<block type="robot_motor_extern" m-show="micropython:esp32:mixbot micropython:esp32c3:feiyi">
<block type="robot_motor_extern" m-show="micropython:esp32:mixbot feiyi">
<value name="speed">
<shadow type="math_number">
<field name="NUM">100</field>
@@ -3320,14 +3320,14 @@
</value>
</block>
<block type="robot_motor_extern_get_speed"
m-show="micropython:esp32:mixbot micropython:esp32c3:feiyi">
m-show="micropython:esp32:mixbot feiyi">
</block>
<block type="robot_traffic_light_extern"
m-show="micropython:esp32:mixbot micropython:esp32c3:feiyi">
m-show="micropython:esp32:mixbot feiyi">
</block>
<block type="robot_led_extern" m-show="micropython:esp32:mixbot micropython:esp32c3:feiyi">
<block type="robot_led_extern" m-show="micropython:esp32:mixbot feiyi">
<value name="value">
<shadow type="math_number">
<field name="NUM">100</field>
@@ -3336,23 +3336,23 @@
</block>
<block type="robot_led_extern_get_value"
m-show="micropython:esp32:mixbot micropython:esp32c3:feiyi">
m-show="micropython:esp32:mixbot feiyi">
</block>
<block type="robot_servo_extern_get_status"
m-show="micropython:esp32:mixbot micropython:esp32c3:feiyi">
m-show="micropython:esp32:mixbot feiyi">
</block>
<block type="robot_servo_extern_stop_mode"
m-show="micropython:esp32:mixbot micropython:esp32c3:feiyi">
m-show="micropython:esp32:mixbot feiyi">
</block>
<block type="robot_servo_extern_stop"
m-show="micropython:esp32:mixbot micropython:esp32c3:feiyi">
m-show="micropython:esp32:mixbot feiyi">
</block>
<block type="robot_servo_extern_absolute_run"
m-show="micropython:esp32:mixbot micropython:esp32c3:feiyi">
m-show="micropython:esp32:mixbot feiyi">
<value name="speed">
<shadow type="math_number">
@@ -3366,11 +3366,11 @@
</value>
</block>
<block type="robot_servo_extern_relative_origin"
m-show="micropython:esp32:mixbot micropython:esp32c3:feiyi">
m-show="micropython:esp32:mixbot feiyi">
</block>
<block type="robot_servo_extern_relative_run"
m-show="micropython:esp32:mixbot micropython:esp32c3:feiyi">
m-show="micropython:esp32:mixbot feiyi">
<value name="speed">
<shadow type="math_number">
@@ -3384,7 +3384,7 @@
</value>
</block>
<block type="robot_servo_extern_relative_continue"
m-show="micropython:esp32:mixbot micropython:esp32c3:feiyi">
m-show="micropython:esp32:mixbot feiyi">
<value name="speed">
<shadow type="math_number">