From 969793d77942fa3c4747ed4eaa275c665de1be8c Mon Sep 17 00:00:00 2001 From: Irene-Maxine <114802521+Irene-Maxine@users.noreply.github.com> Date: Sat, 1 Nov 2025 17:09:11 +0800 Subject: [PATCH] =?UTF-8?q?=E6=99=BA=E8=83=BD=E7=9B=B8=E5=85=B3=20S3?= =?UTF-8?q?=E5=92=8CC2=E4=BF=AE=E6=94=B9?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../micropython/blocks/ai_cloud.js | 27 +++++++++++++++-- .../micropython/blocks/ai_local.js | 20 +++++++++---- .../micropython/generators/ai_cloud.js | 11 +++++++ .../micropython/generators/ai_local.js | 22 +++++++++----- .../default_src/micropython/generators/iot.js | 5 ---- .../micropython_esp32c2/template.xml | 29 ++++++++++++++++++- .../micropython_esp32s3/template.xml | 1 + common/msg/blockly/zh-hans.js | 2 ++ 8 files changed, 96 insertions(+), 21 deletions(-) diff --git a/boards/default_src/micropython/blocks/ai_cloud.js b/boards/default_src/micropython/blocks/ai_cloud.js index fc413ad6..13a2df8a 100644 --- a/boards/default_src/micropython/blocks/ai_cloud.js +++ b/boards/default_src/micropython/blocks/ai_cloud.js @@ -24,8 +24,6 @@ export const init_xunfei_vi = { } }; - - export const init_xunfei_Spark_Ultra = { init: function () { this.setColour(AI_CLOUD_VOICE_HUE); @@ -64,6 +62,31 @@ export const init_xunfei_Spark_Ultra = { } }; +export const init_xunfei_Chinese_Model = { + init: function () { + this.setColour(AI_CLOUD_VOICE_HUE); + this.appendValueInput('VAR') + .appendField(Blockly.Msg.MIXLY_MICROPYTHON_SOCKET_MAKE); + this.appendDummyInput() + .appendField(Blockly.Msg.MIXLY_SETUP + Blockly.Msg.MIXLY_AS + Blockly.Msg.MIXLY_XUFEI+Blockly.Msg.MIXLY_CHINESE_RECOGNIZION+Blockly.Msg.MIXLY_LARGE_LANGUAGE_MODEL ); + this.appendValueInput('APPID') + .setCheck(String) + .appendField('APPID'); + this.appendValueInput('APISecret') + .setCheck(String) + .appendField('APISecret'); + this.appendValueInput('APIKey') + .setCheck(String) + .appendField('APIKey'); + this.appendValueInput('HW') + .setCheck(String) + .appendField(Blockly.Msg.MIXLY_HOT_WORD + 'ID'); + this.setInputsInline(true); + this.setPreviousStatement(true); + this.setNextStatement(true); + } +}; + export const xunfei_vi_run = { init: function () { this.setColour(AI_CLOUD_VOICE_HUE); diff --git a/boards/default_src/micropython/blocks/ai_local.js b/boards/default_src/micropython/blocks/ai_local.js index b4a61804..6e9945f4 100644 --- a/boards/default_src/micropython/blocks/ai_local.js +++ b/boards/default_src/micropython/blocks/ai_local.js @@ -370,11 +370,21 @@ export const GET_PICTURE_DATA_EXACT = { this.setColour(AI_LOCAL_GRAPH_HUE); this.appendDummyInput() .appendField(Blockly.Msg.MIXLY_GET_PICTURE_DATA) - // .appendField(new Blockly.FieldDropdown([ - // ["RGB565" + Blockly.Msg.MIXLY_SD_DATA,"0"], - // ["JPG" + Blockly.Msg.MIXLY_SD_DATA,"1"], - // [Blockly.Msg.MIXLY_JPG_base64_CODE + Blockly.Msg.MIXLY_SD_DATA ,"2"] - // ]),"kind") + this.setOutput(true); + this.setInputsInline(true); + } +}; + +export const GET_PICTURE_WIDTH_HEIGHT_DEVICE = { + init: function () { + this.setColour(AI_LOCAL_GRAPH_HUE); + this.appendDummyInput() + .appendField(Blockly.Msg.MIXLY_GET) + .appendField(new Blockly.FieldDropdown([ + [Blockly.Msg.MIXLY_SMARTCAMERA+Blockly.Msg.MIXLY_MICROBIT_IMAGE+Blockly.Msg.MIXLY_WIDTH,"get_pixel_width"], + [Blockly.Msg.MIXLY_SMARTCAMERA+Blockly.Msg.MIXLY_MICROBIT_IMAGE+Blockly.Msg.MIXLY_HEIGHT,"get_pixel_height"], + [Blockly.Msg.MIXLY_SMARTCAMERA+Blockly.Msg.MIXLY_MODEL_NUMBER,"get_sensor_name"] + ]),"kind") this.setOutput(true); this.setInputsInline(true); } diff --git a/boards/default_src/micropython/generators/ai_cloud.js b/boards/default_src/micropython/generators/ai_cloud.js index 7a7a5096..f600b72b 100644 --- a/boards/default_src/micropython/generators/ai_cloud.js +++ b/boards/default_src/micropython/generators/ai_cloud.js @@ -21,6 +21,17 @@ export const init_xunfei_Spark_Ultra = function (_, generator) { return code; } +export const init_xunfei_Chinese_Model = function (_, generator) { + generator.definitions_['import_mini_xunfei'] = "import mini_xunfei"; + var v = generator.valueToCode(this, 'VAR', generator.ORDER_ATOMIC); + var id = generator.valueToCode(this, 'APPID', generator.ORDER_ATOMIC); + var s = generator.valueToCode(this, 'APISecret', generator.ORDER_ATOMIC); + var key = generator.valueToCode(this, 'APIKey', generator.ORDER_ATOMIC); + var hw = this.getFieldValue('HW'); + var code = v + ' = mini_xunfei.IAT_WebSocket('+id+','+key +','+s+',res_id="'+hw+'")\n'; + return code; +} + export const xunfei_vi_run = function (_, generator) { var v = generator.valueToCode(this, 'VAR', generator.ORDER_ATOMIC); var t = generator.valueToCode(this, 'time', generator.ORDER_ATOMIC); diff --git a/boards/default_src/micropython/generators/ai_local.js b/boards/default_src/micropython/generators/ai_local.js index 63916abe..2a3291a9 100644 --- a/boards/default_src/micropython/generators/ai_local.js +++ b/boards/default_src/micropython/generators/ai_local.js @@ -173,6 +173,12 @@ export const GET_PICTURE_DATA_EXACT = function (_, generator) { return [code, generator.ORDER_ATOMIC]; } +export const GET_PICTURE_WIDTH_HEIGHT_DEVICE = function (_, generator) { + var kind = this.getFieldValue('kind'); + var code = 'camera.'+kind+'()'; + return [code, generator.ORDER_ATOMIC]; +} + export const CONVERT_IMAGE_TO_JPG = function (_, generator) { generator.definitions_['camera_import_Image'] = 'from camera import Image'; var sub = generator.valueToCode(this, 'SUB', generator.ORDER_ATOMIC); @@ -520,14 +526,14 @@ export const GET_FACE_DETECTION_NAME = function (_, generator) { // return [code, generator.ORDER_ATOMIC]; // } -// export const GET_NO_FACE_RECOGNITION_INFO = function (_, generator) { -// generator.definitions_['import_esp_dl'] = 'import esp_dl'; -// var sub = generator.valueToCode(this, 'SUB', generator.ORDER_ATOMIC); -// var num = generator.valueToCode(this, 'NO', generator.ORDER_ATOMIC); -// var kind = this.getFieldValue('kind'); -// var code = "esp_dl.analyze("+sub+', "person",'+ num +')["'+kind+'"]'; -// return [code, generator.ORDER_ATOMIC]; -// } +export const GET_NO_FACE_RECOGNITION_INFO = function (_, generator) { + generator.definitions_['import_esp_dl'] = 'import esp_dl'; + var sub = generator.valueToCode(this, 'SUB', generator.ORDER_ATOMIC); + var num = generator.valueToCode(this, 'NO', generator.ORDER_ATOMIC); + var kind = this.getFieldValue('kind'); + var code = "esp_dl.analyze("+sub+', "person",'+ num +')["'+kind+'"]'; + return [code, generator.ORDER_ATOMIC]; +} // export const PEOPLE_FACE_ENROLL = function (_, generator) { // var sub = generator.valueToCode(this, 'SUB', generator.ORDER_ATOMIC); diff --git a/boards/default_src/micropython/generators/iot.js b/boards/default_src/micropython/generators/iot.js index f8554530..11479dab 100644 --- a/boards/default_src/micropython/generators/iot.js +++ b/boards/default_src/micropython/generators/iot.js @@ -160,9 +160,6 @@ export const IOT_EMQX_INIT_AND_CONNECT_BY_SHARE_CODE = function (_, generator) { // var port = '1883'; var share_code = generator.valueToCode(this, 'KEY', generator.ORDER_ATOMIC); generator.definitions_['import_mixiot'] = "import mixiot"; - generator.definitions_['import_machine'] = "import machine"; - generator.definitions_['import_urequests'] = "import urequests"; - generator.definitions_['import_ubinascii_hexlify'] = "from ubinascii import hexlify"; generator.definitions_['import_mixpy_analyse_sharekey'] = "from mixpy import analyse_sharekey"; // var mac_address = 'str(binascii.hexlify(wifi.radio.mac_address))[2:14]' // var socket_pool = 'socketpool.SocketPool(wifi.radio)' @@ -189,8 +186,6 @@ export const iot_mixly_key = function (_, generator) { export const IOT_EMQX_INIT_AND_CONNECT_BY_MIXLY_CODE = function (_, generator) { generator.definitions_['import_mixiot'] = "import mixiot"; - generator.definitions_['import_machine'] = "import machine"; - generator.definitions_['import_ubinascii_hexlify'] = "from ubinascii import hexlify"; var server = generator.valueToCode(this, 'SERVER', generator.ORDER_ATOMIC); // var port = '1883'; var username = '"MixIO_public"'; diff --git a/boards/default_src/micropython_esp32c2/template.xml b/boards/default_src/micropython_esp32c2/template.xml index a5a3a8bd..22bb3285 100644 --- a/boards/default_src/micropython_esp32c2/template.xml +++ b/boards/default_src/micropython_esp32c2/template.xml @@ -2817,7 +2817,7 @@ - + @@ -2868,6 +2868,33 @@ + + + + llm + + + + + + + + + + + + + + + + + + + + + + + diff --git a/boards/default_src/micropython_esp32s3/template.xml b/boards/default_src/micropython_esp32s3/template.xml index af30619b..87cce3ff 100644 --- a/boards/default_src/micropython_esp32s3/template.xml +++ b/boards/default_src/micropython_esp32s3/template.xml @@ -2698,6 +2698,7 @@ + diff --git a/common/msg/blockly/zh-hans.js b/common/msg/blockly/zh-hans.js index db5db9c8..d3634c11 100644 --- a/common/msg/blockly/zh-hans.js +++ b/common/msg/blockly/zh-hans.js @@ -4245,4 +4245,6 @@ ZhHans.MIXLY_FACE_NAME = '面容姓名'; ZhHans.MIXLY_PICTURE_CLASSIFY = '图像分类'; ZhHans.MIXLY_GET_PICTURE_CLASSIFY_RESULT = '获取图像分类结果'; ZhHans.MIXLY_SCREENSHOT = '截取'; +ZhHans.MIXLY_CHINESE_RECOGNIZION = '中文识别'; +ZhHans.MIXLY_HOT_WORD = '热词'; })(); \ No newline at end of file