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

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 = {
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:

View File

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

View File

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

View File

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

View File

@@ -1840,7 +1840,7 @@
</block>
</category>
<category id="catOnBoardDisplay" colour='#78B5B4'>
<block type="mpython_pbm_image"></block>
<block type="display_image_builtins_all"></block>
<block type="display_show_image">
<value name="data">
<shadow type="pins_builtinimg"></shadow>
@@ -4002,6 +4002,13 @@
</shadow>
</value>
</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">
<value name="SUB">
<shadow type="variables_get">