feat: sync micropython esp32 family source configs

This commit is contained in:
yczpf2019
2026-01-24 16:18:25 +08:00
parent c9195c03e1
commit d29ca27d44
1745 changed files with 72643 additions and 0 deletions

View File

@@ -0,0 +1,196 @@
import { Profile } from 'mixly';
const pins = {};
pins["元控自立SOWL"] = {
description: "MicroPython[ESP32C5 MixGo SOWL]",
digital_pin: Profile.generate(['0-14', '23-28']),
input_pin: Profile.generate(['0-14', '23-28']),
output_pin: Profile.generate(['0-14', '23-28']),
pwm_input: Profile.generate(['0-14', '23-28'], 'pwm', 'pwm'),
analog_input: Profile.generate(['1-6'], 'adc', 'adc'),
pwm_output: Profile.generate(['0-14', '23-28'], 'pwm', 'pwm'),
analog_output: Profile.generate(['1-6'], 'adc', 'adc'),
espnow_channel: Profile.generate(['1-13']),
haskylens_model: Profile.generate(['0-4']),
digital: Profile.generate(['0-14', '23-28'], 'pin', 'pin'),
pwm_pin: Profile.generate(['0-14', '23-28']),
pwm: Profile.generate(['0-14', '23-28'], 'pwm', 'pwm'),
analog_pin: Profile.generate(['1-6']),
analog: Profile.generate(['1-6'], 'adc', 'adc'),
touch: Profile.generate(['1-14'], 'tc', 'tc'),
touch_pin: Profile.generate(['1-14']),
button: [["B1", "B1key"], ["B2", "B2key"], ["A1", "A1key"], ["A2", "A2key"], ["A3", "A3key"], ["A4", "A4key"]],
buttonB: [["B1", "B1key"], ["B2", "B2key"]],
axis: Profile.generate(['0-4']),
exlcdh: Profile.generate(['0-15']),
exlcdv: Profile.generate(['0-7']),
brightness: Profile.generate(['0-9']),
tts_voice: Profile.generate(['0-16']),
tts_builtin_music: Profile.generate(['0-47']),
tts_bgmusic: Profile.generate(['0-15']),
builtinimg: [
["Heart", "expression_picture.Heart"],
["Angry", "expression_picture.Angry"],
["Bored", "expression_picture.Bored"],
["Confused", "expression_picture.Confused"],
["Happy", "expression_picture.Happy"],
["Paper", "expression_picture.Paper"],
["Rock", "expression_picture.Rock"],
["Sad", "expression_picture.Sad"],
["Scissors", "expression_picture.Scissors"],
["Silly", "expression_picture.Silly"],
["Sleep", "expression_picture.Sleep"],
["Small_heart", "expression_picture.Small_heart"],
["Small_paper", "expression_picture.Small_paper"],
["Small_rock", "expression_picture.Small_rock"],
["Small_scissors", "expression_picture.Small_scissors"],
["Smile", "expression_picture.Smile"],
["Surprise", "expression_picture.Surprise"],
["Wonderful", "expression_picture.Wonderful"],
["Eyes_Angry", "eye_picture.Eyes_Angry"],
["Awake", "eye_picture.Awake"],
["Black_eye", "eye_picture.Black_eye"],
["Bottom_left", "eye_picture.Bottom_left"],
["Bottom_right", "eye_picture.Bottom_right"],
["Crazy_1", "eye_picture.Crazy_1"],
["Crazy_2", "eye_picture.Crazy_2"],
["Disappointed", "eye_picture.Disappointed"],
["Dizzy", "eye_picture.Dizzy"],
["Down", "eye_picture.Down"],
["Evil", "eye_picture.Evil"],
["Hurt", "eye_picture.Hurt"],
["Knocked_out", "eye_picture.Knocked_out"],
["Love", "eye_picture.Love"],
["Middle_left", "eye_picture.Middle_left"],
["Middle_right", "eye_picture.Middle_right"],
["Neutral", "eye_picture.Neutral"],
["Nuclear", "eye_picture.Nuclear"],
["Pinch_left", "eye_picture.Pinch_left"],
["Pinch_middle", "eye_picture.Pinch_middle"],
["Pinch_right", "eye_picture.Pinch_right"],
["Tear", "eye_picture.Tear"],
["Tired_left", "eye_picture.Tired_left"],
["Tired_middle", "eye_picture.Tired_middle"],
["Tired_right", "eye_picture.Tired_right"],
["Toxic", "eye_picture.Toxic"],
["Up", "eye_picture.Up"],
["Winking", "eye_picture.Winking"],
["Accept", "informatio_picture.Accept"],
["Backward", "informatio_picture.Backward"],
["Decline", "informatio_picture.Decline"],
["Forward", "informatio_picture.Forward"],
["Left", "informatio_picture.Left"],
["No_go", "informatio_picture.No_go"],
["Question_mark", "informatio_picture.Question_mark"],
["Right", "informatio_picture.Right"],
["Stop_1", "informatio_picture.Stop_1"],
["Stop_2", "informatio_picture.Stop_2"],
["Thumbs_down", "informatio_picture.Thumbs_down"],
["Thumbs_up", "informatio_picture.Thumbs_up"],
["Warning", "informatio_picture.Warning"],
["Bomb", "object_picture.Bomb"],
["Boom", "object_picture.Boom"],
["DOOR_CLOSE", "object_picture.DOOR_CLOSE"],
["DOOR_OPEN", "object_picture.DOOR_OPEN"],
["DOOR_OPENING", "object_picture.DOOR_OPENING"],
["Fire", "object_picture.Fire"],
["Flowers", "object_picture.Flowers"],
["Forest", "object_picture.Forest"],
["Lightning", "object_picture.Lightning"],
["Light_off", "object_picture.Light_off"],
["Light_on", "object_picture.Light_on"],
["Night", "object_picture.Night"],
["Pirate", "object_picture.Pirate"],
["Snow", "object_picture.Snow"],
["Target", "object_picture.Target"],
["Bar_0", "progres_picture.Bar_0"],
["Bar_1", "progres_picture.Bar_1"],
["Bar_2", "progres_picture.Bar_2"],
["Bar_3", "progres_picture.Bar_3"],
["Bar_4", "progres_picture.Bar_4"],
["Dial_0", "progres_picture.Dial_0"],
["Dial_1", "progres_picture.Dial_1"],
["Dial_2", "progres_picture.Dial_2"],
["Dial_3", "progres_picture.Dial_3"],
["Dial_4", "progres_picture.Dial_4"],
["Dots_0", "progres_picture.Dots_0"],
["Dots_1", "progres_picture.Dots_1"],
["Dots_2", "progres_picture.Dots_2"],
["Dots_3", "progres_picture.Dots_3"],
["Hourglass_0", "progres_picture.Hourglass_0"],
["Hourglass_1", "progres_picture.Hourglass_1"],
["Hourglass_2", "progres_picture.Hourglass_2"],
["Timer_0", "progres_picture.Timer_0"],
["Timer_1", "progres_picture.Timer_1"],
["Timer_2", "progres_picture.Timer_2"],
["Timer_3", "progres_picture.Timer_3"],
["Timer_4", "progres_picture.Timer_4"],
["Water_level_0", "progres_picture.Water_level_0"],
["Water_level_1", "progres_picture.Water_level_1"],
["Water_level_2", "progres_picture.Water_level_2"],
["Water_level_3", "progres_picture.Water_level_3"],
["YES", "informatio_picture.YES"],
["NO", "informatio_picture.NO"]
],
builtinimg_extern: [["HEART", "matrix32x12.Matrix.HEART"], ["HEART_SMALL", "matrix32x12.Matrix.HEART_SMALL"], ["HAPPY", "matrix32x12.Matrix.HAPPY"], ["SAD", "matrix32x12.Matrix.SAD"], ["SMILE", "matrix32x12.Matrix.SMILE"], ["SILLY", "matrix32x12.Matrix.SILLY"], ["FABULOUS", "matrix32x12.Matrix.FABULOUS"], ["SURPRISED", "matrix32x12.Matrix.SURPRISED"], ["ASLEEP", "matrix32x12.Matrix.ASLEEP"], ["ANGRY", "matrix32x12.Matrix.ANGRY"], ["CONFUSED", "matrix32x12.Matrix.CONFUSED"], ["NO", "matrix32x12.Matrix.NO"], ["YES", "matrix32x12.Matrix.YES"], ["LEFT_ARROW", "matrix32x12.Matrix.LEFT_ARROW"], ["RIGHT_ARROW", "matrix32x12.Matrix.RIGHT_ARROW"], ["DRESS", "matrix32x12.Matrix.DRESS"], ["TRANSFORMERS", "matrix32x12.Matrix.TRANSFORMERS"], ["SCISSORS", "matrix32x12.Matrix.SCISSORS"], ["EXIT", "matrix32x12.Matrix.EXIT"], ["TREE", "matrix32x12.Matrix.TREE"], ["PACMAN", "matrix32x12.Matrix.PACMAN"], ["TARGET", "matrix32x12.Matrix.TARGET"], ["TSHIRT", "matrix32x12.Matrix.TSHIRT"], ["ROLLERSKATE", "matrix32x12.Matrix.ROLLERSKATE"], ["DUCK", "matrix32x12.Matrix.DUCK"], ["HOUSE", "matrix32x12.Matrix.HOUSE"], ["TORTOISE", "matrix32x12.Matrix.TORTOISE"], ["BUTTERFLY", "matrix32x12.Matrix.BUTTERFLY"], ["STICKFIGURE", "matrix32x12.Matrix.STICKFIGURE"], ["GHOST", "matrix32x12.Matrix.GHOST"], ["PITCHFORK", "matrix32x12.Matrix.PITCHFORK"], ["onboard_music_QUAVERS", "matrix32x12.Matrix.onboard_music_QUAVERS"], ["onboard_music_QUAVER", "matrix32x12.Matrix.onboard_music_QUAVER"], ["onboard_music_CROTCHET", "matrix32x12.Matrix.onboard_music_CROTCHET"], ["COW", "matrix32x12.Matrix.COW"], ["RABBIT", "matrix32x12.Matrix.RABBIT"], ["SQUARE_SMALL", "matrix32x12.Matrix.SQUARE_SMALL"], ["SQUARE", "matrix32x12.Matrix.SQUARE"], ["DIAMOND_SMALL", "matrix32x12.Matrix.DIAMOND_SMALL"], ["DIAMOND", "matrix32x12.Matrix.DIAMOND"], ["CHESSBOARD", "matrix32x12.Matrix.CHESSBOARD"], ["TRIANGLE_LEFT", "matrix32x12.Matrix.TRIANGLE_LEFT"], ["TRIANGLE", "matrix32x12.Matrix.TRIANGLE"], ["SNAKE", "matrix32x12.Matrix.SNAKE"], ["UMBRELLA", "matrix32x12.Matrix.UMBRELLA"], ["SKULL", "matrix32x12.Matrix.SKULL"], ["GIRAFFE", "matrix32x12.Matrix.GIRAFFE"], ["SWORD", "matrix32x12.Matrix.SWORD"]],
imglist: [["ALL_CLOCKS", "matrix.Image.ALL_CLOCKS"], ["ALL_ARROWS", "matrix.Image.ALL_ARROWS"]],
playlist: [["DADADADUM", "onboard_music.DADADADUM"], ["ENTERTAINER", "onboard_music.ENTERTAINER"], ["PRELUDE", "onboard_music.PRELUDE"], ["ODE", "onboard_music.ODE"], ["NYAN", "onboard_music.NYAN"], ["RINGTONE", "onboard_music.RINGTONE"], ["FUNK", "onboard_music.FUNK"], ["BLUES", "onboard_music.BLUES"], ["BIRTHDAY", "onboard_music.BIRTHDAY"], ["WEDDING", "onboard_music.WEDDING"], ["FUNERAL", "onboard_music.FUNERAL"], ["PUNCHLINE", "onboard_music.PUNCHLINE"], ["PYTHON", "onboard_music.PYTHON"], ["BADDY", "onboard_music.BADDY"], ["CHASE", "onboard_music.CHASE"], ["BA_DING", "onboard_music.BA_DING"], ["WAWAWAWAA", "onboard_music.WAWAWAWAA"], ["JUMP_UP", "onboard_music.JUMP_UP"], ["JUMP_DOWN", "onboard_music.JUMP_DOWN"], ["POWER_UP", "onboard_music.POWER_UP"], ["POWER_DOWN", "onboard_music.POWER_DOWN"]],
playlist_extern: [["DADADADUM", "DADADADUM"], ["ENTERTAINER", "ENTERTAINER"], ["PRELUDE", "PRELUDE"], ["ODE", "ODE"], ["NYAN", "NYAN"], ["RINGTONE", "RINGTONE"], ["FUNK", "FUNK"], ["BLUES", "BLUES"], ["BIRTHDAY", "BIRTHDAY"], ["WEDDING", "WEDDING"], ["FUNERAL", "FUNERAL"], ["PUNCHLINE", "PUNCHLINE"], ["PYTHON", "PYTHON"], ["BADDY", "BADDY"], ["CHASE", "CHASE"], ["BA_DING", "BA_DING"], ["WAWAWAWAA", "WAWAWAWAA"], ["JUMP_UP", "JUMP_UP"], ["JUMP_DOWN", "JUMP_DOWN"], ["POWER_UP", "POWER_UP"], ["POWER_DOWN", "POWER_DOWN"]],
tone_notes: [
["NOTE_C3", "131"], ["NOTE_D3", "147"], ["NOTE_E3", "165"], ["NOTE_F3", "175"], ["NOTE_G3", "196"], ["NOTE_A3", "220"], ["NOTE_B3", "247"],
["NOTE_C4", "262"], ["NOTE_D4", "294"], ["NOTE_E4", "330"], ["NOTE_F4", "349"], ["NOTE_G4", "392"], ["NOTE_A4", "440"], ["NOTE_B4", "494"],
["NOTE_C5", "523"], ["NOTE_D5", "587"], ["NOTE_E5", "659"], ["NOTE_F5", "698"], ["NOTE_G5", "784"], ["NOTE_A5", "880"], ["NOTE_B5", "988"]
],
serial_pin: [["pin0", "0"], ["pin1", "1"], ["pin2", "2"], ["pin8", "8"], ["pin12", "12"], ["pin13", "13"], ["pin14", "14"], ["pin15", "15"], ["pin16", "16"]],
radio_power: [['0', '0'], ['1', '1'], ['2', '2'], ['3', '3'], ['4', '4'], ['5', '5'], ['6', '6'], ['7', '7']],
radio_datarate: [["1Mbit", "RATE_1MBIT"], ["250Kbit", "RATE_250KBIT"], ["2Mbit", "RATE_2MBIT"]],
one_more: [["ONE_SHOT", "ONE_SHOT"], ["PERIODIC", "PERIODIC"]],
digital_dot: [["0", "0"], ["1", "1"], ["2", "2"]],
};
pins["ESP32C5 Generic"] = {
description: "MicroPython[ESP32C5 Generic]",
digital_pin: Profile.generate(['0-14', '23-28']),
input_pin: Profile.generate(['0-14', '23-28']),
output_pin: Profile.generate(['0-14', '23-28']),
pwm_input: Profile.generate(['0-14', '23-28'], 'pwm', 'pwm'),
analog_input: Profile.generate(['1-6'], 'adc', 'adc'),
pwm_output: Profile.generate(['0-14', '23-28'], 'pwm', 'pwm'),
analog_output: Profile.generate(['1-6'], 'adc', 'adc'),
espnow_channel: Profile.generate(['1-13']),
haskylens_model: Profile.generate(['0-4']),
digital: Profile.generate(['0-14', '23-28'], 'pin', 'pin'),
pwm_pin: Profile.generate(['0-14', '23-28']),
pwm: Profile.generate(['0-14', '23-28'], 'pwm', 'pwm'),
analog_pin: Profile.generate(['1-6']),
analog: Profile.generate(['1-6'], 'adc', 'adc'),
touch: Profile.generate(['1-14'], 'tc', 'tc'),
touch_pin: Profile.generate(['1-14']),
button: [["B1", "B1key"], ["B2", "B2key"], ["A1", "A1key"], ["A2", "A2key"], ["A3", "A3key"], ["A4", "A4key"]],
buttonB: [["B1", "B1key"], ["B2", "B2key"]],
axis: Profile.generate(['0-4']),
exlcdh: Profile.generate(['0-15']),
exlcdv: Profile.generate(['0-7']),
brightness: Profile.generate(['0-9']),
tts_voice: Profile.generate(['0-16']),
tts_builtin_music: Profile.generate(['0-47']),
tts_bgmusic: Profile.generate(['0-15']),
builtinimg: pins["元控自立SOWL"].builtinimg,
builtinimg_extern: [["HEART", "matrix32x12.Matrix.HEART"], ["HEART_SMALL", "matrix32x12.Matrix.HEART_SMALL"], ["HAPPY", "matrix32x12.Matrix.HAPPY"], ["SAD", "matrix32x12.Matrix.SAD"], ["SMILE", "matrix32x12.Matrix.SMILE"], ["SILLY", "matrix32x12.Matrix.SILLY"], ["FABULOUS", "matrix32x12.Matrix.FABULOUS"], ["SURPRISED", "matrix32x12.Matrix.SURPRISED"], ["ASLEEP", "matrix32x12.Matrix.ASLEEP"], ["ANGRY", "matrix32x12.Matrix.ANGRY"], ["CONFUSED", "matrix32x12.Matrix.CONFUSED"], ["NO", "matrix32x12.Matrix.NO"], ["YES", "matrix32x12.Matrix.YES"], ["LEFT_ARROW", "matrix32x12.Matrix.LEFT_ARROW"], ["RIGHT_ARROW", "matrix32x12.Matrix.RIGHT_ARROW"], ["DRESS", "matrix32x12.Matrix.DRESS"], ["TRANSFORMERS", "matrix32x12.Matrix.TRANSFORMERS"], ["SCISSORS", "matrix32x12.Matrix.SCISSORS"], ["EXIT", "matrix32x12.Matrix.EXIT"], ["TREE", "matrix32x12.Matrix.TREE"], ["PACMAN", "matrix32x12.Matrix.PACMAN"], ["TARGET", "matrix32x12.Matrix.TARGET"], ["TSHIRT", "matrix32x12.Matrix.TSHIRT"], ["ROLLERSKATE", "matrix32x12.Matrix.ROLLERSKATE"], ["DUCK", "matrix32x12.Matrix.DUCK"], ["HOUSE", "matrix32x12.Matrix.HOUSE"], ["TORTOISE", "matrix32x12.Matrix.TORTOISE"], ["BUTTERFLY", "matrix32x12.Matrix.BUTTERFLY"], ["STICKFIGURE", "matrix32x12.Matrix.STICKFIGURE"], ["GHOST", "matrix32x12.Matrix.GHOST"], ["PITCHFORK", "matrix32x12.Matrix.PITCHFORK"], ["onboard_music_QUAVERS", "matrix32x12.Matrix.onboard_music_QUAVERS"], ["onboard_music_QUAVER", "matrix32x12.Matrix.onboard_music_QUAVER"], ["onboard_music_CROTCHET", "matrix32x12.Matrix.onboard_music_CROTCHET"], ["COW", "matrix32x12.Matrix.COW"], ["RABBIT", "matrix32x12.Matrix.RABBIT"], ["SQUARE_SMALL", "matrix32x12.Matrix.SQUARE_SMALL"], ["SQUARE", "matrix32x12.Matrix.SQUARE"], ["DIAMOND_SMALL", "matrix32x12.Matrix.DIAMOND_SMALL"], ["DIAMOND", "matrix32x12.Matrix.DIAMOND"], ["CHESSBOARD", "matrix32x12.Matrix.CHESSBOARD"], ["TRIANGLE_LEFT", "matrix32x12.Matrix.TRIANGLE_LEFT"], ["TRIANGLE", "matrix32x12.Matrix.TRIANGLE"], ["SNAKE", "matrix32x12.Matrix.SNAKE"], ["UMBRELLA", "matrix32x12.Matrix.UMBRELLA"], ["SKULL", "matrix32x12.Matrix.SKULL"], ["GIRAFFE", "matrix32x12.Matrix.GIRAFFE"], ["SWORD", "matrix32x12.Matrix.SWORD"]],
imglist: [["ALL_CLOCKS", "matrix.Image.ALL_CLOCKS"], ["ALL_ARROWS", "matrix.Image.ALL_ARROWS"]],
playlist: [["DADADADUM", ".DADADADUM"], ["ENTERTAINER", ".ENTERTAINER"], ["PRELUDE", ".PRELUDE"], ["ODE", ".ODE"], ["NYAN", ".NYAN"], ["RINGTONE", ".RINGTONE"], ["FUNK", ".FUNK"], ["BLUES", ".BLUES"], ["BIRTHDAY", ".BIRTHDAY"], ["WEDDING", ".WEDDING"], ["FUNERAL", ".FUNERAL"], ["PUNCHLINE", ".PUNCHLINE"], ["PYTHON", ".PYTHON"], ["BADDY", ".BADDY"], ["CHASE", ".CHASE"], ["BA_DING", ".BA_DING"], ["WAWAWAWAA", ".WAWAWAWAA"], ["JUMP_UP", ".JUMP_UP"], ["JUMP_DOWN", ".JUMP_DOWN"], ["POWER_UP", ".POWER_UP"], ["POWER_DOWN", ".POWER_DOWN"]],
playlist_extern: [["DADADADUM", "DADADADUM"], ["ENTERTAINER", "ENTERTAINER"], ["PRELUDE", "PRELUDE"], ["ODE", "ODE"], ["NYAN", "NYAN"], ["RINGTONE", "RINGTONE"], ["FUNK", "FUNK"], ["BLUES", "BLUES"], ["BIRTHDAY", "BIRTHDAY"], ["WEDDING", "WEDDING"], ["FUNERAL", "FUNERAL"], ["PUNCHLINE", "PUNCHLINE"], ["PYTHON", "PYTHON"], ["BADDY", "BADDY"], ["CHASE", "CHASE"], ["BA_DING", "BA_DING"], ["WAWAWAWAA", "WAWAWAWAA"], ["JUMP_UP", "JUMP_UP"], ["JUMP_DOWN", "JUMP_DOWN"], ["POWER_UP", "POWER_UP"], ["POWER_DOWN", "POWER_DOWN"]],
tone_notes: [
["NOTE_C3", "131"], ["NOTE_D3", "147"], ["NOTE_E3", "165"], ["NOTE_F3", "175"], ["NOTE_G3", "196"], ["NOTE_A3", "220"], ["NOTE_B3", "247"],
["NOTE_C4", "262"], ["NOTE_D4", "294"], ["NOTE_E4", "330"], ["NOTE_F4", "349"], ["NOTE_G4", "392"], ["NOTE_A4", "440"], ["NOTE_B4", "494"],
["NOTE_C5", "523"], ["NOTE_D5", "587"], ["NOTE_E5", "659"], ["NOTE_F5", "698"], ["NOTE_G5", "784"], ["NOTE_A5", "880"], ["NOTE_B5", "988"]
],
serial_pin: [["pin0", "0"], ["pin1", "1"], ["pin2", "2"], ["pin8", "8"], ["pin12", "12"], ["pin13", "13"], ["pin14", "14"], ["pin15", "15"], ["pin16", "16"]],
radio_power: [['0', '0'], ['1', '1'], ['2', '2'], ['3', '3'], ['4', '4'], ['5', '5'], ['6', '6'], ['7', '7']],
radio_datarate: [["1Mbit", "RATE_1MBIT"], ["250Kbit", "RATE_250KBIT"], ["2Mbit", "RATE_2MBIT"]],
one_more: [["ONE_SHOT", "ONE_SHOT"], ["PERIODIC", "PERIODIC"]],
digital_dot: [["0", "0"], ["1", "1"], ["2", "2"]],
};
export default pins;

