Skip to content

Commit e490321

Browse files
committed
add Grove i2c color sensor + Arduino Due board
1 parent fbb81bb commit e490321

14 files changed

Lines changed: 119 additions & 1 deletion
52.1 KB
Loading

blocks/seeed/grove/blocks_typing.js

Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -25,6 +25,15 @@ Blockly.Blocks.grove_temperature_sensor.getBlockType = function() {
2525
Blockly.Blocks.grove_moisture_sensor.getBlockType = function() {
2626
return Blockly.Types.DECIMAL;
2727
};
28+
Blockly.Blocks.grove_i2c_color_sensor_2_test.getBlockType = function() {
29+
return Blockly.Types.BOOLEAN;
30+
};
31+
Blockly.Blocks.grove_i2c_color_sensor_2_led.getBlockType = function() {
32+
return Blockly.Types.NUMBER;
33+
};
34+
Blockly.Blocks.grove_i2c_color_sensor_2_read_colors.getBlockType = function() {
35+
return Blockly.Types.NUMBER;
36+
};
2837
Blockly.Blocks.grove_serial_lcd_print.getBlockType = function() {
2938
return Blockly.Types.NUMBER;
3039
};

blocks/seeed/grove/grove.js

Lines changed: 43 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -199,7 +199,7 @@ Blockly.Blocks['grove_temperature_sensor'] = {
199199

200200
Blockly.Blocks['grove_moisture_sensor'] = {
201201
init: function() {
202-
this.setColour(Blockly.Blocks.grove.HUE);
202+
this.setColour(Blockly.Blocks.grove.HUE);
203203
this.setHelpUrl(Blockly.Msg.GROVE_INOUT_MOISTURE_HELPURL);
204204
this.appendDummyInput()
205205
.appendField(Blockly.Msg.GROVE_INOUT_MOISTURE_TEXT)
@@ -211,6 +211,48 @@ Blockly.Blocks['grove_moisture_sensor'] = {
211211
}
212212
};
213213

214+
Blockly.Blocks['grove_i2c_color_sensor_2_test'] = {
215+
init: function() {
216+
this.setColour(Blockly.Blocks.grove.HUE);
217+
this.setHelpUrl('https://wiki.seeedstudio.com/Grove-I2C_Color_Sensor/');
218+
this.appendDummyInput()
219+
.appendField(new Blockly.FieldImage(Blockly.pathToBlockly + 'blocks/seeed/grove/I2C_color_sensor_v2.jpg', Blockly.Arduino.imageSize, Blockly.Arduino.imageSize))
220+
.appendField("a color sensor is connected ?");
221+
this.setInputsInline(false);
222+
this.setOutput(true, "Boolean");
223+
this.setTooltip('this blocks helps to verify if an I2C sensor is connected to the I2C bus');
224+
}
225+
};
226+
227+
Blockly.Blocks['grove_i2c_color_sensor_2_led'] = {
228+
init: function() {
229+
this.setColour(Blockly.Blocks.grove.HUE);
230+
this.setHelpUrl('https://wiki.seeedstudio.com/Grove-I2C_Color_Sensor/');
231+
this.appendDummyInput()
232+
.appendField(new Blockly.FieldImage(Blockly.pathToBlockly + 'blocks/seeed/grove/I2C_color_sensor_v2.jpg', Blockly.Arduino.imageSize, Blockly.Arduino.imageSize))
233+
.appendField("turn led on/off")
234+
.appendField(new Blockly.FieldDropdown([["on", "true"], ["off", "false"]]), "LED");
235+
this.setInputsInline(true);
236+
this.setPreviousStatement(true, null);
237+
this.setNextStatement(true, null);
238+
this.setTooltip('this blocks turns embed LED on/off');
239+
}
240+
};
241+
242+
Blockly.Blocks['grove_i2c_color_sensor_2_read_colors'] = {
243+
init: function() {
244+
this.setColour(Blockly.Blocks.grove.HUE);
245+
this.setHelpUrl('https://wiki.seeedstudio.com/Grove-I2C_Color_Sensor/');
246+
this.appendDummyInput()
247+
.appendField(new Blockly.FieldImage(Blockly.pathToBlockly + 'blocks/seeed/grove/I2C_color_sensor_v2.jpg', Blockly.Arduino.imageSize, Blockly.Arduino.imageSize))
248+
.appendField("color value for color")
249+
.appendField(new Blockly.FieldDropdown([["red", "data_red"], ["green", "data_green"], ["blue", "data_blue"]]), "color_choice");
250+
this.setOutput(true, "Number");
251+
this.setInputsInline(true);
252+
this.setTooltip('this blocks returns value for color');
253+
}
254+
};
255+
214256
Blockly.Blocks['grove_serial_lcd_print'] = {
215257
init: function() {
216258
this.setColour(Blockly.Blocks.grove.HUE);

core/BlocklyArduino/blockly@rduino_boards.js

Lines changed: 26 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -106,6 +106,32 @@ var profile = {
106106
upload_arg: "arduino:avr:diecimila",
107107
help_link: "https://docs.arduino.cc/retired/boards/arduino-diecimila/"
108108
},
109+
arduino_due_x: {
110+
description: "Arduino Due",
111+
cpu: "SAM3X8E",
112+
speed: "115200",
113+
digital: ["0", "1", "2", "3", "4", "5", "6", "7", "8", "9", "10", "11", "12", "13", "14", "15", "16", "17", "18", "19", "20", "21", "22", "23", "24", "25", "26", "27", "28", "29", "30", "31", "32", "33", "34", "35", "36", "37", "38", "39", "40", "41", "42", "43", "44", "45", "46", "47", "48", "49", "50", "51", "52", "53"],
114+
dropdownDigital: "attention",
115+
PWM: ["5", "6", "7", "8", "9", "10", "11", "12", "13", "14", "15", "16"],
116+
dropdownPWM: [["5", "5"], ["6", "6"], ["7", "7"], ["8", "8"], ["9", "9"], ["10", "10"], ["11", "11"], ["12", "12"], ["13", "13"], ["14", "14"], ["15", "15"], ["16", "16"]],
117+
analog: ["A0", "A1", "A2", "A3", "A4", "A5", "A6", "A7", "A8", "A9", "A10", "A11"],
118+
dropdownAnalog: [["A0", "A0"], ["A1", "A1"], ["A2", "A2"], ["A3", "A3"], ["A4", "A4"], ["A5", "A5"], ["A6", "A6"], ["A7", "A7"], ["A8", "A8"], ["A9", "A9"], ["A10", "A10"], ["A11", "A11"]],
119+
/*irqonchange : [["10", "10"], ["11", "11"], ["12", "12"], ["13", "13"], ["14", "14"], ["15", "15"], ["50", "50"], ["51", "51"], ["52", "52"], ["53", "53"], ["A8", "62"], ["A9", "63"], ["A10", "64"], ["A11", "65"], ["A12", "66"], ["A13", "67"], ["A14", "68"], ["A15", "69"]],*/
120+
I2C: ["20", "21"],
121+
SPI: [["10 (SS)", "10"], ["11 (MOSI)", "11"], ["12 (MISO)", "12"], ["13 (SCK)", "13"]],
122+
interrupt: ["2", "3", "21", "20", "19", "18"],
123+
picture: "media/boards/arduino_due_x.jpg",
124+
miniPicture: "media/boards/arduino_due_x_mini.jpg",
125+
miniPicture_hor: "media/boards/aarduino_due_x_mini_hor.jpg",
126+
serial: [['300', '300'], ['600', '600'], ['1200', '1200'],
127+
['2400', '2400'], ['4800', '4800'], ['9600', '9600'],
128+
['14400', '14400'], ['19200', '19200'], ['28800', '28800'],
129+
['31250', '31250'], ['38400', '38400'], ['57600', '57600'],
130+
['115200', '115200']],
131+
serialPin: [["0 (Rx0) ; 1 (Tx0)", "0"], ["19 (Rx1) ; 18 (Tx1)", "19"], ["17 (Rx2) ; 16 (Tx2)", "17"], ["15 (Rx3) ; 14 (Tx3)", "15"]],
132+
upload_arg: "arduino:sam:arduino_due_x",
133+
help_link: "https://docs.arduino.cc/hardware/due/"
134+
},
109135
arduino_esplora: {
110136
description: "Arduino Esplora",
111137
cpu: "atmega32u4",

generators/arduino/grove.js

Lines changed: 33 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -101,6 +101,39 @@ Blockly.Arduino.grove_moisture_sensor = function() {
101101
return [code, Blockly.Arduino.ORDER_ATOMIC];
102102
};
103103

104+
Blockly.Arduino.grove_i2c_color_sensor_2_test = function() {
105+
Blockly.Arduino.includes_['Wire'] = '#include <Wire.h>'
106+
Blockly.Arduino.includes_['Adafruit_TCS34725'] = '#include "Adafruit_TCS34725.h"'
107+
Blockly.Arduino.definitions_['Adafruit_TCS34725'] = 'Adafruit_TCS34725 tcs = Adafruit_TCS34725(TCS34725_INTEGRATIONTIME_50MS, TCS34725_GAIN_4X);'
108+
var code = 'tcs.begin()'
109+
return [code, Blockly.Arduino.ORDER_ATOMIC];
110+
};
111+
112+
Blockly.Arduino.grove_i2c_color_sensor_2_led = function() {
113+
var dropdown_led = this.getFieldValue('LED');
114+
var code = 'tcs.setInterrupt(' + dropdown_led + ');';
115+
return code;
116+
};
117+
118+
Blockly.Arduino.grove_i2c_color_sensor_2_read_colors = function() {
119+
Blockly.Arduino.userFunctions_['grove_i2c_color_sensor_2_read_colors'] = 'int getColorValue(String color_choice) {\n'
120+
+' uint16_t clear, red, green, blue;\n'
121+
+' tcs.getRawData(&red, &green, &blue, &clear);\n'
122+
+' if (color_choice == "data_red") {\n'
123+
+' return red;\n'
124+
+' } else if (color_choice == "data_green") {\n'
125+
+' return green;\n'
126+
+' } else if (color_choice == "data_blue") {\n'
127+
+' return blue;\n'
128+
+' } else {\n'
129+
+' return 0;\n'
130+
+' }\n'
131+
+'}';
132+
var dropdown_color_choice = this.getFieldValue('color_choice');
133+
var code = 'getColorValue("' + dropdown_color_choice + '")';
134+
return [code, Blockly.Arduino.ORDER_ATOMIC];
135+
};
136+
104137
/*
105138
#include <SerialLCD.h>
106139
#include <SoftwareSerial.h> //this is a must

index.html

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -668,6 +668,7 @@ <h4>
668668
<optgroup label="Arduino">
669669
<option value="arduino_bt">Arduino BT</option>
670670
<option value="arduino_diecimila">Arduino Duemilanove/Diecemila</option>
671+
<option value="arduino_due_x">Arduino Due</option>
671672
<option value="arduino_esplora">Arduino Esplora</option>
672673
<option value="arduino_ethernet">Arduino Ethernet</option>
673674
<option value="arduino_fio">Arduino Fio</option>

index_AIO.html

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -684,6 +684,7 @@ <h4>
684684
<optgroup label="Arduino">
685685
<option value="arduino_bt">Arduino BT</option>
686686
<option value="arduino_diecimila">Arduino Duemilanove/Diecemila</option>
687+
<option value="arduino_due_x">Arduino Due</option>
687688
<option value="arduino_esplora">Arduino Esplora</option>
688689
<option value="arduino_ethernet">Arduino Ethernet</option>
689690
<option value="arduino_fio">Arduino Fio</option>

index_IDE.html

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -669,6 +669,7 @@ <h4>
669669
<optgroup label="Arduino">
670670
<option value="arduino_bt">Arduino BT</option>
671671
<option value="arduino_diecimila">Arduino Duemilanove/Diecemila</option>
672+
<option value="arduino_due_x">Arduino Due</option>
672673
<option value="arduino_esplora">Arduino Esplora</option>
673674
<option value="arduino_ethernet">Arduino Ethernet</option>
674675
<option value="arduino_fio">Arduino Fio</option>

index_electron.html

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -696,6 +696,7 @@ <h4>
696696
<optgroup label="Arduino">
697697
<option value="arduino_bt">Arduino BT</option>
698698
<option value="arduino_diecimila">Arduino Duemilanove/Diecemila</option>
699+
<option value="arduino_due_x">Arduino Due</option>
699700
<option value="arduino_esplora">Arduino Esplora</option>
700701
<option value="arduino_ethernet">Arduino Ethernet</option>
701702
<option value="arduino_fio">Arduino Fio</option>

index_fritzing.html

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -655,6 +655,7 @@ <h4>
655655
<optgroup label="Arduino">
656656
<option value="arduino_bt">Arduino BT</option>
657657
<option value="arduino_diecimila">Arduino Duemilanove/Diecemila</option>
658+
<option value="arduino_due_x">Arduino Due</option>
658659
<option value="arduino_esplora">Arduino Esplora</option>
659660
<option value="arduino_ethernet">Arduino Ethernet</option>
660661
<option value="arduino_fio">Arduino Fio</option>

0 commit comments

Comments
 (0)