初步增加educore

This commit is contained in:
Irene-Maxine
2025-01-09 08:46:44 +08:00
parent 9d74c9800d
commit 6a97eb899b
329 changed files with 15296 additions and 40 deletions

View File

@@ -1045,4 +1045,91 @@ export const mixbot_actuator_extern_set_addr = {
this.setNextStatement(true, null);
this.setInputsInline(true);
}
}
}
//educore
export const PIN_init = {
init: function () {
this.setColour(ACTUATOR_EXTERN_HUE);
this.appendValueInput("PIN", Number)
.setCheck(Number)
.setAlign(Blockly.inputs.Align.RIGHT)
.appendField(Blockly.Msg.MIXLY_SETUP + Blockly.Msg.MIXLY_AT)
.appendField(Blockly.Msg.MIXLY_PIN);
this.setInputsInline(true);
this.setOutput(true);
}
};
export const pin_led_bright = {
init: function () {
this.setColour(ACTUATOR_EXTERN_HUE);
this.appendDummyInput()
.appendField(Blockly.Msg.MIXLY_SETTING);
this.appendValueInput('pin')
.appendField('LED')
this.appendValueInput('bright')
.appendField(Blockly.Msg.MIXLY_PULSEIN_STAT)
this.setPreviousStatement(true, null);
this.setNextStatement(true, null);
this.setInputsInline(true);
}
};
export const servo_PIN_init = {
init: function () {
this.setColour(ACTUATOR_EXTERN_HUE);
this.appendValueInput("PIN", Number)
.setCheck(Number)
.setAlign(Blockly.inputs.Align.RIGHT)
.appendField(Blockly.Msg.MIXLY_SERVO + Blockly.Msg.MIXLY_SETUP + Blockly.Msg.MIXLY_AT)
.appendField(Blockly.Msg.MIXLY_PIN);
this.setInputsInline(true);
this.setOutput(true);
}
};
export const servo_move_angle = {
init: function () {
this.setColour(ACTUATOR_EXTERN_HUE);
this.appendValueInput("SUB")
.appendField(Blockly.Msg.MIXLY_SERVO);
this.appendValueInput("angle")
.setCheck(Number)
.setAlign(Blockly.inputs.Align.RIGHT)
.appendField(Blockly.Msg.MIXLY_DISPLAY_MATRIX_ROTATE);
this.appendDummyInput()
.appendField(Blockly.Msg.DRAW_POINTER_ANGLE)
this.setInputsInline(true);
this.setPreviousStatement(true);
this.setNextStatement(true);
}
};
export const parrot_PIN_init = {
init: function () {
this.setColour(ACTUATOR_EXTERN_HUE);
this.appendValueInput("PIN", Number)
.setCheck(Number)
.setAlign(Blockly.inputs.Align.RIGHT)
.appendField(Blockly.Msg.MIXLY_MOTOR + Blockly.Msg.MIXLY_SETUP + Blockly.Msg.MIXLY_AT)
.appendField(Blockly.Msg.MIXLY_PIN);
this.setInputsInline(true);
this.setOutput(true);
}
};
export const parrot_move_speed = {
init: function () {
this.setColour(ACTUATOR_EXTERN_HUE);
this.appendValueInput("SUB")
.appendField(Blockly.Msg.MIXLY_MOTOR);
this.appendValueInput("speed")
.setCheck(Number)
.setAlign(Blockly.inputs.Align.RIGHT)
.appendField(Blockly.Msg.MIXLY_DISPLAY_MATRIX_ROTATE +Blockly.Msg.MIXLY_SPEED);
this.setInputsInline(true);
this.setPreviousStatement(true);
this.setNextStatement(true);
}
};

View File

