diff --git a/boards/default_src/micropython/blocks/ai_local.js b/boards/default_src/micropython/blocks/ai_local.js
index 459a1efb..2997601b 100644
--- a/boards/default_src/micropython/blocks/ai_local.js
+++ b/boards/default_src/micropython/blocks/ai_local.js
@@ -543,4 +543,18 @@ export const DELETE_PEOPLE_FACE_ID= {
this.setNextStatement(true);
this.setInputsInline(true);
}
+};
+
+
+export const AI_STOP_ACQUISITION = {
+ init: function () {
+ this.setColour(AI_LOCAL_GRAPH_HUE);
+ this.appendValueInput('SUB')
+ .appendField(Blockly.Msg.MIXLY_STOP)
+ .setCheck("var");
+ this.appendDummyInput()
+ .appendField(Blockly.Msg.MIXLY_IMAGE_ACQUISITION);
+ this.setOutput(true);
+ this.setInputsInline(true);
+ }
};
\ No newline at end of file
diff --git a/boards/default_src/micropython/generators/ai_local.js b/boards/default_src/micropython/generators/ai_local.js
index 3980fa18..fd5cf4b3 100644
--- a/boards/default_src/micropython/generators/ai_local.js
+++ b/boards/default_src/micropython/generators/ai_local.js
@@ -224,4 +224,10 @@ export const DELETE_PEOPLE_FACE_ID = function (_, generator) {
var id = generator.valueToCode(this, 'ID', generator.ORDER_ATOMIC);
var code = sub + '.face_delete('+ id +')\n';
return code;
+}
+
+export const AI_STOP_ACQUISITION = function (_, generator) {
+ var sub = generator.valueToCode(this, 'SUB', generator.ORDER_ATOMIC);
+ var code = sub + '.stop()';
+ return [code, generator.ORDER_ATOMIC];
}
\ No newline at end of file
diff --git a/boards/default_src/micropython/generators/sensor_onboard.js b/boards/default_src/micropython/generators/sensor_onboard.js
index 595cd0c8..2ac56d07 100644
--- a/boards/default_src/micropython/generators/sensor_onboard.js
+++ b/boards/default_src/micropython/generators/sensor_onboard.js
@@ -276,6 +276,9 @@ export const rfid_readid = function (_, generator) {
} else if (version === 'mixgo_me') {
moduleName = 'me_g1';
objName = 'ext_rc522';
+ }else if (version === 'mixgo_sant'){
+ moduleName = 'sant_gx';
+ objName = 'ext_rfid';
}
generator.definitions_[`import_${moduleName}_${objName}`] = `from ${moduleName} import ${objName}`;
var code = `${objName}.read_card(0, x="id")`;
@@ -293,6 +296,9 @@ export const rfid_readcontent = function (_, generator) {
} else if (version === 'mixgo_me') {
moduleName = 'me_g1';
objName = 'ext_rc522';
+ }else if (version === 'mixgo_sant'){
+ moduleName = 'sant_gx';
+ objName = 'ext_rfid';
}
generator.definitions_[`import_${moduleName}_${objName}`] = `from ${moduleName} import ${objName}`;
var code = `${objName}.read_card(${sector}, x="content")`;
@@ -311,6 +317,9 @@ export const rfid_write = function (_, generator) {
} else if (version === 'mixgo_me') {
moduleName = 'me_g1';
objName = 'ext_rc522';
+ }else if (version === 'mixgo_sant'){
+ moduleName = 'sant_gx';
+ objName = 'ext_rfid';
}
generator.definitions_[`import_${moduleName}_${objName}`] = `from ${moduleName} import ${objName}`;
var code = `${objName}.write_card(${cnt}, ${sector})\n`;
@@ -329,6 +338,9 @@ export const rfid_write_return = function (_, generator) {
} else if (version === 'mixgo_me') {
moduleName = 'me_g1';
objName = 'ext_rc522';
+ }else if (version === 'mixgo_sant'){
+ moduleName = 'sant_gx';
+ objName = 'ext_rfid';
}
generator.definitions_[`import_${moduleName}_${objName}`] = `from ${moduleName} import ${objName}`;
var code = `${objName}.write_card(${cnt}, ${sector})`;
@@ -346,6 +358,9 @@ export const rfid_status = function (_, generator) {
} else if (version === 'mixgo_me') {
moduleName = 'me_g1';
objName = 'ext_rc522';
+ } else if (version === 'mixgo_sant'){
+ moduleName = 'sant_gx';
+ objName = 'ext_rfid';
}
generator.definitions_[`import_${moduleName}_${objName}`] = `from ${moduleName} import ${objName}`;
var code = `${objName}.scan_card() == ${key}`;
diff --git a/boards/default_src/micropython_esp32s3/template.xml b/boards/default_src/micropython_esp32s3/template.xml
index 349d21c4..4c2a79e2 100644
--- a/boards/default_src/micropython_esp32s3/template.xml
+++ b/boards/default_src/micropython_esp32s3/template.xml
@@ -2529,6 +2529,13 @@
+
+
+
+ ai
+
+
+
@@ -2584,6 +2591,30 @@
+
+
+
+ xsensor
+
+
+
+
+ 5000
+
+
+
+
+ 500
+
+
+
+
+
+
+ xsensor
+
+
+
@@ -4082,7 +4113,7 @@
-
+
xsensor
@@ -4099,7 +4130,7 @@
-
+
xsensor
diff --git a/common/msg/blockly/en.js b/common/msg/blockly/en.js
index b274866f..fd8e5f28 100644
--- a/common/msg/blockly/en.js
+++ b/common/msg/blockly/en.js
@@ -3969,4 +3969,5 @@ En.MIXLY_column_tube_foot = 'column tube foot';
En.MIXLY_DEFINE_KEYBOARDS= 'define the keyboard';
En.MIXLY_TVOC_CO2_SENSOR = 'TVOC,formaldehyde and carbon dioxide sensors';
En.MIXLY_TVOC_CO2_SENSOR_GRT_DATA = 'Obtain the concentrations of TVOC(mg/m³), formaldehyde (mg/m³), and carbon dioxide (ppm)';
+En.MIXLY_IMAGE_ACQUISITION = 'image acquisition';
})();
diff --git a/common/msg/blockly/zh-hans.js b/common/msg/blockly/zh-hans.js
index 75cf2c44..a9fbc770 100644
--- a/common/msg/blockly/zh-hans.js
+++ b/common/msg/blockly/zh-hans.js
@@ -4128,4 +4128,5 @@ ZhHans.MIXLY_column_tube_foot = '列管脚';
ZhHans.MIXLY_DEFINE_KEYBOARDS= '定义键盘';
ZhHans.MIXLY_TVOC_CO2_SENSOR = 'TVOC、甲醛、二氧化碳传感器';
ZhHans.MIXLY_TVOC_CO2_SENSOR_GRT_DATA = '获取TVOC(mg/m3) 、甲醛(mg/m3)、二氧化碳的浓度(ppm)';
+ZhHans.MIXLY_IMAGE_ACQUISITION = '图像采集';
})();
\ No newline at end of file
diff --git a/common/msg/blockly/zh-hant.js b/common/msg/blockly/zh-hant.js
index 945d740b..065c1b5e 100644
--- a/common/msg/blockly/zh-hant.js
+++ b/common/msg/blockly/zh-hant.js
@@ -4123,4 +4123,5 @@ ZhHant.MIXLY_column_tube_foot = '列管腳';
ZhHant.MIXLY_DEFINE_KEYBOARDS= '定義鍵盤';
ZhHant.MIXLY_TVOC_CO2_SENSOR = 'TVOC、甲醛、二氧化碳傳感器';
ZhHant.MIXLY_TVOC_CO2_SENSOR_GRT_DATA = '獲取TVOC(mg/m3) 、甲醛(mg/m3)、二氧化碳的濃度(ppm)';
+ZhHant.MIXLY_IMAGE_ACQUISITION = '圖像採集';
})();