feat(boards): 添加 micropython_esp32c5 板卡

This commit is contained in:
王立帮
2026-01-12 02:44:32 +08:00
parent aa7414dae2
commit 10d8c1f51d
21 changed files with 10076 additions and 0 deletions

View File

@@ -0,0 +1,109 @@
import * as Blockly from 'blockly/core';
// ok
export const inout_highlow = function (_, generator) {
// Boolean values HIGH and LOW.
var code = (this.getFieldValue('BOOL') == 'HIGH') ? '1' : '0';
return [code, generator.ORDER_ATOMIC];
}
// ok
export const inout_digital_write = function (_, generator) {
generator.definitions_['import_machine'] = 'import machine';
var dropdown_pin = generator.valueToCode(this, 'PIN', generator.ORDER_ATOMIC);
var dropdown_stat = generator.valueToCode(this, 'STAT', generator.ORDER_ATOMIC);
var code = "";
code += dropdown_pin + '.value(' + dropdown_stat + ')\n'
return code;
}
// ok
export const inout_digital_read = function (_, generator) {
generator.definitions_['import_machine'] = 'import machine';
var dropdown_pin = generator.valueToCode(this, 'PIN', generator.ORDER_ATOMIC);
var code = "";
code = dropdown_pin + '.value()';
return [code, generator.ORDER_ATOMIC];
}
// ok
export const inout_analog_write = function (_, generator) {
generator.definitions_['import_machine'] = 'import machine';
var dropdown_pin = generator.valueToCode(this, 'PIN', generator.ORDER_ATOMIC);
//var dropdown_stat = this.getFieldValue('STAT');
var value_num = generator.valueToCode(this, 'NUM', generator.ORDER_ATOMIC);
//generator.setups_['setup_output'+dropdown_pin] = 'pinMode('+dropdown_pin+', OUTPUT);';
var code = dropdown_pin + '.write(' + value_num + ')\n';
return code;
}
// ok
export const inout_analog_write_set = function (_, generator) {
generator.definitions_['import_machine'] = 'import machine';
var dropdown_pin = generator.valueToCode(this, 'PIN', generator.ORDER_ATOMIC);
var value_num = generator.valueToCode(this, 'NUM', generator.ORDER_ATOMIC);
var key = this.getFieldValue('key');
var code = dropdown_pin + '.set_analog_' + key + '(' + value_num + ')\n';
//var code = 'pin' + dropdown_pin + '.set_analog_period(' + value_num + ')\n';
return code;
}
// ok
export const inout_pin_pressed = function (_, generator) {
generator.definitions_['import_machine'] = 'import machine';
var pin = generator.valueToCode(this, 'pin', generator.ORDER_ATOMIC);
var code = pin + '.read()';
return [code, generator.ORDER_ATOMIC];
}
export const inout_pin_attachInterrupt = function (_, generator) {
generator.definitions_['import_machine'] = 'import machine';
var dropdown_pin = generator.valueToCode(this, 'PIN', generator.ORDER_ATOMIC);
var dropdown_mode = this.getFieldValue('mode');
var atta = generator.valueToCode(this, 'DO', generator.ORDER_ATOMIC);
var code = 'machine.Pin(' + dropdown_pin + ').irq' + '(handler = ' + atta + ', trigger = ' + dropdown_mode + ')\n'
//var funcName = 'attachInterrupt_func_' + dropdown_pin;
//var branch = generator.statementToCode(this, 'DO') || generator.PASS;
//var code2 = 'def' + ' ' + funcName + '(p):\n' + branch + '\n';
//generator.setups_[funcName] = code2;
return code;
}
export const inout_digital_init = function (_, generator) {
generator.definitions_['import_machine'] = 'import machine';
var pin_obj = this.getFieldValue('PIN_OBJ') || 'pin#';
var dropdown_pin = generator.valueToCode(this, 'PIN', generator.ORDER_ATOMIC);
var dropdown_mode = this.getFieldValue('MODE');
var varName = (pin_obj == 'pin#') ? 'pin' + dropdown_pin : generator.variableDB_.getName(pin_obj, Blockly.Variables.NAME_TYPE);
var code = varName + ' = machine.Pin(' + dropdown_pin + ', ' + dropdown_mode + ')\n';
return code;
}
// ok
export const inout_analog_write_init = function (_, generator) {
generator.definitions_['import_machine'] = 'import machine';
var pin_obj = this.getFieldValue('PIN_OBJ') || 'dac#';
var dropdown_pin = generator.valueToCode(this, 'PIN', generator.ORDER_ATOMIC);
var varName = (pin_obj == 'dac#') ? 'dac' + dropdown_pin : generator.variableDB_.getName(pin_obj, Blockly.Variables.NAME_TYPE);
var code = varName + ' = machine.DAC(machine.Pin(' + dropdown_pin + '))\n';
return code;
}
export const inout_analog_atten = function (_, generator) {
generator.definitions_['import_machine'] = 'import machine';
var dropdown_pin = generator.valueToCode(this, 'PIN', generator.ORDER_ATOMIC);
//var dropdown_stat = this.getFieldValue('STAT');
var value_atten = this.getFieldValue('atten')
var code = dropdown_pin + '.atten(' + value_atten + ')\n';
return code;
}
// ok
export const inout_pin_pressed_init = function (_, generator) {
generator.definitions_['import_machine'] = 'import machine';
var pin_obj = this.getFieldValue('PIN_OBJ') || 'tc#';
var dropdown_pin = generator.valueToCode(this, 'PIN', generator.ORDER_ATOMIC);
var varName = (pin_obj == 'tc#') ? 'tc' + dropdown_pin : generator.variableDB_.getName(pin_obj, Blockly.Variables.NAME_TYPE);
var code = varName + ' = machine.TouchPad(machine.Pin(' + dropdown_pin + '))\n';
return code;
}