@@ -1516,4 +1516,167 @@ export const analog_ble_mouse_send_battery = {
this.setNextStatement(true);
this.setInputsInline(true);
}
}
}
//educore actuator
export const educore_buzzer = {
init: function () {
this.setColour(ACTUATOR_ONBOARD_HUE);
this.appendDummyInput()
.appendField(Blockly.Msg.MIXLY_MIDI);
this.setOutput(true);
this.setInputsInline(true);
}
}
export const educore_buzzer_play_tone = {
init: function () {
this.setColour(ACTUATOR_ONBOARD_HUE);
this.appendValueInput("buzzer");
this.appendDummyInput()
.appendField(Blockly.Msg.MIXLY_TONE);
this.appendValueInput('pitch')
.setCheck(Number)
.appendField(Blockly.Msg.MIXLY_FREQUENCY);
this.setInputsInline(true);
this.setPreviousStatement(true);
this.setNextStatement(true);
}
};
export const educore_buzzer_play_tone_time = {
init: function () {
this.setColour(ACTUATOR_ONBOARD_HUE);
this.appendValueInput("buzzer");
this.appendDummyInput()
.appendField(Blockly.Msg.MIXLY_TONE);
this.appendValueInput('pitch')
.setCheck(Number)
.appendField(Blockly.Msg.MIXLY_FREQUENCY);
this.appendValueInput('time')
.setCheck(Number)
.appendField(Blockly.Msg.MIXLY_DURATION);
this.setInputsInline(true);
this.setPreviousStatement(true);
this.setNextStatement(true);
}
};
export const educore_buzzer_stop = {
init: function () {
this.setColour(ACTUATOR_ONBOARD_HUE);
this.appendValueInput("buzzer")
this.appendDummyInput()
.appendField(Blockly.Msg.MIXLY_MICROBIT_Turn_off_display);
this.setInputsInline(true);
this.setPreviousStatement(true);
this.setNextStatement(true);
}
};
export const educore_rgb_light = {
init: function () {
this.setColour(ACTUATOR_ONBOARD_HUE);
this.appendDummyInput()
.appendField(Blockly.Msg.MIXLY_RGB);
this.setOutput(true);
this.setInputsInline(true);
}
}
export const educore_neopixel_rgb = {
init: function () {
this.setColour(ACTUATOR_ONBOARD_HUE);
this.appendValueInput("rgb");
this.appendValueInput("_LED_")
.setCheck(Number)
.setAlign(Blockly.inputs.Align.RIGHT)
.appendField(Blockly.Msg.MIXLY_RGB_NUM);
this.appendValueInput("RVALUE")
.setCheck(Number)
.setAlign(Blockly.inputs.Align.RIGHT)
.appendField(Blockly.Msg.MIXLY_RGB_R);
this.appendValueInput("GVALUE")
.setCheck(Number)
.setAlign(Blockly.inputs.Align.RIGHT)
.appendField(Blockly.Msg.MIXLY_RGB_G);
this.appendValueInput("BVALUE")
.setCheck(Number)
.setAlign(Blockly.inputs.Align.RIGHT)
.appendField(Blockly.Msg.MIXLY_RGB_B);
this.setInputsInline(true);
this.setPreviousStatement(true, null);
this.setNextStatement(true, null);
// const boardKey = Boards.getSelectedBoardKey();
// switch (boardKey) {
// case 'micropython:esp32c3:mixgo_cc':
// this.setTooltip(Blockly.Msg.MIXLY_RGB_NUM_R_G_B_MIXGOCC);
// break;
// case 'micropython:esp32s2:mixgo_ce':
// this.setTooltip(Blockly.Msg.MIXLY_RGB_NUM_R_G_B_MIXGOCC);
// break;
// case 'micropython:esp32c3:mixgo_me':
// this.setTooltip(Blockly.Msg.MIXLY_RGB_NUM_R_G_B_MIXGOME);
// break;
// case 'micropython:esp32:mPython':
// this.setTooltip(Blockly.Msg.MIXLY_RGB_NUM_R_G_B_MPYTHON);
// break;
// default:
// this.setTooltip(Blockly.Msg.MIXLY_RGB_NUM_R_G_B_MIXGOME);
// }
}
};
export const educore_neopixel_clear = {
init: function () {
this.setColour(ACTUATOR_ONBOARD_HUE);
this.appendValueInput("rgb");
this.appendDummyInput()
.appendField(Blockly.Msg.MIXLY_MICROBIT_Turn_off_display)
this.setInputsInline(true);
this.setPreviousStatement(true, null);
this.setNextStatement(true, null);
}
};
export const educore_ble_sensor_init = {
init: function () {
this.setColour(ACTUATOR_ONBOARD_HUE);
this.appendValueInput("name")
.appendField(Blockly.Msg.LISTS_SET_INDEX_SET + Blockly.Msg.MIXLY_BLUETOOTH+ Blockly.Msg.MIXLY_MICROBIT_JS_SYSTEM_DEVICE_NAME + Blockly.Msg.MIXLY_MICROBIT_PY_STORAGE_AS);
this.setOutput(true);
this.setInputsInline(true);
}
};
export const educore_ble_sensor_connected = {
init: function () {
this.setColour(ACTUATOR_ONBOARD_HUE);
this.appendValueInput("SUB")
.appendField(Blockly.Msg.MIXLY_BLUETOOTH);
this.appendDummyInput("")
.appendField(Blockly.Msg.MIXLY_BE_CONNETCED)
this.setOutput(true);
this.setInputsInline(true);
}
};
export const educore_ble_keyboard_input = {
init: function () {
this.setColour(ACTUATOR_ONBOARD_HUE);
this.appendValueInput("SUB")
.appendField(Blockly.Msg.MIXLY_BLUETOOTH + Blockly.Msg.ANALOG + Blockly.Msg.MIXLY_KEYBOARD);
this.appendDummyInput()
.appendField(Blockly.Msg.MIXLY_SEND_KEYBOARD);
this.appendValueInput('general');
// this.appendDummyInput()
// .appendField(Blockly.Msg.MIXLY_RELEASE)
// .appendField(new Blockly.FieldDropdown([
// [Blockly.Msg.MICROPYTHON_DISPLAY_YES, "True"],
// [Blockly.Msg.MICROPYTHON_DISPLAY_NO, "False"]
// ]), 'release');
this.setPreviousStatement(true);
this.setNextStatement(true);
this.setInputsInline(true);
}
};

View File

@@ -315,4 +315,81 @@ export const ce_go_pin_light = {
return mode0 + mode1
});
}
};
//educore car
export const educore_car = {
init: function () {
this.setColour(MEGO_HUE);
this.appendDummyInput()
.appendField(Blockly.Msg.MIXLY_CAR);
this.setOutput(true);
this.setInputsInline(true);
}
}
export const educore_car_stepper_keep = {
init: function () {
this.setColour(MEGO_HUE);
this.appendValueInput('car');
this.appendDummyInput()
.appendField(new Blockly.FieldDropdown([
[Blockly.Msg.blockpy_forward, "forward"],
// [Blockly.Msg.blockpy_backward, "B"],
[Blockly.Msg.blockpy_left, "turn_left"],
[Blockly.Msg.blockpy_right, "turn_right"]
]), "VAR");
this.appendValueInput('speed')
.setCheck(Number)
.setAlign(Blockly.inputs.Align.RIGHT)
.appendField(Blockly.Msg.MIXLY_SETTING + Blockly.Msg.MIXLY_SPEED);
this.setPreviousStatement(true, null);
this.setNextStatement(true, null);
this.setInputsInline(true);
}
}
export const educore_car_stepper_stop = {
init: function () {
this.setColour(MEGO_HUE);
this.appendValueInput('car');
this.appendDummyInput()
.appendField(new Blockly.FieldDropdown([
[Blockly.Msg.MOTOR_P, "stop"]
// [Blockly.Msg.MOTOR_N, "N"]
]), "VAR");
this.setPreviousStatement(true, null);
this.setNextStatement(true, null);
this.setInputsInline(true);
}
}
export const educore_car_pin_near_line = {
init: function () {
this.setColour(MEGO_HUE);
this.appendValueInput('car');
this.appendDummyInput()
.appendField(Blockly.Msg.MIXLY_MICROBIT_PY_STORAGE_GET)
.appendField(new Blockly.FieldDropdown([
[Blockly.Msg.TEXT_TRIM_LEFT, "1"],
// [Blockly.Msg.MIXGO_LEFT_MID, "[1]"],
// [Blockly.Msg.MIXGO_RIGHT_MID, "[2]"],
[Blockly.Msg.TEXT_TRIM_RIGHT, "2"]
// [Blockly.Msg.MIXLY_ALL, ""]
]), "key")
.appendField(Blockly.Msg.MIXGO_LINE_SENSOR_VAL);
this.setOutput(true, Number);
this.setInputsInline(true);
}
};
export const educore_car_pin_near = {
init: function () {
this.setColour(MEGO_HUE);
this.appendValueInput('car');
this.appendDummyInput()
.appendField(Blockly.Msg.MIXLY_MICROBIT_PY_STORAGE_GET+Blockly.Msg.MIXGO_PROXIMITY_SENSOR);
this.setOutput(true, Number);
this.setInputsInline(true);
}
};

