Skip to content

Commit 932216d

Browse files
committed
Model Pro,More Block
1 parent 31380ca commit 932216d

File tree

15 files changed

+257
-6278
lines changed

15 files changed

+257
-6278
lines changed

ardublockly/ardublockly_toolbox.js

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -277,6 +277,7 @@ Ardublockly.TOOLBOX_XML =
277277
' </block>' +
278278
' </value>' +
279279
' </block>' +
280+
' <block type="beep"></block>' +
280281
' </category>' +
281282
' <sep></sep>' +
282283
' <category id="catOLED" name="OLED (Friend Robot)">' +
@@ -289,5 +290,6 @@ Ardublockly.TOOLBOX_XML =
289290
' <sep></sep>' +
290291
' <category id="catFriendRobot" name="Friend Robot Setup">' +
291292
' <block type="setup_modelnano"></block>' +
293+
' <block type="setup_modelpro"></block>' +
292294
' </category>' +
293295
'</xml>';

ardublocklyserver/compilersettings.py

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -65,7 +65,8 @@ class ServerCompilerSettings(object):
6565
'atmel:avr:atmega328pb_xplained_mini',
6666
'ESP8266 Huzzah': 'esp8266:esp8266:generic',
6767
'ESP8266 WeMos D1': 'esp8266:esp8266:generic',
68-
'Model Nano': 'arduino:avr:modelnano'}
68+
'Model Nano': 'arduino:avr:modelnano',
69+
'Model Pro': 'arduino:avr:modelpro'}
6970

7071
# Class dictionary to contain the computer COM ports, dynamic content
7172
__serial_ports = {'port0': 'COM1'}

blockly/blocks/arduino/friendrobotsetup.js

Lines changed: 17 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -31,4 +31,21 @@ Blockly.Blocks['setup_modelnano'] = {
3131
this.setTooltip("");
3232
this.setHelpUrl("");
3333
}
34+
};
35+
36+
Blockly.Blocks['setup_modelpro'] = {
37+
/**
38+
* Block for defining the Arduino setup() and loop() functions.
39+
* @this Blockly.Block
40+
*/
41+
init: function() {
42+
this.appendDummyInput()
43+
.appendField("Friend Robot Model Pro Setup");
44+
this.setInputsInline(true);
45+
this.setPreviousStatement(true, null);
46+
this.setNextStatement(true, null);
47+
this.setColour(120);
48+
this.setTooltip("");
49+
this.setHelpUrl("");
50+
}
3451
};

blockly/blocks/arduino/io_friend_robot.js

Lines changed: 17 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -145,4 +145,21 @@ Blockly.Blocks['read_knob'] = {
145145
this.setTooltip("");
146146
this.setHelpUrl("");
147147
}
148+
};
149+
150+
Blockly.Blocks['beep'] = {
151+
/**
152+
* Block for creating a 'read pin'.
153+
* @this Blockly.Block
154+
*/
155+
init: function () {
156+
this.setHelpUrl('');
157+
this.setColour(Blockly.Blocks.io.HUE);
158+
this.appendDummyInput()
159+
.appendField('Beep sound')
160+
this.setColour(Blockly.Blocks.io.HUE);
161+
this.setPreviousStatement(true, null);
162+
this.setNextStatement(true, null);
163+
this.setTooltip();
164+
}
148165
};

