feat(boards): 为mp下外接ws2812添加 跑马灯 和 彩虹 效果模块
This commit is contained in:
@@ -398,7 +398,7 @@ export const actuator_neopixel_init = {
|
||||
init: function () {
|
||||
this.setColour(ACTUATOR_EXTERN_HUE);
|
||||
this.appendDummyInput("")
|
||||
.appendField(Blockly.Msg.MIXLY_RGB)
|
||||
.appendField(Blockly.Msg.MIXLY_RGB);
|
||||
this.appendValueInput('SUB')
|
||||
.appendField(Blockly.Msg.MIXLY_SETUP)
|
||||
.setCheck("var");
|
||||
@@ -421,7 +421,7 @@ export const actuator_neopixel_rgb = {
|
||||
init: function () {
|
||||
this.setColour(ACTUATOR_EXTERN_HUE);
|
||||
this.appendDummyInput("")
|
||||
.appendField(Blockly.Msg.MIXLY_RGB)
|
||||
.appendField(Blockly.Msg.MIXLY_RGB);
|
||||
this.appendValueInput('SUB')
|
||||
.setCheck("var");
|
||||
// .appendField(Blockly.Msg.MIXLY_SETUP)
|
||||
@@ -453,7 +453,7 @@ export const actuator_neopixel_rgb_all = {
|
||||
init: function () {
|
||||
this.setColour(ACTUATOR_EXTERN_HUE);
|
||||
this.appendDummyInput("")
|
||||
.appendField(Blockly.Msg.MIXLY_RGB)
|
||||
.appendField(Blockly.Msg.MIXLY_RGB);
|
||||
this.appendValueInput('SUB')
|
||||
.setCheck("var");
|
||||
this.appendValueInput("RVALUE")
|
||||
@@ -480,11 +480,7 @@ export const actuator_neopixel_write = {
|
||||
init: function () {
|
||||
this.setColour(ACTUATOR_EXTERN_HUE);
|
||||
this.appendDummyInput("")
|
||||
.appendField(Blockly.Msg.MIXLY_RGB)
|
||||
// this.appendValueInput("PIN", Number)
|
||||
// .setCheck(Number)
|
||||
// .setAlign(Blockly.inputs.Align.RIGHT)
|
||||
// .appendField(Blockly.Msg.MIXLY_PIN);
|
||||
.appendField(Blockly.Msg.MIXLY_RGB);
|
||||
this.appendValueInput('SUB')
|
||||
.setCheck("var");
|
||||
this.appendDummyInput()
|
||||
@@ -497,6 +493,58 @@ export const actuator_neopixel_write = {
|
||||
}
|
||||
};
|
||||
|
||||
export const actuator_neopixel_rgb_show_all_rainbow = {
|
||||
init: function () {
|
||||
this.setColour(ACTUATOR_EXTERN_HUE);
|
||||
this.appendDummyInput("")
|
||||
.appendField(Blockly.Msg.MIXLY_RGB);
|
||||
this.appendValueInput('SUB')
|
||||
.setCheck("var");
|
||||
this.appendDummyInput("")
|
||||
.appendField(Blockly.Msg.MIXLY_RAINBOW);
|
||||
this.appendValueInput('time')
|
||||
.setCheck(Number)
|
||||
.appendField(Blockly.Msg.MIXLY_DURATION)
|
||||
.appendField(Blockly.Msg.MIXLY_MILLIS);
|
||||
this.setInputsInline(true);
|
||||
this.setPreviousStatement(true, null);
|
||||
this.setNextStatement(true, null);
|
||||
this.setTooltip('');
|
||||
}
|
||||
};
|
||||
|
||||
export const actuator_neopixel_rgb_show_all_chase = {
|
||||
init: function () {
|
||||
this.setColour(ACTUATOR_EXTERN_HUE);
|
||||
this.appendDummyInput("")
|
||||
.appendField(Blockly.Msg.MIXLY_RGB);
|
||||
this.appendValueInput('SUB')
|
||||
.setCheck("var");
|
||||
this.appendDummyInput("")
|
||||
.appendField(Blockly.Msg.MIXLY_CHASE);
|
||||
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.appendValueInput('time')
|
||||
.setCheck(Number)
|
||||
.appendField(Blockly.Msg.PYTHON_RANGE_STEP)
|
||||
.appendField(Blockly.Msg.MIXLY_MILLIS);
|
||||
this.setInputsInline(true);
|
||||
this.setPreviousStatement(true, null);
|
||||
this.setNextStatement(true, null);
|
||||
this.setTooltip('');
|
||||
}
|
||||
};
|
||||
|
||||
export const actuator_use_uart_init = {
|
||||
init: function () {
|
||||
this.setColour(ACTUATOR_EXTERN_HUE);
|
||||
|
||||
@@ -178,41 +178,54 @@ export const actuator_extern_led_brightness = function (_, generator) {
|
||||
}
|
||||
|
||||
export const actuator_neopixel_init = function (_, generator) {
|
||||
var v = generator.valueToCode(this, 'SUB', generator.ORDER_ATOMIC);
|
||||
var dropdown_rgbpin = generator.valueToCode(this, 'PIN', generator.ORDER_ATOMIC);
|
||||
var value_ledcount = generator.valueToCode(this, 'LEDCOUNT', generator.ORDER_ATOMIC);
|
||||
const v = generator.valueToCode(this, 'SUB', generator.ORDER_ATOMIC);
|
||||
const dropdown_rgbpin = generator.valueToCode(this, 'PIN', generator.ORDER_ATOMIC);
|
||||
const value_ledcount = generator.valueToCode(this, 'LEDCOUNT', generator.ORDER_ATOMIC);
|
||||
generator.definitions_['import_machine'] = 'import machine';
|
||||
generator.definitions_['import_neopixel'] = 'import neopixel';
|
||||
var code = v + ' = neopixel.NeoPixel(machine.Pin(' + dropdown_rgbpin + '), ' + value_ledcount + ')\n';
|
||||
generator.definitions_['import_ws2812_Neopixel'] = 'from ws2812 import NeoPixel';
|
||||
const code = `${v} = NeoPixel(machine.Pin(${dropdown_rgbpin}), ${value_ledcount})\n`;
|
||||
return code;
|
||||
}
|
||||
|
||||
export const actuator_neopixel_rgb_all = function (_, generator) {
|
||||
var v = generator.valueToCode(this, 'SUB', 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 = v + '.fill((' + value_rvalue + ', ' + value_gvalue + ', ' + value_bvalue + '))\n';
|
||||
const v = generator.valueToCode(this, 'SUB', generator.ORDER_ATOMIC);
|
||||
const value_rvalue = generator.valueToCode(this, 'RVALUE', generator.ORDER_ATOMIC);
|
||||
const value_gvalue = generator.valueToCode(this, 'GVALUE', generator.ORDER_ATOMIC);
|
||||
const value_bvalue = generator.valueToCode(this, 'BVALUE', generator.ORDER_ATOMIC);
|
||||
const code = `${v}.fill((${value_rvalue}, ${value_gvalue}, ${value_bvalue}))\n`;
|
||||
return code;
|
||||
}
|
||||
|
||||
export const actuator_neopixel_write = function (_, generator) {
|
||||
generator.definitions_['import_machine'] = 'import machine';
|
||||
generator.definitions_['import_neopixel'] = 'import neopixel';
|
||||
var v = generator.valueToCode(this, 'SUB', generator.ORDER_ATOMIC);
|
||||
var code = v + '.write()\n';
|
||||
const v = generator.valueToCode(this, 'SUB', generator.ORDER_ATOMIC);
|
||||
const code = `${v}.write()\n`;
|
||||
return code;
|
||||
}
|
||||
|
||||
export const actuator_neopixel_rgb = function (_, generator) {
|
||||
generator.definitions_['import_machine'] = 'import machine';
|
||||
generator.definitions_['import_neopixel'] = 'import neopixel';
|
||||
var v = generator.valueToCode(this, 'SUB', 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 = v + '[' + value_led + '] = (' + value_rvalue + ', ' + value_gvalue + ', ' + value_bvalue + ')\n';
|
||||
const v = generator.valueToCode(this, 'SUB', generator.ORDER_ATOMIC);
|
||||
const value_led = generator.valueToCode(this, '_LED_', generator.ORDER_ATOMIC);
|
||||
const value_rvalue = generator.valueToCode(this, 'RVALUE', generator.ORDER_ATOMIC);
|
||||
const value_gvalue = generator.valueToCode(this, 'GVALUE', generator.ORDER_ATOMIC);
|
||||
const value_bvalue = generator.valueToCode(this, 'BVALUE', generator.ORDER_ATOMIC);
|
||||
const code = `${v}[${value_led}] = (${value_rvalue}, ${value_gvalue}, ${value_bvalue})\n`;
|
||||
return code;
|
||||
}
|
||||
|
||||
export const actuator_neopixel_rgb_show_all_chase = function (_, generator) {
|
||||
const v = generator.valueToCode(this, 'SUB', generator.ORDER_ATOMIC);
|
||||
const value_rvalue = generator.valueToCode(this, 'RVALUE', generator.ORDER_ATOMIC);
|
||||
const value_gvalue = generator.valueToCode(this, 'GVALUE', generator.ORDER_ATOMIC);
|
||||
const value_bvalue = generator.valueToCode(this, 'BVALUE', generator.ORDER_ATOMIC);
|
||||
const number_time = generator.valueToCode(this, 'time', generator.ORDER_ATOMIC);
|
||||
const code = `${v}.color_chase(${value_rvalue}, ${value_gvalue}, ${value_bvalue}, ${number_time})\n`;
|
||||
return code;
|
||||
}
|
||||
|
||||
export const actuator_neopixel_rgb_show_all_rainbow = function (_, generator) {
|
||||
const v = generator.valueToCode(this, 'SUB', generator.ORDER_ATOMIC);
|
||||
const number_time = generator.valueToCode(this, 'time', generator.ORDER_ATOMIC);
|
||||
const code = `${v}.rainbow_cycle(${number_time})\n`;
|
||||
return code;
|
||||
}
|
||||
|
||||
|
||||
@@ -203,49 +203,49 @@ export const rm_actuator_led_brightness = function (_, generator) {
|
||||
}
|
||||
|
||||
export const actuator_onboard_neopixel_write = function (_, generator) {
|
||||
var version = Boards.getSelectedBoardKey().split(':')[2]
|
||||
generator.definitions_['import_' + version + '_onboard_rgb'] = 'from ' + version + ' import onboard_rgb';
|
||||
var code = 'onboard_rgb.write()\n';
|
||||
const version = Boards.getSelectedBoardKey().split(':')[2];
|
||||
generator.definitions_[`import_${version}_onboard_rgb`] = `from ${version} import onboard_rgb`;
|
||||
const code = 'onboard_rgb.write()\n';
|
||||
return code;
|
||||
}
|
||||
|
||||
export const actuator_onboard_neopixel_rgb = function (_, generator) {
|
||||
var version = Boards.getSelectedBoardKey().split(':')[2]
|
||||
generator.definitions_['import_' + version + '_onboard_rgb'] = 'from ' + version + ' import onboard_rgb';
|
||||
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 = 'onboard_rgb[' + value_led + '] = (' + value_rvalue + ', ' + value_gvalue + ', ' + value_bvalue + ')\n';
|
||||
const version = Boards.getSelectedBoardKey().split(':')[2];
|
||||
generator.definitions_[`import_${version}_onboard_rgb`] = `from ${version} import onboard_rgb`;
|
||||
const value_led = generator.valueToCode(this, '_LED_', generator.ORDER_ATOMIC);
|
||||
const value_rvalue = generator.valueToCode(this, 'RVALUE', generator.ORDER_ATOMIC);
|
||||
const value_gvalue = generator.valueToCode(this, 'GVALUE', generator.ORDER_ATOMIC);
|
||||
const value_bvalue = generator.valueToCode(this, 'BVALUE', generator.ORDER_ATOMIC);
|
||||
const code = `onboard_rgb[${value_led}] = (${value_rvalue}, ${value_gvalue}, ${value_bvalue})\n`;
|
||||
return code;
|
||||
}
|
||||
|
||||
export const actuator_onboard_neopixel_rgb_all = function (_, generator) {
|
||||
var version = Boards.getSelectedBoardKey().split(':')[2]
|
||||
generator.definitions_['import_' + version + '_onboard_rgb'] = 'from ' + version + ' import onboard_rgb';
|
||||
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 = 'onboard_rgb.fill((' + value_rvalue + ', ' + value_gvalue + ', ' + value_bvalue + '))\n';
|
||||
const version = Boards.getSelectedBoardKey().split(':')[2];
|
||||
generator.definitions_[`import_${version}_onboard_rgb`] = `from ${version} import onboard_rgb`;
|
||||
const value_rvalue = generator.valueToCode(this, 'RVALUE', generator.ORDER_ATOMIC);
|
||||
const value_gvalue = generator.valueToCode(this, 'GVALUE', generator.ORDER_ATOMIC);
|
||||
const value_bvalue = generator.valueToCode(this, 'BVALUE', generator.ORDER_ATOMIC);
|
||||
const code = `onboard_rgb.fill((${value_rvalue}, ${value_gvalue}, ${value_bvalue}))\n`;
|
||||
return code;
|
||||
}
|
||||
|
||||
export const actuator_onboard_neopixel_rgb_show_all_chase = function (_, generator) {
|
||||
var version = Boards.getSelectedBoardKey().split(':')[2]
|
||||
generator.definitions_['import_' + version + '_onboard_rgb'] = 'from ' + version + ' import onboard_rgb';
|
||||
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 number_time = generator.valueToCode(this, 'time', generator.ORDER_ATOMIC);
|
||||
var code = 'onboard_rgb.color_chase(' + value_rvalue + ', ' + value_gvalue + ', ' + value_bvalue + ', ' + number_time + ')\n';
|
||||
const version = Boards.getSelectedBoardKey().split(':')[2];
|
||||
generator.definitions_[`import_${version}_onboard_rgb`] = `from ${version} import onboard_rgb`;
|
||||
const value_rvalue = generator.valueToCode(this, 'RVALUE', generator.ORDER_ATOMIC);
|
||||
const value_gvalue = generator.valueToCode(this, 'GVALUE', generator.ORDER_ATOMIC);
|
||||
const value_bvalue = generator.valueToCode(this, 'BVALUE', generator.ORDER_ATOMIC);
|
||||
const number_time = generator.valueToCode(this, 'time', generator.ORDER_ATOMIC);
|
||||
const code = `onboard_rgb.color_chase(${value_rvalue}, ${value_gvalue}, ${value_bvalue}, ${number_time})\n`;
|
||||
return code;
|
||||
}
|
||||
|
||||
export const actuator_onboard_neopixel_rgb_show_all_rainbow = function (_, generator) {
|
||||
var version = Boards.getSelectedBoardKey().split(':')[2]
|
||||
generator.definitions_['import_' + version + '_onboard_rgb'] = 'from ' + version + ' import onboard_rgb';
|
||||
var number_time = generator.valueToCode(this, 'time', generator.ORDER_ATOMIC);
|
||||
var code = 'onboard_rgb.rainbow_cycle(' + number_time + ')\n';
|
||||
const version = Boards.getSelectedBoardKey().split(':')[2];
|
||||
generator.definitions_[`import_${version}_onboard_rgb`] = `from ${version} import onboard_rgb`;
|
||||
const number_time = generator.valueToCode(this, 'time', generator.ORDER_ATOMIC);
|
||||
const code = `onboard_rgb.rainbow_cycle(${number_time})\n`;
|
||||
return code;
|
||||
}
|
||||
|
||||
|
||||
@@ -1704,8 +1704,7 @@
|
||||
</shadow>
|
||||
</value>
|
||||
</block>
|
||||
<block type="actuator_onboard_neopixel_write">
|
||||
</block>
|
||||
<block type="actuator_onboard_neopixel_write"></block>
|
||||
<block type="rm_motor" m-show='micropython:esp32:rm_e1'>
|
||||
<value name="speed">
|
||||
<shadow type="math_number">
|
||||
@@ -4482,6 +4481,45 @@
|
||||
</shadow>
|
||||
</value>
|
||||
</block>
|
||||
<block type="actuator_neopixel_rgb_show_all_chase">
|
||||
<value name="SUB">
|
||||
<shadow type="variables_get">
|
||||
<field name="VAR">rgb</field>
|
||||
</shadow>
|
||||
</value>
|
||||
<value name="RVALUE">
|
||||
<shadow type="math_number">
|
||||
<field name="NUM">0</field>
|
||||
</shadow>
|
||||
</value>
|
||||
<value name="GVALUE">
|
||||
<shadow type="math_number">
|
||||
<field name="NUM">0</field>
|
||||
</shadow>
|
||||
</value>
|
||||
<value name="BVALUE">
|
||||
<shadow type="math_number">
|
||||
<field name="NUM">0</field>
|
||||
</shadow>
|
||||
</value>
|
||||
<value name="time">
|
||||
<shadow type="math_number">
|
||||
<field name="NUM">1000</field>
|
||||
</shadow>
|
||||
</value>
|
||||
</block>
|
||||
<block type="actuator_neopixel_rgb_show_all_rainbow">
|
||||
<value name="SUB">
|
||||
<shadow type="variables_get">
|
||||
<field name="VAR">rgb</field>
|
||||
</shadow>
|
||||
</value>
|
||||
<value name="time">
|
||||
<shadow type="math_number">
|
||||
<field name="NUM">1000</field>
|
||||
</shadow>
|
||||
</value>
|
||||
</block>
|
||||
<block type="actuator_neopixel_write">
|
||||
<value name="SUB">
|
||||
<shadow type="variables_get">
|
||||
|
||||
@@ -3,6 +3,7 @@ import * as MicropythonESP32C2InoutBlocks from './blocks/inout';
|
||||
import * as MicropythonESP32C2MiniG2Blocks from './blocks/mini_g2';
|
||||
import * as MicropythonESP32C2MEGOBlocks from './blocks/me_go';
|
||||
import * as MicropythonESP32C2PinsBlocks from './blocks/pins';
|
||||
import * as MicropythonESP32C2ActuatorExternGenerators from './generators/actuator_extern';
|
||||
import * as MicropythonESP32C2InoutGenerators from './generators/inout';
|
||||
import * as MicropythonESP32C2MiniG2Generators from './generators/mini_g2';
|
||||
import * as MicropythonESP32C2MEGOGenerators from './generators/me_go';
|
||||
@@ -14,6 +15,7 @@ export {
|
||||
MicropythonESP32C2MiniG2Blocks,
|
||||
MicropythonESP32C2MEGOBlocks,
|
||||
MicropythonESP32C2PinsBlocks,
|
||||
MicropythonESP32C2ActuatorExternGenerators,
|
||||
MicropythonESP32C2InoutGenerators,
|
||||
MicropythonESP32C2MiniG2Generators,
|
||||
MicropythonESP32C2MEGOGenerators,
|
||||
|
||||
@@ -80,6 +80,7 @@ import {
|
||||
MicropythonESP32C2MiniG2Blocks,
|
||||
MicropythonESP32C2MEGOBlocks,
|
||||
MicropythonESP32C2PinsBlocks,
|
||||
MicropythonESP32C2ActuatorExternGenerators,
|
||||
MicropythonESP32C2InoutGenerators,
|
||||
MicropythonESP32C2MiniG2Generators,
|
||||
MicropythonESP32C2MEGOGenerators,
|
||||
@@ -171,6 +172,7 @@ Object.assign(
|
||||
MicroPythonBlynkGenerators,
|
||||
MicroPythonCCG1Generators,
|
||||
MicroPythonCEGOGenerators,
|
||||
MicropythonESP32C2ActuatorExternGenerators,
|
||||
MicropythonESP32C2InoutGenerators,
|
||||
MicropythonESP32C2MiniG2Generators,
|
||||
MicropythonESP32C2MEGOGenerators,
|
||||
|
||||
@@ -4385,6 +4385,45 @@
|
||||
</shadow>
|
||||
</value>
|
||||
</block>
|
||||
<block type="actuator_neopixel_rgb_show_all_chase">
|
||||
<value name="SUB">
|
||||
<shadow type="variables_get">
|
||||
<field name="VAR">rgb</field>
|
||||
</shadow>
|
||||
</value>
|
||||
<value name="RVALUE">
|
||||
<shadow type="math_number">
|
||||
<field name="NUM">0</field>
|
||||
</shadow>
|
||||
</value>
|
||||
<value name="GVALUE">
|
||||
<shadow type="math_number">
|
||||
<field name="NUM">0</field>
|
||||
</shadow>
|
||||
</value>
|
||||
<value name="BVALUE">
|
||||
<shadow type="math_number">
|
||||
<field name="NUM">0</field>
|
||||
</shadow>
|
||||
</value>
|
||||
<value name="time">
|
||||
<shadow type="math_number">
|
||||
<field name="NUM">1000</field>
|
||||
</shadow>
|
||||
</value>
|
||||
</block>
|
||||
<block type="actuator_neopixel_rgb_show_all_rainbow">
|
||||
<value name="SUB">
|
||||
<shadow type="variables_get">
|
||||
<field name="VAR">rgb</field>
|
||||
</shadow>
|
||||
</value>
|
||||
<value name="time">
|
||||
<shadow type="math_number">
|
||||
<field name="NUM">1000</field>
|
||||
</shadow>
|
||||
</value>
|
||||
</block>
|
||||
<block type="actuator_neopixel_write">
|
||||
<value name="SUB">
|
||||
<shadow type="variables_get">
|
||||
|
||||
@@ -4287,6 +4287,45 @@
|
||||
</shadow>
|
||||
</value>
|
||||
</block>
|
||||
<block type="actuator_neopixel_rgb_show_all_chase" m-hide='micropython:esp32c3:mixgocar_c3'>
|
||||
<value name="SUB">
|
||||
<shadow type="variables_get">
|
||||
<field name="VAR">rgb</field>
|
||||
</shadow>
|
||||
</value>
|
||||
<value name="RVALUE">
|
||||
<shadow type="math_number">
|
||||
<field name="NUM">0</field>
|
||||
</shadow>
|
||||
</value>
|
||||
<value name="GVALUE">
|
||||
<shadow type="math_number">
|
||||
<field name="NUM">0</field>
|
||||
</shadow>
|
||||
</value>
|
||||
<value name="BVALUE">
|
||||
<shadow type="math_number">
|
||||
<field name="NUM">0</field>
|
||||
</shadow>
|
||||
</value>
|
||||
<value name="time">
|
||||
<shadow type="math_number">
|
||||
<field name="NUM">1000</field>
|
||||
</shadow>
|
||||
</value>
|
||||
</block>
|
||||
<block type="actuator_neopixel_rgb_show_all_rainbow" m-hide='micropython:esp32c3:mixgocar_c3'>
|
||||
<value name="SUB">
|
||||
<shadow type="variables_get">
|
||||
<field name="VAR">rgb</field>
|
||||
</shadow>
|
||||
</value>
|
||||
<value name="time">
|
||||
<shadow type="math_number">
|
||||
<field name="NUM">1000</field>
|
||||
</shadow>
|
||||
</value>
|
||||
</block>
|
||||
<block type="actuator_neopixel_write" m-hide='micropython:esp32c3:mixgocar_c3'>
|
||||
<value name="SUB">
|
||||
<shadow type="variables_get">
|
||||
|
||||
@@ -4018,6 +4018,45 @@
|
||||
</shadow>
|
||||
</value>
|
||||
</block>
|
||||
<block type="actuator_neopixel_rgb_show_all_chase">
|
||||
<value name="SUB">
|
||||
<shadow type="variables_get">
|
||||
<field name="VAR">rgb</field>
|
||||
</shadow>
|
||||
</value>
|
||||
<value name="RVALUE">
|
||||
<shadow type="math_number">
|
||||
<field name="NUM">0</field>
|
||||
</shadow>
|
||||
</value>
|
||||
<value name="GVALUE">
|
||||
<shadow type="math_number">
|
||||
<field name="NUM">0</field>
|
||||
</shadow>
|
||||
</value>
|
||||
<value name="BVALUE">
|
||||
<shadow type="math_number">
|
||||
<field name="NUM">0</field>
|
||||
</shadow>
|
||||
</value>
|
||||
<value name="time">
|
||||
<shadow type="math_number">
|
||||
<field name="NUM">1000</field>
|
||||
</shadow>
|
||||
</value>
|
||||
</block>
|
||||
<block type="actuator_neopixel_rgb_show_all_rainbow">
|
||||
<value name="SUB">
|
||||
<shadow type="variables_get">
|
||||
<field name="VAR">rgb</field>
|
||||
</shadow>
|
||||
</value>
|
||||
<value name="time">
|
||||
<shadow type="math_number">
|
||||
<field name="NUM">1000</field>
|
||||
</shadow>
|
||||
</value>
|
||||
</block>
|
||||
<block type="actuator_neopixel_write">
|
||||
<value name="SUB">
|
||||
<shadow type="variables_get">
|
||||
|
||||
@@ -4645,6 +4645,45 @@
|
||||
</shadow>
|
||||
</value>
|
||||
</block>
|
||||
<block type="actuator_neopixel_rgb_show_all_chase">
|
||||
<value name="SUB">
|
||||
<shadow type="variables_get">
|
||||
<field name="VAR">rgb</field>
|
||||
</shadow>
|
||||
</value>
|
||||
<value name="RVALUE">
|
||||
<shadow type="math_number">
|
||||
<field name="NUM">0</field>
|
||||
</shadow>
|
||||
</value>
|
||||
<value name="GVALUE">
|
||||
<shadow type="math_number">
|
||||
<field name="NUM">0</field>
|
||||
</shadow>
|
||||
</value>
|
||||
<value name="BVALUE">
|
||||
<shadow type="math_number">
|
||||
<field name="NUM">0</field>
|
||||
</shadow>
|
||||
</value>
|
||||
<value name="time">
|
||||
<shadow type="math_number">
|
||||
<field name="NUM">1000</field>
|
||||
</shadow>
|
||||
</value>
|
||||
</block>
|
||||
<block type="actuator_neopixel_rgb_show_all_rainbow">
|
||||
<value name="SUB">
|
||||
<shadow type="variables_get">
|
||||
<field name="VAR">rgb</field>
|
||||
</shadow>
|
||||
</value>
|
||||
<value name="time">
|
||||
<shadow type="math_number">
|
||||
<field name="NUM">1000</field>
|
||||
</shadow>
|
||||
</value>
|
||||
</block>
|
||||
<block type="actuator_neopixel_write">
|
||||
<value name="SUB">
|
||||
<shadow type="variables_get">
|
||||
|
||||
Reference in New Issue
Block a user