View File

@@ -571,3 +571,114 @@ export const requests_attribute2 = {
this.setOutput(true, String);
}
};
//educore_networke
export const educore_wifi_connect = {
init: function () {
this.setColour(COMMUNICATE_HUE);
this.appendDummyInput()
.appendField(Blockly.Msg.MIXLY_ESP32_IOT_CONNECT_WIFI);
this.appendValueInput('WIFINAME')
.setCheck(String)
.appendField(Blockly.Msg.HTML_NAME);
this.appendValueInput('PASSWORD')
.setCheck(String)
.appendField(Blockly.Msg.HTML_PASSWORD);
this.appendValueInput('TIMEOUT')
.setCheck(Number)
.appendField(Blockly.Msg.MIXLY_IR_TIMEOUT);
this.appendDummyInput()
.appendField(Blockly.Msg.MIXLY_MILLIS)
this.setInputsInline(true);
this.setPreviousStatement(true);
this.setNextStatement(true);
this.setTooltip(Blockly.Msg.MIXLY_ESP32_IOT_WIFI_CONNECT_TOOLTIP);
}
};
export const educore_mqtt_connect = {
init: function () {
this.setColour(COMMUNICATE_HUE);
this.appendDummyInput()
.appendField(Blockly.Msg.MIXLY_ESP32_IOT_EMQX_CONNECT_TOOLTIP);
this.appendValueInput('SERVER')
.setCheck(String)
.appendField(Blockly.Msg.MIXLY_EMQX_SERVER)
.setAlign(Blockly.inputs.Align.RIGHT)
this.appendValueInput('PORT')
.setCheck(Number)
.appendField(Blockly.Msg.MIXLY_EMQX_PORT)
.setAlign(Blockly.inputs.Align.RIGHT)
this.appendValueInput('CLIENT_ID')
.setCheck(String)
.appendField(Blockly.Msg.MIXLY_EMQX_CLIENT_ID)
.setAlign(Blockly.inputs.Align.RIGHT)
this.appendValueInput('USERNAME')
.setCheck(String)
.appendField(Blockly.Msg.MIXLY_WIFI_USERNAME)
.setAlign(Blockly.inputs.Align.RIGHT)
this.appendValueInput('PASSWORD')
.setCheck(String)
.appendField(Blockly.Msg.MIXLY_IOT_PASSWORD)
.setAlign(Blockly.inputs.Align.RIGHT)
this.setPreviousStatement(true);
this.setNextStatement(true);
}
};
export const educore_mqtt_subscribe_message = {
init: function () {
this.setColour(COMMUNICATE_HUE);
this.appendValueInput('TOPIC')
.appendField(Blockly.Msg.MIXLY_EMQX_SUBSCRIBE + Blockly.Msg.MIXLY_MICROBIT_MSG)
.appendField(Blockly.Msg.MIXLY_EMQX_PUBLISH_TOPIC);
this.appendValueInput('MESSAGE')
.appendField(Blockly.Msg.blockpy_set_of);
this.setInputsInline(true);
this.setOutput(true);
}
};
export const educore_mqtt_topic_subscribe = {
init: function () {
this.setColour(COMMUNICATE_HUE);
this.appendDummyInput()
.appendField("mqtt")
this.appendValueInput('TOPIC')
.appendField(Blockly.Msg.MIXLY_EMQX_SUBSCRIBE + Blockly.Msg.MIXLY_MICROBIT_MSG)
.appendField(Blockly.Msg.MIXLY_EMQX_PUBLISH_TOPIC);
this.appendValueInput('METHOD')
.appendField(Blockly.Msg.MIXLY_EMQX_SET_METHOD);
this.setInputsInline(true);
this.setPreviousStatement(true);
this.setNextStatement(true);
}
};
export const educore_mqtt_topic_publish = {
init: function () {
this.setColour(COMMUNICATE_HUE);
this.appendDummyInput()
.appendField("mqtt")
this.appendValueInput('TOPIC')
.appendField(Blockly.Msg.MIXLY_EMQX_PUBLISH_NEW)
.appendField(Blockly.Msg.MIXLY_EMQX_PUBLISH_TOPIC);
this.appendValueInput('MSG')
.appendField(Blockly.Msg.HTML_BODY);
this.setInputsInline(true);
this.setPreviousStatement(true);
this.setNextStatement(true);
}
};
export const educore_mqtt_connect_success = {
init: function () {
this.setColour(COMMUNICATE_HUE);
this.appendDummyInput()
.appendField("mqtt"+Blockly.Msg.MIXLY_EMQX_IS_CONNECT)
this.setInputsInline(true);
this.setOutput(true);
}
};

View File

