From 545df312aa7a944f6c9cecf9d372f6df295a4950 Mon Sep 17 00:00:00 2001
From: Irene-Maxine <114802521+Irene-Maxine@users.noreply.github.com>
Date: Mon, 27 Oct 2025 23:44:11 +0800
Subject: [PATCH] =?UTF-8?q?sant=E6=99=BA=E8=83=BD=E4=BF=AE=E6=94=B9?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
---
.../micropython/blocks/ai_local.js | 25 +++++++--
.../micropython/generators/ai_local.js | 32 ++++++-----
.../micropython_esp32s3/template.xml | 56 +++++++++++++------
common/msg/blockly/zh-hans.js | 1 -
4 files changed, 78 insertions(+), 36 deletions(-)
diff --git a/boards/default_src/micropython/blocks/ai_local.js b/boards/default_src/micropython/blocks/ai_local.js
index 6848ca7d..7b2cc33a 100644
--- a/boards/default_src/micropython/blocks/ai_local.js
+++ b/boards/default_src/micropython/blocks/ai_local.js
@@ -428,7 +428,7 @@ export const SCREEN_SHOW_CAM_GRAPH_SHOOT = {
init: function () {
this.setColour(DISPLAY_ONBOARD_HUE);
this.appendValueInput("SUB")
- .appendField(Blockly.Msg.MIXLY_MICROBIT_monitor + Blockly.Msg.OLEDDISPLAY + Blockly.Msg.MIXLY_MICROBIT_IMAGE)
+ .appendField(Blockly.Msg.OLEDDISPLAY + Blockly.Msg.MIXLY_MICROBIT_IMAGE)
this.appendDummyInput('')
.appendField(Blockly.Msg.MIXLY_SYNC_DISPLAY)
.appendField(new Blockly.FieldDropdown([
@@ -445,7 +445,7 @@ export const SCREEN_DISPLAY_IMAGE = {
init: function () {
this.setColour(DISPLAY_ONBOARD_HUE);
this.appendValueInput('direct')
- .appendField(Blockly.Msg.MIXLY_MICROBIT_JS_MONITOR_SHOW_IMAGE)
+ .appendField(Blockly.Msg.OLED_BITMAP)
.appendField(Blockly.Msg.MIXLY_MICROBIT_PY_STORAGE_THE_PATH);
this.appendDummyInput('')
.appendField(Blockly.Msg.MIXLY_ROTATION_ANGLE)
@@ -490,7 +490,7 @@ export const AI_CAMERA_INIT = {
[Blockly.Msg.MIXLY_COLOR_RECOGNTITION, "ColorDetector"],
[Blockly.Msg.MIXLY_CAT + Blockly.Msg.MIXLY_RECOGNITION, "CatDetector"],
[Blockly.Msg.MIXLY_HUMAN + Blockly.Msg.MIXLY_RECOGNITION, "HumanDetector"],
- [Blockly.Msg.MIXLY_AipFace, "FaceDetector"]
+ [Blockly.Msg.MIXLY_FACE_CLASSIFIER, "FaceDetector"]
]), "kind");
this.appendDummyInput("")
.appendField(Blockly.Msg.MIXLY_WIDTH)
@@ -552,7 +552,7 @@ export const AI_CAMERA_INIT_FACERECOGNIZE = {
]),"height");
this.appendDummyInput("")
.appendField(Blockly.Msg.MIXLY_SETUP + Blockly.Msg.LISTS_SET_INDEX_INPUT_TO)
- .appendField(Blockly.Msg.MIXLY_FACE_RECOGNIZER);
+ .appendField(Blockly.Msg.MIXLY_AipFace);
this.appendValueInput("PATH")
.appendField(Blockly.Msg.PATH_OF_FACE_DATABASE);
this.setInputsInline(true);
@@ -795,6 +795,9 @@ export const REGISTER_NEW_FACE = {
this.appendValueInput('SUB')
.appendField(Blockly.Msg.MIXLY_TENSORFLOW_MODEL)
.setCheck("var");
+ this.appendValueInput('IMAGE')
+ .appendField(Blockly.Msg.MIXLY_MICROPYTHON_SOCKET_MAKE + Blockly.Msg.MIXLY_AipImageClassify_Image)
+ .setCheck("var");
this.appendDummyInput()
.appendField(Blockly.Msg.register_a_new_face_in_the_database);
this.appendValueInput("NAME")
@@ -821,6 +824,20 @@ export const DELETE_FACE_FROM_DATABASE = {
}
};
+export const DELETE_FACE_ALL = {
+ init: function () {
+ this.setColour(AI_LOCAL_GRAPH_HUE);
+ this.appendValueInput('SUB')
+ .appendField(Blockly.Msg.MIXLY_TENSORFLOW_MODEL)
+ .setCheck("var");
+ this.appendDummyInput()
+ .appendField(Blockly.Msg.MIXLY_MICROBIT_JS_DELETE_VAR + Blockly.Msg.MIXLY_ALL + Blockly.Msg.MIXLY_FACE);
+ this.setPreviousStatement(true);
+ this.setNextStatement(true);
+ this.setInputsInline(true);
+ }
+};
+
export const PRINT_FACE_DATABASE = {
init: function () {
this.setColour(AI_LOCAL_GRAPH_HUE);
diff --git a/boards/default_src/micropython/generators/ai_local.js b/boards/default_src/micropython/generators/ai_local.js
index e3c6454b..4722dba2 100644
--- a/boards/default_src/micropython/generators/ai_local.js
+++ b/boards/default_src/micropython/generators/ai_local.js
@@ -312,21 +312,21 @@ export const Register_color_recognition_fixed= function (_, generator) {
var color = this.getFieldValue('color');
var area = generator.valueToCode(this, 'AREA', generator.ORDER_ATOMIC);
if (color == "red"){
- var code = sub + '.register_color((170, 100, 100), (10, 255, 255),'+ color +', area_threshold='+ area + ')\n';
+ var code = sub + '.register_color((170, 100, 100), (10, 255, 255),"'+ color +'", '+ area + ')\n';
}else if(color == "green"){
- var code = sub + '.register_color((35, 100, 100), (85, 255, 255),'+ color +', area_threshold='+ area + ')\n';
+ var code = sub + '.register_color((35, 100, 100), (85, 255, 255),"'+ color +'",' + area + ')\n';
}else if(color == "blue"){
- var code = sub + '.register_color((100, 100, 100), (130, 255, 255),'+ color +', area_threshold='+ area + ')\n';
+ var code = sub + '.register_color((100, 100, 100), (130, 255, 255),"'+ color +'", '+ area + ')\n';
}else if(color == "yellow"){
- var code = sub + '.register_color((20, 100, 100), (35, 255, 255),'+ color +', area_threshold='+ area + ')\n';
+ var code = sub + '.register_color((20, 100, 100), (35, 255, 255),"'+ color +'", '+ area + ')\n';
}else if(color == "cyan"){
- var code = sub + '.register_color((85, 100, 100), (100, 255, 255),'+ color +', area_threshold='+ area + ')\n';
+ var code = sub + '.register_color((85, 100, 100), (100, 255, 255),"'+ color +'", '+ area + ')\n';
}else if(color == "purple"){
- var code = sub + '.register_color((130, 100, 100), (150, 255, 255),'+ color +', area_threshold='+ area + ')\n';
+ var code = sub + '.register_color((130, 100, 100), (150, 255, 255),"'+ color +'", '+ area + ')\n';
}else if(color == "black"){
- var code = sub + '.register_color((0, 0, 0), (180, 255, 50),'+ color +', area_threshold='+ area + ')\n';
+ var code = sub + '.register_color((0, 0, 0), (180, 255, 50),"'+ color +'", '+ area + ')\n';
}else if(color == "white"){
- var code = sub + '.register_color((0, 0, 200), (180, 50, 255),'+ color +', area_threshold='+ area + ')\n';
+ var code = sub + '.register_color((0, 0, 200), (180, 50, 255),"'+ color +'", '+ area + ')\n';
}
return code;
}
@@ -337,17 +337,15 @@ export const Register_color_recognition = function (_, generator) {
var max = generator.valueToCode(this, 'MAX', generator.ORDER_ATOMIC);
var color = generator.valueToCode(this, 'COLOR', generator.ORDER_ATOMIC);
var area = generator.valueToCode(this, 'AREA', generator.ORDER_ATOMIC);
- var code = sub + '.register_color(' + min +', '+ max +', '+ color +', area_threshold='+ area + ')\n';
+ var code = sub + '.register_color(' + min +', '+ max +', '+ color +', '+ area + ')\n';
return code;
}
export const REGISTER_NEW_FACE = function (_, generator) {
var sub = generator.valueToCode(this, 'SUB', generator.ORDER_ATOMIC);
- var min = generator.valueToCode(this, 'MIN', generator.ORDER_ATOMIC);
- var max = generator.valueToCode(this, 'MAX', generator.ORDER_ATOMIC);
- var color = generator.valueToCode(this, 'COLOR', generator.ORDER_ATOMIC);
- var area = generator.valueToCode(this, 'AREA', generator.ORDER_ATOMIC);
- var code = sub + '.enroll(' + min +', '+ max +', '+ color +', area_threshold='+ area + ')\n';
+ var image = generator.valueToCode(this, 'IMAGE', generator.ORDER_ATOMIC);
+ var name = generator.valueToCode(this, 'NAME', generator.ORDER_ATOMIC);
+ var code = sub + '.enroll(' + image +', '+ validate +', '+ name +')\n';
return code;
}
@@ -358,6 +356,12 @@ export const DELETE_FACE_FROM_DATABASE = function (_, generator) {
return code;
}
+export const DELETE_FACE_ALL = function (_, generator) {
+ var sub = generator.valueToCode(this, 'SUB', generator.ORDER_ATOMIC);
+ var code = sub + '.clear_face()\n';
+ return code;
+}
+
export const PRINT_FACE_DATABASE = function (_, generator) {
var sub = generator.valueToCode(this, 'SUB', generator.ORDER_ATOMIC);
var code = sub + '.print_database()\n';
diff --git a/boards/default_src/micropython_esp32s3/template.xml b/boards/default_src/micropython_esp32s3/template.xml
index 1f185a0c..cf3795da 100644
--- a/boards/default_src/micropython_esp32s3/template.xml
+++ b/boards/default_src/micropython_esp32s3/template.xml
@@ -1971,12 +1971,12 @@
-
-
- mixly.jpg
-
-
-
+
+
+ mixly.jpg
+
+
+
@@ -2430,10 +2430,10 @@
-
- image
-
-
+
+ image
+
+
@@ -2471,12 +2471,17 @@
-
-
-
- mixly.jpg
-
-
+
+ image
+
+
+
+
+ mixly.jpg
+
+
+
+
@@ -2486,7 +2491,12 @@
-
+
+ image
+
+
+
+
@@ -2565,6 +2575,11 @@
Model
+
+
+ image
+
+
name
@@ -2590,6 +2605,13 @@
+
+
+
+ Model
+
+
+
_results
diff --git a/common/msg/blockly/zh-hans.js b/common/msg/blockly/zh-hans.js
index 204e28d0..9caf3609 100644
--- a/common/msg/blockly/zh-hans.js
+++ b/common/msg/blockly/zh-hans.js
@@ -4234,7 +4234,6 @@ ZhHans.MIXLY_LOGOUT = '注销';
ZhHans.MIXLY_REGISTER = '注册';
ZhHans.REGISTER_COLOR_RECOGNITION = '注册识别颜色(自定义)';
ZhHans.MINIMUN_DETECTABLE_AREA = '最小检测面积(像素)';
-ZhHans.MIXLY_FACE_RECOGNIZER = '人脸分辨';
ZhHans.PATH_OF_FACE_DATABASE = '人脸数据库文件的路径';
ZhHans.register_a_new_face_in_the_database = '在数据库中注册新人脸';
ZhHans.delete_the_face_from_the_database = '从数据库中删除人脸';