blockly/blocks/arduino/motordc.js

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -24,7 +24,7 @@ Blockly.Blocks['motor_dc'] = {
2424
init: function() {
2525
this.appendDummyInput()
2626
.appendField("Motor Port")
27-
.appendField(new Blockly.FieldDropdown([["1","1"], ["2","2"], ["3","3"], ["4","4"]]), "PORT_MOTORDC");
27+
.appendField(new Blockly.FieldDropdown(Blockly.Arduino.Boards.selected.motorport || [['1','1'],['2','2']]), "PORT_MOTORDC");
2828
this.appendValueInput("POWER_MOTORDC")
2929
.setCheck(Blockly.Types.NUMBER.checkList)
3030
.appendField("at");

blockly/blocks/arduino/procedures.js

Lines changed: 1 addition & 25 deletions
Original file line numberDiff line numberDiff line change
@@ -38,28 +38,4 @@ Blockly.Blocks['arduino_functions'] = {
3838
getArduinoLoopsInstance: function() {
3939
return true;
4040
}
41-
};
42-
43-
Blockly.Blocks['arduino_modelnano_functions'] = {
44-
/**
45-
* Block for defining the Arduino setup() and loop() functions.
46-
* @this Blockly.Block
47-
*/
48-
init: function() {
49-
this.appendDummyInput()
50-
.appendField(Blockly.Msg.ARD_FUN_RUN_SETUP);
51-
this.appendStatementInput('SETUP_FUNC');
52-
this.appendDummyInput()
53-
.appendField(Blockly.Msg.ARD_FUN_RUN_LOOP);
54-
this.appendStatementInput('LOOP_FUNC');
55-
this.setInputsInline(false);
56-
this.setColour(Blockly.Blocks.procedures.HUE);
57-
this.setTooltip(Blockly.Msg.ARD_FUN_RUN_TIP);
58-
this.setHelpUrl('https://arduino.cc/en/Reference/Loop');
59-
this.contextMenu = false;
60-
},
61-
/** @return {!boolean} True if the block instance is in the workspace. */
62-
getArduinoLoopsInstance: function() {
63-
return true;
64-
}
65-
};
41+
};

blockly/blocks_compressed.js

Lines changed: 2 additions & 3 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

blockly/generators/arduino/boards.js

Lines changed: 37 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -151,7 +151,10 @@ Blockly.Arduino.Boards.profiles.model_nano = {
151151
compilerFlag: 'arduino:avr:modelnano',
152152
analogPins: Blockly.Arduino.Boards.generateAnalogIo(0, 4).concat(
153153
Blockly.Arduino.Boards.generateAnalogIo(7, 7)),
154-
digitalPins: Blockly.Arduino.Boards.generateDigitalIo(2, 3),
154+
digitalPins: Blockly.Arduino.Boards.generateDigitalIo(0, 4).concat(
155+
Blockly.Arduino.Boards.generateDigitalIo(9, 11).concat(
156+
Blockly.Arduino.Boards.generateDigitalIo(14, 19)
157+
)),
155158
pwmPins: Blockly.Arduino.Boards.profiles.uno.pwmPins,
156159
serial: Blockly.Arduino.Boards.profiles.uno.serial,
157160
serialPins: Blockly.Arduino.Boards.profiles.uno.serialPins,
@@ -169,7 +172,39 @@ Blockly.Arduino.Boards.profiles.model_nano = {
169172
oledcol: [['0', '0'], ['1', '1'], ['2', '2'], ['3', '3'], ['4', '4'], ['5', '5']],
170173
oledmode: [["0", "0"], ["1", "1"], ["2", "2"], ["3", "3"]],
171174
oledtextsize: [["1", "1"], ["2", "2"], ["3", "3"], ["4", "4"], ["5", "5"]],
172-
servoport: [["1", "1"], ["2", "2"], ["3", "3"], ["4", "4"], ["5", "5"]],
175+
servoport: [["1", "1"], ["2", "2"], ["3", "3"]],
176+
motorport: [["1", "1"], ["2", "2"]],
177+
};
178+
179+
/** Model Nano with Friend Robot */
180+
Blockly.Arduino.Boards.profiles.model_pro = {
181+
name: 'Model Pro (Friend Robot)',
182+
description: 'Model Pro from Friend Robot',
183+
compilerFlag: 'arduino:avr:modelpro',
184+
analogPins: Blockly.Arduino.Boards.generateAnalogIo(0, 14),
185+
digitalPins: Blockly.Arduino.Boards.generateDigitalIo(2, 3).concat(
186+
Blockly.Arduino.Boards.generateDigitalIo(18, 19).concat(
187+
Blockly.Arduino.Boards.generateDigitalIo(47, 52)
188+
)),
189+
pwmPins: Blockly.Arduino.Boards.profiles.uno.pwmPins,
190+
serial: Blockly.Arduino.Boards.profiles.uno.serial,
191+
serialPins: Blockly.Arduino.Boards.profiles.uno.serialPins,
192+
serialSpeed: Blockly.Arduino.Boards.profiles.uno.serialSpeed,
193+
spi: Blockly.Arduino.Boards.profiles.uno.spi,
194+
spiPins: Blockly.Arduino.Boards.profiles.uno.spiPins,
195+
spiClockDivide: Blockly.Arduino.Boards.profiles.uno.spiClockDivide,
196+
i2c: Blockly.Arduino.Boards.profiles.uno.i2c,
197+
i2cPins: Blockly.Arduino.Boards.profiles.uno.i2cPins,
198+
i2cSpeed: Blockly.Arduino.Boards.profiles.uno.i2cSpeed,
199+
builtinLed: Blockly.Arduino.Boards.profiles.uno.builtinLed,
200+
interrupt: Blockly.Arduino.Boards.profiles.uno.interrupt,
201+
oledtype: [["Decimal", "%d"], ["Float", "%f"], ["Long", "%l"], ["Hex", "%h"],["Character", "%c"]],
202+
oledrow: [['0', '0'], ['10', '10'], ['20', '20'], ['30', '30'], ['40', '40'], ['50', '50']],
203+
oledcol: [['0', '0'], ['1', '1'], ['2', '2'], ['3', '3'], ['4', '4'], ['5', '5']],
204+
oledmode: [["0", "0"], ["1", "1"], ["2", "2"], ["3", "3"]],
205+
oledtextsize: [["1", "1"], ["2", "2"], ["3", "3"], ["4", "4"], ["5", "5"]],
206+
servoport: [["1", "1"], ["2", "2"], ["3", "3"], ["4", "4"], ["5", "5"], ["6", "6"], ["7", "7"], ["8", "8"]],
207+
motorport: [["1", "1"], ["2", "2"], ["3", "3"], ["4", "4"]],
173208
};
174209

175210
/** Arduino Duemilanove boards profile (ATmega168p, ATmega328p). */

blockly/generators/arduino/friendrobotsetup.js

Lines changed: 44 additions & 26 deletions
Original file line numberDiff line numberDiff line change
@@ -7,29 +7,47 @@
77
* @fileoverview Arduino code generator for the Stepper library blocks.
88
* The Arduino Stepper library docs: http://arduino.cc/en/Reference/Stepper
99
*/
10-
'use strict';
11-
12-
goog.provide('Blockly.Arduino.friendrobotsetup');
13-
14-
goog.require('Blockly.Arduino');
15-
16-
/**
17-
* Code generator of block for writing to the serial com.
18-
* Arduino code: loop { Serial.print(X); }
19-
* @param {!Blockly.Block} block Block to generate the code from.
20-
* @return {string} Completed code.
21-
*/
22-
Blockly.Arduino['setup_modelnano'] = function(block) {
23-
// var dropdown_port_motordc = block.getFieldValue('PORT_MOTORDC');
24-
// var value_power_motordc = Blockly.Arduino.valueToCode(block, 'POWER_MOTORDC', Blockly.Arduino.ORDER_ATOMIC);
25-
// TODO: Assemble JavaScript into code variable.
26-
Blockly.Arduino.addInclude('modelnano', '#include <ModelNano.h>');
27-
28-
var setupCode = 'XIO();';
29-
Blockly.Arduino.addSetup('', setupCode, true);
30-
31-
var code = '';
32-
return code;
33-
};
34-
35-
10+
'use strict';
11+
12+
goog.provide('Blockly.Arduino.friendrobotsetup');
13+
14+
goog.require('Blockly.Arduino');
15+
16+
/**
17+
* Code generator of block for writing to the serial com.
18+
* Arduino code: loop { Serial.print(X); }
19+
* @param {!Blockly.Block} block Block to generate the code from.
20+
* @return {string} Completed code.
21+
*/
22+
Blockly.Arduino['setup_modelnano'] = function (block) {
23+
// var dropdown_port_motordc = block.getFieldValue('PORT_MOTORDC');
24+
// var value_power_motordc = Blockly.Arduino.valueToCode(block, 'POWER_MOTORDC', Blockly.Arduino.ORDER_ATOMIC);
25+
// TODO: Assemble JavaScript into code variable.
26+
Blockly.Arduino.addInclude('modelnano', '#include <ModelNano.h>');
27+
28+
var setupCode = 'XIO();';
29+
Blockly.Arduino.addSetup('', setupCode, true);
30+
31+
var code = '';
32+
return code;
33+
};
34+
35+
/**
36+
* Code generator of block for writing to the serial com.
37+
* Arduino code: loop { Serial.print(X); }
38+
* @param {!Blockly.Block} block Block to generate the code from.
39+
* @return {string} Completed code.
40+
*/
41+
Blockly.Arduino['setup_modelpro'] = function (block) {
42+
// var dropdown_port_motordc = block.getFieldValue('PORT_MOTORDC');
43+
// var value_power_motordc = Blockly.Arduino.valueToCode(block, 'POWER_MOTORDC', Blockly.Arduino.ORDER_ATOMIC);
44+
// TODO: Assemble JavaScript into code variable.
45+
Blockly.Arduino.addInclude('modelpro', '#include <ModelPro.h>');
46+
47+
var setupCode = 'XIO();';
48+
Blockly.Arduino.addSetup('', setupCode, true);
49+
50+
var code = '';
51+
return code;
52+
};
53+

blockly/generators/arduino/io_friend_robot.js

Lines changed: 14 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -107,4 +107,18 @@ Blockly.Arduino['read_knob'] = function (block) {
107107
var code = 'knob(' + value_min + ',' + value_max + ')';
108108
// TODO: Change ORDER_NONE to the correct strength.
109109
return [code, Blockly.Arduino.ORDER_ATOMIC];
110+
};
111+
112+
/**
113+
* Function for reading a digital pin (X).
114+
* Arduino code: setup { pinMode(X, INPUT); }
115+
* loop { digitalRead(X) }
116+
* @param {!Blockly.Block} block Block to generate the code from.
117+
* @return {string} Completed code with order of operation.
118+
*/
119+
Blockly.Arduino['beep'] = function (block) {
120+
// TODO: Assemble JavaScript into code variable.
121+
var code = 'beep();\n';
122+
// TODO: Change ORDER_NONE to the correct strength.
123+
return code;
110124
};

0 commit comments

Comments
 (0)