Files
mixly3/boards/default_src/micropython_k210_mixgoai/blocks/actuator.js
2024-07-19 10:16:00 +08:00

276 lines
9.0 KiB
JavaScript
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
import * as Blockly from 'blockly/core';
const ACTUATOR_HUE = 100;
export const actuator_Servo_init = {
init: function () {
this.setColour(ACTUATOR_HUE);
this.appendDummyInput()
.appendField("初始化");
this.appendDummyInput()
.appendField("舵机");
this.appendValueInput("PIN", Number)
.appendField("管脚")
.setCheck(Number);
this.appendValueInput('time')
.appendField("定时器")
.setCheck(Number);
this.setPreviousStatement(true, null);
this.setNextStatement(true, null);
this.setInputsInline(true);
this.setTooltip();
}
};
export const actuator_Servo = {
init: function () {
this.setColour(ACTUATOR_HUE);
this.appendDummyInput()
.appendField("设置");
this.appendDummyInput()
.appendField("舵机");
this.appendValueInput("PIN", Number)
.appendField("管脚")
.setCheck(Number);
this.appendValueInput('range')
.appendField("角度")
.setCheck(Number);
this.setPreviousStatement(true, null);
this.setNextStatement(true, null);
this.setInputsInline(true);
this.setTooltip();
}
};
export const actuator_PAC9685_init = {
init: function () {
this.setColour(ACTUATOR_HUE);
this.appendDummyInput()
.appendField("初始化");
this.appendDummyInput()
.appendField("16路舵机");
this.appendValueInput('address')
.appendField("地址")
.setCheck(Number);
this.appendValueInput('SUB')
.setCheck("var")
.setAlign(Blockly.inputs.Align.RIGHT)
.appendField("通信");
this.setPreviousStatement(true, null);
this.setNextStatement(true, null);
this.setInputsInline(true);
this.setTooltip("使用PCA9685驱动16路舵机并备注IIC端口");
}
};
export const actuator_PAC9685_Servo = {
init: function () {
this.setColour(ACTUATOR_HUE);
this.appendDummyInput()
.appendField("设置");
this.appendDummyInput()
.appendField("16路舵机");
this.appendValueInput("index")
.appendField("编号")
.setCheck(Number);
this.appendValueInput('range')
.appendField("角度")
.setCheck(Number);
this.setPreviousStatement(true, null);
this.setNextStatement(true, null);
this.setInputsInline(true);
this.setTooltip("使用PCA9685驱动16路舵机输入编号机角度");
}
};
export const actuator_rgb_init = {
init: function () {
this.setColour(ACTUATOR_HUE);
this.appendValueInput('SUB')
.appendField("初始化")
.setCheck("var");
this.appendValueInput("PIN", Number)
.appendField("管脚")
.setCheck(Number);
this.appendValueInput('num')
.appendField("灯数")
.setCheck(Number);
this.setPreviousStatement(true, null);
this.setNextStatement(true, null);
this.setInputsInline(true);
this.setTooltip();
}
};
export const actuator_rgb_set = {
init: function () {
this.setColour(ACTUATOR_HUE);
this.appendValueInput('SUB')
.appendField("")
.setCheck("var");
this.appendValueInput('num')
.appendField("灯号")
.setCheck(Number);
this.appendValueInput('R')
.appendField("R值")
.setCheck(Number);
this.appendValueInput('G')
.appendField("G值")
.setCheck(Number);
this.appendValueInput('B')
.appendField("B值")
.setCheck(Number);
this.setPreviousStatement(true, null);
this.setNextStatement(true, null);
this.setInputsInline(true);
this.setTooltip();
}
};
export const actuator_rgb_display = {
init: function () {
this.setColour(ACTUATOR_HUE);
this.appendValueInput('SUB')
.appendField("")
.setCheck("var");
this.appendDummyInput()
.appendField("生效");
this.setPreviousStatement(true, null);
this.setNextStatement(true, null);
this.setInputsInline(true);
this.setTooltip();
}
};
export const actuator_ms32006_init = {
init: function () {
this.setColour(ACTUATOR_HUE);
this.appendValueInput('SUB')
.appendField("初始化")
.setCheck("var");
this.appendDummyInput()
.appendField("电机驱动");
this.appendDummyInput()
.appendField("地址")
.appendField(new Blockly.FieldDropdown([['A', 'ms32006.ADDRESS_A'], ['B', 'ms32006.ADDRESS_B']]), 'mode');
this.appendValueInput('SUB1')
.setCheck("var")
.setAlign(Blockly.inputs.Align.RIGHT)
.appendField("通信");
this.setPreviousStatement(true, null);
this.setNextStatement(true, null);
this.setInputsInline(true);
this.setTooltip("初始化MS32006电机驱动使用I2C通信");
}
};
export const actuator_ms32006_dcmotor = {
init: function () {
this.setColour(ACTUATOR_HUE);
this.appendValueInput('SUB')
.appendField("直流电机")
.setCheck("var");
this.appendDummyInput()
.appendField(Blockly.Msg.MIXLY_MICROBIT_Direction)
.appendField(new Blockly.FieldDropdown([
[Blockly.Msg.CLOCKWISE, "ms32006.MOT_CW"],
[Blockly.Msg.ANTI_CLOCKWISE, "ms32006.MOT_CCW"],
[Blockly.Msg.MOTOR_N, "ms32006.MOT_N"],
[Blockly.Msg.MOTOR_P, "ms32006.MOT_P"]
]), "direction");
this.appendValueInput('speed')
.setCheck(Number)
.setAlign(Blockly.inputs.Align.RIGHT)
.appendField(Blockly.Msg.MIXLY_STEPPER_SET_SPEED);
this.setPreviousStatement(true, null);
this.setNextStatement(true, null);
this.setInputsInline(true);
this.setTooltip("设置直流电机的状态及转速(0-100)");
}
};
export const actuator_ms32006_stepper = {
init: function () {
this.setColour(ACTUATOR_HUE);
this.appendValueInput('SUB')
.appendField("步进电机")
.setCheck("var");
this.appendDummyInput()
.appendField("选择")
.appendField(new Blockly.FieldDropdown([['A', 'ms32006.MOT_A'], ['B', 'ms32006.MOT_B']]), 'mode');
this.appendDummyInput()
.appendField(Blockly.Msg.MIXLY_MICROBIT_Direction)
.appendField(new Blockly.FieldDropdown([
[Blockly.Msg.CLOCKWISE, "ms32006.MOT_CW"],
[Blockly.Msg.ANTI_CLOCKWISE, "ms32006.MOT_CCW"]
]), "direction");
this.appendValueInput('speed')
.setCheck(Number)
.setAlign(Blockly.inputs.Align.RIGHT)
.appendField("转速");
this.appendValueInput('steps')
.setCheck(Number)
.setAlign(Blockly.inputs.Align.RIGHT)
.appendField("步数");
this.setPreviousStatement(true, null);
this.setNextStatement(true, null);
this.setInputsInline(true);
this.setTooltip("设置步进电机的状态、转速、步数(0-2047)");
}
};
//-新20211221------PID算法暂时放此处------------------------------------------//
export const PID_init = {
init: function () {
this.setColour(ACTUATOR_HUE);
this.appendValueInput('SUB')
.setCheck("var")
.appendField("初始化");
this.appendValueInput("P", Number)
.appendField("P值")
.setCheck(Number)
.setAlign(Blockly.inputs.Align.RIGHT);
this.appendValueInput("I", Number)
.appendField("I值")
.setCheck(Number)
.setAlign(Blockly.inputs.Align.RIGHT);
this.appendValueInput("D", Number)
.appendField("D值")
.setCheck(Number)
.setAlign(Blockly.inputs.Align.RIGHT);
this.setPreviousStatement(true);
this.setNextStatement(true);
this.setInputsInline(true);
this.setTooltip("初始化PID算法");
}
};
//-新20211221------PID算法暂时放此处------------------------------------------//
export const PID_get_pid = {
init: function () {
this.setColour(ACTUATOR_HUE);
this.appendValueInput('SUB')
.setCheck("var")
.appendField("");
this.appendDummyInput()
.appendField("运算");
this.appendValueInput("error")
.appendField("偏移量")
.setCheck(Number)
.setAlign(Blockly.inputs.Align.RIGHT);
this.appendValueInput("scaler")
.appendField("定标量")
.setCheck(Number)
.setAlign(Blockly.inputs.Align.RIGHT);
this.setOutput(true);
this.setInputsInline(true);
this.setTooltip("根据参数返回运算结果");
}
};