diff --git a/boards/default_src/micropython/blocks/ai_local.js b/boards/default_src/micropython/blocks/ai_local.js
index 9232fe18..1e2c199d 100644
--- a/boards/default_src/micropython/blocks/ai_local.js
+++ b/boards/default_src/micropython/blocks/ai_local.js
@@ -244,9 +244,9 @@ export const CREATE_CAMERA = {
.appendField(Blockly.Msg.MIXLY_SETUP + Blockly.Msg.MIXLY_SMARTCAMERA)
.appendField(Blockly.Msg.LISTS_SET_INDEX_SET + Blockly.Msg.MIXLY_SHOOTING_SIZE)
.appendField(new Blockly.FieldDropdown([
+ ['LCD : 240px*240px', "LCD"],
['VGA : 640px*480px', "VGA"],
['QVGA : 320px*240px', "QVGA"],
- ['LCD : 240px*240px', "LCD"],
['QQVGA : 160px*120px', "QQVGA"]
]), "cmd")
this.setPreviousStatement(true);
@@ -274,6 +274,7 @@ export const GET_PICTURE_DATA = {
.appendField(Blockly.Msg.MIXLY_GET_PICTURE_DATA);
this.setOutput(true);
this.setInputsInline(true);
+ this.setTooltip(Blockly.Msg.MIXLY_GET_PICTURE_DATA_TOOLTIP);
}
};
@@ -299,47 +300,35 @@ export const STOP_SCREEN_DISPLAY = {
}
};
-export const INIT_QR_CODE_RECOGNITION= {
+export const AI_CAMERA_INIT = {
init: function () {
this.setColour(AI_LOCAL_GRAPH_HUE);
+ this.appendValueInput('SUB')
+ .appendField(Blockly.Msg.MIXLY_MICROPYTHON_SOCKET_MAKE)
+ .setCheck("var");
this.appendDummyInput("")
- .appendField(Blockly.Msg.MIXLY_SETUP + Blockly.Msg.MIXLY_QR_CODE_RECOGNTITION);
- this.setPreviousStatement(true);
- this.setNextStatement(true);
+ .appendField(Blockly.Msg.MIXLY_SETUP + Blockly.Msg.LISTS_SET_INDEX_INPUT_TO)
+ .appendField(new Blockly.FieldDropdown([
+ [Blockly.Msg.MIXLY_QR_CODE + Blockly.Msg.MIXLY_RECOGNITION, "CODE_DETECTION"],
+ [Blockly.Msg.MIXLY_COLOR_RECOGNTITION, "COLOR_DETECTION"],
+ [Blockly.Msg.MIXLY_EMOTION_DETEECTION, "MOTION_DETECTON"],
+ [Blockly.Msg.MIXLY_CAT_FACE + Blockly.Msg.MIXLY_RECOGNITION, "CAT_FACE_DETECTION"],
+ [Blockly.Msg.MIXLY_FACE_CLASSIFIER, "FACE_DETECTION"],
+ [Blockly.Msg.MIXLY_AipFace, "FACE_RECOGNITION"]
+ ]), "kind");
this.setInputsInline(true);
+ this.setPreviousStatement(true, null);
+ this.setNextStatement(true, null);
}
};
-
-
-export const START_QR_CODE_RECOGNITION= {
- init: function () {
- this.setColour(AI_LOCAL_GRAPH_HUE);
- this.appendDummyInput("")
- .appendField(Blockly.Msg.MIXLY_MSTIMER2_START + Blockly.Msg.MIXLY_QR_CODE + Blockly.Msg.MIXLY_RECOGNITION);
- this.setPreviousStatement(true);
- this.setNextStatement(true);
- this.setInputsInline(true);
- }
-};
-
-export const GET_QR_CODE_RECOGNITION_DATA = {
+export const GET_COLOR_DETECTION_NUM = {
init: function () {
this.setColour(AI_LOCAL_GRAPH_HUE);
+ this.appendValueInput('SUB')
+ .setCheck("var");
this.appendDummyInput()
- .appendField(Blockly.Msg.MIXLY_GET_QR_CODE_RECOGNITION_RESULT);
- this.setOutput(true);
- this.setInputsInline(true);
- this.setTooltip(Blockly.Msg.MIXLY_GET_QR_CODE_RECOGNITION_RESULT_TOOLTIP);
- }
-};
-
-export const INIT_COLOR_DETECTION= {
- init: function () {
- this.setColour(AI_LOCAL_GRAPH_HUE);
- this.appendDummyInput("")
- .appendField(Blockly.Msg.MIXLY_SETUP + Blockly.Msg.MIXLY_ESP32_APDS9960_COLOR);
- this.appendDummyInput("")
+ .appendField(Blockly.Msg.MIXLY_RECOGNITION + Blockly.Msg.MIXLY_HOW_MUCH)
.appendField(new Blockly.FieldDropdown([
[Blockly.Msg.COLOUR_RGB_RED,"0"],
[Blockly.Msg.COLOUR_RGB_ORANGE,"1"],
@@ -351,107 +340,170 @@ export const INIT_COLOR_DETECTION= {
[Blockly.Msg.COLOUR_RGB_WHITE,"7"],
[Blockly.Msg.COLOUR_RGB_GREY,"8"],
[Blockly.Msg.MIXLY_CUSTOM_STUDY,"9"]
- ]),'color')
- this.setPreviousStatement(true);
- this.setNextStatement(true);
- this.setInputsInline(true);
- }
-};
-
-export const START_COLOR_DETECTION= {
- init: function () {
- this.setColour(AI_LOCAL_GRAPH_HUE);
- this.appendDummyInput("")
- .appendField(Blockly.Msg.MIXLY_MSTIMER2_START + Blockly.Msg.HTML_COLOUR + Blockly.Msg.MIXLY_RECOGNITION);
- this.setPreviousStatement(true);
- this.setNextStatement(true);
- this.setInputsInline(true);
- }
-};
-
-export const GET_COLOR_DETECTION_RESULT = {
- init: function () {
- this.setColour(AI_LOCAL_GRAPH_HUE);
+ ]),'color');
this.appendDummyInput()
- .appendField(Blockly.Msg.MIXLY_GET_COLOR_DETECTION_RESULT);
+ .appendField(Blockly.Msg.MIXLY_Pixel_block);
this.setOutput(true);
this.setInputsInline(true);
- this.setTooltip(Blockly.Msg.MIXLY_GET_COLOR_DETECTION_RESULT_TOOLTIP);
+ // this.setTooltip(Blockly.Msg.MIXLY_GET_COLOR_DETECTION_RESULT_TOOLTIP);
}
};
-export const INIT_CAT_FACE_DETECTION= {
- init: function () {
- this.setColour(AI_LOCAL_GRAPH_HUE);
- this.appendDummyInput("")
- .appendField(Blockly.Msg.MIXLY_SETUP + Blockly.Msg.MIXLY_CAT_FACE +Blockly.Msg.MIXLY_RECOGNITION);
- this.setPreviousStatement(true);
- this.setNextStatement(true);
- this.setInputsInline(true);
- }
-};
-
-export const START_CAT_FACE_DETECTION= {
- init: function () {
- this.setColour(AI_LOCAL_GRAPH_HUE);
- this.appendDummyInput("")
- .appendField(Blockly.Msg.MIXLY_MSTIMER2_START + Blockly.Msg.MIXLY_CAT_FACE + Blockly.Msg.MIXLY_RECOGNITION);
- this.setPreviousStatement(true);
- this.setNextStatement(true);
- this.setInputsInline(true);
- }
-};
-
-export const GET_CAT_FACE_DETECTION_RESULT = {
+export const GET_COLOR_DETECTION_LOCATION = {
init: function () {
this.setColour(AI_LOCAL_GRAPH_HUE);
+ this.appendValueInput('SUB')
+ .setCheck("var");
+ this.appendValueInput('NO')
+ .appendField(Blockly.Msg.MIXLY_GET + Blockly.Msg.MIXLY_4DIGITDISPLAY_NOMBER1);
this.appendDummyInput()
- .appendField(Blockly.Msg.MIXLY_GET_CAT_FACE_DETECTION_RESULT);
+ .appendField(Blockly.Msg.MIXLY_4DIGITDISPLAY_NOMBER2)
+ .appendField(new Blockly.FieldDropdown([
+ [Blockly.Msg.COLOUR_RGB_RED,"0"],
+ [Blockly.Msg.COLOUR_RGB_ORANGE,"1"],
+ [Blockly.Msg.COLOUR_RGB_YELLOW,"2"],
+ [Blockly.Msg.COLOUR_RGB_GREEN,"3"],
+ [Blockly.Msg.COLOUR_RGB_CYAN,"4"],
+ [Blockly.Msg.COLOUR_RGB_BLUE,"5"],
+ [Blockly.Msg.COLOUR_RGB_PURPLE,"6"],
+ [Blockly.Msg.COLOUR_RGB_WHITE,"7"],
+ [Blockly.Msg.COLOUR_RGB_GREY,"8"],
+ [Blockly.Msg.MIXLY_CUSTOM_STUDY,"9"]
+ ]),'color');
+ this.appendDummyInput()
+ .appendField(Blockly.Msg.MIXLY_Pixel_block + Blockly.Msg.blockpy_set_of + Blockly.Msg.MIXLY_POSITION_XY);
+ this.setOutput(true);
+ this.setInputsInline(true);
+ // this.setTooltip(Blockly.Msg.MIXLY_GET_COLOR_DETECTION_RESULT_TOOLTIP);
+ }
+};
+
+export const GET_CAT_FACE_DETECTION_NUM = {
+ init: function () {
+ this.setColour(AI_LOCAL_GRAPH_HUE);
+ this.appendValueInput('SUB')
+ .setCheck("var");
+ this.appendDummyInput()
+ .appendField(Blockly.Msg.MIXLY_RECOGNITION + Blockly.Msg.MIXLY_HOW_MUCH +Blockly.Msg.MIXLY_CAT_FACE)
+ this.setOutput(true);
+ this.setInputsInline(true);
+ // this.setTooltip(Blockly.Msg.MIXLY_GET_COLOR_DETECTION_RESULT_TOOLTIP);
+ }
+};
+
+export const GET_CAT_FACE_DETECTION_LOCATION = {
+ init: function () {
+ this.setColour(AI_LOCAL_GRAPH_HUE);
+ this.appendValueInput('SUB')
+ .setCheck("var");
+ this.appendValueInput('NO')
+ .appendField(Blockly.Msg.MIXLY_GET + Blockly.Msg.MIXLY_4DIGITDISPLAY_NOMBER1);
+ this.appendDummyInput()
+ .appendField(Blockly.Msg.MIXLY_4DIGITDISPLAY_NOMBER2 + Blockly.Msg.MIXLY_CAT_FACE + Blockly.Msg.blockpy_set_of + Blockly.Msg.MIXLY_POSITION_XY);
+ this.setOutput(true);
+ this.setInputsInline(true);
+ // this.setTooltip(Blockly.Msg.MIXLY_GET_COLOR_DETECTION_RESULT_TOOLTIP);
+ }
+};
+
+export const GET_FACE_DETECTION_NUM = {
+ init: function () {
+ this.setColour(AI_LOCAL_GRAPH_HUE);
+ this.appendValueInput('SUB')
+ .setCheck("var");
+ this.appendDummyInput()
+ .appendField(Blockly.Msg.MIXLY_RECOGNITION + Blockly.Msg.MIXLY_HOW_MUCH +Blockly.Msg.MIXLY_FACE)
+ this.setOutput(true);
+ this.setInputsInline(true);
+ // this.setTooltip(Blockly.Msg.MIXLY_GET_COLOR_DETECTION_RESULT_TOOLTIP);
+ }
+};
+
+export const GET_FACE_DETECTION_LOCATION = {
+ init: function () {
+ this.setColour(AI_LOCAL_GRAPH_HUE);
+ this.appendValueInput('SUB')
+ .setCheck("var");
+ this.appendValueInput('NO')
+ .appendField(Blockly.Msg.MIXLY_GET + Blockly.Msg.MIXLY_4DIGITDISPLAY_NOMBER1);
+ this.appendDummyInput()
+ .appendField(Blockly.Msg.MIXLY_4DIGITDISPLAY_NOMBER2 + Blockly.Msg.MIXLY_FACE + Blockly.Msg.blockpy_set_of + Blockly.Msg.MIXLY_POSITION_XY);
+ this.setOutput(true);
+ this.setInputsInline(true);
+ // this.setTooltip(Blockly.Msg.MIXLY_GET_COLOR_DETECTION_RESULT_TOOLTIP);
+ }
+};
+
+export const GET_FACE_DETECTION_KEYPOINT_LOCATION = {
+ init: function () {
+ this.setColour(AI_LOCAL_GRAPH_HUE);
+ this.appendValueInput('SUB')
+ .setCheck("var");
+ this.appendValueInput('NO')
+ .appendField(Blockly.Msg.MIXLY_GET + Blockly.Msg.MIXLY_4DIGITDISPLAY_NOMBER1);
+ this.appendDummyInput()
+ .appendField(Blockly.Msg.MIXLY_4DIGITDISPLAY_NOMBER2 + Blockly.Msg.MIXLY_FACE);
+ this.appendDummyInput()
+ .appendField(Blockly.Msg.MIXLY_KEYPOINT)
+ .appendField(new Blockly.FieldDropdown([
+ [Blockly.Msg.MIXLY_LEFT_EYE,"0"],
+ [Blockly.Msg.MIXLY_RIGHT_EYE,"1"],
+ [Blockly.Msg.MIXLY_NOSE,"2"],
+ [Blockly.Msg.MIXLY_LEFT_MOUSE_CORNER,"3"],
+ [Blockly.Msg.MIXLY_RIGHT_MOUSE_CORNER,"4"]
+ ]),'kp')
+ .appendField(Blockly.Msg.blockpy_set_of + Blockly.Msg.MIXLY_POSITION_XY);
this.setOutput(true);
this.setInputsInline(true);
}
};
-export const INIT_PEOPLE_FACE_DETECTION= {
- init: function () {
- this.setColour(AI_LOCAL_GRAPH_HUE);
- this.appendDummyInput("")
- .appendField(Blockly.Msg.MIXLY_SETUP + Blockly.Msg.MIXLY_FACE_CLASSIFIER);
- this.setPreviousStatement(true);
- this.setNextStatement(true);
- this.setInputsInline(true);
- }
-};
-
-export const START_PEOPLE_FACE_DETECTION= {
- init: function () {
- this.setColour(AI_LOCAL_GRAPH_HUE);
- this.appendDummyInput("")
- .appendField(Blockly.Msg.MIXLY_MSTIMER2_START + Blockly.Msg.MIXLY_FACE_CLASSIFIER + '/' + Blockly.Msg.MIXLY_AipFace);
- this.setPreviousStatement(true);
- this.setNextStatement(true);
- this.setInputsInline(true);
- }
-};
-
-export const GET_PEOPLE_FACE_DETECTION_RESULT = {
+export const GET_FACE_RECOGNITION_ID = {
init: function () {
this.setColour(AI_LOCAL_GRAPH_HUE);
+ this.appendValueInput('SUB')
+ .setCheck("var");
this.appendDummyInput()
- .appendField(Blockly.Msg.MIXLY_GET_PEOPLE_FACE_DETECTION_RESULT);
+ .appendField(Blockly.Msg.MIXLY_RECOGNITION_RECGNITION + Blockly.Msg.MIXLY_FACE + 'ID');
this.setOutput(true);
this.setInputsInline(true);
- this.setTooltip(Blockly.Msg.MIXLY_GET_PEOPLE_FACE_DETECTION_RESULT_TOOLTIP);
}
};
-export const INIT_PEOPLE_FACE_RECOGNITION= {
+export const GET_FACE_RECOGNITION_ID_LOCATION = {
init: function () {
this.setColour(AI_LOCAL_GRAPH_HUE);
- this.appendDummyInput("")
- .appendField(Blockly.Msg.MIXLY_SETUP + Blockly.Msg.MIXLY_AipFace);
- this.setPreviousStatement(true);
- this.setNextStatement(true);
+ this.appendValueInput('SUB')
+ .setCheck("var");
+ this.appendValueInput('NO')
+ .appendField(Blockly.Msg.MIXLY_GET +'ID'+ Blockly.Msg.MIXLY_AS);
+ this.appendDummyInput()
+ .appendField(Blockly.Msg.blockpy_set_of + Blockly.Msg.MIXLY_FACE + Blockly.Msg.blockpy_set_of + Blockly.Msg.MIXLY_POSITION_XY);
+ this.setOutput(true);
+ this.setInputsInline(true);
+ }
+};
+
+export const GET_FACE_RECOGNITION_ID_KEYPOINT_LOCATION = {
+ init: function () {
+ this.setColour(AI_LOCAL_GRAPH_HUE);
+ this.appendValueInput('SUB')
+ .setCheck("var");
+ this.appendValueInput('NO')
+ .appendField(Blockly.Msg.MIXLY_GET + 'ID'+ Blockly.Msg.MIXLY_AS);
+ this.appendDummyInput()
+ .appendField(Blockly.Msg.blockpy_set_of + Blockly.Msg.MIXLY_FACE);
+ this.appendDummyInput()
+ .appendField(Blockly.Msg.MIXLY_KEYPOINT)
+ .appendField(new Blockly.FieldDropdown([
+ [Blockly.Msg.MIXLY_LEFT_EYE,"0"],
+ [Blockly.Msg.MIXLY_RIGHT_EYE,"1"],
+ [Blockly.Msg.MIXLY_NOSE,"2"],
+ [Blockly.Msg.MIXLY_LEFT_MOUSE_CORNER,"3"],
+ [Blockly.Msg.MIXLY_RIGHT_MOUSE_CORNER,"4"]
+ ]),'kp')
+ .appendField(Blockly.Msg.blockpy_set_of + Blockly.Msg.MIXLY_POSITION_XY);
+ this.setOutput(true);
this.setInputsInline(true);
}
};
@@ -459,6 +511,8 @@ export const INIT_PEOPLE_FACE_RECOGNITION= {
export const PEOPLE_FACE_ENROLL = {
init: function () {
this.setColour(AI_LOCAL_GRAPH_HUE);
+ this.appendValueInput('SUB')
+ .setCheck("var");
this.appendDummyInput()
.appendField(Blockly.Msg.FACE_ENROLL);
this.setOutput(true);
@@ -466,20 +520,11 @@ export const PEOPLE_FACE_ENROLL = {
}
};
-export const GET_PEOPLE_FACE_RECOGNITION_RESULT = {
- init: function () {
- this.setColour(AI_LOCAL_GRAPH_HUE);
- this.appendDummyInput()
- .appendField(Blockly.Msg.MIXLY_GET_PEOPLE_FACE_RECOGNITION_RESULT);
- this.setOutput(true);
- this.setInputsInline(true);
- this.setTooltip(Blockly.Msg.MIXLY_GET_PEOPLE_FACE_RECOGNITION_RESULT_TOOLTIP);
- }
-};
-
export const DELETE_PEOPLE_FACE_ID= {
init: function () {
this.setColour(AI_LOCAL_GRAPH_HUE);
+ this.appendValueInput('SUB')
+ .setCheck("var");
this.appendValueInput("ID")
.appendField(Blockly.Msg.MIXLY_DELETE_PEOPLE_FACE_ID);
this.setPreviousStatement(true);
diff --git a/boards/default_src/micropython/generators/ai_local.js b/boards/default_src/micropython/generators/ai_local.js
index a5f8386e..946d7bfc 100644
--- a/boards/default_src/micropython/generators/ai_local.js
+++ b/boards/default_src/micropython/generators/ai_local.js
@@ -63,10 +63,6 @@ export const CI130X_GET_THE_RECOGNIZED_CMD_SANT = function (_, generator) {
return [code, generator.ORDER_ATOMIC];
}
-
-
-
-//graph part
export const CI130X_BROADCAST_SANT = function (_, generator) {
var version = Boards.getSelectedBoardKey().split(':')[2];
if(version == 'mixgo_sant'){
@@ -99,6 +95,11 @@ export const CI130X_SET_SYSTEM_CMD_SANT = function (_, generator) {
return code;
}
+
+
+
+
+//graph part
export const CREATE_CAMERA = function (_, generator) {
var version = Boards.getSelectedBoardKey().split(':')[2];
generator.definitions_['import_camera'] = 'import camera';
@@ -119,7 +120,7 @@ export const GET_PICTURE_DATA = function (_, generator) {
}
export const SCREEN_SHOW_CAM_GRAPH_SHOOT = function (_, generator) {
- var code = 'cam.display()\n'+'time.sleep(1)\n';
+ var code = 'cam.display()\n';
return code;
}
@@ -128,99 +129,93 @@ export const STOP_SCREEN_DISPLAY = function (_, generator) {
return code;
}
-export const INIT_QR_CODE_RECOGNITION = function (_, generator) {
- generator.definitions_['import_esp_ai'] = 'import esp_ai';
- var code = 'qr_code = esp_ai.code_recognition()\n';
+export const AI_CAMERA_INIT = function (_, generator) {
+ generator.definitions_['from_ai_camera_import_AI'] = 'from ai_camera import AI';
+ var sub = generator.valueToCode(this, 'SUB', generator.ORDER_ATOMIC);
+ var cmd = this.getFieldValue('kind');
+ var code = sub +' = ai_camera.AI(ai_camera.' + cmd + ')\n';
return code;
}
-export const START_QR_CODE_RECOGNITION = function (_, generator) {
- generator.definitions_['import_esp_ai'] = 'import esp_ai';
- var code = 'qr_code.start()\n';
- return code;
-}
-
-export const GET_QR_CODE_RECOGNITION_DATA = function (_, generator) {
- var code = 'qr_code.read()';
- return [code, generator.ORDER_ATOMIC];
-}
-
-export const INIT_COLOR_DETECTION = function (_, generator) {
- generator.definitions_['import_esp_ai'] = 'import esp_ai';
+export const GET_COLOR_DETECTION_NUM = function (_, generator) {
+ var sub = generator.valueToCode(this, 'SUB', generator.ORDER_ATOMIC);
var color = this.getFieldValue('color');
- var code = 'color = esp_ai.color_detection('+ color +')\n';
- return code;
-}
-
-export const START_COLOR_DETECTION = function (_, generator) {
- generator.definitions_['import_esp_ai'] = 'import esp_ai';
- var code = 'color.start()\n';
- return code;
-}
-
-export const GET_COLOR_DETECTION_RESULT = function (_, generator) {
- generator.definitions_['import_esp_ai'] = 'import esp_ai';
- var code = 'color.read()';
+ var code = sub + '.color_detection('+ color +",'len')";
return [code, generator.ORDER_ATOMIC];
}
-export const INIT_CAT_FACE_DETECTION = function (_, generator) {
- generator.definitions_['import_esp_ai'] = 'import esp_ai';
- var code = 'cat = esp_ai.cat_detection()\n';
- return code;
-}
-
-export const START_CAT_FACE_DETECTION = function (_, generator) {
- generator.definitions_['import_esp_ai'] = 'import esp_ai';
- var code = 'cat.start()\n';
- return code;
-}
-
-export const GET_CAT_FACE_DETECTION_RESULT = function (_, generator) {
- generator.definitions_['import_esp_ai'] = 'import esp_ai';
- var code = 'cat.read()';
+export const GET_COLOR_DETECTION_LOCATION = function (_, generator) {
+ var sub = generator.valueToCode(this, 'SUB', generator.ORDER_ATOMIC);
+ var num = generator.valueToCode(this, 'NO', generator.ORDER_ATOMIC);
+ var color = this.getFieldValue('color');
+ var code = sub + '.color_detection('+ color +",'pos',"+ num +')';
return [code, generator.ORDER_ATOMIC];
}
-export const INIT_PEOPLE_FACE_DETECTION = function (_, generator) {
- generator.definitions_['import_esp_ai'] = 'import esp_ai';
- var code = 'face = esp_ai.face_detection()\n';
- return code;
-}
-
-export const START_PEOPLE_FACE_DETECTION = function (_, generator) {
- generator.definitions_['import_esp_ai'] = 'import esp_ai';
- var code = 'face.start()\n';
- return code;
-}
-
-export const GET_PEOPLE_FACE_DETECTION_RESULT = function (_, generator) {
- generator.definitions_['import_esp_ai'] = 'import esp_ai';
- var code = 'face.read()';
+export const GET_CAT_FACE_DETECTION_NUM = function (_, generator) {
+ var sub = generator.valueToCode(this, 'SUB', generator.ORDER_ATOMIC);
+ var code = sub + ".cat_detection('len')";
return [code, generator.ORDER_ATOMIC];
}
-export const INIT_PEOPLE_FACE_RECOGNITION = function (_, generator) {
- generator.definitions_['import_esp_ai'] = 'import esp_ai';
- var code = 'face = esp_ai.face_recognition()\n';
- return code;
+export const GET_CAT_FACE_DETECTION_LOCATION = function (_, generator) {
+ var sub = generator.valueToCode(this, 'SUB', generator.ORDER_ATOMIC);
+ var num = generator.valueToCode(this, 'NO', generator.ORDER_ATOMIC);
+ var code = sub + ".cat_detection(,'pos',"+ num +')';
+ return [code, generator.ORDER_ATOMIC];
+}
+
+export const GET__FACE_DETECTION_NUM = function (_, generator) {
+ var sub = generator.valueToCode(this, 'SUB', generator.ORDER_ATOMIC);
+ var code = sub + ".face_detection('len')";
+ return [code, generator.ORDER_ATOMIC];
+}
+
+export const GET_FACE_DETECTION_LOCATION = function (_, generator) {
+ var sub = generator.valueToCode(this, 'SUB', generator.ORDER_ATOMIC);
+ var num = generator.valueToCode(this, 'NO', generator.ORDER_ATOMIC);
+ var code = sub + ".face_detection('pos',"+ num +')';
+ return [code, generator.ORDER_ATOMIC];
+}
+
+export const GET_FACE_DETECTION_KEYPOINT_LOCATION = function (_, generator) {
+ var sub = generator.valueToCode(this, 'SUB', generator.ORDER_ATOMIC);
+ var num = generator.valueToCode(this, 'NO', generator.ORDER_ATOMIC);
+ var kp = this.getFieldValue('kp');
+ var code = sub + ".face_detection('keypoint',"+ num +','+ kp +')';
+ return [code, generator.ORDER_ATOMIC];
+}
+
+export const GET_FACE_RECOGNITION_ID = function (_, generator) {
+ var sub = generator.valueToCode(this, 'SUB', generator.ORDER_ATOMIC);
+ var code = sub + ".face_recognition('len')";
+ return [code, generator.ORDER_ATOMIC];
+}
+
+export const GET_FACE_RECOGNITION_ID_LOCATION = function (_, generator) {
+ var sub = generator.valueToCode(this, 'SUB', generator.ORDER_ATOMIC);
+ var num = generator.valueToCode(this, 'NO', generator.ORDER_ATOMIC);
+ var code = sub + ".face_recognition('pos',"+ num +')';
+ return [code, generator.ORDER_ATOMIC];
+}
+
+export const GET_FACE_RECOGNITION_ID_KEYPOINT_LOCATION = function (_, generator) {
+ var sub = generator.valueToCode(this, 'SUB', generator.ORDER_ATOMIC);
+ var num = generator.valueToCode(this, 'NO', generator.ORDER_ATOMIC);
+ var kp = this.getFieldValue('kp');
+ var code = sub + ".face_recognition('keypoint',"+ num +','+ kp +')';
+ return [code, generator.ORDER_ATOMIC];
}
export const PEOPLE_FACE_ENROLL = function (_, generator) {
- generator.definitions_['import_esp_ai'] = 'import esp_ai';
- var code = 'face.enroll()';
- return [code, generator.ORDER_ATOMIC];
-}
-
-export const GET_PEOPLE_FACE_RECOGNITION_RESULT = function (_, generator) {
- generator.definitions_['import_esp_ai'] = 'import esp_ai';
- var code = 'face.recognize()';
+ var sub = generator.valueToCode(this, 'SUB', generator.ORDER_ATOMIC);
+ var code = sub + '.face_enroll()';
return [code, generator.ORDER_ATOMIC];
}
export const DELETE_PEOPLE_FACE_ID = function (_, generator) {
- generator.definitions_['import_esp_ai'] = 'import esp_ai';
+ var sub = generator.valueToCode(this, 'SUB', generator.ORDER_ATOMIC);
var id = generator.valueToCode(this, 'ID', generator.ORDER_ATOMIC);
- var code = 'face.delete('+ id +')\n';
+ var code = sub + '.face_delete('+ id +')\n';
return code;
}
\ No newline at end of file
diff --git a/boards/default_src/micropython/generators/display_onboard.js b/boards/default_src/micropython/generators/display_onboard.js
index be97c333..a66c27fa 100644
--- a/boards/default_src/micropython/generators/display_onboard.js
+++ b/boards/default_src/micropython/generators/display_onboard.js
@@ -846,7 +846,7 @@ export const onboard_tft_show_image_xy_direct = function (_, generator) {
var x = generator.valueToCode(this, 'x', generator.ORDER_ASSIGNMENT);
var y = generator.valueToCode(this, 'y', generator.ORDER_ASSIGNMENT);
var direct = generator.valueToCode(this, 'direct', generator.ORDER_ASSIGNMENT);
- var code = "onboard_tft.pictrue(" + x + ',' + y + ',' + direct + ")\n";
+ var code = "onboard_tft.picture(" + x + ',' + y + ',' + direct + ")\n";
return code;
}
diff --git a/boards/default_src/micropython/generators/sensor_extern.js b/boards/default_src/micropython/generators/sensor_extern.js
index 0266d085..9f4dbc34 100644
--- a/boards/default_src/micropython/generators/sensor_extern.js
+++ b/boards/default_src/micropython/generators/sensor_extern.js
@@ -235,7 +235,7 @@ export const radar_set_DETECTION_THRESHOLD = function (_, generator) {
}
export const radar_set_DETECTION_THRESHOLD_SANT = function (_, generator) {
- generator.definitions_['import_sant_g2_ext_mmw'] = 'from sant_g2 import ext_mmw';
+ generator.definitions_['import_sant_gx_ext_mmw'] = 'from sant_gx import ext_mmw';
var value = generator.valueToCode(this, 'VAR', generator.ORDER_ATOMIC);
var value2 = generator.valueToCode(this, 'VAR2', generator.ORDER_ATOMIC);
var code = 'ext_mmw.threshold(' + value + ')\n' + 'ext_mmw.delay_ms(' + value2 + ')\n';
@@ -250,7 +250,7 @@ export const interaction_whether_to_interaction = function (_, generator) {
}
export const interaction_whether_to_interaction_SANT = function (_, generator) {
- generator.definitions_['import_sant_g2_ext_mmw'] = 'from sant_g2 import ext_mmw';
+ generator.definitions_['import_sant_gx_ext_mmw'] = 'from sant_gx import ext_mmw';
var code = 'ext_mmw.result()';
return [code, generator.ORDER_ATOMIC];
}
diff --git a/boards/default_src/micropython_esp32s3/css/color_esp32s2_mixgoce.css b/boards/default_src/micropython_esp32s3/css/color_esp32s2_mixgoce.css
index 2acbc07f..62adb26c 100644
--- a/boards/default_src/micropython_esp32s3/css/color_esp32s2_mixgoce.css
+++ b/boards/default_src/micropython_esp32s3/css/color_esp32s2_mixgoce.css
@@ -148,12 +148,12 @@ div.blocklyToolboxDiv>div.blocklyToolboxContents>div:nth-child(12)>div.blocklyTr
background-size: 100% auto;
}
-#catSANT_G2.blocklyTreeRow>div.blocklyTreeRowContentContainer>span.blocklyTreeIcon {
+#catSANT_G3.blocklyTreeRow>div.blocklyTreeRowContentContainer>span.blocklyTreeIcon {
background: url('../../../../common/media/mark/sensor.png') no-repeat;
background-size: 100% auto;
}
-#catSANT_G2.blocklyTreeRow.blocklyTreeSelected>div.blocklyTreeRowContentContainer>span.blocklyTreeIcon {
+#catSANT_G3.blocklyTreeRow.blocklyTreeSelected>div.blocklyTreeRowContentContainer>span.blocklyTreeIcon {
background: url('../../../../common/media/mark/sensor2.png') no-repeat;
background-size: 100% auto;
}
diff --git a/boards/default_src/micropython_esp32s3/generators/sant_g2.js b/boards/default_src/micropython_esp32s3/generators/sant_g2.js
index edfb01a8..d29b9aac 100644
--- a/boards/default_src/micropython_esp32s3/generators/sant_g2.js
+++ b/boards/default_src/micropython_esp32s3/generators/sant_g2.js
@@ -26,7 +26,7 @@ export const mini_g2_rfid_readid = function (_, generator) {
generator.definitions_['import_mini_g2_ext_rfid'] = 'from mini_g2 import ext_rfid';
var code = 'ext_rfid.read_card(0, x="id")';
} else if(version == "mixgo_sant"){
- generator.definitions_['import_sant_g2_ext_rfid'] = 'from sant_g2 import ext_rfid';
+ generator.definitions_['import_sant_gx_ext_rfid'] = 'from sant_gx import ext_rfid';
var code = 'ext_rfid.read_card(0, x="id")';
}else {
generator.definitions_['import_mini_g2'] = 'import mini_g2';
@@ -42,7 +42,7 @@ export const mini_g2_rfid_readcontent = function (_, generator) {
generator.definitions_['import_mini_g2_ext_rfid'] = 'from mini_g2 import ext_rfid';
var code = 'ext_rfid.read_card(' + sector + ')';
}else if(version == "mixgo_sant"){
- generator.definitions_['import_sant_g2_ext_rfid'] = 'from sant_g2 import ext_rfid';
+ generator.definitions_['import_sant_gx_ext_rfid'] = 'from sant_gx import ext_rfid';
var code = 'ext_rfid.read_card(' + sector + ')';
} else {
generator.definitions_['import_mini_g2'] = 'import mini_g2';
@@ -59,7 +59,7 @@ export const mini_g2_rfid_write = function (_, generator) {
generator.definitions_['import_mini_g2_ext_rfid'] = 'from mini_g2 import ext_rfid';
var code = 'ext_rfid.write_card(' + cnt + ',' + sector + ')\n';
}else if(version == "mixgo_sant"){
- generator.definitions_['import_sant_g2_ext_rfid'] = 'from sant_g2 import ext_rfid';
+ generator.definitions_['import_sant_gx_ext_rfid'] = 'from sant_gx import ext_rfid';
var code = 'ext_rfid.write_card(' + cnt + ',' + sector + ')\n';
} else {
generator.definitions_['import_mini_g2'] = 'import mini_g2';
@@ -76,7 +76,7 @@ export const mini_g2_rfid_write_outcome = function (_, generator) {
generator.definitions_['import_mini_g2_ext_rfid'] = 'from mini_g2 import ext_rfid';
var code = 'ext_rfid.write_card(' + cnt + ',' + sector + ')';
}else if(version == "mixgo_sant"){
- generator.definitions_['import_sant_g2_ext_rfid'] = 'from sant_g2 import ext_rfid';
+ generator.definitions_['import_sant_gx_ext_rfid'] = 'from sant_gx import ext_rfid';
var code = 'ext_rfid.write_card(' + cnt + ',' + sector + ')';
} else {
generator.definitions_['import_mini_g2'] = 'import mini_g2';
@@ -92,7 +92,7 @@ export const mini_g2_rfid_status = function (_, generator) {
generator.definitions_['import_mini_g2_ext_rfid'] = 'from mini_g2 import ext_rfid';
var code = 'ext_rfid.scan_card()==' + key;
}else if(version == "mixgo_sant"){
- generator.definitions_['import_sant_g2_ext_rfid'] = 'from sant_g2 import ext_rfid';
+ generator.definitions_['import_sant_gx_ext_rfid'] = 'from sant_gx import ext_rfid';
var code = 'ext_rfid.scan_card()==' + key;
} else {
generator.definitions_['import_mini_g2'] = 'import mini_g2';
diff --git a/boards/default_src/micropython_esp32s3/template.xml b/boards/default_src/micropython_esp32s3/template.xml
index 55a89db3..b7170b8b 100644
--- a/boards/default_src/micropython_esp32s3/template.xml
+++ b/boards/default_src/micropython_esp32s3/template.xml
@@ -2310,22 +2310,133 @@
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
+
+
+
+ ai
+
+
+
+
+
+
+ ai
+
+
+
+
+
+
+ ai
+
+
+
+
+
+
+ ai
+
+
+
+
+ 1
+
+
+
+
+
+
+ ai
+
+
+
+
+
+
+ ai
+
+
+
+
+ 1
+
+
+
+
+
+
+ ai
+
+
+
+
+
+
+ ai
+
+
+
+
+ 1
+
+
+
+
+
+
+ ai
+
+
+
+
+ 1
+
+
+
+
+
+
+ ai
+
+
+
+
+
+
+ ai
+
+
+
+
+ 1
+
+
+
+
+
+
+ ai
+
+
+
+
+ 1
+
+
+
+
+
+
+ ai
+
+
+
+
+
+ ai
+
+
0
diff --git a/common/msg/blockly/zh-hans.js b/common/msg/blockly/zh-hans.js
index 21c6ca43..76d11c8f 100644
--- a/common/msg/blockly/zh-hans.js
+++ b/common/msg/blockly/zh-hans.js
@@ -4095,19 +4095,30 @@ ZhHans.MIXLY_GET_PICTURE_DATA = '获取图像数据';
ZhHans.MIXlY_SCREEN_SHOW_CAM_SHOOT = '屏幕显示摄像头采集图像';
ZhHans.MIXlY_STOP_SCREEN_DISPLAY = '关闭摄像头采集图像LCD实时显示';
ZhHans.MIXLY_RECOGNITION = '检测';
-ZhHans.MIXLY_GET_QR_CODE_RECOGNITION_RESULT = '获取二维码检测结果';
-ZhHans.MIXLY_GET_QR_CODE_RECOGNITION_RESULT_TOOLTIP = '无检测结果返回None,有结果左上角出现绿色小方块,并返回二维码信息。'
+// ZhHans.MIXLY_GET_QR_CODE_RECOGNITION_RESULT = '获取二维码检测结果';
+// ZhHans.MIXLY_GET_QR_CODE_RECOGNITION_RESULT_TOOLTIP = '无检测结果返回None,有结果左上角出现绿色小方块,并返回二维码信息。'
ZhHans.COLOUR_RGB_GREY = "灰色";
ZhHans.MIXLY_CUSTOM_STUDY = "自定义学习";
-ZhHans.MIXLY_GET_COLOR_DETECTION_RESULT = '获取颜色检测结果';
+// ZhHans.MIXLY_GET_COLOR_DETECTION_RESULT = '获取颜色检测结果';
ZhHans.MIXLY_GET_COLOR_DETECTION_RESULT_TOOLTIP ='获取颜色采集结果,返回矩形区域数量和对应的左上角和右下角坐标(4个值)。';
ZhHans.MIXLY_CAT_FACE = '猫脸';
ZhHans.MIXLY_GET_CAT_FACE_DETECTION_RESULT = '获取猫脸检测结果';
ZhHans.MIXLY_GET_CAT_FACE_DETECTION_RESULT_TOOLTIP = '获取猫脸检测结果,返回矩形区域数量和对应的左上角和右下角坐标(4个值)。';
-ZhHans.MIXLY_GET_PEOPLE_FACE_DETECTION_RESULT = '获取人脸检测结果';
-ZhHans.MIXLY_GET_PEOPLE_FACE_DETECTION_RESULT_TOOLTIP = '获取人脸检测结果,返回矩形区域数量、对应的矩形框左边以及五点关键特征值。说明:v[0]:人脸数量;v[1-4]:矩形左上角和右下角坐标;v[5-14]:左眼、右眼、鼻子、左嘴角、右嘴角坐标。';
-ZhHans.MIXLY_GET_PEOPLE_FACE_RECOGNITION_RESULT = '获取人脸识别结果';
-ZhHans.MIXLY_GET_PEOPLE_FACE_RECOGNITION_RESULT_TOOLTIP = '获取人脸识别结果,获取人识别结果,返回人脸ID(ID从1开始)、矩形区域和和对应的5点坐标。说明:v[0]:人脸数量;v[1-4]:矩形左上角和右下角坐标;v[5-14]:左眼、右眼、鼻子、左嘴角、右嘴角坐标。';
+// ZhHans.MIXLY_GET_PEOPLE_FACE_DETECTION_RESULT = '获取人脸检测结果';
+// ZhHans.MIXLY_GET_PEOPLE_FACE_DETECTION_RESULT_TOOLTIP = '获取人脸检测结果,返回矩形区域数量、对应的矩形框左边以及五点关键特征值。说明:v[0]:人脸数量;v[1-4]:矩形左上角和右下角坐标;v[5-14]:左眼、右眼、鼻子、左嘴角、右嘴角坐标。';
+// ZhHans.MIXLY_GET_PEOPLE_FACE_RECOGNITION_RESULT = '获取人脸识别结果';
+// ZhHans.MIXLY_GET_PEOPLE_FACE_RECOGNITION_RESULT_TOOLTIP = '获取人脸识别结果,获取人识别结果,返回人脸ID(ID从1开始)、矩形区域和和对应的5点坐标。说明:v[0]:人脸数量;v[1-4]:矩形左上角和右下角坐标;v[5-14]:左眼、右眼、鼻子、左嘴角、右嘴角坐标。';
ZhHans.FACE_ENROLL = '录入人脸';
ZhHans.MIXLY_DELETE_PEOPLE_FACE_ID = '删除人脸ID信息';
+ZhHans.MIXLY_GET_PICTURE_DATA_TOOLTIP = '返回图像的(宽,高,数据)';
+ZhHans.MIXLY_EMOTION_DETEECTION = '情绪检测';
+ZhHans.MIXLY_HOW_MUCH = '有几个';
+ZhHans.MIXLY_Pixel_block = '像素块';
+ZhHans.MIXLY_KEYPOINT = '关键点';
+ZhHans.MIXLY_LEFT_EYE = '左眼';
+ZhHans.MIXLY_RIGHT_EYE = '右眼';
+ZhHans.MIXLY_NOSE = '鼻子';
+ZhHans.MIXLY_LEFT_MOUSE_CORNER = '左嘴角';
+ZhHans.MIXLY_RIGHT_MOUSE_CORNER = '右嘴角';
+ZhHans.MIXLY_RECOGNITION_RECGNITION = '识别';
})();
\ No newline at end of file