View File

@@ -0,0 +1,259 @@
import * as Blockly from 'blockly/core';
const BASE_HUE = 20; //'#ae3838';//40;
export const inout_highlow = {
init: function () {
this.setColour(BASE_HUE);
this.appendDummyInput("")
.appendField(new Blockly.FieldDropdown([[Blockly.Msg.MIXLY_HIGH, "HIGH"], [Blockly.Msg.MIXLY_LOW, "LOW"]]), 'BOOL')
this.setOutput(true, Boolean);
this.setTooltip(Blockly.Msg.MIXLY_ESP32_INOUT_HIGHLOW_TOOLTIP);
}
};
export const inout_digital_write = {
init: function () {
this.setColour(BASE_HUE);
this.appendValueInput("PIN", Number)
.appendField(Blockly.Msg.MIXLY_Digital_PINMODEOUT)
.setCheck(Number);
this.appendValueInput("STAT")
.appendField(Blockly.Msg.MIXLY_STAT)
.setCheck([Number, Boolean]);
this.setPreviousStatement(true, null);
this.setNextStatement(true, null);
this.setInputsInline(true);
this.setTooltip(Blockly.Msg.MIXLY_ESP32_INOUT_DIGITAL_WRITE_TOOLTIP);
}
};
export const inout_digital_read = {
init: function () {
this.setColour(BASE_HUE);
this.appendValueInput("PIN", Number)
.appendField(Blockly.Msg.MIXLY_MICROBIT_PY_STORAGE_GET)
.appendField(Blockly.Msg.MIXLY_Digital_PINMODEIN)
.setCheck(Number);
this.appendDummyInput()
.appendField(Blockly.Msg.MIXLY_ESP32_MACHINE_VALUE)
this.setInputsInline(true);
this.setOutput(true, [Boolean, Number]);
this.setTooltip(Blockly.Msg.MIXLY_ESP32_INOUT_DIGITAL_READ_TOOLTIP);
}
};
export const inout_analog_write = {
init: function () {
this.setColour(BASE_HUE);
this.appendValueInput("PIN", Number)
.appendField("DAC" + Blockly.Msg.MIXLY_Analog_PINMODEOUT)
.setCheck(Number);
this.appendValueInput("NUM", Number)
.appendField(Blockly.Msg.MIXLY_VALUE2)
.setCheck(Number);
this.setInputsInline(true);
this.setPreviousStatement(true, null);
this.setNextStatement(true, null);
this.setTooltip(Blockly.Msg.MIXLY_ESP32_INOUT_ANALOG_WRITE_TOOLTIP);
}
};
export const inout_analog_write_set = {
init: function () {
this.setColour(BASE_HUE);
this.appendValueInput("PIN", Number)
.appendField(Blockly.Msg.MIXLY_Analog_PINMODEOUT)
.setCheck(Number);
this.appendDummyInput()
.appendField(Blockly.Msg.MIXLY_MICROBIT_JS_PERIOD_MIL)
.appendField(new Blockly.FieldDropdown([
[Blockly.Msg.MIXLY_mSecond, "period"],
[Blockly.Msg.MIXLY_uSecond, "period_microseconds"]
]), "key");
this.appendValueInput("NUM", Number)
.appendField(Blockly.Msg.MIXLY_STAT)
.setCheck(Number);
this.setInputsInline(true);
this.setPreviousStatement(true, null);
this.setNextStatement(true, null);
this.setTooltip(Blockly.Msg.MIXLY_ESP32_INOUT_ANALOG_WRITE_SET_TOOLTIP);
}
};
export const inout_analog_atten = {
init: function () {
this.setColour(BASE_HUE);
this.appendValueInput("PIN", Number)
.appendField(Blockly.Msg.MIXLY_Analog_PINMODEIN)
.setCheck(Number);
this.appendDummyInput("")
.appendField(Blockly.Msg.MIXLY_ESP32_REF_VOLTAGE + Blockly.Msg.MIXLY_STAT)
.appendField(new Blockly.FieldDropdown([
["3.3V", "machine.ADC.ATTN_11DB"],
["2.2V", "machine.ADC.ATTN_6DB"],
["1.5V", "machine.ADC.ATTN_2_5DB"],
["1.2V", "machine.ADC.ATTN_0DB"]
]), "atten");
this.setInputsInline(true);
this.setPreviousStatement(true, null);
this.setNextStatement(true, null);
this.setTooltip(Blockly.Msg.MIXLY_ESP32_INOUT_ANALOG_ATTEN_TOOLTIP);
}
};
export const inout_pin_pressed = {
init: function () {
this.setColour(BASE_HUE);
this.appendValueInput('pin')
.appendField(Blockly.Msg.MIXLY_MICROBIT_PY_STORAGE_GET)
.appendField(Blockly.Msg.MIXLY_ESP32_TOUCH_SENSOR);
// this.appendDummyInput()
// .appendField(Blockly.Msg.MIXLY_IS_TOUCHED);
this.appendDummyInput()
.appendField(Blockly.Msg.MIXLY_ESP32_MACHINE_VALUE)
this.setOutput(true, Number);
this.setInputsInline(true);
this.setTooltip(Blockly.Msg.MIXLY_ESP32_INOUT_PIN_PRESSED_TOOLTIP);
}
};
export const inout_pin_attachInterrupt = {
init: function () {
this.setColour(20);
this.appendValueInput("PIN", Number)
.appendField(Blockly.Msg.MIXLY_ATTACHINTERRUPT_PIN)
.setCheck(Number);
this.appendDummyInput("")
.appendField(Blockly.Msg.MIXLY_MODE)
.appendField(new Blockly.FieldDropdown([[Blockly.Msg.MIXLY_RISING, "machine.Pin.IRQ_RISING"], [Blockly.Msg.MIXLY_FALLING, "machine.Pin.IRQ_FALLING"], [Blockly.Msg.MIXLY_CHANGE, "(machine.Pin.IRQ_RISING | machine.Pin.IRQ_FALLING)"]]), "mode");
this.appendValueInput('DO')
.appendField(Blockly.Msg.MIXLY_DO)
this.setPreviousStatement(true);
this.setNextStatement(true);
this.setTooltip(Blockly.Msg.MIXLY_ESP32_INOUT_PIN_ATTACHINTERRUPT_TOOLTIP);
}
};
export const inout_digital_init = {
init: function () {
this.setColour(20);
this.appendDummyInput()
.appendField(Blockly.Msg.MIXLY_SETUP)
.appendField(new Blockly.FieldTextInput('pin#'), 'PIN_OBJ');
this.appendDummyInput("")
.appendField(Blockly.Msg.MIXLY_MICROPYTHON_AS)
// .appendField(Blockly.Msg.MIXLY_MICROBIT_PY_STORAGE_MODE+Blockly.Msg.LISTS_SET_INDEX_INPUT_TO)
.appendField(new Blockly.FieldDropdown([
[Blockly.Msg.MIXLY_Digital_PINMODEOUT, "machine.Pin.OUT"],
[Blockly.Msg.MIXLY_Digital_PINMODEIN, "machine.Pin.IN"],
[Blockly.Msg.MIXLY_PINMODEPULLUP, "machine.Pin.IN, machine.Pin.PULL_UP"],
[Blockly.Msg.MIXLY_PINMODEPULLDOWN, "machine.Pin.IN, machine.Pin.PULL_DOWN"]
]), "MODE")
this.appendValueInput("PIN", Number)
.appendField(Blockly.Msg.MIXLY_PIN)
.setCheck(Number);
this.setPreviousStatement(true, null);
this.setNextStatement(true, null);
this.setInputsInline(true);
this.setTooltip(Blockly.Msg.MIXLY_ESP32_INOUT_DIGITAL_INIT_TOOLTIP);
},
getVars: function () {
return [this.getFieldValue('PIN_OBJ') == 'pin#' ? null : this.getFieldValue('PIN_OBJ')];
},
renameVar: function (oldName, newName) {
if (Blockly.Names.equals(oldName, this.getFieldValue('PIN_OBJ'))) {
this.setTitleValue(newName, 'PIN_OBJ');
}
}
};
export const inout_analog_write_init = {
init: function () {
this.setColour(BASE_HUE);
// this.appendValueInput("PIN", Number)
// .appendField(Blockly.Msg.MIXLY_SETUP)
// .appendField("PWM"+Blockly.Msg.MIXLY_Analog_PINMODEOUT)
// .appendField('pwm')
// .setCheck(Number);
this.appendDummyInput("")
.appendField(Blockly.Msg.MIXLY_SETUP)
.appendField(new Blockly.FieldTextInput('dac#'), 'PIN_OBJ')
.appendField(Blockly.Msg.MIXLY_MICROPYTHON_AS)
this.appendDummyInput("")
.appendField("DAC" + Blockly.Msg.MIXLY_Analog_PINMODEOUT)
// .appendField('dac')
// .appendField(new Blockly.FieldDropdown(profile.default.dac_pin),"PIN")
this.appendValueInput("PIN", Number)
.appendField(Blockly.Msg.MIXLY_PIN)
.setCheck(Number);
this.setInputsInline(true);
this.setPreviousStatement(true, null);
this.setNextStatement(true, null);
this.setTooltip(Blockly.Msg.MIXLY_ESP32_INOUT_ANALOG_WRITE_INIT_TOOLTIP);
},
getVars: function () {
return [this.getFieldValue('PIN_OBJ') == 'dac#' ? null : this.getFieldValue('PIN_OBJ')];
},
renameVar: function (oldName, newName) {
if (Blockly.Names.equals(oldName, this.getFieldValue('PIN_OBJ'))) {
this.setTitleValue(newName, 'PIN_OBJ');
}
}
};
export const inout_pin_pressed_init = {
init: function () {
this.setColour(BASE_HUE);
// this.appendValueInput("PIN", Number)
// .appendField(Blockly.Msg.MIXLY_SETUP)
// .appendField("PWM"+Blockly.Msg.MIXLY_Analog_PINMODEOUT)
// .appendField('pwm')
// .setCheck(Number);
this.appendDummyInput("")
.appendField(Blockly.Msg.MIXLY_SETUP)
.appendField(new Blockly.FieldTextInput('tc#'), 'PIN_OBJ')
.appendField(Blockly.Msg.MIXLY_MICROPYTHON_AS)
this.appendDummyInput("")
.appendField(Blockly.Msg.MIXLY_ESP32_TOUCH_SENSOR)
// .appendField('tc')
// .appendField(new Blockly.FieldDropdown(profile.default.tc_pin),"PIN")
this.appendValueInput("PIN", Number)
.appendField(Blockly.Msg.MIXLY_PIN)
.setCheck(Number);
this.setInputsInline(true);
this.setPreviousStatement(true, null);
this.setNextStatement(true, null);
this.setTooltip(Blockly.Msg.MIXLY_ESP32_INOUT_PIN_PRESSED_INIT_TOOLTIP);
},
getVars: function () {
return [this.getFieldValue('PIN_OBJ') == 'tc#' ? null : this.getFieldValue('PIN_OBJ')];
},
renameVar: function (oldName, newName) {
if (Blockly.Names.equals(oldName, this.getFieldValue('PIN_OBJ'))) {
this.setTitleValue(newName, 'PIN_OBJ');
}
}
};
export const inout_analog_write_set_freq = {
init: function () {
this.setColour(BASE_HUE);
this.appendValueInput("PIN", Number)
.appendField("PWM" + Blockly.Msg.MIXLY_Analog_PINMODEOUT)
.setCheck(Number);
this.appendValueInput("NUM", Number)
.appendField(Blockly.Msg.MIXLY_FREQUENCY + Blockly.Msg.MIXLY_STAT)
.setCheck(Number);
this.setInputsInline(true);
this.setPreviousStatement(true, null);
this.setNextStatement(true, null);
this.setTooltip(Blockly.Msg.MIXLY_ESP32_INOUT_PWM_ANALOG_WRITE_SET_FREQ_TOOLTIP);
}
};
export const inout_pinMode = inout_digital_init;
export const pin_pressed_init = inout_pin_pressed_init;
export const pin_pressed = inout_pin_pressed;
export const controls_pin_attachInterrupt = inout_pin_attachInterrupt;