View File

@@ -0,0 +1,59 @@
export const pins_digital = function (_, generator) {
const code = this.getFieldValue('PIN');
return [code, generator.ORDER_ATOMIC];
};
export const pins_button = pins_digital;
export const pins_buttonB = pins_digital;
export const pins_digital_pin = pins_digital;
export const pins_input_pin = pins_digital;
export const pins_output_pin = pins_digital;
export const pins_pwm_input = pins_digital;
export const espnow_channel = pins_digital;
export const haskylens_model = pins_digital;
export const analog_input = pins_digital;
export const pwm_output = pins_digital;
export const analog_output = pins_digital;
export const i2c_A_pin = pins_digital;
export const i2c_B_pin = pins_digital;
export const spi_A_pin = pins_digital;
export const spi_B_pin = pins_digital;
export const spi_C_pin = pins_digital;
export const spi_D_pin = pins_digital;
export const pins_analog_pin = pins_digital;
export const pins_analog = pins_digital;
export const pins_pwm_pin = pins_digital;
export const pins_pwm = pins_digital;
export const pins_dac_pin = pins_digital;
export const pins_dac = pins_digital;
export const pins_touch_pin = pins_digital;
export const pins_touch = pins_digital;
export const pins_interrupt = pins_digital;
export const pins_serial = pins_digital;
export const pins_builtinimg_extern = pins_digital;
export const pins_imglist = pins_digital;
export const pins_playlist = pins_digital;
export const pins_playlist_extern = pins_digital;
export const pins_axis = pins_digital;
export const pins_exlcdh = pins_digital;
export const pins_exlcdv = pins_digital;
export const pins_brightness = pins_digital;
export const pins_tts_voice = pins_digital;
export const pins_tts_builtin_music = pins_digital;
export const pins_tts_bgmusic = pins_digital;
export const pins_tone_notes = pins_digital;
export const pins_radio_power = pins_digital;
export const pins_radio_datarate = pins_digital;
export const pins_one_more = pins_digital;
export const pins_digital_dot = pins_digital;
export const timer_id_pin = pins_digital;
export const pins_builtinimg = function (_, generator) {
const PIN_VALUE = this.getFieldValue('PIN');
const data = PIN_VALUE.split('.');
if (data.length !== 2) {
throw Error('pin value error');
}
generator.definitions_[`import_${data[0]}_${data[1]}`] = `from ${data[0]} import ${data[1]}`;
return [data[1], generator.ORDER_ATOMIC];
};