@@ -2033,3 +2033,142 @@ export const sensor_weather_solo_rain = {
this.setInputsInline(true);
}
};
//educore sensor_extern
export const educore_body_sensor = {
init: function () {
this.setColour(SENSOR_EXTERN_HUE);
this.appendValueInput("PIN")
.appendField(Blockly.Msg.MIXLY_BODY_SENSOR);
this.setOutput(true);
this.setInputsInline(true);
}
};
export const educore_soilhum_sensor = {
init: function () {
this.setColour(SENSOR_EXTERN_HUE);
this.appendValueInput("PIN")
.appendField(Blockly.Msg.MIXLY_SOILHUM_SENSOR);
this.setOutput(true);
this.setInputsInline(true);
}
};
export const educore_temphum_sensor = {
init: function () {
this.setColour(SENSOR_EXTERN_HUE);
this.appendValueInput("PIN")
.appendField(Blockly.Msg.MIXLY_TEMP_AND_HUMIDITY_SENSOR);
this.setOutput(true);
this.setInputsInline(true);
}
};
export const educore_infrared_sensor = {
init: function () {
this.setColour(SENSOR_EXTERN_HUE);
this.appendValueInput("PIN")
.appendField(Blockly.Msg.MIXLY_Infrared_pyroelectric_sensor);
this.setOutput(true);
this.setInputsInline(true);
}
};
export const educore_button_sensor_extern = {
init: function () {
this.setColour(SENSOR_EXTERN_HUE);
this.appendValueInput("PIN")
.appendField(Blockly.Msg.HTML_BUTTON);
this.setOutput(true);
this.setInputsInline(true);
}
};
export const sensor_read_humiture = {
init: function () {
this.setColour(SENSOR_EXTERN_HUE);
this.appendValueInput('SUB')
.appendField(Blockly.Msg.MIXLY_GET)
.setCheck("var");
this.appendDummyInput("")
.appendField(Blockly.Msg.blockpy_set_of)
.appendField(new Blockly.FieldDropdown([
[Blockly.Msg.MIXLY_TEMPERATURE,"0"],
[Blockly.Msg.MIXLY_Humidity,"1"]
]),"key");
this.setInputsInline(true);
this.setOutput(true);
}
};
export const educore_ultrasonic_sensor = {
init: function () {
this.setColour(SENSOR_EXTERN_HUE);
this.appendValueInput("PIN")
.appendField(Blockly.Msg.MIXLY_EXTERN_SONAR);
this.setOutput(true);
this.setInputsInline(true);
}
};
export const ultrasonic_sensor_read_distance = {
init: function () {
this.setColour(SENSOR_EXTERN_HUE);
this.appendValueInput('SUB')
.appendField(Blockly.Msg.MIXLY_GET)
.setCheck("var");
this.appendDummyInput("")
.appendField(Blockly.Msg.blockpy_set_of+Blockly.Msg.ME_GO_HALL_SENSOR_DISTANCE);
this.setInputsInline(true);
this.setOutput(true);
}
};
export const educore_temp_sensor = {
init: function () {
this.setColour(SENSOR_EXTERN_HUE);
this.appendValueInput("PIN")
.appendField(Blockly.Msg.MIXLY_TEMP + Blockly.Msg.MIXLY_DS18B20);
this.setOutput(true);
this.setInputsInline(true);
}
};
export const educore_camera_sensor = {
init: function () {
this.setColour(SENSOR_EXTERN_HUE);
this.appendValueInput("PIN")
.appendField(Blockly.Msg.MIXLY_SMARTCAMERA);
this.setOutput(true);
this.setInputsInline(true);
}
};
export const camera_sensor_init = {
init: function () {
this.setColour(SENSOR_EXTERN_HUE);
this.appendValueInput("SUB")
.appendField(Blockly.Msg.MIXLY_SMARTCAMERA);
this.appendDummyInput("")
.appendField(Blockly.Msg.MIXLY_PROCCED)
.appendField(new Blockly.FieldDropdown([
[Blockly.Msg.MIXLY_AipFace,"FACE_RECOGNIZE"],
[Blockly.Msg.MIXLY_FACE_CLASSIFIER,"FACE_DETECT"]
]),"key");
this.setOutput(true);
this.setInputsInline(true);
}
};
export const camera_sensor_result = {
init: function () {
this.setColour(SENSOR_EXTERN_HUE);
this.appendValueInput("SUB")
.appendField(Blockly.Msg.MIXLY_SMARTCAMERA);
this.appendDummyInput("")
.appendField(Blockly.Msg.blockpy_set_of + Blockly.Msg.MIXLY_RECOGNIZED_RESULT);
this.setOutput(true);
this.setInputsInline(true);
}
};

View File

@@ -1374,4 +1374,142 @@ export const sensor_pin_near = sensor_mixgo_pin_near;
export const sensor_light = sensor_mixgo_light;
export const dht11 = sensor_dht11;
export const sensor_field_strength = sensor_mpu9250_field_strength;
export const sensor_temperature = sensor_mpu9250_temperature
export const sensor_temperature = sensor_mpu9250_temperature
//educore sensor_onboard
export const educore_voice_sensor = {
init: function () {
this.setColour(SENSOR_ONBOARD_HUE);
this.appendDummyInput("")
.appendField(Blockly.Msg.MIXLY_ESP32_EXTERN_SOUND);
this.setInputsInline(true);
this.setOutput(true);
}
};
export const sensor_read = {
init: function () {
this.setColour(SENSOR_ONBOARD_HUE);
this.appendValueInput('SUB')
.appendField(Blockly.Msg.MIXLY_GET)
.setCheck("var");
this.appendDummyInput("")
.appendField(Blockly.Msg.blockpy_set_of + Blockly.Msg.MIXLY_MICROBIT_JS_I2C_VALUE);
this.setInputsInline(true);
this.setOutput(true);
}
};
export const educore_light_sensor = {
init: function () {
this.setColour(SENSOR_ONBOARD_HUE);
this.appendDummyInput("")
.appendField(Blockly.Msg.MIXLY_LIGHT_SENSOR);
this.setInputsInline(true);
this.setOutput(true);
}
};
export const educore_gyroscope_sensor = {
init: function () {
this.setColour(SENSOR_ONBOARD_HUE);
this.appendDummyInput("")
.appendField(Blockly.Msg.MIXLY_GYROSCOPE_SENSOR);
this.setInputsInline(true);
this.setOutput(true);
}
};
export const educore_gyroscope_sensor_read = {
init: function () {
this.setColour(SENSOR_ONBOARD_HUE);
this.appendValueInput('SUB')
.appendField(Blockly.Msg.MIXLY_GET)
.setCheck("var");
this.appendDummyInput("")
.appendField(new Blockly.FieldDropdown([
[Blockly.Msg.MIXLY_Horizontal_inclination, "X"],
["y", "[1]"],
["z", "[2]"]
]), "key");
this.setInputsInline(true);
this.setOutput(true);
}
};
export const educore_gyroscope_sensor_shake = {
init: function () {
this.setColour(SENSOR_ONBOARD_HUE);
this.appendValueInput('SUB')
.appendField(Blockly.Msg.MIXLY_GET)
.setCheck("var");
this.appendDummyInput("")
.appendField(Blockly.Msg.MIXLY_BE_SHAKED)
this.setInputsInline(true);
this.setOutput(true);
}
};
export const educore_button_sensor = {
init: function () {
this.setColour(SENSOR_ONBOARD_HUE);
this.appendDummyInput("")
.appendField(Blockly.Msg.MIXLY_BUTTON)
.appendField(new Blockly.FieldDropdown([
["a", "a"],
["b", "b"],
["c", "c"]
]), "btn");
this.setOutput(true);
this.setInputsInline(true);
}
};
export const educore_button_was_pressed = {
init: function () {
this.setColour(SENSOR_ONBOARD_HUE);
this.appendValueInput('SUB')
.appendField(Blockly.Msg.MIXLY_BUTTON);
this.appendDummyInput()
.appendField(Blockly.Msg.MIXLY_WAS_PRESSED);
this.setOutput(true, Boolean);
this.setInputsInline(true);
this.setTooltip(Blockly.Msg.MIXLY_SENOR_WAS_PRESSED);
}
};
export const educore_rfid_sensor = {
init: function () {
this.setColour(SENSOR_ONBOARD_HUE);
this.appendValueInput("PIN")
.appendField(Blockly.Msg.MIXLY_COMMUNICATION_RFID_INITIAL);
this.setOutput(true);
this.setInputsInline(true);
}
};
export const educore_rfid_sensor_scan = {
init: function () {
this.setColour(SENSOR_ONBOARD_HUE);
this.appendValueInput("SUB")
this.appendDummyInput("")
.appendField(Blockly.Msg.MIXLY_COMMUNICATION_RFID_READ);
this.setOutput(true);
this.setInputsInline(true);
}
};
export const educore_rfid_sensor_scan_data = {
init: function () {
this.setColour(SENSOR_ONBOARD_HUE);
this.appendValueInput("SUB")
.appendField(Blockly.Msg.MIXLY_COMMUNICATION_RFID_READ + Blockly.Msg.MIXLY_COMMUNICATION_DATA_FROM);
this.appendDummyInput('')
.appendField(Blockly.Msg.MIXLY_GET)
.appendField(new Blockly.FieldDropdown([
[Blockly.Msg.MIXLY_SERIAL_NUMBER,"serial_number"]
]),"key");
this.setOutput(true);
this.setInputsInline(true);
}
};