View File

@@ -0,0 +1,415 @@
import * as Blockly from 'blockly/core';
import { Profile } from 'mixly';
const PINS_HUE = 230;
export const pins_digital = {
init: function () {
this.setColour(PINS_HUE);
this.appendDummyInput("")
.appendField(new Blockly.FieldDropdown(Profile.default.digital), 'PIN');
this.setOutput(true);
}
};
export const pins_digital_pin = {
init: function () {
this.setColour(PINS_HUE);
this.appendDummyInput("")
.appendField(new Blockly.FieldDropdown(Profile.default.digital_pin), 'PIN');
this.setOutput(true, Number);
}
};
export const pins_input_pin = {
init: function () {
this.setColour(PINS_HUE);
this.appendDummyInput("")
.appendField(new Blockly.FieldDropdown(Profile.default.input_pin), 'PIN');
this.setOutput(true, Number);
}
};
export const pins_output_pin = {
init: function () {
this.setColour(PINS_HUE);
this.appendDummyInput("")
.appendField(new Blockly.FieldDropdown(Profile.default.output_pin), 'PIN');
this.setOutput(true, Number);
}
};
export const espnow_channel = {
init: function () {
this.setColour(PINS_HUE);
this.appendDummyInput("")
.appendField(new Blockly.FieldDropdown(Profile.default.espnow_channel), 'PIN');
this.setOutput(true, Number);
}
};
export const haskylens_model = {
init: function () {
this.setColour(PINS_HUE);
this.appendDummyInput("")
.appendField(new Blockly.FieldDropdown(Profile.default.haskylens_model), 'PIN');
this.setOutput(true, Number);
}
};
export const pwm_input = {
init: function () {
this.setColour(PINS_HUE);
this.appendDummyInput("")
.appendField(new Blockly.FieldDropdown(Profile.default.pwm_input), 'PIN');
this.setOutput(true);
}
};
export const analog_input = {
init: function () {
this.setColour(PINS_HUE);
this.appendDummyInput("")
.appendField(new Blockly.FieldDropdown(Profile.default.analog_input), 'PIN');
this.setOutput(true);
}
};
export const pwm_output = {
init: function () {
this.setColour(PINS_HUE);
this.appendDummyInput("")
.appendField(new Blockly.FieldDropdown(Profile.default.pwm_output), 'PIN');
this.setOutput(true);
}
};
export const analog_output = {
init: function () {
this.setColour(PINS_HUE);
this.appendDummyInput("")
.appendField(new Blockly.FieldDropdown(Profile.default.analog_output), 'PIN');
this.setOutput(true);
}
};
export const i2c_A_pin = {
init: function () {
this.setColour(PINS_HUE);
this.appendDummyInput("")
.appendField(new Blockly.FieldDropdown(Profile.default.i2c_A_pin), 'PIN');
this.setOutput(true, Number);
}
};
export const i2c_B_pin = {
init: function () {
this.setColour(PINS_HUE);
this.appendDummyInput("")
.appendField(new Blockly.FieldDropdown(Profile.default.i2c_B_pin), 'PIN');
this.setOutput(true, Number);
}
};
export const spi_A_pin = {
init: function () {
this.setColour(PINS_HUE);
this.appendDummyInput("")
.appendField(new Blockly.FieldDropdown(Profile.default.spi_A_pin), 'PIN');
this.setOutput(true, Number);
}
};
export const spi_B_pin = {
init: function () {
this.setColour(PINS_HUE);
this.appendDummyInput("")
.appendField(new Blockly.FieldDropdown(Profile.default.spi_B_pin), 'PIN');
this.setOutput(true, Number);
}
};
export const spi_C_pin = {
init: function () {
this.setColour(PINS_HUE);
this.appendDummyInput("")
.appendField(new Blockly.FieldDropdown(Profile.default.spi_C_pin), 'PIN');
this.setOutput(true, Number);
}
};
export const spi_D_pin = {
init: function () {
this.setColour(PINS_HUE);
this.appendDummyInput("")
.appendField(new Blockly.FieldDropdown(Profile.default.spi_D_pin), 'PIN');
this.setOutput(true, Number);
}
};
export const pins_analog = {
init: function () {
this.setColour(PINS_HUE);
this.appendDummyInput("")
.appendField(new Blockly.FieldDropdown(Profile.default.analog), 'PIN');
this.setOutput(true);
}
};
export const pins_analog_pin = {
init: function () {
this.setColour(PINS_HUE);
this.appendDummyInput("")
.appendField(new Blockly.FieldDropdown(Profile.default.analog_pin), 'PIN');
this.setOutput(true, Number);
}
};
export const pins_dac = {
init: function () {
this.setColour(PINS_HUE);
this.appendDummyInput("")
.appendField(new Blockly.FieldDropdown(Profile.default.dac), 'PIN');
this.setOutput(true);
}
};
export const pins_dac_pin = {
init: function () {
this.setColour(PINS_HUE);
this.appendDummyInput("")
.appendField(new Blockly.FieldDropdown(Profile.default.dac_pin), 'PIN');
this.setOutput(true, Number);
}
};
export const pins_button = {
init: function () {
this.setColour(PINS_HUE);
this.appendDummyInput("")
.appendField(new Blockly.FieldDropdown(Profile.default.button), 'PIN');
this.setOutput(true, Number);
}
};
export const pins_buttonB = {
init: function () {
this.setColour(PINS_HUE);
this.appendDummyInput("")
.appendField(new Blockly.FieldDropdown(Profile.default.buttonB), 'PIN');
this.setOutput(true, Number);
}
};
export const pins_pwm = {
init: function () {
this.setColour(PINS_HUE);
this.appendDummyInput("")
.appendField(new Blockly.FieldDropdown(Profile.default.pwm), 'PIN');
this.setOutput(true);
}
};
export const pins_pwm_pin = {
init: function () {
this.setColour(PINS_HUE);
this.appendDummyInput("")
.appendField(new Blockly.FieldDropdown(Profile.default.pwm_pin), 'PIN');
this.setOutput(true, Number);
}
};
export const pins_touch_pin = {
init: function () {
this.setColour(PINS_HUE);
this.appendDummyInput("")
.appendField(new Blockly.FieldDropdown(Profile.default.touch_pin), 'PIN');
this.setOutput(true, Number);
}
};
export const pins_touch = {
init: function () {
this.setColour(PINS_HUE);
this.appendDummyInput("")
.appendField(new Blockly.FieldDropdown(Profile.default.touch), 'PIN');
this.setOutput(true);
}
};
export const pins_serial = {
init: function () {
this.setColour(PINS_HUE);
this.appendDummyInput("")
.appendField(new Blockly.FieldDropdown(Profile.default.serial_pin), 'PIN');
this.setOutput(true, Number);
}
};
export const pins_builtinimg = {
init: function () {
this.setColour(PINS_HUE);
this.appendDummyInput("")
.appendField(new Blockly.FieldDropdown(Profile.default.builtinimg), 'PIN');
this.setOutput(true, "esp32_image");
}
};
export const pins_builtinimg_extern = {
init: function () {
this.setColour(PINS_HUE);
this.appendDummyInput("")
.appendField(new Blockly.FieldDropdown(Profile.default.builtinimg_extern), 'PIN');
this.setOutput(true, "esp32_image");
}
};
export const pins_imglist = {
init: function () {
this.setColour(PINS_HUE);
this.appendDummyInput("")
.appendField(new Blockly.FieldDropdown(Profile.default.imglist), 'PIN');
this.setOutput(true);
}
};
export const pins_playlist = {
init: function () {
this.setColour(PINS_HUE);
this.appendDummyInput("")
.appendField(new Blockly.FieldDropdown(Profile.default.playlist), 'PIN');
this.setOutput(true);
}
};
export const pins_playlist_extern = {
init: function () {
this.setColour(PINS_HUE);
this.appendDummyInput("")
.appendField(new Blockly.FieldDropdown(Profile.default.playlist_extern), 'PIN');
this.setOutput(true);
}
};
export const pins_exlcdh = {
init: function () {
this.setColour(PINS_HUE);
this.appendDummyInput("")
.appendField(new Blockly.FieldDropdown(Profile.default.exlcdh), 'PIN');
this.setOutput(true, Number);
}
};
export const pins_exlcdv = {
init: function () {
this.setColour(PINS_HUE);
this.appendDummyInput("")
.appendField(new Blockly.FieldDropdown(Profile.default.exlcdv), 'PIN');
this.setOutput(true, Number);
}
};
export const pins_axis = {
init: function () {
this.setColour(PINS_HUE);
this.appendDummyInput("")
.appendField(new Blockly.FieldDropdown(Profile.default.axis), 'PIN');
this.setOutput(true, Number);
}
};
export const pins_brightness = {
init: function () {
this.setColour(PINS_HUE);
this.appendDummyInput("")
.appendField(new Blockly.FieldDropdown(Profile.default.brightness), 'PIN');
this.setOutput(true, Number);
}
};
export const pins_tts_voice = {
init: function () {
this.setColour(PINS_HUE);
this.appendDummyInput("")
.appendField(new Blockly.FieldDropdown(Profile.default.tts_voice), 'PIN');
this.setOutput(true, Number);
}
};
export const pins_tts_builtin_music = {
init: function () {
this.setColour(PINS_HUE);
this.appendDummyInput("")
.appendField(new Blockly.FieldDropdown(Profile.default.tts_builtin_music), 'PIN');
this.setOutput(true, Number);
}
};
export const pins_tts_bgmusic = {
init: function () {
this.setColour(PINS_HUE);
this.appendDummyInput("")
.appendField(new Blockly.FieldDropdown(Profile.default.tts_bgmusic), 'PIN');
this.setOutput(true, Number);
}
};
export const pins_tone_notes = {
init: function () {
this.setColour(PINS_HUE);
this.appendDummyInput("")
.appendField(new Blockly.FieldDropdown(Profile.default.tone_notes), 'PIN');
this.setOutput(true, Number);
}
};
export const pins_radio_power = {
init: function () {
this.setColour(PINS_HUE);
this.appendDummyInput("")
.appendField(new Blockly.FieldDropdown(Profile.default.radio_power), 'PIN');
this.setOutput(true, Number);
}
};
export const pins_radio_datarate = {
init: function () {
this.setColour(PINS_HUE);
this.appendDummyInput("")
.appendField(new Blockly.FieldDropdown(Profile.default.radio_datarate), 'PIN');
this.setOutput(true, Number);
}
};
export const pins_one_more = {
init: function () {
this.setColour(PINS_HUE);
this.appendDummyInput("")
.appendField(new Blockly.FieldDropdown(Profile.default.one_more), 'PIN');
this.setOutput(true);
}
};
export const pins_digital_dot = {
init: function () {
this.setColour(PINS_HUE);
this.appendDummyInput("")
.appendField(new Blockly.FieldDropdown(Profile.default.digital_dot), 'PIN');
this.setOutput(true, Number);
}
};
export const timer_id_pin = {
init: function () {
this.setColour(PINS_HUE);
this.appendDummyInput("")
.appendField(new Blockly.FieldDropdown([
["0","0"],
["1","1"],
["2","2"],
["3","3"]
]), 'PIN');
this.setOutput(true, Number);
}
};