板载智能修改
This commit is contained in:
@@ -390,7 +390,9 @@ export const CONVERT_IMAGE_TO_JPG = {
|
||||
.appendField(new Blockly.FieldDropdown([
|
||||
["JPG" + Blockly.Msg.MIXLY_SD_DATA,"0"],
|
||||
[Blockly.Msg.MIXLY_JPG_base64_CODE + Blockly.Msg.MIXLY_SD_DATA ,"1"]
|
||||
]),"kind")
|
||||
]),"kind");
|
||||
this.appendValueInput('quality')
|
||||
.appendField(Blockly.Msg.MIXLY_IMAGE_QUALITY);
|
||||
this.setOutput(true);
|
||||
this.setInputsInline(true);
|
||||
}
|
||||
@@ -426,6 +428,23 @@ export const SCREEN_SHOW_CAM_GRAPH_SHOOT = {
|
||||
}
|
||||
};
|
||||
|
||||
export const SCREEN_SHOW_CAM_GRAPH_SHOOT_LOCATION = {
|
||||
init: function () {
|
||||
this.setColour(DISPLAY_ONBOARD_HUE);
|
||||
this.appendValueInput("SUB")
|
||||
.appendField(Blockly.Msg.OLEDDISPLAY + Blockly.Msg.MIXLY_MICROBIT_IMAGE)
|
||||
this.appendValueInput("x")
|
||||
.appendField(Blockly.Msg.TURTLE_POS + "x");
|
||||
this.appendValueInput("y")
|
||||
.appendField("y")
|
||||
this.appendValueInput('boolean')
|
||||
.appendField( Blockly.Msg.MIXLY_synchronize);
|
||||
this.setPreviousStatement(true);
|
||||
this.setNextStatement(true);
|
||||
this.setInputsInline(true);
|
||||
}
|
||||
};
|
||||
|
||||
export const SCREEN_DISPLAY_IMAGE = {
|
||||
init: function () {
|
||||
this.setColour(DISPLAY_ONBOARD_HUE);
|
||||
@@ -448,6 +467,52 @@ export const SCREEN_DISPLAY_IMAGE = {
|
||||
}
|
||||
};
|
||||
|
||||
export const SCREEN_DISPLAY_IMAGE_LOCATION = {
|
||||
init: function () {
|
||||
this.setColour(DISPLAY_ONBOARD_HUE);
|
||||
this.appendValueInput('direct')
|
||||
.appendField(Blockly.Msg.OLED_BITMAP)
|
||||
.appendField(Blockly.Msg.MIXLY_MICROBIT_PY_STORAGE_THE_PATH);
|
||||
this.appendValueInput("x")
|
||||
.appendField(Blockly.Msg.TURTLE_POS + "x");
|
||||
this.appendValueInput("y")
|
||||
.appendField("y")
|
||||
this.appendDummyInput('')
|
||||
.appendField(Blockly.Msg.MIXLY_ROTATION_ANGLE)
|
||||
.appendField(new Blockly.FieldDropdown([
|
||||
['0','0'],
|
||||
['90','90'],
|
||||
['180','180'],
|
||||
['270','270']
|
||||
]),'angle');
|
||||
this.appendValueInput('boolean')
|
||||
.appendField( Blockly.Msg.MIXLY_synchronize);
|
||||
this.setPreviousStatement(true);
|
||||
this.setNextStatement(true);
|
||||
this.setInputsInline(true);
|
||||
}
|
||||
};
|
||||
|
||||
export const GET_SCREEN_IMAGE_SIZE = {
|
||||
init: function () {
|
||||
this.setColour(DISPLAY_ONBOARD_HUE);
|
||||
this.appendDummyInput("")
|
||||
.appendField(Blockly.Msg.MIXLY_SCREENSHOT + Blockly.Msg.MIXLY_MICROBIT_monitor)
|
||||
this.appendValueInput("x")
|
||||
.appendField("x")
|
||||
this.appendValueInput("y")
|
||||
.appendField("y")
|
||||
this.appendValueInput("w")
|
||||
.appendField("w")
|
||||
this.appendValueInput("h")
|
||||
.appendField("h")
|
||||
this.appendDummyInput("")
|
||||
.appendField(Blockly.Msg.blockpy_set_of + Blockly.Msg.MIXLY_MICROBIT_IMAGE)
|
||||
this.setOutput(true);
|
||||
this.setInputsInline(true);
|
||||
}
|
||||
};
|
||||
|
||||
export const GET_SCREEN_IMAGE = {
|
||||
init: function () {
|
||||
this.setColour(DISPLAY_ONBOARD_HUE);
|
||||
@@ -471,10 +536,23 @@ 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_FACE_CLASSIFIER, "FaceDetector"]
|
||||
[Blockly.Msg.MIXLY_FACE_CLASSIFIER, "FaceDetector"],
|
||||
[Blockly.Msg.MIXLY_PICTURE_CLASSIFY,"ImageNet"]
|
||||
]), "kind");
|
||||
this.appendValueInput("WIDTH")
|
||||
.appendField(Blockly.Msg.MIXLY_WIDTH);
|
||||
this.appendValueInput("HEIGHT")
|
||||
.appendField(Blockly.Msg.MIXLY_HEIGHT);
|
||||
this.setInputsInline(true);
|
||||
this.setPreviousStatement(true, null);
|
||||
this.setNextStatement(true, null);
|
||||
}
|
||||
};
|
||||
|
||||
export const MODEL_INIT_WIDTH = {
|
||||
init: function(){
|
||||
this.setColour(AI_LOCAL_GRAPH_HUE);
|
||||
this.appendDummyInput("")
|
||||
.appendField(Blockly.Msg.MIXLY_WIDTH)
|
||||
.appendField(new Blockly.FieldDropdown([
|
||||
["240px","240"],
|
||||
["320px","320"],
|
||||
@@ -484,8 +562,15 @@ export const AI_CAMERA_INIT = {
|
||||
["480px","480"],
|
||||
["160px","160"]
|
||||
]),"width");
|
||||
this.setOutput(true);
|
||||
this.setInputsInline(true);
|
||||
}
|
||||
};
|
||||
|
||||
export const MODEL_INIT_HEIGHT = {
|
||||
init: function(){
|
||||
this.setColour(AI_LOCAL_GRAPH_HUE);
|
||||
this.appendDummyInput("")
|
||||
.appendField(Blockly.Msg.MIXLY_HEIGHT)
|
||||
.appendField(new Blockly.FieldDropdown([
|
||||
["240px","240"],
|
||||
["320px","320"],
|
||||
@@ -497,8 +582,7 @@ export const AI_CAMERA_INIT = {
|
||||
["120px","120"]
|
||||
]),"height");
|
||||
this.setInputsInline(true);
|
||||
this.setPreviousStatement(true, null);
|
||||
this.setNextStatement(true, null);
|
||||
this.setOutput(true);
|
||||
}
|
||||
};
|
||||
|
||||
@@ -511,29 +595,10 @@ export const AI_CAMERA_INIT_FACERECOGNIZE = {
|
||||
this.appendDummyInput("")
|
||||
.appendField(Blockly.Msg.MIXLY_SETUP + Blockly.Msg.LISTS_SET_INDEX_INPUT_TO)
|
||||
.appendField(Blockly.Msg.MIXLY_AipFace);
|
||||
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.appendValueInput("WIDTH")
|
||||
.appendField(Blockly.Msg.MIXLY_WIDTH);
|
||||
this.appendValueInput("HEIGHT")
|
||||
.appendField(Blockly.Msg.MIXLY_HEIGHT);
|
||||
this.appendValueInput("PATH")
|
||||
.appendField(Blockly.Msg.PATH_OF_FACE_DATABASE);
|
||||
this.setInputsInline(true);
|
||||
@@ -616,7 +681,8 @@ export const GET_NO_RECOGNITION = {
|
||||
[Blockly.Msg.HTML_COLOUR, "ColorDetector"],
|
||||
[Blockly.Msg.MIXLY_CAT, "CatDetector"],
|
||||
[Blockly.Msg.MIXLY_HUMAN, "HumanDetector"],
|
||||
[Blockly.Msg.MIXLY_FACE, "FaceDetector"]
|
||||
[Blockly.Msg.MIXLY_FACE, "FaceDetector"],
|
||||
[Blockly.Msg.MIXLY_PICTURE_CLASSIFY,"ImageNet"]
|
||||
]), "kind");
|
||||
this.appendDummyInput("")
|
||||
.appendField(Blockly.Msg.MIXLY_DE + Blockly.Msg.OLED_STRING);
|
||||
@@ -639,7 +705,8 @@ export const GET_NO_CAT_OR_FACE_RECOGNITION = {
|
||||
[Blockly.Msg.HTML_COLOUR, "ColorDetector"],
|
||||
[Blockly.Msg.MIXLY_CAT, "CatDetector"],
|
||||
[Blockly.Msg.MIXLY_HUMAN, "HumanDetector"],
|
||||
[Blockly.Msg.MIXLY_FACE, "FaceDetector"]
|
||||
[Blockly.Msg.MIXLY_FACE, "FaceDetector"],
|
||||
[Blockly.Msg.MIXLY_PICTURE_CLASSIFY,"ImageNet"]
|
||||
]), "kind");
|
||||
this.appendDummyInput("")
|
||||
.appendField(Blockly.Msg.MIXLY_DE + Blockly.Msg.MIXLY_CONFIDENCE_DEGREE);
|
||||
@@ -851,6 +918,20 @@ export const GET_QR_CODE_RECOGNITION_DATA = {
|
||||
}
|
||||
};
|
||||
|
||||
export const GET_PICTURE_RECOGNITION_DATA = {
|
||||
init: function () {
|
||||
this.setColour(AI_LOCAL_GRAPH_HUE);
|
||||
this.appendValueInput('SUB')
|
||||
.setCheck("var");
|
||||
this.appendDummyInput()
|
||||
.appendField(Blockly.Msg.MIXLY_GET_PICTURE_CLASSIFY_RESULT);
|
||||
this.appendValueInput('boolean')
|
||||
.appendField( Blockly.Msg.MIXLY_synchronize);
|
||||
this.setOutput(true);
|
||||
this.setInputsInline(true);
|
||||
}
|
||||
};
|
||||
|
||||
export const GET_COLOR_DETECTION_NUM = {
|
||||
init: function () {
|
||||
this.setColour(AI_LOCAL_GRAPH_HUE);
|
||||
@@ -1174,7 +1255,8 @@ export const AI_CAMERA_INIT_SIMPLE = {
|
||||
[Blockly.Msg.MIXLY_CAT + Blockly.Msg.MIXLY_RECOGNITION, "CatDetector"],
|
||||
[Blockly.Msg.MIXLY_HUMAN + Blockly.Msg.MIXLY_RECOGNITION, "HumanDetector"],
|
||||
[Blockly.Msg.MIXLY_FACE_CLASSIFIER, "FaceDetector"],
|
||||
[Blockly.Msg.MIXLY_AipFace,"FaceRecognizer"]
|
||||
[Blockly.Msg.MIXLY_AipFace,"FaceRecognizer"],
|
||||
[Blockly.Msg.MIXLY_PICTURE_CLASSIFY,"ImageNet"]
|
||||
]), "kind");
|
||||
this.setInputsInline(true);
|
||||
this.setPreviousStatement(true, null);
|
||||
|
||||
@@ -177,7 +177,8 @@ 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 = 'Image.convert(' + sub + ', formats=' + kind + ')';
|
||||
var q = generator.valueToCode(this, 'quality', generator.ORDER_ATOMIC);
|
||||
var code = 'Image.convert(' + sub + ', formats=' + kind + ', quality='+ q +')';
|
||||
return [code, generator.ORDER_ATOMIC];
|
||||
}
|
||||
|
||||
@@ -198,6 +199,17 @@ export const SCREEN_SHOW_CAM_GRAPH_SHOOT = function (_, generator) {
|
||||
return code;
|
||||
}
|
||||
|
||||
export const SCREEN_SHOW_CAM_GRAPH_SHOOT_LOCATION = 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 x = generator.valueToCode(this, 'x', generator.ORDER_ATOMIC);
|
||||
var y = generator.valueToCode(this, 'y', generator.ORDER_ATOMIC);
|
||||
var bool = generator.valueToCode(this, 'boolean', generator.ORDER_ATOMIC);
|
||||
var code = 'onboard_tft.display(' + sub +',x='+x+',x='+y+', sync='+ bool +')\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";
|
||||
@@ -208,6 +220,18 @@ export const SCREEN_DISPLAY_IMAGE = function (_, generator) {
|
||||
return code;
|
||||
}
|
||||
|
||||
export const SCREEN_DISPLAY_IMAGE_LOCATION = 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 x = generator.valueToCode(this, 'x', generator.ORDER_ATOMIC);
|
||||
var y = generator.valueToCode(this, 'y', generator.ORDER_ATOMIC);
|
||||
var a = this.getFieldValue('angle');
|
||||
var bool = generator.valueToCode(this, 'boolean', generator.ORDER_ATOMIC);
|
||||
var code = 'onboard_tft.display(' + direct +',x='+x+',x='+y + ',rotation=' + a + ',sync='+ bool + ')\n';
|
||||
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";
|
||||
@@ -215,22 +239,45 @@ export const GET_SCREEN_IMAGE = function (_, generator) {
|
||||
return [code, generator.ORDER_ATOMIC];
|
||||
}
|
||||
|
||||
export const GET_SCREEN_IMAGE_SIZE = function (_, generator) {
|
||||
var version = Boards.getSelectedBoardKey().split(':')[2];
|
||||
generator.definitions_['import_' + version + '_onboard_tft'] = "from " + version + " import onboard_tft";
|
||||
var x = generator.valueToCode(this, 'x', generator.ORDER_ATOMIC);
|
||||
var y = generator.valueToCode(this, 'y', generator.ORDER_ATOMIC);
|
||||
var w = generator.valueToCode(this, 'w', generator.ORDER_ATOMIC);
|
||||
var h = generator.valueToCode(this, 'h', generator.ORDER_ATOMIC);
|
||||
var code = 'screenshot(x='+x+',y='+y+',w='+w+',h='+h+')';
|
||||
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 width = this.getFieldValue('width');
|
||||
var height = this.getFieldValue('height');
|
||||
var width = generator.valueToCode(this, 'WIDTH', generator.ORDER_ATOMIC);
|
||||
var height = generator.valueToCode(this, 'HEIGHT', generator.ORDER_ATOMIC);
|
||||
var code = sub +' = esp_dl.'+cmd + '(width='+width+', height='+height+')\n';
|
||||
return code;
|
||||
}
|
||||
|
||||
export const MODEL_INIT_WIDTH = function (_, generator) {
|
||||
var width = this.getFieldValue('width');
|
||||
var code = width;
|
||||
return [code, generator.ORDER_ATOMIC];
|
||||
}
|
||||
|
||||
export const MODEL_INIT_HEIGHT = function (_, generator) {
|
||||
var height = this.getFieldValue('height');
|
||||
var code = height;
|
||||
return [code, generator.ORDER_ATOMIC];
|
||||
}
|
||||
|
||||
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 width = this.getFieldValue('width');
|
||||
var height = this.getFieldValue('height');
|
||||
var width = generator.valueToCode(this, 'WIDTH', generator.ORDER_ATOMIC);
|
||||
var height = generator.valueToCode(this, 'HEIGHT', generator.ORDER_ATOMIC);
|
||||
var code = sub +' = esp_dl.FaceRecognizer(width='+width+', height='+height+', db_path='+ path +')\n';
|
||||
return code;
|
||||
}
|
||||
@@ -374,6 +421,14 @@ export const GET_QR_CODE_RECOGNITION_DATA = function (_, generator) {
|
||||
return [code, generator.ORDER_ATOMIC];
|
||||
}
|
||||
|
||||
export const GET_PICTURE_RECOGNITION_DATA = function (_, generator) {
|
||||
generator.definitions_['import_esp_dl'] = 'import esp_dl'
|
||||
var sub = generator.valueToCode(this, 'SUB', generator.ORDER_ATOMIC);
|
||||
var bool = generator.valueToCode(this, 'boolean', generator.ORDER_ATOMIC);
|
||||
var code = 'esp_dl.simple_run('+ sub + ', camera, "data", color=0xF800, sync='+bool+')';
|
||||
return [code, generator.ORDER_ATOMIC];
|
||||
}
|
||||
|
||||
export const GET_COLOR_DETECTION_NUM = function (_, generator) {
|
||||
generator.definitions_['import_esp_dl'] = 'import esp_dl'
|
||||
var sub = generator.valueToCode(this, 'SUB', generator.ORDER_ATOMIC);
|
||||
@@ -425,7 +480,7 @@ export const GET_FACE_DETECTION_NAME = function (_, generator) {
|
||||
generator.definitions_['import_esp_dl'] = 'import esp_dl'
|
||||
var sub = generator.valueToCode(this, 'SUB', generator.ORDER_ATOMIC);
|
||||
var bool = generator.valueToCode(this, 'boolean', generator.ORDER_ATOMIC);
|
||||
var code = 'esp_dl.simple_run('+ sub + ', "person", color=0xF800, sync='+bool+')["name"]\n';
|
||||
var code = 'esp_dl.simple_run('+ sub + ', camera, "person", "name", color=0xF800, sync='+bool+')';
|
||||
return [code, generator.ORDER_ATOMIC];
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user