Files
B-ROBOT_EVO2/Blockly/brobot/blocks/brobot.js
JJROBOTS 818138ef8a New version of BROBOT EVO2
This is the first oficial version of BROBOT EVO2. Enjoy!
2017-06-27 16:30:41 +01:00

259 lines
7.5 KiB
JavaScript

/**
* @license
* Visual Blocks Editor
*
* Copyright 2012 Google Inc.
* https://developers.google.com/blockly/
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
/**
* @fileoverview Colour blocks for Blockly.
* @author fraser@google.com (Neil Fraser)
*/
'use strict';
goog.provide('Blockly.Blocks.brobot');
goog.require('Blockly.Blocks');
Blockly.Blocks.colour.HUE = 60;
// SIMPLE BLOCKS
Blockly.Blocks['moveforward'] = {
init: function() {
this.appendDummyInput()
.appendField("MOVE")
.appendField(new Blockly.FieldImage("moveforward.png",11,16,"*"))
this.setPreviousStatement(true, null);
this.setNextStatement(true, null);
this.setColour(60);
this.setTooltip('MOVE Forward 40cm');
this.setHelpUrl('');
}
};
Blockly.Blocks['movebackward'] = {
init: function() {
this.appendDummyInput()
.appendField("MOVE")
.appendField(new Blockly.FieldImage("movebackward.png",11,16,"*"))
this.setPreviousStatement(true, null);
this.setNextStatement(true, null);
this.setColour(60);
this.setTooltip('MOVE Backward 40cm');
this.setHelpUrl('');
}
};
Blockly.Blocks['turnright'] = {
init: function() {
this.appendDummyInput()
.appendField("TURN")
.appendField(new Blockly.FieldImage("turnright.png",16,16,"*"))
this.setPreviousStatement(true, null);
this.setNextStatement(true, null);
this.setColour(60);
this.setTooltip('RIGHT turn 90º');
this.setHelpUrl('');
}
};
Blockly.Blocks['turnleft'] = {
init: function() {
this.appendDummyInput()
.appendField("TURN")
.appendField(new Blockly.FieldImage("turnleft.png",16,16,"*"));
this.setPreviousStatement(true, null);
this.setNextStatement(true, null);
this.setColour(60);
this.setTooltip('LEFT turn 90º');
this.setHelpUrl('');
}
};
Blockly.Blocks['turn180'] = {
init: function() {
this.appendDummyInput()
.appendField("TURN 180 deg")
.appendField(new Blockly.FieldImage("turnright180.png",16,16,"*"))
.appendField(new Blockly.FieldDropdown([["RIGHT", "0"], ["LEFT", "1"]]), "turn");
this.setPreviousStatement(true, null);
this.setNextStatement(true, null);
this.setColour(60);
this.setTooltip('Turn 180 degrees');
this.setHelpUrl('');
}
};
Blockly.Blocks['spin360'] = {
init: function() {
this.appendDummyInput()
.appendField("SPIN 360 deg")
.appendField(new Blockly.FieldImage("spinright.png",16,16,"*"))
.appendField(new Blockly.FieldDropdown([["RIGHT", "0"], ["LEFT", "1"]]), "spin");
this.setPreviousStatement(true, null);
this.setNextStatement(true, null);
this.setColour(60);
this.setTooltip('Spin 360 degrees');
this.setHelpUrl('');
}
};
Blockly.Blocks['turn'] = {
init: function() {
this.appendDummyInput()
.appendField("TURN ")
.appendField(new Blockly.FieldDropdown([["RIGHT", "0"], ["LEFT", "1"]]), "turn");
this.setPreviousStatement(true, null);
this.setNextStatement(true, null);
this.setColour(60);
this.setTooltip('TURN');
this.setHelpUrl('');
}
};
Blockly.Blocks['turndegrees'] = {
init: function() {
//this.appendDummyInput()
// .appendField("TURN ")
// .appendField(new Blockly.FieldDropdown([["RIGHT >", "0"], ["LEFT <", "1"]]), "turn")
// .appendField(new Blockly.FieldNumber(45, -720, 720, 1), "DValue")
// .appendField("degrees ");
this.appendValueInput("degrees")
.appendField("TURN ")
.appendField(new Blockly.FieldDropdown([["RIGHT >", "0"], ["LEFT <", "1"]]), "turn")
//.appendField(new Blockly.FieldDropdown([["SHORT", "0"], ["MEDIUM", "1"], ["LONG", "2"]]), "distance");
//.appendField(new Blockly.FieldNumber(5000, 0, 25000, 1), "steps")
.appendField("degrees:");
this.setPreviousStatement(true, null);
this.setNextStatement(true, null);
this.setColour(60);
this.setTooltip('TURN');
this.setHelpUrl('');
}
};
Blockly.Blocks['movesimple'] = {
init: function() {
this.appendValueInput("cm")
.appendField("MOVE ")
.appendField(new Blockly.FieldDropdown([["FORWARD", "0"], ["BACKWARD", "1"]]), "move")
//.appendField(new Blockly.FieldDropdown([["SHORT", "0"], ["MEDIUM", "1"], ["LONG", "2"]]), "distance");
//.appendField(new Blockly.FieldNumber(5000, 0, 25000, 1), "steps")
.appendField("cm:");
//this.setInputsInline(true);
this.setPreviousStatement(true, null);
this.setNextStatement(true, null);
this.setColour(60);
this.setTooltip('TURN');
this.setHelpUrl('');
}
};
// ADVANCED BLOCKS
Blockly.Blocks['robotconfig'] = {
init: function() {
this.appendValueInput("IPvalue")
.setCheck("String")
.appendField("ROBOT Config IP:");
//.appendField(new Blockly.FieldTextInput("192.168.4.1"), "value1");
//this.appendValueInput("PORTvalue")
// .setCheck("String")
// .appendField("Port:");
//.appendField(new Blockly.FieldTextInput("2222"), "value2");
this.setInputsInline(true);
this.setNextStatement(true, null);
this.setColour(60);
this.setTooltip('Robot initialization');
this.setHelpUrl('');
}
};
Blockly.Blocks['throttle'] = {
init: function() {
this.appendValueInput("TValue")
.setCheck("Number")
.appendField("THROTTLE");
this.setInputsInline(true);
this.setPreviousStatement(true, null);
this.setNextStatement(true, null);
this.setColour(60);
this.setTooltip('Throttle from -100 to 100');
this.setHelpUrl('');
}
};
Blockly.Blocks['steering'] = {
init: function() {
this.appendValueInput("SValue")
.setCheck("Number")
.appendField("STEERING");
this.setInputsInline(true);
this.setPreviousStatement(true, null);
this.setNextStatement(true, null);
this.setColour(60);
this.setTooltip('Steering from -100 to 100');
this.setHelpUrl('');
}
};
Blockly.Blocks['servo'] = {
init: function() {
this.appendValueInput("value")
.setCheck(null)
.appendField("SERVO")
.appendField(new Blockly.FieldDropdown([["ON", "1"], ["OFF", "0"]]), "Servo");
this.setPreviousStatement(true, null);
this.setNextStatement(true, null);
this.setColour(60);
this.setTooltip('Arm Servo');
this.setHelpUrl('');
}
};
Blockly.Blocks['mode'] = {
init: function() {
this.appendValueInput("value")
.setCheck(null)
.appendField("MODE")
.appendField(new Blockly.FieldDropdown([["NORMAL", "0"], ["PRO", "1"]]), "Mode");
this.setPreviousStatement(true, null);
this.setNextStatement(true, null);
this.setColour(60);
this.setTooltip('BROBOT mode: Normal or PRO');
this.setHelpUrl('');
}
};
Blockly.Blocks['delay'] = {
init: function() {
this.appendValueInput("value")
.setCheck(null)
.appendField("WAIT ")
.appendField(new Blockly.FieldNumber(0.5, 0.1, 5, 0.1), "DValue")
.appendField("seconds");
this.setPreviousStatement(true, null);
this.setNextStatement(true, null);
this.setColour(60);
this.setTooltip('Delay in seconds');
this.setHelpUrl('');
}
};