commit
						e73550fc8a
					
				
							
								
								
									
										34
									
								
								package-lock.json
									
									
									
										generated
									
									
									
								
							
							
						
						
									
										34
									
								
								package-lock.json
									
									
									
										generated
									
									
									
								
							| @ -5077,6 +5077,17 @@ | |||||||
|         "url": "https://github.com/sponsors/sindresorhus" |         "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": { |     "node_modules/ansi-html": { | ||||||
|       "version": "0.0.7", |       "version": "0.0.7", | ||||||
|       "resolved": "https://registry.npmjs.org/ansi-html/-/ansi-html-0.0.7.tgz", |       "resolved": "https://registry.npmjs.org/ansi-html/-/ansi-html-0.0.7.tgz", | ||||||
| @ -22556,9 +22567,11 @@ | |||||||
|       } |       } | ||||||
|     }, |     }, | ||||||
|     "node_modules/type-fest": { |     "node_modules/type-fest": { | ||||||
|       "version": "0.21.3", |       "version": "0.13.1", | ||||||
|       "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.21.3.tgz", |       "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.13.1.tgz", | ||||||
|       "integrity": "sha512-t0rzBq87m3fVcduHDUFhKmyyX+9eo6WQjZvf51Ea/M0Q7+T374Jp1aUiyUl0GKxp8M/OETVHSDvmkyPgvX+X2w==", |       "integrity": "sha512-34R7HTnG0XIJcBSn5XhDd7nNFPRcXYRZrBB2O2jdKqYODldSzBAqzsWoZYYvduky73toYS/ESqxPvkDf/F0XMg==", | ||||||
|  |       "optional": true, | ||||||
|  |       "peer": true, | ||||||
|       "engines": { |       "engines": { | ||||||
|         "node": ">=10" |         "node": ">=10" | ||||||
|       }, |       }, | ||||||
| @ -28548,6 +28561,13 @@ | |||||||
|       "integrity": "sha512-gKXj5ALrKWQLsYG9jlTRmR/xKluxHV+Z9QEwNIgCfM1/uwPMCuzVVnh5mwTd+OuBZcwSIMbqssNWRm1lE51QaQ==", |       "integrity": "sha512-gKXj5ALrKWQLsYG9jlTRmR/xKluxHV+Z9QEwNIgCfM1/uwPMCuzVVnh5mwTd+OuBZcwSIMbqssNWRm1lE51QaQ==", | ||||||
|       "requires": { |       "requires": { | ||||||
|         "type-fest": "^0.21.3" |         "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": { |     "ansi-html": { | ||||||
| @ -42256,9 +42276,11 @@ | |||||||
|       "integrity": "sha512-0fr/mIH1dlO+x7TlcMy+bIDqKPsw/70tVyeHW787goQjhmqaZe10uwLujubK9q9Lg6Fiho1KUKDYz0Z7k7g5/g==" |       "integrity": "sha512-0fr/mIH1dlO+x7TlcMy+bIDqKPsw/70tVyeHW787goQjhmqaZe10uwLujubK9q9Lg6Fiho1KUKDYz0Z7k7g5/g==" | ||||||
|     }, |     }, | ||||||
|     "type-fest": { |     "type-fest": { | ||||||
|       "version": "0.21.3", |       "version": "0.13.1", | ||||||
|       "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.21.3.tgz", |       "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.13.1.tgz", | ||||||
|       "integrity": "sha512-t0rzBq87m3fVcduHDUFhKmyyX+9eo6WQjZvf51Ea/M0Q7+T374Jp1aUiyUl0GKxp8M/OETVHSDvmkyPgvX+X2w==" |       "integrity": "sha512-34R7HTnG0XIJcBSn5XhDd7nNFPRcXYRZrBB2O2jdKqYODldSzBAqzsWoZYYvduky73toYS/ESqxPvkDf/F0XMg==", | ||||||
|  |       "optional": true, | ||||||
|  |       "peer": true | ||||||
|     }, |     }, | ||||||
|     "type-is": { |     "type-is": { | ||||||
|       "version": "1.6.18", |       "version": "1.6.18", | ||||||
|  | |||||||
| @ -6,6 +6,7 @@ import "./sensebox-telegram"; | |||||||
| import "./sensebox-osem"; | import "./sensebox-osem"; | ||||||
| import "./sensebox-web"; | import "./sensebox-web"; | ||||||
| import "./sensebox-display"; | import "./sensebox-display"; | ||||||
|  | import "./sensebox-motors"; | ||||||
| import "./sensebox-lora"; | import "./sensebox-lora"; | ||||||
| import "./sensebox-led"; | import "./sensebox-led"; | ||||||
| import "./sensebox-rtc"; | import "./sensebox-rtc"; | ||||||
|  | |||||||
							
								
								
									
										144
									
								
								src/components/Blockly/blocks/sensebox-motors.js
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										144
									
								
								src/components/Blockly/blocks/sensebox-motors.js
									
									
									
									
									
										Normal file
									
								
							| @ -0,0 +1,144 @@ | |||||||
|  | import * as Blockly from "blockly/core"; | ||||||
|  | import { getColour } from "../helpers/colour"; | ||||||
|  | import { selectedBoard } from "../helpers/board"; | ||||||
|  | import { FieldSlider } from "@blockly/field-slider"; | ||||||
|  | 
 | ||||||
|  | /** | ||||||
|  |  * 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().motors); | ||||||
|  |         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().motors); | ||||||
|  |         this.setTooltip(Blockly.Msg.sensebox_motors_moveServoMotor_tooltip); | ||||||
|  |         this.setHelpUrl(Blockly.Msg.sensebox_motors_moveServoMotor_helpurl); | ||||||
|  |     }, | ||||||
|  | }; | ||||||
|  | 
 | ||||||
|  | 
 | ||||||
|  | /** | ||||||
|  |  * 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().motors); | ||||||
|  |         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().motors); | ||||||
|  |         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().motors); | ||||||
|  |         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().motors); | ||||||
|  |         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().motors); | ||||||
|  |         this.setTooltip(Blockly.Msg.sensebox_motors_moveStepperMotor_tooltip); | ||||||
|  |         this.setHelpUrl(Blockly.Msg.sensebox_motors_moveStepperMotor_helpurl); | ||||||
|  |     }, | ||||||
|  | }; | ||||||
| @ -5,6 +5,7 @@ import "./sensebox-telegram"; | |||||||
| import "./sensebox-osem"; | import "./sensebox-osem"; | ||||||
| import "./sensebox-web"; | import "./sensebox-web"; | ||||||
| import "./sensebox-display"; | import "./sensebox-display"; | ||||||
|  | import "./sensebox-motors"; | ||||||
| import "./sensebox-lora"; | import "./sensebox-lora"; | ||||||
| import "./sensebox-led"; | import "./sensebox-led"; | ||||||
| import "./sensebox"; | import "./sensebox"; | ||||||
|  | |||||||
							
								
								
									
										77
									
								
								src/components/Blockly/generator/sensebox-motors.js
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										77
									
								
								src/components/Blockly/generator/sensebox-motors.js
									
									
									
									
									
										Normal file
									
								
							| @ -0,0 +1,77 @@ | |||||||
|  | import * as Blockly from "blockly/core"; | ||||||
|  | 
 | ||||||
|  | 
 | ||||||
|  | /** | ||||||
|  |  * Servo Motor | ||||||
|  |  *  | ||||||
|  |  */ | ||||||
|  | Blockly.Arduino.sensebox_motors_beginServoMotor = function () { | ||||||
|  |     var pin = this.getFieldValue("pin"); | ||||||
|  |     Blockly.Arduino.libraries_["library_senseBoxIO"] = "#include <senseBoxIO.h>"; | ||||||
|  |     Blockly.Arduino.libraries_["include_servo_motor"] = "#include <Servo.h>"; | ||||||
|  |     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; | ||||||
|  | }; | ||||||
|  | 
 | ||||||
|  | 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_["library_senseBoxIO"] = "#include <senseBoxIO.h>"; | ||||||
|  |     Blockly.Arduino.libraries_["include_i2c_motor_board"] = "#include <Grove_I2C_Motor_Driver.h>"; | ||||||
|  |     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; | ||||||
|  | }; | ||||||
|  | 
 | ||||||
|  | 
 | ||||||
|  | /** | ||||||
|  |  * 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 <senseBoxIO.h>"; | ||||||
|  |     Blockly.Arduino.libraries_["include_stepper_motor"] = "#include <Stepper.h>"; | ||||||
|  |     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; | ||||||
|  | }; | ||||||
| @ -14,6 +14,7 @@ const colours = { | |||||||
|   serial: 230, |   serial: 230, | ||||||
|   webserver: 40, |   webserver: 40, | ||||||
|   phyphox: 25, |   phyphox: 25, | ||||||
|  |   motors: 190, | ||||||
| }; | }; | ||||||
| 
 | 
 | ||||||
| export const getColour = () => { | export const getColour = () => { | ||||||
|  | |||||||
| @ -7,6 +7,7 @@ import { LOOPS } from "./de/loops"; | |||||||
| import { MATH } from "./de/math"; | import { MATH } from "./de/math"; | ||||||
| import { MQTT } from "./de/mqtt"; | import { MQTT } from "./de/mqtt"; | ||||||
| import { DISPLAY } from "./de/sensebox-display"; | import { DISPLAY } from "./de/sensebox-display"; | ||||||
|  | import { MOTORS } from "./de/sensebox-motors"; | ||||||
| import { LED } from "./de/sensebox-led"; | import { LED } from "./de/sensebox-led"; | ||||||
| import { LORA } from "./de/sensebox-lora"; | import { LORA } from "./de/sensebox-lora"; | ||||||
| import { OSEM } from "./de/sensebox-osem"; | import { OSEM } from "./de/sensebox-osem"; | ||||||
| @ -34,6 +35,7 @@ export const De = { | |||||||
|   ...MATH, |   ...MATH, | ||||||
|   ...MQTT, |   ...MQTT, | ||||||
|   ...DISPLAY, |   ...DISPLAY, | ||||||
|  |   ...MOTORS, | ||||||
|   ...LED, |   ...LED, | ||||||
|   ...LORA, |   ...LORA, | ||||||
|   ...OSEM, |   ...OSEM, | ||||||
|  | |||||||
							
								
								
									
										48
									
								
								src/components/Blockly/msg/de/sensebox-motors.js
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										48
									
								
								src/components/Blockly/msg/de/sensebox-motors.js
									
									
									
									
									
										Normal file
									
								
							| @ -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", | ||||||
|  | }; | ||||||
|  | 
 | ||||||
| @ -12,6 +12,7 @@ export const UI = { | |||||||
|   toolbox_variables: "Variablen", |   toolbox_variables: "Variablen", | ||||||
|   toolbox_serial: "Seriell", |   toolbox_serial: "Seriell", | ||||||
|   toolbox_advanced: "Erweitert", |   toolbox_advanced: "Erweitert", | ||||||
|  |   toolbox_motors: "Motoren", | ||||||
|   variable_NUMBER: "Zahl (int)", |   variable_NUMBER: "Zahl (int)", | ||||||
|   variable_SHORT_NUMBER: "char", |   variable_SHORT_NUMBER: "char", | ||||||
|   variable_LONG: "große Zahl (long)", |   variable_LONG: "große Zahl (long)", | ||||||
|  | |||||||
| @ -8,6 +8,7 @@ import { MATH } from "./en/math"; | |||||||
| import { MQTT } from "./en/mqtt"; | import { MQTT } from "./en/mqtt"; | ||||||
| import { SENSEBOX } from "./en/sensebox"; | import { SENSEBOX } from "./en/sensebox"; | ||||||
| import { DISPLAY } from "./en/sensebox-display"; | import { DISPLAY } from "./en/sensebox-display"; | ||||||
|  | import { MOTORS } from "./en/sensebox-motors"; | ||||||
| import { LED } from "./en/sensebox-led"; | import { LED } from "./en/sensebox-led"; | ||||||
| import { LORA } from "./en/sensebox-lora"; | import { LORA } from "./en/sensebox-lora"; | ||||||
| import { OSEM } from "./en/sensebox-osem"; | import { OSEM } from "./en/sensebox-osem"; | ||||||
| @ -34,6 +35,7 @@ export const En = { | |||||||
|   ...MATH, |   ...MATH, | ||||||
|   ...MQTT, |   ...MQTT, | ||||||
|   ...DISPLAY, |   ...DISPLAY, | ||||||
|  |   ...MOTORS, | ||||||
|   ...LED, |   ...LED, | ||||||
|   ...LORA, |   ...LORA, | ||||||
|   ...OSEM, |   ...OSEM, | ||||||
|  | |||||||
							
								
								
									
										48
									
								
								src/components/Blockly/msg/en/sensebox-motors.js
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										48
									
								
								src/components/Blockly/msg/en/sensebox-motors.js
									
									
									
									
									
										Normal file
									
								
							| @ -0,0 +1,48 @@ | |||||||
|  | export const MOTORS = { | ||||||
|  | 
 | ||||||
|  |     /** | ||||||
|  |      * Motors | ||||||
|  |      */ | ||||||
|  | 
 | ||||||
|  |     sensebox_motors_beginServoMotor: "Initialize Servo Motor", | ||||||
|  |     sensebox_motors_beginServoMotor_pin: "Pin:", | ||||||
|  |     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_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: "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", | ||||||
|  | }; | ||||||
|  | 
 | ||||||
| @ -12,6 +12,7 @@ export const UI = { | |||||||
|   toolbox_variables: "Variables", |   toolbox_variables: "Variables", | ||||||
|   toolbox_serial: "Serial", |   toolbox_serial: "Serial", | ||||||
|   toolbox_advanced: "Erweitert", |   toolbox_advanced: "Erweitert", | ||||||
|  |   toolbox_motors: "Motors", | ||||||
|   variable_NUMBER: "Number (int)", |   variable_NUMBER: "Number (int)", | ||||||
|   variable_SHORT_NUMBER: "char", |   variable_SHORT_NUMBER: "char", | ||||||
|   variable_LONG: " Zahl (long)", |   variable_LONG: " Zahl (long)", | ||||||
|  | |||||||
| @ -298,6 +298,7 @@ class Toolbox extends React.Component { | |||||||
|             </Value> |             </Value> | ||||||
|           </Block> |           </Block> | ||||||
|         </Category> |         </Category> | ||||||
|  |          | ||||||
|         {/* <Category name="Telegram" colour={getColour().sensebox}> |         {/* <Category name="Telegram" colour={getColour().sensebox}> | ||||||
|           <Block type="sensebox_telegram" /> |           <Block type="sensebox_telegram" /> | ||||||
|           <Block type="sensebox_telegram_do" /> |           <Block type="sensebox_telegram_do" /> | ||||||
| @ -645,6 +646,33 @@ class Toolbox extends React.Component { | |||||||
|               </Value> |               </Value> | ||||||
|             </Block> |             </Block> | ||||||
|           </Category> |           </Category> | ||||||
|  |           <Category name={Blockly.Msg.toolbox_motors} colour={getColour().motors}> | ||||||
|  |           <Block type="sensebox_motors_beginServoMotor" /> | ||||||
|  |           <Block type="sensebox_motors_moveServoMotor"> | ||||||
|  |             <Value name="degrees"> | ||||||
|  |               <Block type="math_number"> | ||||||
|  |                 <Field name="NUM">90</Field> | ||||||
|  |               </Block> | ||||||
|  |             </Value> | ||||||
|  |           </Block> | ||||||
|  |           {/* <Block type="sensebox_motors_I2CMotorBoard_begin" /> | ||||||
|  |           <Block type="sensebox_motors_I2CMotorBoard_moveDCMotor"> | ||||||
|  |             <Value name="speed"> | ||||||
|  |               <Block type="math_number"> | ||||||
|  |                 <Field name="NUM">100</Field> | ||||||
|  |               </Block> | ||||||
|  |             </Value> | ||||||
|  |           </Block> | ||||||
|  |           <Block type="sensebox_motors_I2CMotorBoard_stopDCMotor" /> | ||||||
|  |           <Block type="sensebox_motors_beginStepperMotor" /> | ||||||
|  |           <Block type="sensebox_motors_moveStepperMotor"> | ||||||
|  |             <Value name="steps"> | ||||||
|  |               <Block type="math_number"> | ||||||
|  |                 <Field name="NUM">2048</Field> | ||||||
|  |               </Block> | ||||||
|  |             </Value> | ||||||
|  |           </Block> */} | ||||||
|  |         </Category> | ||||||
|           <Category name="Watchdog" colour={getColour().io}> |           <Category name="Watchdog" colour={getColour().io}> | ||||||
|             <Block type="watchdog_enable"></Block> |             <Block type="watchdog_enable"></Block> | ||||||
|             <Block type="watchdog_reset"></Block> |             <Block type="watchdog_reset"></Block> | ||||||
|  | |||||||
		Loading…
	
	
			
			x
			
			
		
	
		Reference in New Issue
	
	Block a user