sant图像智能更新
This commit is contained in:
@@ -1,6 +1,10 @@
|
||||
{
|
||||
"ESP32 Dev Module": {
|
||||
"Handbit": {
|
||||
"RGB LED.mix": {
|
||||
"__file__": true,
|
||||
"__name__": "RGB LED.mix"
|
||||
},
|
||||
"buzzer play two tigers.mix": {
|
||||
"__file__": true,
|
||||
"__name__": "buzzer play two tigers.mix"
|
||||
@@ -13,13 +17,13 @@
|
||||
"__file__": true,
|
||||
"__name__": "display Text.mix"
|
||||
},
|
||||
"RGB LED.mix": {
|
||||
"__file__": true,
|
||||
"__name__": "RGB LED.mix"
|
||||
},
|
||||
"__file__": false,
|
||||
"__name__": "Handbit"
|
||||
},
|
||||
"MPU6050打印数值.mix": {
|
||||
"__file__": true,
|
||||
"__name__": "MPU6050打印数值.mix"
|
||||
},
|
||||
"MixGo": {
|
||||
"MPU9250.mix": {
|
||||
"__file__": true,
|
||||
@@ -28,10 +32,6 @@
|
||||
"__file__": false,
|
||||
"__name__": "MixGo"
|
||||
},
|
||||
"MPU6050打印数值.mix": {
|
||||
"__file__": true,
|
||||
"__name__": "MPU6050打印数值.mix"
|
||||
},
|
||||
"PWM模拟输出.mix": {
|
||||
"__file__": true,
|
||||
"__name__": "PWM模拟输出.mix"
|
||||
|
||||
@@ -4,6 +4,18 @@ const AI_LOCAL_GRAPH_HUE = '#90A244';
|
||||
const IOT_HUE = '#526FC3';
|
||||
const DISPLAY_ONBOARD_HUE = '#569A98';
|
||||
|
||||
export const yesorno = {
|
||||
init: function () {
|
||||
this.setColour(AI_LOCAL_GRAPH_HUE);
|
||||
this.appendDummyInput("")
|
||||
.appendField(new Blockly.FieldDropdown([
|
||||
[Blockly.Msg.MIXLY_TURTLE_WRITE_MOVE_FALSE, "False"],
|
||||
[Blockly.Msg.MIXLY_TURTLE_WRITE_MOVE_TRUE, "1"]
|
||||
]), "state");
|
||||
this.setOutput(true);
|
||||
}
|
||||
};
|
||||
|
||||
//voice part
|
||||
export const VOICE_RECOGNITION_CONTROL = {
|
||||
init: function () {
|
||||
@@ -269,7 +281,7 @@ export const CREATE_CAMERA = {
|
||||
this.setColour(AI_LOCAL_GRAPH_HUE);
|
||||
this.appendDummyInput("")
|
||||
.appendField(Blockly.Msg.MIXLY_SETUP + Blockly.Msg.MIXLY_SMARTCAMERA)
|
||||
.appendField(Blockly.Msg.LISTS_SET_INDEX_SET + Blockly.Msg.MIXLY_SHOOTING_SIZE)
|
||||
.appendField(Blockly.Msg.MIXLY_SHOOTING_SIZE)
|
||||
.appendField(new Blockly.FieldDropdown([
|
||||
['240px*240px', "R240X240"],
|
||||
['320px*320px', "R320X320"],
|
||||
@@ -280,18 +292,10 @@ export const CREATE_CAMERA = {
|
||||
['QVGA : 320px*240px', "QVGA"],
|
||||
['QQVGA : 160px*120px', "QQVGA"]
|
||||
]), "cmd");
|
||||
this.appendDummyInput("")
|
||||
this.appendValueInput("HM")
|
||||
.appendField(Blockly.Msg.MIXLY_HORIZONTAL_MIRRORING)
|
||||
.appendField(new Blockly.FieldDropdown([
|
||||
[Blockly.Msg.MIXLY_TURTLE_WRITE_MOVE_FALSE, "False"],
|
||||
[Blockly.Msg.MIXLY_TURTLE_WRITE_MOVE_TRUE, "True"]
|
||||
]),"hm");
|
||||
this.appendDummyInput("")
|
||||
.appendField(Blockly.Msg.MIXLY_VERTICAL_MIRRORING)
|
||||
.appendField(new Blockly.FieldDropdown([
|
||||
[Blockly.Msg.MIXLY_TURTLE_WRITE_MOVE_FALSE, "False"],
|
||||
[Blockly.Msg.MIXLY_TURTLE_WRITE_MOVE_TRUE, "True"]
|
||||
]),"vf");
|
||||
this.appendValueInput("VF")
|
||||
.appendField(Blockly.Msg.MIXLY_VERTICAL_MIRRORING);
|
||||
this.setPreviousStatement(true);
|
||||
this.setNextStatement(true);
|
||||
this.setInputsInline(true);
|
||||
@@ -320,15 +324,83 @@ export const SHOOT_AND_SAVE_PICTURE = {
|
||||
}
|
||||
};
|
||||
|
||||
export const GET_IMAGE_AND_SAVE = {
|
||||
init: function () {
|
||||
this.setColour(AI_LOCAL_GRAPH_HUE);
|
||||
this.appendValueInput("SUB")
|
||||
.appendField(Blockly.Msg.MIXLY_MICROPYTHON_SOCKET_MAKE)
|
||||
this.appendValueInput('direct')
|
||||
.appendField(Blockly.Msg.MICROPYTHON_HUSKYLENS_SAVE_AS + Blockly.Msg.blockpy_turtle_set_num + Blockly.Msg.MIXLY_MICROBIT_PY_STORAGE_THE_PATH);
|
||||
this.appendValueInput('quality')
|
||||
.appendField(Blockly.Msg.MIXLY_IMAGE_QUALITY);
|
||||
this.appendDummyInput('')
|
||||
.appendField(Blockly.Msg.MIXLY_ROTATION_ANGLE)
|
||||
.appendField(new Blockly.FieldDropdown([
|
||||
['0','0'],
|
||||
['90','90'],
|
||||
['180','180'],
|
||||
['270','270']
|
||||
]),'angle');
|
||||
this.setPreviousStatement(true);
|
||||
this.setNextStatement(true);
|
||||
this.setInputsInline(true);
|
||||
}
|
||||
};
|
||||
|
||||
export const OPEN_IMAGE = {
|
||||
init: function () {
|
||||
this.setColour(AI_LOCAL_GRAPH_HUE);
|
||||
this.appendValueInput('direct')
|
||||
.appendField(Blockly.Msg.MIXLY_MICROBIT_Turn_on_display + Blockly.Msg.MIXLY_MICROBIT_IMAGE + Blockly.Msg.MIXLY_MICROBIT_PY_STORAGE_THE_PATH + Blockly.Msg.blockpy_turtle_set_num);
|
||||
this.appendDummyInput('')
|
||||
.appendField(Blockly.Msg.MIXLY_ROTATION_ANGLE)
|
||||
.appendField(new Blockly.FieldDropdown([
|
||||
['0','0'],
|
||||
['90','90'],
|
||||
['180','180'],
|
||||
['270','270']
|
||||
]),'angle');
|
||||
this.setOutput(true);
|
||||
this.setInputsInline(true);
|
||||
}
|
||||
};
|
||||
|
||||
export const CAMERA_LOOGOUT = {
|
||||
init: function () {
|
||||
this.setColour(AI_LOCAL_GRAPH_HUE);
|
||||
this.appendDummyInput("")
|
||||
.appendField(Blockly.Msg.MIXLY_LOGOUT + Blockly.Msg.MIXLY_SMARTCAMERA)
|
||||
this.setPreviousStatement(true,null);
|
||||
this.setNextStatement(true,null)
|
||||
this.setInputsInline(true);
|
||||
}
|
||||
};
|
||||
|
||||
export const GET_PICTURE_DATA_EXACT = {
|
||||
init: function () {
|
||||
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 CONVERT_IMAGE_TO_JPG = {
|
||||
init: function () {
|
||||
this.setColour(AI_LOCAL_GRAPH_HUE);
|
||||
this.appendValueInput("SUB")
|
||||
.appendField(Blockly.Msg.MIXLY_MICROPYTHON_SOCKET_MAKE)
|
||||
this.appendDummyInput()
|
||||
.appendField(Blockly.Msg.A_TO_B)
|
||||
.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"]
|
||||
["JPG" + Blockly.Msg.MIXLY_SD_DATA,"0"],
|
||||
[Blockly.Msg.MIXLY_JPG_base64_CODE + Blockly.Msg.MIXLY_SD_DATA ,"1"]
|
||||
]),"kind")
|
||||
this.setOutput(true);
|
||||
this.setInputsInline(true);
|
||||
@@ -338,12 +410,14 @@ export const GET_PICTURE_DATA_EXACT = {
|
||||
export const GET_PICTURE_DATA_WHS = {
|
||||
init: function () {
|
||||
this.setColour(AI_LOCAL_GRAPH_HUE);
|
||||
this.appendValueInput("SUB")
|
||||
.appendField(Blockly.Msg.MIXLY_GET);
|
||||
this.appendDummyInput()
|
||||
.appendField(Blockly.Msg.MIXLY_GET_PICTURE_DATA)
|
||||
.appendField(Blockly.Msg.MIXLY_DE)
|
||||
.appendField(new Blockly.FieldDropdown([
|
||||
[Blockly.Msg.MIXLY_WIDTH,"get_pixel_width"],
|
||||
[Blockly.Msg.MIXLY_HEIGHT,"get_pixel_height"],
|
||||
[Blockly.Msg.MIXLY_SMARTCAMERA + Blockly.Msg.MIXLY_MODEL_NUMBER ,"get_sensor_name"]
|
||||
[Blockly.Msg.MIXLY_WIDTH,"width"],
|
||||
[Blockly.Msg.MIXLY_HEIGHT,"height"],
|
||||
[Blockly.Msg.MIXLY_MICROBIT_JS_I2C_FORMAT,"format"]
|
||||
]),"kind")
|
||||
this.setOutput(true);
|
||||
this.setInputsInline(true);
|
||||
@@ -352,14 +426,9 @@ export const GET_PICTURE_DATA_WHS = {
|
||||
|
||||
export const SCREEN_SHOW_CAM_GRAPH_SHOOT = {
|
||||
init: function () {
|
||||
this.setColour(AI_LOCAL_GRAPH_HUE);
|
||||
this.appendDummyInput('')
|
||||
.appendField(Blockly.Msg.MIXlY_SCREEN_SHOW_CAM_SHOOT)
|
||||
// this.appendValueInput('direct')
|
||||
// .appendField(Blockly.Msg.MIXLY_MICROBIT_JS_MONITOR_SHOW_IMAGE)
|
||||
// .appendField(Blockly.Msg.MIXLY_MICROBIT_PY_STORAGE_THE_PATH);
|
||||
// this.appendDummyInput('')
|
||||
// .appendField('(' + Blockly.Msg.MIXLY_ONLY + Blockly.Msg.MIXLY_SUPPORT + 'jpg/jpeg)')
|
||||
this.setColour(DISPLAY_ONBOARD_HUE);
|
||||
this.appendValueInput("SUB")
|
||||
.appendField(Blockly.Msg.MIXLY_MICROBIT_monitor + Blockly.Msg.OLEDDISPLAY + Blockly.Msg.MIXLY_MICROBIT_IMAGE)
|
||||
this.appendDummyInput('')
|
||||
.appendField(Blockly.Msg.MIXLY_SYNC_DISPLAY)
|
||||
.appendField(new Blockly.FieldDropdown([
|
||||
@@ -398,6 +467,16 @@ export const SCREEN_DISPLAY_IMAGE = {
|
||||
}
|
||||
};
|
||||
|
||||
export const GET_SCREEN_IMAGE = {
|
||||
init: function () {
|
||||
this.setColour(DISPLAY_ONBOARD_HUE);
|
||||
this.appendDummyInput("")
|
||||
.appendField(Blockly.Msg.MIXLY_GET + Blockly.Msg.MIXLY_MICROBIT_monitor + Blockly.Msg.MIXLY_MICROBIT_IMAGE)
|
||||
this.setOutput(true);
|
||||
this.setInputsInline(true);
|
||||
}
|
||||
};
|
||||
|
||||
export const AI_CAMERA_INIT = {
|
||||
init: function () {
|
||||
this.setColour(AI_LOCAL_GRAPH_HUE);
|
||||
@@ -413,6 +492,29 @@ export const AI_CAMERA_INIT = {
|
||||
[Blockly.Msg.MIXLY_HUMAN + Blockly.Msg.MIXLY_RECOGNITION, "HumanDetector"],
|
||||
[Blockly.Msg.MIXLY_AipFace, "FaceDetector"]
|
||||
]), "kind");
|
||||
this.appendDummyInput("")
|
||||
.appendField(Blockly.Msg.MIXLY_WIDTH)
|
||||
.appendField(new Blockly.FieldDropdown([
|
||||
["240px","240"],
|
||||
["320px","320"],
|
||||
["128px","128"],
|
||||
["96px","96"],
|
||||
["640px","640"],
|
||||
["480px","480"],
|
||||
["160px","160"]
|
||||
]),"width");
|
||||
this.appendDummyInput("")
|
||||
.appendField(Blockly.Msg.MIXLY_HEIGHT)
|
||||
.appendField(new Blockly.FieldDropdown([
|
||||
["240px","240"],
|
||||
["320px","320"],
|
||||
["128px","128"],
|
||||
["96px","96"],
|
||||
["480px","480"],
|
||||
["320px","320"],
|
||||
["240px","240"],
|
||||
["120px","120"]
|
||||
]),"height");
|
||||
this.setInputsInline(true);
|
||||
this.setPreviousStatement(true, null);
|
||||
this.setNextStatement(true, null);
|
||||
@@ -425,6 +527,29 @@ export const AI_CAMERA_INIT_FACERECOGNIZE = {
|
||||
this.appendValueInput('SUB')
|
||||
.appendField(Blockly.Msg.MIXLY_MICROPYTHON_SOCKET_MAKE)
|
||||
.setCheck("var");
|
||||
this.appendDummyInput("")
|
||||
.appendField(Blockly.Msg.MIXLY_WIDTH)
|
||||
.appendField(new Blockly.FieldDropdown([
|
||||
["240px","240"],
|
||||
["320px","320"],
|
||||
["128px","128"],
|
||||
["96px","96"],
|
||||
["640px","640"],
|
||||
["480px","480"],
|
||||
["160px","160"]
|
||||
]),"width");
|
||||
this.appendDummyInput("")
|
||||
.appendField(Blockly.Msg.MIXLY_HEIGHT)
|
||||
.appendField(new Blockly.FieldDropdown([
|
||||
["240px","240"],
|
||||
["320px","320"],
|
||||
["128px","128"],
|
||||
["96px","96"],
|
||||
["480px","480"],
|
||||
["320px","320"],
|
||||
["240px","240"],
|
||||
["120px","120"]
|
||||
]),"height");
|
||||
this.appendDummyInput("")
|
||||
.appendField(Blockly.Msg.MIXLY_SETUP + Blockly.Msg.LISTS_SET_INDEX_INPUT_TO)
|
||||
.appendField(Blockly.Msg.MIXLY_FACE_RECOGNIZER);
|
||||
@@ -623,7 +748,7 @@ export const Register_color_recognition_fixed = {
|
||||
.appendField(Blockly.Msg.MIXLY_TENSORFLOW_MODEL)
|
||||
.setCheck("var");
|
||||
this.appendDummyInput("")
|
||||
.appendField(Blockly.Msg.MIXLY_RECOGNITION_RECGNITION + Blockly.Msg.HTML_COLOUR)
|
||||
.appendField(Blockly.Msg.MIXLY_REGISTER + Blockly.Msg.MIXLY_RECOGNITION_RECGNITION + Blockly.Msg.HTML_COLOUR)
|
||||
.appendField(new Blockly.FieldDropdown([
|
||||
[Blockly.Msg.COLOUR_RGB_RED,"red"],
|
||||
[Blockly.Msg.COLOUR_RGB_GREEN,"green"],
|
||||
@@ -649,7 +774,7 @@ export const Register_color_recognition = {
|
||||
.appendField(Blockly.Msg.MIXLY_TENSORFLOW_MODEL)
|
||||
.setCheck("var");
|
||||
this.appendDummyInput("")
|
||||
.appendField(Blockly.Msg.REGUSTER_COLOR_RECOGNITION)
|
||||
.appendField(Blockly.Msg.REGISTER_COLOR_RECOGNITION)
|
||||
this.appendValueInput("MIN")
|
||||
.appendField('H、S、V' + Blockly.Msg.blockpy_TUPLE_MIN);
|
||||
this.appendValueInput("MAX")
|
||||
|
||||
@@ -1,5 +1,11 @@
|
||||
import { Boards } from 'mixly';
|
||||
|
||||
|
||||
export const yesorno = function (_, generator) {
|
||||
var code = this.getFieldValue('state');
|
||||
return [code, generator.ORDER_ATOMIC];
|
||||
}
|
||||
|
||||
//voice part
|
||||
export const VOICE_RECOGNITION_CONTROL = function (_, generator) {
|
||||
var version = Boards.getSelectedBoardKey().split(':')[2];
|
||||
@@ -124,11 +130,11 @@ export const CI130X_BROADCAST_SYSTEM_TIME = function (_, generator) {
|
||||
//graph part
|
||||
export const CREATE_CAMERA = function (_, generator) {
|
||||
var version = Boards.getSelectedBoardKey().split(':')[2];
|
||||
generator.definitions_['import_Camera_FrameSize_PixelFormat'] = 'from camera import Camera,FrameSize,PixelFormat';
|
||||
generator.definitions_['import_Camera_FrameSize'] = 'from camera import Camera,FrameSize';
|
||||
var cmd = this.getFieldValue('cmd');
|
||||
var hm = this.getFieldValue('hm');
|
||||
var vf = this.getFieldValue('vf');
|
||||
var code = 'cam = Camera(FrameSize.' + cmd + ',hmirror='+ hm + ',vflip='+ vf +')\n';
|
||||
var hm = generator.valueToCode(this, 'HM', generator.ORDER_ATOMIC);
|
||||
var vf = generator.valueToCode(this, 'VF', generator.ORDER_ATOMIC);
|
||||
var code = 'camera = Camera(FrameSize.' + cmd + ',hmirror='+ hm + ',vflip='+ vf +')\n';
|
||||
return code;
|
||||
}
|
||||
|
||||
@@ -136,30 +142,67 @@ export const SHOOT_AND_SAVE_PICTURE = function (_, generator) {
|
||||
var direct = generator.valueToCode(this, 'direct', generator.ORDER_ATOMIC);
|
||||
var q = generator.valueToCode(this, 'quality', generator.ORDER_ATOMIC);
|
||||
var a = this.getFieldValue('angle');
|
||||
var code = 'cam.snapshot(' + direct + ',quality='+ q + ',rotation=' + a + ')\n';
|
||||
var code = 'camera.snapshot(' + direct + ',quality='+ q + ',rotation=' + a + ')\n';
|
||||
return code;
|
||||
}
|
||||
|
||||
export const GET_IMAGE_AND_SAVE = function (_, generator) {
|
||||
generator.definitions_['camera_import_Image'] = 'from camera import Image';
|
||||
var sub = generator.valueToCode(this, 'SUB', generator.ORDER_ATOMIC);
|
||||
var direct = generator.valueToCode(this, 'direct', generator.ORDER_ATOMIC);
|
||||
var q = generator.valueToCode(this, 'quality', generator.ORDER_ATOMIC);
|
||||
var a = this.getFieldValue('angle');
|
||||
var code = 'Image.save('+ sub + ',path=' + direct + ',quality='+ q + ',rotation=' + a + ')\n';
|
||||
return code;
|
||||
}
|
||||
|
||||
export const OPEN_IMAGE = function (_, generator) {
|
||||
generator.definitions_['camera_import_Image'] = 'from camera import Image';
|
||||
var direct = generator.valueToCode(this, 'direct', generator.ORDER_ATOMIC);
|
||||
var a = this.getFieldValue('angle');
|
||||
var code = 'Image.open(path=' + direct +',rotation=' + a + ')';
|
||||
return [code, generator.ORDER_ATOMIC];
|
||||
}
|
||||
|
||||
export const CAMERA_LOOGOUT = function (_, generator) {
|
||||
var code = 'camera.deinit()\n';
|
||||
return code;
|
||||
}
|
||||
|
||||
export const GET_PICTURE_DATA_EXACT = function (_, generator) {
|
||||
generator.definitions_['import_base64'] = 'import base64';
|
||||
// var kind = this.getFieldValue('kind');
|
||||
var code = 'camera.capture()';
|
||||
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);
|
||||
var kind = this.getFieldValue('kind');
|
||||
var code = 'cam.snapshot(formats=' + kind +')';
|
||||
var code = 'Image.convert(' + sub + ', formats=' + kind + ')';
|
||||
return [code, generator.ORDER_ATOMIC];
|
||||
}
|
||||
|
||||
export const GET_PICTURE_DATA_WHS = function (_, generator) {
|
||||
generator.definitions_['camera_import_Image'] = 'from camera import Image';
|
||||
var sub = generator.valueToCode(this, 'SUB', generator.ORDER_ATOMIC);
|
||||
var kind = this.getFieldValue('kind');
|
||||
var code = 'cam.' + kind +'()';
|
||||
var code = sub + '.' + kind ;
|
||||
return [code, generator.ORDER_ATOMIC];
|
||||
}
|
||||
|
||||
export const SCREEN_SHOW_CAM_GRAPH_SHOOT = function (_, generator) {
|
||||
var version = Boards.getSelectedBoardKey().split(':')[2];
|
||||
generator.definitions_['import_' + version + '_onboard_tft'] = "from " + version + " import onboard_tft";
|
||||
var sub = generator.valueToCode(this, 'SUB', generator.ORDER_ATOMIC);
|
||||
var s = this.getFieldValue('sync');
|
||||
var code = 'onboard_tft.display(data, sync='+ s +')\n';
|
||||
var code = 'onboard_tft.display(' + sub +', sync='+ s +')\n';
|
||||
return code;
|
||||
}
|
||||
|
||||
export const SCREEN_DISPLAY_IMAGE = function (_, generator) {
|
||||
var version = Boards.getSelectedBoardKey().split(':')[2];
|
||||
generator.definitions_['import_' + version + '_onboard_tft'] = "from " + version + " import onboard_tft";
|
||||
var direct = generator.valueToCode(this, 'direct', generator.ORDER_ATOMIC);
|
||||
var a = this.getFieldValue('angle');
|
||||
var s = this.getFieldValue('sync');
|
||||
@@ -167,11 +210,20 @@ export const SCREEN_DISPLAY_IMAGE = function (_, generator) {
|
||||
return code;
|
||||
}
|
||||
|
||||
export const GET_SCREEN_IMAGE = function (_, generator) {
|
||||
var version = Boards.getSelectedBoardKey().split(':')[2];
|
||||
generator.definitions_['import_' + version + '_onboard_tft'] = "from " + version + " import onboard_tft";
|
||||
var code = 'onboard_tft.screenshot()';
|
||||
return [code, generator.ORDER_ATOMIC];
|
||||
}
|
||||
|
||||
export const AI_CAMERA_INIT = function (_, generator) {
|
||||
generator.definitions_['import_esp_dl'] = 'import esp_dl';
|
||||
var sub = generator.valueToCode(this, 'SUB', generator.ORDER_ATOMIC);
|
||||
var cmd = this.getFieldValue('kind');
|
||||
var code = sub +' = esp_dl.'+cmd + '(width=cam.get_pixel_width(), height=cam.get_pixel_height())\n';
|
||||
var width = this.getFieldValue('width');
|
||||
var height = this.getFieldValue('height');
|
||||
var code = sub +' = esp_dl.'+cmd + '(width='+width+', height='+height+')\n';
|
||||
return code;
|
||||
}
|
||||
|
||||
@@ -179,7 +231,9 @@ export const AI_CAMERA_INIT_FACERECOGNIZE = function (_, generator) {
|
||||
generator.definitions_['import_esp_dl'] = 'import esp_dl';
|
||||
var sub = generator.valueToCode(this, 'SUB', generator.ORDER_ATOMIC);
|
||||
var path = generator.valueToCode(this, 'PATH', generator.ORDER_ATOMIC);
|
||||
var code = sub +' = esp_dl.FaceRecognizer(width=cam.get_pixel_width(), height=cam.get_pixel_height(), db_path='+ path +')\n';
|
||||
var width = this.getFieldValue('width');
|
||||
var height = this.getFieldValue('height');
|
||||
var code = sub +' = esp_dl.FaceRecognizer(width='+width+', height='+height+', db_path='+ path +')\n';
|
||||
return code;
|
||||
}
|
||||
|
||||
|
||||
@@ -2412,7 +2412,36 @@
|
||||
</category>
|
||||
<category id="catAIonboard" colour="#2FAD7A" m-show='micropython:esp32s3:mixgo_sant'>
|
||||
<category id="catAIgraphsensor" colour="#90A244">
|
||||
<block type="CREATE_CAMERA"></block>
|
||||
<block type="CREATE_CAMERA">
|
||||
<value name="HM">
|
||||
<shadow type="yesorno">
|
||||
</shadow>
|
||||
</value>
|
||||
<value name="VF">
|
||||
<shadow type="yesorno">
|
||||
</shadow>
|
||||
</value>
|
||||
</block>
|
||||
<block type="variables_set">
|
||||
<field name="VAR">image</field>
|
||||
<value name="VALUE">
|
||||
<block type="GET_PICTURE_DATA_EXACT"></block>
|
||||
</value>
|
||||
</block>
|
||||
<block type="CONVERT_IMAGE_TO_JPG">
|
||||
<value name="SUB">
|
||||
<shadow type="variables_get">
|
||||
<field name="VAR">image</field>
|
||||
</shadow>
|
||||
</value>
|
||||
</block>
|
||||
<block type="GET_PICTURE_DATA_WHS">
|
||||
<value name="SUB">
|
||||
<shadow type="variables_get">
|
||||
<field name="VAR">image</field>
|
||||
</shadow>
|
||||
</value>
|
||||
</block>
|
||||
<block type="SHOOT_AND_SAVE_PICTURE">
|
||||
<value name="direct">
|
||||
<shadow type="text">
|
||||
@@ -2425,13 +2454,31 @@
|
||||
</shadow>
|
||||
</value>
|
||||
</block>
|
||||
<block type="variables_set">
|
||||
<field name="VAR">frame</field>
|
||||
<value name="VALUE">
|
||||
<block type="GET_PICTURE_DATA_EXACT"></block>
|
||||
<block type="GET_IMAGE_AND_SAVE">
|
||||
<value name="SUB">
|
||||
<shadow type="variables_get">
|
||||
<field name="VAR">image</field>
|
||||
</shadow>
|
||||
</value>
|
||||
<value name="direct">
|
||||
<shadow type="text">
|
||||
<field name="TEXT">mixly.jpg</field>
|
||||
</shadow>
|
||||
</value>
|
||||
<value name="quality">
|
||||
<shadow type="math_number">
|
||||
<field name="NUM">90</field>
|
||||
</shadow>
|
||||
</value>
|
||||
</block>
|
||||
<block type="GET_PICTURE_DATA_WHS"></block>
|
||||
<block type="OPEN_IMAGE">
|
||||
<value name="direct">
|
||||
<shadow type="text">
|
||||
<field name="TEXT">mixly.jpg</field>
|
||||
</shadow>
|
||||
</value>
|
||||
</block>
|
||||
<block type="CAMERA_LOOGOUT"></block>
|
||||
<block type="SCREEN_DISPLAY_IMAGE">
|
||||
<value name="direct">
|
||||
<shadow type="text">
|
||||
@@ -2439,17 +2486,14 @@
|
||||
</shadow>
|
||||
</value>
|
||||
</block>
|
||||
<block type="GET_SCREEN_IMAGE"></block>
|
||||
<block type="SCREEN_SHOW_CAM_GRAPH_SHOOT">
|
||||
<value name="direct">
|
||||
<shadow type="text">
|
||||
<field name="TEXT">mixly.jpg</field>
|
||||
<value name="SUB">
|
||||
<shadow type="variables_get">
|
||||
<field name="VAR">image</field>
|
||||
</shadow>
|
||||
</value>
|
||||
</block>
|
||||
|
||||
|
||||
|
||||
|
||||
<block type="AI_CAMERA_INIT">
|
||||
<value name="SUB">
|
||||
<shadow type="variables_get">
|
||||
@@ -2476,6 +2520,76 @@
|
||||
</shadow>
|
||||
</value>
|
||||
</block>
|
||||
<block type="Register_color_recognition_fixed">
|
||||
<value name="SUB">
|
||||
<shadow type="variables_get">
|
||||
<field name="VAR">Model</field>
|
||||
</shadow>
|
||||
</value>
|
||||
<value name="AREA">
|
||||
<shadow type="math_number">
|
||||
<field name="NUM">256</field>
|
||||
</shadow>
|
||||
</value>
|
||||
</block>
|
||||
<block type="Register_color_recognition">
|
||||
<value name="SUB">
|
||||
<shadow type="variables_get">
|
||||
<field name="VAR">Model</field>
|
||||
</shadow>
|
||||
</value>
|
||||
<value name="MIN">
|
||||
<shadow type="tuple_create_with_text_return">
|
||||
<field name="TEXT">0,0,0</field>
|
||||
</shadow>
|
||||
</value>
|
||||
<value name="MAX">
|
||||
<shadow type="tuple_create_with_text_return">
|
||||
<field name="TEXT">255,255,255</field>
|
||||
</shadow>
|
||||
</value>
|
||||
<value name="COLOR">
|
||||
<shadow type="text">
|
||||
<field name="TEXT">color</field>
|
||||
</shadow>
|
||||
</value>
|
||||
<value name="AREA">
|
||||
<shadow type="math_number">
|
||||
<field name="NUM">256</field>
|
||||
</shadow>
|
||||
</value>
|
||||
</block>
|
||||
<block type="REGISTER_NEW_FACE">
|
||||
<value name="SUB">
|
||||
<shadow type="variables_get">
|
||||
<field name="VAR">Model</field>
|
||||
</shadow>
|
||||
</value>
|
||||
<value name="NAME">
|
||||
<shadow type="text">
|
||||
<field name="TEXT">name</field>
|
||||
</shadow>
|
||||
</value>
|
||||
</block>
|
||||
<block type="DELETE_FACE_FROM_DATABASE">
|
||||
<value name="SUB">
|
||||
<shadow type="variables_get">
|
||||
<field name="VAR">Model</field>
|
||||
</shadow>
|
||||
</value>
|
||||
<value name="ID">
|
||||
<shadow type="math_number">
|
||||
<field name="NUM">1</field>
|
||||
</shadow>
|
||||
</value>
|
||||
</block>
|
||||
<block type="PRINT_FACE_DATABASE">
|
||||
<value name="SUB">
|
||||
<shadow type="variables_get">
|
||||
<field name="VAR">Model</field>
|
||||
</shadow>
|
||||
</value>
|
||||
</block>
|
||||
<block type="variables_set">
|
||||
<field name="VAR">_results</field>
|
||||
<value name="VALUE">
|
||||
@@ -2487,7 +2601,7 @@
|
||||
</value>
|
||||
<value name="FRAME">
|
||||
<shadow type="variables_get">
|
||||
<field name="VAR">frame</field>
|
||||
<field name="VAR">image</field>
|
||||
</shadow>
|
||||
</value>
|
||||
</block>
|
||||
@@ -2568,76 +2682,7 @@
|
||||
</shadow>
|
||||
</value>
|
||||
</block>
|
||||
<block type="Register_color_recognition_fixed">
|
||||
<value name="SUB">
|
||||
<shadow type="variables_get">
|
||||
<field name="VAR">Model</field>
|
||||
</shadow>
|
||||
</value>
|
||||
<value name="AREA">
|
||||
<shadow type="math_number">
|
||||
<field name="NUM">256</field>
|
||||
</shadow>
|
||||
</value>
|
||||
</block>
|
||||
<block type="Register_color_recognition">
|
||||
<value name="SUB">
|
||||
<shadow type="variables_get">
|
||||
<field name="VAR">Model</field>
|
||||
</shadow>
|
||||
</value>
|
||||
<value name="MIN">
|
||||
<shadow type="tuple_create_with_text_return">
|
||||
<field name="TEXT">0,0,0</field>
|
||||
</shadow>
|
||||
</value>
|
||||
<value name="MAX">
|
||||
<shadow type="tuple_create_with_text_return">
|
||||
<field name="TEXT">255,255,255</field>
|
||||
</shadow>
|
||||
</value>
|
||||
<value name="COLOR">
|
||||
<shadow type="text">
|
||||
<field name="TEXT">color</field>
|
||||
</shadow>
|
||||
</value>
|
||||
<value name="AREA">
|
||||
<shadow type="math_number">
|
||||
<field name="NUM">256</field>
|
||||
</shadow>
|
||||
</value>
|
||||
</block>
|
||||
<block type="REGISTER_NEW_FACE">
|
||||
<value name="SUB">
|
||||
<shadow type="variables_get">
|
||||
<field name="VAR">Model</field>
|
||||
</shadow>
|
||||
</value>
|
||||
<value name="NAME">
|
||||
<shadow type="text">
|
||||
<field name="TEXT">name</field>
|
||||
</shadow>
|
||||
</value>
|
||||
</block>
|
||||
<block type="DELETE_FACE_FROM_DATABASE">
|
||||
<value name="SUB">
|
||||
<shadow type="variables_get">
|
||||
<field name="VAR">Model</field>
|
||||
</shadow>
|
||||
</value>
|
||||
<value name="ID">
|
||||
<shadow type="math_number">
|
||||
<field name="NUM">1</field>
|
||||
</shadow>
|
||||
</value>
|
||||
</block>
|
||||
<block type="PRINT_FACE_DATABASE">
|
||||
<value name="SUB">
|
||||
<shadow type="variables_get">
|
||||
<field name="VAR">Model</field>
|
||||
</shadow>
|
||||
</value>
|
||||
</block>
|
||||
|
||||
|
||||
<!-- <block type="GET_QR_CODE_RECOGNITION_DATA">
|
||||
<value name="SUB">
|
||||
|
||||
@@ -4094,7 +4094,7 @@ ZhHans.MIXLY_SET_DEGREE = '将角度';
|
||||
ZhHans.MIXLY_TRANS_TO_RADIAN = '转换为弧度';
|
||||
ZhHans.MIXLY_REF_TO_PRESSURE = '参考气压';
|
||||
ZhHans.MIXLY_CAL_TO_ALTITUDE = '计算获取海拔';
|
||||
ZhHans.MIXLY_SHOOTING_SIZE = '拍摄尺寸';
|
||||
ZhHans.MIXLY_SHOOTING_SIZE = '图像尺寸';
|
||||
ZhHans.MIXLY_SHOOT_AND_SAVE_PICTURE = '拍摄照片并保存';
|
||||
ZhHans.MIXLY_GET_PICTURE_DATA = '获取摄像头图像';
|
||||
ZhHans.MIXlY_SCREEN_SHOW_CAM_SHOOT = '屏幕显示摄像头数据';
|
||||
@@ -4231,7 +4231,8 @@ ZhHans.MIXLY_ONLY = '仅';
|
||||
ZhHans.MIXLY_HUMAN = '人';
|
||||
ZhHans.MIXLY_CAT = '猫';
|
||||
ZhHans.MIXLY_LOGOUT = '注销';
|
||||
ZhHans.REGUSTER_COLOR_RECOGNITION = '注册识别颜色(自定义)';
|
||||
ZhHans.MIXLY_REGISTER = '注册';
|
||||
ZhHans.REGISTER_COLOR_RECOGNITION = '注册识别颜色(自定义)';
|
||||
ZhHans.MINIMUN_DETECTABLE_AREA = '最小检测面积(像素)';
|
||||
ZhHans.MIXLY_FACE_RECOGNIZER = '人脸分辨';
|
||||
ZhHans.PATH_OF_FACE_DATABASE = '人脸数据库文件的路径';
|
||||
|
||||
Reference in New Issue
Block a user