View File

@@ -630,4 +630,56 @@ export const mixbot_actuator_extern_set_addr = function (_, generator) {
var newaddr = generator.valueToCode(this, 'new', generator.ORDER_ATOMIC);
var code = name + '.addr_set(' + oldaddr + ',' + newaddr + ')\n';
return code;
}
//educore
export const PIN_init = function (_, generator) {
var version = Boards.getSelectedBoardKey().split(':')[2]
generator.definitions_['import_' + version + 'pin'] = 'from ' + version + ' import pin';
var dropdown_pin = generator.valueToCode(this, 'PIN', generator.ORDER_ATOMIC);
var code = 'pin('+ dropdown_pin +')';
return [code, generator.ORDER_ATOMIC];
}
export const pin_led_bright = function (_, generator) {
var version = Boards.getSelectedBoardKey().split(':')[2]
var pin = generator.valueToCode(this, 'pin', generator.ORDER_ATOMIC);
generator.definitions_['import_' + version + 'pin'] = 'from ' + version + ' import pin';
var bright = generator.valueToCode(this, 'bright', generator.ORDER_ATOMIC);
var code = pin+".write_digital(value=" + bright + ")\n";
return code;
}
export const servo_PIN_init = function (_, generator) {
var version = Boards.getSelectedBoardKey().split(':')[2]
generator.definitions_['import_' + version + 'servo'] = 'from ' + version + ' import servo';
var dropdown_pin = generator.valueToCode(this, 'PIN', generator.ORDER_ATOMIC);
var code = 'servo('+ dropdown_pin +')';
return [code, generator.ORDER_ATOMIC];
}
export const servo_move_angle = function (_, generator) {
var version = Boards.getSelectedBoardKey().split(':')[2]
generator.definitions_['import_' + version + 'servo'] = 'from ' + version + ' import servo';
var sub = generator.valueToCode(this, 'SUB', generator.ORDER_ATOMIC);
var a = generator.valueToCode(this, 'angle', generator.ORDER_ATOMIC);
var code = sub+'.angle('+ a +')\n';
return code;
}
export const parrot_PIN_init = function (_, generator) {
var version = Boards.getSelectedBoardKey().split(':')[2]
generator.definitions_['import_' + version + 'parrot'] = 'from ' + version + ' import parrot';
var dropdown_pin = generator.valueToCode(this, 'PIN', generator.ORDER_ATOMIC);
var code = 'parrot('+ dropdown_pin +')';
return [code, generator.ORDER_ATOMIC];
}
export const parrot_move_speed = function (_, generator) {
var version = Boards.getSelectedBoardKey().split(':')[2]
generator.definitions_['import_' + version + 'parrot'] = 'from ' + version + ' import parrot';
var sub = generator.valueToCode(this, 'SUB', generator.ORDER_ATOMIC);
var speed = generator.valueToCode(this, 'speed', generator.ORDER_ATOMIC);
var code = sub+'.speed('+ speed +')\n';
return code;
}

View File

