增加外接传感+调整显示内置图像

This commit is contained in:
Irene-Maxine
2025-03-24 19:10:24 +08:00
parent 5b48b2f5e5
commit 6b6ec621a3
5 changed files with 184 additions and 138 deletions

View File

@@ -721,128 +721,128 @@ export const mpython_display_line = {
} }
}; };
export const mpython_pbm_image = { // export const mpython_pbm_image = {
init: function () { // init: function () {
this.jsonInit({ // this.jsonInit({
"colour": DISPLAY_ONBOARD_HUE, // "colour": DISPLAY_ONBOARD_HUE,
"args0": [ // "args0": [
{ // {
"type": "field_label", // "type": "field_label",
"name": "size_image", // "name": "size_image",
"text": Blockly.Msg.MIXLY_MICROBIT_Built_in_image1 // "text": Blockly.Msg.MIXLY_MICROBIT_Built_in_image1
}, // },
{ // {
"name": "path", // "name": "path",
"options": [ // "options": [
["Heart", "Heart"], // ["Heart", "Heart"],
["Angry", "Angry"], // ["Angry", "Angry"],
["Bored", "Bored"], // ["Bored", "Bored"],
["Confused", "Confused"], // ["Confused", "Confused"],
["Happy", "Happy"], // ["Happy", "Happy"],
["Paper", "Paper"], // ["Paper", "Paper"],
["Rock", "Rock"], // ["Rock", "Rock"],
["Sad", "Sad"], // ["Sad", "Sad"],
["Scissors", "Scissors"], // ["Scissors", "Scissors"],
["Silly", "Silly"], // ["Silly", "Silly"],
["Sleep", "Sleep"], // ["Sleep", "Sleep"],
["Small_heart", "Small_heart"], // ["Small_heart", "Small_heart"],
["Small_paper", "Small_paper"], // ["Small_paper", "Small_paper"],
["Small_rock", "Small_rock"], // ["Small_rock", "Small_rock"],
["Small_scissors", "Small_scissors"], // ["Small_scissors", "Small_scissors"],
["Smile", "Smile"], // ["Smile", "Smile"],
["Surprise", "Surprise"], // ["Surprise", "Surprise"],
["Wonderful", "Wonderful"], // ["Wonderful", "Wonderful"],
["Eyes_Angry", "Eyes_Angry"], // ["Eyes_Angry", "Eyes_Angry"],
["Awake", "Awake"], // ["Awake", "Awake"],
["Black_eye", "Black_eye"], // ["Black_eye", "Black_eye"],
["Bottom_left", "Bottom_left"], // ["Bottom_left", "Bottom_left"],
["Bottom_right", "Bottom_right"], // ["Bottom_right", "Bottom_right"],
["Crazy_1", "Crazy_1"], // ["Crazy_1", "Crazy_1"],
["Crazy_2", "Crazy_2"], // ["Crazy_2", "Crazy_2"],
["Disappointed", "Disappointed"], // ["Disappointed", "Disappointed"],
["Dizzy", "Dizzy"], // ["Dizzy", "Dizzy"],
["Down", "Down"], // ["Down", "Down"],
["Evil", "Evil"], // ["Evil", "Evil"],
["Hurt", "Hurt"], // ["Hurt", "Hurt"],
["Knocked_out", "Knocked_out"], // ["Knocked_out", "Knocked_out"],
["Love", "Love"], // ["Love", "Love"],
["Middle_left", "Middle_left"], // ["Middle_left", "Middle_left"],
["Middle_right", "Middle_right"], // ["Middle_right", "Middle_right"],
["Neutral", "Neutral"], // ["Neutral", "Neutral"],
["Nuclear", "Nuclear"], // ["Nuclear", "Nuclear"],
["Pinch_left", "Pinch_left"], // ["Pinch_left", "Pinch_left"],
["Pinch_middle", "Pinch_middle"], // ["Pinch_middle", "Pinch_middle"],
["Pinch_right", "Pinch_right"], // ["Pinch_right", "Pinch_right"],
["Tear", "Tear"], // ["Tear", "Tear"],
["Tired_left", "Tired_left"], // ["Tired_left", "Tired_left"],
["Tired_middle", "Tired_middle"], // ["Tired_middle", "Tired_middle"],
["Tired_right", "Tired_right"], // ["Tired_right", "Tired_right"],
["Toxic", "Toxic"], // ["Toxic", "Toxic"],
["Up", "Up"], // ["Up", "Up"],
["Winking", "Winking"], // ["Winking", "Winking"],
["Accept", "Accept"], // ["Accept", "Accept"],
["Backward", "Backward"], // ["Backward", "Backward"],
["Decline", "Decline"], // ["Decline", "Decline"],
["Forward", "Forward"], // ["Forward", "Forward"],
["Left", "Left"], // ["Left", "Left"],
["No_go", "No_go"], // ["No_go", "No_go"],
["Question_mark", "Question_mark"], // ["Question_mark", "Question_mark"],
["Right", "Right"], // ["Right", "Right"],
["Stop_1", "Stop_1"], // ["Stop_1", "Stop_1"],
["Stop_2", "Stop_2"], // ["Stop_2", "Stop_2"],
["Thumbs_down", "Thumbs_down"], // ["Thumbs_down", "Thumbs_down"],
["Thumbs_up", "Thumbs_up"], // ["Thumbs_up", "Thumbs_up"],
["Warning", "Warning"], // ["Warning", "Warning"],
["Bomb", "Bomb"], // ["Bomb", "Bomb"],
["Boom", "Boom"], // ["Boom", "Boom"],
["Fire", "Fire"], // ["Fire", "Fire"],
["Flowers", "Flowers"], // ["Flowers", "Flowers"],
["Forest", "Forest"], // ["Forest", "Forest"],
["Lightning", "Lightning"], // ["Lightning", "Lightning"],
["Light_off", "Light_off"], // ["Light_off", "Light_off"],
["Light_on", "Light_on"], // ["Light_on", "Light_on"],
["Night", "Night"], // ["Night", "Night"],
["Pirate", "Pirate"], // ["Pirate", "Pirate"],
["Snow", "Snow"], // ["Snow", "Snow"],
["Target", "Target"], // ["Target", "Target"],
["Bar_0", "Bar_0"], // ["Bar_0", "Bar_0"],
["Bar_1", "Bar_1"], // ["Bar_1", "Bar_1"],
["Bar_2", "Bar_2"], // ["Bar_2", "Bar_2"],
["Bar_3", "Bar_3"], // ["Bar_3", "Bar_3"],
["Bar_4", "Bar_4"], // ["Bar_4", "Bar_4"],
["Dial_0", "Dial_0"], // ["Dial_0", "Dial_0"],
["Dial_1", "Dial_1"], // ["Dial_1", "Dial_1"],
["Dial_2", "Dial_2"], // ["Dial_2", "Dial_2"],
["Dial_3", "Dial_3"], // ["Dial_3", "Dial_3"],
["Dial_4", "Dial_4"], // ["Dial_4", "Dial_4"],
["Dots_0", "Dots_0"], // ["Dots_0", "Dots_0"],
["Dots_1", "Dots_1"], // ["Dots_1", "Dots_1"],
["Dots_2", "Dots_2"], // ["Dots_2", "Dots_2"],
["Dots_3", "Dots_3"], // ["Dots_3", "Dots_3"],
["Hourglass_0", "Hourglass_0"], // ["Hourglass_0", "Hourglass_0"],
["Hourglass_1", "Hourglass_1"], // ["Hourglass_1", "Hourglass_1"],
["Hourglass_2", "Hourglass_2"], // ["Hourglass_2", "Hourglass_2"],
["Timer_0", "Timer_0"], // ["Timer_0", "Timer_0"],
["Timer_1", "Timer_1"], // ["Timer_1", "Timer_1"],
["Timer_2", "Timer_2"], // ["Timer_2", "Timer_2"],
["Timer_3", "Timer_3"], // ["Timer_3", "Timer_3"],
["Timer_4", "Timer_4"], // ["Timer_4", "Timer_4"],
["Water_level_0", "Water_level_0"], // ["Water_level_0", "Water_level_0"],
["Water_level_1", "Water_level_1"], // ["Water_level_1", "Water_level_1"],
["Water_level_2", "Water_level_2"], // ["Water_level_2", "Water_level_2"],
["Water_level_3", "Water_level_3"], // ["Water_level_3", "Water_level_3"],
], // ],
"type": "field_dropdown" // "type": "field_dropdown"
} // }
], // ],
"output": "String", // "output": "String",
"helpUrl": '', // "helpUrl": '',
"tooltip": '', // "tooltip": '',
"message0": '%1 %2' // "message0": '%1 %2'
}); // });
} // }
}; // };
//mixbot onboard_matrix below: //mixbot onboard_matrix below:

