From 6b6ec621a35918a7cff3c09354ad64976d21e596 Mon Sep 17 00:00:00 2001 From: Irene-Maxine <114802521+Irene-Maxine@users.noreply.github.com> Date: Mon, 24 Mar 2025 19:10:24 +0800 Subject: [PATCH] =?UTF-8?q?=E5=A2=9E=E5=8A=A0=E5=A4=96=E6=8E=A5=E4=BC=A0?= =?UTF-8?q?=E6=84=9F+=E8=B0=83=E6=95=B4=E6=98=BE=E7=A4=BA=E5=86=85?= =?UTF-8?q?=E7=BD=AE=E5=9B=BE=E5=83=8F?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../micropython/blocks/display_onboard.js | 242 +++++++++--------- .../micropython/blocks/sensor_extern.js | 18 ++ .../micropython/generators/display_onboard.js | 42 +-- .../micropython/generators/sensor_extern.js | 11 + .../micropython_esp32s3/template.xml | 9 +- 5 files changed, 184 insertions(+), 138 deletions(-) diff --git a/boards/default_src/micropython/blocks/display_onboard.js b/boards/default_src/micropython/blocks/display_onboard.js index 7e3e2620..671c7a70 100644 --- a/boards/default_src/micropython/blocks/display_onboard.js +++ b/boards/default_src/micropython/blocks/display_onboard.js @@ -721,128 +721,128 @@ export const mpython_display_line = { } }; -export const mpython_pbm_image = { - init: function () { - this.jsonInit({ - "colour": DISPLAY_ONBOARD_HUE, - "args0": [ - { - "type": "field_label", - "name": "size_image", - "text": Blockly.Msg.MIXLY_MICROBIT_Built_in_image1 - }, +// export const mpython_pbm_image = { +// init: function () { +// this.jsonInit({ +// "colour": DISPLAY_ONBOARD_HUE, +// "args0": [ +// { +// "type": "field_label", +// "name": "size_image", +// "text": Blockly.Msg.MIXLY_MICROBIT_Built_in_image1 +// }, - { - "name": "path", - "options": [ - ["Heart", "Heart"], - ["Angry", "Angry"], - ["Bored", "Bored"], - ["Confused", "Confused"], - ["Happy", "Happy"], - ["Paper", "Paper"], - ["Rock", "Rock"], - ["Sad", "Sad"], - ["Scissors", "Scissors"], - ["Silly", "Silly"], - ["Sleep", "Sleep"], - ["Small_heart", "Small_heart"], - ["Small_paper", "Small_paper"], - ["Small_rock", "Small_rock"], - ["Small_scissors", "Small_scissors"], - ["Smile", "Smile"], - ["Surprise", "Surprise"], - ["Wonderful", "Wonderful"], - ["Eyes_Angry", "Eyes_Angry"], - ["Awake", "Awake"], - ["Black_eye", "Black_eye"], - ["Bottom_left", "Bottom_left"], - ["Bottom_right", "Bottom_right"], - ["Crazy_1", "Crazy_1"], - ["Crazy_2", "Crazy_2"], - ["Disappointed", "Disappointed"], - ["Dizzy", "Dizzy"], - ["Down", "Down"], - ["Evil", "Evil"], - ["Hurt", "Hurt"], - ["Knocked_out", "Knocked_out"], - ["Love", "Love"], - ["Middle_left", "Middle_left"], - ["Middle_right", "Middle_right"], - ["Neutral", "Neutral"], - ["Nuclear", "Nuclear"], - ["Pinch_left", "Pinch_left"], - ["Pinch_middle", "Pinch_middle"], - ["Pinch_right", "Pinch_right"], - ["Tear", "Tear"], - ["Tired_left", "Tired_left"], - ["Tired_middle", "Tired_middle"], - ["Tired_right", "Tired_right"], - ["Toxic", "Toxic"], - ["Up", "Up"], - ["Winking", "Winking"], - ["Accept", "Accept"], - ["Backward", "Backward"], - ["Decline", "Decline"], - ["Forward", "Forward"], - ["Left", "Left"], - ["No_go", "No_go"], - ["Question_mark", "Question_mark"], - ["Right", "Right"], - ["Stop_1", "Stop_1"], - ["Stop_2", "Stop_2"], - ["Thumbs_down", "Thumbs_down"], - ["Thumbs_up", "Thumbs_up"], - ["Warning", "Warning"], - ["Bomb", "Bomb"], - ["Boom", "Boom"], - ["Fire", "Fire"], - ["Flowers", "Flowers"], - ["Forest", "Forest"], - ["Lightning", "Lightning"], - ["Light_off", "Light_off"], - ["Light_on", "Light_on"], - ["Night", "Night"], - ["Pirate", "Pirate"], - ["Snow", "Snow"], - ["Target", "Target"], - ["Bar_0", "Bar_0"], - ["Bar_1", "Bar_1"], - ["Bar_2", "Bar_2"], - ["Bar_3", "Bar_3"], - ["Bar_4", "Bar_4"], - ["Dial_0", "Dial_0"], - ["Dial_1", "Dial_1"], - ["Dial_2", "Dial_2"], - ["Dial_3", "Dial_3"], - ["Dial_4", "Dial_4"], - ["Dots_0", "Dots_0"], - ["Dots_1", "Dots_1"], - ["Dots_2", "Dots_2"], - ["Dots_3", "Dots_3"], - ["Hourglass_0", "Hourglass_0"], - ["Hourglass_1", "Hourglass_1"], - ["Hourglass_2", "Hourglass_2"], - ["Timer_0", "Timer_0"], - ["Timer_1", "Timer_1"], - ["Timer_2", "Timer_2"], - ["Timer_3", "Timer_3"], - ["Timer_4", "Timer_4"], - ["Water_level_0", "Water_level_0"], - ["Water_level_1", "Water_level_1"], - ["Water_level_2", "Water_level_2"], - ["Water_level_3", "Water_level_3"], - ], - "type": "field_dropdown" - } - ], - "output": "String", - "helpUrl": '', - "tooltip": '', - "message0": '%1 %2' - }); - } -}; +// { +// "name": "path", +// "options": [ +// ["Heart", "Heart"], +// ["Angry", "Angry"], +// ["Bored", "Bored"], +// ["Confused", "Confused"], +// ["Happy", "Happy"], +// ["Paper", "Paper"], +// ["Rock", "Rock"], +// ["Sad", "Sad"], +// ["Scissors", "Scissors"], +// ["Silly", "Silly"], +// ["Sleep", "Sleep"], +// ["Small_heart", "Small_heart"], +// ["Small_paper", "Small_paper"], +// ["Small_rock", "Small_rock"], +// ["Small_scissors", "Small_scissors"], +// ["Smile", "Smile"], +// ["Surprise", "Surprise"], +// ["Wonderful", "Wonderful"], +// ["Eyes_Angry", "Eyes_Angry"], +// ["Awake", "Awake"], +// ["Black_eye", "Black_eye"], +// ["Bottom_left", "Bottom_left"], +// ["Bottom_right", "Bottom_right"], +// ["Crazy_1", "Crazy_1"], +// ["Crazy_2", "Crazy_2"], +// ["Disappointed", "Disappointed"], +// ["Dizzy", "Dizzy"], +// ["Down", "Down"], +// ["Evil", "Evil"], +// ["Hurt", "Hurt"], +// ["Knocked_out", "Knocked_out"], +// ["Love", "Love"], +// ["Middle_left", "Middle_left"], +// ["Middle_right", "Middle_right"], +// ["Neutral", "Neutral"], +// ["Nuclear", "Nuclear"], +// ["Pinch_left", "Pinch_left"], +// ["Pinch_middle", "Pinch_middle"], +// ["Pinch_right", "Pinch_right"], +// ["Tear", "Tear"], +// ["Tired_left", "Tired_left"], +// ["Tired_middle", "Tired_middle"], +// ["Tired_right", "Tired_right"], +// ["Toxic", "Toxic"], +// ["Up", "Up"], +// ["Winking", "Winking"], +// ["Accept", "Accept"], +// ["Backward", "Backward"], +// ["Decline", "Decline"], +// ["Forward", "Forward"], +// ["Left", "Left"], +// ["No_go", "No_go"], +// ["Question_mark", "Question_mark"], +// ["Right", "Right"], +// ["Stop_1", "Stop_1"], +// ["Stop_2", "Stop_2"], +// ["Thumbs_down", "Thumbs_down"], +// ["Thumbs_up", "Thumbs_up"], +// ["Warning", "Warning"], +// ["Bomb", "Bomb"], +// ["Boom", "Boom"], +// ["Fire", "Fire"], +// ["Flowers", "Flowers"], +// ["Forest", "Forest"], +// ["Lightning", "Lightning"], +// ["Light_off", "Light_off"], +// ["Light_on", "Light_on"], +// ["Night", "Night"], +// ["Pirate", "Pirate"], +// ["Snow", "Snow"], +// ["Target", "Target"], +// ["Bar_0", "Bar_0"], +// ["Bar_1", "Bar_1"], +// ["Bar_2", "Bar_2"], +// ["Bar_3", "Bar_3"], +// ["Bar_4", "Bar_4"], +// ["Dial_0", "Dial_0"], +// ["Dial_1", "Dial_1"], +// ["Dial_2", "Dial_2"], +// ["Dial_3", "Dial_3"], +// ["Dial_4", "Dial_4"], +// ["Dots_0", "Dots_0"], +// ["Dots_1", "Dots_1"], +// ["Dots_2", "Dots_2"], +// ["Dots_3", "Dots_3"], +// ["Hourglass_0", "Hourglass_0"], +// ["Hourglass_1", "Hourglass_1"], +// ["Hourglass_2", "Hourglass_2"], +// ["Timer_0", "Timer_0"], +// ["Timer_1", "Timer_1"], +// ["Timer_2", "Timer_2"], +// ["Timer_3", "Timer_3"], +// ["Timer_4", "Timer_4"], +// ["Water_level_0", "Water_level_0"], +// ["Water_level_1", "Water_level_1"], +// ["Water_level_2", "Water_level_2"], +// ["Water_level_3", "Water_level_3"], +// ], +// "type": "field_dropdown" +// } +// ], +// "output": "String", +// "helpUrl": '', +// "tooltip": '', +// "message0": '%1 %2' +// }); +// } +// }; //mixbot onboard_matrix below: diff --git a/boards/default_src/micropython/blocks/sensor_extern.js b/boards/default_src/micropython/blocks/sensor_extern.js index 00c18efd..d599882d 100644 --- a/boards/default_src/micropython/blocks/sensor_extern.js +++ b/boards/default_src/micropython/blocks/sensor_extern.js @@ -347,6 +347,7 @@ export const sensor_use_i2c_init = { [Blockly.Msg.MIXLY_EXTERN_LIGHTUV + "(LTR390UV)", "LTR390UV"], [Blockly.Msg.MIXLY_ALTITUDE_SENSOR + "(HP203X)", "HP203X"], [Blockly.Msg.MIXLY_ALTITUDE_SENSOR + "(SPL06_001)", "SPL06_001"], + [Blockly.Msg.MIXLY_ALTITUDE_SENSOR + "(MS5611)", "MS5611"], [Blockly.Msg.MIXLY_ALTITUDE_SENSOR + "(BMP280)", "BMP280"], [Blockly.Msg.MIXLY_TEMP_AND_HUMIDITY_SENSOR + "(SHTC3)", "SHTC3"], [Blockly.Msg.MIXLY_TEMP_AND_HUMIDITY_SENSOR + "(AHT21)", "AHT21"], @@ -867,6 +868,23 @@ export const sensor_spl06_001_extern = { } }; +export const sensor_ms5611_extern = { + init: function () { + this.setColour(SENSOR_EXTERN_HUE); + this.appendValueInput('SUB') + .appendField(Blockly.Msg.MIXLY_Altitude + Blockly.Msg.MSG.catSensor + " MS5611") + .setCheck("var"); + this.appendDummyInput("") + .appendField(new Blockly.FieldDropdown([ + [Blockly.Msg.MIXLY_GETPRESSURE, "pressure()"], + [Blockly.Msg.MIXLY_GETTEMPERATUE, "temperature()"], + [Blockly.Msg.MIXLY_GET_ALTITUDE, "altitude()"], + ]), "key"); + this.setOutput(true, Number); + this.setInputsInline(true); + } +}; + export const sensor_QMC5883L_extern = { init: function () { this.setColour(SENSOR_EXTERN_HUE); diff --git a/boards/default_src/micropython/generators/display_onboard.js b/boards/default_src/micropython/generators/display_onboard.js index 01ac7486..9c700012 100644 --- a/boards/default_src/micropython/generators/display_onboard.js +++ b/boards/default_src/micropython/generators/display_onboard.js @@ -143,9 +143,19 @@ export const display_image_builtins = function (block, generator) { export const display_image_builtins_all = function (block, generator) { var version = Boards.getSelectedBoardKey().split(':')[2]; - generator.definitions_['import_' + version + '_onboard_matrix'] = "from " + version + " import onboard_matrix"; - var dropdown_image = block.getFieldValue('image'); - var code = 'onboard_matrix.' + dropdown_image; + if (version == 'mixgo_nova'){ + const PIN_VALUE = block.getFieldValue('image'); + const data = PIN_VALUE.split('.'); + if (data.length !== 2) { + throw Error('pin value error'); + } + generator.definitions_[`import_${data[0]}_${data[1]}`] = `from ${data[0]} import ${data[1]}`; + var code = data[1]; + }else{ + generator.definitions_['import_' + version + '_onboard_matrix'] = "from " + version + " import onboard_matrix"; + var dropdown_image = block.getFieldValue('image'); + var code = 'onboard_matrix.' + dropdown_image; + } return [code, generator.ORDER_ATOMIC]; } @@ -439,19 +449,19 @@ export const mixgo_display_image_create_new = function (block, generator) { //mpython -export const mpython_pbm_image = function (block, generator) { - var code = block.getFieldValue('path'); - var sort = ['expression_picture', 'eye_picture', 'informatio_picture', 'object_picture', 'progres_picture'] - var img = [["Angry", "Bored", "Confused", "Happy", "Heart", "Paper", "Rock", "Sad", "Scissors", "Silly", "Sleep", "Small_heart", "Small_paper", "Small_rock", "Small_scissors", "Smile", "Surprise", "Wonderful"], ["Eyes_Angry", "Awake", "Black_eye", "Bottom_left", "Bottom_right", "Crazy_1", "Crazy_2", "Disappointed", "Dizzy", "Down", "Hurt", "Evil", "Knocked_out", "Love", "Middle_left", "Middle_right", "Neutral", "Nuclear", "Pinch_left", "Pinch_middle", "Pinch_right", "Tear", "Tired_middle", "Tired_left", "Tired_right", "Toxic", "Up", "Winking"], ["Accept", "Backward", "Decline", "Forward", "Left", "No_go", "Question_mark", "Right", "Stop_1", "Stop_2", "Thumbs_down", "Thumbs_up", "Warning"], ["Bomb", "Boom", "Fire", "Flowers", "Forest", "Lightning", "Light_off", "Light_on", "Night", "Pirate", "Snow", "Target"], ["Bar_0", "Bar_1", "Bar_2", "Bar_3", "Bar_4", "Dial_0", "Dial_1", "Dial_2", "Dial_3", "Dial_4", "Dots_0", "Dots_1", "Dots_2", "Dots_3", "Hourglass_0", "Hourglass_1", "Hourglass_2", "Timer_0", "Timer_1", "Timer_2", "Timer_3", "Timer_4", "Water_level_0", "Water_level_1", "Water_level_2", "Water_level_3"]] - for (var i = 0; i < 5; i++) { - if (img[i].indexOf(code) != -1) { - var tag = i; - break; - } - } - generator.definitions_['import_' + sort[tag] + '_' + code] = "from " + sort[tag] + " import " + code; - return [code, generator.ORDER_ATOMIC]; -} +// export const mpython_pbm_image = function (block, generator) { +// var code = block.getFieldValue('path'); +// var sort = ['expression_picture', 'eye_picture', 'informatio_picture', 'object_picture', 'progres_picture'] +// var img = [["Angry", "Bored", "Confused", "Happy", "Heart", "Paper", "Rock", "Sad", "Scissors", "Silly", "Sleep", "Small_heart", "Small_paper", "Small_rock", "Small_scissors", "Smile", "Surprise", "Wonderful"], ["Eyes_Angry", "Awake", "Black_eye", "Bottom_left", "Bottom_right", "Crazy_1", "Crazy_2", "Disappointed", "Dizzy", "Down", "Hurt", "Evil", "Knocked_out", "Love", "Middle_left", "Middle_right", "Neutral", "Nuclear", "Pinch_left", "Pinch_middle", "Pinch_right", "Tear", "Tired_middle", "Tired_left", "Tired_right", "Toxic", "Up", "Winking"], ["Accept", "Backward", "Decline", "Forward", "Left", "No_go", "Question_mark", "Right", "Stop_1", "Stop_2", "Thumbs_down", "Thumbs_up", "Warning"], ["Bomb", "Boom", "Fire", "Flowers", "Forest", "Lightning", "Light_off", "Light_on", "Night", "Pirate", "Snow", "Target"], ["Bar_0", "Bar_1", "Bar_2", "Bar_3", "Bar_4", "Dial_0", "Dial_1", "Dial_2", "Dial_3", "Dial_4", "Dots_0", "Dots_1", "Dots_2", "Dots_3", "Hourglass_0", "Hourglass_1", "Hourglass_2", "Timer_0", "Timer_1", "Timer_2", "Timer_3", "Timer_4", "Water_level_0", "Water_level_1", "Water_level_2", "Water_level_3"]] +// for (var i = 0; i < 5; i++) { +// if (img[i].indexOf(code) != -1) { +// var tag = i; +// break; +// } +// } +// generator.definitions_['import_' + sort[tag] + '_' + code] = "from " + sort[tag] + " import " + code; +// return [code, generator.ORDER_ATOMIC]; +// } export const onboard_oled_show_image = function (_, generator) { var version = Boards.getSelectedBoardKey().split(':')[2] diff --git a/boards/default_src/micropython/generators/sensor_extern.js b/boards/default_src/micropython/generators/sensor_extern.js index 346ed4eb..0be105ea 100644 --- a/boards/default_src/micropython/generators/sensor_extern.js +++ b/boards/default_src/micropython/generators/sensor_extern.js @@ -218,6 +218,9 @@ export const sensor_use_i2c_init = function (_, generator) { } else if (key == 'CI130X') { generator.definitions_['import_ci130x'] = 'import ci130x'; code = v + ' = ci130x.' + key + "(" + iv + ')\n'; + } else if (key == 'MS5611'){ + generator.definitions_['import_ms5611'] = 'import ms5611'; + code = v + ' = ms5611.MS5611(' + iv + ')\n'; } return code; } @@ -338,6 +341,14 @@ export const sensor_spl06_001_extern = function (_, generator) { return [code, generator.ORDER_ATOMIC]; } +export const sensor_ms5611_extern = function (_, generator) { + var sub = generator.valueToCode(this, 'SUB', generator.ORDER_ATOMIC); + var key = this.getFieldValue('key'); + generator.definitions_['import_ms5611'] = 'import ms5611'; + var code = sub + '.' + key; + return [code, generator.ORDER_ATOMIC]; +} + export const sensor_ltr381_extern = function (_, generator) { var sub = generator.valueToCode(this, 'SUB', generator.ORDER_ATOMIC); var key = this.getFieldValue('key'); diff --git a/boards/default_src/micropython_esp32s3/template.xml b/boards/default_src/micropython_esp32s3/template.xml index 46667f8d..deb7230b 100644 --- a/boards/default_src/micropython_esp32s3/template.xml +++ b/boards/default_src/micropython_esp32s3/template.xml @@ -1840,7 +1840,7 @@ - + @@ -4002,6 +4002,13 @@ + + + + xsensor + + +