@@ -586,3 +586,90 @@ export const analog_ble_mouse_send_battery = function (_, generator) {
var code = "ble_mouse.notify_battery(" + b + ")\n";
return code;
}
//educore actuator
export const educore_buzzer = function (_, generator) {
var version = Boards.getSelectedBoardKey().split(':')[2]
generator.definitions_['import_' + version + '_speaker'] = 'from ' + version + ' import spesker';
var code = "speaker()";
return [code, generator.ORDER_ATOMIC];
}
export const educore_buzzer_play_tone = function (block, generator) {
var version = Boards.getSelectedBoardKey().split(':')[2]
generator.definitions_['import_' + version + '_speaker'] = 'from ' + version + ' import spesker';
var bu = generator.valueToCode(this, 'buzzer', generator.ORDER_ATOMIC);
var number_pitch = generator.valueToCode(block, 'pitch', generator.ORDER_ATOMIC);
var code = bu+'.tone(freq=[' + number_pitch + '])\n';
return code;
}
export const educore_buzzer_play_tone_time = function (block, generator) {
var version = Boards.getSelectedBoardKey().split(':')[2]
generator.definitions_['import_' + version + '_speaker'] = 'from ' + version + ' import spesker';
var bu = generator.valueToCode(this, 'buzzer', generator.ORDER_ATOMIC);
var number_pitch = generator.valueToCode(block, 'pitch', generator.ORDER_ATOMIC);
var number_time = generator.valueToCode(block, 'time', generator.ORDER_ATOMIC);
var code = bu+'.tone(freq=' + number_pitch + ', dur=' + number_time + ')\n';
return code;
}
export const educore_buzzer_stop = function (_, generator) {
var version = Boards.getSelectedBoardKey().split(':')[2]
generator.definitions_['import_' + version + '_speaker'] = 'from ' + version + ' import spesker';
var bu = generator.valueToCode(this, 'buzzer', generator.ORDER_ATOMIC);
var code = bu+'.stop()\n';
return code;
}
export const educore_rgb_light = function (_, generator) {
var version = Boards.getSelectedBoardKey().split(':')[2]
generator.definitions_['import_' + version + 'rgb'] = 'from ' + version + ' import rgb';
var code = "rgb()";
return [code, generator.ORDER_ATOMIC];
}
export const educore_neopixel_rgb = function (_, generator) {
var version = Boards.getSelectedBoardKey().split(':')[2]
generator.definitions_['import_' + version + 'rgb'] = 'from ' + version + ' import rgb';
var rgb = generator.valueToCode(this, 'rgb', generator.ORDER_ATOMIC);
var value_led = generator.valueToCode(this, '_LED_', generator.ORDER_ATOMIC);
var value_rvalue = generator.valueToCode(this, 'RVALUE', generator.ORDER_ATOMIC);
var value_gvalue = generator.valueToCode(this, 'GVALUE', generator.ORDER_ATOMIC);
var value_bvalue = generator.valueToCode(this, 'BVALUE', generator.ORDER_ATOMIC);
var code = rgb+'.write(index[' + value_led + '], r=int(' + value_rvalue + '), g=int(' + value_gvalue + '), b=int(' + value_bvalue + '))\n';
return code;
}
export const educore_neopixel_clear = function (_, generator) {
var version = Boards.getSelectedBoardKey().split(':')[2]
generator.definitions_['import_' + version + 'rgb'] = 'from ' + version + ' import rgb';
var rgb = generator.valueToCode(this, 'rgb', generator.ORDER_ATOMIC);
var code = rgb+'.clear()\n';
return code;
}
export const educore_ble_sensor_init = function (_, generator) {
var version = Boards.getSelectedBoardKey().split(':')[2]
generator.definitions_['import_' + version + '_hid'] = 'from ' + version + ' import hid';
var n = generator.valueToCode(this, 'name', generator.ORDER_ATOMIC);
var code = 'hid.(name='+ n +')';
return [code, generator.ORDER_ATOMIC];
}
export const educore_ble_sensor_connected = function (_, generator) {
var version = Boards.getSelectedBoardKey().split(':')[2]
generator.definitions_['import_' + version + '_hid'] = 'from ' + version + ' import hid';
var sub = generator.valueToCode(this, 'SUB', generator.ORDER_ATOMIC);
var code = sub+'.isconnected()';
return [code, generator.ORDER_ATOMIC];
}
export const educore_ble_keyboard_input = function (_, generator) {
var version = Boards.getSelectedBoardKey().split(':')[2]
generator.definitions_['import_' + version + '_keycode'] = 'from ' + version + ' import keycode';
var ge = generator.valueToCode(this, 'general', generator.ORDER_ATOMIC);
var sub = generator.valueToCode(this, 'SUB', generator.ORDER_ATOMIC);
var code = sub+".keyboard_send("+ ge + ")\n";
return code;
}

View File

@@ -253,4 +253,49 @@ export const ce_go_pin_light = function (_, generator) {
}
var code = 'car.light()' + key + '';
return [code, generator.ORDER_ATOMIC];
}
//educore car
export const educore_car = function (_, generator) {
var version = Mixly.Boards.getSelectedBoardKey().split(':')[2]
generator.definitions_['import_'+version+'_car'] = 'from '+version+' import car';
var code = 'car()';
return [code, generator.ORDER_ATOMIC];
}
export const educore_car_stepper_keep = function (_, generator) {
var version = Mixly.Boards.getSelectedBoardKey().split(':')[2]
generator.definitions_['import_'+version+'_car'] = 'from '+version+' import car';
var car = generator.valueToCode(this, 'car', generator.ORDER_ASSIGNMENT);
var v = this.getFieldValue('VAR');
var speed = generator.valueToCode(this, 'speed', generator.ORDER_ASSIGNMENT);
var code = car+'.'+ v +'('+speed+")\n";
return code;
}
export const educore_car_stepper_stop = function (_, generator) {
var version = Mixly.Boards.getSelectedBoardKey().split(':')[2]
generator.definitions_['import_'+version+'_car'] = 'from '+version+' import car';
var car = generator.valueToCode(this, 'car', generator.ORDER_ASSIGNMENT);
var v = this.getFieldValue('VAR');
var code = car+'.'+ v +"()\n";
return code;
}
export const educore_car_pin_near_line = function (_, generator) {
var version = Mixly.Boards.getSelectedBoardKey().split(':')[2]
generator.definitions_['import_'+version+'_car'] = 'from '+version+' import car';
var car = generator.valueToCode(this, 'car', generator.ORDER_ASSIGNMENT);
var key = this.getFieldValue('key');
var code = car+'.get_itr_dnum(' + key + ')';
return [code, generator.ORDER_ATOMIC];
}
export const educore_car_pin_near = function (_, generator) {
var version = Mixly.Boards.getSelectedBoardKey().split(':')[2]
generator.definitions_['import_'+version+'_car'] = 'from '+version+' import car';
var car = generator.valueToCode(this, 'car', generator.ORDER_ASSIGNMENT);
var code = car+'.get_distance()';
return [code, generator.ORDER_ATOMIC];
}

View File

@@ -117,4 +117,3 @@ export const controls_typeLists = function (_, generator) {
// generator.definitions_['func_type' + type] = code;
return [type, generator.ORDER_ATOMIC];
}

View File

