From dd8278193934289d5726ccf88b8a0e7c81609b61 Mon Sep 17 00:00:00 2001 From: Bjoern Date: Tue, 5 Jul 2022 23:05:54 +0200 Subject: [PATCH 1/4] added blocks for simple stepper motor --- src/components/Blockly/blocks/index.js | 1 + .../Blockly/blocks/sensebox-motor.js | 64 +++++++++++++++++++ src/components/Blockly/generator/index.js | 1 + .../Blockly/generator/sensebox-motor.js | 24 +++++++ src/components/Blockly/msg/en.js | 2 + .../Blockly/msg/en/sensebox-motors.js | 18 ++++++ src/components/Blockly/toolbox/Toolbox.js | 6 ++ 7 files changed, 116 insertions(+) create mode 100644 src/components/Blockly/blocks/sensebox-motor.js create mode 100644 src/components/Blockly/generator/sensebox-motor.js create mode 100644 src/components/Blockly/msg/en/sensebox-motors.js diff --git a/src/components/Blockly/blocks/index.js b/src/components/Blockly/blocks/index.js index 5f7fb2d..164fb14 100644 --- a/src/components/Blockly/blocks/index.js +++ b/src/components/Blockly/blocks/index.js @@ -6,6 +6,7 @@ import "./sensebox-telegram"; import "./sensebox-osem"; import "./sensebox-web"; import "./sensebox-display"; +import "./sensebox-motor"; import "./sensebox-lora"; import "./sensebox-led"; import "./sensebox-rtc"; diff --git a/src/components/Blockly/blocks/sensebox-motor.js b/src/components/Blockly/blocks/sensebox-motor.js new file mode 100644 index 0000000..15f115a --- /dev/null +++ b/src/components/Blockly/blocks/sensebox-motor.js @@ -0,0 +1,64 @@ +import * as Blockly from "blockly/core"; +import { getColour } from "../helpers/colour"; +import * as Types from "../helpers/types"; +import { selectedBoard } from "../helpers/board"; +import { FieldSlider } from "@blockly/field-slider"; + +/** + * Stepper Motor + * + */ +Blockly.Blocks["sensebox_motors_beginStepperMotor"] = { + init: function () { + this.appendDummyInput() + .appendField(Blockly.Msg.sensebox_motors_beginStepperMotor); + this.appendDummyInput() + .appendField(Blockly.Msg.sensebox_motors_beginStepperMotor_pins); + this.appendDummyInput() + .setAlign(Blockly.ALIGN_RIGHT) + .appendField(new Blockly.FieldDropdown(selectedBoard().digitalPins), "in1") + .appendField(new Blockly.FieldDropdown(selectedBoard().digitalPins), "in2") + .appendField(new Blockly.FieldDropdown(selectedBoard().digitalPins), "in3") + .appendField(new Blockly.FieldDropdown(selectedBoard().digitalPins), "in4"); + this.setFieldValue("1", "in1"); + this.setFieldValue("2", "in2"); + this.setFieldValue("3", "in3"); + this.setFieldValue("4", "in4"); + this.appendDummyInput() + .appendField(Blockly.Msg.sensebox_motors_beginStepperMotor_rpm) + .appendField(new FieldSlider(10, 1, 15), "rpm"); + this.setPreviousStatement(true, null); + this.setNextStatement(true, null); + this.setColour(getColour().sensebox); + this.setTooltip(Blockly.Msg.sensebox_motors_beginStepperMotor_tooltip); + this.setHelpUrl(Blockly.Msg.sensebox_motors_beginStepperMotor_helpurl); + }, +}; + +Blockly.Blocks["sensebox_motors_moveStepperMotor"] = { + init: function () { + this.appendDummyInput() + .appendField(Blockly.Msg.sensebox_motors_moveStepperMotor); + this.appendDummyInput() + .appendField(Blockly.Msg.sensebox_motors_moveStepperMotor_step) + .setAlign(Blockly.ALIGN_RIGHT) + .appendField(new Blockly.FieldNumber(2048), "steps"); + this.setPreviousStatement(true, null); + this.setNextStatement(true, null); + this.setColour(getColour().sensebox); + this.setTooltip(Blockly.Msg.sensebox_motors_moveStepperMotor_tooltip); + this.setHelpUrl(Blockly.Msg.sensebox_motors_moveStepperMotor_helpurl); + }, +}; + +/** + * Servo Motor + * + */ + + +/** + * DC Motor + * + */ + diff --git a/src/components/Blockly/generator/index.js b/src/components/Blockly/generator/index.js index 9121e25..f25834a 100644 --- a/src/components/Blockly/generator/index.js +++ b/src/components/Blockly/generator/index.js @@ -5,6 +5,7 @@ import "./sensebox-telegram"; import "./sensebox-osem"; import "./sensebox-web"; import "./sensebox-display"; +import "./sensebox-motor"; import "./sensebox-lora"; import "./sensebox-led"; import "./sensebox"; diff --git a/src/components/Blockly/generator/sensebox-motor.js b/src/components/Blockly/generator/sensebox-motor.js new file mode 100644 index 0000000..9bc91d5 --- /dev/null +++ b/src/components/Blockly/generator/sensebox-motor.js @@ -0,0 +1,24 @@ +import * as Blockly from "blockly/core"; + +/*Stepper Motor Blocks*/ +Blockly.Arduino.sensebox_motors_beginStepperMotor = function () { + var in1 = this.getFieldValue("in1"); + var in2 = this.getFieldValue("in2"); + var in3 = this.getFieldValue("in3"); + var in4 = this.getFieldValue("in4"); + var rpm = this.getFieldValue("rpm"); + Blockly.Arduino.libraries_["stepper_motor"] = "#include "; + Blockly.Arduino.definitions_["define_stepper_motor"] = ` +#define SPU 2048 // steps per minute +Stepper stepper_motor(SPU, ${in1}, ${in2}, ${in3}, ${in4}); // stepper Motor`; + Blockly.Arduino.setupCode_["sensebox_stepper_motor_begin"] = + `Motor.setSpeed(${rpm}); // speed in rotations per minute`; + var code = ""; + return code; +}; + +Blockly.Arduino.sensebox_motors_moveStepperMotor = function () { + var steps = this.getFieldValue("steps"); + var code = "stepper_motor.step(2048); // 2048 steps correspond to one rotation"; + return code; +}; \ No newline at end of file diff --git a/src/components/Blockly/msg/en.js b/src/components/Blockly/msg/en.js index cf01e68..7ba9773 100644 --- a/src/components/Blockly/msg/en.js +++ b/src/components/Blockly/msg/en.js @@ -8,6 +8,7 @@ import { MATH } from "./en/math"; import { MQTT } from "./en/mqtt"; import { SENSEBOX } from "./en/sensebox"; import { DISPLAY } from "./en/sensebox-display"; +import { MOTORS } from "./en/sensebox-motors"; import { LED } from "./en/sensebox-led"; import { LORA } from "./en/sensebox-lora"; import { OSEM } from "./en/sensebox-osem"; @@ -34,6 +35,7 @@ export const En = { ...MATH, ...MQTT, ...DISPLAY, + ...MOTORS, ...LED, ...LORA, ...OSEM, diff --git a/src/components/Blockly/msg/en/sensebox-motors.js b/src/components/Blockly/msg/en/sensebox-motors.js new file mode 100644 index 0000000..7498cc8 --- /dev/null +++ b/src/components/Blockly/msg/en/sensebox-motors.js @@ -0,0 +1,18 @@ +export const MOTORS = { + + /** + * Motors + */ + + sensebox_motors_beginStepperMotor: "Initialize Stepper Motor (28BYJ-48)", + sensebox_motors_beginStepperMotor_rpm: "Rotations per Minute", + sensebox_motors_beginStepperMotor_pins: "Input Pins", + sensebox_motors_beginStepperMotor_tooltip: "TODO", + sensebox_motors_beginStepperMotor_helpurl: "TODO", + sensebox_motors_beginStepperMotor_step: "TODO", + + sensebox_motors_moveStepperMotor: "Move Stepper Motor (28BYJ-48)", + sensebox_motors_moveStepperMotor_step: "Steps:", + sensebox_motors_moveStepperMotor_tooltip: "TODO", + sensebox_motors_moveStepperMotor_helpurl: "TODO", +} \ No newline at end of file diff --git a/src/components/Blockly/toolbox/Toolbox.js b/src/components/Blockly/toolbox/Toolbox.js index 275af4d..d0efb24 100644 --- a/src/components/Blockly/toolbox/Toolbox.js +++ b/src/components/Blockly/toolbox/Toolbox.js @@ -298,6 +298,12 @@ class Toolbox extends React.Component { + + + + + + {/* From de15bcf9931e1c0fcad9b1390c39c4d5eb3b8667 Mon Sep 17 00:00:00 2001 From: Bjoern Date: Thu, 14 Jul 2022 00:24:37 +0200 Subject: [PATCH 2/4] added servo and dc motor blocks --- .../Blockly/blocks/sensebox-motor.js | 89 +++++++++++++++++-- .../Blockly/generator/sensebox-motor.js | 65 ++++++++++++-- .../Blockly/msg/en/sensebox-motors.js | 39 +++++++- src/components/Blockly/toolbox/Toolbox.js | 7 +- 4 files changed, 181 insertions(+), 19 deletions(-) diff --git a/src/components/Blockly/blocks/sensebox-motor.js b/src/components/Blockly/blocks/sensebox-motor.js index 15f115a..b52e538 100644 --- a/src/components/Blockly/blocks/sensebox-motor.js +++ b/src/components/Blockly/blocks/sensebox-motor.js @@ -1,6 +1,5 @@ import * as Blockly from "blockly/core"; import { getColour } from "../helpers/colour"; -import * as Types from "../helpers/types"; import { selectedBoard } from "../helpers/board"; import { FieldSlider } from "@blockly/field-slider"; @@ -39,10 +38,9 @@ Blockly.Blocks["sensebox_motors_moveStepperMotor"] = { init: function () { this.appendDummyInput() .appendField(Blockly.Msg.sensebox_motors_moveStepperMotor); - this.appendDummyInput() - .appendField(Blockly.Msg.sensebox_motors_moveStepperMotor_step) + this.appendValueInput("steps", "Number") .setAlign(Blockly.ALIGN_RIGHT) - .appendField(new Blockly.FieldNumber(2048), "steps"); + .appendField(Blockly.Msg.sensebox_motors_moveStepperMotor_step); this.setPreviousStatement(true, null); this.setNextStatement(true, null); this.setColour(getColour().sensebox); @@ -55,10 +53,91 @@ Blockly.Blocks["sensebox_motors_moveStepperMotor"] = { * Servo Motor * */ +Blockly.Blocks["sensebox_motors_beginServoMotor"] = { + init: function () { + this.appendDummyInput() + .appendField(Blockly.Msg.sensebox_motors_beginServoMotor); + this.appendDummyInput() + .appendField(Blockly.Msg.sensebox_motors_beginServoMotor_pin) + .appendField(new Blockly.FieldDropdown(selectedBoard().digitalPins), "pin") + .setAlign(Blockly.ALIGN_RIGHT); + this.setPreviousStatement(true, null); + this.setNextStatement(true, null); + this.setColour(getColour().sensebox); + this.setTooltip(Blockly.Msg.sensebox_motors_beginServoMotor_tooltip); + this.setHelpUrl(Blockly.Msg.sensebox_motors_beginServoMotor_helpurl); + }, +}; + +Blockly.Blocks["sensebox_motors_moveServoMotor"] = { + init: function () { + this.appendDummyInput() + .appendField(Blockly.Msg.sensebox_motors_moveServoMotor); + this.appendDummyInput() + .appendField(Blockly.Msg.sensebox_motors_moveServoMotor_pin) + .appendField(new Blockly.FieldDropdown(selectedBoard().digitalPins), "pin") + .setAlign(Blockly.ALIGN_RIGHT); + this.appendValueInput("degrees", "Number") + .appendField(Blockly.Msg.sensebox_motors_moveServoMotor_degrees) + .setAlign(Blockly.ALIGN_RIGHT); + this.setPreviousStatement(true, null); + this.setNextStatement(true, null); + this.setColour(getColour().sensebox); + this.setTooltip(Blockly.Msg.sensebox_motors_moveStepperMotor_tooltip); + this.setHelpUrl(Blockly.Msg.sensebox_motors_moveStepperMotor_helpurl); + }, +}; /** - * DC Motor + * I2C Motor Board * */ +Blockly.Blocks["sensebox_motors_I2CMotorBoard_begin"] = { + init: function () { + this.appendDummyInput() + .appendField(Blockly.Msg.sensebox_motors_I2CMotorBoard_begin); + this.setPreviousStatement(true, null); + this.setNextStatement(true, null); + this.setColour(getColour().sensebox); + this.setTooltip(Blockly.Msg.sensebox_motors_I2CMotorBoard_begin_tooltip); + this.setHelpUrl(Blockly.Msg.sensebox_motors_I2CMotorBoard_begin_helpurl); + }, +}; +Blockly.Blocks["sensebox_motors_I2CMotorBoard_moveDCMotor"] = { + init: function () { + var dropdownOptions = [[Blockly.Msg.sensebox_motors_I2CMotorBoard_moveDCMotor_left, '1'], + [Blockly.Msg.sensebox_motors_I2CMotorBoard_moveDCMotor_right, '2']]; + + this.appendDummyInput() + .appendField(Blockly.Msg.sensebox_motors_I2CMotorBoard_moveDCMotor) + .appendField(new Blockly.FieldDropdown(dropdownOptions), "motor") + .appendField(Blockly.Msg.sensebox_motors_I2CMotorBoard_moveDCMotor_motor); + this.appendValueInput("speed", "Number") + .appendField(Blockly.Msg.sensebox_motors_I2CMotorBoard_moveDCMotor_speed) + .setAlign(Blockly.ALIGN_RIGHT); + this.setPreviousStatement(true, null); + this.setNextStatement(true, null); + this.setColour(getColour().sensebox); + this.setTooltip(Blockly.Msg.sensebox_motors_I2CMotorBoard_moveDCMotor_tooltip); + this.setHelpUrl(Blockly.Msg.sensebox_motors_I2CMotorBoard_moveDCMotor_helpurl); + }, +}; + +Blockly.Blocks["sensebox_motors_I2CMotorBoard_stopDCMotor"] = { + init: function () { + var dropdownOptions = [[Blockly.Msg.sensebox_motors_I2CMotorBoard_stopDCMotor_left, '1'], + [Blockly.Msg.sensebox_motors_I2CMotorBoard_stopDCMotor_right, '2']]; + + this.appendDummyInput() + .appendField(Blockly.Msg.sensebox_motors_I2CMotorBoard_stopDCMotor) + .appendField(new Blockly.FieldDropdown(dropdownOptions), "motor") + .appendField(Blockly.Msg.sensebox_motors_I2CMotorBoard_stopDCMotor_motor) + this.setPreviousStatement(true, null); + this.setNextStatement(true, null); + this.setColour(getColour().sensebox); + this.setTooltip(Blockly.Msg.sensebox_motors_I2CMotorBoard_stopDCMotor_tooltip); + this.setHelpUrl(Blockly.Msg.sensebox_motors_I2CMotorBoard_stopDCMotor_helpurl); + }, +}; \ No newline at end of file diff --git a/src/components/Blockly/generator/sensebox-motor.js b/src/components/Blockly/generator/sensebox-motor.js index 9bc91d5..616c236 100644 --- a/src/components/Blockly/generator/sensebox-motor.js +++ b/src/components/Blockly/generator/sensebox-motor.js @@ -1,24 +1,73 @@ import * as Blockly from "blockly/core"; -/*Stepper Motor Blocks*/ +/** + * Stepper Motor + */ Blockly.Arduino.sensebox_motors_beginStepperMotor = function () { var in1 = this.getFieldValue("in1"); var in2 = this.getFieldValue("in2"); var in3 = this.getFieldValue("in3"); var in4 = this.getFieldValue("in4"); var rpm = this.getFieldValue("rpm"); - Blockly.Arduino.libraries_["stepper_motor"] = "#include "; + Blockly.Arduino.libraries_["include_stepper_motor"] = "#include "; Blockly.Arduino.definitions_["define_stepper_motor"] = ` -#define SPU 2048 // steps per minute -Stepper stepper_motor(SPU, ${in1}, ${in2}, ${in3}, ${in4}); // stepper Motor`; - Blockly.Arduino.setupCode_["sensebox_stepper_motor_begin"] = - `Motor.setSpeed(${rpm}); // speed in rotations per minute`; +Stepper stepper_motor(2048, ${in1}, ${in2}, ${in3}, ${in4}); // stepper Motor with 2048 steps per rotation`; + Blockly.Arduino.setupCode_["setup_stepper_motor"] = + `stepper_motor.setSpeed(${rpm}); // speed in rotations per minute`; var code = ""; return code; }; Blockly.Arduino.sensebox_motors_moveStepperMotor = function () { - var steps = this.getFieldValue("steps"); - var code = "stepper_motor.step(2048); // 2048 steps correspond to one rotation"; + var steps = Blockly.Arduino.valueToCode(this, 'steps', Blockly.Arduino.ORDER_ATOMIC) || '2048'; + var code = `stepper_motor.step(${steps}); // 2048 steps correspond to one rotation\n`; + return code; +}; + + +/** + * Servo Motor + * + */ +Blockly.Arduino.sensebox_motors_beginServoMotor = function () { + var pin = this.getFieldValue("pin"); + Blockly.Arduino.libraries_["include_servo_motor"] = "#include "; + Blockly.Arduino.definitions_["define_servo_motor"] = `Servo servo_motor_${pin}; // servo Motor`; + Blockly.Arduino.setupCode_["setup_servo_moto"] = `servo_motor_${pin}.attach(${pin}); // attach servo motor to pin ${pin}`; + var code = ""; + return code; +}; + +Blockly.Arduino.sensebox_motors_moveServoMotor = function () { + var pin = this.getFieldValue("pin"); + var degrees = Blockly.Arduino.valueToCode(this, 'degrees', Blockly.Arduino.ORDER_ATOMIC) || "90"; + var code = `servo_motor_${pin}.write(${degrees}); // move servo motor to ${degrees} degrees\n`; + return code; +}; + +/** + * I2C Motor Board + * + */ +Blockly.Arduino.sensebox_motors_I2CMotorBoard_begin = function () { + Blockly.Arduino.libraries_["include_i2c_motor_board"] = "#include "; + Blockly.Arduino.definitions_["define_i2c_motor_board"] = ` +#define I2C_MOTOR_BOARD_ADDRESS 0x0f // default I2C address of I2C Motor Board`; + Blockly.Arduino.setupCode_["setup_i2c_motor_board"] = ` + Motor.begin(I2C_MOTOR_BOARD_ADDRESS); // Initialize I2C Motor Board`; + var code = ""; + return code; +}; + +Blockly.Arduino.sensebox_motors_I2CMotorBoard_moveDCMotor = function () { + var motor = this.getFieldValue("motor"); + var speed = Blockly.Arduino.valueToCode(this, 'speed', Blockly.Arduino.ORDER_ATOMIC) || "50"; + var code = `Motor.speed(MOTOR${motor}, ${speed}); // set speed of motor\n`; + return code; +}; + +Blockly.Arduino.sensebox_motors_I2CMotorBoard_stopDCMotor = function () { + var motor = this.getFieldValue("motor"); + var code = `Motor.stop(MOTOR${motor}); // stop motor\n`; return code; }; \ No newline at end of file diff --git a/src/components/Blockly/msg/en/sensebox-motors.js b/src/components/Blockly/msg/en/sensebox-motors.js index 7498cc8..88a3633 100644 --- a/src/components/Blockly/msg/en/sensebox-motors.js +++ b/src/components/Blockly/msg/en/sensebox-motors.js @@ -5,14 +5,45 @@ export const MOTORS = { */ sensebox_motors_beginStepperMotor: "Initialize Stepper Motor (28BYJ-48)", - sensebox_motors_beginStepperMotor_rpm: "Rotations per Minute", - sensebox_motors_beginStepperMotor_pins: "Input Pins", + sensebox_motors_beginStepperMotor_rpm: "Rotations per Minute:", + sensebox_motors_beginStepperMotor_pins: "Input Pins (IN1-IN4):", sensebox_motors_beginStepperMotor_tooltip: "TODO", sensebox_motors_beginStepperMotor_helpurl: "TODO", sensebox_motors_beginStepperMotor_step: "TODO", sensebox_motors_moveStepperMotor: "Move Stepper Motor (28BYJ-48)", - sensebox_motors_moveStepperMotor_step: "Steps:", + sensebox_motors_moveStepperMotor_step: "Steps (2048 steps equal a full rotation):", sensebox_motors_moveStepperMotor_tooltip: "TODO", sensebox_motors_moveStepperMotor_helpurl: "TODO", -} \ No newline at end of file + + sensebox_motors_beginServoMotor: "Initialize Servo Motor", + sensebox_motors_beginServoMotor_pin: "Pin:", + sensebox_motors_beginServoMotor_tooltip: "TODO", + sensebox_motors_beginServoMotor_helpurl: "TODO", + + sensebox_motors_moveServoMotor: "Move Servo Motor", + sensebox_motors_moveServoMotor_pin: "Pin:", + sensebox_motors_moveServoMotor_degrees: "Degrees:", + sensebox_motors_moveStepperMotor_tooltip: "TODO", + sensebox_motors_moveStepperMotor_helpurl: "TODO", + + sensebox_motors_I2CMotorBoard_begin: "Initialize I2C Motor Board", + sensebox_motors_I2CMotorBoard_begin_tooltip: "TODO", + sensebox_motors_I2CMotorBoard_begin_helpurl: "TODO", + + sensebox_motors_I2CMotorBoard_moveDCMotor: "Move", + sensebox_motors_I2CMotorBoard_moveDCMotor_left: "left", + sensebox_motors_I2CMotorBoard_moveDCMotor_right: "right", + sensebox_motors_I2CMotorBoard_moveDCMotor_motor: "DC Motor at I2C Motor Board", + sensebox_motors_I2CMotorBoard_moveDCMotor_speed: "Speed (between -100 and 100):", + sensebox_motors_I2CMotorBoard_moveDCMotor_tooltip: "TODO", + sensebox_motors_I2CMotorBoard_moveDCMotor_helpurl: "TODO", + + sensebox_motors_I2CMotorBoard_stopDCMotor: "Stop ", + sensebox_motors_I2CMotorBoard_stopDCMotor_left: "left", + sensebox_motors_I2CMotorBoard_stopDCMotor_right: "right", + sensebox_motors_I2CMotorBoard_stopDCMotor_motor: "DC Motor at I2C Motor Board", + sensebox_motors_I2CMotorBoard_stopDCMotor_tooltip: "TODO", + sensebox_motors_I2CMotorBoard_stopDCMotor_helpurl: "TODO", +}; + diff --git a/src/components/Blockly/toolbox/Toolbox.js b/src/components/Blockly/toolbox/Toolbox.js index d0efb24..575b9af 100644 --- a/src/components/Blockly/toolbox/Toolbox.js +++ b/src/components/Blockly/toolbox/Toolbox.js @@ -301,8 +301,11 @@ class Toolbox extends React.Component { - - + + + + + {/* From 047588842c567d91207f52b688056f26ba90dd15 Mon Sep 17 00:00:00 2001 From: Bjoern Luig Date: Sat, 30 Jul 2022 23:32:22 +0200 Subject: [PATCH 3/4] added german messages and put only servo motor in toolbox --- src/components/Blockly/blocks/index.js | 2 +- .../{sensebox-motor.js => sensebox-motors.js} | 97 ++++++++++--------- src/components/Blockly/generator/index.js | 2 +- .../{sensebox-motor.js => sensebox-motors.js} | 56 ++++++----- src/components/Blockly/msg/de.js | 2 + .../Blockly/msg/de/sensebox-motors.js | 48 +++++++++ .../Blockly/msg/en/sensebox-motors.js | 37 ++++--- src/components/Blockly/toolbox/Toolbox.js | 28 +++++- 8 files changed, 172 insertions(+), 100 deletions(-) rename src/components/Blockly/blocks/{sensebox-motor.js => sensebox-motors.js} (96%) rename src/components/Blockly/generator/{sensebox-motor.js => sensebox-motors.js} (84%) create mode 100644 src/components/Blockly/msg/de/sensebox-motors.js diff --git a/src/components/Blockly/blocks/index.js b/src/components/Blockly/blocks/index.js index 164fb14..87710ae 100644 --- a/src/components/Blockly/blocks/index.js +++ b/src/components/Blockly/blocks/index.js @@ -6,7 +6,7 @@ import "./sensebox-telegram"; import "./sensebox-osem"; import "./sensebox-web"; import "./sensebox-display"; -import "./sensebox-motor"; +import "./sensebox-motors"; import "./sensebox-lora"; import "./sensebox-led"; import "./sensebox-rtc"; diff --git a/src/components/Blockly/blocks/sensebox-motor.js b/src/components/Blockly/blocks/sensebox-motors.js similarity index 96% rename from src/components/Blockly/blocks/sensebox-motor.js rename to src/components/Blockly/blocks/sensebox-motors.js index b52e538..3df4a76 100644 --- a/src/components/Blockly/blocks/sensebox-motor.js +++ b/src/components/Blockly/blocks/sensebox-motors.js @@ -3,52 +3,6 @@ import { getColour } from "../helpers/colour"; import { selectedBoard } from "../helpers/board"; import { FieldSlider } from "@blockly/field-slider"; -/** - * Stepper Motor - * - */ -Blockly.Blocks["sensebox_motors_beginStepperMotor"] = { - init: function () { - this.appendDummyInput() - .appendField(Blockly.Msg.sensebox_motors_beginStepperMotor); - this.appendDummyInput() - .appendField(Blockly.Msg.sensebox_motors_beginStepperMotor_pins); - this.appendDummyInput() - .setAlign(Blockly.ALIGN_RIGHT) - .appendField(new Blockly.FieldDropdown(selectedBoard().digitalPins), "in1") - .appendField(new Blockly.FieldDropdown(selectedBoard().digitalPins), "in2") - .appendField(new Blockly.FieldDropdown(selectedBoard().digitalPins), "in3") - .appendField(new Blockly.FieldDropdown(selectedBoard().digitalPins), "in4"); - this.setFieldValue("1", "in1"); - this.setFieldValue("2", "in2"); - this.setFieldValue("3", "in3"); - this.setFieldValue("4", "in4"); - this.appendDummyInput() - .appendField(Blockly.Msg.sensebox_motors_beginStepperMotor_rpm) - .appendField(new FieldSlider(10, 1, 15), "rpm"); - this.setPreviousStatement(true, null); - this.setNextStatement(true, null); - this.setColour(getColour().sensebox); - this.setTooltip(Blockly.Msg.sensebox_motors_beginStepperMotor_tooltip); - this.setHelpUrl(Blockly.Msg.sensebox_motors_beginStepperMotor_helpurl); - }, -}; - -Blockly.Blocks["sensebox_motors_moveStepperMotor"] = { - init: function () { - this.appendDummyInput() - .appendField(Blockly.Msg.sensebox_motors_moveStepperMotor); - this.appendValueInput("steps", "Number") - .setAlign(Blockly.ALIGN_RIGHT) - .appendField(Blockly.Msg.sensebox_motors_moveStepperMotor_step); - this.setPreviousStatement(true, null); - this.setNextStatement(true, null); - this.setColour(getColour().sensebox); - this.setTooltip(Blockly.Msg.sensebox_motors_moveStepperMotor_tooltip); - this.setHelpUrl(Blockly.Msg.sensebox_motors_moveStepperMotor_helpurl); - }, -}; - /** * Servo Motor * @@ -83,8 +37,8 @@ Blockly.Blocks["sensebox_motors_moveServoMotor"] = { this.setPreviousStatement(true, null); this.setNextStatement(true, null); this.setColour(getColour().sensebox); - this.setTooltip(Blockly.Msg.sensebox_motors_moveStepperMotor_tooltip); - this.setHelpUrl(Blockly.Msg.sensebox_motors_moveStepperMotor_helpurl); + this.setTooltip(Blockly.Msg.sensebox_motors_moveServoMotor_tooltip); + this.setHelpUrl(Blockly.Msg.sensebox_motors_moveServoMotor_helpurl); }, }; @@ -140,4 +94,51 @@ Blockly.Blocks["sensebox_motors_I2CMotorBoard_stopDCMotor"] = { this.setTooltip(Blockly.Msg.sensebox_motors_I2CMotorBoard_stopDCMotor_tooltip); this.setHelpUrl(Blockly.Msg.sensebox_motors_I2CMotorBoard_stopDCMotor_helpurl); }, +}; + + +/** + * Stepper Motor + * + */ +Blockly.Blocks["sensebox_motors_beginStepperMotor"] = { + init: function () { + this.appendDummyInput() + .appendField(Blockly.Msg.sensebox_motors_beginStepperMotor); + this.appendDummyInput() + .appendField(Blockly.Msg.sensebox_motors_beginStepperMotor_pins); + this.appendDummyInput() + .setAlign(Blockly.ALIGN_RIGHT) + .appendField(new Blockly.FieldDropdown(selectedBoard().digitalPins), "in1") + .appendField(new Blockly.FieldDropdown(selectedBoard().digitalPins), "in2") + .appendField(new Blockly.FieldDropdown(selectedBoard().digitalPins), "in3") + .appendField(new Blockly.FieldDropdown(selectedBoard().digitalPins), "in4"); + this.setFieldValue("1", "in1"); + this.setFieldValue("2", "in2"); + this.setFieldValue("3", "in3"); + this.setFieldValue("4", "in4"); + this.appendDummyInput() + .appendField(Blockly.Msg.sensebox_motors_beginStepperMotor_rpm) + .appendField(new FieldSlider(3, 1, 3), "rpm"); + this.setPreviousStatement(true, null); + this.setNextStatement(true, null); + this.setColour(getColour().sensebox); + this.setTooltip(Blockly.Msg.sensebox_motors_beginStepperMotor_tooltip); + this.setHelpUrl(Blockly.Msg.sensebox_motors_beginStepperMotor_helpurl); + }, +}; + +Blockly.Blocks["sensebox_motors_moveStepperMotor"] = { + init: function () { + this.appendDummyInput() + .appendField(Blockly.Msg.sensebox_motors_moveStepperMotor); + this.appendValueInput("steps", "Number") + .setAlign(Blockly.ALIGN_RIGHT) + .appendField(Blockly.Msg.sensebox_motors_moveStepperMotor_step); + this.setPreviousStatement(true, null); + this.setNextStatement(true, null); + this.setColour(getColour().sensebox); + this.setTooltip(Blockly.Msg.sensebox_motors_moveStepperMotor_tooltip); + this.setHelpUrl(Blockly.Msg.sensebox_motors_moveStepperMotor_helpurl); + }, }; \ No newline at end of file diff --git a/src/components/Blockly/generator/index.js b/src/components/Blockly/generator/index.js index f25834a..cc10ff7 100644 --- a/src/components/Blockly/generator/index.js +++ b/src/components/Blockly/generator/index.js @@ -5,7 +5,7 @@ import "./sensebox-telegram"; import "./sensebox-osem"; import "./sensebox-web"; import "./sensebox-display"; -import "./sensebox-motor"; +import "./sensebox-motors"; import "./sensebox-lora"; import "./sensebox-led"; import "./sensebox"; diff --git a/src/components/Blockly/generator/sensebox-motor.js b/src/components/Blockly/generator/sensebox-motors.js similarity index 84% rename from src/components/Blockly/generator/sensebox-motor.js rename to src/components/Blockly/generator/sensebox-motors.js index 616c236..b265039 100644 --- a/src/components/Blockly/generator/sensebox-motor.js +++ b/src/components/Blockly/generator/sensebox-motors.js @@ -1,29 +1,5 @@ import * as Blockly from "blockly/core"; -/** - * Stepper Motor - */ -Blockly.Arduino.sensebox_motors_beginStepperMotor = function () { - var in1 = this.getFieldValue("in1"); - var in2 = this.getFieldValue("in2"); - var in3 = this.getFieldValue("in3"); - var in4 = this.getFieldValue("in4"); - var rpm = this.getFieldValue("rpm"); - Blockly.Arduino.libraries_["include_stepper_motor"] = "#include "; - Blockly.Arduino.definitions_["define_stepper_motor"] = ` -Stepper stepper_motor(2048, ${in1}, ${in2}, ${in3}, ${in4}); // stepper Motor with 2048 steps per rotation`; - Blockly.Arduino.setupCode_["setup_stepper_motor"] = - `stepper_motor.setSpeed(${rpm}); // speed in rotations per minute`; - var code = ""; - return code; -}; - -Blockly.Arduino.sensebox_motors_moveStepperMotor = function () { - var steps = Blockly.Arduino.valueToCode(this, 'steps', Blockly.Arduino.ORDER_ATOMIC) || '2048'; - var code = `stepper_motor.step(${steps}); // 2048 steps correspond to one rotation\n`; - return code; -}; - /** * Servo Motor @@ -31,9 +7,10 @@ Blockly.Arduino.sensebox_motors_moveStepperMotor = function () { */ Blockly.Arduino.sensebox_motors_beginServoMotor = function () { var pin = this.getFieldValue("pin"); + Blockly.Arduino.libraries_["library_senseBoxIO"] = "#include "; Blockly.Arduino.libraries_["include_servo_motor"] = "#include "; - Blockly.Arduino.definitions_["define_servo_motor"] = `Servo servo_motor_${pin}; // servo Motor`; - Blockly.Arduino.setupCode_["setup_servo_moto"] = `servo_motor_${pin}.attach(${pin}); // attach servo motor to pin ${pin}`; + Blockly.Arduino.definitions_[`define_servo_motor_${pin}`] = `Servo servo_motor_${pin}; // servo Motor`; + Blockly.Arduino.setupCode_[`setup_servo_motor_${pin}`] = `servo_motor_${pin}.attach(${pin}); // attach servo motor to pin ${pin}`; var code = ""; return code; }; @@ -50,6 +27,7 @@ Blockly.Arduino.sensebox_motors_moveServoMotor = function () { * */ Blockly.Arduino.sensebox_motors_I2CMotorBoard_begin = function () { + Blockly.Arduino.libraries_["library_senseBoxIO"] = "#include "; Blockly.Arduino.libraries_["include_i2c_motor_board"] = "#include "; Blockly.Arduino.definitions_["define_i2c_motor_board"] = ` #define I2C_MOTOR_BOARD_ADDRESS 0x0f // default I2C address of I2C Motor Board`; @@ -70,4 +48,30 @@ Blockly.Arduino.sensebox_motors_I2CMotorBoard_stopDCMotor = function () { var motor = this.getFieldValue("motor"); var code = `Motor.stop(MOTOR${motor}); // stop motor\n`; return code; +}; + + +/** + * Stepper Motor + */ +Blockly.Arduino.sensebox_motors_beginStepperMotor = function () { + var in1 = this.getFieldValue("in1"); + var in2 = this.getFieldValue("in2"); + var in3 = this.getFieldValue("in3"); + var in4 = this.getFieldValue("in4"); + var rpm = this.getFieldValue("rpm"); + Blockly.Arduino.libraries_["library_senseBoxIO"] = "#include "; + Blockly.Arduino.libraries_["include_stepper_motor"] = "#include "; + Blockly.Arduino.definitions_["define_stepper_motor"] = ` +Stepper stepper_motor(2048, ${in1}, ${in2}, ${in3}, ${in4}); // stepper Motor with 2048 steps per rotation`; + Blockly.Arduino.setupCode_["setup_stepper_motor"] = + `stepper_motor.setSpeed(${rpm}); // speed in rotations per minute`; + var code = ""; + return code; +}; + +Blockly.Arduino.sensebox_motors_moveStepperMotor = function () { + var steps = Blockly.Arduino.valueToCode(this, 'steps', Blockly.Arduino.ORDER_ATOMIC) || '2048'; + var code = `stepper_motor.step(${steps}); // 2048 steps correspond to one rotation\n`; + return code; }; \ No newline at end of file diff --git a/src/components/Blockly/msg/de.js b/src/components/Blockly/msg/de.js index c4211f7..020b5dd 100644 --- a/src/components/Blockly/msg/de.js +++ b/src/components/Blockly/msg/de.js @@ -7,6 +7,7 @@ import { LOOPS } from "./de/loops"; import { MATH } from "./de/math"; import { MQTT } from "./de/mqtt"; import { DISPLAY } from "./de/sensebox-display"; +import { MOTORS } from "./de/sensebox-motors"; import { LED } from "./de/sensebox-led"; import { LORA } from "./de/sensebox-lora"; import { OSEM } from "./de/sensebox-osem"; @@ -34,6 +35,7 @@ export const De = { ...MATH, ...MQTT, ...DISPLAY, + ...MOTORS, ...LED, ...LORA, ...OSEM, diff --git a/src/components/Blockly/msg/de/sensebox-motors.js b/src/components/Blockly/msg/de/sensebox-motors.js new file mode 100644 index 0000000..686d338 --- /dev/null +++ b/src/components/Blockly/msg/de/sensebox-motors.js @@ -0,0 +1,48 @@ +export const MOTORS = { + + /** + * Motors + */ + + sensebox_motors_beginServoMotor: "Initialisiere Servomotor", + sensebox_motors_beginServoMotor_pin: "Pin:", + sensebox_motors_beginServoMotor_tooltip: "Verbinde einen digitalen Pin mit dem orangen Kabel des Servomotrors. Verbinde zusätzlich GND mit GND (schwarzes und braunes Kabel) und 5V mit 5V (rotes Kabel).", + sensebox_motors_beginServoMotor_helpurl: "https://de.wikipedia.org/wiki/Servomotor", + + sensebox_motors_moveServoMotor: "Bewege Servomotor", + sensebox_motors_moveServoMotor_pin: "Pin:", + sensebox_motors_moveServoMotor_degrees: "Winkel in Grad:", + sensebox_motors_moveServoMotor_tooltip: "Der Servomotor kann zwischen 0 und 180 Grad bewegt werden.", + sensebox_motors_moveServoMotor_helpurl: "https://de.wikipedia.org/wiki/Servomotor", + + sensebox_motors_I2CMotorBoard_begin: "Initialize I2C Motor Board", + sensebox_motors_I2CMotorBoard_begin_tooltip: "Connect the I2C Moztor Board with the two DC Motors to one of the five I2C-Ports. Use this Block inside the setup()-function.", + sensebox_motors_I2CMotorBoard_begin_helpurl: "TODO", + + sensebox_motors_I2CMotorBoard_moveDCMotor: "Move", + sensebox_motors_I2CMotorBoard_moveDCMotor_left: "left", + sensebox_motors_I2CMotorBoard_moveDCMotor_right: "right", + sensebox_motors_I2CMotorBoard_moveDCMotor_motor: "DC Motor at I2C Motor Board", + sensebox_motors_I2CMotorBoard_moveDCMotor_speed: "Speed:", + sensebox_motors_I2CMotorBoard_moveDCMotor_tooltip: "You can set the Speed between -100 and 100.", + sensebox_motors_I2CMotorBoard_moveDCMotor_helpurl: "TODO", + + sensebox_motors_I2CMotorBoard_stopDCMotor: "Stop ", + sensebox_motors_I2CMotorBoard_stopDCMotor_left: "left", + sensebox_motors_I2CMotorBoard_stopDCMotor_right: "right", + sensebox_motors_I2CMotorBoard_stopDCMotor_motor: "DC Motor at I2C Motor Board", + sensebox_motors_I2CMotorBoard_stopDCMotor_tooltip: "TODO", + sensebox_motors_I2CMotorBoard_stopDCMotor_helpurl: "TODO", + + sensebox_motors_beginStepperMotor: "Initialize Stepper Motor (28BYJ-48)", + sensebox_motors_beginStepperMotor_rpm: "Rotations per Minute:", + sensebox_motors_beginStepperMotor_pins: "Input Pins (IN1-IN4):", + sensebox_motors_beginStepperMotor_tooltip: "Connect four of the the digital pins in the right order to the inputs IN1-IN4 on the stepper motor board. Connect a GND pin (black wire) to the minus pin and a 5V pin (red wire) to the plus pin on the board. Also connect the stepper motor to this Board. Use this Block inside the setup()-function.", + sensebox_motors_beginStepperMotor_helpurl: "TODO", + + sensebox_motors_moveStepperMotor: "Move Stepper Motor (28BYJ-48)", + sensebox_motors_moveStepperMotor_step: "Steps:", + sensebox_motors_moveStepperMotor_tooltip: "Move stepper motor. 2048 steps equal a full rotation.", + sensebox_motors_moveStepperMotor_helpurl: "TODO", +}; + diff --git a/src/components/Blockly/msg/en/sensebox-motors.js b/src/components/Blockly/msg/en/sensebox-motors.js index 88a3633..00f7462 100644 --- a/src/components/Blockly/msg/en/sensebox-motors.js +++ b/src/components/Blockly/msg/en/sensebox-motors.js @@ -4,39 +4,27 @@ export const MOTORS = { * Motors */ - sensebox_motors_beginStepperMotor: "Initialize Stepper Motor (28BYJ-48)", - sensebox_motors_beginStepperMotor_rpm: "Rotations per Minute:", - sensebox_motors_beginStepperMotor_pins: "Input Pins (IN1-IN4):", - sensebox_motors_beginStepperMotor_tooltip: "TODO", - sensebox_motors_beginStepperMotor_helpurl: "TODO", - sensebox_motors_beginStepperMotor_step: "TODO", - - sensebox_motors_moveStepperMotor: "Move Stepper Motor (28BYJ-48)", - sensebox_motors_moveStepperMotor_step: "Steps (2048 steps equal a full rotation):", - sensebox_motors_moveStepperMotor_tooltip: "TODO", - sensebox_motors_moveStepperMotor_helpurl: "TODO", - sensebox_motors_beginServoMotor: "Initialize Servo Motor", sensebox_motors_beginServoMotor_pin: "Pin:", - sensebox_motors_beginServoMotor_tooltip: "TODO", - sensebox_motors_beginServoMotor_helpurl: "TODO", + sensebox_motors_beginServoMotor_tooltip: "Connect one of the the digital pins to the orange wire of the Servo Motor. Also Connect GND to GND (black and brown wire) and 5V to 5V (red wire).", + sensebox_motors_beginServoMotor_helpurl: "https://en.wikipedia.org/wiki/Servomotor", sensebox_motors_moveServoMotor: "Move Servo Motor", sensebox_motors_moveServoMotor_pin: "Pin:", sensebox_motors_moveServoMotor_degrees: "Degrees:", - sensebox_motors_moveStepperMotor_tooltip: "TODO", - sensebox_motors_moveStepperMotor_helpurl: "TODO", + sensebox_motors_moveServoMotor_tooltip: "The Servo Motor can be moved to a spezific angle between 0 and 180 degrees.", + sensebox_motors_moveServoMotor_helpurl: "https://en.wikipedia.org/wiki/Servomotor", sensebox_motors_I2CMotorBoard_begin: "Initialize I2C Motor Board", - sensebox_motors_I2CMotorBoard_begin_tooltip: "TODO", + sensebox_motors_I2CMotorBoard_begin_tooltip: "Connect the I2C Moztor Board with the two DC Motors to one of the five I2C-Ports. Use this Block inside the setup()-function.", sensebox_motors_I2CMotorBoard_begin_helpurl: "TODO", sensebox_motors_I2CMotorBoard_moveDCMotor: "Move", sensebox_motors_I2CMotorBoard_moveDCMotor_left: "left", sensebox_motors_I2CMotorBoard_moveDCMotor_right: "right", sensebox_motors_I2CMotorBoard_moveDCMotor_motor: "DC Motor at I2C Motor Board", - sensebox_motors_I2CMotorBoard_moveDCMotor_speed: "Speed (between -100 and 100):", - sensebox_motors_I2CMotorBoard_moveDCMotor_tooltip: "TODO", + sensebox_motors_I2CMotorBoard_moveDCMotor_speed: "Speed:", + sensebox_motors_I2CMotorBoard_moveDCMotor_tooltip: "You can set the Speed between -100 and 100.", sensebox_motors_I2CMotorBoard_moveDCMotor_helpurl: "TODO", sensebox_motors_I2CMotorBoard_stopDCMotor: "Stop ", @@ -45,5 +33,16 @@ export const MOTORS = { sensebox_motors_I2CMotorBoard_stopDCMotor_motor: "DC Motor at I2C Motor Board", sensebox_motors_I2CMotorBoard_stopDCMotor_tooltip: "TODO", sensebox_motors_I2CMotorBoard_stopDCMotor_helpurl: "TODO", + + sensebox_motors_beginStepperMotor: "Initialize Stepper Motor (28BYJ-48)", + sensebox_motors_beginStepperMotor_rpm: "Rotations per Minute:", + sensebox_motors_beginStepperMotor_pins: "Input Pins (IN1-IN4):", + sensebox_motors_beginStepperMotor_tooltip: "Connect four of the the digital pins in the right order to the inputs IN1-IN4 on the stepper motor board. Connect a GND pin (black wire) to the minus pin and a 5V pin (red wire) to the plus pin on the board. Also connect the stepper motor to this Board. Use this Block inside the setup()-function.", + sensebox_motors_beginStepperMotor_helpurl: "TODO", + + sensebox_motors_moveStepperMotor: "Move Stepper Motor (28BYJ-48)", + sensebox_motors_moveStepperMotor_step: "Steps:", + sensebox_motors_moveStepperMotor_tooltip: "Move stepper motor. 2048 steps equal a full rotation.", + sensebox_motors_moveStepperMotor_helpurl: "TODO", }; diff --git a/src/components/Blockly/toolbox/Toolbox.js b/src/components/Blockly/toolbox/Toolbox.js index 575b9af..c83d112 100644 --- a/src/components/Blockly/toolbox/Toolbox.js +++ b/src/components/Blockly/toolbox/Toolbox.js @@ -299,13 +299,31 @@ class Toolbox extends React.Component { - - - - - + + + + 90 + + + + {/* + + + + 100 + + + + + + + + 2048 + + + */} {/* From 078bbe0477dd54d8121033d5767b6f97af582b0b Mon Sep 17 00:00:00 2001 From: Mario Pesch Date: Wed, 3 Aug 2022 11:19:59 +0200 Subject: [PATCH 4/4] update toolbox and change colour --- package-lock.json | 34 ++++++++++-- .../Blockly/blocks/sensebox-motors.js | 14 ++--- src/components/Blockly/helpers/colour.js | 1 + src/components/Blockly/msg/de/ui.js | 1 + src/components/Blockly/msg/en/ui.js | 1 + src/components/Blockly/toolbox/Toolbox.js | 55 ++++++++++--------- 6 files changed, 66 insertions(+), 40 deletions(-) diff --git a/package-lock.json b/package-lock.json index 83aa447..fa707a2 100644 --- a/package-lock.json +++ b/package-lock.json @@ -5077,6 +5077,17 @@ "url": "https://github.com/sponsors/sindresorhus" } }, + "node_modules/ansi-escapes/node_modules/type-fest": { + "version": "0.21.3", + "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.21.3.tgz", + "integrity": "sha512-t0rzBq87m3fVcduHDUFhKmyyX+9eo6WQjZvf51Ea/M0Q7+T374Jp1aUiyUl0GKxp8M/OETVHSDvmkyPgvX+X2w==", + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, "node_modules/ansi-html": { "version": "0.0.7", "resolved": "https://registry.npmjs.org/ansi-html/-/ansi-html-0.0.7.tgz", @@ -22556,9 +22567,11 @@ } }, "node_modules/type-fest": { - "version": "0.21.3", - "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.21.3.tgz", - "integrity": "sha512-t0rzBq87m3fVcduHDUFhKmyyX+9eo6WQjZvf51Ea/M0Q7+T374Jp1aUiyUl0GKxp8M/OETVHSDvmkyPgvX+X2w==", + "version": "0.13.1", + "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.13.1.tgz", + "integrity": "sha512-34R7HTnG0XIJcBSn5XhDd7nNFPRcXYRZrBB2O2jdKqYODldSzBAqzsWoZYYvduky73toYS/ESqxPvkDf/F0XMg==", + "optional": true, + "peer": true, "engines": { "node": ">=10" }, @@ -28548,6 +28561,13 @@ "integrity": "sha512-gKXj5ALrKWQLsYG9jlTRmR/xKluxHV+Z9QEwNIgCfM1/uwPMCuzVVnh5mwTd+OuBZcwSIMbqssNWRm1lE51QaQ==", "requires": { "type-fest": "^0.21.3" + }, + "dependencies": { + "type-fest": { + "version": "0.21.3", + "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.21.3.tgz", + "integrity": "sha512-t0rzBq87m3fVcduHDUFhKmyyX+9eo6WQjZvf51Ea/M0Q7+T374Jp1aUiyUl0GKxp8M/OETVHSDvmkyPgvX+X2w==" + } } }, "ansi-html": { @@ -42256,9 +42276,11 @@ "integrity": "sha512-0fr/mIH1dlO+x7TlcMy+bIDqKPsw/70tVyeHW787goQjhmqaZe10uwLujubK9q9Lg6Fiho1KUKDYz0Z7k7g5/g==" }, "type-fest": { - "version": "0.21.3", - "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.21.3.tgz", - "integrity": "sha512-t0rzBq87m3fVcduHDUFhKmyyX+9eo6WQjZvf51Ea/M0Q7+T374Jp1aUiyUl0GKxp8M/OETVHSDvmkyPgvX+X2w==" + "version": "0.13.1", + "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.13.1.tgz", + "integrity": "sha512-34R7HTnG0XIJcBSn5XhDd7nNFPRcXYRZrBB2O2jdKqYODldSzBAqzsWoZYYvduky73toYS/ESqxPvkDf/F0XMg==", + "optional": true, + "peer": true }, "type-is": { "version": "1.6.18", diff --git a/src/components/Blockly/blocks/sensebox-motors.js b/src/components/Blockly/blocks/sensebox-motors.js index 3df4a76..5fdad13 100644 --- a/src/components/Blockly/blocks/sensebox-motors.js +++ b/src/components/Blockly/blocks/sensebox-motors.js @@ -17,7 +17,7 @@ Blockly.Blocks["sensebox_motors_beginServoMotor"] = { .setAlign(Blockly.ALIGN_RIGHT); this.setPreviousStatement(true, null); this.setNextStatement(true, null); - this.setColour(getColour().sensebox); + this.setColour(getColour().motors); this.setTooltip(Blockly.Msg.sensebox_motors_beginServoMotor_tooltip); this.setHelpUrl(Blockly.Msg.sensebox_motors_beginServoMotor_helpurl); }, @@ -36,7 +36,7 @@ Blockly.Blocks["sensebox_motors_moveServoMotor"] = { .setAlign(Blockly.ALIGN_RIGHT); this.setPreviousStatement(true, null); this.setNextStatement(true, null); - this.setColour(getColour().sensebox); + this.setColour(getColour().motors); this.setTooltip(Blockly.Msg.sensebox_motors_moveServoMotor_tooltip); this.setHelpUrl(Blockly.Msg.sensebox_motors_moveServoMotor_helpurl); }, @@ -53,7 +53,7 @@ Blockly.Blocks["sensebox_motors_I2CMotorBoard_begin"] = { .appendField(Blockly.Msg.sensebox_motors_I2CMotorBoard_begin); this.setPreviousStatement(true, null); this.setNextStatement(true, null); - this.setColour(getColour().sensebox); + this.setColour(getColour().motors); this.setTooltip(Blockly.Msg.sensebox_motors_I2CMotorBoard_begin_tooltip); this.setHelpUrl(Blockly.Msg.sensebox_motors_I2CMotorBoard_begin_helpurl); }, @@ -73,7 +73,7 @@ Blockly.Blocks["sensebox_motors_I2CMotorBoard_moveDCMotor"] = { .setAlign(Blockly.ALIGN_RIGHT); this.setPreviousStatement(true, null); this.setNextStatement(true, null); - this.setColour(getColour().sensebox); + this.setColour(getColour().motors); this.setTooltip(Blockly.Msg.sensebox_motors_I2CMotorBoard_moveDCMotor_tooltip); this.setHelpUrl(Blockly.Msg.sensebox_motors_I2CMotorBoard_moveDCMotor_helpurl); }, @@ -90,7 +90,7 @@ Blockly.Blocks["sensebox_motors_I2CMotorBoard_stopDCMotor"] = { .appendField(Blockly.Msg.sensebox_motors_I2CMotorBoard_stopDCMotor_motor) this.setPreviousStatement(true, null); this.setNextStatement(true, null); - this.setColour(getColour().sensebox); + this.setColour(getColour().motors); this.setTooltip(Blockly.Msg.sensebox_motors_I2CMotorBoard_stopDCMotor_tooltip); this.setHelpUrl(Blockly.Msg.sensebox_motors_I2CMotorBoard_stopDCMotor_helpurl); }, @@ -122,7 +122,7 @@ Blockly.Blocks["sensebox_motors_beginStepperMotor"] = { .appendField(new FieldSlider(3, 1, 3), "rpm"); this.setPreviousStatement(true, null); this.setNextStatement(true, null); - this.setColour(getColour().sensebox); + this.setColour(getColour().motors); this.setTooltip(Blockly.Msg.sensebox_motors_beginStepperMotor_tooltip); this.setHelpUrl(Blockly.Msg.sensebox_motors_beginStepperMotor_helpurl); }, @@ -137,7 +137,7 @@ Blockly.Blocks["sensebox_motors_moveStepperMotor"] = { .appendField(Blockly.Msg.sensebox_motors_moveStepperMotor_step); this.setPreviousStatement(true, null); this.setNextStatement(true, null); - this.setColour(getColour().sensebox); + this.setColour(getColour().motors); this.setTooltip(Blockly.Msg.sensebox_motors_moveStepperMotor_tooltip); this.setHelpUrl(Blockly.Msg.sensebox_motors_moveStepperMotor_helpurl); }, diff --git a/src/components/Blockly/helpers/colour.js b/src/components/Blockly/helpers/colour.js index 2cf7f78..e4f4cca 100644 --- a/src/components/Blockly/helpers/colour.js +++ b/src/components/Blockly/helpers/colour.js @@ -14,6 +14,7 @@ const colours = { serial: 230, webserver: 40, phyphox: 25, + motors: 190, }; export const getColour = () => { diff --git a/src/components/Blockly/msg/de/ui.js b/src/components/Blockly/msg/de/ui.js index c705d57..f73db9f 100644 --- a/src/components/Blockly/msg/de/ui.js +++ b/src/components/Blockly/msg/de/ui.js @@ -12,6 +12,7 @@ export const UI = { toolbox_variables: "Variablen", toolbox_serial: "Seriell", toolbox_advanced: "Erweitert", + toolbox_motors: "Motoren", variable_NUMBER: "Zahl (int)", variable_SHORT_NUMBER: "char", variable_LONG: "große Zahl (long)", diff --git a/src/components/Blockly/msg/en/ui.js b/src/components/Blockly/msg/en/ui.js index 1b5323a..530fd90 100644 --- a/src/components/Blockly/msg/en/ui.js +++ b/src/components/Blockly/msg/en/ui.js @@ -12,6 +12,7 @@ export const UI = { toolbox_variables: "Variables", toolbox_serial: "Serial", toolbox_advanced: "Erweitert", + toolbox_motors: "Motors", variable_NUMBER: "Number (int)", variable_SHORT_NUMBER: "char", variable_LONG: " Zahl (long)", diff --git a/src/components/Blockly/toolbox/Toolbox.js b/src/components/Blockly/toolbox/Toolbox.js index c83d112..00cc54d 100644 --- a/src/components/Blockly/toolbox/Toolbox.js +++ b/src/components/Blockly/toolbox/Toolbox.js @@ -298,33 +298,7 @@ class Toolbox extends React.Component { - - - - - - 90 - - - - {/* - - - - 100 - - - - - - - - - 2048 - - - */} - + {/* @@ -672,6 +646,33 @@ class Toolbox extends React.Component { + + + + + + 90 + + + + {/* + + + + 100 + + + + + + + + + 2048 + + + */} +