View File

@@ -347,6 +347,7 @@ export const sensor_use_i2c_init = {
[Blockly.Msg.MIXLY_EXTERN_LIGHTUV + "(LTR390UV)", "LTR390UV"], [Blockly.Msg.MIXLY_EXTERN_LIGHTUV + "(LTR390UV)", "LTR390UV"],
[Blockly.Msg.MIXLY_ALTITUDE_SENSOR + "(HP203X)", "HP203X"], [Blockly.Msg.MIXLY_ALTITUDE_SENSOR + "(HP203X)", "HP203X"],
[Blockly.Msg.MIXLY_ALTITUDE_SENSOR + "(SPL06_001)", "SPL06_001"], [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_ALTITUDE_SENSOR + "(BMP280)", "BMP280"],
[Blockly.Msg.MIXLY_TEMP_AND_HUMIDITY_SENSOR + "(SHTC3)", "SHTC3"], [Blockly.Msg.MIXLY_TEMP_AND_HUMIDITY_SENSOR + "(SHTC3)", "SHTC3"],
[Blockly.Msg.MIXLY_TEMP_AND_HUMIDITY_SENSOR + "(AHT21)", "AHT21"], [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 = { export const sensor_QMC5883L_extern = {
init: function () { init: function () {
this.setColour(SENSOR_EXTERN_HUE); this.setColour(SENSOR_EXTERN_HUE);

View File

@@ -143,9 +143,19 @@ export const display_image_builtins = function (block, generator) {
export const display_image_builtins_all = function (block, generator) { export const display_image_builtins_all = function (block, generator) {
var version = Boards.getSelectedBoardKey().split(':')[2]; var version = Boards.getSelectedBoardKey().split(':')[2];
generator.definitions_['import_' + version + '_onboard_matrix'] = "from " + version + " import onboard_matrix"; if (version == 'mixgo_nova'){
var dropdown_image = block.getFieldValue('image'); const PIN_VALUE = block.getFieldValue('image');
var code = 'onboard_matrix.' + dropdown_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]; return [code, generator.ORDER_ATOMIC];
} }
@@ -439,19 +449,19 @@ export const mixgo_display_image_create_new = function (block, generator) {
//mpython //mpython
export const mpython_pbm_image = function (block, generator) { // export const mpython_pbm_image = function (block, generator) {
var code = block.getFieldValue('path'); // var code = block.getFieldValue('path');
var sort = ['expression_picture', 'eye_picture', 'informatio_picture', 'object_picture', 'progres_picture'] // 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"]] // 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++) { // for (var i = 0; i < 5; i++) {
if (img[i].indexOf(code) != -1) { // if (img[i].indexOf(code) != -1) {
var tag = i; // var tag = i;
break; // break;
} // }
} // }
generator.definitions_['import_' + sort[tag] + '_' + code] = "from " + sort[tag] + " import " + code; // generator.definitions_['import_' + sort[tag] + '_' + code] = "from " + sort[tag] + " import " + code;
return [code, generator.ORDER_ATOMIC]; // return [code, generator.ORDER_ATOMIC];
} // }
export const onboard_oled_show_image = function (_, generator) { export const onboard_oled_show_image = function (_, generator) {
var version = Boards.getSelectedBoardKey().split(':')[2] var version = Boards.getSelectedBoardKey().split(':')[2]

View File

@@ -218,6 +218,9 @@ export const sensor_use_i2c_init = function (_, generator) {
} else if (key == 'CI130X') { } else if (key == 'CI130X') {
generator.definitions_['import_ci130x'] = 'import ci130x'; generator.definitions_['import_ci130x'] = 'import ci130x';
code = v + ' = ci130x.' + key + "(" + iv + ')\n'; code = v + ' = ci130x.' + key + "(" + iv + ')\n';
} else if (key == 'MS5611'){
generator.definitions_['import_ms5611'] = 'import ms5611';
code = v + ' = ms5611.MS5611(' + iv + ')\n';
} }
return code; return code;
} }
@@ -338,6 +341,14 @@ export const sensor_spl06_001_extern = function (_, generator) {
return [code, generator.ORDER_ATOMIC]; 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) { export const sensor_ltr381_extern = function (_, generator) {
var sub = generator.valueToCode(this, 'SUB', generator.ORDER_ATOMIC); var sub = generator.valueToCode(this, 'SUB', generator.ORDER_ATOMIC);
var key = this.getFieldValue('key'); var key = this.getFieldValue('key');

View File

@@ -1840,7 +1840,7 @@
</block> </block>
</category> </category>
<category id="catOnBoardDisplay" colour='#78B5B4'> <category id="catOnBoardDisplay" colour='#78B5B4'>
<block type="mpython_pbm_image"></block> <block type="display_image_builtins_all"></block>
<block type="display_show_image"> <block type="display_show_image">
<value name="data"> <value name="data">
<shadow type="pins_builtinimg"></shadow> <shadow type="pins_builtinimg"></shadow>
@@ -4002,6 +4002,13 @@
</shadow> </shadow>
</value> </value>
</block> </block>
<block type="sensor_ms5611_extern" m-hide='micropython:esp32c3:mixgocar_c3'>
<value name="SUB">
<shadow type="variables_get">
<field name="VAR">xsensor</field>
</shadow>
</value>
</block>
<block type="sensor_shtc3_extern"> <block type="sensor_shtc3_extern">
<value name="SUB"> <value name="SUB">
<shadow type="variables_get"> <shadow type="variables_get">