@@ -2,9 +2,14 @@ import { Boards } from 'mixly';
export const display_show_image = function (_, generator) {
var version = Boards.getSelectedBoardKey().split(':')[2];
generator.definitions_['import_' + version + '_onboard_matrix'] = "from " + version + " import onboard_matrix";
var data = generator.valueToCode(this, 'data', generator.ORDER_ASSIGNMENT);
var code = "onboard_matrix.shows(" + data + ")\n";
if (version == "educore"){
generator.definitions_['import_' + version + 'oled'] = "from " + version + " import oled";
var code = "oled.print(" + data + ")\n";
}else{
generator.definitions_['import_' + version + '_onboard_matrix'] = "from " + version + " import onboard_matrix";
var code = "onboard_matrix.shows(" + data + ")\n";
}
return code;
}

View File

@@ -257,3 +257,56 @@ export const requests_post = function (_, generator) {
};
export const educore_wifi_connect = function (_, generator) {
generator.definitions_['import_educore_wifi'] = "from educore import wifi";
var username = generator.valueToCode(this, 'WIFINAME', generator.ORDER_ATOMIC);
var password = generator.valueToCode(this, 'PASSWORD', generator.ORDER_ATOMIC);
var timeout = generator.valueToCode(this, 'TIMEOUT', generator.ORDER_ATOMIC);
var code = 'wifi.connect(ssid='+username+', psd='+password+', timeout='+timeout+')\n';
return code;
}
export const educore_mqtt_connect = function (_, generator) {
generator.definitions_['import_educore_mqttclient'] = "from educore import mqttclient";
var server = generator.valueToCode(this, 'SERVER', generator.ORDER_ATOMIC);
var port = generator.valueToCode(this, 'PORT', generator.ORDER_ATOMIC);
var client_id = generator.valueToCode(this, 'CLIENT_ID', generator.ORDER_ATOMIC);
var username = generator.valueToCode(this, 'USERNAME', generator.ORDER_ATOMIC);
var password = generator.valueToCode(this, 'PASSWORD', generator.ORDER_ATOMIC);
// var a = "'" + username.replace("'", "").replace("'", "") + "/" + project.replace("'", "").replace("'", "") + "/'"
// var code = 'MQTT_USR_PRJ = ' + a + '\n' + 'mqtt_client = mixiot.init_MQTT_client(' + server + ', ' + username + ', ' + password + ', MQTT_USR_PRJ)\n';
var code = 'mqttclient.connect(server='+server+', port='+port+',client_id='+client_id+',user='+username+',psd='+password+')\n'
return code;
}
export const educore_mqtt_subscribe_message = function (_, generator) {
generator.definitions_['import_educore_mqttclient'] = "from educore import mqttclient";
var topic = generator.valueToCode(this, 'TOPIC', generator.ORDER_ATOMIC);
var message = generator.valueToCode(this, 'MESSAGE', generator.ORDER_ATOMIC);
var code = 'mqttclient.'+message+'(' + topic + ')';
return [code, generator.ORDER_ATOMIC];
}
export const educore_mqtt_topic_subscribe = function (_, generator) {
var topic = generator.valueToCode(this, 'TOPIC', generator.ORDER_ATOMIC);
var method = generator.valueToCode(this, 'METHOD', generator.ORDER_ATOMIC);
generator.definitions_['import_educore_mqttclient'] = "from educore import mqttclient";
// var code = 'mqtt_client.set_callback(' + topic + ',' + method + ', MQTT_USR_PRJ)\n';
// code += 'mqtt_client.subscribe(MQTT_USR_PRJ + ' + topic + ')\n';
var code = 'mqttclient.received(topic='+topic+', callback='+method+')\n';
return code;
}
export const educore_mqtt_topic_publish = function (_, generator) {
generator.definitions_['import_educore_mqttclient'] = "from educore import mqttclient";
var topic = generator.valueToCode(this, 'TOPIC', generator.ORDER_ATOMIC);
var msg = generator.valueToCode(this, 'MSG', generator.ORDER_ATOMIC);
var code = 'mqtt_client.publish(topic=' + topic + ',content=' + msg + ')\n';
return code;
}
export const educore_mqtt_connect_success = function (_, generator) {
generator.definitions_['import_educore_mqttclient'] = "from educore import mqttclient";
var code = 'mqtt_client.connescted()';
return [code, generator.ORDER_ATOMIC];
}

View File

@@ -955,4 +955,90 @@ export const sensor_DS18X20 = function(_, generator){
var dropdown_pin = generator.valueToCode(this, 'PIN', generator.ORDER_ATOMIC);
var code ='DS18X20('+dropdown_pin+').temperature()';
return [code, generator.ORDER_ATOMIC];
};
};
//educore sensor_extern
export const educore_body_sensor = function (_, generator) {
generator.definitions_['import_educore_tsd'] = 'from educore import tsd';
var pin = generator.valueToCode(this, 'PIN', generator.ORDER_ATOMIC);
var code = 'tsd(' + pin + ')';
return [code, generator.ORDER_ATOMIC];
}
export const educore_soilhum_sensor = function (_, generator) {
generator.definitions_['import_educore_solihum'] = 'from educore import soilhum';
var pin = generator.valueToCode(this, 'PIN', generator.ORDER_ATOMIC);
var code = 'soilhum(' + pin + ')';
return [code, generator.ORDER_ATOMIC];
}
export const educore_temphum_sensor = function (_, generator) {
generator.definitions_['import_educore_dht'] = 'from educore import dht';
var pin = generator.valueToCode(this, 'PIN', generator.ORDER_ATOMIC);
var code = 'dht(' + pin + ')';
return [code, generator.ORDER_ATOMIC];
}
export const educore_infrared_sensor = function (_, generator) {
generator.definitions_['import_educore_tsd'] = 'from educore import tsd';
var pin = generator.valueToCode(this, 'PIN', generator.ORDER_ATOMIC);
var code = 'tsd(' + pin + ')';
return [code, generator.ORDER_ATOMIC];
}
export const educore_button_sensor_extern = function (_, generator) {
generator.definitions_['import_educore_button'] = 'from educore import button';
var pin = generator.valueToCode(this, 'PIN', generator.ORDER_ATOMIC);
var code = 'button(' + pin + ')';
return [code, generator.ORDER_ATOMIC];
}
export const sensor_read_humiture = function (_, generator) {
var sub = generator.valueToCode(this, 'SUB', generator.ORDER_ATOMIC);
var key = this.getFieldValue('key');
var code = sub+".read()["+key+"]";
return [code, generator.ORDER_ATOMIC];
}
export const educore_ultrasonic_sensor = function (_, generator) {
generator.definitions_['import_educore_ultrasonic'] = 'from educore import ultrasonic';
var pin = generator.valueToCode(this, 'PIN', generator.ORDER_ATOMIC);
var code = 'ultrasonic(' + pin + ')';
return [code, generator.ORDER_ATOMIC];
}
export const ultrasonic_sensor_read_distance = function (_, generator) {
generator.definitions_['import_educore_ultrasonic'] = 'from educore import ultrasonic';
var sub = generator.valueToCode(this, 'SUB', generator.ORDER_ATOMIC);
var code = sub+".diatance()";
return [code, generator.ORDER_ATOMIC];
}
export const educore_temp_sensor = function (_, generator) {
generator.definitions_['import_educore_ds18b20'] = 'from educore import ds18b20';
var pin = generator.valueToCode(this, 'PIN', generator.ORDER_ATOMIC);
var code = 'ds18b20(' + pin + ')';
return [code, generator.ORDER_ATOMIC];
}
export const educore_camera_sensor = function (_, generator) {
generator.definitions_['import_educore_smartcamera'] = 'from educore import smartcamera';
var pin = generator.valueToCode(this, 'PIN', generator.ORDER_ATOMIC);
var code = 'smartcamera(' + pin + ')';
return [code, generator.ORDER_ATOMIC];
}
export const camera_sensor_init = function (_, generator) {
generator.definitions_['import_educore_smartcamera'] = 'from educore import smartcamera';
var sub = generator.valueToCode(this, 'SUB', generator.ORDER_ATOMIC);
var key = this.getFieldValue('key');
var code = sub+'.init(' + key + ')';
return [code, generator.ORDER_ATOMIC];
}
export const camera_sensor_result = function (_, generator) {
generator.definitions_['import_educore_smartcamera'] = 'from educore import smartcamera';
var sub = generator.valueToCode(this, 'SUB', generator.ORDER_ATOMIC);
var code = sub+'.result()';
return [code, generator.ORDER_ATOMIC];
}

View File

@@ -769,4 +769,88 @@ export const sensor_pin_pressed = sensor_mixgo_pin_pressed;
export const sensor_pin_near = sensor_mixgo_pin_near;
export const sensor_mixgo_light = sensor_LTR308;
export const sensor_light = sensor_mixgo_light;
export const dht11 = sensor_dht11;
export const dht11 = sensor_dht11;
//educore onboard_sensor
export const educore_voice_sensor = function (_, generator) {
generator.definitions_['import_educore_sound'] = 'from educore import sound';
var code = "sound()";
return [code, generator.ORDER_ATOMIC];
}
export const sensor_read = function (_, generator) {
var sub = generator.valueToCode(this, 'SUB', generator.ORDER_ATOMIC);
var code = sub+".read()";
return [code, generator.ORDER_ATOMIC];
}
export const educore_light_sensor = function (_, generator) {
generator.definitions_['import_educore_light'] = 'from educore import light';
var code = "light()";
return [code, generator.ORDER_ATOMIC];
}
export const educore_gyroscope_sensor = function (_, generator) {
var version = Boards.getSelectedBoardKey().split(':')[2]
generator.definitions_['import_'+version+'_accelerometer'] = 'from '+version+' import accelerometer';
var code = "accelerometer()";
return [code, generator.ORDER_ATOMIC];
}
export const educore_gyroscope_sensor_read = function (_, generator) {
var version = Boards.getSelectedBoardKey().split(':')[2]
generator.definitions_['import_'+version+'_accelerometer'] = 'from '+version+' import accelerometer';
var sub = generator.valueToCode(this, 'SUB', generator.ORDER_ATOMIC);
var key = this.getFieldValue('key');
var code = sub+"."+key+"()";
return [code, generator.ORDER_ATOMIC];
}
export const educore_gyroscope_sensor_shake = function (_, generator) {
var version = Boards.getSelectedBoardKey().split(':')[2]
generator.definitions_['import_'+version+'_accelerometer'] = 'from '+version+' import accelerometer';
var sub = generator.valueToCode(this, 'SUB', generator.ORDER_ATOMIC);
var code = sub+".shake()";
return [code, generator.ORDER_ATOMIC];
}
export const educore_button_sensor = function (_, generator) {
var version = Boards.getSelectedBoardKey().split(':')[2]
generator.definitions_['import_' + version + '_button'] = 'from ' + version + ' import button';
var btn = this.getFieldValue('btn');
var code = 'button(button.'+btn+')';
return [code, generator.ORDER_ATOMIC];
}
export const educore_button_was_pressed = function (_, generator) {
var version = Boards.getSelectedBoardKey().split(':')[2]
generator.definitions_['import_' + version + '_button'] = 'from ' + version + ' import button';
var sub = generator.valueToCode(this, 'SUB', generator.ORDER_ATOMIC);
var code = sub + '.status()';
return [code, generator.ORDER_ATOMIC];
}
export const educore_rfid_sensor = function (_, generator) {
var version = Boards.getSelectedBoardKey().split(':')[2]
generator.definitions_['import_' + version + '_rfid'] = 'from ' + version + ' import rfid';
var pin = generator.valueToCode(this, 'PIN', generator.ORDER_ATOMIC);
var code = 'rfid(' + pin + ')';
return [code, generator.ORDER_ATOMIC];
}
export const educore_rfid_sensor_scan = function (_, generator) {
var version = Boards.getSelectedBoardKey().split(':')[2]
generator.definitions_['import_' + version + '_rfid'] = 'from ' + version + ' import rfid';
var sub = generator.valueToCode(this, 'SUB', generator.ORDER_ATOMIC);
var code = sub+'.scanning()';
return [code, generator.ORDER_ATOMIC];
}
export const educore_rfid_sensor_scan_data = function (_, generator) {
var version = Boards.getSelectedBoardKey().split(':')[2]
generator.definitions_['import_' + version + '_rfid'] = 'from ' + version + ' import rfid';
var sub = generator.valueToCode(this, 'SUB', generator.ORDER_ATOMIC);
var key = this.getFieldValue('key');
var code = sub+'.'+key+'()';
return [code, generator.ORDER_ATOMIC];
}