From 7f3c713ecb4d2a3997aaed47500070e94153827e Mon Sep 17 00:00:00 2001 From: TonyCallear Date: Sat, 22 Nov 2014 17:13:03 +0000 Subject: [PATCH 01/25] Revert "Untidy stuff" This reverts commit bc1c87ebcb53513af7e305b24b4cd5e002d97523. --- .../com/ardublock/block/ardublock.xml | 22 ++++++++++--------- 1 file changed, 12 insertions(+), 10 deletions(-) diff --git a/src/main/resources/com/ardublock/block/ardublock.xml b/src/main/resources/com/ardublock/block/ardublock.xml index 5388e727..fc0c2e09 100644 --- a/src/main/resources/com/ardublock/block/ardublock.xml +++ b/src/main/resources/com/ardublock/block/ardublock.xml @@ -8468,9 +8468,6 @@ loop program - delay - delay_microseconds - millis if ifelse while @@ -8562,6 +8559,9 @@ variable_poly + delay + delay_microseconds + millis servo_default ultrasonic LCD_I2C_Sainsmart_20by4 @@ -8679,12 +8679,6 @@ panda_i1 panda_o1 df_lcd_keypad - bluno_println - bluno_println_number - bluno_println_clear - df_romeo_motors - df_romeo_motor - df_romeo_motor_stop seeed_o2_sensor @@ -8894,7 +8888,15 @@ little_bits_vibration_motor little_bits_synthspeaker - + + + bluno_println + bluno_println_number + bluno_println_clear + df_romeo_motors + df_romeo_motor + df_romeo_motor_stop + ke-motor-run From 06aa56b613e9711fe4e03efde8b38999fd19df7b Mon Sep 17 00:00:00 2001 From: TonyCallear Date: Sun, 27 Mar 2016 09:21:17 +0100 Subject: [PATCH 02/25] DropDownList-01 Analog and Digital --- .../com/ardublock/translator/block/A0.java | 20 +++++++++++++++++++ .../com/ardublock/translator/block/A1.java | 20 +++++++++++++++++++ .../com/ardublock/translator/block/A10.java | 20 +++++++++++++++++++ .../com/ardublock/translator/block/A11.java | 20 +++++++++++++++++++ .../com/ardublock/translator/block/A12.java | 20 +++++++++++++++++++ .../com/ardublock/translator/block/A13.java | 20 +++++++++++++++++++ .../com/ardublock/translator/block/A14.java | 20 +++++++++++++++++++ .../com/ardublock/translator/block/A15.java | 20 +++++++++++++++++++ .../com/ardublock/translator/block/A2.java | 20 +++++++++++++++++++ .../com/ardublock/translator/block/A3.java | 20 +++++++++++++++++++ .../com/ardublock/translator/block/A4.java | 20 +++++++++++++++++++ .../com/ardublock/translator/block/A5.java | 20 +++++++++++++++++++ .../com/ardublock/translator/block/A6.java | 20 +++++++++++++++++++ .../com/ardublock/translator/block/A7.java | 20 +++++++++++++++++++ .../com/ardublock/translator/block/A8.java | 20 +++++++++++++++++++ .../com/ardublock/translator/block/A9.java | 20 +++++++++++++++++++ .../com/ardublock/translator/block/D0.java | 20 +++++++++++++++++++ .../com/ardublock/translator/block/D1.java | 20 +++++++++++++++++++ .../com/ardublock/translator/block/D10.java | 20 +++++++++++++++++++ .../com/ardublock/translator/block/D11.java | 20 +++++++++++++++++++ .../com/ardublock/translator/block/D12.java | 20 +++++++++++++++++++ .../com/ardublock/translator/block/D13.java | 20 +++++++++++++++++++ .../com/ardublock/translator/block/D14.java | 20 +++++++++++++++++++ .../com/ardublock/translator/block/D15.java | 20 +++++++++++++++++++ .../com/ardublock/translator/block/D16.java | 20 +++++++++++++++++++ .../com/ardublock/translator/block/D17.java | 20 +++++++++++++++++++ .../com/ardublock/translator/block/D18.java | 20 +++++++++++++++++++ .../com/ardublock/translator/block/D19.java | 20 +++++++++++++++++++ .../com/ardublock/translator/block/D2.java | 20 +++++++++++++++++++ .../com/ardublock/translator/block/D20.java | 20 +++++++++++++++++++ .../com/ardublock/translator/block/D21.java | 20 +++++++++++++++++++ .../com/ardublock/translator/block/D22.java | 20 +++++++++++++++++++ .../com/ardublock/translator/block/D23.java | 20 +++++++++++++++++++ .../com/ardublock/translator/block/D24.java | 20 +++++++++++++++++++ .../com/ardublock/translator/block/D25.java | 20 +++++++++++++++++++ .../com/ardublock/translator/block/D26.java | 20 +++++++++++++++++++ .../com/ardublock/translator/block/D27.java | 20 +++++++++++++++++++ .../com/ardublock/translator/block/D28.java | 20 +++++++++++++++++++ .../com/ardublock/translator/block/D29.java | 20 +++++++++++++++++++ .../com/ardublock/translator/block/D3.java | 20 +++++++++++++++++++ .../com/ardublock/translator/block/D30.java | 20 +++++++++++++++++++ .../com/ardublock/translator/block/D31.java | 20 +++++++++++++++++++ .../com/ardublock/translator/block/D32.java | 20 +++++++++++++++++++ .../com/ardublock/translator/block/D33.java | 20 +++++++++++++++++++ .../com/ardublock/translator/block/D34.java | 20 +++++++++++++++++++ .../com/ardublock/translator/block/D35.java | 20 +++++++++++++++++++ .../com/ardublock/translator/block/D36.java | 20 +++++++++++++++++++ .../com/ardublock/translator/block/D37.java | 20 +++++++++++++++++++ .../com/ardublock/translator/block/D38.java | 20 +++++++++++++++++++ .../com/ardublock/translator/block/D39.java | 20 +++++++++++++++++++ .../com/ardublock/translator/block/D4.java | 20 +++++++++++++++++++ .../com/ardublock/translator/block/D40.java | 20 +++++++++++++++++++ .../com/ardublock/translator/block/D41.java | 20 +++++++++++++++++++ .../com/ardublock/translator/block/D42.java | 20 +++++++++++++++++++ .../com/ardublock/translator/block/D43.java | 20 +++++++++++++++++++ .../com/ardublock/translator/block/D44.java | 20 +++++++++++++++++++ .../com/ardublock/translator/block/D45.java | 20 +++++++++++++++++++ .../com/ardublock/translator/block/D46.java | 20 +++++++++++++++++++ .../com/ardublock/translator/block/D47.java | 20 +++++++++++++++++++ .../com/ardublock/translator/block/D48.java | 20 +++++++++++++++++++ .../com/ardublock/translator/block/D49.java | 20 +++++++++++++++++++ .../com/ardublock/translator/block/D5.java | 20 +++++++++++++++++++ .../com/ardublock/translator/block/D50.java | 20 +++++++++++++++++++ .../com/ardublock/translator/block/D51.java | 20 +++++++++++++++++++ .../com/ardublock/translator/block/D52.java | 20 +++++++++++++++++++ .../com/ardublock/translator/block/D53.java | 20 +++++++++++++++++++ .../com/ardublock/translator/block/D6.java | 20 +++++++++++++++++++ .../com/ardublock/translator/block/D7.java | 20 +++++++++++++++++++ .../com/ardublock/translator/block/D8.java | 20 +++++++++++++++++++ .../com/ardublock/translator/block/D9.java | 20 +++++++++++++++++++ 70 files changed, 1400 insertions(+) create mode 100644 src/main/java/com/ardublock/translator/block/A0.java create mode 100644 src/main/java/com/ardublock/translator/block/A1.java create mode 100644 src/main/java/com/ardublock/translator/block/A10.java create mode 100644 src/main/java/com/ardublock/translator/block/A11.java create mode 100644 src/main/java/com/ardublock/translator/block/A12.java create mode 100644 src/main/java/com/ardublock/translator/block/A13.java create mode 100644 src/main/java/com/ardublock/translator/block/A14.java create mode 100644 src/main/java/com/ardublock/translator/block/A15.java create mode 100644 src/main/java/com/ardublock/translator/block/A2.java create mode 100644 src/main/java/com/ardublock/translator/block/A3.java create mode 100644 src/main/java/com/ardublock/translator/block/A4.java create mode 100644 src/main/java/com/ardublock/translator/block/A5.java create mode 100644 src/main/java/com/ardublock/translator/block/A6.java create mode 100644 src/main/java/com/ardublock/translator/block/A7.java create mode 100644 src/main/java/com/ardublock/translator/block/A8.java create mode 100644 src/main/java/com/ardublock/translator/block/A9.java create mode 100644 src/main/java/com/ardublock/translator/block/D0.java create mode 100644 src/main/java/com/ardublock/translator/block/D1.java create mode 100644 src/main/java/com/ardublock/translator/block/D10.java create mode 100644 src/main/java/com/ardublock/translator/block/D11.java create mode 100644 src/main/java/com/ardublock/translator/block/D12.java create mode 100644 src/main/java/com/ardublock/translator/block/D13.java create mode 100644 src/main/java/com/ardublock/translator/block/D14.java create mode 100644 src/main/java/com/ardublock/translator/block/D15.java create mode 100644 src/main/java/com/ardublock/translator/block/D16.java create mode 100644 src/main/java/com/ardublock/translator/block/D17.java create mode 100644 src/main/java/com/ardublock/translator/block/D18.java create mode 100644 src/main/java/com/ardublock/translator/block/D19.java create mode 100644 src/main/java/com/ardublock/translator/block/D2.java create mode 100644 src/main/java/com/ardublock/translator/block/D20.java create mode 100644 src/main/java/com/ardublock/translator/block/D21.java create mode 100644 src/main/java/com/ardublock/translator/block/D22.java create mode 100644 src/main/java/com/ardublock/translator/block/D23.java create mode 100644 src/main/java/com/ardublock/translator/block/D24.java create mode 100644 src/main/java/com/ardublock/translator/block/D25.java create mode 100644 src/main/java/com/ardublock/translator/block/D26.java create mode 100644 src/main/java/com/ardublock/translator/block/D27.java create mode 100644 src/main/java/com/ardublock/translator/block/D28.java create mode 100644 src/main/java/com/ardublock/translator/block/D29.java create mode 100644 src/main/java/com/ardublock/translator/block/D3.java create mode 100644 src/main/java/com/ardublock/translator/block/D30.java create mode 100644 src/main/java/com/ardublock/translator/block/D31.java create mode 100644 src/main/java/com/ardublock/translator/block/D32.java create mode 100644 src/main/java/com/ardublock/translator/block/D33.java create mode 100644 src/main/java/com/ardublock/translator/block/D34.java create mode 100644 src/main/java/com/ardublock/translator/block/D35.java create mode 100644 src/main/java/com/ardublock/translator/block/D36.java create mode 100644 src/main/java/com/ardublock/translator/block/D37.java create mode 100644 src/main/java/com/ardublock/translator/block/D38.java create mode 100644 src/main/java/com/ardublock/translator/block/D39.java create mode 100644 src/main/java/com/ardublock/translator/block/D4.java create mode 100644 src/main/java/com/ardublock/translator/block/D40.java create mode 100644 src/main/java/com/ardublock/translator/block/D41.java create mode 100644 src/main/java/com/ardublock/translator/block/D42.java create mode 100644 src/main/java/com/ardublock/translator/block/D43.java create mode 100644 src/main/java/com/ardublock/translator/block/D44.java create mode 100644 src/main/java/com/ardublock/translator/block/D45.java create mode 100644 src/main/java/com/ardublock/translator/block/D46.java create mode 100644 src/main/java/com/ardublock/translator/block/D47.java create mode 100644 src/main/java/com/ardublock/translator/block/D48.java create mode 100644 src/main/java/com/ardublock/translator/block/D49.java create mode 100644 src/main/java/com/ardublock/translator/block/D5.java create mode 100644 src/main/java/com/ardublock/translator/block/D50.java create mode 100644 src/main/java/com/ardublock/translator/block/D51.java create mode 100644 src/main/java/com/ardublock/translator/block/D52.java create mode 100644 src/main/java/com/ardublock/translator/block/D53.java create mode 100644 src/main/java/com/ardublock/translator/block/D6.java create mode 100644 src/main/java/com/ardublock/translator/block/D7.java create mode 100644 src/main/java/com/ardublock/translator/block/D8.java create mode 100644 src/main/java/com/ardublock/translator/block/D9.java diff --git a/src/main/java/com/ardublock/translator/block/A0.java b/src/main/java/com/ardublock/translator/block/A0.java new file mode 100644 index 00000000..1d205966 --- /dev/null +++ b/src/main/java/com/ardublock/translator/block/A0.java @@ -0,0 +1,20 @@ +package com.ardublock.translator.block; + +import com.ardublock.translator.Translator; +import com.ardublock.translator.block.exception.SocketNullException; +import com.ardublock.translator.block.exception.SubroutineNotDeclaredException; + +public class A0 extends TranslatorBlock + { + + public A0(Long blockId, Translator translator, String codePrefix, String codeSuffix, String label) + { + super(blockId, translator, codePrefix, codeSuffix, label); + } + + @Override + public String toCode() throws SocketNullException { + return codePrefix + "A0" + codeSuffix; + } + + } \ No newline at end of file diff --git a/src/main/java/com/ardublock/translator/block/A1.java b/src/main/java/com/ardublock/translator/block/A1.java new file mode 100644 index 00000000..24e84b7b --- /dev/null +++ b/src/main/java/com/ardublock/translator/block/A1.java @@ -0,0 +1,20 @@ +package com.ardublock.translator.block; + +import com.ardublock.translator.Translator; +import com.ardublock.translator.block.exception.SocketNullException; +import com.ardublock.translator.block.exception.SubroutineNotDeclaredException; + +public class A1 extends TranslatorBlock + { + + public A1(Long blockId, Translator translator, String codePrefix, String codeSuffix, String label) + { + super(blockId, translator, codePrefix, codeSuffix, label); + } + + @Override + public String toCode() throws SocketNullException { + return codePrefix + "A1" + codeSuffix; + } + + } \ No newline at end of file diff --git a/src/main/java/com/ardublock/translator/block/A10.java b/src/main/java/com/ardublock/translator/block/A10.java new file mode 100644 index 00000000..97d22773 --- /dev/null +++ b/src/main/java/com/ardublock/translator/block/A10.java @@ -0,0 +1,20 @@ +package com.ardublock.translator.block; + +import com.ardublock.translator.Translator; +import com.ardublock.translator.block.exception.SocketNullException; +import com.ardublock.translator.block.exception.SubroutineNotDeclaredException; + +public class A10 extends TranslatorBlock + { + + public A10(Long blockId, Translator translator, String codePrefix, String codeSuffix, String label) + { + super(blockId, translator, codePrefix, codeSuffix, label); + } + + @Override + public String toCode() throws SocketNullException { + return codePrefix + "A10" + codeSuffix; + } + + } \ No newline at end of file diff --git a/src/main/java/com/ardublock/translator/block/A11.java b/src/main/java/com/ardublock/translator/block/A11.java new file mode 100644 index 00000000..d838b3ff --- /dev/null +++ b/src/main/java/com/ardublock/translator/block/A11.java @@ -0,0 +1,20 @@ +package com.ardublock.translator.block; + +import com.ardublock.translator.Translator; +import com.ardublock.translator.block.exception.SocketNullException; +import com.ardublock.translator.block.exception.SubroutineNotDeclaredException; + +public class A11 extends TranslatorBlock + { + + public A11(Long blockId, Translator translator, String codePrefix, String codeSuffix, String label) + { + super(blockId, translator, codePrefix, codeSuffix, label); + } + + @Override + public String toCode() throws SocketNullException { + return codePrefix + "A11" + codeSuffix; + } + + } \ No newline at end of file diff --git a/src/main/java/com/ardublock/translator/block/A12.java b/src/main/java/com/ardublock/translator/block/A12.java new file mode 100644 index 00000000..a2a65866 --- /dev/null +++ b/src/main/java/com/ardublock/translator/block/A12.java @@ -0,0 +1,20 @@ +package com.ardublock.translator.block; + +import com.ardublock.translator.Translator; +import com.ardublock.translator.block.exception.SocketNullException; +import com.ardublock.translator.block.exception.SubroutineNotDeclaredException; + +public class A12 extends TranslatorBlock + { + + public A12(Long blockId, Translator translator, String codePrefix, String codeSuffix, String label) + { + super(blockId, translator, codePrefix, codeSuffix, label); + } + + @Override + public String toCode() throws SocketNullException { + return codePrefix + "A12" + codeSuffix; + } + + } \ No newline at end of file diff --git a/src/main/java/com/ardublock/translator/block/A13.java b/src/main/java/com/ardublock/translator/block/A13.java new file mode 100644 index 00000000..779193b8 --- /dev/null +++ b/src/main/java/com/ardublock/translator/block/A13.java @@ -0,0 +1,20 @@ +package com.ardublock.translator.block; + +import com.ardublock.translator.Translator; +import com.ardublock.translator.block.exception.SocketNullException; +import com.ardublock.translator.block.exception.SubroutineNotDeclaredException; + +public class A13 extends TranslatorBlock + { + + public A13(Long blockId, Translator translator, String codePrefix, String codeSuffix, String label) + { + super(blockId, translator, codePrefix, codeSuffix, label); + } + + @Override + public String toCode() throws SocketNullException { + return codePrefix + "A13" + codeSuffix; + } + + } \ No newline at end of file diff --git a/src/main/java/com/ardublock/translator/block/A14.java b/src/main/java/com/ardublock/translator/block/A14.java new file mode 100644 index 00000000..00253250 --- /dev/null +++ b/src/main/java/com/ardublock/translator/block/A14.java @@ -0,0 +1,20 @@ +package com.ardublock.translator.block; + +import com.ardublock.translator.Translator; +import com.ardublock.translator.block.exception.SocketNullException; +import com.ardublock.translator.block.exception.SubroutineNotDeclaredException; + +public class A14 extends TranslatorBlock + { + + public A14(Long blockId, Translator translator, String codePrefix, String codeSuffix, String label) + { + super(blockId, translator, codePrefix, codeSuffix, label); + } + + @Override + public String toCode() throws SocketNullException { + return codePrefix + "A14" + codeSuffix; + } + + } \ No newline at end of file diff --git a/src/main/java/com/ardublock/translator/block/A15.java b/src/main/java/com/ardublock/translator/block/A15.java new file mode 100644 index 00000000..cb7ed4d1 --- /dev/null +++ b/src/main/java/com/ardublock/translator/block/A15.java @@ -0,0 +1,20 @@ +package com.ardublock.translator.block; + +import com.ardublock.translator.Translator; +import com.ardublock.translator.block.exception.SocketNullException; +import com.ardublock.translator.block.exception.SubroutineNotDeclaredException; + +public class A15 extends TranslatorBlock + { + + public A15(Long blockId, Translator translator, String codePrefix, String codeSuffix, String label) + { + super(blockId, translator, codePrefix, codeSuffix, label); + } + + @Override + public String toCode() throws SocketNullException { + return codePrefix + "A15" + codeSuffix; + } + + } \ No newline at end of file diff --git a/src/main/java/com/ardublock/translator/block/A2.java b/src/main/java/com/ardublock/translator/block/A2.java new file mode 100644 index 00000000..80abab1f --- /dev/null +++ b/src/main/java/com/ardublock/translator/block/A2.java @@ -0,0 +1,20 @@ +package com.ardublock.translator.block; + +import com.ardublock.translator.Translator; +import com.ardublock.translator.block.exception.SocketNullException; +import com.ardublock.translator.block.exception.SubroutineNotDeclaredException; + +public class A2 extends TranslatorBlock + { + + public A2(Long blockId, Translator translator, String codePrefix, String codeSuffix, String label) + { + super(blockId, translator, codePrefix, codeSuffix, label); + } + + @Override + public String toCode() throws SocketNullException { + return codePrefix + "A2" + codeSuffix; + } + + } \ No newline at end of file diff --git a/src/main/java/com/ardublock/translator/block/A3.java b/src/main/java/com/ardublock/translator/block/A3.java new file mode 100644 index 00000000..5b06ce77 --- /dev/null +++ b/src/main/java/com/ardublock/translator/block/A3.java @@ -0,0 +1,20 @@ +package com.ardublock.translator.block; + +import com.ardublock.translator.Translator; +import com.ardublock.translator.block.exception.SocketNullException; +import com.ardublock.translator.block.exception.SubroutineNotDeclaredException; + +public class A3 extends TranslatorBlock + { + + public A3(Long blockId, Translator translator, String codePrefix, String codeSuffix, String label) + { + super(blockId, translator, codePrefix, codeSuffix, label); + } + + @Override + public String toCode() throws SocketNullException { + return codePrefix + "A3" + codeSuffix; + } + + } \ No newline at end of file diff --git a/src/main/java/com/ardublock/translator/block/A4.java b/src/main/java/com/ardublock/translator/block/A4.java new file mode 100644 index 00000000..992ac144 --- /dev/null +++ b/src/main/java/com/ardublock/translator/block/A4.java @@ -0,0 +1,20 @@ +package com.ardublock.translator.block; + +import com.ardublock.translator.Translator; +import com.ardublock.translator.block.exception.SocketNullException; +import com.ardublock.translator.block.exception.SubroutineNotDeclaredException; + +public class A4 extends TranslatorBlock + { + + public A4(Long blockId, Translator translator, String codePrefix, String codeSuffix, String label) + { + super(blockId, translator, codePrefix, codeSuffix, label); + } + + @Override + public String toCode() throws SocketNullException { + return codePrefix + "A4" + codeSuffix; + } + + } \ No newline at end of file diff --git a/src/main/java/com/ardublock/translator/block/A5.java b/src/main/java/com/ardublock/translator/block/A5.java new file mode 100644 index 00000000..a55931a4 --- /dev/null +++ b/src/main/java/com/ardublock/translator/block/A5.java @@ -0,0 +1,20 @@ +package com.ardublock.translator.block; + +import com.ardublock.translator.Translator; +import com.ardublock.translator.block.exception.SocketNullException; +import com.ardublock.translator.block.exception.SubroutineNotDeclaredException; + +public class A5 extends TranslatorBlock + { + + public A5(Long blockId, Translator translator, String codePrefix, String codeSuffix, String label) + { + super(blockId, translator, codePrefix, codeSuffix, label); + } + + @Override + public String toCode() throws SocketNullException { + return codePrefix + "A5" + codeSuffix; + } + + } \ No newline at end of file diff --git a/src/main/java/com/ardublock/translator/block/A6.java b/src/main/java/com/ardublock/translator/block/A6.java new file mode 100644 index 00000000..70d9b743 --- /dev/null +++ b/src/main/java/com/ardublock/translator/block/A6.java @@ -0,0 +1,20 @@ +package com.ardublock.translator.block; + +import com.ardublock.translator.Translator; +import com.ardublock.translator.block.exception.SocketNullException; +import com.ardublock.translator.block.exception.SubroutineNotDeclaredException; + +public class A6 extends TranslatorBlock + { + + public A6(Long blockId, Translator translator, String codePrefix, String codeSuffix, String label) + { + super(blockId, translator, codePrefix, codeSuffix, label); + } + + @Override + public String toCode() throws SocketNullException { + return codePrefix + "A6" + codeSuffix; + } + + } \ No newline at end of file diff --git a/src/main/java/com/ardublock/translator/block/A7.java b/src/main/java/com/ardublock/translator/block/A7.java new file mode 100644 index 00000000..05b14de1 --- /dev/null +++ b/src/main/java/com/ardublock/translator/block/A7.java @@ -0,0 +1,20 @@ +package com.ardublock.translator.block; + +import com.ardublock.translator.Translator; +import com.ardublock.translator.block.exception.SocketNullException; +import com.ardublock.translator.block.exception.SubroutineNotDeclaredException; + +public class A7 extends TranslatorBlock + { + + public A7(Long blockId, Translator translator, String codePrefix, String codeSuffix, String label) + { + super(blockId, translator, codePrefix, codeSuffix, label); + } + + @Override + public String toCode() throws SocketNullException { + return codePrefix + "A7" + codeSuffix; + } + + } \ No newline at end of file diff --git a/src/main/java/com/ardublock/translator/block/A8.java b/src/main/java/com/ardublock/translator/block/A8.java new file mode 100644 index 00000000..b094ebaa --- /dev/null +++ b/src/main/java/com/ardublock/translator/block/A8.java @@ -0,0 +1,20 @@ +package com.ardublock.translator.block; + +import com.ardublock.translator.Translator; +import com.ardublock.translator.block.exception.SocketNullException; +import com.ardublock.translator.block.exception.SubroutineNotDeclaredException; + +public class A8 extends TranslatorBlock + { + + public A8(Long blockId, Translator translator, String codePrefix, String codeSuffix, String label) + { + super(blockId, translator, codePrefix, codeSuffix, label); + } + + @Override + public String toCode() throws SocketNullException { + return codePrefix + "A8" + codeSuffix; + } + + } \ No newline at end of file diff --git a/src/main/java/com/ardublock/translator/block/A9.java b/src/main/java/com/ardublock/translator/block/A9.java new file mode 100644 index 00000000..68cbac20 --- /dev/null +++ b/src/main/java/com/ardublock/translator/block/A9.java @@ -0,0 +1,20 @@ +package com.ardublock.translator.block; + +import com.ardublock.translator.Translator; +import com.ardublock.translator.block.exception.SocketNullException; +import com.ardublock.translator.block.exception.SubroutineNotDeclaredException; + +public class A9 extends TranslatorBlock + { + + public A9(Long blockId, Translator translator, String codePrefix, String codeSuffix, String label) + { + super(blockId, translator, codePrefix, codeSuffix, label); + } + + @Override + public String toCode() throws SocketNullException { + return codePrefix + "A9" + codeSuffix; + } + + } \ No newline at end of file diff --git a/src/main/java/com/ardublock/translator/block/D0.java b/src/main/java/com/ardublock/translator/block/D0.java new file mode 100644 index 00000000..dbbb9b6c --- /dev/null +++ b/src/main/java/com/ardublock/translator/block/D0.java @@ -0,0 +1,20 @@ +package com.ardublock.translator.block; + +import com.ardublock.translator.Translator; +import com.ardublock.translator.block.exception.SocketNullException; +import com.ardublock.translator.block.exception.SubroutineNotDeclaredException; + +public class D0 extends TranslatorBlock + { + + public D0(Long blockId, Translator translator, String codePrefix, String codeSuffix, String label) + { + super(blockId, translator, codePrefix, codeSuffix, label); + } + + @Override + public String toCode() throws SocketNullException { + return codePrefix + "0" + codeSuffix; + } + + } \ No newline at end of file diff --git a/src/main/java/com/ardublock/translator/block/D1.java b/src/main/java/com/ardublock/translator/block/D1.java new file mode 100644 index 00000000..910a6276 --- /dev/null +++ b/src/main/java/com/ardublock/translator/block/D1.java @@ -0,0 +1,20 @@ +package com.ardublock.translator.block; + +import com.ardublock.translator.Translator; +import com.ardublock.translator.block.exception.SocketNullException; +import com.ardublock.translator.block.exception.SubroutineNotDeclaredException; + +public class D1 extends TranslatorBlock + { + + public D1(Long blockId, Translator translator, String codePrefix, String codeSuffix, String label) + { + super(blockId, translator, codePrefix, codeSuffix, label); + } + + @Override + public String toCode() throws SocketNullException { + return codePrefix + "1" + codeSuffix; + } + + } \ No newline at end of file diff --git a/src/main/java/com/ardublock/translator/block/D10.java b/src/main/java/com/ardublock/translator/block/D10.java new file mode 100644 index 00000000..65bbfd75 --- /dev/null +++ b/src/main/java/com/ardublock/translator/block/D10.java @@ -0,0 +1,20 @@ +package com.ardublock.translator.block; + +import com.ardublock.translator.Translator; +import com.ardublock.translator.block.exception.SocketNullException; +import com.ardublock.translator.block.exception.SubroutineNotDeclaredException; + +public class D10 extends TranslatorBlock + { + + public D10(Long blockId, Translator translator, String codePrefix, String codeSuffix, String label) + { + super(blockId, translator, codePrefix, codeSuffix, label); + } + + @Override + public String toCode() throws SocketNullException { + return codePrefix + "10" + codeSuffix; + } + + } \ No newline at end of file diff --git a/src/main/java/com/ardublock/translator/block/D11.java b/src/main/java/com/ardublock/translator/block/D11.java new file mode 100644 index 00000000..dfad93f6 --- /dev/null +++ b/src/main/java/com/ardublock/translator/block/D11.java @@ -0,0 +1,20 @@ +package com.ardublock.translator.block; + +import com.ardublock.translator.Translator; +import com.ardublock.translator.block.exception.SocketNullException; +import com.ardublock.translator.block.exception.SubroutineNotDeclaredException; + +public class D11 extends TranslatorBlock + { + + public D11(Long blockId, Translator translator, String codePrefix, String codeSuffix, String label) + { + super(blockId, translator, codePrefix, codeSuffix, label); + } + + @Override + public String toCode() throws SocketNullException { + return codePrefix + "11" + codeSuffix; + } + + } \ No newline at end of file diff --git a/src/main/java/com/ardublock/translator/block/D12.java b/src/main/java/com/ardublock/translator/block/D12.java new file mode 100644 index 00000000..b3c4cf4b --- /dev/null +++ b/src/main/java/com/ardublock/translator/block/D12.java @@ -0,0 +1,20 @@ +package com.ardublock.translator.block; + +import com.ardublock.translator.Translator; +import com.ardublock.translator.block.exception.SocketNullException; +import com.ardublock.translator.block.exception.SubroutineNotDeclaredException; + +public class D12 extends TranslatorBlock + { + + public D12(Long blockId, Translator translator, String codePrefix, String codeSuffix, String label) + { + super(blockId, translator, codePrefix, codeSuffix, label); + } + + @Override + public String toCode() throws SocketNullException { + return codePrefix + "12" + codeSuffix; + } + + } \ No newline at end of file diff --git a/src/main/java/com/ardublock/translator/block/D13.java b/src/main/java/com/ardublock/translator/block/D13.java new file mode 100644 index 00000000..37cd00c6 --- /dev/null +++ b/src/main/java/com/ardublock/translator/block/D13.java @@ -0,0 +1,20 @@ +package com.ardublock.translator.block; + +import com.ardublock.translator.Translator; +import com.ardublock.translator.block.exception.SocketNullException; +import com.ardublock.translator.block.exception.SubroutineNotDeclaredException; + +public class D13 extends TranslatorBlock + { + + public D13(Long blockId, Translator translator, String codePrefix, String codeSuffix, String label) + { + super(blockId, translator, codePrefix, codeSuffix, label); + } + + @Override + public String toCode() throws SocketNullException { + return codePrefix + "13" + codeSuffix; + } + + } \ No newline at end of file diff --git a/src/main/java/com/ardublock/translator/block/D14.java b/src/main/java/com/ardublock/translator/block/D14.java new file mode 100644 index 00000000..3d68a7fb --- /dev/null +++ b/src/main/java/com/ardublock/translator/block/D14.java @@ -0,0 +1,20 @@ +package com.ardublock.translator.block; + +import com.ardublock.translator.Translator; +import com.ardublock.translator.block.exception.SocketNullException; +import com.ardublock.translator.block.exception.SubroutineNotDeclaredException; + +public class D14 extends TranslatorBlock + { + + public D14(Long blockId, Translator translator, String codePrefix, String codeSuffix, String label) + { + super(blockId, translator, codePrefix, codeSuffix, label); + } + + @Override + public String toCode() throws SocketNullException { + return codePrefix + "14" + codeSuffix; + } + + } \ No newline at end of file diff --git a/src/main/java/com/ardublock/translator/block/D15.java b/src/main/java/com/ardublock/translator/block/D15.java new file mode 100644 index 00000000..ff2e5807 --- /dev/null +++ b/src/main/java/com/ardublock/translator/block/D15.java @@ -0,0 +1,20 @@ +package com.ardublock.translator.block; + +import com.ardublock.translator.Translator; +import com.ardublock.translator.block.exception.SocketNullException; +import com.ardublock.translator.block.exception.SubroutineNotDeclaredException; + +public class D15 extends TranslatorBlock + { + + public D15(Long blockId, Translator translator, String codePrefix, String codeSuffix, String label) + { + super(blockId, translator, codePrefix, codeSuffix, label); + } + + @Override + public String toCode() throws SocketNullException { + return codePrefix + "15" + codeSuffix; + } + + } \ No newline at end of file diff --git a/src/main/java/com/ardublock/translator/block/D16.java b/src/main/java/com/ardublock/translator/block/D16.java new file mode 100644 index 00000000..4cedd3e7 --- /dev/null +++ b/src/main/java/com/ardublock/translator/block/D16.java @@ -0,0 +1,20 @@ +package com.ardublock.translator.block; + +import com.ardublock.translator.Translator; +import com.ardublock.translator.block.exception.SocketNullException; +import com.ardublock.translator.block.exception.SubroutineNotDeclaredException; + +public class D16 extends TranslatorBlock + { + + public D16(Long blockId, Translator translator, String codePrefix, String codeSuffix, String label) + { + super(blockId, translator, codePrefix, codeSuffix, label); + } + + @Override + public String toCode() throws SocketNullException { + return codePrefix + "16" + codeSuffix; + } + + } \ No newline at end of file diff --git a/src/main/java/com/ardublock/translator/block/D17.java b/src/main/java/com/ardublock/translator/block/D17.java new file mode 100644 index 00000000..5748d5ea --- /dev/null +++ b/src/main/java/com/ardublock/translator/block/D17.java @@ -0,0 +1,20 @@ +package com.ardublock.translator.block; + +import com.ardublock.translator.Translator; +import com.ardublock.translator.block.exception.SocketNullException; +import com.ardublock.translator.block.exception.SubroutineNotDeclaredException; + +public class D17 extends TranslatorBlock + { + + public D17(Long blockId, Translator translator, String codePrefix, String codeSuffix, String label) + { + super(blockId, translator, codePrefix, codeSuffix, label); + } + + @Override + public String toCode() throws SocketNullException { + return codePrefix + "17" + codeSuffix; + } + + } \ No newline at end of file diff --git a/src/main/java/com/ardublock/translator/block/D18.java b/src/main/java/com/ardublock/translator/block/D18.java new file mode 100644 index 00000000..40083585 --- /dev/null +++ b/src/main/java/com/ardublock/translator/block/D18.java @@ -0,0 +1,20 @@ +package com.ardublock.translator.block; + +import com.ardublock.translator.Translator; +import com.ardublock.translator.block.exception.SocketNullException; +import com.ardublock.translator.block.exception.SubroutineNotDeclaredException; + +public class D18 extends TranslatorBlock + { + + public D18(Long blockId, Translator translator, String codePrefix, String codeSuffix, String label) + { + super(blockId, translator, codePrefix, codeSuffix, label); + } + + @Override + public String toCode() throws SocketNullException { + return codePrefix + "18" + codeSuffix; + } + + } \ No newline at end of file diff --git a/src/main/java/com/ardublock/translator/block/D19.java b/src/main/java/com/ardublock/translator/block/D19.java new file mode 100644 index 00000000..114df7ea --- /dev/null +++ b/src/main/java/com/ardublock/translator/block/D19.java @@ -0,0 +1,20 @@ +package com.ardublock.translator.block; + +import com.ardublock.translator.Translator; +import com.ardublock.translator.block.exception.SocketNullException; +import com.ardublock.translator.block.exception.SubroutineNotDeclaredException; + +public class D19 extends TranslatorBlock + { + + public D19(Long blockId, Translator translator, String codePrefix, String codeSuffix, String label) + { + super(blockId, translator, codePrefix, codeSuffix, label); + } + + @Override + public String toCode() throws SocketNullException { + return codePrefix + "19" + codeSuffix; + } + + } \ No newline at end of file diff --git a/src/main/java/com/ardublock/translator/block/D2.java b/src/main/java/com/ardublock/translator/block/D2.java new file mode 100644 index 00000000..130243e4 --- /dev/null +++ b/src/main/java/com/ardublock/translator/block/D2.java @@ -0,0 +1,20 @@ +package com.ardublock.translator.block; + +import com.ardublock.translator.Translator; +import com.ardublock.translator.block.exception.SocketNullException; +import com.ardublock.translator.block.exception.SubroutineNotDeclaredException; + +public class D2 extends TranslatorBlock + { + + public D2(Long blockId, Translator translator, String codePrefix, String codeSuffix, String label) + { + super(blockId, translator, codePrefix, codeSuffix, label); + } + + @Override + public String toCode() throws SocketNullException { + return codePrefix + "2" + codeSuffix; + } + + } \ No newline at end of file diff --git a/src/main/java/com/ardublock/translator/block/D20.java b/src/main/java/com/ardublock/translator/block/D20.java new file mode 100644 index 00000000..9e86ff3a --- /dev/null +++ b/src/main/java/com/ardublock/translator/block/D20.java @@ -0,0 +1,20 @@ +package com.ardublock.translator.block; + +import com.ardublock.translator.Translator; +import com.ardublock.translator.block.exception.SocketNullException; +import com.ardublock.translator.block.exception.SubroutineNotDeclaredException; + +public class D20 extends TranslatorBlock + { + + public D20(Long blockId, Translator translator, String codePrefix, String codeSuffix, String label) + { + super(blockId, translator, codePrefix, codeSuffix, label); + } + + @Override + public String toCode() throws SocketNullException { + return codePrefix + "20" + codeSuffix; + } + + } \ No newline at end of file diff --git a/src/main/java/com/ardublock/translator/block/D21.java b/src/main/java/com/ardublock/translator/block/D21.java new file mode 100644 index 00000000..b410ad2a --- /dev/null +++ b/src/main/java/com/ardublock/translator/block/D21.java @@ -0,0 +1,20 @@ +package com.ardublock.translator.block; + +import com.ardublock.translator.Translator; +import com.ardublock.translator.block.exception.SocketNullException; +import com.ardublock.translator.block.exception.SubroutineNotDeclaredException; + +public class D21 extends TranslatorBlock + { + + public D21(Long blockId, Translator translator, String codePrefix, String codeSuffix, String label) + { + super(blockId, translator, codePrefix, codeSuffix, label); + } + + @Override + public String toCode() throws SocketNullException { + return codePrefix + "21" + codeSuffix; + } + + } \ No newline at end of file diff --git a/src/main/java/com/ardublock/translator/block/D22.java b/src/main/java/com/ardublock/translator/block/D22.java new file mode 100644 index 00000000..6d559bbe --- /dev/null +++ b/src/main/java/com/ardublock/translator/block/D22.java @@ -0,0 +1,20 @@ +package com.ardublock.translator.block; + +import com.ardublock.translator.Translator; +import com.ardublock.translator.block.exception.SocketNullException; +import com.ardublock.translator.block.exception.SubroutineNotDeclaredException; + +public class D22 extends TranslatorBlock + { + + public D22(Long blockId, Translator translator, String codePrefix, String codeSuffix, String label) + { + super(blockId, translator, codePrefix, codeSuffix, label); + } + + @Override + public String toCode() throws SocketNullException { + return codePrefix + "22" + codeSuffix; + } + + } \ No newline at end of file diff --git a/src/main/java/com/ardublock/translator/block/D23.java b/src/main/java/com/ardublock/translator/block/D23.java new file mode 100644 index 00000000..0b7bc461 --- /dev/null +++ b/src/main/java/com/ardublock/translator/block/D23.java @@ -0,0 +1,20 @@ +package com.ardublock.translator.block; + +import com.ardublock.translator.Translator; +import com.ardublock.translator.block.exception.SocketNullException; +import com.ardublock.translator.block.exception.SubroutineNotDeclaredException; + +public class D23 extends TranslatorBlock + { + + public D23(Long blockId, Translator translator, String codePrefix, String codeSuffix, String label) + { + super(blockId, translator, codePrefix, codeSuffix, label); + } + + @Override + public String toCode() throws SocketNullException { + return codePrefix + "23" + codeSuffix; + } + + } \ No newline at end of file diff --git a/src/main/java/com/ardublock/translator/block/D24.java b/src/main/java/com/ardublock/translator/block/D24.java new file mode 100644 index 00000000..0f168665 --- /dev/null +++ b/src/main/java/com/ardublock/translator/block/D24.java @@ -0,0 +1,20 @@ +package com.ardublock.translator.block; + +import com.ardublock.translator.Translator; +import com.ardublock.translator.block.exception.SocketNullException; +import com.ardublock.translator.block.exception.SubroutineNotDeclaredException; + +public class D24 extends TranslatorBlock + { + + public D24(Long blockId, Translator translator, String codePrefix, String codeSuffix, String label) + { + super(blockId, translator, codePrefix, codeSuffix, label); + } + + @Override + public String toCode() throws SocketNullException { + return codePrefix + "24" + codeSuffix; + } + + } \ No newline at end of file diff --git a/src/main/java/com/ardublock/translator/block/D25.java b/src/main/java/com/ardublock/translator/block/D25.java new file mode 100644 index 00000000..f3b813c7 --- /dev/null +++ b/src/main/java/com/ardublock/translator/block/D25.java @@ -0,0 +1,20 @@ +package com.ardublock.translator.block; + +import com.ardublock.translator.Translator; +import com.ardublock.translator.block.exception.SocketNullException; +import com.ardublock.translator.block.exception.SubroutineNotDeclaredException; + +public class D25 extends TranslatorBlock + { + + public D25(Long blockId, Translator translator, String codePrefix, String codeSuffix, String label) + { + super(blockId, translator, codePrefix, codeSuffix, label); + } + + @Override + public String toCode() throws SocketNullException { + return codePrefix + "25" + codeSuffix; + } + + } \ No newline at end of file diff --git a/src/main/java/com/ardublock/translator/block/D26.java b/src/main/java/com/ardublock/translator/block/D26.java new file mode 100644 index 00000000..b320bb1a --- /dev/null +++ b/src/main/java/com/ardublock/translator/block/D26.java @@ -0,0 +1,20 @@ +package com.ardublock.translator.block; + +import com.ardublock.translator.Translator; +import com.ardublock.translator.block.exception.SocketNullException; +import com.ardublock.translator.block.exception.SubroutineNotDeclaredException; + +public class D26 extends TranslatorBlock + { + + public D26(Long blockId, Translator translator, String codePrefix, String codeSuffix, String label) + { + super(blockId, translator, codePrefix, codeSuffix, label); + } + + @Override + public String toCode() throws SocketNullException { + return codePrefix + "26" + codeSuffix; + } + + } \ No newline at end of file diff --git a/src/main/java/com/ardublock/translator/block/D27.java b/src/main/java/com/ardublock/translator/block/D27.java new file mode 100644 index 00000000..cc0e79c1 --- /dev/null +++ b/src/main/java/com/ardublock/translator/block/D27.java @@ -0,0 +1,20 @@ +package com.ardublock.translator.block; + +import com.ardublock.translator.Translator; +import com.ardublock.translator.block.exception.SocketNullException; +import com.ardublock.translator.block.exception.SubroutineNotDeclaredException; + +public class D27 extends TranslatorBlock + { + + public D27(Long blockId, Translator translator, String codePrefix, String codeSuffix, String label) + { + super(blockId, translator, codePrefix, codeSuffix, label); + } + + @Override + public String toCode() throws SocketNullException { + return codePrefix + "27" + codeSuffix; + } + + } \ No newline at end of file diff --git a/src/main/java/com/ardublock/translator/block/D28.java b/src/main/java/com/ardublock/translator/block/D28.java new file mode 100644 index 00000000..3bc51351 --- /dev/null +++ b/src/main/java/com/ardublock/translator/block/D28.java @@ -0,0 +1,20 @@ +package com.ardublock.translator.block; + +import com.ardublock.translator.Translator; +import com.ardublock.translator.block.exception.SocketNullException; +import com.ardublock.translator.block.exception.SubroutineNotDeclaredException; + +public class D28 extends TranslatorBlock + { + + public D28(Long blockId, Translator translator, String codePrefix, String codeSuffix, String label) + { + super(blockId, translator, codePrefix, codeSuffix, label); + } + + @Override + public String toCode() throws SocketNullException { + return codePrefix + "28" + codeSuffix; + } + + } \ No newline at end of file diff --git a/src/main/java/com/ardublock/translator/block/D29.java b/src/main/java/com/ardublock/translator/block/D29.java new file mode 100644 index 00000000..5e429271 --- /dev/null +++ b/src/main/java/com/ardublock/translator/block/D29.java @@ -0,0 +1,20 @@ +package com.ardublock.translator.block; + +import com.ardublock.translator.Translator; +import com.ardublock.translator.block.exception.SocketNullException; +import com.ardublock.translator.block.exception.SubroutineNotDeclaredException; + +public class D29 extends TranslatorBlock + { + + public D29(Long blockId, Translator translator, String codePrefix, String codeSuffix, String label) + { + super(blockId, translator, codePrefix, codeSuffix, label); + } + + @Override + public String toCode() throws SocketNullException { + return codePrefix + "29" + codeSuffix; + } + + } \ No newline at end of file diff --git a/src/main/java/com/ardublock/translator/block/D3.java b/src/main/java/com/ardublock/translator/block/D3.java new file mode 100644 index 00000000..5802d389 --- /dev/null +++ b/src/main/java/com/ardublock/translator/block/D3.java @@ -0,0 +1,20 @@ +package com.ardublock.translator.block; + +import com.ardublock.translator.Translator; +import com.ardublock.translator.block.exception.SocketNullException; +import com.ardublock.translator.block.exception.SubroutineNotDeclaredException; + +public class D3 extends TranslatorBlock + { + + public D3(Long blockId, Translator translator, String codePrefix, String codeSuffix, String label) + { + super(blockId, translator, codePrefix, codeSuffix, label); + } + + @Override + public String toCode() throws SocketNullException { + return codePrefix + "3" + codeSuffix; + } + + } \ No newline at end of file diff --git a/src/main/java/com/ardublock/translator/block/D30.java b/src/main/java/com/ardublock/translator/block/D30.java new file mode 100644 index 00000000..54bb7b8e --- /dev/null +++ b/src/main/java/com/ardublock/translator/block/D30.java @@ -0,0 +1,20 @@ +package com.ardublock.translator.block; + +import com.ardublock.translator.Translator; +import com.ardublock.translator.block.exception.SocketNullException; +import com.ardublock.translator.block.exception.SubroutineNotDeclaredException; + +public class D30 extends TranslatorBlock + { + + public D30(Long blockId, Translator translator, String codePrefix, String codeSuffix, String label) + { + super(blockId, translator, codePrefix, codeSuffix, label); + } + + @Override + public String toCode() throws SocketNullException { + return codePrefix + "30" + codeSuffix; + } + + } \ No newline at end of file diff --git a/src/main/java/com/ardublock/translator/block/D31.java b/src/main/java/com/ardublock/translator/block/D31.java new file mode 100644 index 00000000..7f4e483c --- /dev/null +++ b/src/main/java/com/ardublock/translator/block/D31.java @@ -0,0 +1,20 @@ +package com.ardublock.translator.block; + +import com.ardublock.translator.Translator; +import com.ardublock.translator.block.exception.SocketNullException; +import com.ardublock.translator.block.exception.SubroutineNotDeclaredException; + +public class D31 extends TranslatorBlock + { + + public D31(Long blockId, Translator translator, String codePrefix, String codeSuffix, String label) + { + super(blockId, translator, codePrefix, codeSuffix, label); + } + + @Override + public String toCode() throws SocketNullException { + return codePrefix + "31" + codeSuffix; + } + + } \ No newline at end of file diff --git a/src/main/java/com/ardublock/translator/block/D32.java b/src/main/java/com/ardublock/translator/block/D32.java new file mode 100644 index 00000000..d1e87ff6 --- /dev/null +++ b/src/main/java/com/ardublock/translator/block/D32.java @@ -0,0 +1,20 @@ +package com.ardublock.translator.block; + +import com.ardublock.translator.Translator; +import com.ardublock.translator.block.exception.SocketNullException; +import com.ardublock.translator.block.exception.SubroutineNotDeclaredException; + +public class D32 extends TranslatorBlock + { + + public D32(Long blockId, Translator translator, String codePrefix, String codeSuffix, String label) + { + super(blockId, translator, codePrefix, codeSuffix, label); + } + + @Override + public String toCode() throws SocketNullException { + return codePrefix + "32" + codeSuffix; + } + + } \ No newline at end of file diff --git a/src/main/java/com/ardublock/translator/block/D33.java b/src/main/java/com/ardublock/translator/block/D33.java new file mode 100644 index 00000000..90912990 --- /dev/null +++ b/src/main/java/com/ardublock/translator/block/D33.java @@ -0,0 +1,20 @@ +package com.ardublock.translator.block; + +import com.ardublock.translator.Translator; +import com.ardublock.translator.block.exception.SocketNullException; +import com.ardublock.translator.block.exception.SubroutineNotDeclaredException; + +public class D33 extends TranslatorBlock + { + + public D33(Long blockId, Translator translator, String codePrefix, String codeSuffix, String label) + { + super(blockId, translator, codePrefix, codeSuffix, label); + } + + @Override + public String toCode() throws SocketNullException { + return codePrefix + "33" + codeSuffix; + } + + } \ No newline at end of file diff --git a/src/main/java/com/ardublock/translator/block/D34.java b/src/main/java/com/ardublock/translator/block/D34.java new file mode 100644 index 00000000..40955735 --- /dev/null +++ b/src/main/java/com/ardublock/translator/block/D34.java @@ -0,0 +1,20 @@ +package com.ardublock.translator.block; + +import com.ardublock.translator.Translator; +import com.ardublock.translator.block.exception.SocketNullException; +import com.ardublock.translator.block.exception.SubroutineNotDeclaredException; + +public class D34 extends TranslatorBlock + { + + public D34(Long blockId, Translator translator, String codePrefix, String codeSuffix, String label) + { + super(blockId, translator, codePrefix, codeSuffix, label); + } + + @Override + public String toCode() throws SocketNullException { + return codePrefix + "34" + codeSuffix; + } + + } \ No newline at end of file diff --git a/src/main/java/com/ardublock/translator/block/D35.java b/src/main/java/com/ardublock/translator/block/D35.java new file mode 100644 index 00000000..25232b33 --- /dev/null +++ b/src/main/java/com/ardublock/translator/block/D35.java @@ -0,0 +1,20 @@ +package com.ardublock.translator.block; + +import com.ardublock.translator.Translator; +import com.ardublock.translator.block.exception.SocketNullException; +import com.ardublock.translator.block.exception.SubroutineNotDeclaredException; + +public class D35 extends TranslatorBlock + { + + public D35(Long blockId, Translator translator, String codePrefix, String codeSuffix, String label) + { + super(blockId, translator, codePrefix, codeSuffix, label); + } + + @Override + public String toCode() throws SocketNullException { + return codePrefix + "35" + codeSuffix; + } + + } \ No newline at end of file diff --git a/src/main/java/com/ardublock/translator/block/D36.java b/src/main/java/com/ardublock/translator/block/D36.java new file mode 100644 index 00000000..1aea8b29 --- /dev/null +++ b/src/main/java/com/ardublock/translator/block/D36.java @@ -0,0 +1,20 @@ +package com.ardublock.translator.block; + +import com.ardublock.translator.Translator; +import com.ardublock.translator.block.exception.SocketNullException; +import com.ardublock.translator.block.exception.SubroutineNotDeclaredException; + +public class D36 extends TranslatorBlock + { + + public D36(Long blockId, Translator translator, String codePrefix, String codeSuffix, String label) + { + super(blockId, translator, codePrefix, codeSuffix, label); + } + + @Override + public String toCode() throws SocketNullException { + return codePrefix + "36" + codeSuffix; + } + + } \ No newline at end of file diff --git a/src/main/java/com/ardublock/translator/block/D37.java b/src/main/java/com/ardublock/translator/block/D37.java new file mode 100644 index 00000000..de4a931b --- /dev/null +++ b/src/main/java/com/ardublock/translator/block/D37.java @@ -0,0 +1,20 @@ +package com.ardublock.translator.block; + +import com.ardublock.translator.Translator; +import com.ardublock.translator.block.exception.SocketNullException; +import com.ardublock.translator.block.exception.SubroutineNotDeclaredException; + +public class D37 extends TranslatorBlock + { + + public D37(Long blockId, Translator translator, String codePrefix, String codeSuffix, String label) + { + super(blockId, translator, codePrefix, codeSuffix, label); + } + + @Override + public String toCode() throws SocketNullException { + return codePrefix + "37" + codeSuffix; + } + + } \ No newline at end of file diff --git a/src/main/java/com/ardublock/translator/block/D38.java b/src/main/java/com/ardublock/translator/block/D38.java new file mode 100644 index 00000000..bb5ac5a4 --- /dev/null +++ b/src/main/java/com/ardublock/translator/block/D38.java @@ -0,0 +1,20 @@ +package com.ardublock.translator.block; + +import com.ardublock.translator.Translator; +import com.ardublock.translator.block.exception.SocketNullException; +import com.ardublock.translator.block.exception.SubroutineNotDeclaredException; + +public class D38 extends TranslatorBlock + { + + public D38(Long blockId, Translator translator, String codePrefix, String codeSuffix, String label) + { + super(blockId, translator, codePrefix, codeSuffix, label); + } + + @Override + public String toCode() throws SocketNullException { + return codePrefix + "38" + codeSuffix; + } + + } \ No newline at end of file diff --git a/src/main/java/com/ardublock/translator/block/D39.java b/src/main/java/com/ardublock/translator/block/D39.java new file mode 100644 index 00000000..9a7a3abe --- /dev/null +++ b/src/main/java/com/ardublock/translator/block/D39.java @@ -0,0 +1,20 @@ +package com.ardublock.translator.block; + +import com.ardublock.translator.Translator; +import com.ardublock.translator.block.exception.SocketNullException; +import com.ardublock.translator.block.exception.SubroutineNotDeclaredException; + +public class D39 extends TranslatorBlock + { + + public D39(Long blockId, Translator translator, String codePrefix, String codeSuffix, String label) + { + super(blockId, translator, codePrefix, codeSuffix, label); + } + + @Override + public String toCode() throws SocketNullException { + return codePrefix + "39" + codeSuffix; + } + + } \ No newline at end of file diff --git a/src/main/java/com/ardublock/translator/block/D4.java b/src/main/java/com/ardublock/translator/block/D4.java new file mode 100644 index 00000000..3bebaa46 --- /dev/null +++ b/src/main/java/com/ardublock/translator/block/D4.java @@ -0,0 +1,20 @@ +package com.ardublock.translator.block; + +import com.ardublock.translator.Translator; +import com.ardublock.translator.block.exception.SocketNullException; +import com.ardublock.translator.block.exception.SubroutineNotDeclaredException; + +public class D4 extends TranslatorBlock + { + + public D4(Long blockId, Translator translator, String codePrefix, String codeSuffix, String label) + { + super(blockId, translator, codePrefix, codeSuffix, label); + } + + @Override + public String toCode() throws SocketNullException { + return codePrefix + "4" + codeSuffix; + } + + } \ No newline at end of file diff --git a/src/main/java/com/ardublock/translator/block/D40.java b/src/main/java/com/ardublock/translator/block/D40.java new file mode 100644 index 00000000..4aa80897 --- /dev/null +++ b/src/main/java/com/ardublock/translator/block/D40.java @@ -0,0 +1,20 @@ +package com.ardublock.translator.block; + +import com.ardublock.translator.Translator; +import com.ardublock.translator.block.exception.SocketNullException; +import com.ardublock.translator.block.exception.SubroutineNotDeclaredException; + +public class D40 extends TranslatorBlock + { + + public D40(Long blockId, Translator translator, String codePrefix, String codeSuffix, String label) + { + super(blockId, translator, codePrefix, codeSuffix, label); + } + + @Override + public String toCode() throws SocketNullException { + return codePrefix + "40" + codeSuffix; + } + + } \ No newline at end of file diff --git a/src/main/java/com/ardublock/translator/block/D41.java b/src/main/java/com/ardublock/translator/block/D41.java new file mode 100644 index 00000000..41edb8f2 --- /dev/null +++ b/src/main/java/com/ardublock/translator/block/D41.java @@ -0,0 +1,20 @@ +package com.ardublock.translator.block; + +import com.ardublock.translator.Translator; +import com.ardublock.translator.block.exception.SocketNullException; +import com.ardublock.translator.block.exception.SubroutineNotDeclaredException; + +public class D41 extends TranslatorBlock + { + + public D41(Long blockId, Translator translator, String codePrefix, String codeSuffix, String label) + { + super(blockId, translator, codePrefix, codeSuffix, label); + } + + @Override + public String toCode() throws SocketNullException { + return codePrefix + "41" + codeSuffix; + } + + } \ No newline at end of file diff --git a/src/main/java/com/ardublock/translator/block/D42.java b/src/main/java/com/ardublock/translator/block/D42.java new file mode 100644 index 00000000..ebfc296c --- /dev/null +++ b/src/main/java/com/ardublock/translator/block/D42.java @@ -0,0 +1,20 @@ +package com.ardublock.translator.block; + +import com.ardublock.translator.Translator; +import com.ardublock.translator.block.exception.SocketNullException; +import com.ardublock.translator.block.exception.SubroutineNotDeclaredException; + +public class D42 extends TranslatorBlock + { + + public D42(Long blockId, Translator translator, String codePrefix, String codeSuffix, String label) + { + super(blockId, translator, codePrefix, codeSuffix, label); + } + + @Override + public String toCode() throws SocketNullException { + return codePrefix + "42" + codeSuffix; + } + + } \ No newline at end of file diff --git a/src/main/java/com/ardublock/translator/block/D43.java b/src/main/java/com/ardublock/translator/block/D43.java new file mode 100644 index 00000000..5a82f556 --- /dev/null +++ b/src/main/java/com/ardublock/translator/block/D43.java @@ -0,0 +1,20 @@ +package com.ardublock.translator.block; + +import com.ardublock.translator.Translator; +import com.ardublock.translator.block.exception.SocketNullException; +import com.ardublock.translator.block.exception.SubroutineNotDeclaredException; + +public class D43 extends TranslatorBlock + { + + public D43(Long blockId, Translator translator, String codePrefix, String codeSuffix, String label) + { + super(blockId, translator, codePrefix, codeSuffix, label); + } + + @Override + public String toCode() throws SocketNullException { + return codePrefix + "43" + codeSuffix; + } + + } \ No newline at end of file diff --git a/src/main/java/com/ardublock/translator/block/D44.java b/src/main/java/com/ardublock/translator/block/D44.java new file mode 100644 index 00000000..7cf7e994 --- /dev/null +++ b/src/main/java/com/ardublock/translator/block/D44.java @@ -0,0 +1,20 @@ +package com.ardublock.translator.block; + +import com.ardublock.translator.Translator; +import com.ardublock.translator.block.exception.SocketNullException; +import com.ardublock.translator.block.exception.SubroutineNotDeclaredException; + +public class D44 extends TranslatorBlock + { + + public D44(Long blockId, Translator translator, String codePrefix, String codeSuffix, String label) + { + super(blockId, translator, codePrefix, codeSuffix, label); + } + + @Override + public String toCode() throws SocketNullException { + return codePrefix + "44" + codeSuffix; + } + + } \ No newline at end of file diff --git a/src/main/java/com/ardublock/translator/block/D45.java b/src/main/java/com/ardublock/translator/block/D45.java new file mode 100644 index 00000000..990516ed --- /dev/null +++ b/src/main/java/com/ardublock/translator/block/D45.java @@ -0,0 +1,20 @@ +package com.ardublock.translator.block; + +import com.ardublock.translator.Translator; +import com.ardublock.translator.block.exception.SocketNullException; +import com.ardublock.translator.block.exception.SubroutineNotDeclaredException; + +public class D45 extends TranslatorBlock + { + + public D45(Long blockId, Translator translator, String codePrefix, String codeSuffix, String label) + { + super(blockId, translator, codePrefix, codeSuffix, label); + } + + @Override + public String toCode() throws SocketNullException { + return codePrefix + "45" + codeSuffix; + } + + } \ No newline at end of file diff --git a/src/main/java/com/ardublock/translator/block/D46.java b/src/main/java/com/ardublock/translator/block/D46.java new file mode 100644 index 00000000..c294f70e --- /dev/null +++ b/src/main/java/com/ardublock/translator/block/D46.java @@ -0,0 +1,20 @@ +package com.ardublock.translator.block; + +import com.ardublock.translator.Translator; +import com.ardublock.translator.block.exception.SocketNullException; +import com.ardublock.translator.block.exception.SubroutineNotDeclaredException; + +public class D46 extends TranslatorBlock + { + + public D46(Long blockId, Translator translator, String codePrefix, String codeSuffix, String label) + { + super(blockId, translator, codePrefix, codeSuffix, label); + } + + @Override + public String toCode() throws SocketNullException { + return codePrefix + "46" + codeSuffix; + } + + } \ No newline at end of file diff --git a/src/main/java/com/ardublock/translator/block/D47.java b/src/main/java/com/ardublock/translator/block/D47.java new file mode 100644 index 00000000..8fc130d1 --- /dev/null +++ b/src/main/java/com/ardublock/translator/block/D47.java @@ -0,0 +1,20 @@ +package com.ardublock.translator.block; + +import com.ardublock.translator.Translator; +import com.ardublock.translator.block.exception.SocketNullException; +import com.ardublock.translator.block.exception.SubroutineNotDeclaredException; + +public class D47 extends TranslatorBlock + { + + public D47(Long blockId, Translator translator, String codePrefix, String codeSuffix, String label) + { + super(blockId, translator, codePrefix, codeSuffix, label); + } + + @Override + public String toCode() throws SocketNullException { + return codePrefix + "47" + codeSuffix; + } + + } \ No newline at end of file diff --git a/src/main/java/com/ardublock/translator/block/D48.java b/src/main/java/com/ardublock/translator/block/D48.java new file mode 100644 index 00000000..00559c0f --- /dev/null +++ b/src/main/java/com/ardublock/translator/block/D48.java @@ -0,0 +1,20 @@ +package com.ardublock.translator.block; + +import com.ardublock.translator.Translator; +import com.ardublock.translator.block.exception.SocketNullException; +import com.ardublock.translator.block.exception.SubroutineNotDeclaredException; + +public class D48 extends TranslatorBlock + { + + public D48(Long blockId, Translator translator, String codePrefix, String codeSuffix, String label) + { + super(blockId, translator, codePrefix, codeSuffix, label); + } + + @Override + public String toCode() throws SocketNullException { + return codePrefix + "48" + codeSuffix; + } + + } \ No newline at end of file diff --git a/src/main/java/com/ardublock/translator/block/D49.java b/src/main/java/com/ardublock/translator/block/D49.java new file mode 100644 index 00000000..58b357c5 --- /dev/null +++ b/src/main/java/com/ardublock/translator/block/D49.java @@ -0,0 +1,20 @@ +package com.ardublock.translator.block; + +import com.ardublock.translator.Translator; +import com.ardublock.translator.block.exception.SocketNullException; +import com.ardublock.translator.block.exception.SubroutineNotDeclaredException; + +public class D49 extends TranslatorBlock + { + + public D49(Long blockId, Translator translator, String codePrefix, String codeSuffix, String label) + { + super(blockId, translator, codePrefix, codeSuffix, label); + } + + @Override + public String toCode() throws SocketNullException { + return codePrefix + "49" + codeSuffix; + } + + } \ No newline at end of file diff --git a/src/main/java/com/ardublock/translator/block/D5.java b/src/main/java/com/ardublock/translator/block/D5.java new file mode 100644 index 00000000..2ee8993b --- /dev/null +++ b/src/main/java/com/ardublock/translator/block/D5.java @@ -0,0 +1,20 @@ +package com.ardublock.translator.block; + +import com.ardublock.translator.Translator; +import com.ardublock.translator.block.exception.SocketNullException; +import com.ardublock.translator.block.exception.SubroutineNotDeclaredException; + +public class D5 extends TranslatorBlock + { + + public D5(Long blockId, Translator translator, String codePrefix, String codeSuffix, String label) + { + super(blockId, translator, codePrefix, codeSuffix, label); + } + + @Override + public String toCode() throws SocketNullException { + return codePrefix + "5" + codeSuffix; + } + + } \ No newline at end of file diff --git a/src/main/java/com/ardublock/translator/block/D50.java b/src/main/java/com/ardublock/translator/block/D50.java new file mode 100644 index 00000000..93227e54 --- /dev/null +++ b/src/main/java/com/ardublock/translator/block/D50.java @@ -0,0 +1,20 @@ +package com.ardublock.translator.block; + +import com.ardublock.translator.Translator; +import com.ardublock.translator.block.exception.SocketNullException; +import com.ardublock.translator.block.exception.SubroutineNotDeclaredException; + +public class D50 extends TranslatorBlock + { + + public D50(Long blockId, Translator translator, String codePrefix, String codeSuffix, String label) + { + super(blockId, translator, codePrefix, codeSuffix, label); + } + + @Override + public String toCode() throws SocketNullException { + return codePrefix + "50" + codeSuffix; + } + + } \ No newline at end of file diff --git a/src/main/java/com/ardublock/translator/block/D51.java b/src/main/java/com/ardublock/translator/block/D51.java new file mode 100644 index 00000000..566925c8 --- /dev/null +++ b/src/main/java/com/ardublock/translator/block/D51.java @@ -0,0 +1,20 @@ +package com.ardublock.translator.block; + +import com.ardublock.translator.Translator; +import com.ardublock.translator.block.exception.SocketNullException; +import com.ardublock.translator.block.exception.SubroutineNotDeclaredException; + +public class D51 extends TranslatorBlock + { + + public D51(Long blockId, Translator translator, String codePrefix, String codeSuffix, String label) + { + super(blockId, translator, codePrefix, codeSuffix, label); + } + + @Override + public String toCode() throws SocketNullException { + return codePrefix + "51" + codeSuffix; + } + + } \ No newline at end of file diff --git a/src/main/java/com/ardublock/translator/block/D52.java b/src/main/java/com/ardublock/translator/block/D52.java new file mode 100644 index 00000000..b0358263 --- /dev/null +++ b/src/main/java/com/ardublock/translator/block/D52.java @@ -0,0 +1,20 @@ +package com.ardublock.translator.block; + +import com.ardublock.translator.Translator; +import com.ardublock.translator.block.exception.SocketNullException; +import com.ardublock.translator.block.exception.SubroutineNotDeclaredException; + +public class D52 extends TranslatorBlock + { + + public D52(Long blockId, Translator translator, String codePrefix, String codeSuffix, String label) + { + super(blockId, translator, codePrefix, codeSuffix, label); + } + + @Override + public String toCode() throws SocketNullException { + return codePrefix + "52" + codeSuffix; + } + + } \ No newline at end of file diff --git a/src/main/java/com/ardublock/translator/block/D53.java b/src/main/java/com/ardublock/translator/block/D53.java new file mode 100644 index 00000000..9796111a --- /dev/null +++ b/src/main/java/com/ardublock/translator/block/D53.java @@ -0,0 +1,20 @@ +package com.ardublock.translator.block; + +import com.ardublock.translator.Translator; +import com.ardublock.translator.block.exception.SocketNullException; +import com.ardublock.translator.block.exception.SubroutineNotDeclaredException; + +public class D53 extends TranslatorBlock + { + + public D53(Long blockId, Translator translator, String codePrefix, String codeSuffix, String label) + { + super(blockId, translator, codePrefix, codeSuffix, label); + } + + @Override + public String toCode() throws SocketNullException { + return codePrefix + "53" + codeSuffix; + } + + } \ No newline at end of file diff --git a/src/main/java/com/ardublock/translator/block/D6.java b/src/main/java/com/ardublock/translator/block/D6.java new file mode 100644 index 00000000..ee1851f1 --- /dev/null +++ b/src/main/java/com/ardublock/translator/block/D6.java @@ -0,0 +1,20 @@ +package com.ardublock.translator.block; + +import com.ardublock.translator.Translator; +import com.ardublock.translator.block.exception.SocketNullException; +import com.ardublock.translator.block.exception.SubroutineNotDeclaredException; + +public class D6 extends TranslatorBlock + { + + public D6(Long blockId, Translator translator, String codePrefix, String codeSuffix, String label) + { + super(blockId, translator, codePrefix, codeSuffix, label); + } + + @Override + public String toCode() throws SocketNullException { + return codePrefix + "6" + codeSuffix; + } + + } \ No newline at end of file diff --git a/src/main/java/com/ardublock/translator/block/D7.java b/src/main/java/com/ardublock/translator/block/D7.java new file mode 100644 index 00000000..c2061e7f --- /dev/null +++ b/src/main/java/com/ardublock/translator/block/D7.java @@ -0,0 +1,20 @@ +package com.ardublock.translator.block; + +import com.ardublock.translator.Translator; +import com.ardublock.translator.block.exception.SocketNullException; +import com.ardublock.translator.block.exception.SubroutineNotDeclaredException; + +public class D7 extends TranslatorBlock + { + + public D7(Long blockId, Translator translator, String codePrefix, String codeSuffix, String label) + { + super(blockId, translator, codePrefix, codeSuffix, label); + } + + @Override + public String toCode() throws SocketNullException { + return codePrefix + "7" + codeSuffix; + } + + } \ No newline at end of file diff --git a/src/main/java/com/ardublock/translator/block/D8.java b/src/main/java/com/ardublock/translator/block/D8.java new file mode 100644 index 00000000..cc756902 --- /dev/null +++ b/src/main/java/com/ardublock/translator/block/D8.java @@ -0,0 +1,20 @@ +package com.ardublock.translator.block; + +import com.ardublock.translator.Translator; +import com.ardublock.translator.block.exception.SocketNullException; +import com.ardublock.translator.block.exception.SubroutineNotDeclaredException; + +public class D8 extends TranslatorBlock + { + + public D8(Long blockId, Translator translator, String codePrefix, String codeSuffix, String label) + { + super(blockId, translator, codePrefix, codeSuffix, label); + } + + @Override + public String toCode() throws SocketNullException { + return codePrefix + "8" + codeSuffix; + } + + } \ No newline at end of file diff --git a/src/main/java/com/ardublock/translator/block/D9.java b/src/main/java/com/ardublock/translator/block/D9.java new file mode 100644 index 00000000..278ac3ad --- /dev/null +++ b/src/main/java/com/ardublock/translator/block/D9.java @@ -0,0 +1,20 @@ +package com.ardublock.translator.block; + +import com.ardublock.translator.Translator; +import com.ardublock.translator.block.exception.SocketNullException; +import com.ardublock.translator.block.exception.SubroutineNotDeclaredException; + +public class D9 extends TranslatorBlock + { + + public D9(Long blockId, Translator translator, String codePrefix, String codeSuffix, String label) + { + super(blockId, translator, codePrefix, codeSuffix, label); + } + + @Override + public String toCode() throws SocketNullException { + return codePrefix + "9" + codeSuffix; + } + + } \ No newline at end of file From 070ca5bab931efd1d011ac29cdbd63ce075d20a8 Mon Sep 17 00:00:00 2001 From: TonyCallear Date: Sun, 27 Mar 2016 12:53:00 +0100 Subject: [PATCH 03/25] Correct Servo. Description improvements --- .../translator/block/ServoDefaultBlock.java | 13 +- .../translator/block/ServoMg996rBlock.java | 14 +- .../translator/block/ServoSg90Block.java | 13 +- .../com/ardublock/block/ardublock.properties | 128 +++- .../com/ardublock/block/ardublock.xml | 706 +++++++++++++++++- .../ardublock/block/block-mapping.properties | 92 +++ 6 files changed, 910 insertions(+), 56 deletions(-) diff --git a/src/main/java/com/ardublock/translator/block/ServoDefaultBlock.java b/src/main/java/com/ardublock/translator/block/ServoDefaultBlock.java index 73a61c7e..0c2b8732 100644 --- a/src/main/java/com/ardublock/translator/block/ServoDefaultBlock.java +++ b/src/main/java/com/ardublock/translator/block/ServoDefaultBlock.java @@ -1,12 +1,15 @@ package com.ardublock.translator.block; - +import java.util.ResourceBundle; import com.ardublock.translator.Translator; + import com.ardublock.translator.block.exception.BlockException; import com.ardublock.translator.block.exception.SocketNullException; import com.ardublock.translator.block.exception.SubroutineNotDeclaredException; public class ServoDefaultBlock extends TranslatorBlock { + + private static ResourceBundle uiMessageBundle = ResourceBundle.getBundle("com/ardublock/block/ardublock"); public ServoDefaultBlock(Long blockId, Translator translator, String codePrefix, String codeSuffix, String label) { @@ -20,9 +23,15 @@ public String toCode() throws SocketNullException, SubroutineNotDeclaredExceptio String servoSpecs = ""; + String pinNumber = tb.toCode(); + //****** Bit long w but easy to see what's happening. Any other invalid pins? ********* + if ( ! ("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").contains(pinNumber.trim()) ) + { + throw new BlockException(blockId, uiMessageBundle.getString("ardublock.error_msg.Digital_pin_slot")); + } - String pinNumber = tb.toCode(); String servoName = "servo_pin_" + pinNumber; tb = this.getRequiredTranslatorBlockAtSocket(1); diff --git a/src/main/java/com/ardublock/translator/block/ServoMg996rBlock.java b/src/main/java/com/ardublock/translator/block/ServoMg996rBlock.java index 1ac3d7d5..6b6d74e8 100644 --- a/src/main/java/com/ardublock/translator/block/ServoMg996rBlock.java +++ b/src/main/java/com/ardublock/translator/block/ServoMg996rBlock.java @@ -1,12 +1,18 @@ package com.ardublock.translator.block; +import java.util.ResourceBundle; + +import java.util.ResourceBundle; + import com.ardublock.translator.Translator; import com.ardublock.translator.block.exception.BlockException; import com.ardublock.translator.block.exception.SocketNullException; import com.ardublock.translator.block.exception.SubroutineNotDeclaredException; public class ServoMg996rBlock extends TranslatorBlock { + + private static ResourceBundle uiMessageBundle = ResourceBundle.getBundle("com/ardublock/block/ardublock"); public ServoMg996rBlock(Long blockId, Translator translator, String codePrefix, String codeSuffix, String label) { @@ -20,9 +26,15 @@ public String toCode() throws SocketNullException, SubroutineNotDeclaredExceptio String servoSpecs = ",620,2200"; - String pinNumber = tb.toCode(); String servoName = "servo_pin_" + pinNumber; + + //****** Bit long w but easy to see what's happening. Any other invalid pins? ********* + if ( ! ("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").contains(pinNumber.trim()) ) + { + throw new BlockException(blockId, uiMessageBundle.getString("ardublock.error_msg.Digital_pin_slot")); + } tb = this.getRequiredTranslatorBlockAtSocket(1); diff --git a/src/main/java/com/ardublock/translator/block/ServoSg90Block.java b/src/main/java/com/ardublock/translator/block/ServoSg90Block.java index 69f82a75..065c96f6 100644 --- a/src/main/java/com/ardublock/translator/block/ServoSg90Block.java +++ b/src/main/java/com/ardublock/translator/block/ServoSg90Block.java @@ -1,12 +1,16 @@ package com.ardublock.translator.block; +import java.util.ResourceBundle; + import com.ardublock.translator.Translator; import com.ardublock.translator.block.exception.BlockException; import com.ardublock.translator.block.exception.SocketNullException; import com.ardublock.translator.block.exception.SubroutineNotDeclaredException; public class ServoSg90Block extends TranslatorBlock { + + private static ResourceBundle uiMessageBundle = ResourceBundle.getBundle("com/ardublock/block/ardublock"); public ServoSg90Block(Long blockId, Translator translator, String codePrefix, String codeSuffix, String label) { @@ -20,11 +24,16 @@ public String toCode() throws SocketNullException, SubroutineNotDeclaredExceptio String servoSpecs = ",530,2600"; - - String pinNumber = tb.toCode(); String servoName = "servo_pin_" + pinNumber; + //****** Bit long w but easy to see what's happening. Any other invalid pins? ********* + if ( ! ("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").contains(pinNumber.trim()) ) + { + throw new BlockException(blockId, uiMessageBundle.getString("ardublock.error_msg.Digital_pin_slot")); + } + tb = this.getRequiredTranslatorBlockAtSocket(1); String ret = servoName + ".write( " + tb.toCode() + " );\n"; diff --git a/src/main/resources/com/ardublock/block/ardublock.properties b/src/main/resources/com/ardublock/block/ardublock.properties index 86f423d6..ff8d3fba 100644 --- a/src/main/resources/com/ardublock/block/ardublock.properties +++ b/src/main/resources/com/ardublock/block/ardublock.properties @@ -398,6 +398,98 @@ bg.wire_write_one_byte=I2C write 1 bg.tone=tone bg.tone_time=tone bg.no_tone=no tone +# +bg.pinListAnalog_A0=A0 +bg.pinListAnalog_A1=A1 +bg.pinListAnalog_A2=A2 +bg.pinListAnalog_A3=A3 +bg.pinListAnalog_A4=A4 +bg.pinListAnalog_A5=A5 +# +bg.pinListAnalog_A6=A6 (Mega/Nano) +bg.pinListAnalog_A7=A7 (Mega/Nano) +bg.pinListAnalog_A8=A8 (Mega) +bg.pinListAnalog_A9=A9 (Mega) +bg.pinListAnalog_A10=A10 (Mega) +bg.pinListAnalog_A11=A11 (Mega) +bg.pinListAnalog_A12=A12 (Mega) +bg.pinListAnalog_A13=A13 (Mega) +bg.pinListAnalog_A14=A14 (Mega) +bg.pinListAnalog_A15=A15 (Mega) + +bg.pinListDigital_D0=D0 +bg.pinListDigital_D1=D1 +bg.pinListDigital_D2=D2 +bg.pinListDigital_D3=D3 +bg.pinListDigital_D4=D4 +bg.pinListDigital_D5=D5 +bg.pinListDigital_D6=D6 +bg.pinListDigital_D7=D7 +bg.pinListDigital_D8=D8 +bg.pinListDigital_D9=D9 +bg.pinListDigital_D10=D10 +bg.pinListDigital_D11=D11 +bg.pinListDigital_D12=D12 +bg.pinListDigital_D13=D13 +bg.pinListDigital_D14=D14 +bg.pinListDigital_D15=D15 +bg.pinListDigital_D16=D16 +bg.pinListDigital_D17=D17 +bg.pinListDigital_D18=D18 +bg.pinListDigital_D19=D19 +# +bg.pinListDigital_D20=D20 (Mega) +bg.pinListDigital_D21=D21 (Mega) +bg.pinListDigital_D22=D22 (Mega) +bg.pinListDigital_D23=D23 (Mega) +bg.pinListDigital_D24=D24 (Mega) +bg.pinListDigital_D25=D25 (Mega) +bg.pinListDigital_D26=D26 (Mega) +bg.pinListDigital_D27=D27 (Mega) +bg.pinListDigital_D28=D28 (Mega) +bg.pinListDigital_D29=D29 (Mega) +bg.pinListDigital_D30=D30 (Mega) +bg.pinListDigital_D31=D31 (Mega) +bg.pinListDigital_D32=D32 (Mega) +bg.pinListDigital_D33=D33 (Mega) +bg.pinListDigital_D34=D34 (Mega) +bg.pinListDigital_D35=D35 (Mega) +bg.pinListDigital_D36=D36 (Mega) +bg.pinListDigital_D37=D37 (Mega) +bg.pinListDigital_D38=D38 (Mega) +bg.pinListDigital_D39=D39 (Mega) +bg.pinListDigital_D40=D40 (Mega) +bg.pinListDigital_D41=D41 (Mega) +bg.pinListDigital_D42=D42 (Mega) +bg.pinListDigital_D43=D43 (Mega) +bg.pinListDigital_D44=D44 (Mega) +bg.pinListDigital_D45=D45 (Mega) +bg.pinListDigital_D46=D46 (Mega) +bg.pinListDigital_D47=D47 (Mega) +bg.pinListDigital_D48=D48 (Mega) +bg.pinListDigital_D49=D49 (Mega) +bg.pinListDigital_D50=D50 (Mega) +bg.pinListDigital_D51=D51 (Mega) +bg.pinListDigital_D52=D52 (Mega) +bg.pinListDigital_D53=D53 (Mega) +# +bg.pinListAnalogWrite_D3=D3 +bg.pinListAnalogWrite_D5=D5 +bg.pinListAnalogWrite_D6=D6 +bg.pinListAnalogWrite_D9=D9 +bg.pinListAnalogWrite_D10=D10 +bg.pinListAnalogWrite_D11=D11 +# +bg.pinListAnalogWrite_D2=D2 (Mega) +bg.pinListAnalogWrite_D4=D4 (Mega) +bg.pinListAnalogWrite_D7=D7 (Mega) +bg.pinListAnalogWrite_D8=D8 (Mega) +bg.pinListAnalogWrite_D12=D12 (Mega) +bg.pinListAnalogWrite_D13=D13 (Mega) +bg.pinListAnalogWrite_D44=D44 (Mega) +bg.pinListAnalogWrite_D45=D45 (Mega) +bg.pinListAnalogWrite_D46=D46 (Mega) + bg.DDRA=DDRA bg.DDRB=DDRB bg.DDRC=DDRC @@ -477,7 +569,9 @@ ardublock.error_msg.char_var_slot=Char variable slot must take a char variable n ardublock.error_msg.array_var_slot='Array variable' slot must take an 'array variable' name.\nHint: Look at the 'variable' socket on the highlighted block ardublock.error_msg.array_size_slot='Array size' slot must take a standard integer constant ardublock.error_msg.string_var_slot=String variable slot must take a String variable name.\nHint: Look at the 'variable' socket on the highlighted block - +ardublock.error_msg.Digital_pin_slot=Pin# must be a valid digital pin number found on an Arduino Board +ardublock.error_msg.Analog_pin_slot=Pin# must be a valid analog input pin number found on an Arduino Board + ardublock.translator.exception.subroutineNameDuplicated=two or more subroutines have the same name! ardublock.translator.exception.noLoopFound=No loop found! ardublock.translator.exception.multipleLoopFound=multiple loop block found! @@ -499,9 +593,9 @@ bg.program.description=Main program with loop and setup bg.loop.description=Main Program loop without setup bg.scoop_sleep.description=Delay execution of current thread for x milliseconds -bg.scoop_task.description=SCoop Thread with loop and setup -bg.scoop_loop.description=SCoop Thread with loop only -bg.scoop_pin_event.description=Pin Event using SCoop library +bg.scoop_task.description=Multitasking thread with loop and setup +bg.scoop_loop.description=Multitasking thread without setup commands +bg.scoop_pin_event.description=Multitasking thread. Runs commands when an event is detected on a pin. bg.scoop_event_low.description=event triggered when pin is low bg.scoop_event_high.description=event triggered when pin is high bg.scoop_event_falling.description=event triggered when pin is falling @@ -513,18 +607,18 @@ bg.if.description=Execute the commands if the "test" is true bg.ifelse.description=Execute the first set of commands if the "test" is true, otherwise it will do the second set of commands. bg.while.description=Execute the commands as long as the "test" is true bg.do_while.description=Execute the list of commands. Then, if 'test' is true, keep on repeating it until 'test' is 'false' -bg.repeat_times.description=Repeat the commands. Stop after "times" repetitions. -bg.repeat.description=Repeat the commands. Stop after "times" repetitions. "variable" counts the repetitions. +bg.repeat_times.description=Repeat a list of commands a number of times. +bg.repeat.description=Repeat a list of commands a number of times. "variable" counts the repetitions. bg.break.description=break -bg.subroutine.description=Add a subroutine -bg.subroutine-ref.description=Invoke subroutine +bg.subroutine.description=A list of commands we can call by a single name. They will run only if 'called', see CONTROL menu. +bg.subroutine-ref.description=Run the list of commands in the subroutine called... bg.delay_microseconds.description=Delay for "microseconds" indicated. \nNOTE: 1000000 micros = 1 second -bg.pin-read-analog.description=Read analog value from pin -bg.pin-read-digital.description=Read digital value from pin -bg.pin-read-digital-pullup.description=set digital pin with internal pullup -bg.pin-write-digital.description=write digital to pin +bg.pin-read-analog.description=Read analog value from pin. Zero volts = 0. Five volts = 1023 +bg.pin-read-digital.description=Read digital value (HIGH or LOW) from pin. +bg.pin-read-digital-pullup.description=Set pin to digital input. Pin will report HIGH if unconnected. +bg.pin-write-digital.description=Set digital pin to HIGH or LOW bg.pin-toggle.description=toggle digital pin -bg.pin-write-analog.description=write analog to pin +bg.pin-write-analog.description=Write analog voltage to pin. 0 = Zero volts. 255 = five volts. bg.addition.description=Sum of two numbers bg.subtraction.description=Difference of two numbers bg.multiplication.description=Product of two numbers @@ -537,8 +631,8 @@ bg.constrain.description=Constrain a number between two values bg.dummy.description= bg.greater.description=True if the first number is greater the second number bg.less.description=True if the first number is less then the second number -bg.equal.description=True if the first number equals to the scond number -bg.equal_digital.description=True if the first number equals to the scond number +bg.equal.description=True if the first number equals to the second number +bg.equal_digital.description=True if the first number equals to the second number bg.greater_equal.description=True if the first number is greater or equal to the second number bg.less_equal.description=True if the first number is less or equal to the second number bg.not_equal.description=True if the first number is not equal to the second number @@ -572,7 +666,9 @@ bg.number.description=Standard integer constant. 32,768 to +32,767 bg.number_long.description=Large integer constant. 0 to 4,294,967,295 bg.number_double.description='Decimal' number constant. +/- 3.4028235E+38 bg.variable_number.description=Standard integer variable. -32,768 to +32,767 -bg.variable_number_unsigned_long.description=Unsigned_long +bg.pinListDigital_D0.description=List of valid digital pin numbers on various Arduino boards +bg.pinListAnalog_A0.description=List of valid analog pin numbers on various Arduino boards +bg.variable_number_unsigned_long.description=Large integer variable name bg.variable_number_double.description='Decimal' variable name bg.variable_digital.description=Digital variable bg.variable_string.description=string variable diff --git a/src/main/resources/com/ardublock/block/ardublock.xml b/src/main/resources/com/ardublock/block/ardublock.xml index 703a1faa..488bd9aa 100644 --- a/src/main/resources/com/ardublock/block/ardublock.xml +++ b/src/main/resources/com/ardublock/block/ardublock.xml @@ -26,9 +26,25 @@ - + repeat + + A variable to track the repetitions + + + Start value of variable + + + End value of variable + + + How much to change variable each time + + + A list of commands to do. + + @@ -46,10 +62,17 @@ + this is the loop of the arduino + + A list of commands to run first, and once only. + + + A list of commands to repeat forever, after setup commands have finished. + @@ -59,6 +82,9 @@ this is the loop of the arduino + + A list of commands to repeat forever. + @@ -80,6 +106,7 @@ + @@ -89,13 +116,11 @@ - The condition being - tested. + A logical test. Is it TRUE or FALSE? - The set of instructions - that is done when the condition is true. + A list of commands to do if the test is TRUE. @@ -107,22 +132,19 @@ - Does the first set of commands if the condition specified is - true, otherwise it will do the second set of commands. + Does the first list of commands if the test specified is + true, otherwise it will do the second list of commands. - The condition being - tested. + A logical test. Is it TRUE or FALSE? - The set of instructions - that is done when the condition is true. + A list of commands to do if the test is TRUE. - The set of instructions - that is done when the condition is false. + A list of commands to do if the test is FALSE. @@ -137,6 +159,13 @@ While Block + + A logical test. Is it TRUE or FALSE? + + + + A list of commands to repeat while the test is TRUE. + @@ -145,10 +174,16 @@ - - + + Do While Block + + A list of commands to do. + + + A logical test. Do the commands again if the test is TRUE + @@ -167,6 +202,12 @@ Repeat the commands for "times" + + How many times to repeat the commands + + + A list of commands to do be repeated. + @@ -179,6 +220,15 @@ repeat + + A variable to track the repetitions + + + How many times to repeat the commands + + + A list of commands to do be repeated. + @@ -237,6 +287,12 @@ this is the loop of the arduino + + A list of commands to run first, and once only. + + + A list of commands to repeat forever, after setup commands have finished. + @@ -247,6 +303,9 @@ this is the loop of the arduino + + A list of commands to repeat forever. + @@ -311,6 +370,15 @@ SCoop Event on pin + + Pin number to watch. + + + What kind of event to watch for. + + + A list of commands to run when the event is detected on the pin. + @@ -333,7 +401,7 @@ - + @@ -342,11 +410,11 @@ - write digital to pin + Read digital from the pin. Default High - + @@ -357,7 +425,7 @@ - + @@ -368,7 +436,7 @@ - + @@ -382,7 +450,7 @@ - + @@ -396,7 +464,7 @@ - + @@ -426,7 +494,7 @@ - + @@ -444,11 +512,453 @@ - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + DDRA @@ -1361,6 +1871,27 @@ + + + + Digital Pin Constant + + + + + + + + + + Analog Pin Constant + + + + + + + @@ -1663,13 +2194,13 @@ - + Servo Default - + @@ -1682,13 +2213,13 @@ - + SG90 - - + + @@ -1701,13 +2232,13 @@ - + Servo MG996R - + @@ -1726,11 +2257,11 @@ - - + + - - + + @@ -10548,6 +11079,109 @@ servo_sg90 servo_mg996r + + + + + pinListDigital_D0 + pinListDigital_D1 + pinListDigital_D2 + pinListDigital_D3 + pinListDigital_D4 + pinListDigital_D5 + pinListDigital_D6 + pinListDigital_D7 + pinListDigital_D8 + pinListDigital_D9 + pinListDigital_D10 + pinListDigital_D11 + pinListDigital_D12 + pinListDigital_D13 + pinListDigital_D14 + pinListDigital_D15 + pinListDigital_D16 + pinListDigital_D17 + pinListDigital_D18 + pinListDigital_D19 + + pinListDigital_D20 + pinListDigital_D21 + pinListDigital_D22 + pinListDigital_D23 + pinListDigital_D24 + pinListDigital_D25 + pinListDigital_D26 + pinListDigital_D27 + pinListDigital_D28 + pinListDigital_D29 + pinListDigital_D30 + pinListDigital_D31 + pinListDigital_D32 + pinListDigital_D33 + pinListDigital_D34 + pinListDigital_D35 + pinListDigital_D36 + pinListDigital_D37 + pinListDigital_D38 + pinListDigital_D39 + pinListDigital_D40 + pinListDigital_D41 + pinListDigital_D42 + pinListDigital_D43 + pinListDigital_D44 + pinListDigital_D45 + pinListDigital_D46 + pinListDigital_D47 + pinListDigital_D48 + pinListDigital_D49 + pinListDigital_D50 + pinListDigital_D51 + pinListDigital_D52 + pinListDigital_D53 + + + + + pinListAnalog_A0 + pinListAnalog_A1 + pinListAnalog_A2 + pinListAnalog_A3 + pinListAnalog_A4 + pinListAnalog_A5 + + pinListAnalog_A6 + pinListAnalog_A7 + + pinListAnalog_A8 + pinListAnalog_A9 + pinListAnalog_A10 + pinListAnalog_A11 + pinListAnalog_A12 + pinListAnalog_A13 + pinListAnalog_A14 + pinListAnalog_A15 + + + + + pinListAnalogWrite_D3 + pinListAnalogWrite_D5 + pinListAnalogWrite_D6 + pinListAnalogWrite_D9 + pinListAnalogWrite_D10 + pinListAnalogWrite_D11 + + pinListAnalogWrite_D2 + pinListAnalogWrite_D4 + pinListAnalogWrite_D7 + pinListAnalogWrite_D8 + pinListAnalogWrite_D12 + pinListAnalogWrite_D13 + pinListAnalogWrite_D44 + pinListAnalogWrite_D45 + pinListAnalogWrite_D46 + + df_joystick_module_x df_joystick_module_y @@ -11089,6 +11723,8 @@ setter_variable_number_double variable_number_double number_double + pinListDigital_D0 + pinListAnalog_A0 setter_variable_char variable_poly char diff --git a/src/main/resources/com/ardublock/block/block-mapping.properties b/src/main/resources/com/ardublock/block/block-mapping.properties index f4db49fc..1924bd62 100644 --- a/src/main/resources/com/ardublock/block/block-mapping.properties +++ b/src/main/resources/com/ardublock/block/block-mapping.properties @@ -92,6 +92,98 @@ glue_sb=com.ardublock.translator.block.GlueSBBlock number-single=com.ardublock.translator.block.NumberBlock number-single-fixed-parallel=com.ardublock.translator.block.NumberBlock +#Pin List Constants +# +pinListDigital_D0=com.ardublock.translator.block.D0 +pinListDigital_D1=com.ardublock.translator.block.D1 +pinListDigital_D2=com.ardublock.translator.block.D2 +pinListDigital_D3=com.ardublock.translator.block.D3 +pinListDigital_D4=com.ardublock.translator.block.D4 +pinListDigital_D5=com.ardublock.translator.block.D5 +pinListDigital_D6=com.ardublock.translator.block.D6 +pinListDigital_D7=com.ardublock.translator.block.D7 +pinListDigital_D8=com.ardublock.translator.block.D8 +pinListDigital_D9=com.ardublock.translator.block.D9 +pinListDigital_D10=com.ardublock.translator.block.D10 +pinListDigital_D11=com.ardublock.translator.block.D11 +pinListDigital_D12=com.ardublock.translator.block.D12 +pinListDigital_D13=com.ardublock.translator.block.D13 +pinListDigital_D14=com.ardublock.translator.block.D14 +pinListDigital_D15=com.ardublock.translator.block.D15 +pinListDigital_D16=com.ardublock.translator.block.D16 +pinListDigital_D17=com.ardublock.translator.block.D17 +pinListDigital_D18=com.ardublock.translator.block.D18 +pinListDigital_D19=com.ardublock.translator.block.D19 +# +pinListDigital_D20=com.ardublock.translator.block.D20 +pinListDigital_D21=com.ardublock.translator.block.D21 +pinListDigital_D22=com.ardublock.translator.block.D22 +pinListDigital_D23=com.ardublock.translator.block.D23 +pinListDigital_D24=com.ardublock.translator.block.D24 +pinListDigital_D25=com.ardublock.translator.block.D25 +pinListDigital_D26=com.ardublock.translator.block.D26 +pinListDigital_D27=com.ardublock.translator.block.D27 +pinListDigital_D28=com.ardublock.translator.block.D28 +pinListDigital_D29=com.ardublock.translator.block.D29 +pinListDigital_D30=com.ardublock.translator.block.D30 +pinListDigital_D31=com.ardublock.translator.block.D31 +pinListDigital_D32=com.ardublock.translator.block.D32 +pinListDigital_D33=com.ardublock.translator.block.D33 +pinListDigital_D34=com.ardublock.translator.block.D34 +pinListDigital_D35=com.ardublock.translator.block.D35 +pinListDigital_D36=com.ardublock.translator.block.D36 +pinListDigital_D37=com.ardublock.translator.block.D37 +pinListDigital_D38=com.ardublock.translator.block.D38 +pinListDigital_D39=com.ardublock.translator.block.D39 +pinListDigital_D40=com.ardublock.translator.block.D40 +pinListDigital_D41=com.ardublock.translator.block.D41 +pinListDigital_D42=com.ardublock.translator.block.D42 +pinListDigital_D43=com.ardublock.translator.block.D43 +pinListDigital_D44=com.ardublock.translator.block.D44 +pinListDigital_D45=com.ardublock.translator.block.D45 +pinListDigital_D46=com.ardublock.translator.block.D46 +pinListDigital_D47=com.ardublock.translator.block.D47 +pinListDigital_D48=com.ardublock.translator.block.D48 +pinListDigital_D49=com.ardublock.translator.block.D49 +pinListDigital_D50=com.ardublock.translator.block.D50 +pinListDigital_D51=com.ardublock.translator.block.D51 +pinListDigital_D52=com.ardublock.translator.block.D52 +pinListDigital_D53=com.ardublock.translator.block.D53 +# +pinListAnalogWrite_D3=com.ardublock.translator.block.D3 +pinListAnalogWrite_D5=com.ardublock.translator.block.D5 +pinListAnalogWrite_D6=com.ardublock.translator.block.D6 +pinListAnalogWrite_D9=com.ardublock.translator.block.D9 +pinListAnalogWrite_D10=com.ardublock.translator.block.D10 +pinListAnalogWrite_D11=com.ardublock.translator.block.D11 +# +pinListAnalogWrite_D2=com.ardublock.translator.block.D2 +pinListAnalogWrite_D4=com.ardublock.translator.block.D4 +pinListAnalogWrite_D7=com.ardublock.translator.block.D7 +pinListAnalogWrite_D8=com.ardublock.translator.block.D8 +pinListAnalogWrite_D12=com.ardublock.translator.block.D12 +pinListAnalogWrite_D13=com.ardublock.translator.block.D13 +pinListAnalogWrite_D44=com.ardublock.translator.block.D44 +pinListAnalogWrite_D44=com.ardublock.translator.block.D45 +pinListAnalogWrite_D46=com.ardublock.translator.block.D46 + +pinListAnalog_A0=com.ardublock.translator.block.A0 +pinListAnalog_A1=com.ardublock.translator.block.A1 +pinListAnalog_A2=com.ardublock.translator.block.A2 +pinListAnalog_A3=com.ardublock.translator.block.A3 +pinListAnalog_A4=com.ardublock.translator.block.A4 +pinListAnalog_A5=com.ardublock.translator.block.A5 +pinListAnalog_A6=com.ardublock.translator.block.A6 +pinListAnalog_A7=com.ardublock.translator.block.A7 +pinListAnalog_A8=com.ardublock.translator.block.A8 +pinListAnalog_A9=com.ardublock.translator.block.A9 +pinListAnalog_A10=com.ardublock.translator.block.A10 +pinListAnalog_A11=com.ardublock.translator.block.A11 +pinListAnalog_A12=com.ardublock.translator.block.A12 +pinListAnalog_A13=com.ardublock.translator.block.A13 +pinListAnalog_A14=com.ardublock.translator.block.A14 +pinListAnalog_A15=com.ardublock.translator.block.A15 + #Pin pin-read-analog=analogInput pin-read-digital=digitalInput From ad802a0e4186470f78c2ecaf24712dfdabe73b7e Mon Sep 17 00:00:00 2001 From: TonyCallear Date: Sun, 27 Mar 2016 15:07:44 +0100 Subject: [PATCH 04/25] Remove Stupid Repeated line --- .../java/com/ardublock/translator/block/ServoMg996rBlock.java | 2 -- 1 file changed, 2 deletions(-) diff --git a/src/main/java/com/ardublock/translator/block/ServoMg996rBlock.java b/src/main/java/com/ardublock/translator/block/ServoMg996rBlock.java index 6b6d74e8..489a45ca 100644 --- a/src/main/java/com/ardublock/translator/block/ServoMg996rBlock.java +++ b/src/main/java/com/ardublock/translator/block/ServoMg996rBlock.java @@ -3,8 +3,6 @@ import java.util.ResourceBundle; -import java.util.ResourceBundle; - import com.ardublock.translator.Translator; import com.ardublock.translator.block.exception.BlockException; import com.ardublock.translator.block.exception.SocketNullException; From 244baf6b14ac4e090cface6ce9c547bab8700173 Mon Sep 17 00:00:00 2001 From: TonyCallear Date: Sun, 27 Mar 2016 15:14:29 +0100 Subject: [PATCH 05/25] Consistency name change "do" changes to "loop" like other blocks --- src/main/resources/com/ardublock/block/ardublock.properties | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/main/resources/com/ardublock/block/ardublock.properties b/src/main/resources/com/ardublock/block/ardublock.properties index ff8d3fba..55da8976 100644 --- a/src/main/resources/com/ardublock/block/ardublock.properties +++ b/src/main/resources/com/ardublock/block/ardublock.properties @@ -118,7 +118,7 @@ bc.to=to bc.value=value bc.variable=variable bc.frequency=frequency -bc.do=do +bc.do=loop bc.device_address=device address bc.register_address=register address bc.watchdog_enable=Enable From 22b3e3e8bb8af89dfabd2b16356f2f6e8fea06b5 Mon Sep 17 00:00:00 2001 From: TonyCallear Date: Sun, 27 Mar 2016 15:41:30 +0100 Subject: [PATCH 06/25] Colour Change Analog Pin list colours dark to distinguish from Digital Pin List --- .../com/ardublock/block/ardublock.xml | 34 +++++++++---------- 1 file changed, 17 insertions(+), 17 deletions(-) diff --git a/src/main/resources/com/ardublock/block/ardublock.xml b/src/main/resources/com/ardublock/block/ardublock.xml index 488bd9aa..8ad5c649 100644 --- a/src/main/resources/com/ardublock/block/ardublock.xml +++ b/src/main/resources/com/ardublock/block/ardublock.xml @@ -520,84 +520,84 @@ - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + @@ -1881,7 +1881,7 @@ - + Analog Pin Constant From 66c367c722317d9dd112491db77ee0b82cadd818 Mon Sep 17 00:00:00 2001 From: TonyCallear Date: Sun, 27 Mar 2016 15:55:11 +0100 Subject: [PATCH 07/25] Colour Change PWM pin list darker to distinguish other pin lists --- .../com/ardublock/block/ardublock.xml | 30 +++++++++---------- 1 file changed, 15 insertions(+), 15 deletions(-) diff --git a/src/main/resources/com/ardublock/block/ardublock.xml b/src/main/resources/com/ardublock/block/ardublock.xml index 8ad5c649..c2af314f 100644 --- a/src/main/resources/com/ardublock/block/ardublock.xml +++ b/src/main/resources/com/ardublock/block/ardublock.xml @@ -881,79 +881,79 @@ - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + From b527cf6dd18fb2ad4c391b519ca706805720bca2 Mon Sep 17 00:00:00 2001 From: TonyCallear Date: Sun, 27 Mar 2016 16:33:25 +0100 Subject: [PATCH 08/25] Make more pop-up Helps work --- .../com/ardublock/block/ardublock.properties | 5 ++ .../com/ardublock/block/ardublock.xml | 55 +++++++++++++++++++ 2 files changed, 60 insertions(+) diff --git a/src/main/resources/com/ardublock/block/ardublock.properties b/src/main/resources/com/ardublock/block/ardublock.properties index 55da8976..170c53c0 100644 --- a/src/main/resources/com/ardublock/block/ardublock.properties +++ b/src/main/resources/com/ardublock/block/ardublock.properties @@ -667,7 +667,12 @@ bg.number_long.description=Large integer constant. 0 to 4,294,967,295 bg.number_double.description='Decimal' number constant. +/- 3.4028235E+38 bg.variable_number.description=Standard integer variable. -32,768 to +32,767 bg.pinListDigital_D0.description=List of valid digital pin numbers on various Arduino boards +bg.pinListDigital_D8.description=List of valid digital pin numbers on various Arduino boards +bg.pinListDigital_D11.description=List of valid digital pin numbers on various Arduino boards +bg.pinListDigital_D12.description=List of valid digital pin numbers on various Arduino boards +bg.pinListDigital_D13.description=List of valid digital pin numbers on various Arduino boards bg.pinListAnalog_A0.description=List of valid analog pin numbers on various Arduino boards +bg.pinListAnalogWrite_D3.description=List of valid 'analog write' (PWM) pin numbers on various Arduino boards bg.variable_number_unsigned_long.description=Large integer variable name bg.variable_number_double.description='Decimal' variable name bg.variable_digital.description=Digital variable diff --git a/src/main/resources/com/ardublock/block/ardublock.xml b/src/main/resources/com/ardublock/block/ardublock.xml index c2af314f..b5671d16 100644 --- a/src/main/resources/com/ardublock/block/ardublock.xml +++ b/src/main/resources/com/ardublock/block/ardublock.xml @@ -1881,6 +1881,49 @@ + + + + + Digital Pin Constant + + + + + + + + + + + Digital Pin Constant + + + + + + + + + + Digital Pin Constant + + + + + + + + + + + Digital Pin Constant + + + + + + @@ -1892,6 +1935,17 @@ + + + + PWM Pin Constant + + + + + + + @@ -11725,6 +11779,7 @@ number_double pinListDigital_D0 pinListAnalog_A0 + pinListAnalogWrite_D3 setter_variable_char variable_poly char From 168d24c9ff68d94be3c58dc49f3a5aa9b0c4cb6f Mon Sep 17 00:00:00 2001 From: TonyCallear Date: Sun, 27 Mar 2016 17:02:11 +0100 Subject: [PATCH 09/25] D^ pop-up help works --- .../com/ardublock/block/ardublock.properties | 1 + src/main/resources/com/ardublock/block/ardublock.xml | 11 +++++++++++ 2 files changed, 12 insertions(+) diff --git a/src/main/resources/com/ardublock/block/ardublock.properties b/src/main/resources/com/ardublock/block/ardublock.properties index 170c53c0..711d9eba 100644 --- a/src/main/resources/com/ardublock/block/ardublock.properties +++ b/src/main/resources/com/ardublock/block/ardublock.properties @@ -667,6 +667,7 @@ bg.number_long.description=Large integer constant. 0 to 4,294,967,295 bg.number_double.description='Decimal' number constant. +/- 3.4028235E+38 bg.variable_number.description=Standard integer variable. -32,768 to +32,767 bg.pinListDigital_D0.description=List of valid digital pin numbers on various Arduino boards +bg.pinListDigital_D6.description=List of valid digital pin numbers on various Arduino boards bg.pinListDigital_D8.description=List of valid digital pin numbers on various Arduino boards bg.pinListDigital_D11.description=List of valid digital pin numbers on various Arduino boards bg.pinListDigital_D12.description=List of valid digital pin numbers on various Arduino boards diff --git a/src/main/resources/com/ardublock/block/ardublock.xml b/src/main/resources/com/ardublock/block/ardublock.xml index b5671d16..1c2b4544 100644 --- a/src/main/resources/com/ardublock/block/ardublock.xml +++ b/src/main/resources/com/ardublock/block/ardublock.xml @@ -1882,6 +1882,17 @@ + + + + Digital Pin Constant + + + + + + + From 9b30982edf44f1b791d8422d1818a676f071e16e Mon Sep 17 00:00:00 2001 From: TonyCallear Date: Sun, 27 Mar 2016 17:23:20 +0100 Subject: [PATCH 10/25] Re Add ultrasonic hardware image --- .../com/ardublock/block/ardublock.xml | 5 +++++ .../com/ardublock/block/ultrasonic.png | Bin 13351 -> 16006 bytes .../com/ardublock/block/ultrasonic2.png | Bin 0 -> 15733 bytes 3 files changed, 5 insertions(+) create mode 100644 src/main/resources/com/ardublock/block/ultrasonic2.png diff --git a/src/main/resources/com/ardublock/block/ardublock.xml b/src/main/resources/com/ardublock/block/ardublock.xml index 1c2b4544..ffcf1da1 100644 --- a/src/main/resources/com/ardublock/block/ardublock.xml +++ b/src/main/resources/com/ardublock/block/ardublock.xml @@ -2329,6 +2329,11 @@ + + + com/ardublock/block/ultrasonic.png + + diff --git a/src/main/resources/com/ardublock/block/ultrasonic.png b/src/main/resources/com/ardublock/block/ultrasonic.png index d3f91f1351c1bc08248cb679c8ef3161a1cccaa1..738e17e9476ebb8a89425234ba6c2a811d0e6de1 100644 GIT binary patch delta 15681 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 ZF^{yw^L;ZBcz^{?Nlsn14)P`B{{!?bV9fvk delta 12937 zcmYLwbyQT}7cUCZ($d`}5+mIqJ>Y&IO`C%Sy>hjzFeHHp z6v=0_QpZ1#g1f%8pRIbXkN@$%-x_b16ZtSKq4+^?&hf)SMNY=@od2oo+KzV)a4RCs z))#O*@RXW=VjT2$5p5~pIM`0&#+1hFp$511e***JgZ~?#d7xd6^N&CIzXK9CQVldu z66jm<$G2}^g|s{1u3sTVn14>hoT)t*!yT!ee3|XgsLY$*JLxVuG2l#TLPj|7_e~Es zw;M7OQ%xc|9eOZO{d5)^ym!Cf604baM4ldU#o(U5rnmNvB&g_!K9p7+zopWYoLMPo z&%4(d8`I5jpjxGywj1&iqRN175>K!?Kcy1v&?wXGG)X`Ck}6bENnMiBcZEBpU0ibB z4pNNwyqG9>;qT&v*;CcK$&;l@`_%(xLyph%#Yyxj&zW8UDdu^K$jiKws#LGY810Y^ z1t!ft+h;12;mZdJ5|ftP0~2P_a8l+l`vQ*po^%x?wMSM%j)B>@Bk5mys4#T57h(CP zWT;9(CD@w^*nH^@Wcy0jRk@Y<9M51TKZU!wp#$@57{X3xTngF}xsn_0Y2WOP-qdcyjSOEojfL;8Y3FoU?fY3%kb-}E{@ zWy$&@Lb}04@|szz>*oZznIV-kbyOKj^lr$@)l=?rYW*vD11D-Lz~jFAvswv})}jh~ zpLB;}-~`hRTa_neR<|mQ$ezlW1k#2c7>oDZ>@yx_Xqe{nP-%ro=?!FKP%{*Lsn_D~ZJjD1oH2{VxS?ISCF%15%O z_cOFd-Ck@%W^}6K^B3(A@6@KwMd!a7Ht0Q5eZw64s(TWzM3D$3E1e@Dg{_VIqibEi z)DB-tc8TG7{^CmaAZ6GMHCi`UDRV3#7hvb=VH^4S&4?A7SrM`&H0#}&(N0CQE#yO_ zrb~49HY-~H2h1nDV|zCP9+&$%!h4`o4B%>s=lY%)GW676}J>2Ki` z??_G(vOk^Kt6(MUU8{V-KGtu#p$ynzrH zoK>!TuWku^-{$Ts5>GGdvN0o(=YSj6*?hA-{TNiOrg6cfW@&TQ3y06DwxuaB)p=-G z_{ceR?SjFLg1TarnfSTt*?TosGs<6{GAln!r%wq4TJ0)N;+2ziI$9!DRe$|d+h4A@f1jx79fbapVSY+hlE+@1or$f)u;dcMg5@%afSI3M+KTlRAu515gl>qh zVee~qT(7%gT?0GYkQWYQ)~WKa@)Uz$HQ3nWjHL|i2mQd?PCS=b;gKJAk7qB4ce*d` zdC^hd9)bD$sPw|Khg3#U6pkk!m1yhqds6i2!nVq3_Z_$e5 z+ofm15w;m^-@VCXNcMpYs6Ys`d~6j>L)2v#iLaS)EN9cV$`L;_N`+ljd@EkTV#=Mu z`?XAeWW3Qt>6FdIroMZ}(>&Mx_x_V`%*Rs(fvXJ>i#vh1_CC)E`%jrH$rP52IO%3# z%N7G^Y`aa<8jo`n%Dvgx;}LQWn(@C4*oPoemf;$q1mPv}tbYKyk<{{U`ovdksZ*Df zbz6l=BZQCPmJ|4;*r&oy@kNyv$$M*N6AFZuO5gRwOX43#R|U>DGWUjrgheWF^y^Vy zPtc~4nL}(59Jq9#M6sR7%r_%cqWt30I@_&Z3O!pv zsc8DbhevFp@TW>m%go2pDRX#v-+eO2=TtlDmL0sOy+XkA@?qU4TOzBsKq2 zqKLzYXuI5{Z}$lPl4<5R&YZ0LJ}bL#Iz#j4GeWXV<3BZ-=_5kNbIW!QbkYL&VZmh_ zuvjR+JvWe}7O&X4m=enbX)*dlLIx3`^L0lvmBI7DPc8}HLnG1<_N1iTTDhbaanF4t z3WOTCB&U$%_YpsBlwBG8{OV!`8PWHp>S(2)BP7RP;a1y( zigq*1Dg5D?IH}sUS;n!tj_4^IRR2~5j5m8cskeAde~_7o#d79zs)k?~ zBMx#E!${w1d`tjA(0xlx=6+N(K9=BDO@1e-s{~F@7=wTZ?hAZ{Yq3~ z*}tm!@y~x;=+0{k2y$=4j}+ezLqnSuit$MebiVMN>OGF+Hb<{kysbQScUpz?g{bo2 zJ8iv0P-Y=Ki0ObCN)h$VScXEs+hmTm_L%~zLzNV}p9!jkB2D6$+6y)AQmiP#n0zU2 zrlI)5M`&h>49u|%1SLIF27yiOeP#E-etRnf%O^;ipL};+ie6_5RLwTuhG7JpiVdV? zzMlM|-Q;7A#>UiOpP<0R{TN#1M_73q?2(CYZHHcb}b z-xZSBjl^;XZPvemT%n#zXtrZ}`v+yRYh-!<(2@_8tdJhMz;m z?@v%24O@o4BuiJlO&1j(8=wvla4wI8;j9N-sQQ&9j9IWXV|-SJxzGok`j?hzH+Y*i z$6A+?j`RXq9dr{X1C|NHmX5aBv`IzNWH1l>p2OQxXU_LLR??r;73d-#BcKbVQ-|>i zi=%2K=@gymB;yqqvqwjEjgWVB7@CXSxF#X5Bi^cqMOH8-B(bV~ikO;pN2v`dsSbfI z<1X6GHd_l1SPj!-GIVqQa$3v(h{07gfA{Mz%UvIU2K|+mSUmTk%_z>U@>8YtZyzy_ z29L#`KTRw>Qw5{cmGB36$~2>DYIvBLnH4N&LSQx3O-j7!+YP1&mDm!ej(c*zSIRk{ zy>FrO0;SVs{X~U`;MhP+OTH{ObISa*-QKt*PnDzlv!|BQfpzI|yVdbm zNif6gSNE?K%*`q(HE!e+SBpPaOuWt0D=J?5t;^3qGRBx=x48NF`+xt25E2raY3TZ` zTe_FO6W($f7(;ApFb~lf{5p6gH=s&T-^yABz_DTkiSJ;vA%W`8U)i7+8%og5s1nLV z@1sVgrhGMkE~0c1R~RXbe=^`5@<0o?_aC@xMsqA$`{L{jkCx@_v1%Uu`IG!j=OeFU z$33%lr2*X6H&ZaS#-3ui;lNGUD<>RIs-mjuycHwh^7QxC_4hu0QIdgS)9~>u>C*`s zuoen$>!yfqwObH5ws$z^Yoyw7G;Wc89qV;8r;IWdAL$Ya6Yf)3gE!(&>3oB0BOgY$ zMj#g&ocrCF^+xat0UpsUrg@@q3`>lCAzje+vHMWfQz7B*UY$UJ@i#o_irgB|i>?PK zkN9S7ZAX|ri;y4?Z&Tb&s3zKlP!op@EeT9ae-Xfwjvq3cgv78$S@CDG77tp~QHpxS z`<}I@ww`rFPhFzKyo>f|9h+(vv zXn=r|lK^ML;*VP_i;FtuzK#6~HJ=xbF7GFR97q2neNIl!cxWkG>d5Hm=*MOLj1syK z+E~+~BnbISn|gBNKhvpqy8@jq|-x9ch!t$X{whrhjj z`OYr_fdkwx-dc0obtND;=Y2WP+-g)pH%N6@VgW)=;VeNhxtc7~tzzW}lN1X9dIpG{ zVX4O8bj0&oy5E`#{MN2}Lo&z5r_)DXD;`!s4`-s%{Ps09&2srV{S9^<_t%c+rMV9p zM!;Wph^ncBLu{leprk}j6ZrH9jnm3245btJ%-m$}5LCLR2lwF}*(pJT`%wjA2S!PS z@s!XxCxyjIhT)e`U7nu^T;xB*);84sfL8R)-l3#&8E)b}?c;hM^rf;AM^lRXrAg<1 zN+MWr#|T1NaDP~1r$v7bD6B)@9zdA#(QujM(1z182aeX z{1@Kmcpbjwr%2r0F^59q3cgbP?Cx^WkX52piIHRvG72fCNMp;anR@JncEI6khNoV9_dZ)+!^(ULH#aaar-B+WLCcX3=+53p*N}e*qD{ z3uR;abQPChKb~1wTJm5cFE>OMe5u-c9tQu_!qs5EC5VHDL;2CxHrmxOdkgXO$N1{d zw(8;{4#>K=;7OUEPtVTSplLf}6d7B%`{N?3mP(n!%9q%XMy7nep^tlYmfJ4L`1CJF z68TW&`GI=*-cz*W<+i zk1B%C^0a8lDsd!}sE(}T&q=EHO~r?R&6^(dsv#_nm%k10w=!bhSwB}rC&Kup97@*b zrL@(D@S~yvt~n_D&bww-+`N*qPwb9?6`DdEV_Dnsg9~*&%7lR#_j}(2^&^xO)vvx9U5d00r zzOJ^R&OiHNW;5ir6e6GFRL{rnuO4?D|1o1>VPy$An|NKIg$?Lcgu$Y0>Xk}ox^Dfy z&ar2dYcuEo0{49VHVL2jjGz822zi~;mO`_;8|<-r@|I5utjUv=LIq>P ze|*&{2h}Tx7Gx8Hg+7RCQPStQIKly*Dxm#_Tv=IpCE$S!1a7@WT=NC}d;4I|@i)%a zEFbIVP20(8n=jefaY#AhJj8D*d!BAuSW|19;=>}z7Pyz+79sj0=mQ>0wnm{ziz^0& z@gsHh&0Ut_S7en&?ZX>A;cUrDj0nYUZj_I%u7rjQ=~-FZzq*1!LYqE-WJA#aHYV`# zoUdQ=h>69VJ%CdU7Iwf1UO59ak6kp}e0)8to~x=AT3dm>4%=l5B;MD<#HBQC=@g}W zocfAC12_K_n#Zc_33YxS^I{%5_KJLZ432JVnA=d zeAeleBke-IA=5aw+vR)42w=9Lul9Nv20VENguemqM@GlTc|}B`w*MKaPv&tCZNcSi6t;l4e0Pp*R*_5r3G*Kcrj`3 zs>v>*;O3^f<(m6IIU(`%SWRSBr`u*L@@#o|`EyK+^HD`3FCU*w=?q=!$kfrblVPfx z@K_`vi=f*+o`{G@T1n*DLl1!uNG*2DyED1}Aj=}ly_l37yCeadT1m6kp~CXGvG1$h zqsU@lTtkO)9#4%n(Gn%X{&W?nM;aMMKm@&Hol9K zNz&q#5U;+838PHoUc$((*J<+lZm%*@QTOY^_$Dag&u4U(Y8F=;U@k~Inx zOOPwXb6K!uN=ixuoi|Y`kEU(v<6+ZB*C17YjsxNlBRgJ)Wu^sPU##T9mU!o%_>_)UqZkWeL06=xF%@ z?MA>*FE=R#g{if5)E4ZqFV937xi0cfL?XHQ6c+72a>&t#1O+>49utBl8YaqhB+s znx^;|(5H?$4Q%k{oWV(n+Z|E|Xn?HMRYTr%Y;XsTt`&-5$ET+*$G{?wg@r{J35dn5 z7Or9##`-Ofs_We|P|eMCK`g*3v>ukB&MJ5)C{jO;k2&|ovrX;oUlt!&=?x|zd#lr> zIN*(R6gKQAcKn^z_d7isufx|lcK6BBw~e3j%kkcNA%1&8Q~my+x^3>)@Fkby>(le; zOcI4d)PthHBlcQ=EL9M5$ZYyQo6z>>upDH35Mm|P1Opf6yQEZ9eeQ-|=WN!4Etgq~ z<6*G!IrJX91@~})x&3`saJ3_~`yQ=LmCE9|rRuEJZEd47Y7#Lpo}2{+grf6Anb4?0 zK}g^kl-A)4*2kmd*Ox8&uP9RbSz3Y8Ss%ht#1V#i%~|_e2Q_jCj(tA$fB)@a3CoCelyV z+=iCCWaKfZFtFahmPQ8`-)bm@&v1aT0GXL3~Z@S~AR3ZoC0ew7rtnfYnFc~N+J#8$wDYHQKCGo-R>i-nJ9tHJgptT z=bUJOx!<}7S7Y4#&hqJ;&Ot;lC`mk}5}t{ZaGBuz*_2%!Qy_i&u={yc#~=1c*&x=a zFwOvwqOzd~rD7+_a1e;FvRS8(V5Gp%g5YehCj|G`Ux^J2b4w+d+s>4@bxr2Fpbj{L z+W|3TAxezAU<78+2v80f6W|51A=6cbIiqh;GAjRY7)hI2Fh-l-J|mLDCwXHeI|IS) zA$2iAuHJEJrn?aS73tGXU9b1jaAC-d*DFW9Zix~7IXDz59jM9PH#PeCqmG1GrQZ!>v<(x_X|ESG8s_hAS6l8)0V*UCdrl8yXw|;2xj2uV%L?xP zaqKnwobq=5JNGBz<${yulsGwwer@oD!g=e52~Y-$dg32_k#X&qDt_ zcdS~Vfbk%K{0yFInClA0g8VHt1DQVfeO@x_?ymq1hYu!mXvZtzD=X4vTR?K9*aE{O zNic!3%EBDZ4IQf%T0DZ0Nj7r=tAeT*-}PRnq^3?mUaHQ30AWH5#ZT-hG9!9W0ekxx zpLQsb-1p@ZI%M%Q`Yl0fXhHBr066}xP>M*d2*$=aVq#;1Ia14w9Squ+&#%HtwicP^ z+J(o)FyA-4IUrsBpw~jn$1_o;;puV!3=^Q0_LB-oi=S6!vXbzrKvUDH-q4w&fVwB! zy4vmhXC)ODHIn)USKt@gjsp^R4>!2mO2yLb$=#4KcqFCSo(gkt(qF0>pLX$;A{wXg z*ez^jd$%!2UXqEsd$M5EWD>1)t63tOCQ;AZYTHfWX)f2Wm|_Th8G~D(sWq^W_WR%O z1)F+swbJ>Lpp5vBCB&;Rhtq_>Nw=@O!SWTXJz`>BftgV!mkvzwN}2IpQu1Ok&M@a*kPBJ_oP z9_-z|F*c@e{cgiiYzNdNtfXaRh2fNNrM`X#tTMCpW(v7kn|fPn-#~L+s|v4CDUh$q_BSbjBo(r ze2g8%^*l21BgV;}A+r?g0_%ka*^vF{<(9z2zal)TBOv6zyj?gl=L zno==AgFT;wM4bJy4DWn{J!a^04GoQ+fBjdY;Gt!@N5qB7-aP9?CgAClp7mNT~AMv1$R(i{KVCYVPq*IwCG^S z!E_a!ps)~FaL51ZxW{9z(ANI$*i6B!E<`^w1R7-ZhqiK3cg^PNzI6T9093{KVS`t% zv^%x)FJ)Dwrb0S@%cQzA{t-Fw+IR|!aVd#3$hh?;@K1-taUH6^cIzrNOd$B|8EDbY zMdN7E!^~ZLe8_vaBMPh*0URXDW&Y^sXe&LM74YR(j~iJtX07^!-*pueRl$3Cq-7Uy z2d7I+81rY8bWw~(-&Mp+N-dy-!Lfa-1F<#^=gPCh{WECMK{YXG23$hHwwTHcBeqP& z*zWlzxB|OJj%3Ud>**5@d};LxEl_49ddmK?@TT z7xZHgers#grhutw4}~OpSARb$0)d!4a_8sgcQPa?o^^@)~IXR3YqVk8CF<)9*$_LZ&iFo}M{0lcXHyRI7@ioRO_hdu4Mr->Rw* z(9#6h=7acuZ9bS1m|38ijfnwXc5@fa98B8OgKtY4Mb9rF0GeNLA3(waa}2DXZ~+g> z0ZK8KkPF+Tnx8kiYd;xQmY7w{;x(@Pp(D6>ywbh+ga4#hYd%Z$()v}Z^6nGF^MF~H z_FXKlPFpK-v*VlV-8mg-@WTmUjmze6cwlxmRnlSZtSKof1wcUoO1pa10%&FxMsIw? zl3+b{^A3&S0;co{A3Z%&$HvCs820sgAlHFSq39BfM2Dbg+qWJjBrKWT+(aqyX-~Md z({c08IVm#z{CE2Y7^fn-o11zF*XUQUAx3F*FlfC)2$t|-x>!>WPtRt*dtMOUD$Fu? zC?IhG|2ayqH3llLEPWT4A)q@`Dh{eV0t?F8CC&=1XqV>E%gf8^By4hr8A$WfzX$vb z+H@E1y^0rHoi6x%35=u?A&Jk$QqYN{6+;pS1(_>)BFjXDuqag-FrTqSZhg|}_pek@ z^fSKLTq@VJF{B*m_AsFK`t=O-LYIaBSodR*aAB841h(LZ(NR!P*xA`tcXY&pfHV58 zS3wZA;iLmonzG|>b~~7!gm5<{oOV71fV&fGPndt4GHsWTp2N zT0=W7GWK<=4uwa50QiuHVQOgT3(zO)8X8hTJ;A8Vl&ZP@i520-CM4@Yto!G@WRQY* zQpS)b$rdnh|M^RtsKcI^(xrNZSP|#zeyt(bofpgHgU*;ioPQ)95fM^R_q}>}+0mFO z`&cdRtYdE#?3_-XcmO=AgfkEjbUW7z#-+JByUa4(h<4M1vN{&C`QzDcUqh;K#f zj~65uyLiINuZ*KOCeP6QT{NjtDlhoRTS30G+>Q5uSgL*8v*UsMcEy#i(soObD^Bzh zJ@?OS=|12lEMozH6)jkm#8L|JYSM?`fej$e5ovUu(N8cX(TScbQ4bFf9esU@=a=E@ zSLZ!6zkVEZW>_bvFx{1R1_Z~XgeR*6X(}+XKi4)?vxM*e4VKAr3t~;myN5{Ut^>#B z|BiFTA~u?u!un)z#d^W6s&y3gHfSaulTbwdfN3OEzp6Hy%fGNALot5w=PilE@70FdZ>A>`sM z_Ia7aFZqh{v2KDs4Rk!QOZ>etY&)7&BqmPrI`ds0;izisHjNYG|IYUEo5+8s4V6bQ zR-!Qa+h4n6cYn|}?|yjaTa$xjr5rw-G*N}w`{`kQLhN=$8P9uE?X%OVP3RkOAl;8n zevN0z*846X!onuvNKs1(D4w?Jr=CViB+em0ki9IhWkD5n&4L8kdT z$nbdDdH?&|;ml1~FqV%J73|k%sur-C*xK3-V!ZtFDG*)!;|$tPG1wvcfsA`z-g#Nx z6f0MjwiDV&a(6tV+|=v0pTbKc=qggxcF8HQ=EldsAm=mYu`Waa^xXxj{qlAb5${mn z&zRSK-TevL7@eSCLMHr?x3CQ@1i=;u8wD>QX2Ls)91;?FA;qgnpIRouy0Ro-pSe**=35=;~bjOUj z{*SGkp4d>RAQ3OXoX!2??7CUGcipk)EiJI&-(-ee% ztloYRp!nYUx?qq6+b5($o>PWXnFW5BM&8Swm&Vh4F~~TxL$4J*{OnRTEq#v2;Tbowt`dPPL?#&I(n#l55kmg;I=LUTx{| z8jB+dOX#%u8omBqHdqNCEUV#`eWv-BjYhd9Sx33@5&6*EsqUqyyAm6<-?>!4bt;e! zEHxvWAuvkzEbcF7EbrGlu8BL6=}e~@=_75+1Kz8=!D)6CU-mv5L#xD%xBu|9FV#aN z&geYZa2DCZ5V?w?)&OhYhCJHVoqyh=>9!>J^R|IrHvg9CR@;%Gr>X9L?R1&KwLDRr z;a^AwuwnQvxs?}Kfr$RuFZA1HprHedSrf;Yoj9Y_o=U4OIwjf_gi^OH9VxnEG7Xws z(v2o8O-!OLE^6|x6&9}H9+a}AVKR;Or8D_cc9T|+KhLk<4#*eJ=Pg(AN=WoAXFgNw zZ0NUQ>&Y&~nYtFmHgwwkZQVb>vbeTZVpN3~G6U;rs>5_-CevT76e?*_czK9Qelj#; z!|hvYAQ&;uPXXK?nKD5&=sJj0bjY6$8z}BBkPGd;w?3W{o}JHK9g!Xo83X3oMq3<@ zN5;Ny>JWvR9_0}xk@7VDNxrAe;Vij+iK#|Dk$M&2X%NNQQZS6Sx{(O;1y~_@uKNqz zu6feTXlN{!NI5ggyy3o^wd@!)_PbU6Jxzy+A@>tg2hd-oje;<lbcOH~vQ4EetwiZra)n zGGEW@#+B}7*F8btpJ;h`dC!Z4z&rm63;OT>BBjD{X?81HPdDfF9hnlGYV0zX4%qCL zH=gcx0o%tZfi>prk&jVGWZ@{QX^ZI2Du|PIE)4CD8K^BDRN057N8TA-ToU~Hn=%4p z$ccW;U5*ldSXB=EOA#DRLa8hhCsTJlRTpYB&2b`e6Y-z@zFwoUsO4;L4^imq8*d#` zI94|_^zZI6Oa0pN76(60m>@|@Pv4l#mjO`(B$?EpD}frNsKcyXRe9-a{P;{w^okf` zxjU9V>COIcAFD7ZS1JwWJo1SnQjrwmZx7j3cwGseiNbG-I^E|IKceXgK>J2Wn$b)2 ztbTB(vGd%Yf1cm_ccDc8<0Hhk)t5Bvzw^}rL(kQ|-FfDb5sq&L3<;rlJ!O2!N<4ss z#Khy{qk5vtDoUtHhQ+|vjImeBgm|5#wwjBNrjr|_3syG}n7|pWpSfM9TZ<8V4JFx0 z`|Y_^MHo-_YLT4GG_Uvf$b=c)kfxGTy@N?B{!rTpR_f2kKbF*6g}2mO!MH2KFA+@A z6Q)&Da0{ELV6@#xbKnJ6ETa?=To*u9WC`5SA#Dkh{Fv@vrOC>){-<@}u6-gP=B;SI z1)tjj$9@30+WxE!@fD$WQ1!$iE_0LA6G_+xo?Gymm3jkk_t1r}1t%>yAWt_V4re?u z`e9KVmXFeBhB?D_DNtqa}NjQ0O=OC9}xHRTy$eiFJ>n6B5_Qv{h6NyA*qkQ473)@J8aV`z;?U zk4;3lrnw^$iBrqPpN@<>MzgDoc4)-hG9qCF@{4I1VQ1dxQ^2Df<15~Ibv*{zZdDu_ z&${ONp*dv|Yj?3Vp<8B=S9j$*(&)}sho5n9}_$^i-Q3trDRb~7;yIXVb6 z5fVT|+v{dpn5M}alkP=fF{NoJ3jfRNjB>Y+jrSWbV!F7wSrN#oM?V5H zp`|t0!Pl!1jSD|@QlJx#wM!q0cwbNswT09)HkSd=1PKLt6PHd|&1Ltt-`D z->sEuyz=<+rkg9-<1-O+&Fo~LUPTmQOOzPMRe{@}N(gq2tjK0eCB=sIFJYw$ii$w_ z5yjIGXZbi&GY!9!YeTM6pYMfSH6%`(k_mMbAJ#g)53dSPzhl_;#rgnKOr0tURAP># zM9Y8rD@Y)r6n7K9=PS_hz6tRWAiT*m`J-jnvo<0w)pL8h63M<9lXhi%w{Um*DzpD3?k4O?@0IFUY>61_-bq87oOnSb|czX6s z^n5=YuF$$#Fs%uZL4)g(Y6a<_OG8XlOJ^|9O{rLR;yv6cRTJF|rB%M#bR%5q6IYC6Ga>MHJ2)Gg) zB65Y3-u?VL*lr0mAOY`V(2OktqQC!lZ3DcK@&B)F{J(n~7Yuk$3rG}C6a}*Tv@j&_ Orzi)Nt(5*4^nU=;nLmaA diff --git a/src/main/resources/com/ardublock/block/ultrasonic2.png b/src/main/resources/com/ardublock/block/ultrasonic2.png new file mode 100644 index 0000000000000000000000000000000000000000..1e52a504fd5fbb0458caf272075c752d720d6924 GIT binary patch literal 15733 zcmY*=Wl&sAwCyAi+}%9{3p%(DI=BW1?(Xiv-F=YYE&+nOySo!yfTH0H|PTaTVw@1A0j!z(Ma@KrRvJ1JOZR%NYPb#{Td6 z0Dxo>002memSSQ`N*4Am_Rbde4isQ9F$xDKdoxQLQvkqYHCxqOP4yU0@P6|aBpd!C zS=L?!7lA?r6!ilqftG<15kn@NGH(S}xd&510+x6 zL3rfo^B?a5>&5o_gNe6>C85L0o9y~2_-+K0RA~-n&L1dcATrGDprQW3KYPp~0Z23s z01SkB6H4b->JNYiKLG(os&4pBzz2^xWCTFBd}cQ*N!UC32`EG7!;jz(-7X0{vIswL z03u$opkjcC9neVTv&j?n6c3=KjqueGUPFVKjBXN)&xpfi_|Xs|!rbeb zLC78eMBly{2LN&taG|rkdG(k?tDcZJ+!{e^Unsvm6B zqRD`>tBmCsD-MaiVK1VJ04357e4c$b+1X-xh7sE01pKlR`rw`LwN%#_=AY~r3{98r zoqGV_y3M|4o(=)#hegnzDfjma;a92L&ww9h;6z6NKu?^8S#7jlcnARi5YG)@_$5kw z+e5(A4M)=RX}t&e#egdqMAP33!T=$e{2*~Mpsx%B(S=U@B4sdOnHM1ib}L(iCOM!n z_o_Fe2|A!Z86xEL(6t93!io+fU>j1dhJP@M)TE9@z|RPIpzM)`#fqY#7zxKwrjkwI zlx9@X%K5E;u*EFd-%xkJVCDqErkL{rXl3 z(-v`OJXPxsixnWzjmQP-4x%t56P4DK(^OcNE~Ox$0b;HqawEb7EBAh(N-CB8P1}n3 z*iT@@&K9OA%|yM36^G4&;TAW zAKZjdq!gJH+7x027PYeS;_}UMWc3^MF}1idJyqXoNp%j@-7>`a)C%?TY^76GVpa1p z{?f2=^HO^?;X*&H*9bVRKDj!TN^8`LP}cy?e%jiJ6(2W- zw)9uhwkW~!vOHcf4jB%OdX<}GGhz7MbjOD*7X`#ax{|aTzsOCT3;G>;;$om&3!ABq zb$M!9s%C|Bg>r?|X$M#JSxI(rheVs!a{!v?kjxjIFH+`llb^B=RaaCuN{~wMO3u@BI`w|!$k~@{dUhN>k@&K_s=eAimE1|8Xu{Q_(7>&sOcDqT za5~xxkg^P|T`7y{_KAoU8KxMf{RvKJnGq;hkc^Q;kG34t*`?XF9kd-RpoOEQq?MIF zkw1s1$hQ>J7xT;U%MDG8PvlQ5W^iT-vMsS6W*%lPWo|VYeE0ay)L7csYznU1`(CVd z-q>yz@|{aSpl(kBX2D9Ai!sV$LKU+!*fIlX1Co)cxZ%dzYPA zpV@m>x>j?}b#8ecw*GS*_>(?Ii^F-kZ&++wd4EP2`DY5N^;V^yqL^ZUdBY(!i!n=r zM%B`~r)(w#59Y-%Z}V-e&+M zKR$mjhlvOf4bcAh{NUw7*%d3yw`TgUZsklgI=4j>S2QlLDsaE2iqc~EZ+sQy{bBlK z!lWfyh?3vY;xxSBfnijiAIg`Iun>(<;aG=oO`;jLG*0)Kbus5H@h90;}Auz*gZwW;3nv11^GJIf)W$r9YN)k@=1;6 zC*}ucZex|EA$4y9c2P|%WGV0?*7fm~pR~RrHG+zd)V|X#F~HZEn`)SKO+<|HrdH%I zPMnR`kFLdYXI=b!Kf~(9`jgmL6e_Fnl~nVfqtc4EPQcM~4QUtm6JzK%xJrTM$VLX+ z1;vUpjkIdN4q7jH>j1r;(ZHUD57wv1>PY(`zNhO;XS#}-ELvL)hEJi{#6q|ck<~bB z_-VNQ%XI4=`@~`Pqg@&6$-m1g`ddt<%x2Aw4>rH%XrrZ;ryZoB*`cni{zl#U_WSJa zpTrtV+63KNTTr7|OF@@FbGvED$m9gSuv($ot=f|s*ZJ&5gW=MH-OM?$cl$r!--R{p z_WM_%kB|Tiq%JTgS5@m|2)tcxtr9rIz^x(pf<@ zmAFO5Qz^6|^3J#H3-_<6T&U_XS%W*&4&t7B$M=X^_hhJit8UTWm4D#p$lXZINm;Bw zkZXu!rYhuF+eo`raa?F-@nqBMMQV*4JqswHX5&ke^TeV+2y)!Z68~sSp!nTr*C`Waw71SG^aS! zmemHSZqc!BIrr*l@HV?YCeGoW+_>%Vyuy25T*%=S+~~ORvcDg=zuUsw@N@d|Iyu(1 z;{N5ls$H>N|5oHobVY0{DDu+*l}T z=xGj*5HIhJu+!`DONrQ&$rNo4{#*XrST#N#i{Hb->C)s(`b=Khby`xFtxwVGN%tvX z&Dvn^AX(>#2M3$p?YHN%9`|*3(u;yEbj3X%3V*tHi^tkK)#;MwB*LVmcUYM8n-^n_ zuWL}gNntFlA`bv~eFgx21OWh#@6hKl0N~0B0Gt>A0DS2H0KR>q{(vL^z@7^h7gh6E z{o7#~U9{wTaL<3yxlweo+1gOk!SeTD@oQwEv6}C5%7Gb|M>tJ-!v_mp_ z=+`eqV?K@iQp9~iHKx+E6SC1hz*x_Re5!J_1*bt+fSd;PJEe8bXNL# z@@6_5r6wiUbLY3Q8-c@ikj#kR-y#1|rGIG#!v91Y$)73K;$D~GSN#44+5F!?EqdMm z4Gakl|1%~xdH&ylIN$iQA%D0$*Ybw@hsLX1mXP>5a^e6<*`T?u1u8f+^8qSJJs;++d3OkFl@eLCq*)}&g z$25^tqNZGH8^s#wkk1^cR91+@#?Tnvq`nXilsBe1G_+(Wq)-o%M(Cvz!Tl(YTgWb< zu7(B6xg~{3%bw8hC?|u&M~Ap4h%YA6K#V~>3_${yPoISF@M24;A7|jnXHco3s&Xi+ zgIVNxDrwJHgk4^aaz;%2-`4kSnr0h6F+ivYoz?BWQ6m-02>Zd+uVZc$<;Q5~3 zJ!a-<%&|8R31V`I<+mjh6#P)OJyAhi8BE3nF59HX?ngvI0+sLS;?t`HSLf!&2h*3y z&A7lwfNDf3P-ioWMN__|T1f%s$h2vnk|GD4~i$B{4^X7(a;Qh%+mTB~v|EHiF_#PVnciPeekc*rMym zcfNQGT0~`rnZm*a`ZXl<`uOIu~1buE!;c7+GvwstTZ8nv*N%xWK&7Hw3 zuD|5*y(lM~P^C_on5*lF+B}L7jc|U8OJGulL`&8lsSGd6q4JI^peVbz$l(Ml#j{f) zeWs^&kpMNE)$7^S|K2bv+N2Iw2T3^8ujXysDWfb`Ht_OjQ&k{=NAmr1feGv0B|rUgCs zdOAB-&fFg7`^4=j_tPjL6yYm2w;nqSvZaX8xW!sg!1CEYRaN1OTU~N3q<^dlBSQ>H zD*C)Sdh~^_K31fVRn1fF67qDAWUk5kcn0}&im$Pc9FPe3!)&29|E?QZNTJ1*Dk*y^ zjr<7NHt5+O|BLX&OcqBzJ4PlZ#w*I~uR$4~B@#tE2x9;djFqsUo|QkAmnc?1T)&XY zq|TRR?Y?3cO3)e-AgZV8$b`Sfj-ecBYS9)`yZl-%LHR&m*3q;+TJC*79Vbx>#KnDq zjjSFKl#+?w6V%h)Fe=#Wn?-%m%$qxLxcHFf|L_hxWExmOU*zdgad}*i0FPH})xkvksj`#xygb4q z0b=kiuaj*aEwd6+ZS9A*n01d-id`+EPEzqGF|&Uq#SMqU&a-x-?nw`C=P?{{RP03KuRQrKdYQ z9A!IarIY1h|Mv83k%7o;vT1j7adNqxysRM0w$DeWv!_hrD@?sq2qujrtAVm|%i+r8 z9yeP~Npi+_p4k`|xEk~3&}hIVeFf$v9+$%yXOi75XTdx(!)<&VbDqUfeJG}C>{`f_ zYCFKsDGYurd56zxnPe4fsEx$Bc--1LIxT}9GkXdAXxH{#F6jPmd)6=x%y*~*| zpKfVxs>jCcnP#lH!`qnmd9hh8l+&{Zlpt!Wl-OEHTVD5Penjc+{`|DdA@;GtO=HW=g_6e_S>;WSRiRumQ7qWHjlU zmMx#?K$Oy-Be(XEFG%(^NA^~~ix-%4=#D$x|Dn1N5S%oTrR61_8NFD7)HSvMGo5RME4{`f*=&sy-Y25oMs~Ni=p&YHv_J zwBj|94uU^KT4&>ynPzgnYcMt8-kBCp1x7p^hj21ze_bWUU9TKSFEJjX)LwwA|3qB1 zX6EJ;tW>O1bJyIyYQ$xI?M>c^%=pjq^+}%3G4jle%|&!Gz_^}JfpnBZci!Q5I@Q}7lh(JbwhY=8u!hnkpQPzAKdR6Ja3w7Bt+CeF=~2_tc{wH$ zV6-OnSN9fV+3>mL-|ke?JkMuo-|xcgq*On}`QDqhN+wh$QQrD8ED)8!%4)Rum?l)5 za=9)PniCOJ;UO1M;^E0u&QIMu$&hmHI!GgXK0GjSYb<5_{55>Y;bY$hnmwIG;AH-~ zNZ5o*_WaQC*QVOBW4))51BWCj5Zh_(4;W3(1d;zMWP)LWhXRaSs5Z@Mnzo5CeSD{+ zjy*ShMUn|MX6yvM=TL&O-_tec=BnLHtQu_;?b&kS%vnub|2K6xbqvISNO47#)(G*a z*^Y&WFW}$;ZITJ}q~F}U4GurZ^)<~ZNI_Um?>afrhS!4)eCQ-O+w~W`gX@1;W4uC6 zmm0xyICDS;0eJb5T%;7W^I4p5-CpVl>_FC?!5GeK&$tMcfa7O04lM^||I|yL_{;es zKG7GV_t&8*C*!usBzs%7geesl^;nkZ8!J;%b>+*@C>`zZe->hx1(zh9)tK!#J#I!_ zB~j5E7EP`nfIlCP+N8hB7ykBm8sJ7y3DIGensJ-XPtM1^S-H>7(_7iOBX)I}GiJ(k zIJm@cC;$05<-`6&X0UQ(+Q?4EC!pA0tXgoSoCxN}U>aO{M~t~+IN*0uk|7gA_P+Ip zvvvo=7<0Y0k#Dkwz(a}xJkfLtInn$d^Dc53SS9o-m=stzEkhz^2q|tDbu*>TUVKxf z<``0J$~aCI!$!*(I=WR?wP6aEiey3oMI}r%)jRiId)IxXk)WC-V{hloi3#~ecQ@%B z0{YM3#BEP9V`F1EIl1@|({PoMomqzJQ>Ud`Fs+neC3)v)95a}C)8@+E{~br)n%bQzt{ZGq2d#Isfv&D6uJL$n~0H)Of-@>;fAFd%y z+MtVP8#@~(<9)cy%uHC(ANh2^OnIg;BO9CO<6}!&TH0Yx-arZi*Lq1>>#NwcFND`F z>-xGoE4bhxw}>@elX3&35E@L_G7$t+%1`Vn7*6)!QAjaDYu;YbK7$5n66<>5Le#Kz zyt{5A-{sl`|Dd_B1M!_?%ve+=k6r4FN<>2g=VUhj5V3uGPlNT+^6DxT7)x%hA1Ke4 zjn;WlU`eE^s=DsBW-D+zEk+{f6%3Sb>GXiY1KV3gTsyYBcg9kh+j6-(oqgraRa@+J zL0Yx4tkI^=K9V7aQNCJX`V|3T-LhprFx4u3A^vF=&B!lV)=z{thA@E-f688^30QdH zOmnE>0Bk(9WoEW>c%Q+f9Srq+-C z{5Yb>^FHWFbO#4Qs9Rx*%*PmFn=r$s|JdK*$sp4u;qKt{vDD#V=-gb#LK5q zc$6*jIHC>A6!c1nWWmOQjZ93e2kv-q6ElGF&%Z)YvrB%*vAaURe4xa zTwO?~k}LaZ2X+bNu@|P~;RRm7(b+bmN+zi63b9(hYw+jG@z2YSu17Ke2M5Ra__%=< z-ii$#V98Zk9k-7a0~9}XcqI@AO#+{-!`=|&mxm!?+N2SOXVMb-G{)w}k@0?nu_)`m z55G2T9gSN1lZ3reWO8%mC*qMlsjExR>Qbqxs@aHLPLEic;9#kL#M5X3BlYz=2IkO6 z>te_bQ%FmUXJFT_*Rl>G7a|h*1R~F8E5##l_9z_(CvX6fluZ zIyg9#!3e3WNzt;C`6%!7{)e#m8gF9waHb8-*{~t>tTcOS%h_T|F74zp16_FW4qMfH z$u?mWRyzX908vJ6-KappgrWudkDciHSi&&UP)> zFg!W&TSbUdg@&p+uKXMZD7T!UNF_p!R;*@eH{wf<$dc=1PDhwo0oYHvB!2ArwPfn5 zo?GK_dm{|PFA4t}QR(By)vv@cYOs+Q(iGC4y|T7tL-6gnEa%reLS>9B!YL#%iNJ~Z z5|oeaBk<>4sItZFZnoKRzS}4z=rMI24H9`gprX3Ii}$ySo3jg_Fi>7Msr!1*@GwH` zE`|hVWd8J-Tf{Dby87{*m$>q8>$8?m?K;dumzS)N;;S+Jx5Oy?t%Lcpq-06tWNX)h z;xEIeANCt?8@Y)4JANp*!c&KQ=iW;><_LzX($ls~aBpZuKs zva9V1%HR@l6k{Sl(}1w_(-boMG%*M`xJdf;TbdfoSDON2K6dHw*Z9W>k_#d4^d{yS zb`HLNVXvvPc`H+Lu&Zas?Xs+)fUrqwoK zm5W~MHj*}#?SXQjL79T=sdi^{)4CVmpT10%?sE0I5_Ei)I9Er$VGq-SQY-80y*KR1 zWBe~y$#(`|dBqq8dRB_@rC zPR@AMIX7prkp6rS>2ow0WTTN;xyZlHufLs;ggqW(mQLT?e*aHw-TROPj8WI@lQb7L z$ji$=va^Fk?sI=;LMoaSxZCV=X05+Vy!8M#H#f(`#1ubb6242&$6C4s{ajF)nvtR5 zhb32f9Hi#zv0CFHs0k?$-~>xewE!MDVHeLjElwf-L7nS+o09q`b$k?5^Om~CK_gWP zCVay(6NCuV%!I3%N%ITdW^<8Z3s{u9>K)f_m)5w&VW?y+*0D0CnK-!W$`1$JT_Y_1 zk7J_rP)vB}MDJc)#Dg-7b#aS;9Ms7UL&wviGxeCtmh!l~B~dLR>G+-ojGhti4~S6465bxRNr*^b+Q?B9N;`Z! z{CUXow!=b~A|t1$m^5|hjxVK5mo^3<;dhHRs+A@gg1Syk-PFP&oGvmQ0@>-0z+P^Y zuUMdxSM};33jqZ{L+<)fU`pTyW$XRzzE&>i8^3{%P2hc&fOMm(R87+_2HnwUC9srI zeg~&6LmAdwgP@mNY!3P5c7!8sDC+kryhhvW9a)yEhuye>Q$A#5|swpnc1-J`kR;8MgWM)4#g-IAiP09yN8k`8GRFdAtQrCKHg>ncp)5|T3*ASB&r zRM$6m4(wdZ4_uv=HZc^kbr5kCW#FqtD5waY^gDw;?WRO1_eS9S7Vf_QmB+}h+xhWZ`HkB;b|F$jHe?|Rn#uXwu1 ze?c%l@4TT?Rh1xWl}v8PxJ)BNU7Bv_kQii0IGLR{EBhjG-NJOiqt=V=1DwcRI=k-2 zR{T|8FUFNQ&}a*_dd^{OeSIG^aMLp~2$?KslX@C$BL}ENF>+6zwqbrTA@{MSXJ;3E zuQJlY11DmHQW_Gl^Yf2|AmeLlYl|^3L}EFb_#v1C=ULGlR~Izymk7MhX8PQaGuM$3 zCG!h1S8@(Be3iY=*%XyjF`8i;USy|+m{+5Jz5Se$C%Gy+pvtZ4$>D%tMHZ(Tw< z86Snom|sdR5%~xkzgoQR7+5+VsB#Yf@Sv5K@9>~am?ilL3Fk8SY<)=@$+c{YQmt5k z6UeAO)l8LWTH6qmPAqP&mW9SH!bd1`4MQU}a&}HySWwULJRtNtbng_IMj~($JlUs( zSmrMCWq(VGi6Ij1s*~Ppwy;ZeYYR{%GNAX{;R;oZYZWDkn0 zrZI8CD`sX@OW{HC*opW8C+|(0MCjnNVV5>C0!9k?=t#25g9btf#`yjHtK1yPZ&+W} zyOL8IF4=+^3VBs1KLsHOOcgAhUiBigT-L_7T z9>}}dZPF;fWPL++H_m{ONqPSRQ^Lc=raN$HLD$c$fb zB~l7Oxkw=y2_&H{$hkbREk2Lzk@>lnt3Pf|g1-Ko!VaZuv_<#G*Q=4L`X;8X4z+LR z1r$~g`{MO#{v#DRhisgjpG3;kdK=Gr;B6qZjEszxm6b+oc!}W&i9z}+g-@fzw~Y+* zl>!HUKStVN?|nV*^d+lb+L<-VV8k6^(d!((L)LiQh!YxiSfq^v;n0Aw@~nueck}3w zQcazYXHEICCn?14>h1K2oJq_t-#Ck*xYgEl&fn8aEJ3NIA=tG*%2&k>N3nL!KD_*bdG)7Bt#&>S!{G!!B5M@tLu z;?j~OkjRCP6xt4BfKb@AXp<z zkGnj00IT>gp}IPE8EsH0)x#M^etl%7?IPc}dA%rZ?uNhlg!wfW;S*+sI5;{-X3_n7 zA^V2w`5;@v_p{U?Jp%%`$b1wT?}`N?6Gr*DBNx78na?PFxl5+3lz zD4z&Bzg5&WHV#ftPm5d~!LTEI6d9UzW#Wh`jG~YzHb5|~xie`}h(M@iw5uRuPl1`3 zaU?mpd!FsfYe0lumIauTZ;g*6vABE_&xWNR6x>fju81m5h`ZDC}KLrG& z3<2c@ruu;LW@cvTnVHm?6SHS-jwE4F#=x8=w&V(wFW9idmcTS5$Uo&UR_% zz`)7NB_N8#G7kO#0jQx$%-rJ*7phUDSVRT_aPrV-na1j%JOnx;^xHvbs6vr)%~qxe ztNN5(NT{=dUIyHvL-u0h|99%}28!r75>Oz8${;>IScM@gOXADX)%J)b9(P-oplc$wl-Z-Z|1%2lK2d94 zJ~%*HwLAt*nQ3NzqlZ?0PW0c2b<%6%0S{W$wDY$L!YcIBK$s0yu(qvuRrDfrK|dv=Zs^6N+EQs0 zf`by4j-$SiaQSW(C^!W}z`7A5X$*)p9*Ui@YB+Lhv$3~Fe=&v>W5Rym=jUH;jJbG* zmP+L^HMo6t6ftN|zF>vBbq~KX(P$gI-f(kdDPGqgX=LgMCE63HRAZDmLO;H$+1WHc zF4ouFoMWr5`<4dJmR&9>3QsXI;tFht<07d@W2xuiN_!c~Ok%@aGBycKLs_uzx2_AT zrZt$8;&(xj7M;O+-(FUd=v}5Lu=*5g)L;zgPe_IcdE|m92!LZyxMJgNS%YO{7?b6W z2nqQ%jD1#_a74J1v9fUrn+Ut6rd8wi_)n2#X9aI&lA%s{kdR0c^CKliDpp8xG5PE@ zHZ5)l4>&zNodnRfbP6p)gv7+eHULVfW^*d1prBH-q@}Mv)M#6n97GA7G}OTRPK3Hk zWeZl&C~E11eY{#= za)Zq9BV%TNcn^;dJ9{rQ0r#Cee_cY=yX8i~X)+d_W&kU}M%%`Dw`%IxKAhmxN zxqE*s4GNYf?1V%ygSlB`JProaNKk7xHZ?(qgWf+Qe1yJgX=xE&TE^}=TyFPlxb?GY zTHZDZ)ZLxy4v(3!anPSXhETNY>+6FCmgDYV zOwWZvVsL>}EUO&**aU$wOg4vBIr9|L|gdYgaoFlo# zA`p>8ieQDcdtQIr6rPn7S2R+-;oja}5zvWS8xu2gT}MYuavS%Z1!VB)i4R)r=TBW- zbjdO5JM_@$_bDJV5Q8E(hQw`Zt^X$o$iw7QC=8E zWcQuTrk`^{1&h9gejLGF4mZ4)ul$HoS~;0O9aW^Cr+D;whrzzXH9NYEU$FD^ z%^j+`iZ!iCEJ1y3Zf+j7r04yghGGc`8mULefdZ(1J%$l$(LeN5Xqq$Ywu)DMBW|zR zuyg*q%y!;(;TNnla>%aJwX$c9@22!MB>BgNtQ1Y;vNoANDlSBlOx=117ntLB1Bai= zu+GKbKYBuRzv0aSE!(@$&Uy$q(W6NY`vIR>hafq;6SKDFxdEz@PZ7)6`rg}g=$Ttv zTT`&#lajPn-;5~wK}D5e^urdHV>m@U>xAg30ypC24K%;R?F!nDpJoBU6ksDazQmaP zkP2A3{-e;i+a*NxU%o%*RgPs+Y>Fi`Yi@Rbc8v6mpF zsipM?$~|E4Eh-jz?|uJEC8>T%DXC+(w&<7`)Zz(+5{@IO#>PfBQnDuLF(H=4W0!~Z zL!lvE_l=mmG6dMI_eTk4H=Wz&A3SH$z1iJp8yXe{Pv!1^bL;!+>)3wLu7vYRcPU~woi5TrH|@Ub{dL{{9VWPTs<$5j zzgpvAlBI?ny1YI-OW))ZNCBEj+2EM*Ml^{mPO|!8z5R^1GGnNxS#}wOUvr(n5!O;y zHyS`4_IO)Dw(tL@-^sUpmaSlJz)`(mRcI+wzd{ph%*D+OpQZE@=_qR3m#afx4=RKF zm!4u zJ{*SK?IYXwidiYsoqAid?~;dRS9sU!z#=e)6$QS1sV1$51`JndzGc36ZzK4y9rQA` z^?s3_os-A9H*<~sw*USQ$9~i1(mRf1ziHDMMOSecbzgceT%k>(9;$g)DA_Ms{3e>u zL|xs$b0onC5zO!Y0;Wb08<0a#Ijfb#HSVE=+}?Xu#jvpd-WLjoAl_L|pC$05>}N&K#13(Mp`Swr*l zO#Y8aHv)csK}tyC5CcL!kn&|vI!;e^eP1^EdaZkPtcs%lHFBJ8RIsI0ZUsH0EWv`W zf}a#hbVl0Fc|i21%GM3MzZ`xPNX7kXZ|{G4f(tc7sZ-esn8r_j?zh@1UG_(D6|Ml& zd*04SJ#K8h>K4m*EP66XKRSnFoV=822=gVDNv&lMg6mbTm z5zEUB323WN6UO$h+EH@SC^IK^JPDcRBo}~8Ly~kvOVuoxF0CZlKMTIdza50&%Jg}j zcikW~NRm$7@HpRRd`P)E^>_Z+cWRybin>^$_mo+6QI@1~9f0ohgXQg?JqJIx;-qVO zPUe2iPr<48x4leQ$<)f8YFzL--wFPg+r)5hJg4mY%}#f_J7xR#d3^FV9O?Sp(D79w zKkgmLuZ0zKOjQe7`fCRPbMOQsYrpxR68xa&A^$}ms|y}JKD=aypXcAS9--!0AgM`p zXDBxZM_*d!?PsC8GDS9^4n>;tFO;B~w`cN8f1x&U`itv`HpyQ}v}x74MN7y~Vh3#m zYzzcd)Lr9ApD`t7x^35vT`YjaK%yAkfTz^m0u}3NTMaGE^qs1hcyoPS6k`j%1F=PY7Lt9r=fYY1!Ph`CN6YcO5!A}*0~w=aAcKYI4}Wqu0&rwA6I zgOYT8A^xF@E&r^0QsR>D_bobh#&is6H8#$7C$8s0LKA-cJZvdyb?7_MS3;6&u@U=zQ69qQmRjbY-ZhSR~usvJ)v7Qo0h24$n%#@ z6CFt!i7+)P5D%G|jI8PJw>$}C=Pcb}XiI2Y?l--89k#nggq~by8@4h>w22urC!C&c zErs5$;%+jg{6fXT&~}>9oH;mnVu!kXuhrj5IMb*#Xg^zJE5fKZMp6gg(F)I;(t8UY;Se6Xo%^q>zduD^jBS zk=&dUWqhR5)j7J=&kp1l(trIo_3-2z<)WU(Q4m;AfHpQk zc0K%W$!GX_7E}PtVOaE+_A3;1@u%A^0(^pWcwfn1HBy-#`-%Qci(E@KmkA zAfuY|5~lIEy5!$YBxGE#)ymCSDhj7xI&TGsj4c*C!(6fTbNlI4A4dXa`p&z+Z{_Xo z;#oseLOD2}!DNF3kNHe*Sh6UT_S2^&u_mOKvx-xlO`ohO0iQ4CiljzdnFV_G7&1wZ zA)m~Oiz7B2(ZNJXwDghr1%yPPV$I?R!}Oz638A!-jT48r^{AKE7VDRz(3msR5ev3h zTZi{vSdARPp;vSC-Dlmn2B5u*#79y&Y2+ z&oKI?!Mg~5G*My@AXUuz{wJt8ezpnsIlR5p_auA&La6AGutMlgcG8ig&la0&^2-=N z427U+R9`%9F0B=t%h>@=qKWtcv)!@IGX zi|3#ZAm!v9nq_!=)?vF>YMW3?m0?p%(J*fOiqdj}Y7^t{TxG?WZEzYDAN*f54x0~C zPG9DvCRvqTYJ(%H>0mqKFxuj}!d1Z#I_b}YwHrOVcF-l?X1{&*s_LmV{7r+lkM9pX z^+(-Pn|cGvIA)RpBw`Y5YC>lfFP5HIh8%}Y*a;wm6WQrai>m~oGAtH#GbtV`hD@@?Jl2>4 z42P-K>B7E2{Kd%8sJsM?l8cL%E!Le3Z2&7l3!RoYbRJZW51ktK{#GMEfC6?q1}sU~B; znNrH6V9oO7ND3um95L!tILLH@RiLynP*yAkyZRgT+utF^_)tv-6FJhMY0Pr*1bWA; zSya_lzd-UL*fMdX>0ohnIjb>Tpu7~P&TPNP+-Dh*{9?)!xBfUkS6qpJf-o~WGkfsi-9Y$fVH?BIDgJ3%Z>M?Zmit}i zyU>UA`y(l3@wScp*<>I!GE^`Q6{CX1M2g6tJq{L+h}_pQvB8xEJKAOB4W89ma8EYc5}gsxA{W$Eu;yj?H=h`V~fE!Y8VV)D)1))Nb9o$aBc$G&#nc Date: Sun, 27 Mar 2016 17:36:01 +0100 Subject: [PATCH 11/25] Remove unwanted image --- .../com/ardublock/block/ultrasonic2.png | Bin 15733 -> 0 bytes 1 file changed, 0 insertions(+), 0 deletions(-) delete mode 100644 src/main/resources/com/ardublock/block/ultrasonic2.png diff --git a/src/main/resources/com/ardublock/block/ultrasonic2.png b/src/main/resources/com/ardublock/block/ultrasonic2.png deleted file mode 100644 index 1e52a504fd5fbb0458caf272075c752d720d6924..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 15733 zcmY*=Wl&sAwCyAi+}%9{3p%(DI=BW1?(Xiv-F=YYE&+nOySo!yfTH0H|PTaTVw@1A0j!z(Ma@KrRvJ1JOZR%NYPb#{Td6 z0Dxo>002memSSQ`N*4Am_Rbde4isQ9F$xDKdoxQLQvkqYHCxqOP4yU0@P6|aBpd!C zS=L?!7lA?r6!ilqftG<15kn@NGH(S}xd&510+x6 zL3rfo^B?a5>&5o_gNe6>C85L0o9y~2_-+K0RA~-n&L1dcATrGDprQW3KYPp~0Z23s z01SkB6H4b->JNYiKLG(os&4pBzz2^xWCTFBd}cQ*N!UC32`EG7!;jz(-7X0{vIswL z03u$opkjcC9neVTv&j?n6c3=KjqueGUPFVKjBXN)&xpfi_|Xs|!rbeb zLC78eMBly{2LN&taG|rkdG(k?tDcZJ+!{e^Unsvm6B zqRD`>tBmCsD-MaiVK1VJ04357e4c$b+1X-xh7sE01pKlR`rw`LwN%#_=AY~r3{98r zoqGV_y3M|4o(=)#hegnzDfjma;a92L&ww9h;6z6NKu?^8S#7jlcnARi5YG)@_$5kw z+e5(A4M)=RX}t&e#egdqMAP33!T=$e{2*~Mpsx%B(S=U@B4sdOnHM1ib}L(iCOM!n z_o_Fe2|A!Z86xEL(6t93!io+fU>j1dhJP@M)TE9@z|RPIpzM)`#fqY#7zxKwrjkwI zlx9@X%K5E;u*EFd-%xkJVCDqErkL{rXl3 z(-v`OJXPxsixnWzjmQP-4x%t56P4DK(^OcNE~Ox$0b;HqawEb7EBAh(N-CB8P1}n3 z*iT@@&K9OA%|yM36^G4&;TAW zAKZjdq!gJH+7x027PYeS;_}UMWc3^MF}1idJyqXoNp%j@-7>`a)C%?TY^76GVpa1p z{?f2=^HO^?;X*&H*9bVRKDj!TN^8`LP}cy?e%jiJ6(2W- zw)9uhwkW~!vOHcf4jB%OdX<}GGhz7MbjOD*7X`#ax{|aTzsOCT3;G>;;$om&3!ABq zb$M!9s%C|Bg>r?|X$M#JSxI(rheVs!a{!v?kjxjIFH+`llb^B=RaaCuN{~wMO3u@BI`w|!$k~@{dUhN>k@&K_s=eAimE1|8Xu{Q_(7>&sOcDqT za5~xxkg^P|T`7y{_KAoU8KxMf{RvKJnGq;hkc^Q;kG34t*`?XF9kd-RpoOEQq?MIF zkw1s1$hQ>J7xT;U%MDG8PvlQ5W^iT-vMsS6W*%lPWo|VYeE0ay)L7csYznU1`(CVd z-q>yz@|{aSpl(kBX2D9Ai!sV$LKU+!*fIlX1Co)cxZ%dzYPA zpV@m>x>j?}b#8ecw*GS*_>(?Ii^F-kZ&++wd4EP2`DY5N^;V^yqL^ZUdBY(!i!n=r zM%B`~r)(w#59Y-%Z}V-e&+M zKR$mjhlvOf4bcAh{NUw7*%d3yw`TgUZsklgI=4j>S2QlLDsaE2iqc~EZ+sQy{bBlK z!lWfyh?3vY;xxSBfnijiAIg`Iun>(<;aG=oO`;jLG*0)Kbus5H@h90;}Auz*gZwW;3nv11^GJIf)W$r9YN)k@=1;6 zC*}ucZex|EA$4y9c2P|%WGV0?*7fm~pR~RrHG+zd)V|X#F~HZEn`)SKO+<|HrdH%I zPMnR`kFLdYXI=b!Kf~(9`jgmL6e_Fnl~nVfqtc4EPQcM~4QUtm6JzK%xJrTM$VLX+ z1;vUpjkIdN4q7jH>j1r;(ZHUD57wv1>PY(`zNhO;XS#}-ELvL)hEJi{#6q|ck<~bB z_-VNQ%XI4=`@~`Pqg@&6$-m1g`ddt<%x2Aw4>rH%XrrZ;ryZoB*`cni{zl#U_WSJa zpTrtV+63KNTTr7|OF@@FbGvED$m9gSuv($ot=f|s*ZJ&5gW=MH-OM?$cl$r!--R{p z_WM_%kB|Tiq%JTgS5@m|2)tcxtr9rIz^x(pf<@ zmAFO5Qz^6|^3J#H3-_<6T&U_XS%W*&4&t7B$M=X^_hhJit8UTWm4D#p$lXZINm;Bw zkZXu!rYhuF+eo`raa?F-@nqBMMQV*4JqswHX5&ke^TeV+2y)!Z68~sSp!nTr*C`Waw71SG^aS! zmemHSZqc!BIrr*l@HV?YCeGoW+_>%Vyuy25T*%=S+~~ORvcDg=zuUsw@N@d|Iyu(1 z;{N5ls$H>N|5oHobVY0{DDu+*l}T z=xGj*5HIhJu+!`DONrQ&$rNo4{#*XrST#N#i{Hb->C)s(`b=Khby`xFtxwVGN%tvX z&Dvn^AX(>#2M3$p?YHN%9`|*3(u;yEbj3X%3V*tHi^tkK)#;MwB*LVmcUYM8n-^n_ zuWL}gNntFlA`bv~eFgx21OWh#@6hKl0N~0B0Gt>A0DS2H0KR>q{(vL^z@7^h7gh6E z{o7#~U9{wTaL<3yxlweo+1gOk!SeTD@oQwEv6}C5%7Gb|M>tJ-!v_mp_ z=+`eqV?K@iQp9~iHKx+E6SC1hz*x_Re5!J_1*bt+fSd;PJEe8bXNL# z@@6_5r6wiUbLY3Q8-c@ikj#kR-y#1|rGIG#!v91Y$)73K;$D~GSN#44+5F!?EqdMm z4Gakl|1%~xdH&ylIN$iQA%D0$*Ybw@hsLX1mXP>5a^e6<*`T?u1u8f+^8qSJJs;++d3OkFl@eLCq*)}&g z$25^tqNZGH8^s#wkk1^cR91+@#?Tnvq`nXilsBe1G_+(Wq)-o%M(Cvz!Tl(YTgWb< zu7(B6xg~{3%bw8hC?|u&M~Ap4h%YA6K#V~>3_${yPoISF@M24;A7|jnXHco3s&Xi+ zgIVNxDrwJHgk4^aaz;%2-`4kSnr0h6F+ivYoz?BWQ6m-02>Zd+uVZc$<;Q5~3 zJ!a-<%&|8R31V`I<+mjh6#P)OJyAhi8BE3nF59HX?ngvI0+sLS;?t`HSLf!&2h*3y z&A7lwfNDf3P-ioWMN__|T1f%s$h2vnk|GD4~i$B{4^X7(a;Qh%+mTB~v|EHiF_#PVnciPeekc*rMym zcfNQGT0~`rnZm*a`ZXl<`uOIu~1buE!;c7+GvwstTZ8nv*N%xWK&7Hw3 zuD|5*y(lM~P^C_on5*lF+B}L7jc|U8OJGulL`&8lsSGd6q4JI^peVbz$l(Ml#j{f) zeWs^&kpMNE)$7^S|K2bv+N2Iw2T3^8ujXysDWfb`Ht_OjQ&k{=NAmr1feGv0B|rUgCs zdOAB-&fFg7`^4=j_tPjL6yYm2w;nqSvZaX8xW!sg!1CEYRaN1OTU~N3q<^dlBSQ>H zD*C)Sdh~^_K31fVRn1fF67qDAWUk5kcn0}&im$Pc9FPe3!)&29|E?QZNTJ1*Dk*y^ zjr<7NHt5+O|BLX&OcqBzJ4PlZ#w*I~uR$4~B@#tE2x9;djFqsUo|QkAmnc?1T)&XY zq|TRR?Y?3cO3)e-AgZV8$b`Sfj-ecBYS9)`yZl-%LHR&m*3q;+TJC*79Vbx>#KnDq zjjSFKl#+?w6V%h)Fe=#Wn?-%m%$qxLxcHFf|L_hxWExmOU*zdgad}*i0FPH})xkvksj`#xygb4q z0b=kiuaj*aEwd6+ZS9A*n01d-id`+EPEzqGF|&Uq#SMqU&a-x-?nw`C=P?{{RP03KuRQrKdYQ z9A!IarIY1h|Mv83k%7o;vT1j7adNqxysRM0w$DeWv!_hrD@?sq2qujrtAVm|%i+r8 z9yeP~Npi+_p4k`|xEk~3&}hIVeFf$v9+$%yXOi75XTdx(!)<&VbDqUfeJG}C>{`f_ zYCFKsDGYurd56zxnPe4fsEx$Bc--1LIxT}9GkXdAXxH{#F6jPmd)6=x%y*~*| zpKfVxs>jCcnP#lH!`qnmd9hh8l+&{Zlpt!Wl-OEHTVD5Penjc+{`|DdA@;GtO=HW=g_6e_S>;WSRiRumQ7qWHjlU zmMx#?K$Oy-Be(XEFG%(^NA^~~ix-%4=#D$x|Dn1N5S%oTrR61_8NFD7)HSvMGo5RME4{`f*=&sy-Y25oMs~Ni=p&YHv_J zwBj|94uU^KT4&>ynPzgnYcMt8-kBCp1x7p^hj21ze_bWUU9TKSFEJjX)LwwA|3qB1 zX6EJ;tW>O1bJyIyYQ$xI?M>c^%=pjq^+}%3G4jle%|&!Gz_^}JfpnBZci!Q5I@Q}7lh(JbwhY=8u!hnkpQPzAKdR6Ja3w7Bt+CeF=~2_tc{wH$ zV6-OnSN9fV+3>mL-|ke?JkMuo-|xcgq*On}`QDqhN+wh$QQrD8ED)8!%4)Rum?l)5 za=9)PniCOJ;UO1M;^E0u&QIMu$&hmHI!GgXK0GjSYb<5_{55>Y;bY$hnmwIG;AH-~ zNZ5o*_WaQC*QVOBW4))51BWCj5Zh_(4;W3(1d;zMWP)LWhXRaSs5Z@Mnzo5CeSD{+ zjy*ShMUn|MX6yvM=TL&O-_tec=BnLHtQu_;?b&kS%vnub|2K6xbqvISNO47#)(G*a z*^Y&WFW}$;ZITJ}q~F}U4GurZ^)<~ZNI_Um?>afrhS!4)eCQ-O+w~W`gX@1;W4uC6 zmm0xyICDS;0eJb5T%;7W^I4p5-CpVl>_FC?!5GeK&$tMcfa7O04lM^||I|yL_{;es zKG7GV_t&8*C*!usBzs%7geesl^;nkZ8!J;%b>+*@C>`zZe->hx1(zh9)tK!#J#I!_ zB~j5E7EP`nfIlCP+N8hB7ykBm8sJ7y3DIGensJ-XPtM1^S-H>7(_7iOBX)I}GiJ(k zIJm@cC;$05<-`6&X0UQ(+Q?4EC!pA0tXgoSoCxN}U>aO{M~t~+IN*0uk|7gA_P+Ip zvvvo=7<0Y0k#Dkwz(a}xJkfLtInn$d^Dc53SS9o-m=stzEkhz^2q|tDbu*>TUVKxf z<``0J$~aCI!$!*(I=WR?wP6aEiey3oMI}r%)jRiId)IxXk)WC-V{hloi3#~ecQ@%B z0{YM3#BEP9V`F1EIl1@|({PoMomqzJQ>Ud`Fs+neC3)v)95a}C)8@+E{~br)n%bQzt{ZGq2d#Isfv&D6uJL$n~0H)Of-@>;fAFd%y z+MtVP8#@~(<9)cy%uHC(ANh2^OnIg;BO9CO<6}!&TH0Yx-arZi*Lq1>>#NwcFND`F z>-xGoE4bhxw}>@elX3&35E@L_G7$t+%1`Vn7*6)!QAjaDYu;YbK7$5n66<>5Le#Kz zyt{5A-{sl`|Dd_B1M!_?%ve+=k6r4FN<>2g=VUhj5V3uGPlNT+^6DxT7)x%hA1Ke4 zjn;WlU`eE^s=DsBW-D+zEk+{f6%3Sb>GXiY1KV3gTsyYBcg9kh+j6-(oqgraRa@+J zL0Yx4tkI^=K9V7aQNCJX`V|3T-LhprFx4u3A^vF=&B!lV)=z{thA@E-f688^30QdH zOmnE>0Bk(9WoEW>c%Q+f9Srq+-C z{5Yb>^FHWFbO#4Qs9Rx*%*PmFn=r$s|JdK*$sp4u;qKt{vDD#V=-gb#LK5q zc$6*jIHC>A6!c1nWWmOQjZ93e2kv-q6ElGF&%Z)YvrB%*vAaURe4xa zTwO?~k}LaZ2X+bNu@|P~;RRm7(b+bmN+zi63b9(hYw+jG@z2YSu17Ke2M5Ra__%=< z-ii$#V98Zk9k-7a0~9}XcqI@AO#+{-!`=|&mxm!?+N2SOXVMb-G{)w}k@0?nu_)`m z55G2T9gSN1lZ3reWO8%mC*qMlsjExR>Qbqxs@aHLPLEic;9#kL#M5X3BlYz=2IkO6 z>te_bQ%FmUXJFT_*Rl>G7a|h*1R~F8E5##l_9z_(CvX6fluZ zIyg9#!3e3WNzt;C`6%!7{)e#m8gF9waHb8-*{~t>tTcOS%h_T|F74zp16_FW4qMfH z$u?mWRyzX908vJ6-KappgrWudkDciHSi&&UP)> zFg!W&TSbUdg@&p+uKXMZD7T!UNF_p!R;*@eH{wf<$dc=1PDhwo0oYHvB!2ArwPfn5 zo?GK_dm{|PFA4t}QR(By)vv@cYOs+Q(iGC4y|T7tL-6gnEa%reLS>9B!YL#%iNJ~Z z5|oeaBk<>4sItZFZnoKRzS}4z=rMI24H9`gprX3Ii}$ySo3jg_Fi>7Msr!1*@GwH` zE`|hVWd8J-Tf{Dby87{*m$>q8>$8?m?K;dumzS)N;;S+Jx5Oy?t%Lcpq-06tWNX)h z;xEIeANCt?8@Y)4JANp*!c&KQ=iW;><_LzX($ls~aBpZuKs zva9V1%HR@l6k{Sl(}1w_(-boMG%*M`xJdf;TbdfoSDON2K6dHw*Z9W>k_#d4^d{yS zb`HLNVXvvPc`H+Lu&Zas?Xs+)fUrqwoK zm5W~MHj*}#?SXQjL79T=sdi^{)4CVmpT10%?sE0I5_Ei)I9Er$VGq-SQY-80y*KR1 zWBe~y$#(`|dBqq8dRB_@rC zPR@AMIX7prkp6rS>2ow0WTTN;xyZlHufLs;ggqW(mQLT?e*aHw-TROPj8WI@lQb7L z$ji$=va^Fk?sI=;LMoaSxZCV=X05+Vy!8M#H#f(`#1ubb6242&$6C4s{ajF)nvtR5 zhb32f9Hi#zv0CFHs0k?$-~>xewE!MDVHeLjElwf-L7nS+o09q`b$k?5^Om~CK_gWP zCVay(6NCuV%!I3%N%ITdW^<8Z3s{u9>K)f_m)5w&VW?y+*0D0CnK-!W$`1$JT_Y_1 zk7J_rP)vB}MDJc)#Dg-7b#aS;9Ms7UL&wviGxeCtmh!l~B~dLR>G+-ojGhti4~S6465bxRNr*^b+Q?B9N;`Z! z{CUXow!=b~A|t1$m^5|hjxVK5mo^3<;dhHRs+A@gg1Syk-PFP&oGvmQ0@>-0z+P^Y zuUMdxSM};33jqZ{L+<)fU`pTyW$XRzzE&>i8^3{%P2hc&fOMm(R87+_2HnwUC9srI zeg~&6LmAdwgP@mNY!3P5c7!8sDC+kryhhvW9a)yEhuye>Q$A#5|swpnc1-J`kR;8MgWM)4#g-IAiP09yN8k`8GRFdAtQrCKHg>ncp)5|T3*ASB&r zRM$6m4(wdZ4_uv=HZc^kbr5kCW#FqtD5waY^gDw;?WRO1_eS9S7Vf_QmB+}h+xhWZ`HkB;b|F$jHe?|Rn#uXwu1 ze?c%l@4TT?Rh1xWl}v8PxJ)BNU7Bv_kQii0IGLR{EBhjG-NJOiqt=V=1DwcRI=k-2 zR{T|8FUFNQ&}a*_dd^{OeSIG^aMLp~2$?KslX@C$BL}ENF>+6zwqbrTA@{MSXJ;3E zuQJlY11DmHQW_Gl^Yf2|AmeLlYl|^3L}EFb_#v1C=ULGlR~Izymk7MhX8PQaGuM$3 zCG!h1S8@(Be3iY=*%XyjF`8i;USy|+m{+5Jz5Se$C%Gy+pvtZ4$>D%tMHZ(Tw< z86Snom|sdR5%~xkzgoQR7+5+VsB#Yf@Sv5K@9>~am?ilL3Fk8SY<)=@$+c{YQmt5k z6UeAO)l8LWTH6qmPAqP&mW9SH!bd1`4MQU}a&}HySWwULJRtNtbng_IMj~($JlUs( zSmrMCWq(VGi6Ij1s*~Ppwy;ZeYYR{%GNAX{;R;oZYZWDkn0 zrZI8CD`sX@OW{HC*opW8C+|(0MCjnNVV5>C0!9k?=t#25g9btf#`yjHtK1yPZ&+W} zyOL8IF4=+^3VBs1KLsHOOcgAhUiBigT-L_7T z9>}}dZPF;fWPL++H_m{ONqPSRQ^Lc=raN$HLD$c$fb zB~l7Oxkw=y2_&H{$hkbREk2Lzk@>lnt3Pf|g1-Ko!VaZuv_<#G*Q=4L`X;8X4z+LR z1r$~g`{MO#{v#DRhisgjpG3;kdK=Gr;B6qZjEszxm6b+oc!}W&i9z}+g-@fzw~Y+* zl>!HUKStVN?|nV*^d+lb+L<-VV8k6^(d!((L)LiQh!YxiSfq^v;n0Aw@~nueck}3w zQcazYXHEICCn?14>h1K2oJq_t-#Ck*xYgEl&fn8aEJ3NIA=tG*%2&k>N3nL!KD_*bdG)7Bt#&>S!{G!!B5M@tLu z;?j~OkjRCP6xt4BfKb@AXp<z zkGnj00IT>gp}IPE8EsH0)x#M^etl%7?IPc}dA%rZ?uNhlg!wfW;S*+sI5;{-X3_n7 zA^V2w`5;@v_p{U?Jp%%`$b1wT?}`N?6Gr*DBNx78na?PFxl5+3lz zD4z&Bzg5&WHV#ftPm5d~!LTEI6d9UzW#Wh`jG~YzHb5|~xie`}h(M@iw5uRuPl1`3 zaU?mpd!FsfYe0lumIauTZ;g*6vABE_&xWNR6x>fju81m5h`ZDC}KLrG& z3<2c@ruu;LW@cvTnVHm?6SHS-jwE4F#=x8=w&V(wFW9idmcTS5$Uo&UR_% zz`)7NB_N8#G7kO#0jQx$%-rJ*7phUDSVRT_aPrV-na1j%JOnx;^xHvbs6vr)%~qxe ztNN5(NT{=dUIyHvL-u0h|99%}28!r75>Oz8${;>IScM@gOXADX)%J)b9(P-oplc$wl-Z-Z|1%2lK2d94 zJ~%*HwLAt*nQ3NzqlZ?0PW0c2b<%6%0S{W$wDY$L!YcIBK$s0yu(qvuRrDfrK|dv=Zs^6N+EQs0 zf`by4j-$SiaQSW(C^!W}z`7A5X$*)p9*Ui@YB+Lhv$3~Fe=&v>W5Rym=jUH;jJbG* zmP+L^HMo6t6ftN|zF>vBbq~KX(P$gI-f(kdDPGqgX=LgMCE63HRAZDmLO;H$+1WHc zF4ouFoMWr5`<4dJmR&9>3QsXI;tFht<07d@W2xuiN_!c~Ok%@aGBycKLs_uzx2_AT zrZt$8;&(xj7M;O+-(FUd=v}5Lu=*5g)L;zgPe_IcdE|m92!LZyxMJgNS%YO{7?b6W z2nqQ%jD1#_a74J1v9fUrn+Ut6rd8wi_)n2#X9aI&lA%s{kdR0c^CKliDpp8xG5PE@ zHZ5)l4>&zNodnRfbP6p)gv7+eHULVfW^*d1prBH-q@}Mv)M#6n97GA7G}OTRPK3Hk zWeZl&C~E11eY{#= za)Zq9BV%TNcn^;dJ9{rQ0r#Cee_cY=yX8i~X)+d_W&kU}M%%`Dw`%IxKAhmxN zxqE*s4GNYf?1V%ygSlB`JProaNKk7xHZ?(qgWf+Qe1yJgX=xE&TE^}=TyFPlxb?GY zTHZDZ)ZLxy4v(3!anPSXhETNY>+6FCmgDYV zOwWZvVsL>}EUO&**aU$wOg4vBIr9|L|gdYgaoFlo# zA`p>8ieQDcdtQIr6rPn7S2R+-;oja}5zvWS8xu2gT}MYuavS%Z1!VB)i4R)r=TBW- zbjdO5JM_@$_bDJV5Q8E(hQw`Zt^X$o$iw7QC=8E zWcQuTrk`^{1&h9gejLGF4mZ4)ul$HoS~;0O9aW^Cr+D;whrzzXH9NYEU$FD^ z%^j+`iZ!iCEJ1y3Zf+j7r04yghGGc`8mULefdZ(1J%$l$(LeN5Xqq$Ywu)DMBW|zR zuyg*q%y!;(;TNnla>%aJwX$c9@22!MB>BgNtQ1Y;vNoANDlSBlOx=117ntLB1Bai= zu+GKbKYBuRzv0aSE!(@$&Uy$q(W6NY`vIR>hafq;6SKDFxdEz@PZ7)6`rg}g=$Ttv zTT`&#lajPn-;5~wK}D5e^urdHV>m@U>xAg30ypC24K%;R?F!nDpJoBU6ksDazQmaP zkP2A3{-e;i+a*NxU%o%*RgPs+Y>Fi`Yi@Rbc8v6mpF zsipM?$~|E4Eh-jz?|uJEC8>T%DXC+(w&<7`)Zz(+5{@IO#>PfBQnDuLF(H=4W0!~Z zL!lvE_l=mmG6dMI_eTk4H=Wz&A3SH$z1iJp8yXe{Pv!1^bL;!+>)3wLu7vYRcPU~woi5TrH|@Ub{dL{{9VWPTs<$5j zzgpvAlBI?ny1YI-OW))ZNCBEj+2EM*Ml^{mPO|!8z5R^1GGnNxS#}wOUvr(n5!O;y zHyS`4_IO)Dw(tL@-^sUpmaSlJz)`(mRcI+wzd{ph%*D+OpQZE@=_qR3m#afx4=RKF zm!4u zJ{*SK?IYXwidiYsoqAid?~;dRS9sU!z#=e)6$QS1sV1$51`JndzGc36ZzK4y9rQA` z^?s3_os-A9H*<~sw*USQ$9~i1(mRf1ziHDMMOSecbzgceT%k>(9;$g)DA_Ms{3e>u zL|xs$b0onC5zO!Y0;Wb08<0a#Ijfb#HSVE=+}?Xu#jvpd-WLjoAl_L|pC$05>}N&K#13(Mp`Swr*l zO#Y8aHv)csK}tyC5CcL!kn&|vI!;e^eP1^EdaZkPtcs%lHFBJ8RIsI0ZUsH0EWv`W zf}a#hbVl0Fc|i21%GM3MzZ`xPNX7kXZ|{G4f(tc7sZ-esn8r_j?zh@1UG_(D6|Ml& zd*04SJ#K8h>K4m*EP66XKRSnFoV=822=gVDNv&lMg6mbTm z5zEUB323WN6UO$h+EH@SC^IK^JPDcRBo}~8Ly~kvOVuoxF0CZlKMTIdza50&%Jg}j zcikW~NRm$7@HpRRd`P)E^>_Z+cWRybin>^$_mo+6QI@1~9f0ohgXQg?JqJIx;-qVO zPUe2iPr<48x4leQ$<)f8YFzL--wFPg+r)5hJg4mY%}#f_J7xR#d3^FV9O?Sp(D79w zKkgmLuZ0zKOjQe7`fCRPbMOQsYrpxR68xa&A^$}ms|y}JKD=aypXcAS9--!0AgM`p zXDBxZM_*d!?PsC8GDS9^4n>;tFO;B~w`cN8f1x&U`itv`HpyQ}v}x74MN7y~Vh3#m zYzzcd)Lr9ApD`t7x^35vT`YjaK%yAkfTz^m0u}3NTMaGE^qs1hcyoPS6k`j%1F=PY7Lt9r=fYY1!Ph`CN6YcO5!A}*0~w=aAcKYI4}Wqu0&rwA6I zgOYT8A^xF@E&r^0QsR>D_bobh#&is6H8#$7C$8s0LKA-cJZvdyb?7_MS3;6&u@U=zQ69qQmRjbY-ZhSR~usvJ)v7Qo0h24$n%#@ z6CFt!i7+)P5D%G|jI8PJw>$}C=Pcb}XiI2Y?l--89k#nggq~by8@4h>w22urC!C&c zErs5$;%+jg{6fXT&~}>9oH;mnVu!kXuhrj5IMb*#Xg^zJE5fKZMp6gg(F)I;(t8UY;Se6Xo%^q>zduD^jBS zk=&dUWqhR5)j7J=&kp1l(trIo_3-2z<)WU(Q4m;AfHpQk zc0K%W$!GX_7E}PtVOaE+_A3;1@u%A^0(^pWcwfn1HBy-#`-%Qci(E@KmkA zAfuY|5~lIEy5!$YBxGE#)ymCSDhj7xI&TGsj4c*C!(6fTbNlI4A4dXa`p&z+Z{_Xo z;#oseLOD2}!DNF3kNHe*Sh6UT_S2^&u_mOKvx-xlO`ohO0iQ4CiljzdnFV_G7&1wZ zA)m~Oiz7B2(ZNJXwDghr1%yPPV$I?R!}Oz638A!-jT48r^{AKE7VDRz(3msR5ev3h zTZi{vSdARPp;vSC-Dlmn2B5u*#79y&Y2+ z&oKI?!Mg~5G*My@AXUuz{wJt8ezpnsIlR5p_auA&La6AGutMlgcG8ig&la0&^2-=N z427U+R9`%9F0B=t%h>@=qKWtcv)!@IGX zi|3#ZAm!v9nq_!=)?vF>YMW3?m0?p%(J*fOiqdj}Y7^t{TxG?WZEzYDAN*f54x0~C zPG9DvCRvqTYJ(%H>0mqKFxuj}!d1Z#I_b}YwHrOVcF-l?X1{&*s_LmV{7r+lkM9pX z^+(-Pn|cGvIA)RpBw`Y5YC>lfFP5HIh8%}Y*a;wm6WQrai>m~oGAtH#GbtV`hD@@?Jl2>4 z42P-K>B7E2{Kd%8sJsM?l8cL%E!Le3Z2&7l3!RoYbRJZW51ktK{#GMEfC6?q1}sU~B; znNrH6V9oO7ND3um95L!tILLH@RiLynP*yAkyZRgT+utF^_)tv-6FJhMY0Pr*1bWA; zSya_lzd-UL*fMdX>0ohnIjb>Tpu7~P&TPNP+-Dh*{9?)!xBfUkS6qpJf-o~WGkfsi-9Y$fVH?BIDgJ3%Z>M?Zmit}i zyU>UA`y(l3@wScp*<>I!GE^`Q6{CX1M2g6tJq{L+h}_pQvB8xEJKAOB4W89ma8EYc5}gsxA{W$Eu;yj?H=h`V~fE!Y8VV)D)1))Nb9o$aBc$G&#nc Date: Mon, 28 Mar 2016 22:26:04 +0100 Subject: [PATCH 12/25] Add A0, A1 etc to end of digital pin list (PART 1) Sometimes used as digital pins on UNO but best avoided --- .../com/ardublock/block/ardublock.properties | 18 ++++++++++++------ 1 file changed, 12 insertions(+), 6 deletions(-) diff --git a/src/main/resources/com/ardublock/block/ardublock.properties b/src/main/resources/com/ardublock/block/ardublock.properties index 711d9eba..d9911e57 100644 --- a/src/main/resources/com/ardublock/block/ardublock.properties +++ b/src/main/resources/com/ardublock/block/ardublock.properties @@ -431,12 +431,18 @@ bg.pinListDigital_D10=D10 bg.pinListDigital_D11=D11 bg.pinListDigital_D12=D12 bg.pinListDigital_D13=D13 -bg.pinListDigital_D14=D14 -bg.pinListDigital_D15=D15 -bg.pinListDigital_D16=D16 -bg.pinListDigital_D17=D17 -bg.pinListDigital_D18=D18 -bg.pinListDigital_D19=D19 +# +# +# +# +# +# +bg.pinListDigital_D14=D14 (Mega) +bg.pinListDigital_D15=D15 (Mega) +bg.pinListDigital_D16=D16 (Mega) +bg.pinListDigital_D17=D17 (Mega) +bg.pinListDigital_D18=D18 (Mega) +bg.pinListDigital_D19=D19 (Mega) # bg.pinListDigital_D20=D20 (Mega) bg.pinListDigital_D21=D21 (Mega) From 066e3ebc239501f0cb5a515a5a9f2af53fb69ecb Mon Sep 17 00:00:00 2001 From: TonyCallear Date: Mon, 28 Mar 2016 22:36:30 +0100 Subject: [PATCH 13/25] Add A0, A1, A2 etc to Digital pin list (Part 2) --- .../com/ardublock/block/ardublock.xml | 21 +++++++++++++++++-- 1 file changed, 19 insertions(+), 2 deletions(-) diff --git a/src/main/resources/com/ardublock/block/ardublock.xml b/src/main/resources/com/ardublock/block/ardublock.xml index ffcf1da1..5e207f73 100644 --- a/src/main/resources/com/ardublock/block/ardublock.xml +++ b/src/main/resources/com/ardublock/block/ardublock.xml @@ -674,6 +674,14 @@ + + + + + + + + @@ -705,7 +713,7 @@ - + @@ -11207,7 +11215,16 @@ pinListDigital_D50 pinListDigital_D51 pinListDigital_D52 - pinListDigital_D53 + pinListDigital_D53 + pinListDigital_D53 + + + pinListAnalog_A0 + pinListAnalog_A1 + pinListAnalog_A2 + pinListAnalog_A3 + pinListAnalog_A4 + pinListAnalog_A5 From 3da9865c6cc847b94da4495843862155881894c7 Mon Sep 17 00:00:00 2001 From: TonyCallear Date: Tue, 29 Mar 2016 10:16:07 +0100 Subject: [PATCH 14/25] Move blocks to sensible Draws Move Delay blocks back to Control draw - My fault! When that happened! remove df_servo and df_360_degree_rotation_motor from core "Pins" draw Comment warning "Invalid Drawer: trying to add a drawer that already exists: DFRobot" Move dht11 blocks into "Generic Hardware" Remove Ultra sonic from Draw "Pins". Already in "Generic Hardware" Moved blocks DDRA PORTA PORT_FIX PINA to DuinoEDU as you need that hardware to use them. Give correct pinList to Toggle Pin block. --- .../com/ardublock/block/ardublock.xml | 27 +++++++++---------- 1 file changed, 12 insertions(+), 15 deletions(-) diff --git a/src/main/resources/com/ardublock/block/ardublock.xml b/src/main/resources/com/ardublock/block/ardublock.xml index 5e207f73..5fbf401b 100644 --- a/src/main/resources/com/ardublock/block/ardublock.xml +++ b/src/main/resources/com/ardublock/block/ardublock.xml @@ -464,7 +464,7 @@ - + @@ -11725,6 +11725,9 @@ loop program + delay + delay_microseconds + millis if ifelse while @@ -11743,20 +11746,11 @@ pin-read-digital pin-read-analog pin-write-digital - pin-write-analog pin-toggle - df_servo - df_360_degree_rotation_motor - ultrasonic - df_dht11_temperature - df_dht11_humidity + pin-write-analog tone tone_time no_tone - DDRA - PORTA - PORT_FIX - PINA greater @@ -11824,11 +11818,10 @@ setter_variable_vector - delay - delay_microseconds - millis servo_default ultrasonic + df_dht11_temperature + df_dht11_humidity LCD_I2C_Sainsmart_20by4 LCD_command_lightOff LCD_PLL_Sainsmart_16by2 @@ -12013,6 +12006,10 @@ seeed_o2_sensor + DDRA + PORTA + PORT_FIX + PINA DuinoEDU_Led DuinoEDU_Servo_Plus DuinoEDU_Ultrasonic @@ -12237,7 +12234,7 @@ little_bits_vibration_motor little_bits_synthspeaker - + bluno_println bluno_println_number From df057dab29505a798816ddfbf1cb3f864048e47f Mon Sep 17 00:00:00 2001 From: TonyCallear Date: Tue, 29 Mar 2016 10:24:07 +0100 Subject: [PATCH 15/25] Find a quick way to experiment with UI --- src/main/resources/com/ardublock/block/ardublock.xml | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/src/main/resources/com/ardublock/block/ardublock.xml b/src/main/resources/com/ardublock/block/ardublock.xml index 5fbf401b..ab6decaf 100644 --- a/src/main/resources/com/ardublock/block/ardublock.xml +++ b/src/main/resources/com/ardublock/block/ardublock.xml @@ -11069,6 +11069,7 @@ + digital-high @@ -12316,6 +12317,11 @@ + + + + + From 37f4b627cc5d21ebf680c33db66ee8383d8b2e04 Mon Sep 17 00:00:00 2001 From: TonyCallear Date: Tue, 29 Mar 2016 11:04:17 +0100 Subject: [PATCH 16/25] Wrong way --- src/main/resources/com/ardublock/block/ardublock.xml | 3 --- 1 file changed, 3 deletions(-) diff --git a/src/main/resources/com/ardublock/block/ardublock.xml b/src/main/resources/com/ardublock/block/ardublock.xml index ab6decaf..aa7fa879 100644 --- a/src/main/resources/com/ardublock/block/ardublock.xml +++ b/src/main/resources/com/ardublock/block/ardublock.xml @@ -12320,9 +12320,6 @@ - - - From 84c71030ee60ac8b94eed5d8700be933081326c3 Mon Sep 17 00:00:00 2001 From: TonyCallear Date: Tue, 29 Mar 2016 12:22:03 +0100 Subject: [PATCH 17/25] Ooops! Put DDRA PORTA PORT_FIX PINA nack in "Pins" Draw --- src/main/resources/com/ardublock/block/ardublock.xml | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/src/main/resources/com/ardublock/block/ardublock.xml b/src/main/resources/com/ardublock/block/ardublock.xml index aa7fa879..9cb87874 100644 --- a/src/main/resources/com/ardublock/block/ardublock.xml +++ b/src/main/resources/com/ardublock/block/ardublock.xml @@ -11752,6 +11752,10 @@ tone tone_time no_tone + DDRA + PORTA + PORT_FIX + PINA greater @@ -12007,10 +12011,6 @@ seeed_o2_sensor - DDRA - PORTA - PORT_FIX - PINA DuinoEDU_Led DuinoEDU_Servo_Plus DuinoEDU_Ultrasonic From 0edce704f1112ebd146f1ba98628d3e3fdad6776 Mon Sep 17 00:00:00 2001 From: TonyCallear Date: Tue, 29 Mar 2016 14:11:16 +0100 Subject: [PATCH 18/25] Revert to old DigitalOutputBlock See issue #149 ??Comment?? asking about attempt to treat constants differently from variables --- .../translator/block/DigitalOutputBlock.java | 33 +++++++++++++------ 1 file changed, 23 insertions(+), 10 deletions(-) diff --git a/src/main/java/com/ardublock/translator/block/DigitalOutputBlock.java b/src/main/java/com/ardublock/translator/block/DigitalOutputBlock.java index fb7acd0b..00da9992 100644 --- a/src/main/java/com/ardublock/translator/block/DigitalOutputBlock.java +++ b/src/main/java/com/ardublock/translator/block/DigitalOutputBlock.java @@ -17,23 +17,36 @@ public DigitalOutputBlock(Long blockId, Translator translator, String codePrefix public String toCode() throws SocketNullException, SubroutineNotDeclaredException { TranslatorBlock translatorBlock = this.getRequiredTranslatorBlockAtSocket(0); - String portNum = translatorBlock.toCode(); - - + // Should it ever not use ARDUBLOCK_DIGITAL_WRITE_DEFINE? Cannot think why. + // What is special about NumberBlocks? + // Should check for "is a simple number" not "instanceof NumberBlock" now that pinLists constants exist if (translatorBlock instanceof NumberBlock) { - translator.addOutputPin(portNum.trim()); + String number = translatorBlock.toCode(); + String setupCode = "pinMode( " + number + " , OUTPUT);"; + translator.addSetupCommand(setupCode); + + String ret = "digitalWrite( "; + ret = ret + number; + ret = ret + " , "; + translatorBlock = this.getRequiredTranslatorBlockAtSocket(1); + ret = ret + translatorBlock.toCode(); + ret = ret + " );\n"; + return ret; } else { - String setupCode = "pinMode( " + portNum + " , OUTPUT);"; - translator.addSetupCommand(setupCode); + translator.addDefinitionCommand(ARDUBLOCK_DIGITAL_WRITE_DEFINE); + String ret = "__ardublockDigitalWrite("; + + ret = ret + translatorBlock.toCode(); + ret = ret + ", "; + translatorBlock = this.getRequiredTranslatorBlockAtSocket(1); + ret = ret + translatorBlock.toCode(); + ret = ret + ");\n"; + return ret; } - translatorBlock = this.getRequiredTranslatorBlockAtSocket(1); - String value = translatorBlock.toCode(); - String ret = "digitalWrite(" + portNum + " , " + value + ");\n"; - return ret; } } From 9733321f7ff11407b9f78ab9dd337a80d840db80 Mon Sep 17 00:00:00 2001 From: TonyCallear Date: Thu, 13 Apr 2017 00:13:14 +0100 Subject: [PATCH 19/25] just check out! --- lib/pde-orig.jar | Bin 0 -> 379762 bytes 1 file changed, 0 insertions(+), 0 deletions(-) create mode 100644 lib/pde-orig.jar diff --git a/lib/pde-orig.jar b/lib/pde-orig.jar new file mode 100644 index 0000000000000000000000000000000000000000..bb70b74266bd8839361301d520684695837568da GIT binary patch literal 379762 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

~st4AhjHUcm<74I^)#ffLiOYc2GxFxV zJ=!zzg{N#O8$_>s*NhZ0)aUm^AmVC^r3-zC&_#{emezoygKMmYwFvUH?R;aaPF$@k zbMLq81k-%UMiLKH1ru3MbFi;qrW?6*tQhr^tBdqCDEevYA}rz~0ifb}GYs7ynpyZ_ zWljs8i`60eRn%IHo*5~`#Br+cE$n+3NMi)D)$u~BESI=hCD;mPv-^;c@s9_NfO|q6 zp7U1uI5gs6F=o}u0@-eO?HVy!3VZYtx><0aVd6K1+WGSN%(wUv22W1OM)q?lp3ny< z8o^bmB1tBDbjF^(p1yEe1MGL7I^bXMcYwNZ0Ld`HtngQ%>B7I1aNs2Y5{mPrxxh}- z1UdDcLal>Uh*Q2`9NGRrBd}i^U0QEK)(uITBMCFIBg1!!z8GYReewTwBy0dYWGLjg zjh7w570Q|X*c`xnusfpn=YS@-exJko6A%aZmc^gS4V^G;pc%qy!M<>p1p$PZxc-9R zSGIrsH9F2P4-XGBVm~@&3JGrr}(Uxt0 zBN2*SjN_LP`qiOEP#6o05K9G1lWjEzqeC@doS+#r90C(4LcazA=&W&n#kLx0f`J`{ z&Q5L~;~Lx>x9+&dY8#_VvN29sGYLBt4q@zpjP9R@y^CDgX^5o78w;$acG|qguCMf! z6ZQds?w1@p@EvOk^g&=)$D0{vk`L2paSm+k_-eeocOg4&G{;gea;B2nJ zgl(d$rLfWy3YIibVXRlG#?s%%PNL|#BJ24mVZX7?hGh+b$RfB7Fh{G!jJf!S)p zET}31Yt65b!LwZ<>?(o6ExEoR6W%tK>z75~5xVCvw34vtf^72UKYtrSb6$EtGMk&V zFUtK5Hr?b)rpXunAou3=F#zowR?)b8)4U{kHVQx@XNVqzUI

m`F$=IBSo74|}!1 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 gk`jcs{r_9MwbgLJavd35 Date: Thu, 13 Apr 2017 20:03:23 +0100 Subject: [PATCH 20/25] Not needed --- lib/pde-orig.jar | Bin 379762 -> 0 bytes 1 file changed, 0 insertions(+), 0 deletions(-) delete mode 100644 lib/pde-orig.jar diff --git a/lib/pde-orig.jar b/lib/pde-orig.jar deleted file mode 100644 index bb70b74266bd8839361301d520684695837568da..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 379762 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

~st4AhjHUcm<74I^)#ffLiOYc2GxFxV zJ=!zzg{N#O8$_>s*NhZ0)aUm^AmVC^r3-zC&_#{emezoygKMmYwFvUH?R;aaPF$@k zbMLq81k-%UMiLKH1ru3MbFi;qrW?6*tQhr^tBdqCDEevYA}rz~0ifb}GYs7ynpyZ_ zWljs8i`60eRn%IHo*5~`#Br+cE$n+3NMi)D)$u~BESI=hCD;mPv-^;c@s9_NfO|q6 zp7U1uI5gs6F=o}u0@-eO?HVy!3VZYtx><0aVd6K1+WGSN%(wUv22W1OM)q?lp3ny< z8o^bmB1tBDbjF^(p1yEe1MGL7I^bXMcYwNZ0Ld`HtngQ%>B7I1aNs2Y5{mPrxxh}- z1UdDcLal>Uh*Q2`9NGRrBd}i^U0QEK)(uITBMCFIBg1!!z8GYReewTwBy0dYWGLjg zjh7w570Q|X*c`xnusfpn=YS@-exJko6A%aZmc^gS4V^G;pc%qy!M<>p1p$PZxc-9R zSGIrsH9F2P4-XGBVm~@&3JGrr}(Uxt0 zBN2*SjN_LP`qiOEP#6o05K9G1lWjEzqeC@doS+#r90C(4LcazA=&W&n#kLx0f`J`{ z&Q5L~;~Lx>x9+&dY8#_VvN29sGYLBt4q@zpjP9R@y^CDgX^5o78w;$acG|qguCMf! z6ZQds?w1@p@EvOk^g&=)$D0{vk`L2paSm+k_-eeocOg4&G{;gea;B2nJ zgl(d$rLfWy3YIibVXRlG#?s%%PNL|#BJ24mVZX7?hGh+b$RfB7Fh{G!jJf!S)p zET}31Yt65b!LwZ<>?(o6ExEoR6W%tK>z75~5xVCvw34vtf^72UKYtrSb6$EtGMk&V zFUtK5Hr?b)rpXunAou3=F#zowR?)b8)4U{kHVQx@XNVqzUI

m`F$=IBSo74|}!1 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 gk`jcs{r_9MwbgLJavd35 Date: Thu, 13 Apr 2017 21:34:46 +0100 Subject: [PATCH 21/25] Multiple Colours, typo corrections Prevent typing into pinList blocks Toggle that works when given variables and maths --- .../ardublock/translator/block/Toggle.java | 34 ++++++--- .../com/ardublock/block/ardublock.properties | 45 ++++++------ .../com/ardublock/block/ardublock.xml | 73 ++++++++++--------- .../ardublock/block/block-mapping.properties | 2 +- 4 files changed, 86 insertions(+), 68 deletions(-) diff --git a/src/main/java/com/ardublock/translator/block/Toggle.java b/src/main/java/com/ardublock/translator/block/Toggle.java index ad16b7c9..4938b36b 100644 --- a/src/main/java/com/ardublock/translator/block/Toggle.java +++ b/src/main/java/com/ardublock/translator/block/Toggle.java @@ -6,7 +6,7 @@ public class Toggle extends TranslatorBlock { - public static final String ARDUBLOCK_DIGITAL_WRITE_DEFINE = "void __ardublockDigitalWrite(int pinNumber, boolean status)\n{\npinMode(pinNumber, OUTPUT);\ndigitalWrite(pinNumber, status);\n}\n"; + public static final String ARDUBLOCK_DIGITAL_TOGGLE_DEFINE = "void __ardublockDigitalToggle(int pinNumber)\n{\npinMode(pinNumber, OUTPUT);\ndigitalWrite( pinNumber,!digitalRead( pinNumber));\n}\n\n"; public Toggle(Long blockId, Translator translator, String codePrefix, String codeSuffix, String label) { @@ -17,22 +17,36 @@ public Toggle(Long blockId, Translator translator, String codePrefix, String cod public String toCode() throws SocketNullException, SubroutineNotDeclaredException { TranslatorBlock translatorBlock = this.getRequiredTranslatorBlockAtSocket(0); - String portNum = translatorBlock.toCode(); - + // Should it ever not use ARDUBLOCK_DIGITAL_TOGGLE_DEFINE? Cannot think why. + // What is special about NumberBlocks? + // Should check for "is a simple number" not "instanceof NumberBlock" now that pinLists constants exist + // Not sure first part of 'if' should EVER run if (translatorBlock instanceof NumberBlock) { - translator.addOutputPin(portNum.trim()); + String number = translatorBlock.toCode(); + String setupCode = "pinMode( " + number + " , OUTPUT);"; + translator.addSetupCommand(setupCode); + + String ret = "digitalWrite( "; + ret = ret + number; + ret = ret + ", !digitalRead("; + ret = ret + number; + ret = ret + ") );"; + + return ret; } else { - String setupCode = "pinMode( " + portNum + " , OUTPUT);"; - translator.addSetupCommand(setupCode); + translator.addDefinitionCommand(ARDUBLOCK_DIGITAL_TOGGLE_DEFINE); + String ret = "__ardublockDigitalToggle("; + + ret = ret + translatorBlock.toCode(); + ret = ret + ");\n"; + return ret; } - String ret = "digitalWrite(" + portNum + " ,!digitalRead(" + portNum + "));\n"; - return ret; } - -} + +} \ No newline at end of file diff --git a/src/main/resources/com/ardublock/block/ardublock.properties b/src/main/resources/com/ardublock/block/ardublock.properties index d9911e57..20a992b7 100644 --- a/src/main/resources/com/ardublock/block/ardublock.properties +++ b/src/main/resources/com/ardublock/block/ardublock.properties @@ -26,7 +26,7 @@ bc.watchdog_enable=enable bc.eeprom_address=address bc.eeprom_data=data bc.ln=new line -bc.message=message2 +bc.message=message bc.print=print bc.line_number=line# bc.row_number=row# @@ -270,7 +270,7 @@ bg.map_common=map [0, 1023] to [0, 255] bg.toint=to tint bg.max=max bg.message=message -bg.millis=millis +bg.millis=Milliseconds bg.min=min bg.modulo=% bg.multiplication=x @@ -284,11 +284,11 @@ bg.number-single=1 bg.number-single-I2C-address=3F bg.number-single-fixed-parallel=Parallel bg.or=or -bg.pin-read-analog=analog pin +bg.pin-read-analog=analog input bg.pin-read-digital=digital pin bg.pin-read-digital-pullup=input pullup -bg.pin-write-analog=set analog pin -bg.pin-write-digital=set digital pin +bg.pin-write-analog=set analog output +bg.pin-write-digital=set digital output bg.pin-toggle=Toggle digital pin bg.pow=power bg.random=random @@ -609,22 +609,22 @@ bg.scoop_event_rising.description=event triggered when pin is rising bg.scoop_event_change.description=event triggered when pin is change bg.delay.description=Delay for "milliseconds" indicated.\nNOTE: 1000 millis = 1 second -bg.if.description=Execute the commands if the "test" is true -bg.ifelse.description=Execute the first set of commands if the "test" is true, otherwise it will do the second set of commands. -bg.while.description=Execute the commands as long as the "test" is true -bg.do_while.description=Execute the list of commands. Then, if 'test' is true, keep on repeating it until 'test' is 'false' +bg.if.description=Run the commands if the "test" is true +bg.ifelse.description=Run the first set of commands if the "test" is true, otherwise it will do the second set of commands. +bg.while.description=Run the commands as long as the "test" is true +bg.do_while.description=Run the list of commands. Then, if 'test' is true, keep on repeating it until 'test' is 'false' bg.repeat_times.description=Repeat a list of commands a number of times. bg.repeat.description=Repeat a list of commands a number of times. "variable" counts the repetitions. bg.break.description=break -bg.subroutine.description=A list of commands we can call by a single name. They will run only if 'called', see CONTROL menu. +bg.subroutine.description=A list of commands we can call by a single name.\nThey will run only if 'called', see CONTROL menu. bg.subroutine-ref.description=Run the list of commands in the subroutine called... bg.delay_microseconds.description=Delay for "microseconds" indicated. \nNOTE: 1000000 micros = 1 second bg.pin-read-analog.description=Read analog value from pin. Zero volts = 0. Five volts = 1023 bg.pin-read-digital.description=Read digital value (HIGH or LOW) from pin. -bg.pin-read-digital-pullup.description=Set pin to digital input. Pin will report HIGH if unconnected. +bg.pin-read-digital-pullup.description=Set pin to digital input\nPin will report HIGH if unconnected. bg.pin-write-digital.description=Set digital pin to HIGH or LOW bg.pin-toggle.description=toggle digital pin -bg.pin-write-analog.description=Write analog voltage to pin. 0 = Zero volts. 255 = five volts. +bg.pin-write-analog.description=Write analog voltage to pin. Eg \n 0 = Zero volts. 255 = five volts. bg.addition.description=Sum of two numbers bg.subtraction.description=Difference of two numbers bg.multiplication.description=Product of two numbers @@ -660,7 +660,7 @@ bg.string_equals.description=True if first string is to the second string bg.string_equalsIgnoreCase.description=True if first string is to the second string bg.string_toInt.description=True if a numeric string compared to the number it represents bg.string_compareTo.description=True if first string is to the second string -bg.millis.description=milliseconds since last power-up or reset. Note: Use a 'Large Integer' variable. +bg.millis.description=Returns milliseconds since last power-up or reset.\nNote: Use to set a 'Large Integer' variable. bg.true.description=Boolean True. bg.false.description=Boolean False. bg.digital-high.description=Pin HIGH @@ -668,10 +668,10 @@ bg.digital-low.description=Pin LOW bg.string_equal.description=True if two strings are equal bg.string_empty.description=True if string is empty bg.char.description=Character constant -bg.number.description=Standard integer constant. 32,768 to +32,767 -bg.number_long.description=Large integer constant. 0 to 4,294,967,295 +bg.number.description=Standard integer constant.\n32,768 to +32,767 +bg.number_long.description=Large integer constant.\n0 to 4,294,967,295 bg.number_double.description='Decimal' number constant. +/- 3.4028235E+38 -bg.variable_number.description=Standard integer variable. -32,768 to +32,767 +bg.variable_number.description=Standard integer variable.\n-32,768 to +32,767 bg.pinListDigital_D0.description=List of valid digital pin numbers on various Arduino boards bg.pinListDigital_D6.description=List of valid digital pin numbers on various Arduino boards bg.pinListDigital_D8.description=List of valid digital pin numbers on various Arduino boards @@ -684,12 +684,12 @@ bg.variable_number_unsigned_long.description=Large integer variable name bg.variable_number_double.description='Decimal' variable name bg.variable_digital.description=Digital variable bg.variable_string.description=string variable -bg.setter_variable_number.description=Set standard integer variable. -32,768 to +32,767 -bg.setter_variable_number_unsigned_long.description=Set large integer variable. 0 to 4,294,967,295 -bg.setter_variable_number_double.description=Set 'Decimal' variable. +/- 3.4028235E+38 -bg.setter_variable_digital.description=Set digital variable +bg.setter_variable_number.description=Set standard integer variable.\n-32,768 to +32,767 +bg.setter_variable_number_unsigned_long.description=Set large integer variable.\n0 to 4,294,967,295 +bg.setter_variable_number_double.description=Set 'Decimal' variable.\n +/- 3.4028235E+38 +bg.setter_variable_digital.description=Set digital variable.\nHIGH or LOW bg.variable_vector.description=Get the value of an array member -bg.create_variable_vector.description=Create an array of standard integers. -32,768 to +32,767 +bg.create_variable_vector.description=Create an array of standard integers.\n-32,768 to +32,767 bg.setter_variable_vector.description=Set the value of an array member bc.array=Name the array bg.setter_variable_char.description=Set a character variable @@ -733,7 +733,7 @@ bg.PINH.description=PINH bg.PINL.description=PINL bg.serial_write.description=Send message via Serial bg.serial_print.description=Send message via Serial port -bg.message.description=Text message +bg.message.description=Edit message text bg.glue_sn.description=Glue number to string bg.glue_sb.description=Glue boolean to string bg.glue_poly.description=Glue char to string @@ -741,6 +741,7 @@ bg.wire_write.description=Write data via I2C bg.wire_read.description=Read data from i2c bg.wire_isread.description=Is last read from I2C success? bg.eeprom_read.description=Read a byte (0-255) from EEPROM. Each byte consumes just one EEPROM address. Using consecutive addresses is OK +bg.eeprom_read.description=Read a byte (0-255) from EEPROM. Each byte consumes just one EEPROM address. Using consecutive addresses is OK bg.eeprom_write.description=Write a byte (0-255) to EEPROM. Each byte consumes just one EEPROM address. Using consecutive addresses is OK bg.eeprom_read_int.description=Read an int (+/- 32,767) from EEPROM. NOTE: DON'T read from consecutive addresses. Each number consumes 2 addresses in EEPROM bg.eeprom_write_int.description=Write an int (+/- 32,767) to EEPROM. NOTE: DON'T write to consecutive addresses. Each number consumes 2 addresses in EEPROM diff --git a/src/main/resources/com/ardublock/block/ardublock.xml b/src/main/resources/com/ardublock/block/ardublock.xml index 9cb87874..b1c4b48c 100644 --- a/src/main/resources/com/ardublock/block/ardublock.xml +++ b/src/main/resources/com/ardublock/block/ardublock.xml @@ -444,7 +444,7 @@ - + write analog to pin @@ -458,7 +458,7 @@ - + toggle digital pin @@ -889,79 +889,79 @@ - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + @@ -1864,7 +1864,7 @@ Time in milliseconds - + @@ -1879,7 +1879,7 @@ - + Digital Pin Constant @@ -1890,7 +1890,7 @@ - + Digital Pin Constant @@ -1901,7 +1901,7 @@ - + Digital Pin Constant @@ -1912,7 +1912,7 @@ - + Digital Pin Constant @@ -1922,7 +1922,7 @@ - + Digital Pin Constant @@ -1933,7 +1933,7 @@ - + Digital Pin Constant @@ -1943,7 +1943,7 @@ - + Analog Pin Constant @@ -1954,7 +1954,7 @@ - + PWM Pin Constant @@ -2251,7 +2251,7 @@ - + @@ -11752,10 +11752,9 @@ tone tone_time no_tone - DDRA - PORTA - PORT_FIX - PINA + pinListDigital_D0 + pinListAnalog_A0 + pinListAnalogWrite_D3 greater @@ -11834,10 +11833,6 @@ number-single-fixed-parallel - serial_available - serial_available2 - serial_read - serial_parseInt serial_write serial_print glue_sn @@ -11848,6 +11843,10 @@ wire_write wire_read wire_isread + serial_available + serial_available2 + serial_read + serial_parseInt DuinoEDU_Guino_Read DuinoEDU_Guino_Slider DuinoEDU_Guino_switch @@ -12011,6 +12010,10 @@ seeed_o2_sensor + DDRA + PORTA + PORT_FIX + PINA DuinoEDU_Led DuinoEDU_Servo_Plus DuinoEDU_Ultrasonic diff --git a/src/main/resources/com/ardublock/block/block-mapping.properties b/src/main/resources/com/ardublock/block/block-mapping.properties index 1924bd62..b08d994d 100644 --- a/src/main/resources/com/ardublock/block/block-mapping.properties +++ b/src/main/resources/com/ardublock/block/block-mapping.properties @@ -164,7 +164,7 @@ pinListAnalogWrite_D8=com.ardublock.translator.block.D8 pinListAnalogWrite_D12=com.ardublock.translator.block.D12 pinListAnalogWrite_D13=com.ardublock.translator.block.D13 pinListAnalogWrite_D44=com.ardublock.translator.block.D44 -pinListAnalogWrite_D44=com.ardublock.translator.block.D45 +pinListAnalogWrite_D45=com.ardublock.translator.block.D45 pinListAnalogWrite_D46=com.ardublock.translator.block.D46 pinListAnalog_A0=com.ardublock.translator.block.A0 From 706b868c5b8bb7ac5e4a5481f4383cd60f1a654c Mon Sep 17 00:00:00 2001 From: TonyCallear Date: Fri, 14 Apr 2017 14:21:57 +0100 Subject: [PATCH 22/25] Pin block corrections Stop treating numberblocks as a special case. See issue #153 InputPullup. Correct socket type so it can be used. Toggle that works with variables and maths denoting pin number. --- .../translator/block/AnalogInputBlock.java | 18 ++++++- .../translator/block/AnalogOutputBlock.java | 11 +---- .../translator/block/DigitalInputBlock.java | 40 +++++----------- .../block/DigitalInputPullBlock.java | 47 +++++++++---------- .../translator/block/DigitalOutputBlock.java | 34 +++++++------- .../ardublock/translator/block/Toggle.java | 34 +++++++------- .../translator/block/ToneTimeBlock.java | 5 ++ .../com/ardublock/block/ardublock.xml | 10 ++-- 8 files changed, 98 insertions(+), 101 deletions(-) diff --git a/src/main/java/com/ardublock/translator/block/AnalogInputBlock.java b/src/main/java/com/ardublock/translator/block/AnalogInputBlock.java index c0451d7a..973153a3 100644 --- a/src/main/java/com/ardublock/translator/block/AnalogInputBlock.java +++ b/src/main/java/com/ardublock/translator/block/AnalogInputBlock.java @@ -6,6 +6,20 @@ public class AnalogInputBlock extends TranslatorBlock { + public static final String ARDUBLOCK_ANALOG_READ_DEFINE = + /* If the pin was previously OUTPUT and is **quickly** analog read, the charge on the pin + * and the lack of "settling time" does affect the likely result of analogRead. + * Always introducing a delay to settle the pin is not done here as it is overwhelmingly + * unnecessary, too slow to do every time and complicated to detect if it is actually needed. + * If this needs to be done then implement https://github.com/arduino/Arduino/issues/4606 + * and change to INPUT with a 10ms delay to settle only if the pinMode must be changed. + * Hide the ability to make Analog pins OUTPUT at the end of any pinLists!!! */ + "int __ardublockAnalogRead(int pinNumber)\n" + + "{\n" + + "pinMode(pinNumber, INPUT);\n" + + "return analogRead(pinNumber);\n" + + "}\n\n"; + public AnalogInputBlock(Long blockId, Translator translator, String codePrefix, String codeSuffix, String label) { super(blockId, translator, codePrefix, codeSuffix, label); @@ -14,8 +28,10 @@ public AnalogInputBlock(Long blockId, Translator translator, String codePrefix, @Override public String toCode() throws SocketNullException, SubroutineNotDeclaredException { - String ret = "analogRead("; TranslatorBlock translatorBlock = this.getRequiredTranslatorBlockAtSocket(0); + translator.addDefinitionCommand(ARDUBLOCK_ANALOG_READ_DEFINE); + + String ret = "__ardublockAnalogRead("; ret = ret + translatorBlock.toCode(); ret = ret + ")"; return codePrefix + ret + codeSuffix; diff --git a/src/main/java/com/ardublock/translator/block/AnalogOutputBlock.java b/src/main/java/com/ardublock/translator/block/AnalogOutputBlock.java index 7d9c3136..6fdaf0b9 100644 --- a/src/main/java/com/ardublock/translator/block/AnalogOutputBlock.java +++ b/src/main/java/com/ardublock/translator/block/AnalogOutputBlock.java @@ -17,19 +17,10 @@ public String toCode() throws SocketNullException, SubroutineNotDeclaredExceptio TranslatorBlock translatorBlock = this.getRequiredTranslatorBlockAtSocket(0); String portNum = translatorBlock.toCode(); - - if (translatorBlock instanceof NumberBlock) - { - translator.addOutputPin(portNum.trim()); - } - else - { - String setupCode = "pinMode( " + portNum + " , OUTPUT);"; - translator.addSetupCommand(setupCode); - } translatorBlock = this.getRequiredTranslatorBlockAtSocket(1); String value = translatorBlock.toCode(); + /* NOTE: AnalogWrite never needs the pin to be set as an OUTPUT */ String ret = "analogWrite(" + portNum + " , " + value + ");\n"; return ret; } diff --git a/src/main/java/com/ardublock/translator/block/DigitalInputBlock.java b/src/main/java/com/ardublock/translator/block/DigitalInputBlock.java index 21f5ffc8..54afab49 100644 --- a/src/main/java/com/ardublock/translator/block/DigitalInputBlock.java +++ b/src/main/java/com/ardublock/translator/block/DigitalInputBlock.java @@ -6,7 +6,17 @@ public class DigitalInputBlock extends TranslatorBlock { - public static final String ARDUBLOCK_DIGITAL_READ_DEFINE = "boolean __ardublockDigitalRead(int pinNumber)\n{\npinMode(pinNumber, INPUT);\nreturn digitalRead(pinNumber);\n}\n\n"; + public static final String ARDUBLOCK_DIGITAL_READ_DEFINE = + /* The charge left on the pin if it was previously OUTPUT does affect + * the likely result of digitalRead **if the pin is floating**. + * I can find nothing to justify a need for a 'settling period' delay + * if the pin mode has been changed. + * and delay 5ms if the pinMode has changed */ + "boolean __ardublockDigitalRead(int pinNumber)\n" + + "{\n" + + "pinMode(pinNumber, INPUT);\n" + + "return digitalRead(pinNumber);\n" + + "}\n\n"; public DigitalInputBlock(Long blockId, Translator translator, String codePrefix, String codeSuffix, String label) { @@ -17,37 +27,13 @@ public DigitalInputBlock(Long blockId, Translator translator, String codePrefix, public String toCode() throws SocketNullException, SubroutineNotDeclaredException { TranslatorBlock translatorBlock = this.getRequiredTranslatorBlockAtSocket(0); - if (translatorBlock instanceof NumberBlock) - { - return generateCodeUsingNumberBlock(translatorBlock); - } - else - { - return generateCodeUsingNonNumberBlock(translatorBlock); - } - - } - - protected String generateCodeUsingNumberBlock(TranslatorBlock translatorBlock) throws SocketNullException, SubroutineNotDeclaredException - { - String number; - number = translatorBlock.toCode(); - translator.addInputPin(number.trim()); - - String ret = "digitalRead("; - ret = ret + number; - ret = ret + ")"; - return codePrefix + ret + codeSuffix; - } - - protected String generateCodeUsingNonNumberBlock(TranslatorBlock translatorBlock) throws SocketNullException, SubroutineNotDeclaredException - { + translator.addDefinitionCommand(ARDUBLOCK_DIGITAL_READ_DEFINE); String ret = "__ardublockDigitalRead("; ret = ret + translatorBlock.toCode(); ret = ret + ")"; return codePrefix + ret + codeSuffix; - } + } } diff --git a/src/main/java/com/ardublock/translator/block/DigitalInputPullBlock.java b/src/main/java/com/ardublock/translator/block/DigitalInputPullBlock.java index ff60719a..116b9970 100644 --- a/src/main/java/com/ardublock/translator/block/DigitalInputPullBlock.java +++ b/src/main/java/com/ardublock/translator/block/DigitalInputPullBlock.java @@ -4,38 +4,35 @@ import com.ardublock.translator.block.exception.SocketNullException; import com.ardublock.translator.block.exception.SubroutineNotDeclaredException; -public class DigitalInputPullBlock extends DigitalInputBlock +public class DigitalInputPullBlock extends TranslatorBlock { - public static final String ARDUBLOCK_DIGITAL_READ_INPUT_PULLUP_DEFINE = -"void __ardublockDigitalInputPullup(int pinNumber)\n" + -"{\n" + -"pinMode(pinNumber, INPUT);\n" + -"digitalWrite(pinNumber, HIGH);\n" + -"}\n" + -"\n"; + public static final String ARDUBLOCK_DIGITAL_READ_PULLUP_DEFINE = + /* The charge left on the pin if it was previously OUTPUT does not affect + * the likely result of digitalRead with PULLUP resistors. + * If this changes then implement https://github.com/arduino/Arduino/issues/4606 + * and delay 5ms if the pinMode has changed */ + "boolean __ardublockDigitalReadPullup(int pinNumber)\n" + + "{\n" + + "pinMode(pinNumber, INPUT_PULLUP);\n" + + "return digitalRead(pinNumber);\n" + + "}\n\n"; public DigitalInputPullBlock(Long blockId, Translator translator, String codePrefix, String codeSuffix, String label) { super(blockId, translator, codePrefix, codeSuffix, label); } - - @Override - protected String generateCodeUsingNumberBlock(TranslatorBlock translatorBlock) throws SocketNullException, SubroutineNotDeclaredException - { - String number; - number = translatorBlock.toCode(); - translator.addInputPin(number.trim()); - translator.addSetupCommand("digitalWrite(" + number + ", HIGH);"); - return "" ; - } - + @Override - protected String generateCodeUsingNonNumberBlock(TranslatorBlock translatorBlock) throws SocketNullException, SubroutineNotDeclaredException + public String toCode() throws SocketNullException, SubroutineNotDeclaredException { - translator.addDefinitionCommand(ARDUBLOCK_DIGITAL_READ_INPUT_PULLUP_DEFINE); - translator.addSetupCommand("__ardublockDigitalInputPullup(" + translatorBlock.toCode() + ");"); - return ""; - } + TranslatorBlock translatorBlock = this.getRequiredTranslatorBlockAtSocket(0); + + translator.addDefinitionCommand(ARDUBLOCK_DIGITAL_READ_PULLUP_DEFINE); + String ret = "__ardublockDigitalReadPullup("; + + ret = ret + translatorBlock.toCode(); + ret = ret + ")"; + return codePrefix + ret + codeSuffix; + } - } diff --git a/src/main/java/com/ardublock/translator/block/DigitalOutputBlock.java b/src/main/java/com/ardublock/translator/block/DigitalOutputBlock.java index 00da9992..77e1055b 100644 --- a/src/main/java/com/ardublock/translator/block/DigitalOutputBlock.java +++ b/src/main/java/com/ardublock/translator/block/DigitalOutputBlock.java @@ -20,22 +20,22 @@ public String toCode() throws SocketNullException, SubroutineNotDeclaredExceptio // Should it ever not use ARDUBLOCK_DIGITAL_WRITE_DEFINE? Cannot think why. // What is special about NumberBlocks? // Should check for "is a simple number" not "instanceof NumberBlock" now that pinLists constants exist - if (translatorBlock instanceof NumberBlock) - { - String number = translatorBlock.toCode(); - String setupCode = "pinMode( " + number + " , OUTPUT);"; - translator.addSetupCommand(setupCode); - - String ret = "digitalWrite( "; - ret = ret + number; - ret = ret + " , "; - translatorBlock = this.getRequiredTranslatorBlockAtSocket(1); - ret = ret + translatorBlock.toCode(); - ret = ret + " );\n"; - return ret; - } - else - { +// if (translatorBlock instanceof NumberBlock) +// { +// String number = translatorBlock.toCode(); +// String setupCode = "pinMode( " + number + " , OUTPUT);"; +// translator.addSetupCommand(setupCode); +// +// String ret = "digitalWrite( "; +// ret = ret + number; +// ret = ret + " , "; +// translatorBlock = this.getRequiredTranslatorBlockAtSocket(1); +// ret = ret + translatorBlock.toCode(); +// ret = ret + " );\n"; +// return ret; +// } +// else +// { translator.addDefinitionCommand(ARDUBLOCK_DIGITAL_WRITE_DEFINE); String ret = "__ardublockDigitalWrite("; @@ -45,7 +45,7 @@ public String toCode() throws SocketNullException, SubroutineNotDeclaredExceptio ret = ret + translatorBlock.toCode(); ret = ret + ");\n"; return ret; - } +// } } diff --git a/src/main/java/com/ardublock/translator/block/Toggle.java b/src/main/java/com/ardublock/translator/block/Toggle.java index 4938b36b..d8fe6830 100644 --- a/src/main/java/com/ardublock/translator/block/Toggle.java +++ b/src/main/java/com/ardublock/translator/block/Toggle.java @@ -22,29 +22,29 @@ public String toCode() throws SocketNullException, SubroutineNotDeclaredExceptio // What is special about NumberBlocks? // Should check for "is a simple number" not "instanceof NumberBlock" now that pinLists constants exist // Not sure first part of 'if' should EVER run - if (translatorBlock instanceof NumberBlock) - { - String number = translatorBlock.toCode(); - String setupCode = "pinMode( " + number + " , OUTPUT);"; - translator.addSetupCommand(setupCode); - - String ret = "digitalWrite( "; - ret = ret + number; - ret = ret + ", !digitalRead("; - ret = ret + number; - ret = ret + ") );"; - - return ret; - } - else - { +// if (translatorBlock instanceof NumberBlock) +// { +// String number = translatorBlock.toCode(); +// String setupCode = "pinMode( " + number + " , OUTPUT);"; +// translator.addSetupCommand(setupCode); +// +// String ret = "digitalWrite( "; +// ret = ret + number; +// ret = ret + ", !digitalRead("; +// ret = ret + number; +// ret = ret + ") );"; +// +// return ret; +// } +// else +// { translator.addDefinitionCommand(ARDUBLOCK_DIGITAL_TOGGLE_DEFINE); String ret = "__ardublockDigitalToggle("; ret = ret + translatorBlock.toCode(); ret = ret + ");\n"; return ret; - } +// } } diff --git a/src/main/java/com/ardublock/translator/block/ToneTimeBlock.java b/src/main/java/com/ardublock/translator/block/ToneTimeBlock.java index 94d1f156..3a8cb6a6 100644 --- a/src/main/java/com/ardublock/translator/block/ToneTimeBlock.java +++ b/src/main/java/com/ardublock/translator/block/ToneTimeBlock.java @@ -17,6 +17,11 @@ public String toCode() throws SocketNullException , SubroutineNotDeclaredExcepti TranslatorBlock pinBlock = this.getRequiredTranslatorBlockAtSocket(0); TranslatorBlock freqBlock = this.getRequiredTranslatorBlockAtSocket(1); TranslatorBlock timeBlock = this.getRequiredTranslatorBlockAtSocket(2); + /* NOTE: Tone() is non-blocking but beginners assume that it is. + * Playing multiple notes involves extra code to wait + * for each note to finish before playing the next. + * This wait is not always what is wanted and Delay() would cause massive problems with SCoop. + * Should we automate this - perhaps in s different block - Note ?*/ String ret = "tone(" + pinBlock.toCode() + ", " + freqBlock.toCode() + ", " + timeBlock.toCode() + ");\n"; return ret; } diff --git a/src/main/resources/com/ardublock/block/ardublock.xml b/src/main/resources/com/ardublock/block/ardublock.xml index b1c4b48c..b18a089b 100644 --- a/src/main/resources/com/ardublock/block/ardublock.xml +++ b/src/main/resources/com/ardublock/block/ardublock.xml @@ -416,6 +416,7 @@ + @@ -444,7 +445,7 @@ - + write analog to pin @@ -458,7 +459,7 @@ - + toggle digital pin @@ -11744,10 +11745,11 @@ ref_var - pin-read-digital - pin-read-analog pin-write-digital pin-toggle + pin-read-digital + pin-read-digital-pullup + pin-read-analog pin-write-analog tone tone_time From 54f864d02a04267d7a107d1d448e589d3fb30156 Mon Sep 17 00:00:00 2001 From: TonyCallear Date: Fri, 14 Apr 2017 14:40:59 +0100 Subject: [PATCH 23/25] Corrrect input_pullup sockets - again --- .../com/ardublock/block/ardublock.xml | 20 +++++++++---------- 1 file changed, 10 insertions(+), 10 deletions(-) diff --git a/src/main/resources/com/ardublock/block/ardublock.xml b/src/main/resources/com/ardublock/block/ardublock.xml index b18a089b..d188afd8 100644 --- a/src/main/resources/com/ardublock/block/ardublock.xml +++ b/src/main/resources/com/ardublock/block/ardublock.xml @@ -408,7 +408,7 @@ - + Read digital from the pin. Default High @@ -416,7 +416,7 @@ - + @@ -12241,14 +12241,14 @@ little_bits_synthspeaker - - bluno_println - bluno_println_number - bluno_println_clear - df_romeo_motors - df_romeo_motor - df_romeo_motor_stop - + + + + + + + + ke-motor-run From 66ed4b333bc1d209ff3546021acf070a9005ed7d Mon Sep 17 00:00:00 2001 From: TonyCallear Date: Fri, 14 Apr 2017 21:07:37 +0100 Subject: [PATCH 24/25] Don't add D53 twice. --- src/main/resources/com/ardublock/block/ardublock.xml | 1 - 1 file changed, 1 deletion(-) diff --git a/src/main/resources/com/ardublock/block/ardublock.xml b/src/main/resources/com/ardublock/block/ardublock.xml index d188afd8..f965ef5d 100644 --- a/src/main/resources/com/ardublock/block/ardublock.xml +++ b/src/main/resources/com/ardublock/block/ardublock.xml @@ -11218,7 +11218,6 @@ pinListDigital_D51 pinListDigital_D52 pinListDigital_D53 - pinListDigital_D53 pinListAnalog_A0 From ef028ebcc73a8fad132d64895103f5093cb337c9 Mon Sep 17 00:00:00 2001 From: TonyCallear Date: Fri, 14 Apr 2017 22:35:35 +0100 Subject: [PATCH 25/25] Some attempt to make different visual 'Skins' easier Because I really don't like the default layout / Look and feel. My prefered look will generally be in Skin/slim. Copy the files out of Skin/xxx up to the 'block' folder and clean/ re-compile. --- .../Skins/Highclare/ardublock.properties | 1487 ++ .../block/Skins/Highclare/ardublock.xml | 9743 ++++++++++++ .../Skins/Highclare/block-mapping.properties | 713 + .../Skins/all-master/ardublock.properties | 1853 +++ .../block/Skins/all-master/ardublock.xml | 12336 ++++++++++++++++ .../Skins/all-master/block-mapping.properties | 940 ++ .../block/Skins/slim/ardublock.properties | 1487 ++ .../ardublock/block/Skins/slim/ardublock.xml | 9742 ++++++++++++ .../block/Skins/slim/block-mapping.properties | 713 + 9 files changed, 39014 insertions(+) create mode 100644 src/main/resources/com/ardublock/block/Skins/Highclare/ardublock.properties create mode 100644 src/main/resources/com/ardublock/block/Skins/Highclare/ardublock.xml create mode 100644 src/main/resources/com/ardublock/block/Skins/Highclare/block-mapping.properties create mode 100644 src/main/resources/com/ardublock/block/Skins/all-master/ardublock.properties create mode 100644 src/main/resources/com/ardublock/block/Skins/all-master/ardublock.xml create mode 100644 src/main/resources/com/ardublock/block/Skins/all-master/block-mapping.properties create mode 100644 src/main/resources/com/ardublock/block/Skins/slim/ardublock.properties create mode 100644 src/main/resources/com/ardublock/block/Skins/slim/ardublock.xml create mode 100644 src/main/resources/com/ardublock/block/Skins/slim/block-mapping.properties diff --git a/src/main/resources/com/ardublock/block/Skins/Highclare/ardublock.properties b/src/main/resources/com/ardublock/block/Skins/Highclare/ardublock.properties new file mode 100644 index 00000000..a675645b --- /dev/null +++ b/src/main/resources/com/ardublock/block/Skins/Highclare/ardublock.properties @@ -0,0 +1,1487 @@ +bc.start=start +bg.repeat_control=repeat between +bg.repeat_control.description=Repeat the commands with "variable" ranging between "start" and "stop" values. "variable" changes by "steps of" after each repetition +bc.end=stop +bc.increment=steps of +bg.constrain=constrain +bc.low=lower +bc.high=higher +bg.sd_write2=write to SD +bg.sd_write=SD flash write +bg.sd_write_number=SD write number +bg.sd_write_number_int=SD write number Int +bg.sd_return=Return +bg.sd_no_return=No return +bg.eeprom_read=read 'byte' EEPROM +bg.eeprom_write=write 'byte' EEPROM +bg.eeprom_read_int=read number from EEPROM +bg.eeprom_write_int=write number to EEPROM +bg.eeprom_read_long=read 'long' from EEPROM +bg.eeprom_write_long=write 'long' to EEPROM +bd.storage=Storage +bc.device_address=device address +bc.device_address_I2C=address 0x +bc.register_address=register address +bc.watchdog_enable=enable +bc.eeprom_address=address +bc.eeprom_data=data +bc.ln=new line +bc.message=message2 +bc.print=print +bc.line_number=line# +bc.character_number=char# + + +bg.variable_poly=char variable name +bg.setter_variable_char=set char variable +bg.char=A +bd.chars= Chars Test +bg.not_equal_poly= != +bg.equal_string= == +bg.not_equal_string= != +bg.equal_poly= == +bg.glue_poly=glue +bg.serial_read_poly=serial read +bg.serial_available=serial data available +bg.program=MAIN TASK +bc.setup=setup +bc.loop=loop +bg.setup=setup +bc.par=input +bc.vecsize=size +bc.num=# +bg.variable_fake=fake +bg.fake=fake +bg.variable_vector=array variable name +bc.position=position +bg.create_variable_vector=create an array +bg.setter_variable_vector=set an array member +bg.string_greater= > +bg.string_less= < +bg.string_equal= == +bg.string_greater_equal= >= +bg.string_less_equal= <= +bg.string_not_equal= != +bg.string_equals= equals +bg.string_equalsIgnoreCase=equalsIgnoreCase +bg.string_toInt=toInt +bg.string_compareTo=compareTo + +bg.code_head=add code on Head +bg.code_setup=add code on Setup +bg.setter_variable_String=set String variable +bg.setter_variable_String.description=set String variable +bg.variable_String=String variable +bg.variable_String.description=String variable +bg.code_loop=add code on Loop +bg.serial_read=serial read +bd.especial=Especial +bg.equal_digital=== +bg.not_equal_digital=!= +bg.repeat=repeat +bg.break=break +bc.var=iteration variable name +bg.glue_msg=glue + +# BlockDrawer name +bc.angle=angle +bc.base=base +bc.condition=test +bc.else=else +bc.exponent=exponent +bc.from=from +bc.level=level +bc.max=max +bc.min=min +bc.microseconds=microseconds +bc.milliseconds=milliseconds + +# BlockConnector label +bc.pin_number=pin# +bc.status=status +bc.test=test +bc.then=commands +bc.to=to +bc.value=value +bc.variable=variable +bc.frequency=frequency +bc.do=do +bc.device_address=device address +bc.register_address=register address +bc.watchdog_enable=Enable +bc.eeprom_address=address +bc.eeprom_data=data +bc.motor_channel=motor channel +bc.motor_speed=motor speed + +bc.scoop_event_flag=Event + +bd.control=Control +bd.scoop=Tasks +bd.dfrobot=DFRobot +bd.number=Variables/Constants +bd.operators=Math Operators +bd.pins=Pins +bd.seeedstudio=Seeed Studio Grove + +bd.communication=Communication +bd.storage=Storage + +#linksprite +bd.linksprite_LinkerKit=Linker Kit + +bd.tinkerkit=TinkerKit +bd.utilities=Generic Hardware +# BlockGenus initlabel +bg.df_lcd_keypad=DFRobot LCD Keypad +bg.Tinker_Accmeter=Accelerometer +bg.Tinker_Button=Button +bg.Tinker_Hall=Hall +bg.Tinker_I0=I0 +bg.Tinker_I1=I1 +bg.Tinker_I2=I2 +bg.Tinker_I3=I3 +bg.Tinker_I4=I4 +bg.Tinker_I5=I5 +bg.Tinker_LDR=LDR +bg.Tinker_LED=LED +bg.Tinker_LED_pwm=LED +bg.Tinker_LinearPotentiometer=LinearPotentiometer +bg.Tinker_Mosfet=Mosfet +bg.Tinker_Mosfet_pwm=Mosfet +bg.Tinker_O0=O0 +bg.Tinker_O1=O1 +bg.Tinker_O2=O2 +bg.Tinker_O3=O3 +bg.Tinker_O4=O4 +bg.Tinker_O5=O5 +bg.Tinker_Relay=Relay +bg.Tinker_RotaryPotentiometer=RotaryPotentiometer +bg.Tinker_Servo=Servo +bg.Tinker_Thermistor=Thermistor +bg.Tinker_Tilt=Tilt +bg.Tinker_Touch=Touch +bg.abs=abs +bg.addition=+ +bg.and=and +bg.cos=cos + +bg.scoop_task=Multi Task +bg.scoop_loop=Multi Task +bg.scoop_sleep=Sleep Multi Task +bg.scoop_pin_event=Pin Event +bg.scoop_event_low=Event: LOW +bg.scoop_event_high=Event: HIGH +bg.scoop_event_falling=Event: FALLING +bg.scoop_event_rising=Event: RISING +bg.scoop_event_change=Event: CHANGE + +bg.delay=Sleep ALL Tasks +bg.delay_microseconds=Sleep ALL Tasks + +bg.df_360_degree_rotation_motor=360 degree rotation motor +bg.df_adjustable_infrared_sensor_switch=Adjustable Infrared Sensor Switch +bg.df_analog_ambient_light_sensor=Analog Ambient Light Sensor +bg.df_analog_gas_sensor=Analog Gas Sensor +bg.df_analog_grayscale_sensor=Analog Grayscale Senor +bg.df_analog_rotation_sensor_v1=Analog Rotation Sensor V1 +bg.df_analog_rotation_sensor_v2=Analog Rotation Sensor V2 +bg.df_analog_sound_sensor=Analog Sound Sensor +bg.df_analog_volume_sensor=Analog Sound Volume Sensor +bg.df_capacitive_touch_sensor=Capacitive Touch Sensor +bg.df_digital_infrared_motion_sensor=Digital Infrared Motion Sensor +bg.df_digital_ir_receiver_module=Digital IR Receiver Module +bg.df_digital_push_button=Digital Push Button +bg.df_digital_viberation_sensor=Digital Vibration Sensor +bg.df_flame_sensor=Flame Sensor +bg.df_joystick_module_button=JoyStick Module Button +bg.df_joystick_module_x=Joystick Module (Axis-X) +bg.df_joystick_module_y=Joystick Module (Axis-Y) +bg.df_led=LED Module +bg.df_led_pwm=LED with brightness +bg.df_line_tracking_sensor=Line Tracking Sensor +bg.df_mma7260_x=Triple Axis Accelerometer MMA7260 (Axis-X) +bg.df_mma7260_y=Triple Axis Accelerometer MMA7260 (Axis-Y) +bg.df_mma7260_z=Triple Axis Accelerometer MMA7260 (Axis-Z) +bg.df_piranha_led=piranha LED Module +bg.df_piranha_led_pwm=piranha LED with brightness +bg.df_pizeo_disk_vibration_sensor=Piezo Disk Vibration Sensor +bg.df_relay=Relay +bg.df_servo=Servo +bg.df_dht11_humidity=Dht11 Humidity +bg.df_dht11_temperature=Dht11 Temperature +bg.df_temperature_sensor=Temperature Sensor +bg.df_romeo_motors=Romeo motors +bg.df_romeo_motor=Romeo motor +bg.df_romeo_motor_stop=Romeo stop motors +bg.df_buzzer=Buzzer +bg.df_buzzer_tone=Buzzer +bg.df_buzzer_tone_delay=Buzzer + +bg.df_digital_tilt_sensor=Digital Tilt Sensor +bg.df_digital_magnetic_sensor=Digital Magnetic Sensor +bg.df_analog_co_sensor=Analog Carbon Monoxide Sensor +bg.df_analog_voltage_divider=Analog Voltage Divider +bg.df_analog_mma7361_x=X-Asix of Accelerometer +bg.df_analog_mma7361_y=Y-Asix of Accelerometer +bg.df_analog_mma7361_z=Z-Asix of Accelerometer +bg.df_analog_gp2y0a21=Sharp GP2Y0A21 Distance Sensor +bg.df_analog_moisture=Soil Moisture Sensor +bg.df_lcd_keypad=LCD Keypad + +bg.digital-high=HIGH +bg.digital-low=LOW +bg.digital-off=OFF +bg.digital-on=ON +bg.division=\u00f7 +bg.equal=== +bg.false=FALSE +bg.glue_sb=glue +bg.glue_sn=glue +bg.dummy=dummy +bg.greater=> +bg.greater_equal=>= +bg.if=if +bg.ifelse=if/else +bg.less=< +bg.less_equal=<= +bg.loop=MAIN TASK +bg.subroutine=subroutine +bg.subroutine-ref=subroutine +bg.map=map +bg.map_common=map [0, 1023] to [0, 255] +bg.max=max +bg.message=message +bg.millis=millis +bg.min=min +bg.modulo=% +bg.multiplication=x +bg.not=not +bg.not_equal=!= +bg.char=A +bg.number=1 +bg.number_long=1000000 +bg.number_double=3.1415927 +bg.number-single=1 +bg.number-single-I2C-address=3F +bg.number-single-fixed-parallel=Parallel +bg.or=or +bg.pin-read-analog=analog pin +bg.pin-read-digital=digital pin +bg.pin-read-digital-pullup=input pullup +bg.pin-write-analog=set analog pin +bg.pin-write-digital=set digital pin +bg.pow=power +bg.random=random +bg.repeat_times=repeat +bg.seeed_joystick=Grove Thumb Joystick +bg.seeed_joystick_button=Grove Thumb Joystick Button +bg.watchdog_15ms=WDTO_15MS +bg.watchdog_30ms=WDTO_30MS +bg.watchdog_60ms=WDTO_60MS +bg.watchdog_120ms=WDTO_120MS +bg.watchdog_250ms=WDTO_250MS +bg.watchdog_500ms=WDTO_500MS +bg.watchdog_1s=WDTO_1S +bg.watchdog_2s=WDTO_2S +bg.watchdog_4s=WDTO_4S +bg.watchdog_8s=WDTO_8S +bg.watchdog_setup=Watchdog +bg.watchdog_reset=Watchdog Reset +bg.sd_write=SD flash write +bg.sd_write_number=SD write number +bg.sd_write_number_int=SD write number Int +bg.sd_return=Return +bg.sd_no_return=No return +bg.eeprom_read=read byte from EEPROM +bg.eeprom_write=write byte to EEPROM +bg.random_range=random + + +#linksprite +bg.ls_10mmLEDModule=10mm Blue/Green/Yellow/Red LED Module +bg.ls_5mmLEDModule=5mm Blue/Green/Yellow/Red LED Module +bg.ls_AccelerometerModule_x=Accelerometer Module (x-Achse) +bg.ls_AccelerometerModule_y=Accelerometer Module (y-Achse) +bg.ls_AccelerometerModule_z=Accelerometer Module (z-Achse) +bg.ls_ButtonModule=Button Module +bg.ls_BuzzerModule=Buzzer Module +bg.ls_HallSensor=Hall Sensor +bg.ls_HighPowerLedModule=High Power Led Module +bg.ls_JoystickSensorModule_x=Joystick Sensor Module (x-Achse) +bg.ls_JoystickSensorModule_y=Joystick Sensor Module (y-Achse) +bg.ls_LDRModule=LDR Module +bg.ls_LEDBar=LED Bar +bg.ls_Linear-SlidePotentiometerModule=Linear/Slide Potentiometer Module +bg.ls_MagneticSwitch=Magnetic Switch +bg.ls_MosfetModule=Mosfet Module +bg.ls_RelayModule=Relay Module +bg.ls_RotaryPotentiometerModule=Rotary Potentiometer Module +bg.ls_RTCModule=RTC Module +bg.ls_SoundSensor=Sound Sensor +bg.ls_ThermalModule=Thermal Module +bg.ls_TiltModule=Tilt Module +bg.ls_TouchSensorModule=TouchSensor Module + +bg.serial_println=serial println +bg.ir_setport=set IR port +bg.ir_getcode=get IR code +bg.bluno_println=bluno println +bg.bluno_println_number=bluno println +bg.bluno_println_clear=bluno clear +bg.serial_print=serial print +bg.serial_read=serial read +bg.equal_digital=== +bg.not_equal_digital=!= +bg.repeat=repeat and count +bg.glue_msg=glue message +bg.servo=Servo +bg.servo_prefix=Servo : +bg.servo_default=Servo : Default +bg.servo_sg90=Servo : SG90 +bg.servo_mg996r=Servo : MG996R +bg.setter_variable_digital=set digital variable +bg.setter_variable_number=set integer variable +bg.setter_variable_number_unsigned_long=set large integer variable +bg.setter_variable_number_double=set decimal number variable +bg.sin=sin +bg.sqrt=sqrt +bg.subtraction=- +bg.tan=tan +bg.true=TRUE +bg.string_equal=equals +bg.string_empty=is empty + +bg.ultrasonic=ultrasonic +bg.LCD_I2C_Sainsmart_20by4=20by4 I2C Sainsmart +bg.LCD_I2C_Sainsmart_16by2=16by2 I2C Sainsmart +bg.LCD_PLL_Sainsmart_16by2=16by2 PLL Sainsmart +bg.LCD_command_clear=CLEAR +bg.LCD_command_home=HOME +bg.LCD_command_lightOn=Light On +bg.LCD_command_lightOff=Light Off +bg.LCD_command_cursorOn= Cursor On +bg.LCD_command_cursorOff=Cursor Off +bg.LCD_command_blinkOn= Blink On +bg.LCD_command_blinkOff=Blink Off +bg.variable_digital=digital variable name +bg.variable_number=integer variable name +bg.variable_number_unsigned_long=Large integer variable name +bg.variable_number_double='Decimal' variable name +bg.variable_string=string name +bg.while=while +bg.do_while=do while +bg.wire_isread=read I2C ok? +bg.wire_read=read from I2C +bg.wire_write=write to I2C +bg.wire_write_one_byte=I2C write 1 +bg.tone=tone +bg.tone_time=tone +bg.no_tone=no tone + +# +bg.pinListAnalog_A0=A0 +bg.pinListAnalog_A1=A1 +bg.pinListAnalog_A2=A2 +bg.pinListAnalog_A3=A3 +bg.pinListAnalog_A4=A4 +bg.pinListAnalog_A5=A5 +# +bg.pinListAnalog_A6=A6 (Mega/Nano) +bg.pinListAnalog_A7=A7 (Mega/Nano) +bg.pinListAnalog_A8=A8 (Mega) +bg.pinListAnalog_A9=A9 (Mega) +bg.pinListAnalog_A10=A10 (Mega) +bg.pinListAnalog_A11=A11 (Mega) +bg.pinListAnalog_A12=A12 (Mega) +bg.pinListAnalog_A13=A13 (Mega) +bg.pinListAnalog_A14=A14 (Mega) +bg.pinListAnalog_A15=A15 (Mega) + +bg.pinListDigital_D0=D0 +bg.pinListDigital_D1=D1 +bg.pinListDigital_D2=D2 +bg.pinListDigital_D3=D3 +bg.pinListDigital_D4=D4 +bg.pinListDigital_D5=D5 +bg.pinListDigital_D6=D6 +bg.pinListDigital_D7=D7 +bg.pinListDigital_D8=D8 +bg.pinListDigital_D9=D9 +bg.pinListDigital_D10=D10 +bg.pinListDigital_D11=D11 +bg.pinListDigital_D12=D12 +bg.pinListDigital_D13=D13 +# +# +# +# +# +# +bg.pinListDigital_D14=D14 (Mega) +bg.pinListDigital_D15=D15 (Mega) +bg.pinListDigital_D16=D16 (Mega) +bg.pinListDigital_D17=D17 (Mega) +bg.pinListDigital_D18=D18 (Mega) +bg.pinListDigital_D19=D19 (Mega) +# +bg.pinListDigital_D20=D20 (Mega) +bg.pinListDigital_D21=D21 (Mega) +bg.pinListDigital_D22=D22 (Mega) +bg.pinListDigital_D23=D23 (Mega) +bg.pinListDigital_D24=D24 (Mega) +bg.pinListDigital_D25=D25 (Mega) +bg.pinListDigital_D26=D26 (Mega) +bg.pinListDigital_D27=D27 (Mega) +bg.pinListDigital_D28=D28 (Mega) +bg.pinListDigital_D29=D29 (Mega) +bg.pinListDigital_D30=D30 (Mega) +bg.pinListDigital_D31=D31 (Mega) +bg.pinListDigital_D32=D32 (Mega) +bg.pinListDigital_D33=D33 (Mega) +bg.pinListDigital_D34=D34 (Mega) +bg.pinListDigital_D35=D35 (Mega) +bg.pinListDigital_D36=D36 (Mega) +bg.pinListDigital_D37=D37 (Mega) +bg.pinListDigital_D38=D38 (Mega) +bg.pinListDigital_D39=D39 (Mega) +bg.pinListDigital_D40=D40 (Mega) +bg.pinListDigital_D41=D41 (Mega) +bg.pinListDigital_D42=D42 (Mega) +bg.pinListDigital_D43=D43 (Mega) +bg.pinListDigital_D44=D44 (Mega) +bg.pinListDigital_D45=D45 (Mega) +bg.pinListDigital_D46=D46 (Mega) +bg.pinListDigital_D47=D47 (Mega) +bg.pinListDigital_D48=D48 (Mega) +bg.pinListDigital_D49=D49 (Mega) +bg.pinListDigital_D50=D50 (Mega) +bg.pinListDigital_D51=D51 (Mega) +bg.pinListDigital_D52=D52 (Mega) +bg.pinListDigital_D53=D53 (Mega) +# +bg.pinListAnalogWrite_D3=D3 +bg.pinListAnalogWrite_D5=D5 +bg.pinListAnalogWrite_D6=D6 +bg.pinListAnalogWrite_D9=D9 +bg.pinListAnalogWrite_D10=D10 +bg.pinListAnalogWrite_D11=D11 +# +bg.pinListAnalogWrite_D2=D2 (Mega) +bg.pinListAnalogWrite_D4=D4 (Mega) +bg.pinListAnalogWrite_D7=D7 (Mega) +bg.pinListAnalogWrite_D8=D8 (Mega) +bg.pinListAnalogWrite_D12=D12 (Mega) +bg.pinListAnalogWrite_D13=D13 (Mega) +bg.pinListAnalogWrite_D44=D44 (Mega) +bg.pinListAnalogWrite_D45=D45 (Mega) +bg.pinListAnalogWrite_D46=D46 (Mega) + +bg.DDRA=DDRA +bg.DDRB=DDRB +bg.DDRC=DDRC +bg.DDRD=DDRD +bg.DDRH=DDRH +bg.DDRL=DDRL +bg.PORTA=PORTA +bg.PORTB=PORTB +bg.PORTC=PORTC +bg.PORTD=PORTD +bg.PORTH=PORTH +bg.PORTL=PORTL +bg.PINA=PINA +bg.PINB=PINB +bg.PINC=PINC +bg.PIND=PIND +bg.PINH=PINH +bg.PINL=PINL +bg.xcj_motor_backward=motor shield backward +bg.xcj_motor_forward=motor shield forward +bg.xcj_ms_digital_read=Xinchejian digitalRead +bg.xcj_ms_digital_write=Xinchejian digitalWrite +bg.code_loop=loop +bg.code_head=head +bg.code_setup=setup + +bd.logic=Tests +bd.communication=Communication +bd.especial=Code Blocks + +bd.adafruit=Adafruit +bg.ada_dc_motor_fwd=DC motor FORWARD +bg.ada_dc_motor_bwd=DC motor BACKWARD +bg.ada_dc_motor_release=DC motor RELEASE +bg.ada_neopixel_NEO_GRB=NEO_GRB +bg.ada_neopixel_NEO_RGB=NEO_RGB +bg.ada_neopixel_NEO_KHZ400=NEO_KHZ400 +bg.ada_neopixel_NEO_KHZ800=NEO_KHZ800 +bg.ada_neopixel_init=Neopixel Init +bg.ada_neopixel_pixel_colorGRB=Neopixel GRB Pixel Color +bg.ada_neopixel_pixel_colorGRB=Neopixel RGB Pixel Color +bg.ada_neopixel_show=Neopixel Show +bg.ada_neopixel_Brightness=Neopixel Brightness + + +ardublock.file.suffix=Ardublock Program File(*.abp) +ardublock.ui.new=New +ardublock.ui.save=Save +ardublock.ui.saveAs=Save As +ardublock.ui.load=Open +ardublock.ui.upload=Upload to Arduino +ardublock.ui.clone=Clone +ardublock.ui.add_comment=Add Comment +ardublock.ui.delete_comment=Delete Comment +ardublock.ui.organize_blocks=Organize all blocks +ardublock.ui.create_refer=create reference +ardublock.ui.website=Go to Web Site +ardublock.ui.serialMonitor=Serial Monitor +ardublock.ui.saveImage=Save as image... +ardublock.ui.version=20160326 Highclare (beta) (slim) + +ardublock.error_msg.digital_var_slot=Digital variable slot must take a 'digital variable' name.\nHint: Look at the 'variable' socket on the highlighted block +ardublock.error_msg.number_var_slot=Standard variable slot must take a standard 'Integer' variable name.\nHint: Look at the 'variable' socket on the highlighted block +ardublock.error_msg.long_number_var_slot=Large integer variable slot must take a 'Large Integer' variable name.\nHint: Look at the 'variable' socket on the highlighted block +ardublock.error_msg.double_number_var_slot=variable slot must take a 'Decimal' variable name.\nHint: Look at the 'variable' socket on the highlighted block +ardublock.error_msg.char_var_slot=Char variable slot must take a char variable name.\nHint: Look at the 'variable' socket on the highlighted block +ardublock.error_msg.array_var_slot='Array variable' slot must take an 'array variable' name.\nHint: Look at the 'variable' socket on the highlighted block +ardublock.error_msg.array_size_slot='Array size' slot must take a standard integer constant +ardublock.error_msg.string_var_slot=String variable slot must take a String variable name.\nHint: Look at the 'variable' socket on the highlighted block +ardublock.error_msg.Digital_pin_slot=Pin# must be a valid digital pin number found on an Arduino Board +ardublock.error_msg.Analog_pin_slot=Pin# must be a valid analog input pin number found on an Arduino Board + +ardublock.translator.exception.subroutineNameDuplicated=two or more subroutines have the same name! +ardublock.translator.exception.noLoopFound=No MAIN TASK found! +ardublock.translator.exception.multipleLoopFound=multiple MAIN TASKs found! +ardublock.translator.exception.socketNull=A required Value, Variable Name or 'Test' is missing.\nHint:: Look for an empty 'socket' in the highlighted block. +ardublock.translator.exception.subroutineNotDeclared=subroutine not declared + +message.title.error=Error +message.title.question=Question +message.content.open_unsaved=You have unsaved work which may be lost!\n Do you want to save your work before opening a new file? +message.content.overwrite=Do you want overwrite existing file? +message.file_not_found=File Not Found or Permission Denied +message.question.newfile_on_workspace_changed=You have unsaved work which will be lost if you click 'YES' !\n Do you want to start a new Ardublock program? + +bc.repeat_times=Repetitions + +# Descriptions of all Block + +bg.program.description=Main program with loop and setup +bg.loop.description=Main Program loop without setup commands + +bg.scoop_sleep.description=Delay execution of current thread for x milliseconds +bg.scoop_task.description=Multitasking thread with loop and setup +bg.scoop_loop.description=Multitasking thread without setup commands +bg.scoop_pin_event.description=Multitasking thread. Runs commands when an event is detected on a pin. +bg.scoop_event_low.description=event triggered when pin is low +bg.scoop_event_high.description=event triggered when pin is high +bg.scoop_event_falling.description=event triggered when pin is falling +bg.scoop_event_rising.description=event triggered when pin is rising +bg.scoop_event_change.description=event triggered when pin is change + +bg.delay.description=Delay for "milliseconds" indicated.\nNOTE: 1000 millis = 1 second +bg.if.description=Execute the commands if the "test" is true +bg.ifelse.description=Execute the first set of commands if the "test" is true, otherwise it will do the second set of commands. +bg.while.description=Execute the commands as long as the "test" is true +bg.do_while.description=Execute the list of commands. Then, if 'test' is true, keep on repeating it until 'test' is 'false' +bg.repeat_times.description=Repeat a list of commands a number of times. +bg.repeat.description=Repeat a list of commands a number of times. "variable" counts the repetitions. +bg.break.description=break +bg.subroutine.description=A list of commands we can call by a single name. They will run only if 'called', see CONTROL menu. +bg.subroutine-ref.description=Run the list of commands in the subroutine called... +bg.delay_microseconds.description=Delay for "microseconds" indicated. \nNOTE: 1000000 micros = 1 second +bg.pin-read-analog.description=Read analog value from pin. Zero volts = 0. Five volts = 1023 +bg.pin-read-digital.description=Read digital value (HIGH or LOW) from pin. +bg.pin-read-digital-pullup.description=Set pin to digital input. Pin will report HIGH if unconnected. +bg.pin-write-digital.description=Set digital pin to HIGH or LOW +bg.pin-write-analog.description=Write analog voltage to pin. 0 = Zero volts. 255 = five volts. +bg.addition.description=Sum of two numbers +bg.subtraction.description=Difference of two numbers +bg.multiplication.description=Product of two numbers +bg.division.description=Quotient of two numbers +bg.random.description=Generate a random number less than the number +bg.map_common.description=map value from [0, 1023] to [0, 255] +bg.map.description=Map value from "from" range to "to" range +bg.constrain.description=Constrain a number between two values +bg.dummy.description= +bg.greater.description=True if the first number is greater the second number +bg.less.description=True if the first number is less then the second number +bg.equal.description=True if the first number equals to the scond number +bg.equal_digital.description=True if the first number equals to the scond number +bg.greater_equal.description=True if the first number is greater or equal to the second number +bg.less_equal.description=True if the first number is less or equal to the second number +bg.not_equal.description=True if the first number is not equal to the second number +bg.not_equal_digital.description=True if the first number is not equal to the second number +bg.and.description=True if both of the two conditions are true. +bg.or.description=True if one or both of the two conditions are true. +bg.not.description=The opposite of +bg.equal_poly.description=True if first character is equal to the second character +bg.not_equal_poly.description=True if first character is not equal to the second character +bg.equal_string.description=True if first string is equal to the second string +bg.not_equal_string.description=True if first string is not equal to the second string +bg.string_greater.description= True if first string is to the second string +bg.string_less.description= True if first string is to the second string +bg.string_equal.description= True if first string is to the second string +bg.string_greater_equal.description= True if first string is to the second string +bg.string_less_equal.description= True if first string is to the second string +bg.string_not_equal.description= True if first string is to the second string +bg.string_equals.description=True if first string is to the second string +bg.string_equalsIgnoreCase.description=True if first string is to the second string +bg.string_toInt.description=True if a numeric string compared to the number it represents +bg.string_compareTo.description=True if first string is to the second string +bg.millis.description=milliseconds since last power-up or reset. Note: Use a 'Large Integer' variable. +bg.true.description=Boolean True. +bg.false.description=Boolean False. +bg.digital-high.description=Pin HIGH +bg.digital-low.description=Pin LOW +bg.string_equal.description=True if two strings are equal +bg.string_empty.description=True if string is empty +bg.char.description=Character constant +bg.number.description=Standard integer constant. 32,768 to +32,767 +bg.pinListDigital_D0.description=List of valid digital pin numbers on various Arduino boards +bg.pinListDigital_D8.description=List of valid digital pin numbers on various Arduino boards +bg.pinListDigital_D11.description=List of valid digital pin numbers on various Arduino boards +bg.pinListDigital_D12.description=List of valid digital pin numbers on various Arduino boards +bg.pinListDigital_D13.description=List of valid digital pin numbers on various Arduino boards +bg.pinListAnalog_A0.description=List of valid analog pin numbers on various Arduino boards +bg.pinListAnalogWrite_D3.description=List of valid analog write PWM pin numbers on various Arduino boards +bg.number_long.description=Large integer constant. 0 to 4,294,967,295 +bg.number_double.description='Decimal' number constant. +/- 3.4028235E+38 +bg.variable_number.description=Standard integer variable. -32,768 to +32,767 +bg.variable_number_unsigned_long.description=Large integer variable name +bg.variable_number_double.description='Decimal' variable name +bg.variable_digital.description=Digital variable +bg.variable_string.description=string variable +bg.setter_variable_number.description=Set standard integer variable. -32,768 to +32,767 +bg.setter_variable_number_unsigned_long.description=Set large integer variable. 0 to 4,294,967,295 +bg.setter_variable_number_double.description=Set 'Decimal' variable. +/- 3.4028235E+38 +bg.setter_variable_digital.description=Set digital variable +bg.variable_vector.description=Get the value of an array member +bg.create_variable_vector.description=Create an array of standard integers. -32,768 to +32,767 +bg.setter_variable_vector.description=Set the value of an array member +bg.setter_variable_char.description=Set a character variable +bg.variable_poly.description=Character variable name +bg.servo.description=Control a servo +bg.servo_sg90.description=Control an SG90 servo +bg.servo_mg996r.description=Control an MG996R servo +bg.servo_default.description=Control a servo +bg.ultrasonic.description=Ultrasonic distance sensor +bg.LCD_I2C_Sainsmart_20by4.description= Sainsmart LCD Display. I2C. 20 Char by 4 Lines +bg.LCD_I2C_Sainsmart_16by2.description= Sainsmart LCD Display. I2C. 16 Char by 2 Lines +bg.LCD_PLL_Sainsmart_16by2.description= Sainsmart LCD Display. Parallel. 16 Char by 2 Lines +bg.LCD_command_clear.description=Clear an LCD display +bg.LCD_command_home.description=LCD display home +bg.LCD_command_lightOn.description=LCD display light on. +bg.LCD_command_lightOff.description=LCD display light off +bg.LCD_command_cursorOn.description=LCD display cursor on. +bg.LCD_command_cursorOff.description=LCD display cursor off +bg.LCD_command_blinkOn.description=LCD display blink on. +bg.LCD_command_blinkOff.description=LCD display blink off +bg.tone.description=Generates a square wave of the specified frequency (and 50% duty cycle) on a pin. +bg.tone_time.description=Generates a square wave of the specified frequency (and 50% duty cycle) on a pin. +bg.no_tone.description=Stops the generation of a square wave triggered by tone(). +bg.DDRA.description=DDRA +bg.DDRB.description=DDRB +bg.DDRC.description=DDRC +bg.DDRD.description=DDRD +bg.DDRH.description=DDRH +bg.DDRL.description=DDRL +bg.PORTA.description=PORTA +bg.PORTB.description=PORTB +bg.PORTC.description=PORTC +bg.PORTD.description=PORTD +bg.PORTH.description=PORTH +bg.PORTL.description=PORTL +bg.PINA.description=PINA +bg.PINB.description=PINB +bg.PINC.description=PINC +bg.PIND.description=PIND +bg.PINH.description=PINH +bg.PINL.description=PINL +bg.serial_print.description=Send message via Serial port +bg.message.description=Text message +bg.glue_sn.description=Glue number to string +bg.glue_sb.description=Glue boolean to string +bg.glue_poly.description=Glue char to string +bg.wire_write.description=Write data via I2C +bg.wire_read.description=Read data from i2c +bg.wire_isread.description=Is last read from I2C success? +bg.eeprom_read.description=Read a byte (0-255) from EEPROM. Each byte consumes just one EEPROM address. Using consecutive addresses is OK +bg.eeprom_write.description=Write a byte (0-255) to EEPROM. Each byte consumes just one EEPROM address. Using consecutive addresses is OK +bg.eeprom_read_int.description=Read an int (+/- 32,767) from EEPROM. NOTE: DON'T read from consecutive addresses. Each number consumes 2 addresses in EEPROM +bg.eeprom_write_int.description=Write an int (+/- 32,767) to EEPROM. NOTE: DON'T write to consecutive addresses. Each number consumes 2 addresses in EEPROM +bg.eeprom_read_long.description=Read a 'long' (0 - 4,294,967,295) from EEPROM. NOTE: DON'T read from consecutive addresses. Each number consumes 4 addresses in EEPROM +bg.eeprom_write_long.description=Write a 'long' (0 - 4,294,967,295) to EEPROM. NOTE: DON'T write to consecutive addresses. Each number consumes 4 addresses in EEPROM +bg.sd_write2.description=Write to SD card +bg.code_loop.description=Add raw codes to loop() +bg.code_head.description=Add raw codes to head +bg.code_setup.description=Add raw codes to setup() +bg.glue_msg.description=Glue a text message +bg.variable_fake.description=Digital Var +bg.serial_println.description=Send message via Serial port with a return +bg.ir_setport.description=Set Port where IR Receiver attached +bg.ir_getcode.description=Get code from ir receiver and store in a variable string +bg.bluno_println.description=println string on bluno oled +bg.bluno_println_clear.description=clear bluno oled +bg.bluno_println_number.description=println number on bluno oled +bg.Tinker_LED.description=TinkerKit LED +bg.Tinker_LED_pwm.description=TinkerKit LED +bg.Tinker_Mosfet.description=TinkerKit Mosfet +bg.Tinker_Mosfet_pwm.description=TinkerKit Mosfet +bg.Tinker_Relay.description=TinkerKit Relay +bg.Tinker_Servo.description=TinkerKit Servo +bg.Tinker_Button.description=TinkerKit Button +bg.Tinker_Accmeter.description=TinkerKit Accelerometer +bg.Tinker_Hall.description=TinkerKit Hall Sensor +bg.Tinker_LDR.description=TinkerKit LDR +bg.Tinker_LinearPotentiometer.description=TinkerKit Accelerometer +bg.Tinker_RotaryPotentiometer.description=TinkerKit RotaryPotentiometer +bg.Tinker_Thermistor.description=TinkerKit Thermistor +bg.Tinker_Touch.description=TinkerKit Touch Sensor +bg.Tinker_Servo.description=TinkerKit Servo +bg.Tinker_Tilt.description=TinkerKit Tilt +bg.xcj_motor_forward.description=forward +bg.xcj_motor_backward.description=Moving the car backward +bg.xcj_ms_digital_write.description=Write digital signal to Socket +bg.xcj_ms_digital_read.description=Read digital status from socket +bg.df_pizeo_disk_vibration_sensor.description=Vibration Sensor buffers a piezoelectric transducer that responds to strain changes by generating a measurable output voltage change which is proportional to the strength of vibration. +bg.df_analog_ambient_light_sensor.description=The ambient light sensor detects light density. +bg.df_analog_grayscale_sensor.description=Analog Grayscale Sensor detect the grayscale. +bg.df_flame_sensor.description=Read analog value from pin +bg.df_analog_mma7361_x.description=Read analog value from pin +bg.df_analog_mma7361_y.description=Read analog value from pin +bg.df_analog_mma7361_z.description=Read analog value from pin +bg.df_analog_gp2y0a21.description=Read analog value from pin +bg.df_analog_moisture.description=Read analog value from pin +bg.df_temperature_sensor.description=Read analog value from pin +bg.df_joystick_module_x.description=Read analog value from pin +bg.df_joystick_module_y.description=Read analog value from pin +bg.df_mma7260_x.description=Read analog value from pin +bg.df_mma7260_y.description=Read analog value from pin +bg.df_mma7260_z.description=Read analog value from pin +bg.df_analog_rotation_sensor_v1.description=Read analog value from pin +bg.df_analog_rotation_sensor_v2.description=Read analog value from pin +bg.df_analog_sound_sensor.description=Read analog value from pin +bg.df_analog_volume_sensor.description=Read analog value from pin +bg.df_analog_gas_sensor.description=Read analog value from pin +bg.df_analog_co_sensor.description=Read analog value from pin +bg.df_analog_voltage_divider.description=Read analog value from pin +bg.df_servo.description=set a pin to pwm +bg.df_360_degree_rotation_motor.description=set a pin to pwm +bg.df_dht11_humidity.description=get Humidity from Dht11 +bg.df_dht11_temperature.description=get Temperature from Dht11 +bg.df_romeo_motors.description=set motors speed on romeo +bg.df_romeo_motor.description=set motor speed on romeo +bg.df_romeo_motor_stop.description=stop motor on romeo +bg.df_led.description=LED Module +bg.df_led_pwm.description=LED Module +bg.df_piranha_led.description=Piranha LED Module +bg.df_piranha_led_pwm.description=Pianha LED Module with brightness level +bg.df_relay.description=Relay Module +bg.df_buzzer.description=Buzzer Module +bg.df_buzzer_tone.description=Generates a square wave of the specified frequency (and 50% duty cycle) on a pin. +bg.df_buzzer_tone_delay.description=Generates a square wave of the specified frequency (and 50% duty cycle) on a pin. +bg.df_lcd_keypad.description= lcd block that use liquicrystal +bg.seeed_joystick.description=Read analog value from analog pin +bg.seeed_joystick_button.description=Read analog value from analog pin +bg.seeed_o2_sensor=Gas Sensor(O2) +bg.seeed_uv_sensor=UV Sensor +bg.seeed_single_gyro=Single Axis Analog Gyro +bg.seeed_mq9_sensor=Gas Sensor(MQ9) +bg.seeed_mp3_sensor=Gas Sensor(MQ3) +bg.seeed_vib_sensor=Piezo Vibration Sensor +bg.seeed_loud_sensor=Loudness Sensor +bg.seeed_diff_amp=Differential Amplifier +bg.seeed_ir_temp_sensor=Infrared Temperature Sensor +bg.seeed_ir_proximity_sensor=80cm Infrared Proximity Sensor +bg.seeed_electricity_sensor=Electricity Sensor +bg.seeed_angle_sensor=Rotary Angle Sensor +bg.seeed_sound_sensor=Sound Sensor +bg.seeed_moisture_sensor=Moisture Sensor +bg.seeed_temp_sensor=Sound Sensor +bg.seeed_light_sensor=Light Sensor + +bg.seeed_voltage_divider=Voltage Divider +bg.seeed_flame_sensor=Flame Sensor +bg.seeed_button=Button +bg.seeed_switch=Switch +bg.seeed_ir_refl_sensor=Infrared Reflective Sensor +bg.seeed_heart_rate_sensor=Ear-clip Heart Rate Sensor +bg.seeed_chest_heart_sensor=Chest Strap Heart Rate Sensor +bg.seeed_air_quality_sensor=Air Quality Sensor +bg.seeed_line_finder=Line Finder +bg.seeed_pir_motion_sensor=PIR Motion Sensor +bg.seeed_tilt_switch=Tilt Switch +bg.seeed_push_button=Button +bg.seeed_water_sensor=Water Sensor +bg.seeed_touch_sensor=Touch Sensor +bg.seeed_mag_switch=Magnetic Switch +bg.seeed_ir_dist_int=IR Distance Interrupter + +bg.seeed_circle_led=SPDT Relay(30A) +bg.seeed_2coil_relay=2-Coil Latching Relay +bg.seeed_dry_relay=Dry-Reed Relay +bg.seeed_solid_relay=Solid State Relay +bg.seeed_circle_led=Circular LED +bg.seeed_led_strip=LED Strip Driver +bg.seeed_led=LED +bg.seeed_var_led=Variable Color LED +bg.seeed_vib=Vibration Motor +bg.seeed_relay=Relay + +bg.seeed_o2_sensor.description=Grove-Gas Sensor (O\u2082) is a kind of sensor to test the oxygen concentration in air, which is based on the principle of the electrochemical cell to the original work. +bg.seeed_uv_sensor.description=\u2013 UV Sensor is used for detecting the intensity of incident ultraviolet(UV) radiation. +bg.seeed_single_gyro.description=Signal Axis Analog Gyro is based on an angular velocity sensor that uses the phenomenon of Coriolis force. +bg.seeed_mq9_sensor.description=Gas Sensor module is useful for gas leakage detecting(in home and industry). It can detect LPG, i-butane, methane, alcohol, Hydrogen, somke and so on. +bg.seeed_mp3_sensor.description=Gas Sensor module is useful for gas leakage detecting(in home and industry). It can detect LPG, i-butane, methane, alcohol, Hydrogen, somke and so on. +bg.seeed_vib_sensor.description=Piezo Vibration Sensor is suitable for measurements of flexibility, vibration, impact and touch. +bg.seeed_loud_sensor.description=Loudness Sensor is designed to detect the loudness of environmental sound. Based on amplifier LM2904 and a built-in microphone, it amplifies and filters the high frequency signal that received from the microphone, and outputs a positive envelop. +bg.seeed_diff_amp.description=It's designed for precise differential-input amplification +bg.seeed_ir_temp_sensor.description=The Infrared temperature sensor is a non-contact temperature measure model. +bg.seeed_ir_proximity_sensor.description=The 80cm Infrared Proximity Sensor is a General Purpose Type Distance Measuring Sensors, this sensor takes a continuous distance reading and returns a corresponding analog voltage with a range of 10cm (4") to 80cm (30"). +bg.seeed_electricity_sensor.description=The Electricity sensor module is based on the TA12-200 current transformer which can change large alternating current into a small amplitude. +bg.seeed_angle_sensor.description=The potentiometer twig produces analog output between 0 and Vcc (5V DC with Seeeduino) on its D1 connector. +bg.seeed_sound_sensor.description=The Sound sensor module is a simple microphone. +bg.seeed_moisture_sensor.description=This Moisture Sensor can be used to detect the moisture of soil or judge if there is water around the sensor, let the plants in your garden reach out for human help. +bg.seeed_temp_sensor.description=The temperature sensor uses a thermistor which returns the ambient temperature in the form of a resistance value, which is then used to alter Vcc (5V with our Seeeduinos). +bg.seeed_light_sensor.description=The light sensor returns the ambient light in the form of a resistance value, which is then used to alter Vcc (5V with our Seeeduinos). + +bg.seeed_voltage_divider.description=Voltage Divider provides an interface for measuring external voltage, eliminating the need to connect a resistance to input interface. +bg.seeed_flame_sensor.description=Flame Sensor can be used to detect fire source or other light sources of the wavelength in the range of 760nm - 1100 nm. +bg.seeed_button.description=Button +bg.seeed_switch.description=Switch +bg.seeed_ir_refl_sensor.description=Infrared Reflective Sensor utilizes a RPR220 reflective photosensor module to detect color and distance. +bg.seeed_heart_rate_sensor.description=The heart rate measure kit can be used to monitor heart rate of patient and athlete. +bg.seeed_chest_heart_sensor.description=The heart rate measure kit can be used to monitor the heart rate of patients and athletes, meanwhile the result can be displayed on a screen via serial port and saved for analysis. +bg.seeed_air_quality_sensor.description=The sensor is designed for indoor air quality testing. The main gas detected is carbon monoxide, alcohol, acetone, thinner, formaldehyde and other slightly toxic gases. +bg.seeed_line_finder.description=Line finder is designed for line following robotic. It consists two parts - an IR emitting LED and an IR sensitive phototransistor. It can output digital signal to a microcontroller so the robot can reliably follow a black line on a white background, or vice versa. +bg.seeed_pir_motion_sensor.description=when anyone moves in its detecting range, the sensor outputs HIGH on its SIG pin. +bg.seeed_tilt_switch.description=The tilt-switch twig is the equivalent of a button, and is used as a digital input. +bg.seeed_push_button.description=Button +bg.seeed_water_sensor.description=This sensor works by having a series of exposed traces connected to ground and interlaced between the grounded traces are the sens traces. The sensor traces have a weak pull-up resistor of 1 M\u03a9. The resistor will pull the sensor trace value high until a drop of water shorts the sensor trace to the grounded trace. +bg.seeed_touch_sensor.description=It can detect the change in capacitance when a finger is near it. +bg.seeed_mag_switch.description=The magnetic switch is a wonder tool for designers who would like to turn a circuit on and off based on proximity. +bg.seeed_ir_dist_int.description=This IR Distance Interrupter features a high-sensitivity RFR-359F photoreflector to perform distance detection function. + +bg.seeed_circle_led.description=The SPDT Relay(30A) is a high quality Single Pole Double Throw Relay(SPDT). +bg.seeed_2coil_relay.description=This module is based on 2-Coil Latching Relay. +bg.seeed_dry_relay.description=Grove-Dry-Reed Relay is a relay module which works through magnetizing the vibration reed via the current in the coils. +bg.seeed_solid_relay.description=Solid State Relay is a non-contact electronic switch module that has relay features. +bg.seeed_circle_led.description=it has a florid body with 24 controllable LEDs. +bg.seeed_led_strip.description=It can help you control the luminance of a single-color LED strip, as well as the color and the luminance of an RGB LED strip through Arduino or Seeeduino. +bg.seeed_led.description=LED is designed for the beginners of Arduino/Seeeduino to monitor controls from digital ports. +bg.seeed_var_led.description=When SIG pin is logic LOW, the RGB LED will show. +bg.seeed_vib.description=It is consist one coin type motor which is a Permanent Magnet coreless DC motor. +bg.seeed_relay.description=The Relay is a digital normally open switch that controls a relay capable of switching much higher voltages and currents than your normal Arduino boards. + +bd.DuinoEDU=DuinoEDU Grove Add +bg.DuinoEDU_infrared=Infrared +bg.DuinoEDU_infrared.description=Infrared +bg.DuinoEDU_temp=Temp sensor +bg.DuinoEDU_temp.description=Temp sensor +bg.DuinoEDU_tempPro=Temp sensor Pro +bg.DuinoEDU_tempPro.description=Temp sensor Pro +bg.DuinoEDU_humi=Humi sensor +bg.DuinoEDU_humi.description=Humi sensor +bg.DuinoEDU_humiPro=Humi sensor Pro +bg.DuinoEDU_humiPro.description=Humi sensor Pro +bg.DuinoEDU_Led_Bar=Led Bar +bg.DuinoEDU_Led_Bar.description=Led Bar +bg.DuinoEDU_LCD_I2C_RGB=LCD I2C RGB Backlight +bg.DuinoEDU_LCD_I2C_RGB.description=LCD I2C RGB Backlight +bg.DuinoEDU_LCD_I2C_Backlight=LCD I2C Backlight +bg.DuinoEDU_LCD_I2C_Backlight.description=LCD I2C Backlight depend of the RGB between 0 and 1000 or more +bg.DuinoEDU_LCD_I2C_RGB_Clear=LCD I2C RGB Clear +bg.DuinoEDU_LCD_I2C_RGB_Clear.description=LCD I2C RGB Clear +bg.keyboard=keyboard +bg.keyboard.description=keyboard +bg.keyboard_post=keyboard post +bg.keyboard_post.description=keyboard post +bg.keyboard_compare=key of keyboard +bg.keyboard_compare.description=return a boolean = or != to +bg.DuinoEDU_Mouse_Init=Init Mouse +bg.DuinoEDU_Mouse_Init.description= Initialisation of the mouse +bg.DuinoEDU_Mouse_Xmove= Mouse X Move +bg.DuinoEDU_Mouse_Xmove.description= Mouse X Move +bg.DuinoEDU_Mouse_Ymove=Mouse Y Move +bg.DuinoEDU_Mouse_Ymove.description= Mouse Y Move +bg.DuinoEDU_Keypad_12_Button=Keypad 12 Button +bg.DuinoEDU_Keypad_12_Button.description=Keypad 12 Button +bg.DuinoEDU_Keypad_Post=Keypad Post +bg.DuinoEDU_Keypad_Post.description=Keypad Post +bg.DuinoEDU_Keypad_Pwd=Keypad Password +bg.DuinoEDU_Keypad_Pwd.description=Keypad Password +bg.DuinoEDU_Digital_Tube=Digital Tube +bg.DuinoEDU_Digital_Tube.description=Digital Tube +bg.DuinoEDU_Digital_Clear=Digital Tube Clear +bg.DuinoEDU_Digital_Clear.description=Digital Tube Clear +bg.DuinoEDU_Display_Digital_Tube=Display on digital tube +bg.DuinoEDU_Display_Digital_Tube.description=Display on digital tube +bg.DuinoEDU_Display_Digital_Tube2=Display on digital tube +bg.DuinoEDU_Display_Digital_Tube2.description=Display on digital tube +bg.DuinoEDU_Oled_I2C=Oled I2C +bg.DuinoEDU_Oled_I2C.description=Oled I2C +bg.DuinoEDU_Oled_Clear=Oled Clear +bg.DuinoEDU_Oled_Clear.description=Oled Clear +bg.DuinoEDU_Driver_I2C_Forward=Forward +bg.DuinoEDU_Driver_I2C_Forward.description=Driver I2C Forward +bg.DuinoEDU_Driver_I2C_Back=Back +bg.DuinoEDU_Driver_I2C_Back.description=Driver I2C Back +bg.DuinoEDU_Driver_I2C_Pivoter=Pivote +bg.DuinoEDU_Driver_I2C_Pivoter.description=Driver I2C Pivote +bg.DuinoEDU_Driver_I2C_Speed_A_Motor=Speed A Motor +bg.DuinoEDU_Driver_I2C_Speed_A_Motor.description=fixe the speed of the motor between 1 and 1000 +bg.DuinoEDU_Driver_I2C_Speed_B_Motor=Speed B Motor +bg.DuinoEDU_Driver_I2C_Speed_B_Motor.description=fixe the speed of the motor between 1 and 1000 +bg.DuinoEDU_right=Right +bg.DuinoEDU_straight=Straight +bg.DuinoEDU_left=Left +bg.DuinoEDU_Aix_Acc_mesurerX=mesurerX +bg.DuinoEDU_Aix_Acc_mesurerX.description=mesurerX +bg.DuinoEDU_Aix_Acc_mesurerY=mesurerY +bg.DuinoEDU_Aix_Acc_mesurerY.description=mesurerY +bg.DuinoEDU_Aix_Acc_mesurerZ=mesurerZ +bg.DuinoEDU_Aix_Acc_mesurerZ.description=mesurerZ +bg.DuinoEDU_Aix_Acc_mesurerXYZ=mesurerXYZ +bg.DuinoEDU_Aix_Acc_mesurerXYZ.description=mesurerXYZ +bg.DuinoEDU_Aix_Acc_mesurerVariation=Variation +bg.DuinoEDU_Aix_Acc_mesurerVariation.description=Variation +bg.DuinoEDU_Ultrasonic=Ultrasonic +bg.DuinoEDU_Ultrasonic.description=Ultrasonic +bg.DuinoEDU_Partie_Emetteur=Emetteur +bg.DuinoEDU_Partie_Emetteur.description=Emetteur +bg.DuinoEDU_Partie_Recepteur=Recepteur +bg.DuinoEDU_Partie_Recepteur.description=Recepteur +bg.DuinoEDU_Rfid_Write=Rfid save code +bg.DuinoEDU_Rfid_Write.description=Save in Ram the code +bg.DuinoEDU_Rfid_Test=Rfid Test +bg.DuinoEDU_Rfid_Test.description= compare the code with the list in the ram +bg.DuinoEDU_Rfid_Read=Rfid Read +bg.DuinoEDU_Rfid_Read.description=Read a badge +bg.DuinoEDU_Rfid_Clear=Rfid clear +bg.DuinoEDU_Rfid_Clear.description=Clear the liste of codes in Ram +bg.DuinoEDU_Rfid_Ram_List=Rfid Ram List +bg.DuinoEDU_Rfid_Ram_List.description=Create a liste of code in Ram +bg.DuinoEDU_neopixel_init=Neopixel Init +bg.DuinoEDU_neopixel_init.description=initialization +bg.DuinoEDU_neopixel_pixel_colorGRB=Neopixel GRB Pixel Color +bg.DuinoEDU_neopixel_pixel_colorGRB.description=Pixel Color between 0 and 1000 for each color +bg.DuinoEDU_neopixel_pixel_colorRGB=Neopixel RGB Pixel Color +bg.DuinoEDU_neopixel_pixel_colorRGB.description=Pixel Color between 0 and 1000 for each color +bg.DuinoEDU_neopixel_show=Neopixel Show +bg.DuinoEDU_neopixel_show.description=Push the color data to the strip +bg.DuinoEDU_neopixel_Brightness=Neopixel Brightness +bg.DuinoEDU_neopixel_Brightness.description=Brightness between 0 and 1000 +bg.DuinoEDU_neopixel_Clear=Neopixel Clear +bg.DuinoEDU_neopixel_Clear.description=Clear all led +bg.DuinoEDU_stepper_step=Stepper Motor Step +bg.DuinoEDU_stepper_step.description= Number of step of the Motor +bg.DuinoEDU_stepper_setSpeed=Stepper Motor setSpeed +bg.DuinoEDU_stepper_setSpeed.description=Set speed of Stepper Motor +bg.DuinoEDU_matrice_write=Matrice Write +bg.DuinoEDU_matrice_write.description=Turn on one Led of the matrice +bg.DuinoEDU_matrice_clear=Matrice Clear +bg.DuinoEDU_matrice_clear.description=Clear the Matrice +bg.DuinoEDU_matrice_Brightness=Matrice Brightness +bg.DuinoEDU_matrice_Brightness.description=Brightness between 0 and 15 +bg.DuinoEDU_Led=LED +bg.DuinoEDU_Led.description=LED Module +bg.DuinoEDU_Servo_Plus=Servo Plus +bg.DuinoEDU_Servo_Plus.description=Servo Plus +bg.DuinoEDU_SerialOscillo=SerialOscillo +bg.DuinoEDU_SerialOscillo.description=SerialOscillo Duinoedu.com +bg.DuinoEDU_SerialOscillo_Init=SerialOscillo Init +bg.DuinoEDU_SerialOscillo_Init.description=SerialOscillo Init Duinoedu.com +bc.serial_broche=Number of Dial +bc.dial=Dial +bc.in=In +bg.DuinoEDU_Volts=Volts +bg.DuinoEDU_VALEURS_BRUTES=Gross Value +bg.DuinoEDU_CM=CM +bg.DuinoEDU_DEGRES=\u00B0C +bg.DuinoEDU_Nunchuck_BoutonC=Bouton C +bg.DuinoEDU_Nunchuck_BoutonC.description=Nunchuck +bg.DuinoEDU_Nunchuck_BoutonZ=Bouton Z +bg.DuinoEDU_Nunchuck_BoutonZ.description= +bg.DuinoEDU_Nunchuck_JoystickX=Joystick X +bg.DuinoEDU_Nunchuck_JoystickX.description= +bg.DuinoEDU_Nunchuck_JoystickY=Joystick Y +bg.DuinoEDU_Nunchuck_JoystickY.description= +bg.DuinoEDU_Nunchuck_AccelerationX=ACC X +bg.DuinoEDU_Nunchuck_AccelerationX.description= +bg.DuinoEDU_Nunchuck_AccelerationY=ACC Y +bg.DuinoEDU_Nunchuck_AccelerationY.description= +bg.DuinoEDU_Nunchuck_AccelerationZ=ACC Z +bg.DuinoEDU_Nunchuck_AccelerationZ.description= + +bc.DuinoEDU_Brightness=Brightness +bc.DuinoEDU_Display=Display +bg.DuinoEDU_On_digit1=1 +bg.DuinoEDU_On_digit2=2 +bg.DuinoEDU_On_digit3=3 +bg.DuinoEDU_On_digit4=4 +bc.DuinoEDU_On_digit=On digit +bc.DuinoEDU_On_digit1=On digit1 +bc.DuinoEDU_On_digit2=On digit2 +bc.DuinoEDU_On_digit3=On digit3 +bc.DuinoEDU_On_digit4=On digit4 +bc.DuinoEDU_Display_Point=Display Point +bg.DuinoEDU_setSerialInfosOn=ON +bg.DuinoEDU_setSerialInfosOff=OFF +bc.DuinoEDU_serial_display=Display on serial +bc.red=Red +bc.blue=Blue +bc.green=Green +bc.stepperround=Step per Round +bc.step=Nb Step +bg.DuinoEDU_equal=Equal +bg.DuinoEDU_notequal=Not Equal + +bg.ls_10mmLEDModule.description=10mm Blue/Green/Yellow/Red LED Module +bg.ls_5mmLEDModule.description=5mm Blue/Green/Yellow/Red LED Module +bg.ls_AccelerometerModule_x.description=Based on the excellent ADXL-345, this digital 3-axis accelerometer has excellent EMI protection. +bg.ls_AccelerometerModule_y.description=Based on the excellent ADXL-345, this digital 3-axis accelerometer has excellent EMI protection. +bg.ls_AccelerometerModule_z.description=Based on the excellent ADXL-345, this digital 3-axis accelerometer has excellent EMI protection. +bg.ls_ButtonModule.description=Button Module +bg.ls_BuzzerModule.description=Buzzer Module +bg.ls_HallSensor.description=Hall Sensor +bg.ls_HighPowerLedModule.description=High Power Led Module +bg.ls_JoystickSensorModule_x.description=Joystick Sensor Module +bg.ls_JoystickSensorModule_y.description=Joystick Sensor Module +bg.ls_LDRModule.description=LDR Module +bg.ls_LEDBar.description=LED Bar +bg.ls_Linear-SlidePotentiometerModule.description=Linear/Slide Potentiometer Module +bg.ls_MagneticSwitch.description=Magnetic Switch +bg.ls_MosfetModule.description=Mosfet Module +bg.ls_RelayModule.description=Relay Module +bg.ls_RotaryPotentiometerModule.description=Rotary Potentiometer Module +bg.ls_RTCModule.description=RTC Module +bg.ls_SoundSensor.description=Sound Sensor +bg.ls_ThermalModule.description=Thermal Module +bg.ls_TiltModule.description=Tilt Module +bg.ls_TouchSensorModule.description=Touch Sensor Module +bg.random_range.description=Generate random number between min and (max - 1) + +bg.panda_i1=panda I1 +bg.panda_i2=panda I2 +bg.panda_i3=panda I3 +bg.panda_i4=panda I4 +bg.panda_i5=panda I5 +bg.panda_i6=panda I6 + +bg.panda_o1=panda O1 +bg.panda_o2=panda O2 +bg.panda_o3=panda O3 +bg.panda_o4=panda O4 +bg.panda_o5=panda O5 +bg.panda_o6=panda O6 + +bd.network=Networking +bg.bleshield=BLE Shield +bg.bleshield.description=BLE Shield for Bluetooth Communication +bg.bleshield_available=BLE Shield Data Available? +bg.bleshield_read_poly=read from BLE Shield + +bd.adafruit.description=Adafruit Motorshield +bg.ada_dc_motor_fwd=Adafruit DC motor FORWARD +bg.ada_dc_motor_bwd=Adafruit DC motor BACKWARD +bg.ada_dc_motor_release=Adafruit DC motor RELEASE +bg.ada_neopixel_NEO_GRB=NEO_GRB +bg.ada_neopixel_NEO_RGB.description=NEO_RGB +bg.ada_neopixel_NEO_KHZ400=NEO_KHZ400 +bg.ada_neopixel_NEO_KHZ800=NEO_KHZ800 +bg.ada_neopixel_init=initialization +bg.ada_neopixel_pixel_colorGRB=Pixel Color between 0 and 255 for each color +bg.ada_neopixel_pixel_colorRGB=Pixel Color between 0 and 255 for each color +bg.ada_neopixel_show= Push the color data to the strip +bg.ada_neopixel_Brightness=Brightness between 0 and 255 +bg.ada_dc_motor_fwd.description= +bg.ada_dc_motor_bwd.description= +bg.ada_dc_motor_release.description= +bg.ada_neopixel_init.description= +bg.ada_neopixel_pixel_colorGRB.description= +bg.ada_neopixel_pixel_colorRGB.description= +bg.ada_neopixel_show.description= +bg.ada_neopixel_Brightness.description= + +bd.makeblock=Makeblock +bc.shutter_state=Action +bc.port_number=PORT_# +bc.motor_number=M# +bc.m1=M1 +bc.m2=M2 +bc.command_number=Type +bc.speed_number=Speed +bc.acceleration_number=Acceler +bc.moveTo_number=MoveTo +bc.angle_number=Angle +bc.input_data=Data +bc.device_number=Device +bc.output_data=Data +bc.commands=Commands +bc.stepper_finish=Finish +bc.me_key_down=KeyDown +bc.me_key_up=KeyUp +bg.me_port_1=PORT 1 +bg.me_port_1.description= Me Base Shield Port +bg.me_port_2=PORT 2 +bg.me_port_3=PORT 3 +bg.me_port_4=PORT 4 +bg.me_port_5=PORT 5 +bg.me_port_6=PORT 6 +bg.me_port_7=PORT 7 +bg.me_port_8=PORT 8 +bg.me_motor_1=M1 +bg.me_motor_1.description= Me Base Shield DC Motor Port +bg.me_motor_2=M2 +bg.me_shutter_1=Shot On +bg.me_shutter_1.description= Me Shutter Action +bg.me_shutter_2=Shot Off +bg.me_shutter_3=Focus On +bg.me_shutter_4=Focus Off +bg.me_ultrasonic_sensor= +bg.me_ultrasonic_sensor.description=return distance between Object to Sensor. +bg.me_linefinder= +bg.me_linefinder.description=return 0-3 for Left And Right Side State. +bg.me_limitswitch= +bg.me_limitswitch.description=It sends a signal to the controller when it is triggered. +bg.me_shutter= +bg.me_shutter.description=It sends a signal to the DSLR Camera for shot and focus. +bg.me_motordriver= +bg.me_motordriver.description=Motor can use M1,M2,Port_1 and Port_2. +bg.me_servodriver= +bg.me_servodriver.description=Servo can use Port_1 and Port_2,device can use 1 and 2. +bg.me_stepper_motor= +bg.me_stepper_motor.description=Mini stepper motor driver base on A4988.Compatible with 4 and 6 wire stepper motors. +bg.me_infraredreceiver= +bg.me_infraredreceiver.description=Receive Data from Infrared Controller +bg.me_bluetooth_read= +bg.me_bluetooth_read.description=Bluetooth Read Byte Data +bg.me_bluetooth_write= +bg.me_bluetooth_write.description=Bluetooth Write Byte Data +bg.me_bluetooth_commands = +bg.me_bluetooth_commands.description=Commands Parser For Android App's Communication. +bg.me_bluetooth_command = +bg.me_bluetooth_command.description=return (0:module,1:device ID,2:mode,3:port,4:value) + +#workshop blocks +bd.workshop=Workshop template +bg.ws_setting=Setting +bg.ws_setting.description=setup a robot +bg.ws_go_forward=Go +bg.ws_go_forward.description=go forward +bg.ws_go_backward=Back +bg.ws_go_backward.description=go backward +bg.ws_stop=Stop +bg.ws_stop.description=stop moving +bg.ws_turn_left=Turn left +bg.ws_turn_left.description=turn left +bg.ws_turn_right=Turn Right +bg.ws_turn_right.description=turn right +bg.ws_go_forward_left=Go Left +bg.ws_go_forward_left.description=go forward left +bg.ws_go_forward_right=Go Right +bg.ws_go_forward_right.description=go forward right +bg.ws_go_backward_left=Back Left +bg.ws_go_backward_left.description=go back left +bg.ws_go_backward_right=Back Right +bg.ws_go_backward_right.description=go back right +bg.ws_light=Light +bg.ws_light.description=stop moving +bg.ws_scan=Scan +bg.ws_scan.description=Scan an obstacle +bg.ws_music=Music +bg.ws_music.description=play music +bg.ws_wireless=Wrieless +bg.ws_wireless.description=Wireless +bg.ws_danger=In Danger +bg.ws_danger.description=is robot in danger? +bg.ws_binoculars=Binoculars +bg.ws_binoculars.description=Binoculars + +#InsectBot blocks +bd.insectbot=Insect Bot +bg.insectbot_get_distance=Distance +bg.insectbot_get_distance.description=get distance of obstacle in front of robot +bg.insectbot_is_indanger=In Danger? +bg.insectbot_is_indanger.description=is robot in danger? +bg.insectbot_go_forward=Go Forward +bg.insectbot_go_forward.description=go forward +bg.insectbot_go_backright=go back right +bg.insectbot_go_backright.description=go back right +bg.insectbot_turn_left=turn left +bg.insectbot_turn_left.description=turn left +bg.insectbot_blink_led=blink +bg.insectbot_blink_led.description=blink led + + +##iDrawing blocks +bd.iDrawing=4Drawing +bg.led_mode_flash=Flash +bg.led_mode_flash.description=Flashing +bg.led_mode_fade=Fade +bg.led_mode_fade.description=Fading +bg.port_pin_name=5 +bg.port_pin_name.description=Pin Name(5,6,9,10,11, A0,A1,A2,A3,A4,A5, UART,I2C) + +bg.trigger_equal=== +bg.trigger_equal.description=== +bg.trigger_greater=> +bg.trigger_greater.description=> +bg.trigger_less=< +bg.trigger_less.description=< + +bg.player_mode_random=Random +bg.player_mode_random.description=play song randomly + +bg.player_mode_single=Single +bg.player_mode_single.description=play the specified song + +bg.output_mode_low=Low +bg.output_mode_low.description=Low lever +bg.output_mode_high=High +bg.output_mode_high.description=High lever + +bg.output_mode_lowpulse=Low Pulse +bg.output_mode_lowpulse.description=Low pulse + +bg.output_mode_highpulse=High Pulse +bg.output_mode_highpulse.description=High pulse + + +# +bg.iDrawing_set_para=Set 4Drawing +bg.iDrawing_set_para.description=Set parameters in setup +bg.iDrawing_run= Run 4Drawing +bg.iDrawing_run.description=Running in loop + + +bg.iDrawing_rule_start=Start +bg.iDrawing_rule_start.description=Start Rule + +bg.iDrawing_rule_stop=Stop +bg.iDrawing_rule_stop.description=Stop Rule + +bg.iDrawing_rule_sleep=Sleep +bg.iDrawing_rule_sleep.description=System go to sleep state + +# +bg.iDrawing_trigger_time=Time +bg.iDrawing_trigger_time.description=Time + +bg.iDrawing_trigger_dpin=Digital input +bg.iDrawing_trigger_dpin.description=digital input + +bg.iDrawing_trigger_apin=Analog input +bg.iDrawing_trigger_apin.description=analog input + + +bc.pin_name=Pin Name +bc.wake_condition=Wake condition +bc.duration=Duration(5-180s) +bc.rules=Rules +bc.trigger_logic=Logic +bc.analog_value=Value(0-100) +bc.digital_status=Status + + + + +bc.trigger=Trigger +bc.actuator=Actuator + + +bc.time=Second + +# +bg.iDrawing_actuator_led=LED +bg.iDrawing_actuator_led.description=LED + +bg.iDrawing_actuator_playermini=Player +bg.iDrawing_actuator_playermini.description=DFPlayer Mini + +bg.iDrawing_actuator_dpin=Digital Output +bg.iDrawing_actuator_dpin.description=digital output + + +bc.mode=Mode +bc.period=Period(ms) +bc.songname=Song + +bg.testdatablock=test +bg.testdatablock.description=test + + + +#legacy support +bg.loop1=loop +bg.loop1.description=loop +bg.loop2=loop +bg.loop2.description=loop +bg.loop3=loop +bg.loop3.description=loop + +# littlebits +bd.littlebits=LittleBits +bg.little_bits_bendsensor=BendSensor +bg.little_bits_bendsensor.description=This is BendSensor +bg.little_bits_button=Button +bg.little_bits_button.description=This is Button +bg.little_bits_dimmer=Dimmer +bg.little_bits_dimmer.description=This is Dimmer +bg.little_bits_lightsensor=LightSensor +bg.little_bits_lightsensor.description=This is LightSensor +bg.little_bits_lighttrigger=LightTrigger +bg.little_bits_lighttrigger.description=This is LightTrigger +bg.little_bits_microphone=Microphone +bg.little_bits_microphone.description=This is Microphone +bg.little_bits_motiontrigger=MotionTrigger +bg.little_bits_motiontrigger.description=This is MotionTrigger +bg.little_bits_pressuresensor=PressureSensor +bg.little_bits_pressuresensor.description=This is PressureSensor +bg.little_bits_pulse=Pulse +bg.little_bits_pulse.description=This is Pulse +bg.little_bits_remotetrigger=RemoteTrigger +bg.little_bits_remotetrigger.description=This is RemoteTrigger +bg.little_bits_rollerswitch=RollerSwitch +bg.little_bits_rollerswitch.description=This is RollerSwitch +bg.little_bits_slidedimmer=SlideDimmer +bg.little_bits_slidedimmer.description=This is SlideDimmer +bg.little_bits_slideswitch=SlideSwitch +bg.little_bits_slideswitch.description=This is SlideSwitch +bg.little_bits_soundtrigger=SoundTrigger +bg.little_bits_soundtrigger.description=This is SoundTrigger +bg.little_bits_timeout=TimeOut +bg.little_bits_timeout.description=This is TimeOut +bg.little_bits_toggleswitch=ToggleSwitch +bg.little_bits_toggleswitch.description=This is ToggleSwitch +bg.little_bits_mix=mix +bg.little_bits_mix.description=This is mix +bg.little_bits_oscillator=oscillator +bg.little_bits_oscillator.description=This is oscillator +bg.little_bits_random=random +bg.little_bits_random.description=This is random +bg.little_bits_bargraph=Bargraph +bg.little_bits_bargraph.description=This is Bargraph +bg.little_bits_brightled=BrightLED +bg.little_bits_brightled.description=This is BrightLED +bg.little_bits_dcmotor=DCMotor +bg.little_bits_dcmotor.description=This is DCMotor +bg.little_bits_fan=Fan +bg.little_bits_fan.description=This is Fan +bg.little_bits_ir_led=IR_LED +bg.little_bits_ir_led.description=This is IR_LED +bg.little_bits_led=LED +bg.little_bits_led.description=This is LED +bg.little_bits_lightwire=Lightwire +bg.little_bits_lightwire.description=This is Lightwire +bg.little_bits_longled=LongLED +bg.little_bits_longled.description=This is LongLED +bg.little_bits_number=Number +bg.little_bits_number.description=This is Number +bg.little_bits_rgbled=RGBLED +bg.little_bits_rgbled.description=This is RGBLED +bg.little_bits_uvled=UVLED +bg.little_bits_uvled.description=This is UVLED +bg.little_bits_vibration_motor=Vibration_Motor +bg.little_bits_vibration_motor.description=This is Vibration_Motor +bg.little_bits_synthspeaker=synthspeaker +bg.little_bits_synthspeaker.description=This is synthspeaker + +bd.ke-keenlon=Keenlon +bg.ke-motor-run=motor run +bc.ke-motor-run-leftspeed=left speed +bc.ke-motor-run-rightspeed=right speed +bg.ke-motor-setmoto=motor setmoto +bc.ke-motor-setmoto-motonumber=motor number +bc.ke-motor-setmoto-motospeed=motor speed +bg.ke-motor-stop=motor stop +bg.ke-tft-print=TFT print +bc.ke-tft-print-line=line num +bc.ke-tft-print-string=string +bc.ke-tft-print-param1=param1; +bc.ke-tft-print-param2=param2; +bc.ke-tft-print-param3=param3; +bc.ke-tft-print-param4=param4; +bc.ke-tft-print-param5=param5; +bg.ke-tft-clear=TFT clear +bg.ke-eye-minvalue=eye min value +bg.ke-eye-minindex=eye min index +bg.ke-eye-maxvalue=eye max value +bg.ke-eye-maxindex=eye max index +bg.ke-eye-singlevalue=eye get a channel +bc.ke-eye-singlevalue-numble=channel num +bg.ke-button-getbutton=get button +bg.ke-encoder-clear=encoder clear +bc.ke-encoder-clear-index=encoder num +bg.ke-encoder-getencoder=get encoder +bc.ke-encoder-getencoder-index=encoder num +bg.ke-tft-msg=tft msg +bg.ke-tft-add=tft add variable +bg.ke-ground-light=ground light +bg.ke-light=light +bg.ke-Potentiometer=Potentiometer +bg.ke-buzzer=buzzer +bg.ke-ground-light=ground light +bg.ke-led-on-off=led on off +bg.ke-led-pwm=led pwm +bg.ke-light=light +bg.ke-mic=mic +bg.ke-photo=photo +bg.ke-potentiometer=Potentiometer +bg.ke-relays=relays +bg.ke-tempe=Temperature sensor +bg.ke-touch=touch sensor +bg.ke-psd=sharp GP2Y0A21 +bg.ke-compass=compass +bc.ke-digital-state=state +bc.ke-led-on-off-state=state +bc.ke-led-pwm-Brightness=Brightness +bg.ke-servo=servo +bg.ke-motor-run.description= +bg.ke-motor-setmoto.description= +bg.ke-motor-stop.description= +bg.ke-tft-print.description= +bg.ke-tft-clear.description= +bg.ke-eye-minvalue.description= +bg.ke-eye-minindex.description= +bg.ke-eye-maxvalue.description= +bg.ke-eye-maxindex.description= +bg.ke-eye-singlevalue.description= +bg.ke-button-getbutton.description= +bg.ke-encoder-clear.description= +bg.ke-encoder-getencoder.description= +bg.ke-tft-add.description= +bg.ke-compass.description= +bg.ke-buzzer.description= +bg.ke-ground-light.description= +bg.ke-led-on-off.description= +bg.ke-led-pwm.description= +bg.ke-light.description= +bg.ke-mic.description= +bg.ke-photo.description= +bg.ke-potentiometer.description= +bg.ke-relays.description= +bg.ke-tempe.description= +bg.ke-psd.description= +bg.ke-touch.description= +bg.ke-servo.description= + +bd.jerusalab=Jerusalab +bg.midi_command=Midi Controller Command +bg.midi_command.description=Sends a Midi command to the computer via serial connection, to be consumed by application such as Hairless Midi +bg.midi_note=Midi Note +bg.Midi_C=C +bg.Midi_CS=C# +bg.Midi_D=D +bg.Midi_DS=D# +bg.Midi_E=E +bg.Midi_F=F +bg.Midi_FS=F# +bg.Midi_G=G +bg.Midi_GS=G# +bg.Midi_A=A +bg.Midi_AS=A# +bg.Midi_B=B + +bg.color=48 63 159 diff --git a/src/main/resources/com/ardublock/block/Skins/Highclare/ardublock.xml b/src/main/resources/com/ardublock/block/Skins/Highclare/ardublock.xml new file mode 100644 index 00000000..6002b576 --- /dev/null +++ b/src/main/resources/com/ardublock/block/Skins/Highclare/ardublock.xml @@ -0,0 +1,9743 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + repeat + + A variable to track the repetitions + + + Start value of variable + + + End value of variable + + + How much to change variable each time + + + A list of commands to do. + + + + + + + + + + + + + + + + + + + + + + + this is the loop of the arduino + + A list of commands to run first, and once only. + + + A list of commands to repeat forever, after setup commands have finished. + + + + + + + + + + + this is the loop of the arduino + + A list of commands to repeat forever. + + + + + + + + + + + + + + + program delay in x milliseconds + + + + + + + + + + + If + + is true, the agent will run the blocks attached to + + + + A logical test. Is it TRUE or FALSE? + + + + A list of commands to do if the test is TRUE. + + + + + + + + + + + + Does the first list of commands if the test specified is + true, otherwise it will do the second list of commands. + + + A logical test. Is it TRUE or FALSE? + + + + A list of commands to do if the test is TRUE. + + + + A list of commands to do if the test is FALSE. + + + + + + + + + + + + + While Block + + + A logical test. Is it TRUE or FALSE? + + + + A list of commands to repeat while the test is TRUE. + + + + + + + + + + + + Do While Block + + + A list of commands to do. + + + A logical test. Do the commands again if the test is TRUE + + + + + + + + + + + + + Repeat the commands for "times" + + + + + + Repeat the commands for "times" + + How many times to repeat the commands + + + A list of commands to do be repeated. + + + + + + + + + + + + + repeat + + A variable to track the repetitions + + + How many times to repeat the commands + + + A list of commands to do be repeated. + + + + + + + + + + + + + + + subroutine + + + + + + + + + invoke subroutine + + + + + program delay in x microseconds + + + + + + + + + + + this is the loop of the arduino + + A list of commands to run first, and once only. + + + A list of commands to repeat forever, after setup commands have finished. + + + + + + + + + + + this is the loop of the arduino + + A list of commands to repeat forever. + + + + + + + + + + Task sleep in x milliseconds + + + + + + + + + + + + event flag + + + + + + + + event flag + + + + + + + + event flag + + + + + + + + event flag + + + + + + + + event flag + + + + + + + + + + + SCoop Event on pin + + Pin number to watch. + + + What kind of event to watch for. + + + A list of commands to run when the event is detected on the pin. + + + + + + + + + + + + + + + + + + + + Read digital from the pin + + + + + + + + + + + + + Read digital from the pin. Default High + + + + + + + + + + + + Read analog value from pin + + + + + + + + + + + write digital to pin + + + + + + + + + + + + + + write analog to pin + + + + + + + + + + + + + + Generates a square wave of the specified frequency (and 50% + duty cycle) on a pin. + + + + + + + + + + + + + + + + Generates a square wave of the specified frequency (and 50% + duty cycle) on a pin. + + + + + + + + + + + + + + + + + + Stops the generation of a square wave triggered by tone(). + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + DDRA + + + + + + + + + + + DDRB + + + + + + + + + + + DDRC + + + + + + + + + + + DDRD + + + + + + + + + + + DDRH + + + + + + + + + + + DDRL + + + + + + + + + + + PORTA + + + + + + + + + + + PORTB + + + + + + + + + + + PORTC + + + + + + + + + + + PORTD + + + + + + + + + + + PORTH + + + + + + + + + + + PORTL + + + + + + + + + + + PINA + + + + + + + + PINB + + + + + + + + PINC + + + + + + + + PIND + + + + + + + + PINH + + + + + + + + PINL + + + + + + + + + + + + Reports the sum of two numbers ( + + + + + ). + + + + + + + + + + + + + + + + Reports the difference of two numbers ( + + - + + ). + + + + + + + + + + + + + + + + Reports the product of two numbers ( + + x + + ). + + + + + + + + + + + + + + + + Reports the quotient of two numbers ( + + ÷ + + ). + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + generate a random number less than the number + + + + + + + + + + + + Generate random number between min and (max - 1) + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + map value from [0, 1023] to [0, 255] + + + + + + + + + + + + map + + + + + + + + + + + + + + + + + + + + + + Constrain a number between two values + + + + + + + + + + + + + + + + + + is upper number greater then lower? + + + + + + + + + + + + + + is upper number less then lower? + + + + + + + + + + + + + + is upper number greater then lower? + + + + + + + + + + + + + is upper number greater then lower? + + + + + + + + + + + + + + is upper number greater then lower? + + + + + + + + + + + + + + is upper number greater then lower? + + + + + + + + + + + + + + is upper number greater then lower? + + + + + + + + + + + + + + is upper number greater then lower? + + + + + + + + + + + + + + is upper string greater then lower? + + + + + + + + + + + + + + + is upper string less then lower? + + + + + + + + + + + + + + + is upper string greater then lower? + + + + + + + + + + + + + + + + is upper string greater then lower? + + + + + + + + + + + + + + + is upper string greater then lower? + + + + + + + + + + + + + + + is upper string greater then lower? + + + + + + + + + + + + + + + + is equalsIgnoreCase then lower? + + + + + + + + + + + + + + + is equals then ? + + + + + + + + + + + + + + + is compareTo ? + + + + + + + + + + + + + + + is a numeric string compared to the number it represents + + + + + + + + + + + + + + + + Reports true if both of the two conditions are true. + + + + + + + + + + + + + + Reports true if one or both of the two conditions are true. + + + + + + + + + + + + + Reports the opposite of + + . + + + + + + + + + + + is upper number greater then lower? + + + + + + + + + + + + + + + + is upper number greater then lower? + + + + + + + + + + + + + + is upper number greater then lower? + + + + + + + + + + + + + + is upper number greater then lower? + + + + + + + + + + + + is upper number greater then lower? + + + + + + + + + + + + + + is upper number greater then lower? + + + + + + + + + + + + + + + Time in milliseconds + + + + + + + + + + Standard integer constant + + + + + + + + + + + Digital Pin Constant + + + + + + + + + + + Digital Pin Constant + + + + + + + + + + + Digital Pin Constant + + + + + + + + + + Digital Pin Constant + + + + + + + + + + + Digital Pin Constant + + + + + + + + + + + Analog Pin Constant + + + + + + + + + + + PWM Pin Constant + + + + + + + + + + + 'Unsigned Long' constant + + + + + + + + + + + 'Double' constant + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Pin HIGH + + + + + + + + + + + Pin LOW + + + + + + + + + + + + Reports the boolean true. + + + + + + + + + + + Reports the boolean false. + + + + + + + + + + + Integer Var + + + + + + + + + + + Unsigned Long Var + + + + + + + + + + + Double + + + + + + + + + + + Digital Var + + + + + + + + + + string message + + + + + + + + + set integer variable + + + + + + + + + + + + + + set a large integer variable + + + + + + + + + + + + + + set decimal variable + + + + + + + + + + + + + + write digital to pin + + + + + + + + + + + + + + + Array member value + + + + + + + + + + + + + create a vector of numbers + + + + + + + + + + + + + + + Set a vector number + + + + + + + + + + + + + + + + + create a vector of numbers + + + + + + + + + + + + + + + + character variable + + + + + + + + + + + character + + + + + + + + + + set String variable + + + + + + + + + + + + + + + Variable String + + + + + + + + + + Servo Default + + + + + + + + + + + + com/ardublock/block/SG90.png + + + + + + + SG90 + + + + + + + + + + + + com/ardublock/block/SG90.png + + + + + + + Servo MG996R + + + + + + + + + + + + com/ardublock/block/SG90.png + + + + + + + Ultrasonic distance sensor + + + + + + + + + + + + + com/ardublock/block/ultrasonic.png + + + + + + + 20 Char by 4 Line LCD display + + + + + + + + + + + + + + + + + + com/ardublock/block/LCD20by4.png + + + + + + + 16 Char by 2 Line LCD display + + + + + + + + + + + + + + + + + + com/ardublock/block/LCD20by4.png + + + + + + + 16 Char by 2 Line LCD display + + + + + + + + + + + + + + + + + + com/ardublock/block/LCD16by2.png + + + + + + + Clear LCD + + + + + + + + + + + Home LCD + + + + + + + + + + + Home LCD + + + + + + + + + + + Home LCD + + + + + + + + + + + Home LCD + + + + + + + + + + + Home LCD + + + + + + + + + + + Home LCD + + + + + + + + + + + Home LCD + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + send message via Serial port + + + + + + + + + + + + + + string message + + + + + + + + + + glue number to string + + + + + + + + + + glue boolean to string + + + + + + + + + + + + + + + + + + + + write data via I2C + + + + + + + + + + + + + + + + + read data from i2c + + + + + + + + + + + + + + + is last read from I2C success? + + + + + + + + + + EEPROM Read integer + + + + + + + + + + + + EEPROM Write integer + + + + + + + + + + + + + + EEPROM Read 'unsigned long' + + + + + + + + + + + + EEPROM Write 'unsigned long' + + + + + + + + + + + + + + EEPROM Read + + + + + + + + + + + + EEPROM Write + + + + + + + + + + + + + + Write to SD card + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + send message via Serial port + + + + + + + + + + send message via Serial port + + + + + + + + + + send message via Serial port + + + + + + + + + + + + + + + + + + + + + + + Digital Var + + + + + + + + + + + + + + + + + + + + + + send message via Serial port + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + send message via Serial port + + + + + + + + + + + send message via Serial port + + + + + + + + + + + send message via Serial port + + + + + + + + + TinkerKit LED + + + + + + + + + + + + com/ardublock/block/arduino/Tinker_LED.jpg + + + + + + + TinkerKit LED + + + + + + + + + + + + com/ardublock/block/arduino/Tinker_LED.jpg + + + + + + + TinkerKit Mosfet + + + + + + + + + + + + com/ardublock/block/arduino/Tinker_Mosfet.jpg + + + + + + + TinkerKit Mosfet + + + + + + + + + + + + com/ardublock/block/arduino/Tinker_Mosfet.jpg + + + + + + + TinkerKit Relay + + + + + + + + + + + + com/ardublock/block/arduino/Tinker_Relay.jpg + + + + + + + TinkerKit Servo + + + + + + + + + + + + com/ardublock/block/arduino/Tinker_Servo.jpg + + + + + + + TinkerKit Button + + + + + + + + + + com/ardublock/block/arduino/Tinker_Button.png + + + + + + + TinkerKit Accelerometer + + + + + + + + + + com/ardublock/block/arduino/Tinker_Accmeter.png + + + + + + + TinkerKit Hall Sensor + + + + + + + + + + com/ardublock/block/arduino/Tinker_Hall.png + + + + + + + TinkerKit LDR + + + + + + + + + + com/ardublock/block/arduino/Tinker_LDR.jpg + + + + + + + TinkerKit Accelerometer + + + + + + + + + + com/ardublock/block/arduino/Tinker_LinearPotentiometer.jpg + + + + + + + TinkerKit RotaryPotentiometer + + + + + + + + + + com/ardublock/block/arduino/Tinker_RotaryPotentiometer.jpg + + + + + + + TinkerKit Thermistor + + + + + + + + + + com/ardublock/block/arduino/Tinker_Thermistor.jpg + + + + + + + TinkerKit Touch Sensor + + + + + + + + + + com/ardublock/block/arduino/Tinker_Touch.jpg + + + + + + + TinkerKit Servo + + + + + + + + + + + + com/ardublock/block/arduino/Tinker_Servo.jpg + + + + + + + TinkerKit Tilt + + + + + + + + + + com/ardublock/block/arduino/Tinker_Tilt.jpg + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + forward + + + + + + + + + + + + com/ardublock/block/motor.jpg + + + + + + + Moving the car backward + + + + + + + + + + + + com/ardublock/block/motor.jpg + + + + + + + Write ditial singal to Socket + + + + + + + + + + + + + + Read digital status from socket + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + com/ardublock/block/dfrobot/dfr0027.png + + + + + + + + + + + + + + com/ardublock/block/dfrobot/dfr0028.png + + + + + + + + + + + + + + com/ardublock/block/dfrobot/sen0018.png + + + + + + + + + + + + + + com/ardublock/block/dfrobot/dfr0094.jpg + + + + + + + + + + + + + + com/ardublock/block/dfrobot/sen0019.jpg + + + + + + + + + + + + + + com/ardublock/block/dfrobot/sen0017.jpg + + + + + + + + + + + + + + com/ardublock/block/dfrobot/dfr0029.png + + + + + + + + + + + + + + com/ardublock/block/dfrobot/dfr0061.png + + + + + + + + + + + + + + com/ardublock/block/dfrobot/dfr0030.png + + + + + + + + + + + + + + com/ardublock/block/dfrobot/dfr0033.png + + + + + + + + Vibration Sensor buffers a piezoelectric transducer that + responds to strain changes by generating a measurable output + voltage change which is proportional to the strength + of vibration. + + + + + + + + + + + com/ardublock/block/dfrobot/dfr0052.png + + + + + + The ambient light sensor detects light density. + + + + + + + + + + com/ardublock/block/dfrobot/dfr0026.png + + + + + + Analog Grayscale Sensor detect the grayscale. + + + + + + + + + + com/ardublock/block/dfrobot/dfr0022.png + + + + + + Read analog value from pin + + + + + + + + + + com/ardublock/block/dfrobot/dfr0076.png + + + + + + + Read analog value from pin + + + + + + + + + + com/ardublock/block/dfrobot/dfr0143.png + + + + + + + Read analog value from pin + + + + + + + + + + com/ardublock/block/dfrobot/dfr0143.png + + + + + + + + Read analog value from pin + + + + + + + + + + com/ardublock/block/dfrobot/dfr0143.png + + + + + + + Read analog value from pin + + + + + + + + + + com/ardublock/block/dfrobot/sen0014.png + + + + + + + Read analog value from pin + + + + + + + + + + com/ardublock/block/dfrobot/sen0114.png + + + + + + + + Read analog value from pin + + + + + + + + + + com/ardublock/block/dfrobot/dfr0023.png + + + + + + Read analog value from pin + + + + + + + + + + com/ardublock/block/dfrobot/dfr0061.png + + + + + + Read analog value from pin + + + + + + + + + + com/ardublock/block/dfrobot/dfr0061.png + + + + + + Read analog value from pin + + + + + + + + + + com/ardublock/block/dfrobot/dfr0068.jpg + + + + + + Read analog value from pin + + + + + + + + + + com/ardublock/block/dfrobot/dfr0068.jpg + + + + + + Read analog value from pin + + + + + + + + + + com/ardublock/block/dfrobot/dfr0068.jpg + + + + + + Read analog value from pin + + + + + + + + + + com/ardublock/block/dfrobot/dfr0054.jpg + + + + + + Read analog value from pin + + + + + + + + + + com/ardublock/block/dfrobot/dfr0058.png + + + + + + Read analog value from pin + + + + + + + + + + com/ardublock/block/dfrobot/dfr0034.png + + + + + + Read analog value of sound volume from pin + + + + + + + + + + com/ardublock/block/dfrobot/dfr0034_vol.png + + + + + + Read analog value from pin + + + + + + + + + + com/ardublock/block/dfrobot/dfr0049.jpg + + + + + + + + Read analog value from pin + + + + + + + + + + com/ardublock/block/dfrobot/sen0132.png + + + + + + + Read analog value from pin + + + + + + + + + + com/ardublock/block/dfrobot/dfr0051.png + + + + + + + set a pin to pwm + + + + + + + + + + + + + + set a pin to pwm + + + + + + + + + + + + + + Read analog value from pin + + + + + + + + + + + + Read analog value from pin + + + + + + + + + + + + set a pin to pwm + + + + + + + + + + + + + + set a pin to pwm + + + + + + + + + + + + + + set a pin to pwm + + + + + + DFRobot LED Module + + + + + + + + + + + + com/ardublock/block/dfrobot/dfr0021.png + + + + + + + DFRobot LED Module + + + + + + + + + + + + com/ardublock/block/dfrobot/dfr0021.png + + + + + + + DFRobot piranha LED Module + + + + + + + + + + + + com/ardublock/block/dfrobot/dfr0031.jpg + + + + + + + DFRobot pianha LED Module with brightnes level + + + + + + + + + + + + com/ardublock/block/dfrobot/dfr0031.jpg + + + + + + + Dfrobot Relay Module + + + + + + + + + + + + com/ardublock/block/dfrobot/dfr0017.png + + + + + + + DFRobot buzzer Module + + + + + + + + + + + + com/ardublock/block/dfrobot/dfr0032.png + + + + + + + Generates a square wave of the specified frequency (and 50% + duty cycle) on a pin. + + + + + + + + + + + + + + com/ardublock/block/dfrobot/dfr0032.png + + + + + + + Generates a square wave of the specified frequency (and 50% + duty cycle) on a pin. + + + + + + + + + + + + + + + + com/ardublock/block/dfrobot/dfr0032.png + + + + + + + LCD + + + + + + + + + com/ardublock/block/bulk/lcd2x16-01.jpg + + + + + + + + + + + Read analog value from analog pin + + + + + + + + + + com/ardublock/block/seeedstudio/COM90133P.jpg + + + + + + + Read analog value from analog pin + + + + + + + + + + com/ardublock/block/seeedstudio/COM90133P.jpg + + + + + + + Read analog value from analog pin + + + + + + + + + + com/ardublock/block/seeedstudio/o2.jpg + + + + + + Read analog value from analog pin + + + + + + + + + + com/ardublock/block/seeedstudio/uv.jpg + + + + + + Read analog value from analog pin + + + + + + + + + + com/ardublock/block/seeedstudio/gyro.jpg + + + + + + Read analog value from analog pin + + + + + + + + + + com/ardublock/block/seeedstudio/mq9.jpg + + + + + + Read analog value from analog pin + + + + + + + + + + com/ardublock/block/seeedstudio/mq3.jpg + + + + + + Read analog value from analog pin + + + + + + + + + + com/ardublock/block/seeedstudio/vib_sensor.jpg + + + + + + Read analog value from analog pin + + + + + + + + + + com/ardublock/block/seeedstudio/loud_sensor.jpg + + + + + + Read analog value from analog pin + + + + + + + + + + com/ardublock/block/seeedstudio/diff_amp.jpg + + + + + + Read analog value from analog pin + + + + + + + + + + com/ardublock/block/seeedstudio/ir_temp_sensor.jpg + + + + + + Read analog value from analog pin + + + + + + + + + + com/ardublock/block/seeedstudio/ir_proximity_sensor.jpg + + + + + + Read analog value from analog pin + + + + + + + + + + com/ardublock/block/seeedstudio/electricity_sensor.jpg + + + + + + Read analog value from analog pin + + + + + + + + + + com/ardublock/block/seeedstudio/angle_sensor.jpg + + + + + + Read analog value from analog pin + + + + + + + + + + com/ardublock/block/seeedstudio/sound_sensor.jpg + + + + + + Read analog value from analog pin + + + + + + + + + + com/ardublock/block/seeedstudio/moisture_sensor.jpg + + + + + + Read analog value from analog pin + + + + + + + + + + com/ardublock/block/seeedstudio/temp_sensor.jpg + + + + + + + Read digital from the pin + + + + + + + + + + com/ardublock/block/seeedstudio/voltage_divider.jpg + + + + + + + Read digital from the pin + + + + + + + + + + com/ardublock/block/seeedstudio/flame_sensor.jpg + + + + + + + Read digital from the pin + + + + + + + + + + com/ardublock/block/seeedstudio/button.jpg + + + + + + Read digital from the pin + + + + + + + + + + com/ardublock/block/seeedstudio/switch.jpg + + + + + + Read digital from the pin + + + + + + + + + + com/ardublock/block/seeedstudio/ir_refl_sensor.jpg + + + + + + + Read digital from the pin + + + + + + + + + + com/ardublock/block/seeedstudio/heart_rate_sensor.jpg + + + + + + + Read light + + + + + + + + + + com/ardublock/block/seeedstudio/Light_Sensor.jpg + + + + + + Read digital from the pin + + + + + + + + + + com/ardublock/block/seeedstudio/chest_heart_sensor.jpg + + + + + + + Read digital from the pin + + + + + + + + + + com/ardublock/block/seeedstudio/air_quality_sensor.jpg + + + + + + + Read digital from the pin + + + + + + + + + + com/ardublock/block/seeedstudio/line_finder.jpg + + + + + + + Read digital from the pin + + + + + + + + + + com/ardublock/block/seeedstudio/pir_motion_sensor.jpg + + + + + + + Read digital from the pin + + + + + + + + + + com/ardublock/block/seeedstudio/tilt_switch.jpg + + + + + + + Read digital from the pin + + + + + + + + + + com/ardublock/block/seeedstudio/push_button.jpg + + + + + + + Read digital from the pin + + + + + + + + + + com/ardublock/block/seeedstudio/water_sensor.jpg + + + + + + + Read digital from the pin + + + + + + + + + + com/ardublock/block/seeedstudio/touch_sensor.jpg + + + + + + + Read digital from the pin + + + + + + + + + + com/ardublock/block/seeedstudio/mag_switch.jpg + + + + + + + Read digital from the pin + + + + + + + + + + com/ardublock/block/seeedstudio/ir_dist_int.jpg + + + + + + + Write status to digital pin + + + + + + + + + + + + com/ardublock/block/seeedstudio/circle_led.jpg + + + + + + + Write status to digital pin + + + + + + + + + + + + com/ardublock/block/seeedstudio/2coil_relay.jpg + + + + + + + Write status to digital pin + + + + + + + + + + + + com/ardublock/block/seeedstudio/dry_relay.jpg + + + + + + + Write status to digital pin + + + + + + + + + + + + com/ardublock/block/seeedstudio/solid_relay.jpg + + + + + + + Write status to digital pin + + + + + + + + + + + + com/ardublock/block/seeedstudio/circle_led.jpg + + + + + + + Write status to digital pin + + + + + + + + + + + + com/ardublock/block/seeedstudio/led_strip.jpg + + + + + + + Write status to digital pin + + + + + + + + + + + + com/ardublock/block/seeedstudio/led.jpg + + + + + + + Write status to digital pin + + + + + + + + + + + + com/ardublock/block/seeedstudio/var_led.jpg + + + + + + + Write status to digital pin + + + + + + + + + + + + com/ardublock/block/seeedstudio/vib.jpg + + + + + + + Write status to digital pin + + + + + + + + + + + + com/ardublock/block/seeedstudio/relay.jpg + + + + + + + + + + + + Infrared distance sensor + + + + + + + + + + com/ardublock/block/seeedstudio/infrared.png + + + + + + + temp sensor + + + + + + + + + + com/ardublock/block/seeedstudio/temp_humi.png + + + + + + + temp sensor + + + + + + + + + + com/ardublock/block/seeedstudio/temp_humi_pro.png + + + + + + + humi sensor + + + + + + + + + + com/ardublock/block/seeedstudio/temp_humi.png + + + + + + + humi sensor + + + + + + + + + + com/ardublock/block/seeedstudio/temp_humi_pro.png + + + + + + temp sensor + + + + + + + + + + com/ardublock/block/seeedstudio/Ultrasonic_Ranger.png + + + + + + + + Led_Bar + + + + + + + + + + + + + + + + com/ardublock/block/seeedstudio/led_bar.png + + + + + + + + LCD_I2C_RG + + + + + + + + + + + + com/ardublock/block/seeedstudio/LCD_Serial_RGB_Backlight.png + + + + + + + + LCD_I2C_Backlight + + + + + + + + + + + + + + + com/ardublock/block/seeedstudio/LCD_Serial_RGB_Backlight.png + + + + + + + LCD_I2C_RG_Clear + + + + + + + + Oled_I2C + + + + + + + + + + + + + + + com/ardublock/block/seeedstudio/Oled.png + + + + + + + Oled_Clear + + + + + + + + keyboard post + + + + + + + + + + + + + com/ardublock/block/keyboard.png + + + + + + + + keyboard post + + + + + + + + + + + + + + + + + + + com/ardublock/block/keyboard.png + + + + + + + + + + + + + + + + + + + Mouse X Move + + + + + + + + + + + + + com/ardublock/block/seeedstudio/mouse.png + + + + + + + Mouse Y Move + + + + + + + + + + + + + com/ardublock/block/seeedstudio/mouse.png + + + + + + + + Keypad 12 or 16 Buttons + + + + + + + + + + + + + + + com/ardublock/block/keypad_12_button.png + + + + + + + Keypad post + + + + + + + + + + Keypad pwd + + + + + + + + + + + + + + + + + + + + + + + + + Didital Tube + + + + + + + + + + + + + + + com/ardublock/block/seeedstudio/Didital_Tube.png + + + + + + + Display Didital Tube + + + + + + + + + + + + + + + + com/ardublock/block/seeedstudio/Didital_Tube.png + + + + + + + + + + + + + + + + + + + + + + + + + + + Display Didital Tube + + + + + + + + + + + + + + + + + + + + + com/ardublock/block/seeedstudio/Didital_Tube.png + + + + + + Didital Tube Clear + + + + + + + + + + + Driver I2C forward + + + + + + + + + com/ardublock/block/seeedstudio/I2CMotorDriver.png + + + + + + + Driver I2C back + + + + + + + + + com/ardublock/block/seeedstudio/I2CMotorDriver.png + + + + + + + Driver I2C pivote + + + + + + + + + com/ardublock/block/seeedstudio/I2CMotorDriver.png + + + + + + + Driver I2C Speed A Motor + + + + + + + + + com/ardublock/block/seeedstudio/I2CMotorDriver.png + + + + + + + Driver I2C Speed B Motor + + + + + + + + + com/ardublock/block/seeedstudio/I2CMotorDriver.png + + + + + + + + + + + + + + + + + + + + + + + + Acc mesurer X + + + + + + + com/ardublock/block/seeedstudio/3_aix_acc.png + + + + + + + Acc mesurer Y + + + + + + + com/ardublock/block/seeedstudio/3_aix_acc.png + + + + + + + Acc mesurer Z + + + + + + + + com/ardublock/block/seeedstudio/3_aix_acc.png + + + + + + + Acc mesurer XYZ + + + + + + + com/ardublock/block/seeedstudio/3_aix_acc.png + + + + + + + Acc mesurer Variation + + + + + + + + com/ardublock/block/seeedstudio/3_aix_acc.png + + + + + + + Partie Emetteur + + + + + + + + + + + + com/ardublock/block/seeedstudio/Simple_RF.png + + + + + + + Partie Recepteur + + + + + + + + + + com/ardublock/block/seeedstudio/Simple_RF.png + + + + + + + DuinoEDU_Rfid_Write + + + + + + + + + + + + + + + com/ardublock/block/seeedstudio/rfid.png + + + + + + + DuinoEDU_Rfid_Ram_List + + + + + + + + + + + + + + + com/ardublock/block/seeedstudio/rfid.png + + + + + + + DuinoEDU_Rfid_Test + + + + + + + + + + + com/ardublock/block/seeedstudio/rfid.png + + + + + + DuinoEDU_Rfid_Read + + + + + + + + + com/ardublock/block/seeedstudio/rfid.png + + + + + + DuinoEDU_Rfid_Clear + + + + + + + com/ardublock/block/seeedstudio/rfid.png + + + + + + + DuinoEDU_neopixel_init + + + + + + + + + + + + + + + + + + com/ardublock/block/adafruit/neopixel.png + + + + + + + DuinoEDU_neopixel_pixel_colorGRB + + + + + + + + + + + + + + + + + + + + + com/ardublock/block/adafruit/neopixel.png + + + + + + + DuinoEDU_neopixel_pixel_colorRGB + + + + + + + + + + + + + + + + + + + + + com/ardublock/block/adafruit/neopixel.png + + + + + + DuinoEDU_neopixel_show + + + + + + + + + com/ardublock/block/adafruit/neopixel.png + + + + + + DuinoEDU_neopixel_Brightness + + + + + + + + + + + + com/ardublock/block/adafruit/neopixel.png + + + + + + DuinoEDU_neopixel_Clear + + + + + + + + + com/ardublock/block/adafruit/neopixel.png + + + + + + + DuinoEDU_stepper_step + + + + + + + + + + + + + + + + + + + + + com/ardublock/block/seeedstudio/stepper.png + + + + + + DuinoEDU_stepper_setSpeed + + + + + + + + + + + + + + + + + + + + + + + + com/ardublock/block/seeedstudio/stepper.png + + + + + + DuinoEDU_stepper_setSpeed + + + + + + + + + + + + + + + + + + + + + + + + com/ardublock/block/seeedstudio/matrice-64-spi.png + + + + + + DuinoEDU_matrice_clear + + + + + + + + + + + + + + + com/ardublock/block/seeedstudio/matrice-64-spi.png + + + + + + DuinoEDU_matrice_Brightness + + + + + + + + + + + + + + + + + + com/ardublock/block/seeedstudio/matrice-64-spi.png + + + + + + + Write status to digital pin + + + + + + + + + + + + com/ardublock/block/seeedstudio/LED_BLANCHE_GROVE.png + + + + + + + Servo Plus + + + + + + + + + + + + + + + com/ardublock/block/seeedstudio/SERVO_SG90_DUPONT_ASSEMBLE.png + + + + + + Serial Oscillo + + + + + + + + + + + + + + + Serial Oscillo Init + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Nunchuck BoutonC + + + + + + + com/ardublock/block/seeedstudio/Nunchuck.png + + + + + + Nunchuck BoutonZ + + + + + + + com/ardublock/block/seeedstudio/Nunchuck.png + + + + + + Nunchuck Joystick X + + + + + + + com/ardublock/block/seeedstudio/Nunchuck.png + + + + + + Nunchuck Joystick Y + + + + + + + com/ardublock/block/seeedstudio/Nunchuck.png + + + + + + Nunchuck Acceleration X + + + + + + + com/ardublock/block/seeedstudio/Nunchuck.png + + + + + + Nunchuck Acceleration Y + + + + + + + com/ardublock/block/seeedstudio/Nunchuck.png + + + + + + Nunchuck Acceleration Z + + + + + + + com/ardublock/block/seeedstudio/Nunchuck.png + + + + + + + + + 10mm Blue/Green/Yellow/Red LED Module + + + + + + + + + + + + com/ardublock/block/linksprite/10mmLEDModule.jpg + + + + + + + 5mm Blue/Green/Yellow/Red LED Module + + + + + + + + + + + + com/ardublock/block/linksprite/5mmLEDModule.jpg + + + + + + + Based on the excellent ADXL-345, this digital 3-axis + accelerometer has excellent EMI protection. + + + + + + + + + + com/ardublock/block/linksprite/AccelerometerModule.jpg + + + + + + + Based on the excellent ADXL-345, this digital 3-axis + accelerometer has excellent EMI protection. + + + + + + + + + + com/ardublock/block/linksprite/AccelerometerModule.jpg + + + + + + + Based on the excellent ADXL-345, this digital 3-axis + accelerometer has excellent EMI protection. + + + + + + + + + + com/ardublock/block/linksprite/AccelerometerModule.jpg + + + + + + + Button Module + + + + + + + + + + com/ardublock/block/linksprite/ButtonModule.jpg + + + + + + + Buzzer Module + + + + + + + + + + + + com/ardublock/block/linksprite/BuzzerModule.jpg + + + + + + + Hall Sensor + + + + + + + + + + com/ardublock/block/linksprite/HallSensor.jpg + + + + + + + High Power Led Module + + + + + + + + + + + + com/ardublock/block/linksprite/HighPowerLedModule.jpg + + + + + + + Joystick Sensor Module + + + + + + + + + + com/ardublock/block/linksprite/JoystickSensorModule.jpg + + + + + + + Joystick Sensor Module + + + + + + + + + + com/ardublock/block/linksprite/JoystickSensorModule.jpg + + + + + + + LDR Module + + + + + + + + + + com/ardublock/block/linksprite/LDRModule.jpg + + + + + + + LED Bar + + + + + + + + + + + + com/ardublock/block/linksprite/LEDBarr.jpg + + + + + + + Linear/Slide Potentiometer Module + + + + + + + + + + com/ardublock/block/linksprite/Linear-SlidePotentiometerModule.jpg + + + + + + + Magnetic Switch + + + + + + + + + + com/ardublock/block/linksprite/MagneticSwitch.jpg + + + + + + + Mosfet Module + + + + + + + + + + + + com/ardublock/block/linksprite/MosfetModule.jpg + + + + + + + Relay Module + + + + + + + + + + + + com/ardublock/block/linksprite/RelayModule.jpg + + + + + + + Rotary Potentiometer Module + + + + + + + + + + com/ardublock/block/linksprite/RotaryPotentiometerModule.jpg + + + + + + + RTC Module + + + + + + + + + + com/ardublock/block/linksprite/RTCModule.jpg + + + + + + + Sound Sensor + + + + + + + + + + com/ardublock/block/linksprite/SoundSensor.jpg + + + + + + + Thermal Module + + + + + + + + + + com/ardublock/block/linksprite/ThermalModule.jpg + + + + + + + Tilt Module + + + + + + + + + + com/ardublock/block/linksprite/TiltModule.jpg + + + + + + + Touch Sensor Module + + + + + + + + + + com/ardublock/block/linksprite/TouchSensorModule.jpg + + + + + + + + BLE Shield for Bluetooth Connectivity + + + + + + + + + + + + com/ardublock/block/network/bleshield.jpg + + + + + + + + + + + + + + + + + + + Adafruit DC motor + + + + + + + + + + + + + + Adafruit DC motor + + + + + + + + + + + + + + Adafruit DC motor + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + ada_neopixel_init + + + + + + + + + + + + + + + + + + com/ardublock/block/adafruit/neopixel.png + + + + + + + ada_neopixel_pixel_colorGRB + + + + + + + + + + + + + + + + + + + + + com/ardublock/block/adafruit/neopixel.png + + + + + + + ada_neopixel_pixel_colorRGB + + + + + + + + + + + + + + + + + + + + + com/ardublock/block/adafruit/neopixel.png + + + + + + + ada_neopixel_show + + + + + + + + + com/ardublock/block/adafruit/neopixel.png + + + + + + + ada_neopixel_Brightness + + + + + + + + + + + + com/ardublock/block/adafruit/neopixel.png + + + + + + + Makeblock Ultrasonic Sensor + + + + + + + + + + + com/ardublock/block/makeblock/me_ultrasonic_sensor.png + + + + + + Makeblock LineFinder + + + + + + + + + + + com/ardublock/block/makeblock/me_linefinder.png + + + + + + Makeblock LimitSwitch + + + + + + + + + + + com/ardublock/block/makeblock/me_limitswitch.png + + + + + + Makeblock Shutter For DSLR + + + + + + + + + + + + + com/ardublock/block/makeblock/me_shutter.png + + + + + + Makeblock DC Motor + + + + + + + + + + + + + + com/ardublock/block/makeblock/me_motordriver.png + + + + + + Makeblock Servo + + + + + + + + + + + + + + + com/ardublock/block/makeblock/me_servodriver.png + + + + + + Makeblock Stepper Motor + + + + + + + + + + + + + + + + + + + com/ardublock/block/makeblock/me_stepper_motor.png + + + + + + Makeblock Infrared Receiver + + + + + + + + + + + + + + com/ardublock/block/makeblock/me_infraredreceiver.png + + + + + + Makeblock Bluetooth Read + + + + + + + + + + + + + com/ardublock/block/makeblock/me_bluetooth.png + + + + + + Makeblock Bluetooth Write + + + + + + + + + + + + com/ardublock/block/makeblock/me_bluetooth_write.png + + + + + + Makeblock Bluetooth Commands + + + + + + + + + + com/ardublock/block/makeblock/me_bluetooth_cmds.png + + + + + + Makeblock Bluetooth Commands + + + + + + + + + + + + + com/ardublock/block/makeblock/me_bluetooth_cmd.png + + + + + + Me Base Shield Port + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Me Base Shield DC Motor Port + + + + + + + + + + + + + + + + + Me Shutter Action + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + workshop template + + + + com/ardublock/block/workshop/setting.png + + + + + + + workshop template + + + + com/ardublock/block/workshop/go_forward.png + + + + + + + workshop template + + + + com/ardublock/block/workshop/go_backward.png + + + + + + + workshop template + + + + com/ardublock/block/workshop/stop.png + + + + + + + workshop template + + + + com/ardublock/block/workshop/turn_left.png + + + + + + + workshop template + + + + com/ardublock/block/workshop/turn_right.png + + + + + + + workshop template + + + + com/ardublock/block/workshop/go_forward_left.png + + + + + + + workshop template + + + + com/ardublock/block/workshop/go_forward_right.png + + + + + + + workshop template + + + + com/ardublock/block/workshop/go_back_left.png + + + + + + + workshop template + + + + com/ardublock/block/workshop/go_back_right.png + + + + + + + + workshop template + + + + com/ardublock/block/workshop/light.png + + + + + + + workshop template + + + + com/ardublock/block/workshop/scan.png + + + + + + + workshop template + + + + com/ardublock/block/workshop/music.png + + + + + + + workshop template + + + + com/ardublock/block/workshop/wireless.png + + + + + + + workshop template + + + + + + + com/ardublock/block/workshop/danger.png + + + + + + + workshop template + + + + + + + com/ardublock/block/workshop/binoculars.png + + + + + + + + + workshop template + + + + + + + com/ardublock/block/workshop/insectbot_distance.png + + + + + + + workshop template + + + + + + + com/ardublock/block/workshop/insectbot_danger.png + + + + + + + workshop template + + + + com/ardublock/block/workshop/insectbot_goforward.png + + + + + + + workshop template + + + + com/ardublock/block/workshop/insectbot_gobackright.png + + + + + + + workshop template + + + + com/ardublock/block/workshop/insectbot_turnleft.png + + + + + + + workshop template + + + + com/ardublock/block/workshop/insectbot_led.png + + + + + + + BendSensor + + + + + + + + + + com/ardublock/block/littlebits/input/BendSensor.jpg + + + + + + + Button + + + + + + + + + + com/ardublock/block/littlebits/input/Button.jpg + + + + + + + Dimmer + + + + + + + + + + com/ardublock/block/littlebits/input/Dimmer.jpg + + + + + + + LightSensor + + + + + + + + + + com/ardublock/block/littlebits/input/LightSensor.jpg + + + + + + + LightTrigger + + + + + + + + + + com/ardublock/block/littlebits/input/LightTrigger.jpg + + + + + + + Microphone + + + + + + + + + + com/ardublock/block/littlebits/input/Microphone.jpg + + + + + + + MotionTrigger + + + + + + + + + + com/ardublock/block/littlebits/input/MotionTrigger.jpg + + + + + + + PressureSensor + + + + + + + + + + com/ardublock/block/littlebits/input/PressureSensor.jpg + + + + + + + Pulse + + + + + + + + + + com/ardublock/block/littlebits/input/Pulse.jpg + + + + + + + RemoteTrigger + + + + + + + + + + com/ardublock/block/littlebits/input/RemoteTrigger.jpg + + + + + + + RollerSwitch + + + + + + + + + + com/ardublock/block/littlebits/input/RollerSwitch.jpg + + + + + + + SlideDimmer + + + + + + + + + + com/ardublock/block/littlebits/input/SlideDimmer.jpg + + + + + + + SlideSwitch + + + + + + + + + + com/ardublock/block/littlebits/input/SlideSwitch.jpg + + + + + + + SoundTrigger + + + + + + + + + + com/ardublock/block/littlebits/input/SoundTrigger.jpg + + + + + + + TimeOut + + + + + + + + + + com/ardublock/block/littlebits/input/TimeOut.jpg + + + + + + + ToggleSwitch + + + + + + + + + + com/ardublock/block/littlebits/input/ToggleSwitch.jpg + + + + + + + mix + + + + + + + + + + com/ardublock/block/littlebits/input/mix.jpg + + + + + + + oscillator + + + + + + + + + + com/ardublock/block/littlebits/input/oscillator.jpg + + + + + + + random + + + + + + + + + + com/ardublock/block/littlebits/input/random.jpg + + + + + + + Bargraph + + + + + + + + + + + + com/ardublock/block/littlebits/output/Bargraph.jpg + + + + + + + BrightLED + + + + + + + + + + + + com/ardublock/block/littlebits/output/BrightLED.jpg + + + + + + + DCMotor + + + + + + + + + + + + com/ardublock/block/littlebits/output/DCMotor.jpg + + + + + + + Fan + + + + + + + + + + + + com/ardublock/block/littlebits/output/Fan.jpg + + + + + + + IR_LED + + + + + + + + + + + + com/ardublock/block/littlebits/output/IR_LED.jpg + + + + + + + LED + + + + + + + + + + + + com/ardublock/block/littlebits/output/LED.jpg + + + + + + + Lightwire + + + + + + + + + + + + com/ardublock/block/littlebits/output/Lightwire.jpg + + + + + + + LongLED + + + + + + + + + + + + com/ardublock/block/littlebits/output/LongLED.jpg + + + + + + + Number + + + + + + + + + + + + com/ardublock/block/littlebits/output/Number.jpg + + + + + + + RGBLED + + + + + + + + + + + + com/ardublock/block/littlebits/output/RGBLED.jpg + + + + + + + UVLED + + + + + + + + + + + + com/ardublock/block/littlebits/output/UVLED.jpg + + + + + + + Vibration_Motor + + + + + + + + + + + + com/ardublock/block/littlebits/output/Vibration_Motor.jpg + + + + + + + synthspeaker + + + + + + + + + + + + com/ardublock/block/littlebits/output/synthspeaker.jpg + + + + + + + set both left and right motor Keenlon Robot 上海擎朗智能 + + + + + + + + + + + + com/ardublock/block/keenlon/k_dianji.png + + + + + + + set left or right motor Keenlon Robot 上海擎朗智能 + + + + + + + + + + + + com/ardublock/block/keenlon/k_dianji.png + + + + + + + stop motor Keenlon Robot 上海擎朗智能 + + + + com/ardublock/block/keenlon/k_dianji.png + + + + + + + print string to TFT Keenlon Robot 上海擎朗智能 + + + + + + + + + + + + com/ardublock/block/keenlon/k_tft.png + + + + + + + clear TFT Keenlon Robot 上海擎朗智能 + + + + com/ardublock/block/keenlon/k_tft.png + + + + + + + get eye min value Keenlon Robot 上海擎朗智能 + + + + + + + + com/ardublock/block/keenlon/k_fuyan.png + + + + + + + get eye min index Keenlon Robot 上海擎朗智能 + + + + + + + com/ardublock/block/keenlon/k_fuyan.png + + + + + + + get eye max value Keenlon Robot 上海擎朗智能 + + + + + + + com/ardublock/block/keenlon/k_fuyan.png + + + + + + + get eye max index Keenlon Robot 上海擎朗智能 + + + + + + + com/ardublock/block/keenlon/k_fuyan.png + + + + + + + get eye on a channel Keenlon Robot 上海擎朗智能 + + + + + + + + + + + + get button Keenlon Robot 上海擎朗智能 + + + + + + + + + encoder clear Keenlon Robot 上海擎朗智能 + + + + + + + + + com/ardublock/block/keenlon/k_bianmaqi.png + + + + + + + get encoder Keenlon Robot 上海擎朗智能 + + + + + + + + + + com/ardublock/block/keenlon/k_bianmaqi.png + + + + + + + + + tft add a variable Keenlon Robot 上海擎朗智能 + + + + + + + + + + + get compass degree Keenlon Robot 上海擎朗智能 + + + + + + + com/ardublock/block/keenlon/k_compass.png + + + + + + + buzzer Keenlon Robot 上海擎朗智能 + + + + + + + + + + + + com/ardublock/block/keenlon/k_fengminqi.png + + + + + + + ground light sensor Keenlon Robot 上海擎朗智能 + + + + + + + + + + com/ardublock/block/keenlon/k_dimianhuidu.png + + + + + + + led on off Keenlon Robot 上海擎朗智能 + + + + + + + + + + + + com/ardublock/block/keenlon/k_led.png + + + + + + + led pwm Keenlon Robot 上海擎朗智能 + + + + + + + + + + + + com/ardublock/block/keenlon/k_led.png + + + + + + + light sensor Keenlon Robot 上海擎朗智能 + + + + + + + + + + com/ardublock/block/keenlon/k_guanggan.png + + + + + + + mic Keenlon Robot 上海擎朗智能 + + + + + + + + + + com/ardublock/block/keenlon/k_fengminqi.png + + + + + + + photo sensor Keenlon Robot 上海擎朗智能 + + + + + + + + + + com/ardublock/block/keenlon/k_guangdian.png + + + + + + + potentiometer sensor Keenlon Robot 上海擎朗智能 + + + + + + + + + + com/ardublock/block/keenlon/k_dianweiqi.png + + + + + + + relays Keenlon Robot 上海擎朗智能 + + + + + + + + + + + + com/ardublock/block/keenlon/k_jidianqi.png + + + + + + + tempe sensor Keenlon Robot 上海擎朗智能 + + + + + + + + + + com/ardublock/block/keenlon/k_wendu.png + + + + + + + sharp distance sensor Keenlon Robot 上海擎朗智能 + + + + + + + + + + com/ardublock/block/keenlon/k_psd.png + + + + + + + touch sensor Keenlon Robot 上海擎朗智能 + + + + + + + + + + com/ardublock/block/keenlon/k_pengzhuang.png + + + + + + + + + set a pin to pwm Keenlon Robot 上海擎朗智能 + + + + + + + + + + + + com/ardublock/block/keenlon/k_duoji.png + + + + + + + + + + Flashing Mode + + + + + + + + + + + Fading Mode + + + + + + + + + + + + Pin name + + + + + + + + + + + trigger equal + + + + + + + + + + + trigger greater + + + + + + + + + + + trigger less + + + + + + + + + + + + + Random Mode + + + + + + + + + + + Single Mode + + + + + + + + + + + high + + + + + + + + + + + low + + + + + + + + + + + high pulse + + + + + + + + + + + low pulse + + + + + + + + + + + + + set iDrawing parameter + + + + + + + + + + + + + + + iDrawing run + + + + + + + + set rule + + + + + + + + + + set rule + + + + + + + + + + + + + let system go to sleep state + + + + + + + + + + + + tigger + + + + + + + + + + + + digital pin + + + + + + + + + + + + + + + analog pin + + + + + + + + + + + + + + + + + + + + + actuator + + + + + + + + + + + + + + + + + + + actuator + + + + + + + + + + + + + + + + + + + digital pin + + + + + + + + + + + + + + + + Midi Command + + + + + + + + + + + + + + + + + + com/ardublock/block/jerusalab/midi_command.png + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + digital-high + digital-low + + + and + or + + + true + false + + + addition + subtraction + multiplication + division + modulo + + + min + max + + + greater + less + equal + greater_equal + less_equal + not_equal + + + equal_digital + not_equal_digital + + + equal_poly + not_equal_poly + + + string_greater + string_less + string_equal + string_greater_equal + string_less_equal + string_not_equal + string_equals + string_equalsIgnoreCase + string_compareTo + + + equal_string + not_equal_string + + + sin + cos + tan + + + code_head + code_setup + code_loop + + + digital-on + digital-off + + + LCD_I2C_Sainsmart_20by4 + LCD_I2C_Sainsmart_16by2 + + + LCD_command_clear + LCD_command_home + LCD_command_lightOff + LCD_command_lightOn + LCD_command_cursorOn + LCD_command_cursorOff + LCD_command_blinkOn + LCD_command_blinkOff + + + servo_default + servo_sg90 + servo_mg996r + + + + + + + pinListDigital_D0 + pinListDigital_D1 + pinListDigital_D2 + pinListDigital_D3 + pinListDigital_D4 + pinListDigital_D5 + pinListDigital_D6 + pinListDigital_D7 + pinListDigital_D8 + pinListDigital_D9 + pinListDigital_D10 + pinListDigital_D11 + pinListDigital_D12 + pinListDigital_D13 + pinListDigital_D14 + pinListDigital_D15 + pinListDigital_D16 + pinListDigital_D17 + pinListDigital_D18 + pinListDigital_D19 + + pinListDigital_D20 + pinListDigital_D21 + pinListDigital_D22 + pinListDigital_D23 + pinListDigital_D24 + pinListDigital_D25 + pinListDigital_D26 + pinListDigital_D27 + pinListDigital_D28 + pinListDigital_D29 + pinListDigital_D30 + pinListDigital_D31 + pinListDigital_D32 + pinListDigital_D33 + pinListDigital_D34 + pinListDigital_D35 + pinListDigital_D36 + pinListDigital_D37 + pinListDigital_D38 + pinListDigital_D39 + pinListDigital_D40 + pinListDigital_D41 + pinListDigital_D42 + pinListDigital_D43 + pinListDigital_D44 + pinListDigital_D45 + pinListDigital_D46 + pinListDigital_D47 + pinListDigital_D48 + pinListDigital_D49 + pinListDigital_D50 + pinListDigital_D51 + pinListDigital_D52 + pinListDigital_D53 + + + pinListAnalog_A0 + pinListAnalog_A1 + pinListAnalog_A2 + pinListAnalog_A3 + pinListAnalog_A4 + pinListAnalog_A5 + + + + + pinListAnalog_A0 + pinListAnalog_A1 + pinListAnalog_A2 + pinListAnalog_A3 + pinListAnalog_A4 + pinListAnalog_A5 + + pinListAnalog_A6 + pinListAnalog_A7 + + pinListAnalog_A8 + pinListAnalog_A9 + pinListAnalog_A10 + pinListAnalog_A11 + pinListAnalog_A12 + pinListAnalog_A13 + pinListAnalog_A14 + pinListAnalog_A15 + + + + + pinListAnalogWrite_D3 + pinListAnalogWrite_D5 + pinListAnalogWrite_D6 + pinListAnalogWrite_D9 + pinListAnalogWrite_D10 + pinListAnalogWrite_D11 + + pinListAnalogWrite_D2 + pinListAnalogWrite_D4 + pinListAnalogWrite_D7 + pinListAnalogWrite_D8 + pinListAnalogWrite_D12 + pinListAnalogWrite_D13 + pinListAnalogWrite_D44 + pinListAnalogWrite_D45 + pinListAnalogWrite_D46 + + + + df_joystick_module_x + df_joystick_module_y + + + df_mma7260_x + df_mma7260_y + df_mma7260_z + + + Tinker_I0 + Tinker_I1 + Tinker_I2 + Tinker_I3 + Tinker_I4 + Tinker_I5 + + + Tinker_O0 + Tinker_O1 + Tinker_O2 + Tinker_O3 + Tinker_O4 + Tinker_O5 + + + panda_i1 + panda_i2 + panda_i3 + panda_i4 + panda_i5 + + + panda_o1 + panda_o2 + panda_o3 + panda_o4 + panda_o5 + + + ada_dc_motor_fwd + ada_dc_motor_bwd + ada_dc_motor_release + + + ada_neopixel_NEO_GRB + ada_neopixel_NEO_RGB + + + ada_neopixel_NEO_KHZ400 + ada_neopixel_NEO_KHZ800 + + + ada_neopixel_pixel_colorRGB + ada_neopixel_pixel_colorGRB + + + me_port_1 + me_port_2 + me_port_3 + me_port_4 + me_port_5 + me_port_6 + me_port_7 + me_port_8 + + + me_motor_1 + me_motor_2 + + + me_shutter_1 + me_shutter_2 + me_shutter_3 + me_shutter_4 + + + scoop_event_low + scoop_event_high + scoop_event_falling + scoop_event_rising + scoop_event_change + + + led_mode_flash + led_mode_fade + + + + trigger_equal + trigger_greater + trigger_less + + + + player_mode_random + player_mode_single + + + + output_mode_high + output_mode_low + output_mode_highpulse + output_mode_lowpulse + + + DuinoEDU_right + DuinoEDU_straight + DuinoEDU_left + + + DuinoEDU_Driver_I2C_Forward + DuinoEDU_Driver_I2C_Back + DuinoEDU_Driver_I2C_Pivoter + + + DuinoEDU_Driver_I2C_Speed_A_Motor + DuinoEDU_Driver_I2C_Speed_B_Motor + + + DuinoEDU_Aix_Acc_mesurerX + DuinoEDU_Aix_Acc_mesurerY + DuinoEDU_Aix_Acc_mesurerZ + DuinoEDU_Aix_Acc_mesurerXYZ + DuinoEDU_Aix_Acc_mesurerVariation + + + DuinoEDU_humiPro + DuinoEDU_tempPro + + + DuinoEDU_temp + DuinoEDU_humi + + + DuinoEDU_On_digit1 + DuinoEDU_On_digit2 + DuinoEDU_On_digit3 + DuinoEDU_On_digit4 + + + DuinoEDU_setSerialInfosOn + DuinoEDU_setSerialInfosOff + + + DuinoEDU_Mouse_Xmove + DuinoEDU_Mouse_Ymove + + + DuinoEDU_equal + DuinoEDU_notequal + + + DuinoEDU_Rfid_Write + DuinoEDU_Rfid_Ram_List + + + DuinoEDU_neopixel_pixel_colorGRB + DuinoEDU_neopixel_pixel_colorRGB + + + DDRA + DDRB + DDRC + DDRD + DDRH + DDRL + + + PORTA + PORTB + PORTC + PORTD + PORTH + PORTL + + + PINA + PINB + PINC + PIND + PINH + PINL + + + DuinoEDU_Volts + DuinoEDU_VALEURS_BRUTES + DuinoEDU_CM + DuinoEDU_DEGRES + + + DuinoEDU_Nunchuck_BoutonC + DuinoEDU_Nunchuck_BoutonZ + DuinoEDU_Nunchuck_JoystickX + DuinoEDU_Nunchuck_JoystickY + DuinoEDU_Nunchuck_AccelerationX + DuinoEDU_Nunchuck_AccelerationY + DuinoEDU_Nunchuck_AccelerationZ + + + Midi_C + Midi_CS + Midi_D + Midi_DS + Midi_E + Midi_F + Midi_FS + Midi_G + Midi_GS + Midi_A + Midi_AS + Midi_B + + + + + + + + program + loop + subroutine + scoop_task + scoop_loop + scoop_pin_event + scoop_event_low + scoop_event_high + scoop_event_falling + scoop_event_rising + scoop_event_change + + + delay + delay_microseconds + scoop_sleep + subroutine-ref + if + ifelse + while + do_while + repeat_times + repeat + repeat_control + + + pin-read-digital + pin-read-digital-pullup + pin-read-analog + pin-write-digital + pin-write-analog + tone + tone_time + no_tone + + + greater + less + equal + greater_equal + less_equal + not_equal + equal_digital + not_equal_digital + equal_poly + not_equal_poly + and + or + not + + + addition + subtraction + multiplication + division + modulo + abs + pow + sqrt + sin + cos + tan + random + random_range + min + max + map_common + map + constrain + + + setter_variable_number + variable_number + number + setter_variable_digital + variable_digital + digital-high + digital-low + true + false + setter_variable_number_unsigned_long + variable_number_unsigned_long + number_long + millis + create_variable_vector + variable_vector + setter_variable_vector + setter_variable_char + variable_poly + char + setter_variable_number_double + variable_number_double + number_double + pinListDigital_D0 + pinListAnalog_A0 + pinListAnalogWrite_D3 + + + servo_sg90 + ultrasonic + LCD_I2C_Sainsmart_20by4 + LCD_command_lightOff + LCD_PLL_Sainsmart_16by2 + number-single-I2C-address + number-single-fixed-parallel + + + serial_read + serial_read_poly + serial_available + serial_print + serial_println + message + glue_sn + glue_sb + glue_poly + wire_write + wire_read + wire_isread + + + eeprom_read_int + eeprom_write_int + eeprom_read_long + eeprom_write_long + eeprom_read + eeprom_write + + + + + + + bleshield + bleshield_available + bleshield_read_poly + + + code_head + code_setup + code_loop + + + + + + + + + + + + + + + + + + + + + + + + + + + com/ardublock/block/trash_open.png + com/ardublock/block/trash.png + + + diff --git a/src/main/resources/com/ardublock/block/Skins/Highclare/block-mapping.properties b/src/main/resources/com/ardublock/block/Skins/Highclare/block-mapping.properties new file mode 100644 index 00000000..0353c125 --- /dev/null +++ b/src/main/resources/com/ardublock/block/Skins/Highclare/block-mapping.properties @@ -0,0 +1,713 @@ +#short name can be found in /src/com/ardublock/translator/block/TranslatorBlockFactory.java +eeprom_read=com.ardublock.translator.block.storage.EEPROMReadBlock +eeprom_write=com.ardublock.translator.block.storage.EEPROMWriteBlock +eeprom_read_int=com.ardublock.translator.block.storage.EEPROMReadIntBlock +eeprom_write_int=com.ardublock.translator.block.storage.EEPROMWriteIntBlock +eeprom_read_long=com.ardublock.translator.block.storage.EEPROMReadLongBlock +eeprom_write_long=com.ardublock.translator.block.storage.EEPROMWriteLongBlock +sd_write=com.ardublock.translator.block.storage.SDWriteBlock +sd_write_number=com.ardublock.translator.block.storage.SDWriteNumberBlock +sd_write_number_int=com.ardublock.translator.block.storage.SDWriteNumberIntBlock +sd_return=com.ardublock.translator.block.storage.SDPortBlock +sd_no_return=com.ardublock.translator.block.storage.SDPortBlock +sd_write2=com.ardublock.translator.block.storage.SDWrite2Block +constrain=com.ardublock.translator.block.ConstrainBlock + + +variable_poly=com.ardublock.translator.block.VariablePolyBlock +char=com.ardublock.translator.block.PolyBlock +setter_variable_char=com.ardublock.translator.block.SetterVariablePolyBlock +glue_poly=com.ardublock.translator.block.GluePolyBlock +serial_read_poly=com.ardublock.translator.block.SerialReadPolyBlock +equal_poly=com.ardublock.translator.block.EqualPolyBlock +equal_string=com.ardublock.translator.block.EqualPolyBlock +not_equal_poly=com.ardublock.translator.block.NotEqualPolyBlock +not_equal_string=com.ardublock.translator.block.NotEqualPolyBlock +serial_available=com.ardublock.translator.block.SerialAvailableBlock +program=com.ardublock.translator.block.ProgramBlock +setup=com.ardublock.translator.block.SetupBlock(Anybody using it???) +variable_fake=com.ardublock.translator.block.VariableFakeBlock +variable_vector=com.ardublock.translator.block.VariableVectorBlock +setter_variable_vector=com.ardublock.translator.block.SetterVariableVectorBlock +create_variable_vector=com.ardublock.translator.block.CreateVariableVectorBlock +code_head=com.ardublock.translator.block.CodeHeadBlock +code_setup=com.ardublock.translator.block.CodeSetupBlock +code_loop=com.ardublock.translator.block.CodeLoopBlock +serial_read=com.ardublock.translator.block.SerialReadBlock +equal_digital=com.ardublock.translator.block.EqualDigitalBlock +not_equal_digital=com.ardublock.translator.block.NotEqualDigitalBlock +repeat=com.ardublock.translator.block.RepeatBlock +repeat_control=com.ardublock.translator.block.RepeatControlBlock +glue_msg=com.ardublock.translator.block.GlueMSGBlock + + +#arduino control +loop=com.ardublock.translator.block.LoopBlock +ifelse=com.ardublock.translator.block.IfelseBlock +true=com.ardublock.translator.block.TrueBlock +and=com.ardublock.translator.block.AndBlock +not=com.ardublock.translator.block.NotBlock +or=com.ardublock.translator.block.OrBlock +digital-high=com.ardublock.translator.block.DigitalHighBlock +digital-low=com.ardublock.translator.block.DigitalLowBlock +digital-on=com.ardublock.translator.block.DigitalOnBlock +digital-off=com.ardublock.translator.block.DigitalOffBlock +false=com.ardublock.translator.block.FalseBlock +if=com.ardublock.translator.block.IfBlock +while=com.ardublock.translator.block.WhileBlock +do_while=com.ardublock.translator.block.DoWhileBlock +repeat_times=com.ardublock.translator.block.RepeatTimesBlock +break=com.ardublock.translator.block.BreakBlock +subroutine=com.ardublock.translator.block.SubroutineBlock +subroutine-ref=com.ardublock.translator.block.SubroutineRefBlock +scoop_loop=com.ardublock.translator.block.scoop.SCoopLoopBlock +scoop_task=com.ardublock.translator.block.scoop.SCoopTaskBlock +scoop_sleep=com.ardublock.translator.block.scoop.SCoopSleepBlock +scoop_pin_event=com.ardublock.translator.block.scoop.SCoopPinEventBlock +scoop_event_low=com.ardublock.translator.block.scoop.SCoopEventLowBlock +scoop_event_high=com.ardublock.translator.block.scoop.SCoopEventHighBlock +scoop_event_falling=com.ardublock.translator.block.scoop.SCoopEventFallingBlock +scoop_event_rising=com.ardublock.translator.block.scoop.SCoopEventRisingBlock +scoop_event_change=com.ardublock.translator.block.scoop.SCoopEventChangeBlock + +#const number +number=com.ardublock.translator.block.NumberBlock +number_long=com.ardublock.translator.block.NumberUnsignedLongBlock +number_double=com.ardublock.translator.block.NumberDoubleBlock +message=com.ardublock.translator.block.MessageBlock +glue_sn=com.ardublock.translator.block.GlueSNBlock +glue_sb=com.ardublock.translator.block.GlueSBBlock +number-single=com.ardublock.translator.block.NumberBlock +number-single-fixed-parallel=com.ardublock.translator.block.NumberBlock + +#Pin List Constants +# +pinListDigital_D0=com.ardublock.translator.block.D0 +pinListDigital_D1=com.ardublock.translator.block.D1 +pinListDigital_D2=com.ardublock.translator.block.D2 +pinListDigital_D3=com.ardublock.translator.block.D3 +pinListDigital_D4=com.ardublock.translator.block.D4 +pinListDigital_D5=com.ardublock.translator.block.D5 +pinListDigital_D6=com.ardublock.translator.block.D6 +pinListDigital_D7=com.ardublock.translator.block.D7 +pinListDigital_D8=com.ardublock.translator.block.D8 +pinListDigital_D9=com.ardublock.translator.block.D9 +pinListDigital_D10=com.ardublock.translator.block.D10 +pinListDigital_D11=com.ardublock.translator.block.D11 +pinListDigital_D12=com.ardublock.translator.block.D12 +pinListDigital_D13=com.ardublock.translator.block.D13 +pinListDigital_D14=com.ardublock.translator.block.D14 +pinListDigital_D15=com.ardublock.translator.block.D15 +pinListDigital_D16=com.ardublock.translator.block.D16 +pinListDigital_D17=com.ardublock.translator.block.D17 +pinListDigital_D18=com.ardublock.translator.block.D18 +pinListDigital_D19=com.ardublock.translator.block.D19 +# +pinListDigital_D20=com.ardublock.translator.block.D20 +pinListDigital_D21=com.ardublock.translator.block.D21 +pinListDigital_D22=com.ardublock.translator.block.D22 +pinListDigital_D23=com.ardublock.translator.block.D23 +pinListDigital_D24=com.ardublock.translator.block.D24 +pinListDigital_D25=com.ardublock.translator.block.D25 +pinListDigital_D26=com.ardublock.translator.block.D26 +pinListDigital_D27=com.ardublock.translator.block.D27 +pinListDigital_D28=com.ardublock.translator.block.D28 +pinListDigital_D29=com.ardublock.translator.block.D29 +pinListDigital_D30=com.ardublock.translator.block.D30 +pinListDigital_D31=com.ardublock.translator.block.D31 +pinListDigital_D32=com.ardublock.translator.block.D32 +pinListDigital_D33=com.ardublock.translator.block.D33 +pinListDigital_D34=com.ardublock.translator.block.D34 +pinListDigital_D35=com.ardublock.translator.block.D35 +pinListDigital_D36=com.ardublock.translator.block.D36 +pinListDigital_D37=com.ardublock.translator.block.D37 +pinListDigital_D38=com.ardublock.translator.block.D38 +pinListDigital_D39=com.ardublock.translator.block.D39 +pinListDigital_D40=com.ardublock.translator.block.D40 +pinListDigital_D41=com.ardublock.translator.block.D41 +pinListDigital_D42=com.ardublock.translator.block.D42 +pinListDigital_D43=com.ardublock.translator.block.D43 +pinListDigital_D44=com.ardublock.translator.block.D44 +pinListDigital_D45=com.ardublock.translator.block.D45 +pinListDigital_D46=com.ardublock.translator.block.D46 +pinListDigital_D47=com.ardublock.translator.block.D47 +pinListDigital_D48=com.ardublock.translator.block.D48 +pinListDigital_D49=com.ardublock.translator.block.D49 +pinListDigital_D50=com.ardublock.translator.block.D50 +pinListDigital_D51=com.ardublock.translator.block.D51 +pinListDigital_D52=com.ardublock.translator.block.D52 +pinListDigital_D53=com.ardublock.translator.block.D53 +# +pinListAnalogWrite_D3=com.ardublock.translator.block.D3 +pinListAnalogWrite_D5=com.ardublock.translator.block.D5 +pinListAnalogWrite_D6=com.ardublock.translator.block.D6 +pinListAnalogWrite_D9=com.ardublock.translator.block.D9 +pinListAnalogWrite_D10=com.ardublock.translator.block.D10 +pinListAnalogWrite_D11=com.ardublock.translator.block.D11 +# +pinListAnalogWrite_D2=com.ardublock.translator.block.D2 +pinListAnalogWrite_D4=com.ardublock.translator.block.D4 +pinListAnalogWrite_D7=com.ardublock.translator.block.D7 +pinListAnalogWrite_D8=com.ardublock.translator.block.D8 +pinListAnalogWrite_D12=com.ardublock.translator.block.D12 +pinListAnalogWrite_D13=com.ardublock.translator.block.D13 +pinListAnalogWrite_D44=com.ardublock.translator.block.D44 +pinListAnalogWrite_D44=com.ardublock.translator.block.D45 +pinListAnalogWrite_D46=com.ardublock.translator.block.D46 + +pinListAnalog_A0=com.ardublock.translator.block.A0 +pinListAnalog_A1=com.ardublock.translator.block.A1 +pinListAnalog_A2=com.ardublock.translator.block.A2 +pinListAnalog_A3=com.ardublock.translator.block.A3 +pinListAnalog_A4=com.ardublock.translator.block.A4 +pinListAnalog_A5=com.ardublock.translator.block.A5 +pinListAnalog_A6=com.ardublock.translator.block.A6 +pinListAnalog_A7=com.ardublock.translator.block.A7 +pinListAnalog_A8=com.ardublock.translator.block.A8 +pinListAnalog_A9=com.ardublock.translator.block.A9 +pinListAnalog_A10=com.ardublock.translator.block.A10 +pinListAnalog_A11=com.ardublock.translator.block.A11 +pinListAnalog_A12=com.ardublock.translator.block.A12 +pinListAnalog_A13=com.ardublock.translator.block.A13 +pinListAnalog_A14=com.ardublock.translator.block.A14 +pinListAnalog_A15=com.ardublock.translator.block.A15 + +#Pin +pin-read-analog=analogInput +pin-read-digital=digitalInput +pin-read-digital-pullup=digitalInputPullup +pin-write-analog=analogOutput +pin-write-digital=digitalOutput +servo=servo +ultrasonic=com.ardublock.translator.block.UltrasonicBlock +LCD_I2C_Sainsmart_20by4=com.ardublock.translator.block.LCD_I2C_Sainsmart_20by4_Block +LCD_I2C_Sainsmart_16by2=com.ardublock.translator.block.LCD_I2C_Sainsmart_16by2_Block +LCD_PLL_Sainsmart_16by2=com.ardublock.translator.block.LCD_PLL_Sainsmart_16by2_Block +LCD_command_clear=com.ardublock.translator.block.LCD_command_clear_Block +LCD_command_home=com.ardublock.translator.block.LCD_command_home_Block +LCD_command_lightOn=com.ardublock.translator.block.LCD_command_lightOn_Block +LCD_command_lightOff=com.ardublock.translator.block.LCD_command_lightOff_Block +LCD_command_cursorOn=com.ardublock.translator.block.LCD_command_cursorOn_Block +LCD_command_cursorOff=com.ardublock.translator.block.LCD_command_cursorOff_Block +LCD_command_blinkOn=com.ardublock.translator.block.LCD_command_blinkOn_Block +LCD_command_blinkOff=com.ardublock.translator.block.LCD_command_blinkOff_Block +tone=tone +tone_time=toneTime +no_tone=noTone +setter_variable_number=com.ardublock.translator.block.SetterVariableNumberBlock +setter_variable_number_unsigned_long=com.ardublock.translator.block.SetterVariableNumberUnsignedLongBlock +setter_variable_number_double=com.ardublock.translator.block.SetterVariableNumberDoubleBlock +variable_number=com.ardublock.translator.block.VariableNumberBlock +variable_number_unsigned_long=com.ardublock.translator.block.VariableNumberUnsignedLongBlock +variable_number_double=com.ardublock.translator.block.VariableNumberDoubleBlock +setter_variable_digital=com.ardublock.translator.block.SetterVariableDigitalBlock +variable_digital=com.ardublock.translator.block.VariableDigitalBlock +variable_string=com.ardublock.translator.block.VariableStringBlock +setter_variable_String=com.ardublock.translator.block.setter_variable_String +variable_String=com.ardublock.translator.block.variable_String +DDRA=com.ardublock.translator.block.DDR_Port +DDRB=com.ardublock.translator.block.DDR_Port +DDRC=com.ardublock.translator.block.DDR_Port +DDRD=com.ardublock.translator.block.DDR_Port +DDRH=com.ardublock.translator.block.DDR_Port +DDRL=com.ardublock.translator.block.DDR_Port +PORTA=com.ardublock.translator.block.PORT +PORTB=com.ardublock.translator.block.PORT +PORTC=com.ardublock.translator.block.PORT +PORTD=com.ardublock.translator.block.PORT +PORTH=com.ardublock.translator.block.PORT +PORTL=com.ardublock.translator.block.PORT +PINA=com.ardublock.translator.block.PIN_port +PINB=com.ardublock.translator.block.PIN_port +PINC=com.ardublock.translator.block.PIN_port +PIND=com.ardublock.translator.block.PIN_port +PINH=com.ardublock.translator.block.PIN_port +PINL=com.ardublock.translator.block.PIN_port +#Math +addition=com.ardublock.translator.block.AdditionBlock +subtraction=com.ardublock.translator.block.SubtractionBlock +multiplication=com.ardublock.translator.block.MultiplicationBlock +division=com.ardublock.translator.block.DivisionBlock +modulo=com.ardublock.translator.block.ModuloBlock +greater=com.ardublock.translator.block.GreaterBlock +less=com.ardublock.translator.block.LessBlock +equal=com.ardublock.translator.block.EqualBlock +greater_equal=com.ardublock.translator.block.GreaterEqualBlock +less_equal=com.ardublock.translator.block.LessEqualBlock +not_equal=com.ardublock.translator.block.NotEqualBlock +min=com.ardublock.translator.block.MinBlock +max=com.ardublock.translator.block.MaxBlock +abs=com.ardublock.translator.block.AbsBlock +pow=com.ardublock.translator.block.PowBlock +sqrt=com.ardublock.translator.block.SqrtBlock +sin=com.ardublock.translator.block.SinBlock +cos=com.ardublock.translator.block.CosBlock +tan=com.ardublock.translator.block.TanBlock + +string_empty=com.ardublock.translator.block.StringEmptyBlock +string_greater=com.ardublock.translator.block.GreaterBlock +string_less=com.ardublock.translator.block.LessBlock +string_equal=com.ardublock.translator.block.EqualBlock +string_greater_equal=com.ardublock.translator.block.GreaterEqualBlock +string_less_equal=com.ardublock.translator.block.LessEqualBlock +string_not_equal=com.ardublock.translator.block.NotEqualBlock +string_equals=com.ardublock.translator.block.string_equals +string_equalsIgnoreCase=com.ardublock.translator.block.string_equalsIgnoreCase +string_toInt=com.ardublock.translator.block.string_toInt +string_compareTo=com.ardublock.translator.block.string_compareTo + +#Utility + +delay=com.ardublock.translator.block.DelayBlock +random=com.ardublock.translator.block.RandomBlock +map_common=com.ardublock.translator.block.MapCommonBlock +map=com.ardublock.translator.block.MapBlock +delay_microseconds=com.ardublock.translator.block.DelayMicrosecondsBlock +millis=com.ardublock.translator.block.MillisBlock +watchdog_setup=com.ardublock.translator.block.WatchdogBlock +watchdog_15ms=com.ardublock.translator.block.custom.WatchdogPortBlock +watchdog_30ms=com.ardublock.translator.block.custom.WatchdogPortBlock +watchdog_60ms=com.ardublock.translator.block.custom.WatchdogPortBlock +watchdog_120ms=com.ardublock.translator.block.custom.WatchdogPortBlock +watchdog_250ms=com.ardublock.translator.block.custom.WatchdogPortBlock +watchdog_500ms=com.ardublock.translator.block.custom.WatchdogPortBlock +watchdog_1s=com.ardublock.translator.block.custom.WatchdogPortBlock +watchdog_2s=com.ardublock.translator.block.custom.WatchdogPortBlock +watchdog_4s=com.ardublock.translator.block.custom.WatchdogPortBlock +watchdog_8s=com.ardublock.translator.block.custom.WatchdogPortBlock +watchdog_reset=com.ardublock.translator.block.WatchdogResetBlock +random_range=com.ardublock.translator.block.RandomRangeBlock +servo_default=com.ardublock.translator.block.ServoDefaultBlock +servo_sg90=com.ardublock.translator.block.ServoSg90Block +servo_mg996r=com.ardublock.translator.block.ServoMg996rBlock + +#Communication +serial_read=com.ardublock.translator.block.SerialReadBlock +serial_print=com.ardublock.translator.block.SerialPrintBlock +serial_println=com.ardublock.translator.block.SerialPrintlnBlock +wire_read=com.ardublock.translator.block.WireReadBlock +wire_write=com.ardublock.translator.block.WireWriteBlock +wire_write_one_byte=com.ardublock.translator.block.WireWriteOneByteBlock +wire_isread=com.ardublock.translator.block.WireIsReadBlock +ir_setport=com.ardublock.translator.block.IrSetPortBlock +ir_getcode=com.ardublock.translator.block.IrGetCodeBlock +bluno_println=com.ardublock.translator.block.BlunoOledPrintlnBlock +bluno_println_number=com.ardublock.translator.block.BlunoOledPrintlnNumberBlock +bluno_println_clear=com.ardublock.translator.block.BlunoOledClearBlock +#Storage +eeprom_read=com.ardublock.translator.block.storage.EEPROMReadBlock +eeprom_write=com.ardublock.translator.block.storage.EEPROMWriteBlock +sd_write=com.ardublock.translator.block.storage.SDWriteBlock +sd_write_number=com.ardublock.translator.block.storage.SDWriteNumberBlock +sd_write_number_int=com.ardublock.translator.block.storage.SDWriteNumberIntBlock +sd_return=com.ardublock.translator.block.storage.SDPortBlock +sd_no_return=com.ardublock.translator.block.storage.SDPortBlock + +#TinkerKit +Tinker_I0=com.ardublock.translator.block.tinker.TinkerInputPortBlock +Tinker_I1=com.ardublock.translator.block.tinker.TinkerInputPortBlock +Tinker_I2=com.ardublock.translator.block.tinker.TinkerInputPortBlock +Tinker_I3=com.ardublock.translator.block.tinker.TinkerInputPortBlock +Tinker_I4=com.ardublock.translator.block.tinker.TinkerInputPortBlock +Tinker_I5=com.ardublock.translator.block.tinker.TinkerInputPortBlock + +Tinker_O0=com.ardublock.translator.block.tinker.TinkerOutputPortBlock +Tinker_O1=com.ardublock.translator.block.tinker.TinkerOutputPortBlock +Tinker_O2=com.ardublock.translator.block.tinker.TinkerOutputPortBlock +Tinker_O3=com.ardublock.translator.block.tinker.TinkerOutputPortBlock +Tinker_O4=com.ardublock.translator.block.tinker.TinkerOutputPortBlock +Tinker_O5=com.ardublock.translator.block.tinker.TinkerOutputPortBlock + +Tinker_LED=com.ardublock.translator.block.tinker.TinkerLEDBlock +Tinker_Mosfet=com.ardublock.translator.block.tinker.TinkerMosfetBlock +Tinker_Relay=com.ardublock.translator.block.tinker.TinkerRelayBlock +Tinker_Button=com.ardublock.translator.block.tinker.TinkerButtonBlock +Tinker_Accmeter=com.ardublock.translator.block.tinker.TinkerAccmeterBlock +Tinker_Hall=com.ardublock.translator.block.tinker.TinkerHallBlock +Tinker_LDR=com.ardublock.translator.block.tinker.TinkerLDRBlock +Tinker_LinearPotentiometer=com.ardublock.translator.block.tinker.TinkerLinearPotentiometerBlock +Tinker_RotaryPotentiometer=com.ardublock.translator.block.tinker.TinkerRotaryPotentiometerBlock +Tinker_Thermistor=com.ardublock.translator.block.tinker.TinkerThermistorBlock +Tinker_Touch=com.ardublock.translator.block.tinker.TinkerTouchBlock +Tinker_Tilt=com.ardublock.translator.block.tinker.TinkerTiltBlock +Tinker_LED_pwm=com.ardublock.translator.block.tinker.TinkerLEDPwmBlock +Tinker_Mosfet_pwm=com.ardublock.translator.block.tinker.TinkerMosfetPwmBlock +Tinker_Servo=com.ardublock.translator.block.tinker.TinkerServoBlock + +#Xinchejian +xcj_motor_forward=com.ardublock.translator.block.xinchejian.XinchejianMotorForwardBlock +xcj_motor_backward=com.ardublock.translator.block.xinchejian.XinchejianMotorBackwardBlock +xcj_ms_digital_write=com.ardublock.translator.block.xinchejian.XinchejianDigitalWriteBlock +xcj_ms_digital_read=com.ardublock.translator.block.xinchejian.XinchejianDigitalReadBlock + +#DFRobot +df_digital_viberation_sensor=digitalInput +df_digital_infrared_motion_sensor=digitalInput +df_digital_ir_receiver_module=digitalInput +df_adjustable_infrared_sensor_switch=digitalInput +df_line_tracking_sensor=digitalInput +df_digital_push_button=digitalInput +df_joystick_module_button=digitalInput +df_capacitive_touch_sensor=digitalInput +df_digital_tilt_sensor=digitalInput +df_digital_magnetic_sensor=digitalInput +df_pizeo_disk_vibration_sensor=analogInput +df_analog_ambient_light_sensor=analogInput +df_analog_grayscale_sensor=analogInput +df_flame_sensor=analogInput +df_temperature_sensor=analogInput +df_joystick_module_x=analogInput +df_joystick_module_y=analogInput +df_mma7260_x=analogInput +df_mma7260_y=analogInput +df_mma7260_z=analogInput +df_analog_rotation_sensor_v1=analogInput +df_analog_rotation_sensor_v2=analogInput +df_analog_sound_sensor=analogInput +df_analog_volume_sensor=com.ardublock.translator.block.dfrobot.VolumeSensorBlock +df_analog_gas_sensor=analogInput +df_analog_co_sensor=analogInput +df_analog_voltage_divider=analogInput +df_analog_mma7361_x=analogInput +df_analog_mma7361_y=analogInput +df_analog_mma7361_z=analogInput +df_analog_gp2y0a21=com.ardublock.translator.block.dfrobot.SharpGP2Y0A21 +df_analog_moisture=analogInput +df_lcd_keypad=com.ardublock.translator.block.dfrobot.lcdkeypad + +df_servo=servo +df_360_degree_rotation_motor=servo +df_dht11_temperature=com.ardublock.translator.block.dfrobot.Dht11TemperatureBlock +df_dht11_humidity=com.ardublock.translator.block.dfrobot.Dht11HumidityBlock +df_romeo_motors=com.ardublock.translator.block.dfrobot.RomeoMotorsBlock +df_romeo_motor=com.ardublock.translator.block.dfrobot.RomeoMotorBlock +df_romeo_motor_stop=com.ardublock.translator.block.dfrobot.RomeoMotorStopBlock +df_led=digitalOutput +df_led_pwm=analogOutput +df_piranha_led=digitalOutput +df_piranha_led_pwm=analogOutput +df_relay=digitalOutput +df_buzzer=digitalOutput +df_buzzer_tone=tone +df_buzzer_tone_delay=toneTime + +#SeeedStudio +seeed_joystick=analogInput +seeed_joystick_button=com.ardublock.translator.block.seeedstudio.GroveJoyStickButtonBlock +seeed_o2_sensor=analogInput +seeed_uv_sensor=analogInput +seeed_single_gyro=analogInput +seeed_mq9_sensor=analogInput +seeed_mp3_sensor=analogInput +seeed_vib_sensor=analogInput +seeed_loud_sensor=analogInput +seeed_diff_amp=analogInput +seeed_ir_temp_sensor=analogInput +seeed_ir_proximity_sensor=analogInput +seeed_electricity_sensor=analogInput +seeed_angle_sensor=analogInput +seeed_sound_sensor=analogInput +seeed_moisture_sensor=analogInput +seeed_temp_sensor=analogInput +seeed_light_sensor=analogInput + +seeed_valtage_divider=digitalInput +seeed_flame_sensor=digitalInput +seeed_button=digitalInput +seeed_switch=digitalInput +seeed_ir_refl_sensor=digitalInput +seeed_heart_rate_sensor=digitalInput +seeed_chest_heart_sensor=digitalInput +seeed_air_quality_sensor=digitalInput +seeed_line_finder=digitalInput +seeed_pir_motion_sensor=digitalInput +seeed_tilt_switch=digitalInput +seeed_push_button=digitalInput +seeed_water_sensor=digitalInput +seeed_touch_sensor=digitalInput +seeed_mag_switch=digitalInput +seeed_ir_dist_int=digitalInput + +seeed_circle_led=digitalOutput +seeed_2coil_relay=digitalOutput +seeed_dry_relay=digitalOutput +seeed_solid_relay=digitalOutput +seeed_circle_led=digitalOutput +seeed_led_strip=digitalOutput +seeed_led=digitalOutput +seeed_var_led=inversedDigitalOutput +seeed_vib=digitalOutput +seeed_relay=digitalOutput + + +#DuinoEDU +DuinoEDU_infrared=com.ardublock.translator.block.Duinoedu.Infrared +DuinoEDU_humi=com.ardublock.translator.block.Duinoedu.Humi +DuinoEDU_temp=com.ardublock.translator.block.Duinoedu.Temp +DuinoEDU_humiPro=com.ardublock.translator.block.Duinoedu.HumiPro +DuinoEDU_tempPro=com.ardublock.translator.block.Duinoedu.TempPro +DuinoEDU_Led_Bar=com.ardublock.translator.block.Duinoedu.Led_Bar +DuinoEDU_LCD_I2C_RGB=com.ardublock.translator.block.Duinoedu.LCD_I2C_RGB +DuinoEDU_LCD_I2C_Backlight=com.ardublock.translator.block.Duinoedu.LCD_I2C_Backlight +DuinoEDU_LCD_I2C_RGB_Clear=com.ardublock.translator.block.Duinoedu.LCD_I2C_RGB_Clear +keyboard=com.ardublock.translator.block.KeyboardBlock +keyboard_post=com.ardublock.translator.block.Keyboard_PostBlock +keyboard_compare=com.ardublock.translator.block.Keyboard_Compare +DuinoEDU_notequal=com.ardublock.translator.block.Duinoedu.OutputPortBlock +DuinoEDU_equal=com.ardublock.translator.block.Duinoedu.OutputPortBlock +DuinoEDU_Mouse_Init=com.ardublock.translator.block.Duinoedu.Mouse_Init +DuinoEDU_Mouse_Xmove=com.ardublock.translator.block.Duinoedu.Mouse_Xmove +DuinoEDU_Mouse_Ymove=com.ardublock.translator.block.Duinoedu.Mouse_Ymove +DuinoEDU_Keypad_12_Button=com.ardublock.translator.block.Duinoedu.Keypad_12_Button +DuinoEDU_Keypad_Post=com.ardublock.translator.block.Duinoedu.Keypad_Post +DuinoEDU_Keypad_Pwd=com.ardublock.translator.block.Duinoedu.Keypad_Pwd +DuinoEDU_Digital_Tube=com.ardublock.translator.block.Duinoedu.Digital_Tube +DuinoEDU_Digital_Clear=com.ardublock.translator.block.Duinoedu.Digital_Clear +DuinoEDU_Display_Digital_Tube=com.ardublock.translator.block.Duinoedu.Digital_Tube_Display +DuinoEDU_Display_Digital_Tube2=com.ardublock.translator.block.Duinoedu.Digital_Tube_Display2 +DuinoEDU_Oled_I2C=com.ardublock.translator.block.Duinoedu.Oled_I2C +DuinoEDU_Oled_Clear=com.ardublock.translator.block.Duinoedu.Oled_Clear +DuinoEDU_Driver_I2C_Forward=com.ardublock.translator.block.Duinoedu.Driver_I2C_Forward +DuinoEDU_Driver_I2C_Back=com.ardublock.translator.block.Duinoedu.Driver_I2C_Back +DuinoEDU_Driver_I2C_Pivoter=com.ardublock.translator.block.Duinoedu.Driver_I2C_Pivoter +DuinoEDU_Driver_I2C_Speed_A_Motor=com.ardublock.translator.block.Duinoedu.Driver_I2C_Speed_A_Motor +DuinoEDU_Driver_I2C_Speed_B_Motor=com.ardublock.translator.block.Duinoedu.Driver_I2C_Speed_B_Motor +DuinoEDU_right=com.ardublock.translator.block.Duinoedu.Driver_Right +DuinoEDU_straight=com.ardublock.translator.block.Duinoedu.Driver_Straight +DuinoEDU_left=com.ardublock.translator.block.Duinoedu.Driver_Left +DuinoEDU_Aix_Acc_mesurerX=com.ardublock.translator.block.Duinoedu.Acc_mesurerX +DuinoEDU_Aix_Acc_mesurerY=com.ardublock.translator.block.Duinoedu.Acc_mesurerY +DuinoEDU_Aix_Acc_mesurerZ=com.ardublock.translator.block.Duinoedu.Acc_mesurerZ +DuinoEDU_Aix_Acc_mesurerXYZ=com.ardublock.translator.block.Duinoedu.Acc_mesurerXYZ +DuinoEDU_Aix_Acc_mesurerVariation=com.ardublock.translator.block.Duinoedu.Acc_mesurerVariation +DuinoEDU_Ultrasonic=com.ardublock.translator.block.Duinoedu.Ultrasonic +DuinoEDU_Partie_Emetteur=com.ardublock.translator.block.Duinoedu.Partie_Emetteur +DuinoEDU_Partie_Recepteur=com.ardublock.translator.block.Duinoedu.Partie_Recepteur +DuinoEDU_On_digit1=com.ardublock.translator.block.Duinoedu.OutputPortBlock +DuinoEDU_On_digit2=com.ardublock.translator.block.Duinoedu.OutputPortBlock +DuinoEDU_On_digit3=com.ardublock.translator.block.Duinoedu.OutputPortBlock +DuinoEDU_On_digit4=com.ardublock.translator.block.Duinoedu.OutputPortBlock +DuinoEDU_setSerialInfosOn=com.ardublock.translator.block.Duinoedu.SetSerialInfosOn +DuinoEDU_setSerialInfosOff=com.ardublock.translator.block.Duinoedu.SetSerialInfosOff +DuinoEDU_Rfid_Write=com.ardublock.translator.block.Duinoedu.Rfid_Write +DuinoEDU_Rfid_Test=com.ardublock.translator.block.Duinoedu.Rfid_Test +DuinoEDU_Rfid_Read=com.ardublock.translator.block.Duinoedu.Rfid_Read +DuinoEDU_Rfid_Clear=com.ardublock.translator.block.Duinoedu.Rfid_Clear +DuinoEDU_Rfid_Ram_List=com.ardublock.translator.block.Duinoedu.Rfid_Ram_List +DuinoEDU_neopixel_init=com.ardublock.translator.block.Duinoedu.Neopixel_init +DuinoEDU_neopixel_pixel_colorGRB=com.ardublock.translator.block.Duinoedu.Neopixel_pixel_colorGRB +DuinoEDU_neopixel_pixel_colorRGB=com.ardublock.translator.block.Duinoedu.Neopixel_pixel_colorRGB +DuinoEDU_neopixel_show=com.ardublock.translator.block.Duinoedu.Neopixel_show +DuinoEDU_neopixel_Brightness=com.ardublock.translator.block.Duinoedu.Neopixel_Brightness +DuinoEDU_neopixel_Clear=com.ardublock.translator.block.Duinoedu.Neopixel_Clear +DuinoEDU_stepper_step=com.ardublock.translator.block.Duinoedu.Stepper_step +DuinoEDU_stepper_setSpeed=com.ardublock.translator.block.Duinoedu.Stepper_SetSpeed +DuinoEDU_matrice_write=com.ardublock.translator.block.Duinoedu.Matrice_write +DuinoEDU_matrice_clear=com.ardublock.translator.block.Duinoedu.Matrice_clear +DuinoEDU_matrice_Brightness=com.ardublock.translator.block.Duinoedu.Matrice_Brightness +DuinoEDU_Servo_Plus=com.ardublock.translator.block.Duinoedu.Servo_Plus +DuinoEDU_Led=digitalOutput +DuinoEDU_SerialOscillo=com.ardublock.translator.block.Duinoedu.SerialOscillo +DuinoEDU_SerialOscillo_Init=com.ardublock.translator.block.Duinoedu.SerialOscillo_Init +DuinoEDU_Volts=com.ardublock.translator.block.Duinoedu.Volts +DuinoEDU_VALEURS_BRUTES=com.ardublock.translator.block.Duinoedu.VALEURS_BRUTES +DuinoEDU_CM=com.ardublock.translator.block.Duinoedu.CM +DuinoEDU_DEGRES=com.ardublock.translator.block.Duinoedu.DEGRES +DuinoEDU_Nunchuck_BoutonC=com.ardublock.translator.block.Duinoedu.Nunchuck_BoutonC +DuinoEDU_Nunchuck_BoutonZ=com.ardublock.translator.block.Duinoedu.Nunchuck_BoutonZ +DuinoEDU_Nunchuck_JoystickX=com.ardublock.translator.block.Duinoedu.Nunchuck_JoystickX +DuinoEDU_Nunchuck_JoystickY=com.ardublock.translator.block.Duinoedu.Nunchuck_JoystickY +DuinoEDU_Nunchuck_AccelerationX=com.ardublock.translator.block.Duinoedu.Nunchuck_AccelerationX +DuinoEDU_Nunchuck_AccelerationY=com.ardublock.translator.block.Duinoedu.Nunchuck_AccelerationY +DuinoEDU_Nunchuck_AccelerationZ=com.ardublock.translator.block.Duinoedu.Nunchuck_AccelerationZ +#Panda +panda_i0=com.ardublock.translator.block.panda.PandaInputPortBlock +panda_i1=com.ardublock.translator.block.panda.PandaInputPortBlock +panda_i2=com.ardublock.translator.block.panda.PandaInputPortBlock +panda_i3=com.ardublock.translator.block.panda.PandaInputPortBlock +panda_i4=com.ardublock.translator.block.panda.PandaInputPortBlock +panda_i5=com.ardublock.translator.block.panda.PandaInputPortBlock + +panda_o0=com.ardublock.translator.block.panda.PandaOutputPortBlock +panda_o1=com.ardublock.translator.block.panda.PandaOutputPortBlock +panda_o2=com.ardublock.translator.block.panda.PandaOutputPortBlock +panda_o3=com.ardublock.translator.block.panda.PandaOutputPortBlock +panda_o4=com.ardublock.translator.block.panda.PandaOutputPortBlock +panda_o5=com.ardublock.translator.block.panda.PandaOutputPortBlock + +# BLE Shield +bleshield=com.ardublock.translator.block.network.BLEShield +bleshield_available=com.ardublock.translator.block.network.BLEShieldAvailable +bleshield_read_poly=com.ardublock.translator.block.network.BLEShieldRead + +# Adafruit Motorshield +ada_dc_motor_fwd=com.ardublock.translator.block.adafruit.dcmotor_fwd +ada_dc_motor_bwd=com.ardublock.translator.block.adafruit.dcmotor_bwd +ada_dc_motor_release=com.ardublock.translator.block.adafruit.dcmotor_release +ada_neopixel_NEO_GRB=com.ardublock.translator.block.adafruit.NEO_GRB +ada_neopixel_NEO_RGB=com.ardublock.translator.block.adafruit.NEO_RGB +ada_neopixel_NEO_KHZ400=com.ardublock.translator.block.adafruit.KHZ400 +ada_neopixel_NEO_KHZ800=com.ardublock.translator.block.adafruit.KHZ800 +ada_neopixel_init=com.ardublock.translator.block.adafruit.ada_neopixel_init +ada_neopixel_pixel_colorGRB=com.ardublock.translator.block.adafruit.Neopixel_pixel_colorGRB +ada_neopixel_pixel_colorRGB=com.ardublock.translator.block.adafruit.Neopixel_pixel_colorRGB +ada_neopixel_show=com.ardublock.translator.block.adafruit.Neopixel_show +ada_neopixel_Brightness=com.ardublock.translator.block.adafruit.Neopixel_Brightness + +# Makeblock +me_ultrasonic_sensor=com.ardublock.translator.block.makeblock.MeUltrasonicSensor +me_linefinder=com.ardublock.translator.block.makeblock.MeLineFinder +me_motordriver=com.ardublock.translator.block.makeblock.MeMotorDriver +me_servodriver=com.ardublock.translator.block.makeblock.MeServoDriver +me_infraredreceiver=com.ardublock.translator.block.makeblock.MeInfraredReceiver +me_bluetooth_read=com.ardublock.translator.block.makeblock.MeBluetoothRead +me_bluetooth_write=com.ardublock.translator.block.makeblock.MeBluetoothWrite +me_basemotordriver=com.ardublock.translator.block.makeblock.MeBaseMotorDriver +me_bluetooth_commands=com.ardublock.translator.block.makeblock.MeBluetoothCommands +me_bluetooth_command=com.ardublock.translator.block.makeblock.MeBluetoothCommand +me_limitswitch=com.ardublock.translator.block.makeblock.MeLimitSwitch +me_shutter=com.ardublock.translator.block.makeblock.MeShutter +me_stepper_motor=com.ardublock.translator.block.makeblock.MeStepperMotor +me_port_1=com.ardublock.translator.block.makeblock.MePort +me_port_2=com.ardublock.translator.block.makeblock.MePort +me_port_3=com.ardublock.translator.block.makeblock.MePort +me_port_4=com.ardublock.translator.block.makeblock.MePort +me_port_5=com.ardublock.translator.block.makeblock.MePort +me_port_6=com.ardublock.translator.block.makeblock.MePort +me_port_7=com.ardublock.translator.block.makeblock.MePort +me_port_8=com.ardublock.translator.block.makeblock.MePort +me_motor_1=com.ardublock.translator.block.makeblock.MePort +me_motor_2=com.ardublock.translator.block.makeblock.MePort +me_shutter_1=com.ardublock.translator.block.makeblock.MeShutterAction +me_shutter_2=com.ardublock.translator.block.makeblock.MeShutterAction +me_shutter_3=com.ardublock.translator.block.makeblock.MeShutterAction +me_shutter_4=com.ardublock.translator.block.makeblock.MeShutterAction + +#Insect Bot +insectbot_get_distance=com.ardublock.translator.block.insectbot.GetDistanceBlock +insectbot_is_indanger=com.ardublock.translator.block.insectbot.InDangerBlock +insectbot_go_forward=com.ardublock.translator.block.insectbot.GoForwardBlock +insectbot_go_backright=com.ardublock.translator.block.insectbot.GoBackRightBlock +insectbot_turn_left=com.ardublock.translator.block.insectbot.TurnLeftBlock +insectbot_blink_led=com.ardublock.translator.block.insectbot.BlinkLedBlock + +#Creator_4Drawing +iDrawing_set_para=com.ardublock.translator.block.drawing.SetParameters +iDrawing_run=com.ardublock.translator.block.drawing.Run +iDrawing_rule_start=com.ardublock.translator.block.drawing.AddRule +iDrawing_rule_stop=com.ardublock.translator.block.drawing.AddRule +iDrawing_rule_sleep=com.ardublock.translator.block.drawing.AddRule + + +iDrawing_trigger_time=com.ardublock.translator.block.drawing.TimePara +iDrawing_trigger_dpin=com.ardublock.translator.block.drawing.DigitalInputPara + +iDrawing_actuator_led=com.ardublock.translator.block.drawing.LedPara +iDrawing_trigger_apin=com.ardublock.translator.block.drawing.AnalogInputPara +iDrawing_actuator_playermini=com.ardublock.translator.block.drawing.PlayerPara +iDrawing_actuator_dpin=com.ardublock.translator.block.drawing.DigitalOutputPara + +port_pin_name=com.ardublock.translator.block.drawing.PinName + +led_mode_flash=com.ardublock.translator.block.drawing.ConstantMap +led_mode_fade=com.ardublock.translator.block.drawing.ConstantMap + + +trigger_equal=com.ardublock.translator.block.drawing.ConstantMap +trigger_greater=com.ardublock.translator.block.drawing.ConstantMap +trigger_less=com.ardublock.translator.block.drawing.ConstantMap + +player_mode_random=com.ardublock.translator.block.drawing.ConstantMap +player_mode_single=com.ardublock.translator.block.drawing.ConstantMap + +output_mode_high=com.ardublock.translator.block.drawing.ConstantMap +output_mode_low=com.ardublock.translator.block.drawing.ConstantMap +output_mode_highpulse=com.ardublock.translator.block.drawing.ConstantMap +output_mode_lowpulse=com.ardublock.translator.block.drawing.ConstantMap + + + +#legacy support +loop1=com.ardublock.translator.block.LoopBlock +loop2=com.ardublock.translator.block.ProgramBlock +loop3=com.ardublock.translator.block.LoopBlock + +# littlebits +little_bits_bendsensor=analogInput +little_bits_button=digitalInput +little_bits_dimmer=analogInput +little_bits_lightsensor=analogInput +little_bits_lighttrigger=analogInput +little_bits_microphone=analogInput +little_bits_motiontrigger=analogInput +little_bits_pressuresensor=analogInput +little_bits_pulse=analogInput +little_bits_remotetrigger=analogInput +little_bits_rollerswitch=analogInput +little_bits_slidedimmer=analogInput +little_bits_slideswitch=analogInput +little_bits_soundtrigger=analogInput +little_bits_timeout=analogInput +little_bits_toggleswitch=analogInput +little_bits_mix=analogInput +little_bits_oscillator=analogInput +little_bits_random=analogInput +little_bits_bargraph=analogOutput +little_bits_brightled=analogOutput +little_bits_dcmotor=analogOutput +little_bits_fan=analogOutput +little_bits_ir_led=analogOutput +little_bits_led=analogOutput +little_bits_lightwire=analogOutput +little_bits_longled=analogOutput +little_bits_number=analogOutput +little_bits_rgbled=analogOutput +little_bits_uvled=analogOutput +little_bits_vibration_motor=analogOutput +little_bits_synthspeaker=analogOutput + +#keenlon +ke-motor-run=com.ardublock.translator.block.keenlon.MotorRunBlock +ke-motor-setmoto=com.ardublock.translator.block.keenlon.MotorSetMotoBlock +ke-motor-stop=com.ardublock.translator.block.keenlon.MotorStopBlock +ke-tft-print=com.ardublock.translator.block.keenlon.TFTPrintBlock +ke-tft-clear=com.ardublock.translator.block.keenlon.TFTClearBlock +ke-eye-minvalue=com.ardublock.translator.block.keenlon.EyeMinValueBlock +ke-eye-minindex=com.ardublock.translator.block.keenlon.EyeMinIndexBlock +ke-eye-maxvalue=com.ardublock.translator.block.keenlon.EyeMaxValueBlock +ke-eye-maxindex=com.ardublock.translator.block.keenlon.EyeMaxIndexBlock +ke-eye-singlevalue=com.ardublock.translator.block.keenlon.EyeSingleValueBlock +ke-button-getbutton=com.ardublock.translator.block.keenlon.ButtonGetButton +ke-encoder-clear=com.ardublock.translator.block.keenlon.EncoderClearBlock +ke-encoder-getencoder=com.ardublock.translator.block.keenlon.EncoderGetEncoderBlock +ke-tft-msg=com.ardublock.translator.block.keenlon.TFTPrintMsgBlock +ke-tft-add=com.ardublock.translator.block.keenlon.TFTPrintAddParamBlock +ke-buzzer=digitalOutput +ke-ground-light=analogInput +ke-led-on-off=digitalOutput +ke-led-pwm=analogOutput +ke-light=analogInput +ke-mic=analogInput +ke-photo=digitalInput +ke-potentiometer=analogInput +ke-relays=digitalOutput +ke-tempe=analogInput +ke-touch=digitalInput +ke-servo=servo +ke-psd=analogInput +ke-compass=com.ardublock.translator.block.keenlon.CompassGetCompass + +#jerusalab +midi_command=com.ardublock.translator.block.jerusalab.MidiCommandBlock +Midi_C=com.ardublock.translator.block.jerusalab.MidiInputPortBlock +Midi_CS=com.ardublock.translator.block.jerusalab.MidiInputPortBlock +Midi_D=com.ardublock.translator.block.jerusalab.MidiInputPortBlock +Midi_DS=com.ardublock.translator.block.jerusalab.MidiInputPortBlock +Midi_E=com.ardublock.translator.block.jerusalab.MidiInputPortBlock +Midi_F=com.ardublock.translator.block.jerusalab.MidiInputPortBlock +Midi_FS=com.ardublock.translator.block.jerusalab.MidiInputPortBlock +Midi_G=com.ardublock.translator.block.jerusalab.MidiInputPortBlock +Midi_GS=com.ardublock.translator.block.jerusalab.MidiInputPortBlock +Midi_A=com.ardublock.translator.block.jerusalab.MidiInputPortBlock +Midi_AS=com.ardublock.translator.block.jerusalab.MidiInputPortBlock +Midi_B=com.ardublock.translator.block.jerusalab.MidiInputPortBlock diff --git a/src/main/resources/com/ardublock/block/Skins/all-master/ardublock.properties b/src/main/resources/com/ardublock/block/Skins/all-master/ardublock.properties new file mode 100644 index 00000000..20a992b7 --- /dev/null +++ b/src/main/resources/com/ardublock/block/Skins/all-master/ardublock.properties @@ -0,0 +1,1853 @@ +bc.start=start +bg.repeat_control=repeat between +bg.repeat_control.description=Repeat the commands with "variable" ranging between "start" and "stop" values. "variable" changes by "increment" after each repetition +bc.end=stop +bc.increment=steps of +bg.constrain=constrain +bc.low=lower +bc.high=higher +bg.sd_write2=write to SD +bg.sd_write=SD flash write +bg.sd_write_number=SD write number +bg.sd_write_number_int=SD write number Int +bg.sd_return=Return +bg.sd_no_return=No return +bg.eeprom_read=read 'byte' EEPROM +bg.eeprom_write=write 'byte' EEPROM +bg.eeprom_read_int=read number from EEPROM +bg.eeprom_write_int=write number to EEPROM +bg.eeprom_read_long=read 'long' from EEPROM +bg.eeprom_write_long=write 'long' to EEPROM +bd.storage=Storage +bc.device_address=device address +bc.device_address_I2C=address 0x +bc.register_address=register address +bc.watchdog_enable=enable +bc.eeprom_address=address +bc.eeprom_data=data +bc.ln=new line +bc.message=message +bc.print=print +bc.line_number=line# +bc.row_number=row# +bc.character_number=char# +bg.MaSD_file=SD File +bc.File=File +bg.MaSD_Write=SD Write +bg.MaSD_NewLine=SD New Line +bg.GROVE_CS=GROVE_CS +bg.DUPONT_CS=DUPONT_CS +bg.ESPLORA_CS=ESPLORA_CS +bg.MaSD_Connect=SD Connect +bg.MaSD_separator=SD Separator +bc.space=Space +bc.tab=Tabulation + +bg.variable_poly=Char +bg.setter_variable_char=set char variable +bg.char=A +bd.chars= Chars Test +bg.not_equal_poly= != +bg.equal_string= == +bg.not_equal_string= != +bg.equal_poly= == +bg.glue_poly=glue +bg.serial_read_poly=serial read +bg.serial_parseInt=serial parseInt +bg.serial_available=serial data available +bg.serial_available2=serial data available +bg.program=program +bc.setup=setup +bc.loop=loop +bg.setup=setup +bc.par=input +bc.vecsize=size +bc.num=# +bg.variable_fake=Table +bg.fake=fake +bg.variable_vector=Table +bc.position=position +bg.create_variable_vector=create an array +bg.setter_variable_vector=set an array member +bg.string_greater= > +bg.string_less= < +bg.string_equal= == +bg.string_greater_equal= >= +bg.string_less_equal= <= +bg.string_not_equal= != +bg.string_equals= equals +bg.string_equalsIgnoreCase=equalsIgnoreCase +bg.string_toInt=toInt +bg.string_compareTo=compareTo + +bg.code_head=add code on Head +bg.code_setup=add code on Setup +bg.setter_variable_String=set String variable +bg.setter_variable_String.description=set String variable +bg.variable_String=STRING +bg.variable_String.description=String variable +bg.code_loop=add code on Loop +bg.serial_read=serial read +bd.especial=Especial +bg.equal_digital=== +bg.not_equal_digital=!= +bg.repeat=repeat +bg.break=break +bc.var=iteration variable name +bg.glue_msg=glue + +# BlockDrawer name +bc.angle=angle +bc.base=base +bc.condition=test +bc.else=else +bc.exponent=exponent +bc.from=from +bc.level=level +bc.max=max +bc.min=min +bc.microseconds=microseconds +bc.milliseconds=milliseconds + +# BlockConnector label +bc.pin_number=pin# +bc.status=status +bc.test=test +bc.then=then +bc.to=to +bc.value=value +bc.variable=variable +bc.frequency=frequency +bc.do=loop +bc.device_address=device address +bc.register_address=register address +bc.watchdog_enable=Enable +bc.eeprom_address=address +bc.eeprom_data=data +bc.motor_channel=motor channel +bc.motor_speed=motor speed + +bc.scoop_event_flag=Event + +bd.control=Control +bd.scoop=SCoop (Multitask) +bd.dfrobot=DFRobot +bd.number=Variables/Constants +bd.operators=Math Operators +bd.pins=Pins +bd.seeedstudio=Seeed Studio Grove + +bd.communication=Communication +bd.storage=Storage + +#linksprite +bd.linksprite_LinkerKit=Linker Kit + +bd.tinkerkit=TinkerKit +bd.utilities=Generic Hardware +# BlockGenus initlabel +bg.df_lcd_keypad=DFRobot LCD Keypad +bg.Tinker_Accmeter=Accelerometer +bg.Tinker_Button=Button +bg.Tinker_Hall=Hall +bg.Tinker_I0=I0 +bg.Tinker_I1=I1 +bg.Tinker_I2=I2 +bg.Tinker_I3=I3 +bg.Tinker_I4=I4 +bg.Tinker_I5=I5 +bg.Tinker_LDR=LDR +bg.Tinker_LED=LED +bg.Tinker_LED_pwm=LED +bg.Tinker_LinearPotentiometer=LinearPotentiometer +bg.Tinker_Mosfet=Mosfet +bg.Tinker_Mosfet_pwm=Mosfet +bg.Tinker_O0=O0 +bg.Tinker_O1=O1 +bg.Tinker_O2=O2 +bg.Tinker_O3=O3 +bg.Tinker_O4=O4 +bg.Tinker_O5=O5 +bg.Tinker_Relay=Relay +bg.Tinker_RotaryPotentiometer=RotaryPotentiometer +bg.Tinker_Servo=Servo +bg.Tinker_Thermistor=Thermistor +bg.Tinker_Tilt=Tilt +bg.Tinker_Touch=Touch +bg.abs=abs +bg.addition=+ +bg.and=and +bg.cos=cos + +bg.scoop_task=SCoop Task +bg.scoop_loop=SCoop Loop +bg.scoop_sleep=SCoop Sleep +bg.scoop_pin_event=SCoop Event +bg.scoop_event_low=Event: LOW +bg.scoop_event_high=Event: HIGH +bg.scoop_event_falling=Event: FALLING +bg.scoop_event_rising=Event: RISING +bg.scoop_event_change=Event: CHANGE + +bg.delay=delay MILLIS +bg.delay_microseconds=delay MICROS + +bg.df_360_degree_rotation_motor=360 degree rotation motor +bg.df_adjustable_infrared_sensor_switch=Adjustable Infrared Sensor Switch +bg.df_analog_ambient_light_sensor=Analog Ambient Light Sensor +bg.df_analog_gas_sensor=Analog Gas Sensor +bg.df_analog_grayscale_sensor=Analog Grayscale Senor +bg.df_analog_rotation_sensor_v1=Analog Rotation Sensor V1 +bg.df_analog_rotation_sensor_v2=Analog Rotation Sensor V2 +bg.df_analog_sound_sensor=Analog Sound Sensor +bg.df_analog_volume_sensor=Analog Sound Volume Sensor +bg.df_capacitive_touch_sensor=Capacitive Touch Sensor +bg.df_digital_infrared_motion_sensor=Digital Infrared Motion Sensor +bg.df_digital_ir_receiver_module=Digital IR Receiver Module +bg.df_digital_push_button=Digital Push Button +bg.df_digital_viberation_sensor=Digital Vibration Sensor +bg.df_flame_sensor=Flame Sensor +bg.df_joystick_module_button=JoyStick Module Button +bg.df_joystick_module_x=Joystick Module (Axis-X) +bg.df_joystick_module_y=Joystick Module (Axis-Y) +bg.df_led=LED Module +bg.df_led_pwm=LED with brightness +bg.df_line_tracking_sensor=Line Tracking Sensor +bg.df_mma7260_x=Triple Axis Accelerometer MMA7260 (Axis-X) +bg.df_mma7260_y=Triple Axis Accelerometer MMA7260 (Axis-Y) +bg.df_mma7260_z=Triple Axis Accelerometer MMA7260 (Axis-Z) +bg.df_piranha_led=piranha LED Module +bg.df_piranha_led_pwm=piranha LED with brightness +bg.df_pizeo_disk_vibration_sensor=Piezo Disk Vibration Sensor +bg.df_relay=Relay +bg.df_servo=Servo +bg.df_dht11_humidity=Dht11 Humidity +bg.df_dht11_temperature=Dht11 Temperature +bg.df_temperature_sensor=Temperature Sensor +bg.df_romeo_motors=Romeo motors +bg.df_romeo_motor=Romeo motor +bg.df_romeo_motor_stop=Romeo stop motors +bg.df_buzzer=Buzzer +bg.df_buzzer_tone=Buzzer +bg.df_buzzer_tone_delay=Buzzer + +bg.df_digital_tilt_sensor=Digital Tilt Sensor +bg.df_digital_magnetic_sensor=Digital Magnetic Sensor +bg.df_analog_co_sensor=Analog Carbon Monoxide Sensor +bg.df_analog_voltage_divider=Analog Voltage Divider +bg.df_analog_mma7361_x=X-Asix of Accelerometer +bg.df_analog_mma7361_y=Y-Asix of Accelerometer +bg.df_analog_mma7361_z=Z-Asix of Accelerometer +bg.df_analog_gp2y0a21=Sharp GP2Y0A21 Distance Sensor +bg.df_analog_moisture=Soil Moisture Sensor +bg.df_lcd_keypad=LCD Keypad + +bg.digital-high=HIGH +bg.digital-low=LOW +bg.digital-off=OFF +bg.digital-on=ON +bg.division=\u00f7 +bg.equal=== +bg.false=FALSE +bg.glue_sb=glue +bg.glue_sn=glue +bg.dummy=dummy +bg.greater=> +bg.greater_equal=>= +bg.if=if +bg.ifelse=if/else +bg.less=< +bg.less_equal=<= +bg.loop=loop +bg.subroutine=subroutine +bg.subroutine-ref=subroutine +bg.subroutine_var=subroutine_with_value +bg.subroutine-ref_var=subroutine_with_value +bg.ref_var=variable_transmitted +bc.transmit=transmit +bg.map=map +bg.map_common=map [0, 1023] to [0, 255] +bg.toint=to tint +bg.max=max +bg.message=message +bg.millis=Milliseconds +bg.min=min +bg.modulo=% +bg.multiplication=x +bg.not=not +bg.not_equal=!= +bg.char=A +bg.number=1 +bg.number_long=1000000 +bg.number_double=3.1415927 +bg.number-single=1 +bg.number-single-I2C-address=3F +bg.number-single-fixed-parallel=Parallel +bg.or=or +bg.pin-read-analog=analog input +bg.pin-read-digital=digital pin +bg.pin-read-digital-pullup=input pullup +bg.pin-write-analog=set analog output +bg.pin-write-digital=set digital output +bg.pin-toggle=Toggle digital pin +bg.pow=power +bg.random=random +bg.repeat_times=repeat +bg.seeed_joystick=Grove Thumb Joystick +bg.seeed_joystick_button=Grove Thumb Joystick Button +bg.watchdog_15ms=WDTO_15MS +bg.watchdog_30ms=WDTO_30MS +bg.watchdog_60ms=WDTO_60MS +bg.watchdog_120ms=WDTO_120MS +bg.watchdog_250ms=WDTO_250MS +bg.watchdog_500ms=WDTO_500MS +bg.watchdog_1s=WDTO_1S +bg.watchdog_2s=WDTO_2S +bg.watchdog_4s=WDTO_4S +bg.watchdog_8s=WDTO_8S +bg.watchdog_setup=Watchdog +bg.watchdog_reset=Watchdog Reset +bg.sd_write=SD flash write +bg.sd_write_number=SD write number +bg.sd_write_number_int=SD write number Int +bg.sd_return=Return +bg.sd_no_return=No return +bg.eeprom_read=read byte from EEPROM +bg.eeprom_write=write byte to EEPROM +bg.random_range=random + + +#linksprite +bg.ls_10mmLEDModule=10mm Blue/Green/Yellow/Red LED Module +bg.ls_5mmLEDModule=5mm Blue/Green/Yellow/Red LED Module +bg.ls_AccelerometerModule_x=Accelerometer Module (x-Achse) +bg.ls_AccelerometerModule_y=Accelerometer Module (y-Achse) +bg.ls_AccelerometerModule_z=Accelerometer Module (z-Achse) +bg.ls_ButtonModule=Button Module +bg.ls_BuzzerModule=Buzzer Module +bg.ls_HallSensor=Hall Sensor +bg.ls_HighPowerLedModule=High Power Led Module +bg.ls_JoystickSensorModule_x=Joystick Sensor Module (x-Achse) +bg.ls_JoystickSensorModule_y=Joystick Sensor Module (y-Achse) +bg.ls_LDRModule=LDR Module +bg.ls_LEDBar=LED Bar +bg.ls_Linear-SlidePotentiometerModule=Linear/Slide Potentiometer Module +bg.ls_MagneticSwitch=Magnetic Switch +bg.ls_MosfetModule=Mosfet Module +bg.ls_RelayModule=Relay Module +bg.ls_RotaryPotentiometerModule=Rotary Potentiometer Module +bg.ls_RTCModule=RTC Module +bg.ls_SoundSensor=Sound Sensor +bg.ls_ThermalModule=Thermal Module +bg.ls_TiltModule=Tilt Module +bg.ls_TouchSensorModule=TouchSensor Module + +bg.serial_write=serial.write() +bg.serial_println=serial println +bg.ir_setport=set IR port +bg.ir_getcode=get IR code +bg.bluno_println=bluno println +bg.bluno_println_number=bluno println +bg.bluno_println_clear=bluno clear +bg.serial_print=serial print +bg.serial_read=serial read +bg.equal_digital=== +bg.not_equal_digital=!= +bg.repeat=repeat and count +bg.glue_msg=glue message +bg.servo=Servo +bg.servo_prefix=Servo : +bg.servo_default=Servo : Default +bg.servo_sg90=Servo : SG90 +bg.servo_mg996r=Servo : MG996R +bg.setter_variable_digital=set digital variable +bg.setter_variable_number=set integer variable +bg.setter_variable_number_unsigned_long=set large integer variable +bg.setter_variable_number_double=set decimal number variable +bg.sin=sin +bg.sqrt=sqrt +bg.subtraction=- +bg.tan=tan +bg.true=TRUE +bg.string_equal=equals +bg.string_empty=is empty + +bg.ultrasonic=ultrasonic +bg.LCD_I2C_Sainsmart_20by4=20by4 I2C Sainsmart +bg.LCD_I2C_Sainsmart_16by2=16by2 I2C Sainsmart +bg.LCD_PLL_Sainsmart_16by2=16by2 PLL Sainsmart +bg.LCD_command_clear=CLEAR +bg.LCD_command_home=HOME +bg.LCD_command_lightOn=Light On +bg.LCD_command_lightOff=Light Off +bg.LCD_command_cursorOn= Cursor On +bg.LCD_command_cursorOff=Cursor Off +bg.LCD_command_blinkOn= Blink On +bg.LCD_command_blinkOff=Blink Off +bg.variable_digital=Bool +bg.variable_number=Integer +bg.variable_number_unsigned_long=Unsigned_long +bg.variable_number_double=Double +bg.variable_string=string name +bg.while=while +bg.do_while=do while +bg.wire_isread=read I2C ok? +bg.wire_read=read from I2C +bg.wire_write=write to I2C +bg.wire_write_one_byte=I2C write 1 +bg.tone=tone +bg.tone_time=tone +bg.no_tone=no tone +# +bg.pinListAnalog_A0=A0 +bg.pinListAnalog_A1=A1 +bg.pinListAnalog_A2=A2 +bg.pinListAnalog_A3=A3 +bg.pinListAnalog_A4=A4 +bg.pinListAnalog_A5=A5 +# +bg.pinListAnalog_A6=A6 (Mega/Nano) +bg.pinListAnalog_A7=A7 (Mega/Nano) +bg.pinListAnalog_A8=A8 (Mega) +bg.pinListAnalog_A9=A9 (Mega) +bg.pinListAnalog_A10=A10 (Mega) +bg.pinListAnalog_A11=A11 (Mega) +bg.pinListAnalog_A12=A12 (Mega) +bg.pinListAnalog_A13=A13 (Mega) +bg.pinListAnalog_A14=A14 (Mega) +bg.pinListAnalog_A15=A15 (Mega) + +bg.pinListDigital_D0=D0 +bg.pinListDigital_D1=D1 +bg.pinListDigital_D2=D2 +bg.pinListDigital_D3=D3 +bg.pinListDigital_D4=D4 +bg.pinListDigital_D5=D5 +bg.pinListDigital_D6=D6 +bg.pinListDigital_D7=D7 +bg.pinListDigital_D8=D8 +bg.pinListDigital_D9=D9 +bg.pinListDigital_D10=D10 +bg.pinListDigital_D11=D11 +bg.pinListDigital_D12=D12 +bg.pinListDigital_D13=D13 +# +# +# +# +# +# +bg.pinListDigital_D14=D14 (Mega) +bg.pinListDigital_D15=D15 (Mega) +bg.pinListDigital_D16=D16 (Mega) +bg.pinListDigital_D17=D17 (Mega) +bg.pinListDigital_D18=D18 (Mega) +bg.pinListDigital_D19=D19 (Mega) +# +bg.pinListDigital_D20=D20 (Mega) +bg.pinListDigital_D21=D21 (Mega) +bg.pinListDigital_D22=D22 (Mega) +bg.pinListDigital_D23=D23 (Mega) +bg.pinListDigital_D24=D24 (Mega) +bg.pinListDigital_D25=D25 (Mega) +bg.pinListDigital_D26=D26 (Mega) +bg.pinListDigital_D27=D27 (Mega) +bg.pinListDigital_D28=D28 (Mega) +bg.pinListDigital_D29=D29 (Mega) +bg.pinListDigital_D30=D30 (Mega) +bg.pinListDigital_D31=D31 (Mega) +bg.pinListDigital_D32=D32 (Mega) +bg.pinListDigital_D33=D33 (Mega) +bg.pinListDigital_D34=D34 (Mega) +bg.pinListDigital_D35=D35 (Mega) +bg.pinListDigital_D36=D36 (Mega) +bg.pinListDigital_D37=D37 (Mega) +bg.pinListDigital_D38=D38 (Mega) +bg.pinListDigital_D39=D39 (Mega) +bg.pinListDigital_D40=D40 (Mega) +bg.pinListDigital_D41=D41 (Mega) +bg.pinListDigital_D42=D42 (Mega) +bg.pinListDigital_D43=D43 (Mega) +bg.pinListDigital_D44=D44 (Mega) +bg.pinListDigital_D45=D45 (Mega) +bg.pinListDigital_D46=D46 (Mega) +bg.pinListDigital_D47=D47 (Mega) +bg.pinListDigital_D48=D48 (Mega) +bg.pinListDigital_D49=D49 (Mega) +bg.pinListDigital_D50=D50 (Mega) +bg.pinListDigital_D51=D51 (Mega) +bg.pinListDigital_D52=D52 (Mega) +bg.pinListDigital_D53=D53 (Mega) +# +bg.pinListAnalogWrite_D3=D3 +bg.pinListAnalogWrite_D5=D5 +bg.pinListAnalogWrite_D6=D6 +bg.pinListAnalogWrite_D9=D9 +bg.pinListAnalogWrite_D10=D10 +bg.pinListAnalogWrite_D11=D11 +# +bg.pinListAnalogWrite_D2=D2 (Mega) +bg.pinListAnalogWrite_D4=D4 (Mega) +bg.pinListAnalogWrite_D7=D7 (Mega) +bg.pinListAnalogWrite_D8=D8 (Mega) +bg.pinListAnalogWrite_D12=D12 (Mega) +bg.pinListAnalogWrite_D13=D13 (Mega) +bg.pinListAnalogWrite_D44=D44 (Mega) +bg.pinListAnalogWrite_D45=D45 (Mega) +bg.pinListAnalogWrite_D46=D46 (Mega) + +bg.DDRA=DDRA +bg.DDRB=DDRB +bg.DDRC=DDRC +bg.DDRD=DDRD +bg.DDRH=DDRH +bg.DDRL=DDRL +bg.PORTA=PORTA +bg.PORTB=PORTB +bg.PORTC=PORTC +bg.PORTD=PORTD +bg.PORTH=PORTH +bg.PORTL=PORTL +bg.PORTA2=PORTA +bg.PORTB2=PORTB +bg.PORTC2=PORTC +bg.PORTD2=PORTD +bg.PORTH2=PORTH +bg.PORTL2=PORTL +bg.PORT_FIX=Set digitals pins : +bg.PORT_FIX.description= +bg.LEVEL1=ON +bg.LEVEL0=OFF +bg.PINA=PINA +bg.PINB=PINB +bg.PINC=PINC +bg.PIND=PIND +bg.PINH=PINH +bg.PINL=PINL +bg.xcj_motor_backward=motor shield backward +bg.xcj_motor_forward=motor shield forward +bg.xcj_ms_digital_read=Xinchejian digitalRead +bg.xcj_ms_digital_write=Xinchejian digitalWrite +bg.code_loop=loop +bg.code_head=head +bg.code_setup=setup + +bd.logic=Tests +bd.communication=Communication +bd.especial=Code Blocks + +bd.adafruit=Adafruit +bg.ada_dc_motor_fwd=DC motor FORWARD +bg.ada_dc_motor_bwd=DC motor BACKWARD +bg.ada_dc_motor_release=DC motor RELEASE +bg.ada_neopixel_NEO_GRB=NEO_GRB +bg.ada_neopixel_NEO_RGB=NEO_RGB +bg.ada_neopixel_NEO_KHZ400=NEO_KHZ400 +bg.ada_neopixel_NEO_KHZ800=NEO_KHZ800 +bg.ada_neopixel_init=Neopixel Init +bg.ada_neopixel_pixel_colorGRB=Neopixel GRB Pixel Color +bg.ada_neopixel_pixel_colorGRB=Neopixel RGB Pixel Color +bg.ada_neopixel_show=Neopixel Show +bg.ada_neopixel_Brightness=Neopixel Brightness + + +ardublock.file.suffix=Ardublock Program File(*.abp) +ardublock.ui.new=New +ardublock.ui.save=Save +ardublock.ui.saveAs=Save As +ardublock.ui.load=Open +ardublock.ui.upload=Upload to Arduino +ardublock.ui.clone=Clone +ardublock.ui.add_comment=Add Comment +ardublock.ui.delete_comment=Delete Comment +ardublock.ui.organize_blocks=Organize all blocks +ardublock.ui.create_refer=create reference +ardublock.ui.website=Go to Web Site +ardublock.ui.serialMonitor=Serial Monitor +ardublock.ui.saveImage=Save as image... +ardublock.ui.version=21040826 (beta) + +ardublock.error_msg.digital_var_slot=Digital variable slot must take a 'digital variable' name.\nHint: Look at the 'variable' socket on the highlighted block +ardublock.error_msg.number_var_slot=Standard variable slot must take a standard 'Integer' variable name.\nHint: Look at the 'variable' socket on the highlighted block +ardublock.error_msg.long_number_var_slot=Large integer variable slot must take a 'Large Integer' variable name.\nHint: Look at the 'variable' socket on the highlighted block +ardublock.error_msg.double_number_var_slot=variable slot must take a 'Decimal' variable name.\nHint: Look at the 'variable' socket on the highlighted block +ardublock.error_msg.char_var_slot=Char variable slot must take a char variable name.\nHint: Look at the 'variable' socket on the highlighted block +ardublock.error_msg.array_var_slot='Array variable' slot must take an 'array variable' name.\nHint: Look at the 'variable' socket on the highlighted block +ardublock.error_msg.array_size_slot='Array size' slot must take a standard integer constant +ardublock.error_msg.string_var_slot=String variable slot must take a String variable name.\nHint: Look at the 'variable' socket on the highlighted block +ardublock.error_msg.Digital_pin_slot=Pin# must be a valid digital pin number found on an Arduino Board +ardublock.error_msg.Analog_pin_slot=Pin# must be a valid analog input pin number found on an Arduino Board + +ardublock.translator.exception.subroutineNameDuplicated=two or more subroutines have the same name! +ardublock.translator.exception.noLoopFound=No loop found! +ardublock.translator.exception.multipleLoopFound=multiple loop block found! +ardublock.translator.exception.socketNull=A required Value, Variable Name or 'Test' is missing.\nHint:: Look for an empty 'socket' in the highlighted block. +ardublock.translator.exception.subroutineNotDeclared=subroutine not declared + +message.title.error=Error +message.title.question=Question +message.content.open_unsaved=Ardublock program has changed, do you want to save? +message.content.overwrite=Do you want overwrite existing file? +message.file_not_found=File Not Found or Permission Denied +message.question.newfile_on_workspace_changed=The program has changed, do you want to create a new Ardublock file? + +bc.repeat_times=times + +# Descriptions of all Block + +bg.program.description=Main program with loop and setup +bg.loop.description=Main Program loop without setup + +bg.scoop_sleep.description=Delay execution of current thread for x milliseconds +bg.scoop_task.description=Multitasking thread with loop and setup +bg.scoop_loop.description=Multitasking thread without setup commands +bg.scoop_pin_event.description=Multitasking thread. Runs commands when an event is detected on a pin. +bg.scoop_event_low.description=event triggered when pin is low +bg.scoop_event_high.description=event triggered when pin is high +bg.scoop_event_falling.description=event triggered when pin is falling +bg.scoop_event_rising.description=event triggered when pin is rising +bg.scoop_event_change.description=event triggered when pin is change + +bg.delay.description=Delay for "milliseconds" indicated.\nNOTE: 1000 millis = 1 second +bg.if.description=Run the commands if the "test" is true +bg.ifelse.description=Run the first set of commands if the "test" is true, otherwise it will do the second set of commands. +bg.while.description=Run the commands as long as the "test" is true +bg.do_while.description=Run the list of commands. Then, if 'test' is true, keep on repeating it until 'test' is 'false' +bg.repeat_times.description=Repeat a list of commands a number of times. +bg.repeat.description=Repeat a list of commands a number of times. "variable" counts the repetitions. +bg.break.description=break +bg.subroutine.description=A list of commands we can call by a single name.\nThey will run only if 'called', see CONTROL menu. +bg.subroutine-ref.description=Run the list of commands in the subroutine called... +bg.delay_microseconds.description=Delay for "microseconds" indicated. \nNOTE: 1000000 micros = 1 second +bg.pin-read-analog.description=Read analog value from pin. Zero volts = 0. Five volts = 1023 +bg.pin-read-digital.description=Read digital value (HIGH or LOW) from pin. +bg.pin-read-digital-pullup.description=Set pin to digital input\nPin will report HIGH if unconnected. +bg.pin-write-digital.description=Set digital pin to HIGH or LOW +bg.pin-toggle.description=toggle digital pin +bg.pin-write-analog.description=Write analog voltage to pin. Eg \n 0 = Zero volts. 255 = five volts. +bg.addition.description=Sum of two numbers +bg.subtraction.description=Difference of two numbers +bg.multiplication.description=Product of two numbers +bg.division.description=Quotient of two numbers +bg.random.description=Generate a random number less than the number +bg.map_common.description=map value from [0, 1023] to [0, 255] +bg.map.description=Map value from "from" range to "to" range +bg.toint.description=string to tint +bg.constrain.description=Constrain a number between two values +bg.dummy.description= +bg.greater.description=True if the first number is greater the second number +bg.less.description=True if the first number is less then the second number +bg.equal.description=True if the first number equals to the second number +bg.equal_digital.description=True if the first number equals to the second number +bg.greater_equal.description=True if the first number is greater or equal to the second number +bg.less_equal.description=True if the first number is less or equal to the second number +bg.not_equal.description=True if the first number is not equal to the second number +bg.not_equal_digital.description=True if the first number is not equal to the second number +bg.and.description=True if both of the two conditions are true. +bg.or.description=True if one or both of the two conditions are true. +bg.not.description=The opposite of +bg.equal_poly.description=True if first character is equal to the second character +bg.not_equal_poly.description=True if first character is not equal to the second character +bg.equal_string.description=True if first string is equal to the second string +bg.not_equal_string.description=True if first string is not equal to the second string +bg.string_greater.description= True if first string is to the second string +bg.string_less.description= True if first string is to the second string +bg.string_equal.description= True if first string is to the second string +bg.string_greater_equal.description= True if first string is to the second string +bg.string_less_equal.description= True if first string is to the second string +bg.string_not_equal.description= True if first string is to the second string +bg.string_equals.description=True if first string is to the second string +bg.string_equalsIgnoreCase.description=True if first string is to the second string +bg.string_toInt.description=True if a numeric string compared to the number it represents +bg.string_compareTo.description=True if first string is to the second string +bg.millis.description=Returns milliseconds since last power-up or reset.\nNote: Use to set a 'Large Integer' variable. +bg.true.description=Boolean True. +bg.false.description=Boolean False. +bg.digital-high.description=Pin HIGH +bg.digital-low.description=Pin LOW +bg.string_equal.description=True if two strings are equal +bg.string_empty.description=True if string is empty +bg.char.description=Character constant +bg.number.description=Standard integer constant.\n32,768 to +32,767 +bg.number_long.description=Large integer constant.\n0 to 4,294,967,295 +bg.number_double.description='Decimal' number constant. +/- 3.4028235E+38 +bg.variable_number.description=Standard integer variable.\n-32,768 to +32,767 +bg.pinListDigital_D0.description=List of valid digital pin numbers on various Arduino boards +bg.pinListDigital_D6.description=List of valid digital pin numbers on various Arduino boards +bg.pinListDigital_D8.description=List of valid digital pin numbers on various Arduino boards +bg.pinListDigital_D11.description=List of valid digital pin numbers on various Arduino boards +bg.pinListDigital_D12.description=List of valid digital pin numbers on various Arduino boards +bg.pinListDigital_D13.description=List of valid digital pin numbers on various Arduino boards +bg.pinListAnalog_A0.description=List of valid analog pin numbers on various Arduino boards +bg.pinListAnalogWrite_D3.description=List of valid 'analog write' (PWM) pin numbers on various Arduino boards +bg.variable_number_unsigned_long.description=Large integer variable name +bg.variable_number_double.description='Decimal' variable name +bg.variable_digital.description=Digital variable +bg.variable_string.description=string variable +bg.setter_variable_number.description=Set standard integer variable.\n-32,768 to +32,767 +bg.setter_variable_number_unsigned_long.description=Set large integer variable.\n0 to 4,294,967,295 +bg.setter_variable_number_double.description=Set 'Decimal' variable.\n +/- 3.4028235E+38 +bg.setter_variable_digital.description=Set digital variable.\nHIGH or LOW +bg.variable_vector.description=Get the value of an array member +bg.create_variable_vector.description=Create an array of standard integers.\n-32,768 to +32,767 +bg.setter_variable_vector.description=Set the value of an array member +bc.array=Name the array +bg.setter_variable_char.description=Set a character variable +bg.variable_poly.description=Character variable name +bg.servo.description=Control a servo +bg.servo_sg90.description=Control an SG90 servo +bg.servo_mg996r.description=Control an MG996R servo +bg.servo_default.description=Control a servo +bg.ultrasonic.description=Ultrasonic distance sensor +bg.LCD_I2C_Sainsmart_20by4.description= Sainsmart LCD Display. I2C. 20 Char by 4 Lines +bg.LCD_I2C_Sainsmart_16by2.description= Sainsmart LCD Display. I2C. 16 Char by 2 Lines +bg.LCD_PLL_Sainsmart_16by2.description= Sainsmart LCD Display. Parallel. 16 Char by 2 Lines +bg.LCD_command_clear.description=Clear an LCD display +bg.LCD_command_home.description=LCD display home +bg.LCD_command_lightOn.description=LCD display light on. +bg.LCD_command_lightOff.description=LCD display light off +bg.LCD_command_cursorOn.description=LCD display cursor on. +bg.LCD_command_cursorOff.description=LCD display cursor off +bg.LCD_command_blinkOn.description=LCD display blink on. +bg.LCD_command_blinkOff.description=LCD display blink off +bg.tone.description=Generates a square wave of the specified frequency (and 50% duty cycle) on a pin. +bg.tone_time.description=Generates a square wave of the specified frequency (and 50% duty cycle) on a pin. +bg.no_tone.description=Stops the generation of a square wave triggered by tone(). +bg.DDRA.description=DDRA +bg.DDRB.description=DDRB +bg.DDRC.description=DDRC +bg.DDRD.description=DDRD +bg.DDRH.description=DDRH +bg.DDRL.description=DDRL +bg.PORTA.description=PORTA +bg.PORTB.description=PORTB +bg.PORTC.description=PORTC +bg.PORTD.description=PORTD +bg.PORTH.description=PORTH +bg.PORTL.description=PORTLZ +bg.PINA.description=PINA +bg.PINB.description=PINB +bg.PINC.description=PINC +bg.PIND.description=PIND +bg.PINH.description=PINH +bg.PINL.description=PINL +bg.serial_write.description=Send message via Serial +bg.serial_print.description=Send message via Serial port +bg.message.description=Edit message text +bg.glue_sn.description=Glue number to string +bg.glue_sb.description=Glue boolean to string +bg.glue_poly.description=Glue char to string +bg.wire_write.description=Write data via I2C +bg.wire_read.description=Read data from i2c +bg.wire_isread.description=Is last read from I2C success? +bg.eeprom_read.description=Read a byte (0-255) from EEPROM. Each byte consumes just one EEPROM address. Using consecutive addresses is OK +bg.eeprom_read.description=Read a byte (0-255) from EEPROM. Each byte consumes just one EEPROM address. Using consecutive addresses is OK +bg.eeprom_write.description=Write a byte (0-255) to EEPROM. Each byte consumes just one EEPROM address. Using consecutive addresses is OK +bg.eeprom_read_int.description=Read an int (+/- 32,767) from EEPROM. NOTE: DON'T read from consecutive addresses. Each number consumes 2 addresses in EEPROM +bg.eeprom_write_int.description=Write an int (+/- 32,767) to EEPROM. NOTE: DON'T write to consecutive addresses. Each number consumes 2 addresses in EEPROM +bg.eeprom_read_long.description=Read a 'long' (0 - 4,294,967,295) from EEPROM. NOTE: DON'T read from consecutive addresses. Each number consumes 4 addresses in EEPROM +bg.eeprom_write_long.description=Write a 'long' (0 - 4,294,967,295) to EEPROM. NOTE: DON'T write to consecutive addresses. Each number consumes 4 addresses in EEPROM +bg.sd_write2.description=Write to SD card +bg.code_loop.description=Add raw codes to loop() +bg.code_head.description=Add raw codes to head +bg.code_setup.description=Add raw codes to setup() +bg.glue_msg.description=Glue a text message +bg.variable_fake.description=Digital Var +bg.serial_println.description=Send message via Serial port with a return +bg.ir_setport.description=Set Port where IR Receiver attached +bg.ir_getcode.description=Get code from ir receiver and store in a variable string +bg.bluno_println.description=println string on bluno oled +bg.bluno_println_clear.description=clear bluno oled +bg.bluno_println_number.description=println number on bluno oled +bg.Tinker_LED.description=TinkerKit LED +bg.Tinker_LED_pwm.description=TinkerKit LED +bg.Tinker_Mosfet.description=TinkerKit Mosfet +bg.Tinker_Mosfet_pwm.description=TinkerKit Mosfet +bg.Tinker_Relay.description=TinkerKit Relay +bg.Tinker_Servo.description=TinkerKit Servo +bg.Tinker_Button.description=TinkerKit Button +bg.Tinker_Accmeter.description=TinkerKit Accelerometer +bg.Tinker_Hall.description=TinkerKit Hall Sensor +bg.Tinker_LDR.description=TinkerKit LDR +bg.Tinker_LinearPotentiometer.description=TinkerKit Accelerometer +bg.Tinker_RotaryPotentiometer.description=TinkerKit RotaryPotentiometer +bg.Tinker_Thermistor.description=TinkerKit Thermistor +bg.Tinker_Touch.description=TinkerKit Touch Sensor +bg.Tinker_Servo.description=TinkerKit Servo +bg.Tinker_Tilt.description=TinkerKit Tilt +bg.xcj_motor_forward.description=forward +bg.xcj_motor_backward.description=Moving the car backward +bg.xcj_ms_digital_write.description=Write digital signal to Socket +bg.xcj_ms_digital_read.description=Read digital status from socket +bg.df_pizeo_disk_vibration_sensor.description=Vibration Sensor buffers a piezoelectric transducer that responds to strain changes by generating a measurable output voltage change which is proportional to the strength of vibration. +bg.df_analog_ambient_light_sensor.description=The ambient light sensor detects light density. +bg.df_analog_grayscale_sensor.description=Analog Grayscale Sensor detect the grayscale. +bg.df_flame_sensor.description=Read analog value from pin +bg.df_analog_mma7361_x.description=Read analog value from pin +bg.df_analog_mma7361_y.description=Read analog value from pin +bg.df_analog_mma7361_z.description=Read analog value from pin +bg.df_analog_gp2y0a21.description=Read analog value from pin +bg.df_analog_moisture.description=Read analog value from pin +bg.df_temperature_sensor.description=Read analog value from pin +bg.df_joystick_module_x.description=Read analog value from pin +bg.df_joystick_module_y.description=Read analog value from pin +bg.df_mma7260_x.description=Read analog value from pin +bg.df_mma7260_y.description=Read analog value from pin +bg.df_mma7260_z.description=Read analog value from pin +bg.df_analog_rotation_sensor_v1.description=Read analog value from pin +bg.df_analog_rotation_sensor_v2.description=Read analog value from pin +bg.df_analog_sound_sensor.description=Read analog value from pin +bg.df_analog_volume_sensor.description=Read analog value from pin +bg.df_analog_gas_sensor.description=Read analog value from pin +bg.df_analog_co_sensor.description=Read analog value from pin +bg.df_analog_voltage_divider.description=Read analog value from pin +bg.df_servo.description=set a pin to pwm +bg.df_360_degree_rotation_motor.description=set a pin to pwm +bg.df_dht11_humidity.description=get Humidity from Dht11 +bg.df_dht11_temperature.description=get Temperature from Dht11 +bg.df_romeo_motors.description=set motors speed on romeo +bg.df_romeo_motor.description=set motor speed on romeo +bg.df_romeo_motor_stop.description=stop motor on romeo +bg.df_led.description=LED Module +bg.df_led_pwm.description=LED Module +bg.df_piranha_led.description=Piranha LED Module +bg.df_piranha_led_pwm.description=Pianha LED Module with brightness level +bg.df_relay.description=Relay Module +bg.df_buzzer.description=Buzzer Module +bg.df_buzzer_tone.description=Generates a square wave of the specified frequency (and 50% duty cycle) on a pin. +bg.df_buzzer_tone_delay.description=Generates a square wave of the specified frequency (and 50% duty cycle) on a pin. +bg.df_lcd_keypad.description= lcd block that use liquicrystal +bg.seeed_joystick.description=Read analog value from analog pin +bg.seeed_joystick_button.description=Read analog value from analog pin +bg.seeed_o2_sensor=Gas Sensor(O2) +bg.seeed_uv_sensor=UV Sensor +bg.seeed_single_gyro=Single Axis Analog Gyro +bg.seeed_mq9_sensor=Gas Sensor(MQ9) +bg.seeed_mp3_sensor=Gas Sensor(MQ3) +bg.seeed_vib_sensor=Piezo Vibration Sensor +bg.seeed_loud_sensor=Loudness Sensor +bg.seeed_diff_amp=Differential Amplifier +bg.seeed_ir_temp_sensor=Infrared Temperature Sensor +bg.seeed_ir_proximity_sensor=80cm Infrared Proximity Sensor +bg.seeed_electricity_sensor=Electricity Sensor +bg.seeed_angle_sensor=Rotary Angle Sensor +bg.seeed_sound_sensor=Sound Sensor +bg.seeed_moisture_sensor=Moisture Sensor +bg.seeed_temp_sensor=Temperature Sensor +bg.seeed_light_sensor=Light Sensor + +bg.seeed_voltage_divider=Voltage Divider +bg.seeed_flame_sensor=Flame Sensor +bg.seeed_button=Button +bg.seeed_switch=Switch +bg.seeed_ir_refl_sensor=Infrared Reflective Sensor +bg.seeed_heart_rate_sensor=Ear-clip Heart Rate Sensor +bg.seeed_chest_heart_sensor=Chest Strap Heart Rate Sensor +bg.seeed_air_quality_sensor=Air Quality Sensor +bg.seeed_line_finder=Line Finder +bg.seeed_pir_motion_sensor=PIR Motion Sensor +bg.seeed_tilt_switch=Tilt Switch +bg.seeed_push_button=Button +bg.seeed_water_sensor=Water Sensor +bg.seeed_touch_sensor=Touch Sensor +bg.seeed_mag_switch=Magnetic Switch +bg.seeed_ir_dist_int=IR Distance Interrupter + +bg.seeed_circle_led=SPDT Relay(30A) +bg.seeed_2coil_relay=2-Coil Latching Relay +bg.seeed_dry_relay=Dry-Reed Relay +bg.seeed_solid_relay=Solid State Relay +bg.seeed_circle_led=Circular LED +bg.seeed_led_strip=LED Strip Driver +bg.seeed_led=LED +bg.seeed_var_led=Variable Color LED +bg.seeed_vib=Vibration Motor +bg.seeed_relay=Relay + +bg.seeed_o2_sensor.description=Grove-Gas Sensor (O\u2082) is a kind of sensor to test the oxygen concentration in air, which is based on the principle of the electrochemical cell to the original work. +bg.seeed_uv_sensor.description=\u2013 UV Sensor is used for detecting the intensity of incident ultraviolet(UV) radiation. +bg.seeed_single_gyro.description=Signal Axis Analog Gyro is based on an angular velocity sensor that uses the phenomenon of Coriolis force. +bg.seeed_mq9_sensor.description=Gas Sensor module is useful for gas leakage detecting(in home and industry). It can detect LPG, i-butane, methane, alcohol, Hydrogen, somke and so on. +bg.seeed_mp3_sensor.description=Gas Sensor module is useful for gas leakage detecting(in home and industry). It can detect LPG, i-butane, methane, alcohol, Hydrogen, somke and so on. +bg.seeed_vib_sensor.description=Piezo Vibration Sensor is suitable for measurements of flexibility, vibration, impact and touch. +bg.seeed_loud_sensor.description=Loudness Sensor is designed to detect the loudness of environmental sound. Based on amplifier LM2904 and a built-in microphone, it amplifies and filters the high frequency signal that received from the microphone, and outputs a positive envelop. +bg.seeed_diff_amp.description=It's designed for precise differential-input amplification +bg.seeed_ir_temp_sensor.description=The Infrared temperature sensor is a non-contact temperature measure model. +bg.seeed_ir_proximity_sensor.description=The 80cm Infrared Proximity Sensor is a General Purpose Type Distance Measuring Sensors, this sensor takes a continuous distance reading and returns a corresponding analog voltage with a range of 10cm (4") to 80cm (30"). +bg.seeed_electricity_sensor.description=The Electricity sensor module is based on the TA12-200 current transformer which can change large alternating current into a small amplitude. +bg.seeed_angle_sensor.description=The potentiometer twig produces analog output between 0 and Vcc (5V DC with Seeeduino) on its D1 connector. +bg.seeed_sound_sensor.description=The Sound sensor module is a simple microphone. +bg.seeed_moisture_sensor.description=This Moisture Sensor can be used to detect the moisture of soil or judge if there is water around the sensor, let the plants in your garden reach out for human help. +bg.seeed_temp_sensor.description=The temperature sensor uses a thermistor which returns the ambient temperature in the form of a resistance value, which is then used to alter Vcc (5V with our Seeeduinos). +bg.seeed_light_sensor.description=The light sensor returns the ambient light in the form of a resistance value, which is then used to alter Vcc (5V with our Seeeduinos). + +bg.seeed_voltage_divider.description=Voltage Divider provides an interface for measuring external voltage, eliminating the need to connect a resistance to input interface. +bg.seeed_flame_sensor.description=Flame Sensor can be used to detect fire source or other light sources of the wavelength in the range of 760nm - 1100 nm. +bg.seeed_button.description=Button +bg.seeed_switch.description=Switch +bg.seeed_ir_refl_sensor.description=Infrared Reflective Sensor utilizes a RPR220 reflective photosensor module to detect color and distance. +bg.seeed_heart_rate_sensor.description=The heart rate measure kit can be used to monitor heart rate of patient and athlete. +bg.seeed_chest_heart_sensor.description=The heart rate measure kit can be used to monitor the heart rate of patients and athletes, meanwhile the result can be displayed on a screen via serial port and saved for analysis. +bg.seeed_air_quality_sensor.description=The sensor is designed for indoor air quality testing. The main gas detected is carbon monoxide, alcohol, acetone, thinner, formaldehyde and other slightly toxic gases. +bg.seeed_line_finder.description=Line finder is designed for line following robotic. It consists two parts - an IR emitting LED and an IR sensitive phototransistor. It can output digital signal to a microcontroller so the robot can reliably follow a black line on a white background, or vice versa. +bg.seeed_pir_motion_sensor.description=when anyone moves in its detecting range, the sensor outputs HIGH on its SIG pin. +bg.seeed_tilt_switch.description=The tilt-switch twig is the equivalent of a button, and is used as a digital input. +bg.seeed_push_button.description=Button +bg.seeed_water_sensor.description=This sensor works by having a series of exposed traces connected to ground and interlaced between the grounded traces are the sens traces. The sensor traces have a weak pull-up resistor of 1 M\u03a9. The resistor will pull the sensor trace value high until a drop of water shorts the sensor trace to the grounded trace. +bg.seeed_touch_sensor.description=It can detect the change in capacitance when a finger is near it. +bg.seeed_mag_switch.description=The magnetic switch is a wonder tool for designers who would like to turn a circuit on and off based on proximity. +bg.seeed_ir_dist_int.description=This IR Distance Interrupter features a high-sensitivity RFR-359F photoreflector to perform distance detection function. + +bg.seeed_circle_led.description=The SPDT Relay(30A) is a high quality Single Pole Double Throw Relay(SPDT). +bg.seeed_2coil_relay.description=This module is based on 2-Coil Latching Relay. +bg.seeed_dry_relay.description=Grove-Dry-Reed Relay is a relay module which works through magnetizing the vibration reed via the current in the coils. +bg.seeed_solid_relay.description=Solid State Relay is a non-contact electronic switch module that has relay features. +bg.seeed_circle_led.description=it has a florid body with 24 controllable LEDs. +bg.seeed_led_strip.description=It can help you control the luminance of a single-color LED strip, as well as the color and the luminance of an RGB LED strip through Arduino or Seeeduino. +bg.seeed_led.description=LED is designed for the beginners of Arduino/Seeeduino to monitor controls from digital ports. +bg.seeed_var_led.description=When SIG pin is logic LOW, the RGB LED will show. +bg.seeed_vib.description=It is consist one coin type motor which is a Permanent Magnet coreless DC motor. +bg.seeed_relay.description=The Relay is a digital normally open switch that controls a relay capable of switching much higher voltages and currents than your normal Arduino boards. + +bd.DuinoEDU=DuinoEDU Grove Add +bg.DuinoEDU_infrared=Infrared +bg.DuinoEDU_infrared.description=Infrared +bg.DuinoEDU_temp=Temp sensor +bg.DuinoEDU_temp.description=Temp sensor +bg.DuinoEDU_tempPro=Temp sensor Pro +bg.DuinoEDU_tempPro.description=Temp sensor Pro +bg.DuinoEDU_humi=Humi sensor +bg.DuinoEDU_humi.description=Humi sensor +bg.DuinoEDU_humiPro=Humi sensor Pro +bg.DuinoEDU_humiPro.description=Humi sensor Pro +bg.DuinoEDU_Led_Bar=Led Bar +bg.DuinoEDU_Led_Bar.description=Led Bar +bg.DuinoEDU_LCD_I2C_RGB=LCD I2C RGB Backlight +bg.DuinoEDU_LCD_I2C_RGB.description=LCD I2C RGB Backlight +bg.DuinoEDU_LCD_I2C_RGB2=LCD I2C RGB Backlight +bg.DuinoEDU_LCD_I2C_RGB2.description=LCD I2C RGB Backlight +bg.DuinoEDU_LCD_I2C_Backlight=LCD I2C Backlight +bg.DuinoEDU_LCD_I2C_Backlight.description=LCD I2C Backlight depend of the RGB between 0 and 1000 or more +bg.DuinoEDU_LCD_I2C_RGB_Clear=LCD I2C RGB Clear +bg.DuinoEDU_LCD_I2C_RGB_Clear.description=LCD I2C RGB Clear +bg.keyboard=keyboard +bg.keyboard.description=keyboard +bg.keyboard_post=keyboard post +bg.keyboard_post.description=keyboard post +bg.keyboard_compare=key of keyboard +bg.keyboard_compare.description=return a boolean = or != to +bg.DuinoEDU_Mouse_Init=Init Mouse +bg.DuinoEDU_Mouse_Init.description= Initialisation of the mouse +bg.DuinoEDU_Mouse_Xmove= Mouse X Move +bg.DuinoEDU_Mouse_Xmove.description= Mouse X Move +bg.DuinoEDU_Mouse_Ymove=Mouse Y Move +bg.DuinoEDU_Mouse_Ymove.description= Mouse Y Move +bg.DuinoEDU_Keypad_12_Button=Keypad 12 Button +bg.DuinoEDU_Keypad_12_Button.description=Keypad 12 Button +bg.DuinoEDU_Keypad_Post=Keypad Post +bg.DuinoEDU_Keypad_Post.description=Keypad Post +bg.DuinoEDU_Keypad_Pwd=Keypad Password +bg.DuinoEDU_Keypad_Pwd.description=Keypad Password +bg.DuinoEDU_Digital_Tube=Digital Tube +bg.DuinoEDU_Digital_Tube.description=Fixe brightness and the 2 points +bg.DuinoEDU_Digital_Tube_Ecrire=Digital Tube Display +bg.DuinoEDU_Digital_Tube_Ecrire.description=Digital Tube display number between 0 and 9999 +bg.DuinoEDU_Digital_Clear=Digital Tube Clear +bg.DuinoEDU_Digital_Clear.description=Digital Tube Clear +bg.DuinoEDU_Display_Digital_Tube=Display on digital tube +bg.DuinoEDU_Display_Digital_Tube.description=Display on digital tube +bg.DuinoEDU_Display_Digital_Tube2=Display on digital tube +bg.DuinoEDU_Display_Digital_Tube2.description=Display on digital tube +bg.DuinoEDU_Oled_I2C=Oled I2C +bg.DuinoEDU_Oled_I2C.description=Oled I2C +bg.DuinoEDU_Oled_Clear=Oled Clear +bg.DuinoEDU_Oled_Clear.description=Oled Clear +bg.DuinoEDU_Driver_I2C_Forward=Forward DRIVER I2C +bg.DuinoEDU_Driver_I2C_Forward.description=Driver I2C Forward +bg.DuinoEDU_Driver_I2C_Stop=Stop DRIVER I2C +bg.DuinoEDU_Driver_I2C_Stop.description=Driver I2C Stop +bg.DuinoEDU_Driver_I2C_Back=Back DRIVER I2C +bg.DuinoEDU_Driver_I2C_Back.description=Driver I2C Back +bg.DuinoEDU_Driver_I2C_Pivoter=Pivote DRIVER I2C +bg.DuinoEDU_Driver_I2C_Pivoter.description=Driver I2C Pivote +bg.DuinoEDU_Driver_I2C_Speed_A_Motor=Speed A Motor +bg.DuinoEDU_Driver_I2C_Speed_A_Motor.description=fixe the speed of the motor between 1 and 1000 +bg.DuinoEDU_Driver_I2C_Speed_B_Motor=Speed B Motor +bg.DuinoEDU_Driver_I2C_Speed_B_Motor.description=fixe the speed of the motor between 1 and 1000 +bg.DuinoEDU_shildbot_Forward=Shieldbot : Forward +bg.DuinoEDU_shildbot_Forward.description=Driver I2C Forward shieldbot +bg.DuinoEDU_shildbot_Back=Shieldbot : Back +bg.DuinoEDU_shildbot_Back.description=Driver I2C Back shieldbot +bg.DuinoEDU_shildbot_Pivoter=Shieldbot : Pivot +bg.DuinoEDU_shildbot_Pivoter.description=Driver I2C Pivot shieldbot +bg.DuinoEDU_shildbot_Stop=Shieldbot : Stop +bg.DuinoEDU_shildbot_Stop.description=Driver I2C Stop shieldbot +bg.DuinoEDU_shildbot_Speed_Motor=Speed A Motor shieldbot +bg.DuinoEDU_shildbot_Speed_Motor.description=fixe the speed of the motor between 1 and 1000 shieldbot +bg.DuinoEDU_shildbot_Read=Shieldbot : Read +bg.DuinoEDU_shildbot_Read.description=Read shieldbot +bg.DuinoEDU_right=Right +bg.DuinoEDU_straight=Straight +bg.DuinoEDU_left=Left +bg.DuinoEDU_Aix_Acc_mesurerX=mesurerX +bg.DuinoEDU_Aix_Acc_mesurerX.description=mesurerX +bg.DuinoEDU_Aix_Acc_mesurerY=mesurerY +bg.DuinoEDU_Aix_Acc_mesurerY.description=mesurerY +bg.DuinoEDU_Aix_Acc_mesurerZ=mesurerZ +bg.DuinoEDU_Aix_Acc_mesurerZ.description=mesurerZ +bg.DuinoEDU_Aix_Acc_mesurerXYZ=mesurerXYZ +bg.DuinoEDU_Aix_Acc_mesurerXYZ.description=mesurerXYZ +bg.DuinoEDU_Aix_Acc_mesurerVariation=Variation +bg.DuinoEDU_Aix_Acc_mesurerVariation.description=Variation +bg.DuinoEDU_Ultrasonic=Ultrasonic +bg.DuinoEDU_Ultrasonic.description=Ultrasonic +bc.sample=Nb Sample +bg.DuinoEDU_Partie_Emetteur=Emetteur +bg.DuinoEDU_Partie_Emetteur.description=Emetteur +bg.DuinoEDU_Partie_Recepteur=Recepteur +bg.DuinoEDU_Partie_Recepteur.description=Recepteur +bg.DuinoEDU_Rfid_Write=Rfid save code +bg.DuinoEDU_Rfid_Write.description=Save in Ram the code +bg.DuinoEDU_Rfid_Test=Rfid Test +bg.DuinoEDU_Rfid_Test.description= compare the code with the list in the ram +bg.DuinoEDU_Rfid_Read=Rfid Read +bg.DuinoEDU_Rfid_Read.description=Read a badge +bg.DuinoEDU_Rfid_Clear=Rfid clear +bg.DuinoEDU_Rfid_Clear.description=Clear the liste of codes in Ram +bg.DuinoEDU_Rfid_Ram_List=Rfid Ram List +bg.DuinoEDU_Rfid_Ram_List.description=Create a liste of code in Ram +bg.DuinoEDU_neopixel_init=Neopixel Init +bg.DuinoEDU_neopixel_init.description=initialization +bg.DuinoEDU_neopixel_pixel_colorGRB=Neopixel GRB Pixel Color +bg.DuinoEDU_neopixel_pixel_colorGRB.description=Pixel Color between 0 and 1000 for each color +bg.DuinoEDU_neopixel_pixel_colorRGB=Neopixel RGB Pixel Color +bg.DuinoEDU_neopixel_pixel_colorRGB.description=Pixel Color between 0 and 1000 for each color +bg.DuinoEDU_neopixel_show=Neopixel Show +bg.DuinoEDU_neopixel_show.description=Push the color data to the strip +bg.DuinoEDU_neopixel_Brightness=Neopixel Brightness +bg.DuinoEDU_neopixel_Brightness.description=Brightness between 0 and 1000 +bg.DuinoEDU_neopixel_Clear=Neopixel Clear +bg.DuinoEDU_neopixel_Clear.description=Clear all led +bg.DuinoEDU_stepper_step=Stepper Motor Step +bg.DuinoEDU_stepper_step.description= Number of step of the Motor +bg.DuinoEDU_stepper_setSpeed=Stepper Motor setSpeed +bg.DuinoEDU_stepper_setSpeed.description=Set speed of Stepper Motor +bg.DuinoEDU_matrice_write=Matrice Write +bg.DuinoEDU_matrice_write.description=Turn on one Led of the matrice +bg.DuinoEDU_matrice_clear=Matrice Clear +bg.DuinoEDU_matrice_clear.description=Clear the Matrice +bg.DuinoEDU_matrice_Brightness=Matrice Brightness +bg.DuinoEDU_matrice_Brightness.description=Brightness between 0 and 15 +bg.DuinoEDU_Led=LED +bg.DuinoEDU_Led.description=LED Module +bg.DuinoEDU_Servo_Plus=Servo Plus +bg.DuinoEDU_Servo_Plus.description=Servo Plus +bg.DuinoEDU_SerialOscillo=SerialOscillo +bg.DuinoEDU_SerialOscillo.description=SerialOscillo Duinoedu.com +bg.DuinoEDU_SerialOscillo_Init=SerialOscillo Init +bg.DuinoEDU_SerialOscillo_Init.description=SerialOscillo Init Duinoedu.com +bc.serial_broche=Number of Dial +bc.dial=Dial +bc.in=In +bg.DuinoEDU_Volts=Volts +bg.DuinoEDU_VALEURS_BRUTES=Gross Value +bg.DuinoEDU_CM=CM +bg.DuinoEDU_DEGRES=\u00B0C +bg.DuinoEDU_Nunchuck_BoutonC=Bouton C +bg.DuinoEDU_Nunchuck_BoutonC.description=Nunchuck +bg.DuinoEDU_Nunchuck_BoutonZ=Bouton Z +bg.DuinoEDU_Nunchuck_BoutonZ.description= +bg.DuinoEDU_Nunchuck_JoystickX=Joystick X +bg.DuinoEDU_Nunchuck_JoystickX.description= +bg.DuinoEDU_Nunchuck_JoystickY=Joystick Y +bg.DuinoEDU_Nunchuck_JoystickY.description= +bg.DuinoEDU_Nunchuck_AccelerationX=ACC X +bg.DuinoEDU_Nunchuck_AccelerationX.description= +bg.DuinoEDU_Nunchuck_AccelerationY=ACC Y +bg.DuinoEDU_Nunchuck_AccelerationY.description= +bg.DuinoEDU_Nunchuck_AccelerationZ=ACC Z +bg.DuinoEDU_Nunchuck_AccelerationZ.description= +bg.DuinoEDU_Barometer_Temperature=Temperature Barometer +bg.DuinoEDU_Barometer_Temperature.description=Barometer Sensor +bg.DuinoEDU_Barometer_Pression=Pressure Barometer +bg.DuinoEDU_Barometer_Pression.description= +bg.DuinoEDU_Barometer_Altitude=Altitude Barometer +bg.DuinoEDU_Barometer_Altitude.description= +bg.DuinoEDU_Guino_Read=Guino trace graphic +bg.DuinoEDU_Guino_Read.description=Read a value and trace the graphic +bg.DuinoEDU_Guino_Init=Guino Init +bg.DuinoEDU_Guino_Init.description=Guino initialisation. Place it at the start of the loop +bg.DuinoEDU_Guino_Title=Guino Title +bg.DuinoEDU_Guino_Title.description=Place a Title +bg.DuinoEDU_Guino_Slider=Guino Slider +bg.DuinoEDU_Guino_Slider.description=make a slider +bg.DuinoEDU_Guino_column=Guino add column +bg.DuinoEDU_Guino_column.description=add a column in Guino +bg.DuinoEDU_Guino_switch=Guino Switch +bg.DuinoEDU_Guino_switch.description=add a Switch in Guino +bg.DuinoEDU_Guino_pause= +bg.DuinoEDU_Guino_pause.description=Pause +bg.DuinoEDU_MP3_Player=MP3 Player +bg.DuinoEDU_MP3_Player.description=Fixe a volume between 0 and 1000. Play the Track between 0 and 255. +bg.DuinoEDU_MP3_Pause=MP3 Pause +bg.DuinoEDU_MP3_Pause.description=MP3 Pause +bg.DuinoEDU_hand_positionX=X position hand +bg.DuinoEDU_hand_positionX.description=X position hand +bg.DuinoEDU_hand_positionY=Y position hand +bg.DuinoEDU_hand_positionY.description=Y position hand +bg.DuinoEDU_hand_positionZ=Z position hand +bg.DuinoEDU_hand_positionZ.description=Z position hand +bg.DuinoEDU_handRotX=X rotation hand +bg.DuinoEDU_handRotX.description=X rotation hand +bg.DuinoEDU_handRotY=Y rotation hand +bg.DuinoEDU_handRotY.description=Y rotation hand +bg.DuinoEDU_handRotZ=Z rotation hand +bg.DuinoEDU_handRotZ.description=Z rotation hand +bg.DuinoEDU_angle_pouce=thumb angle +bg.DuinoEDU_angle_pouce.description=thumb angle +bg.DuinoEDU_angle_index=index angle +bg.DuinoEDU_angle_index.description=index angle +bg.DuinoEDU_angle_majeur=middle angle +bg.DuinoEDU_angle_majeur.description=middle angle +bg.DuinoEDU_angle_annulaire=ring angle +bg.DuinoEDU_angle_annulaire.description=ring angle +bg.DuinoEDU_angle_auriculaire=pink angle +bg.DuinoEDU_angle_auriculaire.description=pink angle +bc.step2=Step +bc.name=Name +bg.DuinoEDU_D2=D2 +bg.DuinoEDU_D3=D3 +bg.DuinoEDU_D4=D4 +bg.DuinoEDU_D5=D5 +bg.DuinoEDU_D6=D6 +bg.DuinoEDU_D7=D7 +bg.DuinoEDU_D8=D8 +bg.DuinoEDU_D9=D9 +bg.DuinoEDU_D10=D10 +bg.DuinoEDU_D11=D11 +bg.DuinoEDU_D12=D12 +bg.DuinoEDU_D13=D13 +bg.DuinoEDU_D14=D14 +bg.DuinoEDU_D15=D15 +bg.DuinoEDU_D16=D16 +bg.DuinoEDU_D17=D17 +bg.DuinoEDU_D18=D18 +bg.DuinoEDU_D19=D19 +bg.DuinoEDU_D20=D20 +bg.DuinoEDU_D21=D21 +bg.DuinoEDU_A0=A0 +bg.DuinoEDU_A1=A1 +bg.DuinoEDU_A2=A2 +bg.DuinoEDU_A3=A3 +bg.DuinoEDU_A4=A4 +bg.DuinoEDU_A5=A5 +bg.DuinoEDU_A6=A6 +bg.DuinoEDU_A7=A7 +bg.DuinoEDU_A8=A8 +bg.DuinoEDU_A9=A9 +bg.DuinoEDU_A10=A10 +bg.DuinoEDU_A11=A11 +bg.DuinoEDU_A12=A12 +bg.DuinoEDU_A13=A13 +bg.DuinoEDU_A14=A14 +bg.DuinoEDU_A15=A15 +bg.DuinoEDU_IRREMOTE_MEMORISER_TOUCHE=Touche Mem +bg.DuinoEDU_IRREMOTE_NE_PAS_MEMORISER=No Mem +bg.DuinoEDU_IRREMOTE_MEMORISER_200_MS=200Ms Mem +bg.DuinoEDU_IRREMOTE_MEMORISER_2000_MS=20000Ms Mem +bg.DuinoEDU_infrared_compare=Key of Infrared +bc.DuinoEDU_Brightness=Brightness +bc.DuinoEDU_Display=Display +bg.DuinoEDU_On_digit1=1 +bg.DuinoEDU_On_digit2=2 +bg.DuinoEDU_On_digit3=3 +bg.DuinoEDU_On_digit4=4 +bc.DuinoEDU_On_digit=On digit +bc.DuinoEDU_On_digit1=On digit1 +bc.DuinoEDU_On_digit2=On digit2 +bc.DuinoEDU_On_digit3=On digit3 +bc.DuinoEDU_On_digit4=On digit4 +bc.DuinoEDU_Display_Point=Display Point +bg.DuinoEDU_setSerialInfosOn=ON +bg.DuinoEDU_setSerialInfosOff=OFF +bc.DuinoEDU_serial_display=Display on serial +bc.red=Red Start +bc.blue=Blue Start +bc.green=Green Start +bc.red_end=Red End +bc.blue_end=Blue End +bc.green_end=Green End +bc.stepperround=Step per Round +bc.step=Nb Step +bg.DuinoEDU_greater=> +bg.DuinoEDU_less=< +bg.DuinoEDU_equal=== +bg.DuinoEDU_greater_equal=>= +bg.DuinoEDU_less_equal=<= +bg.DuinoEDU_not_equal=!= +bc.DuinoEDU_motor_run_leftspeed=Left Motor Speed +bc.DuinoEDU_motor_run_rightspeed=Motor Speed +bg.DuinoEDU_S1=S1 +bg.DuinoEDU_S2=S2 +bg.DuinoEDU_S3=S3 +bg.DuinoEDU_S4=S4 +bg.DuinoEDU_S5=S5 +bc.track=Read Track +bg.DuinoEDU_RTC_Mem=RTC Memorize +bg.DuinoEDU_RTC_Mem.description=RTC Memorize +bc.day=Day +bc.month=Month +bc.year=Year +bc.hour=Hour +bc.minute=Minute +bc.second=Second +bg.DuinoEDU_RTC_Day=Day RTC +bg.DuinoEDU_RTC_Month=Month RTC +bg.DuinoEDU_RTC_Year=Year RTC +bg.DuinoEDU_RTC_Hour=Hour RTC +bg.DuinoEDU_RTC_Minute=Minute RTC +bg.DuinoEDU_RTC_Second=Second RTC +bg.DuinoEDU_RTC_Day.description=Day RTC +bg.DuinoEDU_RTC_Month.description=Month RTC +bg.DuinoEDU_RTC_Year.description=Year RTC +bg.DuinoEDU_RTC_Hour.description=Hour RTC +bg.DuinoEDU_RTC_Minute.description=Minute RTC +bg.DuinoEDU_RTC_Second.description=Second RTC +bg.DuinoEDU_code_loop.description=Add raw codes to loop() +bg.DuinoEDU_code_head.description=Add raw codes to head +bg.DuinoEDU_code_setup.description=Add raw codes to setup() +bg.DuinoEDU_code_head=add code on Head +bg.DuinoEDU_code_setup=add code on Setup +bg.DuinoEDU_code_loop=add code on Loop +bg.DuinoEDU_Motor_shield_Forward=Forward Motor Shield +bg.DuinoEDU_Motor_shield_Forward.description=Forward Motor Shield +bg.DuinoEDU_Motor_shield_Back=Back Motor Shield +bg.DuinoEDU_Motor_shield_Back.description=Back Motor Shield +bg.DuinoEDU_Motor_shield_Pivoter=Pivot Motor Shield +bg.DuinoEDU_Motor_shield_Pivoter.description=Pivot Motor Shield +bg.DuinoEDU_Motor_shield_Stop=Stop Motor Shield +bg.DuinoEDU_Motor_shield_Stop.description=Stop Motor Shield +bg.DuinoEDU_Motor_shield_Speed_Motor=Speed A Motor Shield +bg.DuinoEDU_Motor_shield_Speed_Motor.description=fixe the speed of the motor between 1 and 1000 +bg.DuinoEDU_Motor_shield_Drift_Motor=Drift A Motor Shield +bg.DuinoEDU_Motor_shield_Drift_Motor.description=fixe the Drift of the motor between 1 and 1000 +bc.DuinoEDU_motor_drift=Drift +bg.DuinoEDU_Gps_Init=GPS Init +bg.DuinoEDU_Gps_Init.description==GPS Init, choose where the gps is connect +bg.DuinoEDU_Uno23=D2,3 UNO +bg.DuinoEDU_Uno45=D4,5 UNO +bg.DuinoEDU_Uno67=D6,7 UNO +bg.DuinoEDU_Uno89=D8,9 UNO +bg.DuinoEDU_Mega1=Serial1 Mega +bg.DuinoEDU_Mega2=Serial2 Mega +bg.DuinoEDU_Mega3=Serial3 Mega +bg.DuinoEDU_Mega4=Serial4 Mega +bc.jetlag=Jet Lag +bg.DuinoEDU_Gps_LatitudeNbr=Nbr Latitude +bg.DuinoEDU_Gps_LongitudeNbr=Nbr Longitude +bg.DuinoEDU_Gps_LatitudeDirection=Direction Latitude +bg.DuinoEDU_Gps_LongitudeDirection=Direction Longitude +bg.DuinoEDU_Gps_LatitudeGoogleMaps=Latitude Google Maps +bg.DuinoEDU_Gps_LongitudeGoogleMaps=Longitude Google Maps +bg.DuinoEDU_Gps_Day=Day Gps +bg.DuinoEDU_Gps_Month=Month Gps +bg.DuinoEDU_Gps_Year=Year Gps +bg.DuinoEDU_Gps_Hour=Hour Gps +bg.DuinoEDU_Gps_Minute=Minute Gps +bg.DuinoEDU_Gps_Seconde=Seconde Gps +bg.DuinoEDU_Gps_Milliseconde=Milliseconde Gps +bg.DuinoEDU_Gps_Speed=Speed Gps +bg.DuinoEDU_Gps_Angle=Angle Gps +bg.DuinoEDU_Gps_altitude=Altitude Gps +bg.DuinoEDU_Gps_Synchronise=Gps Synchronise +bg.DuinoEDU_Gps_ActiverInterruption=Active +bg.DuinoEDU_Gps_DesactiverInterruption=Desactive +bc.QuantiteInformation=Information quantity +bg.DuinoEDU_Information1=1 +bg.DuinoEDU_Information2=2 +bg.DuinoEDU_Information3=3 +bc.FrequenceTrames=Frequency of frames in HZ +bg.EDUGPS_1HZ=1 +bg.EDUGPS_5HZ=5 +bg.EDUGPS_10HZ=10 +bg.EDUGPS_100MLHZ=100ML +bg.EDUGPS_200MLHZ=200ML + +bd.Esplora=Arduino Esplora +bg.Esplora_Led=Led +bg.Esplora_Led.description=Led +bg.Esplora_AccelerationX=Acc X +bg.Esplora_AccelerationX.description=Acc X +bg.Esplora_AccelerationY=Acc Y +bg.Esplora_AccelerationY.description=Acc Y +bg.Esplora_AccelerationZ=Acc Z +bg.Esplora_AccelerationZ.description=Acc Z +bg.Esplora_JoystickY=Y Joystick +bg.Esplora_JoystickY.description=Value between -512 and 512 +bg.Esplora_JoystickX=X Joystick +bg.Esplora_JoystickX.description=Value between -512 and 512 +bg.Esplora_JoystickSwitch=Joystick Center Switch +bg.Esplora_JoystickSwitch.description=LOW when pressed, HIGH when not pressed. +bg.Esplora_Slider=Linear Potentiometre +bg.Esplora_Slider.description=Linear Potentiometre value between 0 and 1023 +bg.Esplora_Microphone=Microphone +bg.Esplora_Microphone.description=Microphone value between 0 and 1023 +bg.Esplora_LightSensor=Light Sensor +bg.Esplora_LightSensor.description=Light Sensor value between 0 and 1023 +bg.Esplora_tone=Tone +bg.Esplora_tone.description= +bg.Esplora_notone=No Tone +bg.Esplora_notone.description= +bg.Esplora_Temp=Temperature sensor +bg.Esplora_Temp.description=The Celsius range is from -40°C to 150°C, the Fahrenheit range is from -40°F to 302°F. +bg.Esplora_DEGREES_C=Celsius +bg.Esplora_DEGREES_F=Fahrenheit +bg.Esplora_DOWN=DOWN +bg.Esplora_LEFT=LEFT +bg.Esplora_UP=UP +bg.Esplora_RIGHT=RIGHT +bg.Esplora_JoystickSwitch2=Joystick Switch +bg.Esplora_JoystickSwitch2.description=Joystick Switch +bg.Esplora_Switch=Switch +bg.Esplora_Switch.description=Switch +bg.Esplora_RIGHT2=RIGHT +bg.Esplora_LEFT2=LEFT +bg.Esplora_MIDDLE=MIDDLE +bg.Esplora_Mouse_Click=Click Mouse +bg.Esplora_Mouse_Click.description=Click Mouse +bg.Esplora_Mouse_Press=Press Mouse +bg.Esplora_Mouse_Press.description=Press Mouse +bg.Esplora_Mouse_Release=Release Mouse +bg.Esplora_Mouse_Release.description=Release Mouse +bg.Esplora_Mouse_isPressed=Mouse Is Pressed +bg.Esplora_Mouse_isPressed.description=Mouse Is Pressed +bg.Esplora_Mouse_move=Mouse Move +bg.Esplora_Mouse_move.description=Mouse Move +bg.Esplora_Keyboard_print=Keyboard print +bg.Esplora_Keyboard_print.description=Keyboard print +bg.Esplora_Keyboard_Click=Click Keyboard +bg.Esplora_Keyboard_Click.description=Click Keyboard +bg.Esplora_Keyboard_Press=Press Keyboard +bg.Esplora_Keyboard_Press.description=Press Keyboard +bg.Esplora_Keyboard_Release=Release Keyboard +bg.Esplora_Keyboard_Release.description=Release Keyboard +bg.Esplora_Keyboard_ReleaseAll=Release All Keyboard +bg.Esplora_Keyboard_ReleaseAll.description=Release All Keyboard +bg.Esplora_TFT_Height=Height TFT +bg.Esplora_TFT_Height.description=Height TFT +bg.Esplora_TFT_Width=Width TFT +bg.Esplora_TFT_Width.description=Width TFT +bg.Esplora_TFT_Background=TFT background +bg.Esplora_TFT_Background.description=TFT Background. The screen is 160 pixels wide and 128 pixels high. +bc.red2=Red +bc.blue2=Blue +bc.green2=Green +bg.Esplora_TFT_Point=TFT Point +bg.Esplora_TFT_Point.description=TFT Point +bg.Esplora_TFT_Line=TFT Line +bg.Esplora_TFT_Line.description=TFT Line +bc.XStart=X Start +bc.YStart=Y Start +bc.XEnd=X End +bc.YEnd=Y end +bc.Height=Height +bc.Width=Width +bg.Esplora_TFT_Circle=TFT Circle +bg.Esplora_TFT_Circle.description=TFT Circle +bc.Radius=Radius +bc.Fill=Fill +bc.Stroke=Stroke +bg.Esplora_TFT_Rect=TFT Rect +bg.Esplora_TFT_Rect.description=TFT Rect +bg.Esplora_TFT_Text=TFT Text +bg.Esplora_TFT_Text.description=TFT Text +bg.setter_variable_PImage=Set PImage Variable +bg.setter_variable_PImage.description=Set PImage Variable +bg.variable_PImage=PImage Variable +bg.variable_PImage.description=PImage Variable +bg.Esplora_Load_Image=Load Picture In Variable +bg.Esplora_Load_Image.description=Load Picture In Variable +bg.Esplora_Image_isValid=Picture In variable Is Valid +bg.Esplora_Image_isValid.description=Picture In Variable Is Valid +bg.Esplora_Image_Width=Width Image in Variable +bg.Esplora_Image_Width.description=Width Image in Variable +bg.Esplora_Image_Height=Height Image in Variable +bg.Esplora_Image_Height.description=Height Image in Variable +bg.Esplora_TFT_Display_Image=Display Image From variable +bg.Esplora_TFT_Display_Image.description=Display Image From variable. The screen is 160 pixels wide and 128 pixels high. +bg.Espora_SD_Write=write to SD +bg.Espora_SD_Write.description=write to SD +bg.Espora_SD_Begin=SD Begin +bg.Esplora_Setter_Variable_File=Set Variable Datafile +bg.Esplora_Setter_Variable_File.description=Set Variable File +bg.Esplora_Variable_File=Variable File +bg.Esplora_Variable_File.description=Variable File +bg.Esplora_Variable_File_Bool=File variable name +bg.Esplora_Variable_File_Bool.description=Return Boolean +bg.Esplora_File_Available=File Available +bg.Esplora_File_Read=File in variable Read +bg.Esplora_File_Close=File in variable Close +bg.ESPLORA_OUTA=OUT A +bg.ESPLORA_OUTB=OUT B +bg.ESPLORA_INA=IN A +bg.ESPLORA_INB=IN B + +bg.Serialplus_send_variable_number=Send +bg.Serialplus_send_variable_number.description=Send a variable on a channel and on a serial port. +bg.Serialplus_send_variable_digital=Send +bg.Serialplus_send_variable_digital.description=Send a variable on a channel and on a serial port. +bg.Serialplus_receive_number=Receive +bg.Serialplus_receive_number.description=Receive a variable on a channel and on a serial port. +bg.Serialplus_receive_digital=Receive +bg.Serialplus_receive_digital.description=Receive a variable on a channel and on a serial port. +bc.channel=channel +bc.interval=interval + +bg.ls_10mmLEDModule.description=10mm Blue/Green/Yellow/Red LED Module +bg.ls_5mmLEDModule.description=5mm Blue/Green/Yellow/Red LED Module +bg.ls_AccelerometerModule_x.description=Based on the excellent ADXL-345, this digital 3-axis accelerometer has excellent EMI protection. +bg.ls_AccelerometerModule_y.description=Based on the excellent ADXL-345, this digital 3-axis accelerometer has excellent EMI protection. +bg.ls_AccelerometerModule_z.description=Based on the excellent ADXL-345, this digital 3-axis accelerometer has excellent EMI protection. +bg.ls_ButtonModule.description=Button Module +bg.ls_BuzzerModule.description=Buzzer Module +bg.ls_HallSensor.description=Hall Sensor +bg.ls_HighPowerLedModule.description=High Power Led Module +bg.ls_JoystickSensorModule_x.description=Joystick Sensor Module +bg.ls_JoystickSensorModule_y.description=Joystick Sensor Module +bg.ls_LDRModule.description=LDR Module +bg.ls_LEDBar.description=LED Bar +bg.ls_Linear-SlidePotentiometerModule.description=Linear/Slide Potentiometer Module +bg.ls_MagneticSwitch.description=Magnetic Switch +bg.ls_MosfetModule.description=Mosfet Module +bg.ls_RelayModule.description=Relay Module +bg.ls_RotaryPotentiometerModule.description=Rotary Potentiometer Module +bg.ls_RTCModule.description=RTC Module +bg.ls_SoundSensor.description=Sound Sensor +bg.ls_ThermalModule.description=Thermal Module +bg.ls_TiltModule.description=Tilt Module +bg.ls_TouchSensorModule.description=Touch Sensor Module +bg.random_range.description=Generate random number between min and (max - 1) + +bg.panda_i1=panda I1 +bg.panda_i2=panda I2 +bg.panda_i3=panda I3 +bg.panda_i4=panda I4 +bg.panda_i5=panda I5 +bg.panda_i6=panda I6 + +bg.panda_o1=panda O1 +bg.panda_o2=panda O2 +bg.panda_o3=panda O3 +bg.panda_o4=panda O4 +bg.panda_o5=panda O5 +bg.panda_o6=panda O6 + +bd.network=Networking +bg.bleshield=BLE Shield +bg.bleshield.description=BLE Shield for Bluetooth Communication +bg.bleshield_available=BLE Shield Data Available? +bg.bleshield_read_poly=read from BLE Shield +bg.bleshield_compare=BLE Shield +bg.bleshield_compare.description=BLE Shield for Bluetooth Communication return a boolean + +bd.adafruit.description=Adafruit Motorshield +bg.ada_dc_motor_fwd=Adafruit DC motor FORWARD +bg.ada_dc_motor_bwd=Adafruit DC motor BACKWARD +bg.ada_dc_motor_release=Adafruit DC motor RELEASE +bg.ada_neopixel_NEO_GRB=NEO_GRB +bg.ada_neopixel_NEO_RGB.description=NEO_RGB +bg.ada_neopixel_NEO_KHZ400=NEO_KHZ400 +bg.ada_neopixel_NEO_KHZ800=NEO_KHZ800 +bg.ada_neopixel_init=initialization +bg.ada_neopixel_pixel_colorGRB=Pixel Color between 0 and 255 for each color +bg.ada_neopixel_pixel_colorRGB=Pixel Color between 0 and 255 for each color +bg.ada_neopixel_show= Push the color data to the strip +bg.ada_neopixel_Brightness=Brightness between 0 and 255 +bg.ada_dc_motor_fwd.description= +bg.ada_dc_motor_bwd.description= +bg.ada_dc_motor_release.description= +bg.ada_neopixel_init.description= +bg.ada_neopixel_pixel_colorGRB.description= +bg.ada_neopixel_pixel_colorRGB.description= +bg.ada_neopixel_show.description= +bg.ada_neopixel_Brightness.description= + +bd.makeblock=Makeblock +bc.shutter_state=Action +bc.port_number=PORT_# +bc.motor_number=M# +bc.m1=M1 +bc.m2=M2 +bc.command_number=Type +bc.speed_number=Speed +bc.acceleration_number=Acceler +bc.moveTo_number=MoveTo +bc.angle_number=Angle +bc.input_data=Data +bc.device_number=Device +bc.output_data=Data +bc.commands=Commands +bc.stepper_finish=Finish +bc.me_key_down=KeyDown +bc.me_key_up=KeyUp +bg.me_port_1=PORT 1 +bg.me_port_1.description= Me Base Shield Port +bg.me_port_2=PORT 2 +bg.me_port_3=PORT 3 +bg.me_port_4=PORT 4 +bg.me_port_5=PORT 5 +bg.me_port_6=PORT 6 +bg.me_port_7=PORT 7 +bg.me_port_8=PORT 8 +bg.me_motor_1=M1 +bg.me_motor_1.description= Me Base Shield DC Motor Port +bg.me_motor_2=M2 +bg.me_shutter_1=Shot On +bg.me_shutter_1.description= Me Shutter Action +bg.me_shutter_2=Shot Off +bg.me_shutter_3=Focus On +bg.me_shutter_4=Focus Off +bg.me_ultrasonic_sensor= +bg.me_ultrasonic_sensor.description=return distance between Object to Sensor. +bg.me_linefinder= +bg.me_linefinder.description=return 0-3 for Left And Right Side State. +bg.me_limitswitch= +bg.me_limitswitch.description=It sends a signal to the controller when it is triggered. +bg.me_shutter= +bg.me_shutter.description=It sends a signal to the DSLR Camera for shot and focus. +bg.me_motordriver= +bg.me_motordriver.description=Motor can use M1,M2,Port_1 and Port_2. +bg.me_servodriver= +bg.me_servodriver.description=Servo can use Port_1 and Port_2,device can use 1 and 2. +bg.me_stepper_motor= +bg.me_stepper_motor.description=Mini stepper motor driver base on A4988.Compatible with 4 and 6 wire stepper motors. +bg.me_infraredreceiver= +bg.me_infraredreceiver.description=Receive Data from Infrared Controller +bg.me_bluetooth_read= +bg.me_bluetooth_read.description=Bluetooth Read Byte Data +bg.me_bluetooth_write= +bg.me_bluetooth_write.description=Bluetooth Write Byte Data +bg.me_bluetooth_commands = +bg.me_bluetooth_commands.description=Commands Parser For Android App's Communication. +bg.me_bluetooth_command = +bg.me_bluetooth_command.description=return (0:module,1:device ID,2:mode,3:port,4:value) + +#workshop blocks +bd.workshop=Workshop template +bg.ws_setting=Setting +bg.ws_setting.description=setup a robot +bg.ws_go_forward=Go +bg.ws_go_forward.description=go forward +bg.ws_go_backward=Back +bg.ws_go_backward.description=go backward +bg.ws_stop=Stop +bg.ws_stop.description=stop moving +bg.ws_turn_left=Turn left +bg.ws_turn_left.description=turn left +bg.ws_turn_right=Turn Right +bg.ws_turn_right.description=turn right +bg.ws_go_forward_left=Go Left +bg.ws_go_forward_left.description=go forward left +bg.ws_go_forward_right=Go Right +bg.ws_go_forward_right.description=go forward right +bg.ws_go_backward_left=Back Left +bg.ws_go_backward_left.description=go back left +bg.ws_go_backward_right=Back Right +bg.ws_go_backward_right.description=go back right +bg.ws_light=Light +bg.ws_light.description=stop moving +bg.ws_scan=Scan +bg.ws_scan.description=Scan an obstacle +bg.ws_music=Music +bg.ws_music.description=play music +bg.ws_wireless=Wrieless +bg.ws_wireless.description=Wireless +bg.ws_danger=In Danger +bg.ws_danger.description=is robot in danger? +bg.ws_binoculars=Binoculars +bg.ws_binoculars.description=Binoculars + +#InsectBot blocks +bd.insectbot=Insect Bot +bg.insectbot_get_distance=Distance +bg.insectbot_get_distance.description=get distance of obstacle in front of robot +bg.insectbot_is_indanger=In Danger? +bg.insectbot_is_indanger.description=is robot in danger? +bg.insectbot_go_forward=Go Forward +bg.insectbot_go_forward.description=go forward +bg.insectbot_go_backright=go back right +bg.insectbot_go_backright.description=go back right +bg.insectbot_turn_left=turn left +bg.insectbot_turn_left.description=turn left +bg.insectbot_blink_led=blink +bg.insectbot_blink_led.description=blink led + + +##iDrawing blocks +bd.iDrawing=4Drawing +bg.led_mode_flash=Flash +bg.led_mode_flash.description=Flashing +bg.led_mode_fade=Fade +bg.led_mode_fade.description=Fading +bg.port_pin_name=5 +bg.port_pin_name.description=Pin Name(5,6,9,10,11, A0,A1,A2,A3,A4,A5, UART,I2C) + +bg.trigger_equal=== +bg.trigger_equal.description=== +bg.trigger_greater=> +bg.trigger_greater.description=> +bg.trigger_less=< +bg.trigger_less.description=< + +bg.player_mode_random=Random +bg.player_mode_random.description=play song randomly + +bg.player_mode_single=Single +bg.player_mode_single.description=play the specified song + +bg.output_mode_low=Low +bg.output_mode_low.description=Low lever +bg.output_mode_high=High +bg.output_mode_high.description=High lever + +bg.output_mode_lowpulse=Low Pulse +bg.output_mode_lowpulse.description=Low pulse + +bg.output_mode_highpulse=High Pulse +bg.output_mode_highpulse.description=High pulse + + +# +bg.iDrawing_set_para=Set 4Drawing +bg.iDrawing_set_para.description=Set parameters in setup +bg.iDrawing_run= Run 4Drawing +bg.iDrawing_run.description=Running in loop + + +bg.iDrawing_rule_start=Start +bg.iDrawing_rule_start.description=Start Rule + +bg.iDrawing_rule_stop=Stop +bg.iDrawing_rule_stop.description=Stop Rule + +bg.iDrawing_rule_sleep=Sleep +bg.iDrawing_rule_sleep.description=System go to sleep state + +# +bg.iDrawing_trigger_time=Time +bg.iDrawing_trigger_time.description=Time + +bg.iDrawing_trigger_dpin=Digital input +bg.iDrawing_trigger_dpin.description=digital input + +bg.iDrawing_trigger_apin=Analog input +bg.iDrawing_trigger_apin.description=analog input + + +bc.pin_name=Pin Name +bc.wake_condition=Wake condition +bc.duration=Duration(5-180s) +bc.rules=Rules +bc.trigger_logic=Logic +bc.analog_value=Value(0-100) +bc.digital_status=Status + + + + +bc.trigger=Trigger +bc.actuator=Actuator + + +bc.time=Second + +# +bg.iDrawing_actuator_led=LED +bg.iDrawing_actuator_led.description=LED + +bg.iDrawing_actuator_playermini=Player +bg.iDrawing_actuator_playermini.description=DFPlayer Mini + +bg.iDrawing_actuator_dpin=Digital Output +bg.iDrawing_actuator_dpin.description=digital output + + +bc.mode=Mode +bc.period=Period(ms) +bc.songname=Song + +bg.testdatablock=test +bg.testdatablock.description=test + + + +#legacy support +bg.loop1=loop +bg.loop1.description=loop +bg.loop2=loop +bg.loop2.description=loop +bg.loop3=loop +bg.loop3.description=loop + +# littlebits +bd.littlebits=LittleBits +bg.little_bits_bendsensor=BendSensor +bg.little_bits_bendsensor.description=This is BendSensor +bg.little_bits_button=Button +bg.little_bits_button.description=This is Button +bg.little_bits_dimmer=Dimmer +bg.little_bits_dimmer.description=This is Dimmer +bg.little_bits_lightsensor=LightSensor +bg.little_bits_lightsensor.description=This is LightSensor +bg.little_bits_lighttrigger=LightTrigger +bg.little_bits_lighttrigger.description=This is LightTrigger +bg.little_bits_microphone=Microphone +bg.little_bits_microphone.description=This is Microphone +bg.little_bits_motiontrigger=MotionTrigger +bg.little_bits_motiontrigger.description=This is MotionTrigger +bg.little_bits_pressuresensor=PressureSensor +bg.little_bits_pressuresensor.description=This is PressureSensor +bg.little_bits_pulse=Pulse +bg.little_bits_pulse.description=This is Pulse +bg.little_bits_remotetrigger=RemoteTrigger +bg.little_bits_remotetrigger.description=This is RemoteTrigger +bg.little_bits_rollerswitch=RollerSwitch +bg.little_bits_rollerswitch.description=This is RollerSwitch +bg.little_bits_slidedimmer=SlideDimmer +bg.little_bits_slidedimmer.description=This is SlideDimmer +bg.little_bits_slideswitch=SlideSwitch +bg.little_bits_slideswitch.description=This is SlideSwitch +bg.little_bits_soundtrigger=SoundTrigger +bg.little_bits_soundtrigger.description=This is SoundTrigger +bg.little_bits_timeout=TimeOut +bg.little_bits_timeout.description=This is TimeOut +bg.little_bits_toggleswitch=ToggleSwitch +bg.little_bits_toggleswitch.description=This is ToggleSwitch +bg.little_bits_mix=mix +bg.little_bits_mix.description=This is mix +bg.little_bits_oscillator=oscillator +bg.little_bits_oscillator.description=This is oscillator +bg.little_bits_random=random +bg.little_bits_random.description=This is random +bg.little_bits_bargraph=Bargraph +bg.little_bits_bargraph.description=This is Bargraph +bg.little_bits_brightled=BrightLED +bg.little_bits_brightled.description=This is BrightLED +bg.little_bits_dcmotor=DCMotor +bg.little_bits_dcmotor.description=This is DCMotor +bg.little_bits_fan=Fan +bg.little_bits_fan.description=This is Fan +bg.little_bits_ir_led=IR_LED +bg.little_bits_ir_led.description=This is IR_LED +bg.little_bits_led=LED +bg.little_bits_led.description=This is LED +bg.little_bits_lightwire=Lightwire +bg.little_bits_lightwire.description=This is Lightwire +bg.little_bits_longled=LongLED +bg.little_bits_longled.description=This is LongLED +bg.little_bits_number=Number +bg.little_bits_number.description=This is Number +bg.little_bits_rgbled=RGBLED +bg.little_bits_rgbled.description=This is RGBLED +bg.little_bits_uvled=UVLED +bg.little_bits_uvled.description=This is UVLED +bg.little_bits_vibration_motor=Vibration_Motor +bg.little_bits_vibration_motor.description=This is Vibration_Motor +bg.little_bits_synthspeaker=synthspeaker +bg.little_bits_synthspeaker.description=This is synthspeaker + +bd.ke-keenlon=Keenlon +bg.ke-motor-run=motor run +bc.ke-motor-run-leftspeed=left speed +bc.ke-motor-run-rightspeed=right speed +bg.ke-motor-setmoto=motor setmoto +bc.ke-motor-setmoto-motonumber=motor number +bc.ke-motor-setmoto-motospeed=motor speed +bg.ke-motor-stop=motor stop +bg.ke-tft-print=TFT print +bc.ke-tft-print-line=line num +bc.ke-tft-print-string=string +bc.ke-tft-print-param1=param1; +bc.ke-tft-print-param2=param2; +bc.ke-tft-print-param3=param3; +bc.ke-tft-print-param4=param4; +bc.ke-tft-print-param5=param5; +bg.ke-tft-clear=TFT clear +bg.ke-eye-minvalue=eye min value +bg.ke-eye-minindex=eye min index +bg.ke-eye-maxvalue=eye max value +bg.ke-eye-maxindex=eye max index +bg.ke-eye-singlevalue=eye get a channel +bc.ke-eye-singlevalue-numble=channel num +bg.ke-button-getbutton=get button +bg.ke-encoder-clear=encoder clear +bc.ke-encoder-clear-index=encoder num +bg.ke-encoder-getencoder=get encoder +bc.ke-encoder-getencoder-index=encoder num +bg.ke-tft-msg=tft msg +bg.ke-tft-add=tft add variable +bg.ke-ground-light=ground light +bg.ke-light=light +bg.ke-Potentiometer=Potentiometer +bg.ke-buzzer=buzzer +bg.ke-ground-light=ground light +bg.ke-led-on-off=led on off +bg.ke-led-pwm=led pwm +bg.ke-light=light +bg.ke-mic=mic +bg.ke-photo=photo +bg.ke-potentiometer=Potentiometer +bg.ke-relays=relays +bg.ke-tempe=Temperature sensor +bg.ke-touch=touch sensor +bg.ke-psd=sharp GP2Y0A21 +bg.ke-compass=compass +bc.ke-digital-state=state +bc.ke-led-on-off-state=state +bc.ke-led-pwm-Brightness=Brightness +bg.ke-servo=servo +bg.ke-motor-run.description= +bg.ke-motor-setmoto.description= +bg.ke-motor-stop.description= +bg.ke-tft-print.description= +bg.ke-tft-clear.description= +bg.ke-eye-minvalue.description= +bg.ke-eye-minindex.description= +bg.ke-eye-maxvalue.description= +bg.ke-eye-maxindex.description= +bg.ke-eye-singlevalue.description= +bg.ke-button-getbutton.description= +bg.ke-encoder-clear.description= +bg.ke-encoder-getencoder.description= +bg.ke-tft-add.description= +bg.ke-compass.description= +bg.ke-buzzer.description= +bg.ke-ground-light.description= +bg.ke-led-on-off.description= +bg.ke-led-pwm.description= +bg.ke-light.description= +bg.ke-mic.description= +bg.ke-photo.description= +bg.ke-potentiometer.description= +bg.ke-relays.description= +bg.ke-tempe.description= +bg.ke-psd.description= +bg.ke-touch.description= +bg.ke-servo.description= + +bd.jerusalab=Jerusalab +bg.midi_command=Midi Controller Command +bg.midi_command.description=Sends a Midi command to the computer via serial connection, to be consumed by application such as Hairless Midi +bg.midi_note=Midi Note +bg.Midi_C=C +bg.Midi_CS=C# +bg.Midi_D=D +bg.Midi_DS=D# +bg.Midi_E=E +bg.Midi_F=F +bg.Midi_FS=F# +bg.Midi_G=G +bg.Midi_GS=G# +bg.Midi_A=A +bg.Midi_AS=A# +bg.Midi_B=B diff --git a/src/main/resources/com/ardublock/block/Skins/all-master/ardublock.xml b/src/main/resources/com/ardublock/block/Skins/all-master/ardublock.xml new file mode 100644 index 00000000..5cb01ee9 --- /dev/null +++ b/src/main/resources/com/ardublock/block/Skins/all-master/ardublock.xml @@ -0,0 +1,12336 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + repeat + + A variable to track the repetitions + + + Start value of variable + + + End value of variable + + + How much to change variable each time + + + A list of commands to do. + + + + + + + + + + + + + + + + + + + + + + + + this is the loop of the arduino + + A list of commands to run first, and once only. + + + A list of commands to repeat forever, after setup commands have finished. + + + + + + + + + + this is the loop of the arduino + + A list of commands to repeat forever. + + + + + + + + + + + + + + + program delay in x milliseconds + + + + + + + + + + + + If + + is true, the agent will run the blocks attached to + + + + A logical test. Is it TRUE or FALSE? + + + + A list of commands to do if the test is TRUE. + + + + + + + + + + + + Does the first list of commands if the test specified is + true, otherwise it will do the second list of commands. + + + A logical test. Is it TRUE or FALSE? + + + + A list of commands to do if the test is TRUE. + + + + A list of commands to do if the test is FALSE. + + + + + + + + + + + + + While Block + + + A logical test. Is it TRUE or FALSE? + + + + A list of commands to repeat while the test is TRUE. + + + + + + + + + + + + Do While Block + + + A list of commands to do. + + + A logical test. Do the commands again if the test is TRUE + + + + + + + + + + + + + Repeat the commands for "times" + + + + + + Repeat the commands for "times" + + How many times to repeat the commands + + + A list of commands to do be repeated. + + + + + + + + + + + + + repeat + + A variable to track the repetitions + + + How many times to repeat the commands + + + A list of commands to do be repeated. + + + + + + + + + + + + + + + subroutine + + + + + + + + invoke subroutine + + + + + + + + + + + + + + + + + + + + + + + + + program delay in x milliseconds + + + + + + + + + + + this is the loop of the arduino + + A list of commands to run first, and once only. + + + A list of commands to repeat forever, after setup commands have finished. + + + + + + + + + + + this is the loop of the arduino + + A list of commands to repeat forever. + + + + + + + + + + program sleep in x milliseconds + + + + + + + + + + + + event flag + + + + + + + + event flag + + + + + + + + event flag + + + + + + + + event flag + + + + + + + + event flag + + + + + + + + + + + SCoop Event on pin + + Pin number to watch. + + + What kind of event to watch for. + + + A list of commands to run when the event is detected on the pin. + + + + + + + + + + + + + + + + + + + + Read digital from the pin + + + + + + + + + + + + + Read digital from the pin. Default High + + + + + + + + + + + + Read analog value from pin + + + + + + + + + + + write digital to pin + + + + + + + + + + + + + + write analog to pin + + + + + + + + + + + + + + toggle digital pin + + + + + + + + + + + Generates a square wave of the specified frequency (and 50% + duty cycle) on a pin. + + + + + + + + + + + + + + + + Generates a square wave of the specified frequency (and 50% + duty cycle) on a pin. + + + + + + + + + + + + + + + + + + Stops the generation of a square wave triggered by tone(). + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + DDRA + + + + + + + + + + + DDRB + + + + + + + + + + + DDRC + + + + + + + + + + + DDRD + + + + + + + + + + + DDRH + + + + + + + + + + + DDRL + + + + + + + + + + + PORTA + + + + + + + + + + + PORTB + + + + + + + + + + + PORTC + + + + + + + + + + + PORTD + + + + + + + + + + + PORTH + + + + + + + + + + + PORTL + + + + + + + + + + + PORTL + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + PINA + + + + + + + + PINB + + + + + + + + PINC + + + + + + + + PIND + + + + + + + + PINH + + + + + + + + PINL + + + + + + + + + + + + Reports the sum of two numbers ( + + + + + ). + + + + + + + + + + + + + + + + Reports the difference of two numbers ( + + - + + ). + + + + + + + + + + + + + + + + Reports the product of two numbers ( + + x + + ). + + + + + + + + + + + + + + + + Reports the quotient of two numbers ( + + ÷ + + ). + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + generate a random number less than the number + + + + + + + + + + + + Generate random number between min and (max - 1) + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + map value from [0, 1023] to [0, 255] + + + + + + + + + + + + map + + + + + + + + + + + + + + + + + + + + + + to int + + + + + + + + + + + Constrain a number between two values + + + + + + + + + + + + + + + + + + is upper number greater then lower? + + + + + + + + + + + + + + is upper number less then lower? + + + + + + + + + + + + + + is upper number greater then lower? + + + + + + + + + + + + + is upper number greater then lower? + + + + + + + + + + + + + + is upper number greater then lower? + + + + + + + + + + + + + + is upper number greater then lower? + + + + + + + + + + + + + + is upper number greater then lower? + + + + + + + + + + + + + + is upper number greater then lower? + + + + + + + + + + + + + + is upper string greater then lower? + + + + + + + + + + + + + + + is upper string less then lower? + + + + + + + + + + + + + + + is upper string greater then lower? + + + + + + + + + + + + + + + + is upper string greater then lower? + + + + + + + + + + + + + + + is upper string greater then lower? + + + + + + + + + + + + + + + is upper string greater then lower? + + + + + + + + + + + + + + + + is equalsIgnoreCase then lower? + + + + + + + + + + + + + + + is equals then ? + + + + + + + + + + + + + + + is compareTo ? + + + + + + + + + + + + + + + is a numeric string compared to the number it represents + + + + + + + + + + + + + + + + Reports true if both of the two conditions are true. + + + + + + + + + + + + + + Reports true if one or both of the two conditions are true. + + + + + + + + + + + + + Reports the opposite of + + . + + + + + + + + + + + is upper number greater then lower? + + + + + + + + + + + + + + + + is upper number greater then lower? + + + + + + + + + + + + + + is upper number greater then lower? + + + + + + + + + + + + + + is upper number greater then lower? + + + + + + + + + + + + is upper number greater then lower? + + + + + + + + + + + + + + is upper number greater then lower? + + + + + + + + + + + + + + + Time in milliseconds + + + + + + + + + + Standard integer constant + + + + + + + + + + + Digital Pin Constant + + + + + + + + + + + Digital Pin Constant + + + + + + + + + + + Digital Pin Constant + + + + + + + + + + + Digital Pin Constant + + + + + + + + + + Digital Pin Constant + + + + + + + + + + + Digital Pin Constant + + + + + + + + + + Analog Pin Constant + + + + + + + + + + + PWM Pin Constant + + + + + + + + + + + 'Unsigned Long' constant + + + + + + + + + + + 'Double' constant + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Pin HIGH + + + + + + + + + + + Pin LOW + + + + + + + + + + + + Reports the boolean true. + + + + + + + + + + + Reports the boolean false. + + + + + + + + + + + Digital Var + + + + + + + + + + + Unsigned Long Var + + + + + + + + + + + Double + + + + + + + + + + + Digital Var + + + + + + + + + + string message + + + + + + + + + set integer variable + + + + + + + + + + + + + + set a large integer variable + + + + + + + + + + + + + + set decimal variable + + + + + + + + + + + + + + write digital to pin + + + + + + + + + + + + + + + Array member value + + + + + + + + + + + + + create a vector of numbers + + + + + + + + + + + + + + + Set a vector number + + + + + + + + + + + + + + + + + create a vector of numbers + + + + + + + + + + + + + + + + character variable + + + + + + + + + + + character + + + + + + + + + + set String variable + + + + + + + + + + + + + + + Variable String + + + + + + + + + + Servo Default + + + + + + + + + + + + com/ardublock/block/SG90.png + + + + + + + SG90 + + + + + + + + + + + + com/ardublock/block/SG90.png + + + + + + + Servo MG996R + + + + + + + + + + + + com/ardublock/block/SG90.png + + + + + + + Ultrasonic distance sensor + + + + + + + + + + + + + com/ardublock/block/ultrasonic.png + + + + + + + 20 Char by 4 Line LCD display + + + + + + + + + + + + + + + + + + com/ardublock/block/LCD20by4.png + + + + + + + 16 Char by 2 Line LCD display + + + + + + + + + + + + + + + + + + com/ardublock/block/LCD20by4.png + + + + + + + 16 Char by 2 Line LCD display + + + + + + + + + + + + + + + + + + com/ardublock/block/LCD16by2.png + + + + + + + Clear LCD + + + + + + + + + + + Home LCD + + + + + + + + + + + Home LCD + + + + + + + + + + + Home LCD + + + + + + + + + + + Home LCD + + + + + + + + + + + Home LCD + + + + + + + + + + + Home LCD + + + + + + + + + + + Home LCD + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + send message via Serial port + + + + + + + + + + + send message via Serial port + + + + + + + + + + + + + + string message + + + + + + + + + + glue number to string + + + + + + + + + + glue boolean to string + + + + + + + + + + + + + + + + + + + + write data via I2C + + + + + + + + + + + + + + + + + read data from i2c + + + + + + + + + + + + + + + is last read from I2C success? + + + + + + + + Send integer variable + + + + + + + + + + + + + + + + + + + Send digital + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + EEPROM Read integer + + + + + + + + + + + + EEPROM Write integer + + + + + + + + + + + + + + EEPROM Read 'unsigned long' + + + + + + + + + + + + EEPROM Write 'unsigned long' + + + + + + + + + + + + + + EEPROM Read + + + + + + + + + + + + EEPROM Write + + + + + + + + + + + + + + Write to SD card + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + send message via Serial port + + + + + + + + + + send message via Serial port + + + + + + + + + + send message via Serial port + + + + + + + + + + + + + + + + + + + + + + + Digital Var + + + + + + + + + + + + + + + + + + + + + + send message via Serial port + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + send message via Serial port + + + + + + + + + + + send message via Serial port + + + + + + + + + + + send message via Serial port + + + + + + + + + TinkerKit LED + + + + + + + + + + + + com/ardublock/block/arduino/Tinker_LED.jpg + + + + + + + TinkerKit LED + + + + + + + + + + + + com/ardublock/block/arduino/Tinker_LED.jpg + + + + + + + TinkerKit Mosfet + + + + + + + + + + + + com/ardublock/block/arduino/Tinker_Mosfet.jpg + + + + + + + TinkerKit Mosfet + + + + + + + + + + + + com/ardublock/block/arduino/Tinker_Mosfet.jpg + + + + + + + TinkerKit Relay + + + + + + + + + + + + com/ardublock/block/arduino/Tinker_Relay.jpg + + + + + + + TinkerKit Servo + + + + + + + + + + + + com/ardublock/block/arduino/Tinker_Servo.jpg + + + + + + + TinkerKit Button + + + + + + + + + + com/ardublock/block/arduino/Tinker_Button.png + + + + + + + TinkerKit Accelerometer + + + + + + + + + + com/ardublock/block/arduino/Tinker_Accmeter.png + + + + + + + TinkerKit Hall Sensor + + + + + + + + + + com/ardublock/block/arduino/Tinker_Hall.png + + + + + + + TinkerKit LDR + + + + + + + + + + com/ardublock/block/arduino/Tinker_LDR.jpg + + + + + + + TinkerKit Accelerometer + + + + + + + + + + com/ardublock/block/arduino/Tinker_LinearPotentiometer.jpg + + + + + + + TinkerKit RotaryPotentiometer + + + + + + + + + + com/ardublock/block/arduino/Tinker_RotaryPotentiometer.jpg + + + + + + + TinkerKit Thermistor + + + + + + + + + + com/ardublock/block/arduino/Tinker_Thermistor.jpg + + + + + + + TinkerKit Touch Sensor + + + + + + + + + + com/ardublock/block/arduino/Tinker_Touch.jpg + + + + + + + TinkerKit Servo + + + + + + + + + + + + com/ardublock/block/arduino/Tinker_Servo.jpg + + + + + + + TinkerKit Tilt + + + + + + + + + + com/ardublock/block/arduino/Tinker_Tilt.jpg + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + forward + + + + + + + + + + + + com/ardublock/block/motor.jpg + + + + + + + Moving the car backward + + + + + + + + + + + + com/ardublock/block/motor.jpg + + + + + + + Write ditial singal to Socket + + + + + + + + + + + + + + Read digital status from socket + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + com/ardublock/block/dfrobot/dfr0027.png + + + + + + + + + + + + + + com/ardublock/block/dfrobot/dfr0028.png + + + + + + + + + + + + + + com/ardublock/block/dfrobot/sen0018.png + + + + + + + + + + + + + + com/ardublock/block/dfrobot/dfr0094.jpg + + + + + + + + + + + + + + com/ardublock/block/dfrobot/sen0019.jpg + + + + + + + + + + + + + + com/ardublock/block/dfrobot/sen0017.jpg + + + + + + + + + + + + + + com/ardublock/block/dfrobot/dfr0029.png + + + + + + + + + + + + + + com/ardublock/block/dfrobot/dfr0061.png + + + + + + + + + + + + + + com/ardublock/block/dfrobot/dfr0030.png + + + + + + + + + + + + + + com/ardublock/block/dfrobot/dfr0033.png + + + + + + + + Vibration Sensor buffers a piezoelectric transducer that + responds to strain changes by generating a measurable output + voltage change which is proportional to the strength + of vibration. + + + + + + + + + + + com/ardublock/block/dfrobot/dfr0052.png + + + + + + The ambient light sensor detects light density. + + + + + + + + + + com/ardublock/block/dfrobot/dfr0026.png + + + + + + Analog Grayscale Sensor detect the grayscale. + + + + + + + + + + com/ardublock/block/dfrobot/dfr0022.png + + + + + + Read analog value from pin + + + + + + + + + + com/ardublock/block/dfrobot/dfr0076.png + + + + + + + Read analog value from pin + + + + + + + + + + com/ardublock/block/dfrobot/dfr0143.png + + + + + + + Read analog value from pin + + + + + + + + + + com/ardublock/block/dfrobot/dfr0143.png + + + + + + + + Read analog value from pin + + + + + + + + + + com/ardublock/block/dfrobot/dfr0143.png + + + + + + + Read analog value from pin + + + + + + + + + + com/ardublock/block/dfrobot/sen0014.png + + + + + + + Read analog value from pin + + + + + + + + + + com/ardublock/block/dfrobot/sen0114.png + + + + + + + + Read analog value from pin + + + + + + + + + + com/ardublock/block/dfrobot/dfr0023.png + + + + + + Read analog value from pin + + + + + + + + + + com/ardublock/block/dfrobot/dfr0061.png + + + + + + Read analog value from pin + + + + + + + + + + com/ardublock/block/dfrobot/dfr0061.png + + + + + + Read analog value from pin + + + + + + + + + + com/ardublock/block/dfrobot/dfr0068.jpg + + + + + + Read analog value from pin + + + + + + + + + + com/ardublock/block/dfrobot/dfr0068.jpg + + + + + + Read analog value from pin + + + + + + + + + + com/ardublock/block/dfrobot/dfr0068.jpg + + + + + + Read analog value from pin + + + + + + + + + + com/ardublock/block/dfrobot/dfr0054.jpg + + + + + + Read analog value from pin + + + + + + + + + + com/ardublock/block/dfrobot/dfr0058.png + + + + + + Read analog value from pin + + + + + + + + + + com/ardublock/block/dfrobot/dfr0034.png + + + + + + Read analog value of sound volume from pin + + + + + + + + + + com/ardublock/block/dfrobot/dfr0034_vol.png + + + + + + Read analog value from pin + + + + + + + + + + com/ardublock/block/dfrobot/dfr0049.jpg + + + + + + + + Read analog value from pin + + + + + + + + + + com/ardublock/block/dfrobot/sen0132.png + + + + + + + Read analog value from pin + + + + + + + + + + com/ardublock/block/dfrobot/dfr0051.png + + + + + + + set a pin to pwm + + + + + + + + + + + + + + set a pin to pwm + + + + + + + + + + + + + + Read analog value from pin + + + + + + + + + + + + Read analog value from pin + + + + + + + + + + + + set a pin to pwm + + + + + + + + + + + + + + set a pin to pwm + + + + + + + + + + + + + + set a pin to pwm + + + + + + DFRobot LED Module + + + + + + + + + + + + com/ardublock/block/dfrobot/dfr0021.png + + + + + + + DFRobot LED Module + + + + + + + + + + + + com/ardublock/block/dfrobot/dfr0021.png + + + + + + + DFRobot piranha LED Module + + + + + + + + + + + + com/ardublock/block/dfrobot/dfr0031.jpg + + + + + + + DFRobot pianha LED Module with brightnes level + + + + + + + + + + + + com/ardublock/block/dfrobot/dfr0031.jpg + + + + + + + Dfrobot Relay Module + + + + + + + + + + + + com/ardublock/block/dfrobot/dfr0017.png + + + + + + + DFRobot buzzer Module + + + + + + + + + + + + com/ardublock/block/dfrobot/dfr0032.png + + + + + + + Generates a square wave of the specified frequency (and 50% + duty cycle) on a pin. + + + + + + + + + + + + + + com/ardublock/block/dfrobot/dfr0032.png + + + + + + + Generates a square wave of the specified frequency (and 50% + duty cycle) on a pin. + + + + + + + + + + + + + + + + com/ardublock/block/dfrobot/dfr0032.png + + + + + + + LCD + + + + + + + + + com/ardublock/block/bulk/lcd2x16-01.jpg + + + + + + + + + + + Read analog value from analog pin + + + + + + + + + + com/ardublock/block/seeedstudio/COM90133P.jpg + + + + + + + Read analog value from analog pin + + + + + + + + + + com/ardublock/block/seeedstudio/COM90133P.jpg + + + + + + + Read analog value from analog pin + + + + + + + + + + com/ardublock/block/seeedstudio/o2.jpg + + + + + + Read analog value from analog pin + + + + + + + + + + com/ardublock/block/seeedstudio/uv.jpg + + + + + + Read analog value from analog pin + + + + + + + + + + com/ardublock/block/seeedstudio/gyro.jpg + + + + + + Read analog value from analog pin + + + + + + + + + + com/ardublock/block/seeedstudio/mq9.jpg + + + + + + Read analog value from analog pin + + + + + + + + + + com/ardublock/block/seeedstudio/mq3.jpg + + + + + + Read analog value from analog pin + + + + + + + + + + com/ardublock/block/seeedstudio/vib_sensor.jpg + + + + + + Read analog value from analog pin + + + + + + + + + + com/ardublock/block/seeedstudio/loud_sensor.jpg + + + + + + Read analog value from analog pin + + + + + + + + + + com/ardublock/block/seeedstudio/diff_amp.jpg + + + + + + Read analog value from analog pin + + + + + + + + + + com/ardublock/block/seeedstudio/ir_temp_sensor.jpg + + + + + + Read analog value from analog pin + + + + + + + + + + com/ardublock/block/seeedstudio/ir_proximity_sensor.jpg + + + + + + Read analog value from analog pin + + + + + + + + + + com/ardublock/block/seeedstudio/electricity_sensor.jpg + + + + + + Read analog value from analog pin + + + + + + + + + + com/ardublock/block/seeedstudio/angle_sensor.jpg + + + + + + Read analog value from analog pin + + + + + + + + + + com/ardublock/block/seeedstudio/sound_sensor.jpg + + + + + + Read analog value from analog pin + + + + + + + + + + com/ardublock/block/seeedstudio/moisture_sensor.jpg + + + + + + Read analog value from analog pin + + + + + + + + + + com/ardublock/block/seeedstudio/temp_sensor.jpg + + + + + + + Read digital from the pin + + + + + + + + + + com/ardublock/block/seeedstudio/voltage_divider.jpg + + + + + + + Read digital from the pin + + + + + + + + + + com/ardublock/block/seeedstudio/flame_sensor.jpg + + + + + + + Read digital from the pin + + + + + + + + + + com/ardublock/block/seeedstudio/button.jpg + + + + + + Read digital from the pin + + + + + + + + + + com/ardublock/block/seeedstudio/switch.jpg + + + + + + Read digital from the pin + + + + + + + + + + com/ardublock/block/seeedstudio/ir_refl_sensor.jpg + + + + + + + Read digital from the pin + + + + + + + + + + com/ardublock/block/seeedstudio/heart_rate_sensor.jpg + + + + + + + Read light + + + + + + + + + + com/ardublock/block/seeedstudio/Light_Sensor.jpg + + + + + + Read digital from the pin + + + + + + + + + + com/ardublock/block/seeedstudio/chest_heart_sensor.jpg + + + + + + + Read digital from the pin + + + + + + + + + + com/ardublock/block/seeedstudio/air_quality_sensor.jpg + + + + + + + Read digital from the pin + + + + + + + + + + com/ardublock/block/seeedstudio/line_finder.jpg + + + + + + + Read digital from the pin + + + + + + + + + + com/ardublock/block/seeedstudio/pir_motion_sensor.jpg + + + + + + + Read digital from the pin + + + + + + + + + + com/ardublock/block/seeedstudio/tilt_switch.jpg + + + + + + + Read digital from the pin + + + + + + + + + + com/ardublock/block/seeedstudio/push_button.jpg + + + + + + + Read digital from the pin + + + + + + + + + + com/ardublock/block/seeedstudio/water_sensor.jpg + + + + + + + Read digital from the pin + + + + + + + + + + com/ardublock/block/seeedstudio/touch_sensor.jpg + + + + + + + Read digital from the pin + + + + + + + + + + com/ardublock/block/seeedstudio/mag_switch.jpg + + + + + + + Read digital from the pin + + + + + + + + + + com/ardublock/block/seeedstudio/ir_dist_int.jpg + + + + + + + Write status to digital pin + + + + + + + + + + + + com/ardublock/block/seeedstudio/circle_led.jpg + + + + + + + Write status to digital pin + + + + + + + + + + + + com/ardublock/block/seeedstudio/2coil_relay.jpg + + + + + + + Write status to digital pin + + + + + + + + + + + + com/ardublock/block/seeedstudio/dry_relay.jpg + + + + + + + Write status to digital pin + + + + + + + + + + + + com/ardublock/block/seeedstudio/solid_relay.jpg + + + + + + + Write status to digital pin + + + + + + + + + + + + com/ardublock/block/seeedstudio/circle_led.jpg + + + + + + + Write status to digital pin + + + + + + + + + + + + com/ardublock/block/seeedstudio/led_strip.jpg + + + + + + + Write status to digital pin + + + + + + + + + + + + com/ardublock/block/seeedstudio/led.jpg + + + + + + + Write status to digital pin + + + + + + + + + + + + com/ardublock/block/seeedstudio/var_led.jpg + + + + + + + Write status to digital pin + + + + + + + + + + + + com/ardublock/block/seeedstudio/vib.jpg + + + + + + + Write status to digital pin + + + + + + + + + + + + com/ardublock/block/seeedstudio/relay.jpg + + + + + + + + + + + + Infrared distance sensor + + + + + + + + + + com/ardublock/block/seeedstudio/infrared.png + + + + + + DuinoEDU infrared compare + + + + + + + + + + + + + + + + com/ardublock/block/seeedstudio/infrared.png + + + + + + + + + + + + + + + + + + + + + + + + + + + temp sensor + + + + + + + + + + com/ardublock/block/seeedstudio/temp_humi.png + + + + + + + temp sensor + + + + + + + + + + com/ardublock/block/seeedstudio/temp_humi_pro.png + + + + + + + humi sensor + + + + + + + + + + com/ardublock/block/seeedstudio/temp_humi.png + + + + + + + humi sensor + + + + + + + + + + com/ardublock/block/seeedstudio/temp_humi_pro.png + + + + + + temp sensor + + + + + + + + + + + + + com/ardublock/block/seeedstudio/Ultrasonic_Ranger.png + + + + + + + + Led_Bar + + + + + + + + + + + + + + + + + + + + + + com/ardublock/block/seeedstudio/led_bar.png + + + + + + + LCD_I2C_RG + + + + + + + + + + + + com/ardublock/block/seeedstudio/LCD_Serial_RGB_Backlight.png + + + + + + + LCD_I2C_RG + + + + + + + + + + + + + + + com/ardublock/block/seeedstudio/LCD_Serial_RGB_Backlight.png + + + + + + + + LCD_I2C_Backlight + + + + + + + + + + + + + + + com/ardublock/block/seeedstudio/LCD_Serial_RGB_Backlight.png + + + + + + + LCD_I2C_RG_Clear + + + + + + + + + Oled_I2C + + + + + + + + + + + + + + + com/ardublock/block/seeedstudio/Oled.png + + + + + + + Oled_Clear + + + + com/ardublock/block/seeedstudio/Oled.png + + + + + + keyboard post + + + + + + + + + + + + + com/ardublock/block/keyboard.png + + + + + + + + keyboard post + + + + + + + + + + + + + + + + + + + com/ardublock/block/keyboard.png + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Mouse X Move + + + + + + + + + + + + + com/ardublock/block/seeedstudio/mouse.png + + + + + + + Mouse Y Move + + + + + + + + + + + + + com/ardublock/block/seeedstudio/mouse.png + + + + + + + + Keypad 12 or 16 Buttons + + + + + + + + + + + + + + + com/ardublock/block/keypad_12_button.png + + + + + + + Keypad post + + + + + + + + + + Keypad pwd + + + + + + + + + + + + + + + + + + + + + + + + + Didital Tube + + + + + + + + + + + + + + + + + + com/ardublock/block/seeedstudio/Didital_Tube.png + + + + + + Didital Tube Ecrire + + + + + + + + + + + + + + + + com/ardublock/block/seeedstudio/Didital_Tube.png + + + + + + + Display Didital Tube + + + + + + + + + + + + + + + + + + com/ardublock/block/seeedstudio/Didital_Tube.png + + + + + + + + + + + + + + + + + + + + + + + + + + + Display Didital Tube + + + + + + + + + + + + + + + + + + + + + com/ardublock/block/seeedstudio/Didital_Tube.png + + + + + + Didital Tube Clear + + + + + + + + + + + + com/ardublock/block/seeedstudio/Didital_Tube.png + + + + + + + + Driver I2C forward + + + + + + + + + com/ardublock/block/seeedstudio/I2CMotorDriver.png + + + + + + Driver I2C STOP + + + + + com/ardublock/block/seeedstudio/I2CMotorDriver.png + + + + + + + Driver I2C back + + + + + + + + + com/ardublock/block/seeedstudio/I2CMotorDriver.png + + + + + + + Driver I2C pivote + + + + + + + + + com/ardublock/block/seeedstudio/I2CMotorDriver.png + + + + + + + Driver I2C Speed A Motor + + + + + + + + + com/ardublock/block/seeedstudio/I2CMotorDriver.png + + + + + + + Driver I2C Speed B Motor + + + + + + + + + com/ardublock/block/seeedstudio/I2CMotorDriver.png + + + + + + + + + + + + + + + + + + + + + + + + Acc mesurer X + + + + + + + com/ardublock/block/seeedstudio/3_aix_acc.png + + + + + + + Acc mesurer Y + + + + + + + com/ardublock/block/seeedstudio/3_aix_acc.png + + + + + + + Acc mesurer Z + + + + + + + + com/ardublock/block/seeedstudio/3_aix_acc.png + + + + + + + Acc mesurer XYZ + + + + + + + com/ardublock/block/seeedstudio/3_aix_acc.png + + + + + + + Acc mesurer Variation + + + + + + + + com/ardublock/block/seeedstudio/3_aix_acc.png + + + + + + + Partie Emetteur + + + + + + + + + + + + com/ardublock/block/seeedstudio/Simple_RF.png + + + + + + + Partie Recepteur + + + + + + + + + + com/ardublock/block/seeedstudio/Simple_RF.png + + + + + + + DuinoEDU_Rfid_Write + + + + + + + + + + + + + + + com/ardublock/block/seeedstudio/rfid.png + + + + + + + DuinoEDU_Rfid_Ram_List + + + + + + + + + + + + + + + com/ardublock/block/seeedstudio/rfid.png + + + + + + + DuinoEDU_Rfid_Test + + + + + + + + + + + com/ardublock/block/seeedstudio/rfid.png + + + + + + DuinoEDU_Rfid_Read + + + + + + + + + com/ardublock/block/seeedstudio/rfid.png + + + + + + DuinoEDU_Rfid_Clear + + + + + + + com/ardublock/block/seeedstudio/rfid.png + + + + + + + DuinoEDU_neopixel_init + + + + + + + + + + + + + + + + + + com/ardublock/block/adafruit/neopixel.png + + + + + + + DuinoEDU_neopixel_pixel_colorGRB + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + com/ardublock/block/adafruit/neopixel.png + + + + + + + DuinoEDU_neopixel_pixel_colorRGB + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + com/ardublock/block/adafruit/neopixel.png + + + + + + DuinoEDU_neopixel_show + + + + + + + + + com/ardublock/block/adafruit/neopixel.png + + + + + + DuinoEDU_neopixel_Brightness + + + + + + + + + + + + com/ardublock/block/adafruit/neopixel.png + + + + + + DuinoEDU_neopixel_Clear + + + + + + + + + com/ardublock/block/adafruit/neopixel.png + + + + + + + DuinoEDU_stepper_step + + + + + + + + + + + + + + + + + + + + + com/ardublock/block/seeedstudio/stepper.png + + + + + + DuinoEDU_stepper_setSpeed + + + + + + + + + + + + + + + + + + + + + + + + com/ardublock/block/seeedstudio/stepper.png + + + + + + DuinoEDU_stepper_setSpeed + + + + + + + + + + + + + + + + + + + + + + + + com/ardublock/block/seeedstudio/matrice-64-spi.png + + + + + + DuinoEDU_matrice_clear + + + + + + + + + + + + + + + com/ardublock/block/seeedstudio/matrice-64-spi.png + + + + + + DuinoEDU_matrice_Brightness + + + + + + + + + + + + + + + + + + com/ardublock/block/seeedstudio/matrice-64-spi.png + + + + + + + Write status to digital pin + + + + + + + + + + + + com/ardublock/block/seeedstudio/LED_BLANCHE_GROVE.png + + + + + + + Servo Plus + + + + + + + + + + + + + + + + + + + + + com/ardublock/block/seeedstudio/SERVO_SG90_DUPONT_ASSEMBLE.png + + + + + + Serial Oscillo + + + + + + + + + + + + + + + Serial Oscillo Init + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Nunchuck BoutonC + + + + + + + com/ardublock/block/seeedstudio/Nunchuck.png + + + + + + Nunchuck BoutonZ + + + + + + + com/ardublock/block/seeedstudio/Nunchuck.png + + + + + + Nunchuck Joystick X + + + + + + + com/ardublock/block/seeedstudio/Nunchuck.png + + + + + + Nunchuck Joystick Y + + + + + + + com/ardublock/block/seeedstudio/Nunchuck.png + + + + + + Nunchuck Acceleration X + + + + + + + com/ardublock/block/seeedstudio/Nunchuck.png + + + + + + Nunchuck Acceleration Y + + + + + + + com/ardublock/block/seeedstudio/Nunchuck.png + + + + + + Nunchuck Acceleration Z + + + + + + + com/ardublock/block/seeedstudio/Nunchuck.png + + + + + + Barometer Temperature + + + + + + + com/ardublock/block/seeedstudio/Baro_sensor.png + + + + + + Barometer Pression + + + + + + + com/ardublock/block/seeedstudio/Baro_sensor.png + + + + + + Barometer Altitude + + + + + + + com/ardublock/block/seeedstudio/Baro_sensor.png + + + + + + shildbot forward + + + + + + + + + + + + shildbot back + + + + + + + + + + + + shildbot pivote + + + + + + + + + + + shildbot Stop + + + + + + shildbot Speed Motor + + + + + + + + + + + + com/ardublock/block/seeedstudio/shildbot.png + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + DuinoEDU_shildbot_Read + + + + + + + + + + + + + Guino Init + + + + + + Guino column + + + + + + Guino column + + + + com/ardublock/block/seeedstudio/Guino_Pause.png + + + + + + Guino Read + + + + + + + + + + + + + + + + + + com/ardublock/block/seeedstudio/Guino_Graphique.png + + + + + + Guino Title + + + + + + + + + + Guino Slider + + + + + + + + + + + + + + + + com/ardublock/block/seeedstudio/Guino_Potentiometre_virtuel.png + + + + + + Guino switch + + + + + + + + + + com/ardublock/block/seeedstudio/Guino_Interrupteur_virtuel.png + + + + + + MP3 Player + + + + + + + + + + + + + + + + + + com/ardublock/block/seeedstudio/Mp3Player.png + + + + + + MP3 Player + + + + + + + + + + + + com/ardublock/block/seeedstudio/Mp3Player.png + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + DuinoEDU_hand_positionX + + + + + + + com/ardublock/block/arduino/leapmotion.png + + + + + + DuinoEDU_hand_positionY + + + + + + + com/ardublock/block/arduino/leapmotion.png + + + + + + DuinoEDU_hand_positionZ + + + + + + + com/ardublock/block/arduino/leapmotion.png + + + + + + DuinoEDU_handRotX + + + + + + + com/ardublock/block/arduino/leapmotion.png + + + + + + DuinoEDU_handRotY + + + + + + + com/ardublock/block/arduino/leapmotion.png + + + + + + DuinoEDU_handRotZ + + + + + + + com/ardublock/block/arduino/leapmotion.png + + + + + + DuinoEDU_angle_pouce + + + + + + + com/ardublock/block/arduino/leapmotion.png + + + + + + DuinoEDU_angle_index + + + + + + + com/ardublock/block/arduino/leapmotion.png + + + + + + DuinoEDU_angle_majeur + + + + + + + com/ardublock/block/arduino/leapmotion.png + + + + + + DuinoEDU_angle_annulaire + + + + + + + com/ardublock/block/arduino/leapmotion.png + + + + + + DuinoEDU_angle_auriculaire + + + + + + + com/ardublock/block/arduino/leapmotion.png + + + + + + DuinoEDU RTC Mem + + + + + + + + + + + + + + + + + + + + + + + + com/ardublock/block/seeedstudio/RTC.png + + + + + + DuinoEDU_RTC + + + + + + + com/ardublock/block/seeedstudio/RTC.png + + + + + + DuinoEDU_RTC + + + + + + + com/ardublock/block/seeedstudio/RTC.png + + + + + + DuinoEDU_RTC + + + + + + + com/ardublock/block/seeedstudio/RTC.png + + + + + + DuinoEDU_RTC + + + + + + + com/ardublock/block/seeedstudio/RTC.png + + + + + + DuinoEDU_RTC + + + + + + + com/ardublock/block/seeedstudio/RTC.png + + + + + + DuinoEDU_RTC + + + + + + + com/ardublock/block/seeedstudio/RTC.png + + + + + + send message via Serial port + + + + + + + + + + send message via Serial port + + + + + + + + + + send message via Serial port + + + + + + + + + + Motor_shield forward + + + + + + + + + + + + Motor_shield back + + + + + + + + + + + + Motor_shield pivote + + + + + + + + + + + Motor_shield Stop + + + + + + Motor_shield Speed Motor + + + + + + + + + + + + com/ardublock/block/seeedstudio/Motor_shield.png + + + + + + Motor_shield forward + + + + + + + + + + + + Motor_shield back + + + + + + + + + + + + Motor_shield pivote + + + + + + + + + + + Motor_shield Stop + + + + + + Motor_shield Speed Motor + + + + + + + + + + + + com/ardublock/block/seeedstudio/Motor_shield.png + + + + + + Motor_shield Drift Motor + + + + + + + + + + + GPS Init + + + + + + + + + + + + + + + + + + + + + com/ardublock/block/seeedstudio/GPS.png + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Esplora Led + + + + + + + + + + + + + + + com/ardublock/block/esplora/Esplora.png + + + + + + Esplora Acceleration X + + + + + + + com/ardublock/block/esplora/Esplora.png + + + + + + Esplora Acceleration Y + + + + + + + com/ardublock/block/esplora/Esplora.png + + + + + + Esplora Acceleration Z + + + + + + + com/ardublock/block/esplora/Esplora.png + + + + + + Esplora Esplora_Joystick X + + + + + + + com/ardublock/block/esplora/Esplora.png + + + + + + Esplora Esplora_Joystick Y + + + + + + + com/ardublock/block/esplora/Esplora.png + + + + + + Esplora Joystick Switch + + + + + + + com/ardublock/block/esplora/Esplora.png + + + + + + Esplora Slider + + + + + + + com/ardublock/block/esplora/Esplora.png + + + + + + Esplora Microphone + + + + + + + com/ardublock/block/esplora/Esplora.png + + + + + + Esplora Light Sensor + + + + + + + com/ardublock/block/esplora/Esplora.png + + + + + + Generates a square wave of the specified frequency (and 50% + duty cycle) on a pin. + + + + + + + + + + com/ardublock/block/esplora/Esplora.png + + + + + + Stops the generation of a square wave triggered by tone(). + + + + + com/ardublock/block/esplora/Esplora.png + + + + + + Esplora temperature + + + + + + + + + + com/ardublock/block/esplora/Esplora.png + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Esplora Joystick Switch + + + + + + + + + + com/ardublock/block/esplora/Esplora.png + + + + + + Esplora Switch + + + + + + + + + + com/ardublock/block/esplora/Esplora.png + + + + + + + + + + + + + + + + + + + + + Esplora_Mouse_Click + + + + + + + + + + + Esplora_Mouse_Press + + + + + + + + + + + Esplora_Mouse_Release + + + + + + + + + + + Esplora_Mouse_isPressed + + + + + + + + + + + + Esplora_Mouse_move + + + + + + + + + + + + + + Esplora_Keyboard_print + + + + + + + + + + + + + Esplora_Keyboard_Click + + + + + + + + + + + Esplora_Keyboard_Press + + + + + + + + + + + Esplora_Keyboard_Release + + + + + + + + + + + Esplora_Keyboard_ReleaseAll + + + + + + + + Esplora_TFT_Width + + + + + + + + Esplora_TFT_Height + + + + + + + + Esplora TFT Background + + + + + + + + + + + + + + + com/ardublock/block/esplora/TFT.png + + + + + + Esplora TFT Point + + + + + + + + + + + + + + + + + + + + + com/ardublock/block/esplora/TFT.png + + + + + + Esplora TFT Line + + + + + + + + + + + + + + + + + + + + + + + + + + + com/ardublock/block/esplora/TFT.png + + + + + + Esplora TFT Circle + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + com/ardublock/block/esplora/TFT.png + + + + + + Esplora TFT Rect + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + com/ardublock/block/esplora/TFT.png + + + + + + Esplora TFT Text + + + + + + + + + + + + + + + + + + + + + + + + + + + com/ardublock/block/esplora/TFT.png + + + + + + set String PImage + + + + + + + + + + + + + PImage + + + + + + + + Esplora loadImage + + + + + + + + + + + + + Esplora_Image_isValid + + + + + + + + + + + Esplora_Image_Width + + + + + + + + + + + Esplora_Image_Height + + + + + + + + + + + Esplora_TFT_Display_Image + + + + + + + + + + + + + + + com/ardublock/block/esplora/TFT.png + + + + + + Write to SD card + + + + + + + + + + + + + + + + + + + + + Set Variable File + + + + + + + + + + + + + Variable File + + + + + + + + Variable File Boolean + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + 10mm Blue/Green/Yellow/Red LED Module + + + + + + + + + + + + com/ardublock/block/linksprite/10mmLEDModule.jpg + + + + + + + 5mm Blue/Green/Yellow/Red LED Module + + + + + + + + + + + + com/ardublock/block/linksprite/5mmLEDModule.jpg + + + + + + + Based on the excellent ADXL-345, this digital 3-axis + accelerometer has excellent EMI protection. + + + + + + + + + + com/ardublock/block/linksprite/AccelerometerModule.jpg + + + + + + + Based on the excellent ADXL-345, this digital 3-axis + accelerometer has excellent EMI protection. + + + + + + + + + + com/ardublock/block/linksprite/AccelerometerModule.jpg + + + + + + + Based on the excellent ADXL-345, this digital 3-axis + accelerometer has excellent EMI protection. + + + + + + + + + + com/ardublock/block/linksprite/AccelerometerModule.jpg + + + + + + + Button Module + + + + + + + + + + com/ardublock/block/linksprite/ButtonModule.jpg + + + + + + + Buzzer Module + + + + + + + + + + + + com/ardublock/block/linksprite/BuzzerModule.jpg + + + + + + + Hall Sensor + + + + + + + + + + com/ardublock/block/linksprite/HallSensor.jpg + + + + + + + High Power Led Module + + + + + + + + + + + + com/ardublock/block/linksprite/HighPowerLedModule.jpg + + + + + + + Joystick Sensor Module + + + + + + + + + + com/ardublock/block/linksprite/JoystickSensorModule.jpg + + + + + + + Joystick Sensor Module + + + + + + + + + + com/ardublock/block/linksprite/JoystickSensorModule.jpg + + + + + + + LDR Module + + + + + + + + + + com/ardublock/block/linksprite/LDRModule.jpg + + + + + + + LED Bar + + + + + + + + + + + + com/ardublock/block/linksprite/LEDBarr.jpg + + + + + + + Linear/Slide Potentiometer Module + + + + + + + + + + com/ardublock/block/linksprite/Linear-SlidePotentiometerModule.jpg + + + + + + + Magnetic Switch + + + + + + + + + + com/ardublock/block/linksprite/MagneticSwitch.jpg + + + + + + + Mosfet Module + + + + + + + + + + + + com/ardublock/block/linksprite/MosfetModule.jpg + + + + + + + Relay Module + + + + + + + + + + + + com/ardublock/block/linksprite/RelayModule.jpg + + + + + + + Rotary Potentiometer Module + + + + + + + + + + com/ardublock/block/linksprite/RotaryPotentiometerModule.jpg + + + + + + + RTC Module + + + + + + + + + + com/ardublock/block/linksprite/RTCModule.jpg + + + + + + + Sound Sensor + + + + + + + + + + com/ardublock/block/linksprite/SoundSensor.jpg + + + + + + + Thermal Module + + + + + + + + + + com/ardublock/block/linksprite/ThermalModule.jpg + + + + + + + Tilt Module + + + + + + + + + + com/ardublock/block/linksprite/TiltModule.jpg + + + + + + + Touch Sensor Module + + + + + + + + + + com/ardublock/block/linksprite/TouchSensorModule.jpg + + + + + + + + BLE Shield for Bluetooth Connectivity + + + + + + + + + + + + com/ardublock/block/network/bleshield.jpg + + + + + + + + + + + + + + + + + bleshield compare + + + + + + + + + + + + + + + + + + + com/ardublock/block/network/bleshield.jpg + + + + + + + Adafruit DC motor + + + + + + + + + + + + + + Adafruit DC motor + + + + + + + + + + + + + + Adafruit DC motor + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + ada_neopixel_init + + + + + + + + + + + + + + + + + + com/ardublock/block/adafruit/neopixel.png + + + + + + + ada_neopixel_pixel_colorGRB + + + + + + + + + + + + + + + + + + + + + com/ardublock/block/adafruit/neopixel.png + + + + + + + ada_neopixel_pixel_colorRGB + + + + + + + + + + + + + + + + + + + + + com/ardublock/block/adafruit/neopixel.png + + + + + + + ada_neopixel_show + + + + + + + + + com/ardublock/block/adafruit/neopixel.png + + + + + + + ada_neopixel_Brightness + + + + + + + + + + + + com/ardublock/block/adafruit/neopixel.png + + + + + + + Makeblock Ultrasonic Sensor + + + + + + + + + + + com/ardublock/block/makeblock/me_ultrasonic_sensor.png + + + + + + Makeblock LineFinder + + + + + + + + + + + com/ardublock/block/makeblock/me_linefinder.png + + + + + + Makeblock LimitSwitch + + + + + + + + + + + com/ardublock/block/makeblock/me_limitswitch.png + + + + + + Makeblock Shutter For DSLR + + + + + + + + + + + + + com/ardublock/block/makeblock/me_shutter.png + + + + + + Makeblock DC Motor + + + + + + + + + + + + + + com/ardublock/block/makeblock/me_motordriver.png + + + + + + Makeblock Servo + + + + + + + + + + + + + + + com/ardublock/block/makeblock/me_servodriver.png + + + + + + Makeblock Stepper Motor + + + + + + + + + + + + + + + + + + + com/ardublock/block/makeblock/me_stepper_motor.png + + + + + + Makeblock Infrared Receiver + + + + + + + + + + + + + + com/ardublock/block/makeblock/me_infraredreceiver.png + + + + + + Makeblock Bluetooth Read + + + + + + + + + + + + + com/ardublock/block/makeblock/me_bluetooth.png + + + + + + Makeblock Bluetooth Write + + + + + + + + + + + + com/ardublock/block/makeblock/me_bluetooth_write.png + + + + + + Makeblock Bluetooth Commands + + + + + + + + + + com/ardublock/block/makeblock/me_bluetooth_cmds.png + + + + + + Makeblock Bluetooth Commands + + + + + + + + + + + + + com/ardublock/block/makeblock/me_bluetooth_cmd.png + + + + + + Me Base Shield Port + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Me Base Shield DC Motor Port + + + + + + + + + + + + + + + + + Me Shutter Action + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + workshop template + + + + com/ardublock/block/workshop/setting.png + + + + + + + workshop template + + + + com/ardublock/block/workshop/go_forward.png + + + + + + + workshop template + + + + com/ardublock/block/workshop/go_backward.png + + + + + + + workshop template + + + + com/ardublock/block/workshop/stop.png + + + + + + + workshop template + + + + com/ardublock/block/workshop/turn_left.png + + + + + + + workshop template + + + + com/ardublock/block/workshop/turn_right.png + + + + + + + workshop template + + + + com/ardublock/block/workshop/go_forward_left.png + + + + + + + workshop template + + + + com/ardublock/block/workshop/go_forward_right.png + + + + + + + workshop template + + + + com/ardublock/block/workshop/go_back_left.png + + + + + + + workshop template + + + + com/ardublock/block/workshop/go_back_right.png + + + + + + + + workshop template + + + + com/ardublock/block/workshop/light.png + + + + + + + workshop template + + + + com/ardublock/block/workshop/scan.png + + + + + + + workshop template + + + + com/ardublock/block/workshop/music.png + + + + + + + workshop template + + + + com/ardublock/block/workshop/wireless.png + + + + + + + workshop template + + + + + + + com/ardublock/block/workshop/danger.png + + + + + + + workshop template + + + + + + + com/ardublock/block/workshop/binoculars.png + + + + + + + + + workshop template + + + + + + + com/ardublock/block/workshop/insectbot_distance.png + + + + + + + workshop template + + + + + + + com/ardublock/block/workshop/insectbot_danger.png + + + + + + + workshop template + + + + com/ardublock/block/workshop/insectbot_goforward.png + + + + + + + workshop template + + + + com/ardublock/block/workshop/insectbot_gobackright.png + + + + + + + workshop template + + + + com/ardublock/block/workshop/insectbot_turnleft.png + + + + + + + workshop template + + + + com/ardublock/block/workshop/insectbot_led.png + + + + + + + BendSensor + + + + + + + + + + com/ardublock/block/littlebits/input/BendSensor.jpg + + + + + + + Button + + + + + + + + + + com/ardublock/block/littlebits/input/Button.jpg + + + + + + + Dimmer + + + + + + + + + + com/ardublock/block/littlebits/input/Dimmer.jpg + + + + + + + LightSensor + + + + + + + + + + com/ardublock/block/littlebits/input/LightSensor.jpg + + + + + + + LightTrigger + + + + + + + + + + com/ardublock/block/littlebits/input/LightTrigger.jpg + + + + + + + Microphone + + + + + + + + + + com/ardublock/block/littlebits/input/Microphone.jpg + + + + + + + MotionTrigger + + + + + + + + + + com/ardublock/block/littlebits/input/MotionTrigger.jpg + + + + + + + PressureSensor + + + + + + + + + + com/ardublock/block/littlebits/input/PressureSensor.jpg + + + + + + + Pulse + + + + + + + + + + com/ardublock/block/littlebits/input/Pulse.jpg + + + + + + + RemoteTrigger + + + + + + + + + + com/ardublock/block/littlebits/input/RemoteTrigger.jpg + + + + + + + RollerSwitch + + + + + + + + + + com/ardublock/block/littlebits/input/RollerSwitch.jpg + + + + + + + SlideDimmer + + + + + + + + + + com/ardublock/block/littlebits/input/SlideDimmer.jpg + + + + + + + SlideSwitch + + + + + + + + + + com/ardublock/block/littlebits/input/SlideSwitch.jpg + + + + + + + SoundTrigger + + + + + + + + + + com/ardublock/block/littlebits/input/SoundTrigger.jpg + + + + + + + TimeOut + + + + + + + + + + com/ardublock/block/littlebits/input/TimeOut.jpg + + + + + + + ToggleSwitch + + + + + + + + + + com/ardublock/block/littlebits/input/ToggleSwitch.jpg + + + + + + + mix + + + + + + + + + + com/ardublock/block/littlebits/input/mix.jpg + + + + + + + oscillator + + + + + + + + + + com/ardublock/block/littlebits/input/oscillator.jpg + + + + + + + random + + + + + + + + + + com/ardublock/block/littlebits/input/random.jpg + + + + + + + Bargraph + + + + + + + + + + + + com/ardublock/block/littlebits/output/Bargraph.jpg + + + + + + + BrightLED + + + + + + + + + + + + com/ardublock/block/littlebits/output/BrightLED.jpg + + + + + + + DCMotor + + + + + + + + + + + + com/ardublock/block/littlebits/output/DCMotor.jpg + + + + + + + Fan + + + + + + + + + + + + com/ardublock/block/littlebits/output/Fan.jpg + + + + + + + IR_LED + + + + + + + + + + + + com/ardublock/block/littlebits/output/IR_LED.jpg + + + + + + + LED + + + + + + + + + + + + com/ardublock/block/littlebits/output/LED.jpg + + + + + + + Lightwire + + + + + + + + + + + + com/ardublock/block/littlebits/output/Lightwire.jpg + + + + + + + LongLED + + + + + + + + + + + + com/ardublock/block/littlebits/output/LongLED.jpg + + + + + + + Number + + + + + + + + + + + + com/ardublock/block/littlebits/output/Number.jpg + + + + + + + RGBLED + + + + + + + + + + + + com/ardublock/block/littlebits/output/RGBLED.jpg + + + + + + + UVLED + + + + + + + + + + + + com/ardublock/block/littlebits/output/UVLED.jpg + + + + + + + Vibration_Motor + + + + + + + + + + + + com/ardublock/block/littlebits/output/Vibration_Motor.jpg + + + + + + + synthspeaker + + + + + + + + + + + + com/ardublock/block/littlebits/output/synthspeaker.jpg + + + + + + + set both left and right motor Keenlon Robot 上海擎朗智能 + + + + + + + + + + + + com/ardublock/block/keenlon/k_dianji.png + + + + + + + set left or right motor Keenlon Robot 上海擎朗智能 + + + + + + + + + + + + com/ardublock/block/keenlon/k_dianji.png + + + + + + + stop motor Keenlon Robot 上海擎朗智能 + + + + com/ardublock/block/keenlon/k_dianji.png + + + + + + + print string to TFT Keenlon Robot 上海擎朗智能 + + + + + + + + + + + + com/ardublock/block/keenlon/k_tft.png + + + + + + + clear TFT Keenlon Robot 上海擎朗智能 + + + + com/ardublock/block/keenlon/k_tft.png + + + + + + + get eye min value Keenlon Robot 上海擎朗智能 + + + + + + + + com/ardublock/block/keenlon/k_fuyan.png + + + + + + + get eye min index Keenlon Robot 上海擎朗智能 + + + + + + + com/ardublock/block/keenlon/k_fuyan.png + + + + + + + get eye max value Keenlon Robot 上海擎朗智能 + + + + + + + com/ardublock/block/keenlon/k_fuyan.png + + + + + + + get eye max index Keenlon Robot 上海擎朗智能 + + + + + + + com/ardublock/block/keenlon/k_fuyan.png + + + + + + + get eye on a channel Keenlon Robot 上海擎朗智能 + + + + + + + + + + + + get button Keenlon Robot 上海擎朗智能 + + + + + + + + + encoder clear Keenlon Robot 上海擎朗智能 + + + + + + + + + com/ardublock/block/keenlon/k_bianmaqi.png + + + + + + + get encoder Keenlon Robot 上海擎朗智能 + + + + + + + + + + com/ardublock/block/keenlon/k_bianmaqi.png + + + + + + + + + tft add a variable Keenlon Robot 上海擎朗智能 + + + + + + + + + + + get compass degree Keenlon Robot 上海擎朗智能 + + + + + + + com/ardublock/block/keenlon/k_compass.png + + + + + + + buzzer Keenlon Robot 上海擎朗智能 + + + + + + + + + + + + com/ardublock/block/keenlon/k_fengminqi.png + + + + + + + ground light sensor Keenlon Robot 上海擎朗智能 + + + + + + + + + + com/ardublock/block/keenlon/k_dimianhuidu.png + + + + + + + led on off Keenlon Robot 上海擎朗智能 + + + + + + + + + + + + com/ardublock/block/keenlon/k_led.png + + + + + + + led pwm Keenlon Robot 上海擎朗智能 + + + + + + + + + + + + com/ardublock/block/keenlon/k_led.png + + + + + + + light sensor Keenlon Robot 上海擎朗智能 + + + + + + + + + + com/ardublock/block/keenlon/k_guanggan.png + + + + + + + mic Keenlon Robot 上海擎朗智能 + + + + + + + + + + com/ardublock/block/keenlon/k_fengminqi.png + + + + + + + photo sensor Keenlon Robot 上海擎朗智能 + + + + + + + + + + com/ardublock/block/keenlon/k_guangdian.png + + + + + + + potentiometer sensor Keenlon Robot 上海擎朗智能 + + + + + + + + + + com/ardublock/block/keenlon/k_dianweiqi.png + + + + + + + relays Keenlon Robot 上海擎朗智能 + + + + + + + + + + + + com/ardublock/block/keenlon/k_jidianqi.png + + + + + + + tempe sensor Keenlon Robot 上海擎朗智能 + + + + + + + + + + com/ardublock/block/keenlon/k_wendu.png + + + + + + + sharp distance sensor Keenlon Robot 上海擎朗智能 + + + + + + + + + + com/ardublock/block/keenlon/k_psd.png + + + + + + + touch sensor Keenlon Robot 上海擎朗智能 + + + + + + + + + + com/ardublock/block/keenlon/k_pengzhuang.png + + + + + + + + + set a pin to pwm Keenlon Robot 上海擎朗智能 + + + + + + + + + + + + com/ardublock/block/keenlon/k_duoji.png + + + + + + + + + + Flashing Mode + + + + + + + + + + + Fading Mode + + + + + + + + + + + + Pin name + + + + + + + + + + + trigger equal + + + + + + + + + + + trigger greater + + + + + + + + + + + trigger less + + + + + + + + + + + + + Random Mode + + + + + + + + + + + Single Mode + + + + + + + + + + + high + + + + + + + + + + + low + + + + + + + + + + + high pulse + + + + + + + + + + + low pulse + + + + + + + + + + + + + set iDrawing parameter + + + + + + + + + + + + + + + iDrawing run + + + + + + + + set rule + + + + + + + + + + set rule + + + + + + + + + + + + + let system go to sleep state + + + + + + + + + + + + tigger + + + + + + + + + + + + digital pin + + + + + + + + + + + + + + + analog pin + + + + + + + + + + + + + + + + + + + + + actuator + + + + + + + + + + + + + + + + + + + actuator + + + + + + + + + + + + + + + + + + + digital pin + + + + + + + + + + + + + + + + Midi Command + + + + + + + + + + + + + + + + + + com/ardublock/block/jerusalab/midi_command.png + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + digital-high + digital-low + + + and + or + + + true + false + + + addition + subtraction + multiplication + division + modulo + + + min + max + + + greater + less + equal + greater_equal + less_equal + not_equal + + + equal_digital + not_equal_digital + + + equal_poly + not_equal_poly + + + string_greater + string_less + string_equal + string_greater_equal + string_less_equal + string_not_equal + string_equals + string_equalsIgnoreCase + string_compareTo + + + equal_string + not_equal_string + + + sin + cos + tan + + + code_head + code_setup + code_loop + + + digital-on + digital-off + + + LCD_I2C_Sainsmart_20by4 + LCD_I2C_Sainsmart_16by2 + + + LCD_command_clear + LCD_command_home + LCD_command_lightOff + LCD_command_lightOn + LCD_command_cursorOn + LCD_command_cursorOff + LCD_command_blinkOn + LCD_command_blinkOff + + + servo_default + servo_sg90 + servo_mg996r + + + + + + pinListDigital_D0 + pinListDigital_D1 + pinListDigital_D2 + pinListDigital_D3 + pinListDigital_D4 + pinListDigital_D5 + pinListDigital_D6 + pinListDigital_D7 + pinListDigital_D8 + pinListDigital_D9 + pinListDigital_D10 + pinListDigital_D11 + pinListDigital_D12 + pinListDigital_D13 + pinListDigital_D14 + pinListDigital_D15 + pinListDigital_D16 + pinListDigital_D17 + pinListDigital_D18 + pinListDigital_D19 + + pinListDigital_D20 + pinListDigital_D21 + pinListDigital_D22 + pinListDigital_D23 + pinListDigital_D24 + pinListDigital_D25 + pinListDigital_D26 + pinListDigital_D27 + pinListDigital_D28 + pinListDigital_D29 + pinListDigital_D30 + pinListDigital_D31 + pinListDigital_D32 + pinListDigital_D33 + pinListDigital_D34 + pinListDigital_D35 + pinListDigital_D36 + pinListDigital_D37 + pinListDigital_D38 + pinListDigital_D39 + pinListDigital_D40 + pinListDigital_D41 + pinListDigital_D42 + pinListDigital_D43 + pinListDigital_D44 + pinListDigital_D45 + pinListDigital_D46 + pinListDigital_D47 + pinListDigital_D48 + pinListDigital_D49 + pinListDigital_D50 + pinListDigital_D51 + pinListDigital_D52 + pinListDigital_D53 + + + pinListAnalog_A0 + pinListAnalog_A1 + pinListAnalog_A2 + pinListAnalog_A3 + pinListAnalog_A4 + pinListAnalog_A5 + + + + + pinListAnalog_A0 + pinListAnalog_A1 + pinListAnalog_A2 + pinListAnalog_A3 + pinListAnalog_A4 + pinListAnalog_A5 + + pinListAnalog_A6 + pinListAnalog_A7 + + pinListAnalog_A8 + pinListAnalog_A9 + pinListAnalog_A10 + pinListAnalog_A11 + pinListAnalog_A12 + pinListAnalog_A13 + pinListAnalog_A14 + pinListAnalog_A15 + + + + + pinListAnalogWrite_D3 + pinListAnalogWrite_D5 + pinListAnalogWrite_D6 + pinListAnalogWrite_D9 + pinListAnalogWrite_D10 + pinListAnalogWrite_D11 + + pinListAnalogWrite_D2 + pinListAnalogWrite_D4 + pinListAnalogWrite_D7 + pinListAnalogWrite_D8 + pinListAnalogWrite_D12 + pinListAnalogWrite_D13 + pinListAnalogWrite_D44 + pinListAnalogWrite_D45 + pinListAnalogWrite_D46 + + + + df_joystick_module_x + df_joystick_module_y + + + df_mma7260_x + df_mma7260_y + df_mma7260_z + + + Tinker_I0 + Tinker_I1 + Tinker_I2 + Tinker_I3 + Tinker_I4 + Tinker_I5 + + + Tinker_O0 + Tinker_O1 + Tinker_O2 + Tinker_O3 + Tinker_O4 + Tinker_O5 + + + panda_i1 + panda_i2 + panda_i3 + panda_i4 + panda_i5 + + + panda_o1 + panda_o2 + panda_o3 + panda_o4 + panda_o5 + + + ada_dc_motor_fwd + ada_dc_motor_bwd + ada_dc_motor_release + + + ada_neopixel_NEO_GRB + ada_neopixel_NEO_RGB + + + ada_neopixel_NEO_KHZ400 + ada_neopixel_NEO_KHZ800 + + + ada_neopixel_pixel_colorRGB + ada_neopixel_pixel_colorGRB + + + me_port_1 + me_port_2 + me_port_3 + me_port_4 + me_port_5 + me_port_6 + me_port_7 + me_port_8 + + + me_motor_1 + me_motor_2 + + + me_shutter_1 + me_shutter_2 + me_shutter_3 + me_shutter_4 + + + scoop_event_low + scoop_event_high + scoop_event_falling + scoop_event_rising + scoop_event_change + + + led_mode_flash + led_mode_fade + + + + trigger_equal + trigger_greater + trigger_less + + + + player_mode_random + player_mode_single + + + + output_mode_high + output_mode_low + output_mode_highpulse + output_mode_lowpulse + + + DuinoEDU_right + DuinoEDU_straight + DuinoEDU_left + + + DuinoEDU_Driver_I2C_Forward + DuinoEDU_Driver_I2C_Back + DuinoEDU_Driver_I2C_Pivoter + + + DuinoEDU_shildbot_Forward + DuinoEDU_shildbot_Back + DuinoEDU_shildbot_Pivoter + + + DuinoEDU_S1 + DuinoEDU_S2 + DuinoEDU_S3 + DuinoEDU_S4 + DuinoEDU_S5 + + + DuinoEDU_Driver_I2C_Speed_A_Motor + DuinoEDU_Driver_I2C_Speed_B_Motor + + + DuinoEDU_Aix_Acc_mesurerX + DuinoEDU_Aix_Acc_mesurerY + DuinoEDU_Aix_Acc_mesurerZ + DuinoEDU_Aix_Acc_mesurerXYZ + DuinoEDU_Aix_Acc_mesurerVariation + + + DuinoEDU_humiPro + DuinoEDU_tempPro + + + DuinoEDU_temp + DuinoEDU_humi + + + DuinoEDU_On_digit1 + DuinoEDU_On_digit2 + DuinoEDU_On_digit3 + DuinoEDU_On_digit4 + + + DuinoEDU_setSerialInfosOn + DuinoEDU_setSerialInfosOff + + + DuinoEDU_Mouse_Xmove + DuinoEDU_Mouse_Ymove + + + DuinoEDU_equal + DuinoEDU_not_equal + DuinoEDU_greater + DuinoEDU_less + DuinoEDU_greater_equal + DuinoEDU_less_equal + + + DuinoEDU_Rfid_Write + DuinoEDU_Rfid_Ram_List + + + DuinoEDU_neopixel_pixel_colorGRB + DuinoEDU_neopixel_pixel_colorRGB + + + DDRA + DDRB + DDRC + DDRD + DDRH + DDRL + + + PORTA + PORTB + PORTC + PORTD + PORTH + PORTL + + + PORTA2 + PORTB2 + PORTC2 + PORTD2 + PORTH2 + PORTL2 + + + LEVEL1 + LEVEL0 + + + PINA + PINB + PINC + PIND + PINH + PINL + + + DuinoEDU_Volts + DuinoEDU_VALEURS_BRUTES + DuinoEDU_CM + DuinoEDU_DEGRES + + + DuinoEDU_Nunchuck_BoutonC + DuinoEDU_Nunchuck_BoutonZ + DuinoEDU_Nunchuck_JoystickX + DuinoEDU_Nunchuck_JoystickY + DuinoEDU_Nunchuck_AccelerationX + DuinoEDU_Nunchuck_AccelerationY + DuinoEDU_Nunchuck_AccelerationZ + + + DuinoEDU_Barometer_Temperature + DuinoEDU_Barometer_Pression + DuinoEDU_Barometer_Altitude + + + DuinoEDU_D2 + DuinoEDU_D3 + DuinoEDU_D4 + DuinoEDU_D5 + DuinoEDU_D6 + DuinoEDU_D7 + DuinoEDU_D8 + DuinoEDU_D9 + DuinoEDU_D10 + DuinoEDU_D11 + DuinoEDU_D12 + DuinoEDU_D13 + DuinoEDU_D14 + DuinoEDU_D15 + DuinoEDU_D16 + DuinoEDU_D17 + DuinoEDU_D18 + DuinoEDU_D19 + DuinoEDU_D20 + DuinoEDU_D21 + DuinoEDU_A0 + DuinoEDU_A1 + DuinoEDU_A2 + DuinoEDU_A3 + DuinoEDU_A4 + DuinoEDU_A5 + DuinoEDU_A6 + DuinoEDU_A7 + DuinoEDU_A8 + DuinoEDU_A9 + DuinoEDU_A10 + DuinoEDU_A11 + DuinoEDU_A12 + DuinoEDU_A13 + DuinoEDU_A14 + DuinoEDU_A15 + + + DuinoEDU_A0 + DuinoEDU_A1 + DuinoEDU_A2 + DuinoEDU_A3 + DuinoEDU_A4 + DuinoEDU_A5 + DuinoEDU_A6 + DuinoEDU_A7 + DuinoEDU_A8 + DuinoEDU_A9 + DuinoEDU_A10 + DuinoEDU_A11 + DuinoEDU_A12 + DuinoEDU_A13 + DuinoEDU_A14 + DuinoEDU_A15 + + + DuinoEDU_IRREMOTE_MEMORISER_TOUCHE + DuinoEDU_IRREMOTE_NE_PAS_MEMORISER + DuinoEDU_IRREMOTE_MEMORISER_200_MS + DuinoEDU_IRREMOTE_MEMORISER_2000_MS + + + DuinoEDU_hand_positionX + DuinoEDU_hand_positionY + DuinoEDU_hand_positionZ + + + DuinoEDU_handRotX + DuinoEDU_handRotY + DuinoEDU_handRotZ + + + DuinoEDU_angle_pouce + DuinoEDU_angle_index + DuinoEDU_angle_majeur + DuinoEDU_angle_annulaire + DuinoEDU_angle_auriculaire + + + DuinoEDU_RTC_Day + DuinoEDU_RTC_Month + DuinoEDU_RTC_Year + DuinoEDU_RTC_Hour + DuinoEDU_RTC_Minute + DuinoEDU_RTC_Second + + + DuinoEDU_code_head + DuinoEDU_code_setup + DuinoEDU_code_loop + + + DuinoEDU_Motor_shield_Forward + DuinoEDU_Motor_shield_Back + DuinoEDU_Motor_shield_Pivoter + + + DuinoEDU_Uno23 + DuinoEDU_Uno45 + DuinoEDU_Uno67 + DuinoEDU_Uno89 + DuinoEDU_Mega1 + DuinoEDU_Mega2 + DuinoEDU_Mega3 + DuinoEDU_Mega4 + + + DuinoEDU_Gps_LatitudeNbr + DuinoEDU_Gps_LongitudeNbr + DuinoEDU_Gps_LatitudeDirection + DuinoEDU_Gps_LongitudeDirection + + + DuinoEDU_Gps_LatitudeGoogleMaps + DuinoEDU_Gps_LongitudeGoogleMaps + + + DuinoEDU_Gps_Day + DuinoEDU_Gps_Month + DuinoEDU_Gps_Year + DuinoEDU_Gps_Hour + DuinoEDU_Gps_Minute + DuinoEDU_Gps_Seconde + DuinoEDU_Gps_Milliseconde + + + DuinoEDU_Gps_Speed + DuinoEDU_Gps_Angle + DuinoEDU_Gps_altitude + + + DuinoEDU_Gps_ActiverInterruption + DuinoEDU_Gps_DesactiverInterruption + + + DuinoEDU_Information1 + DuinoEDU_Information2 + DuinoEDU_Information3 + + + EDUGPS_100MLHZ + EDUGPS_200MLHZ + EDUGPS_1HZ + EDUGPS_5HZ + EDUGPS_10HZ + + + Esplora_AccelerationX + Esplora_AccelerationY + Esplora_AccelerationZ + + + Esplora_JoystickX + Esplora_JoystickY + + + Esplora_DEGREES_C + Esplora_DEGREES_F + + + Esplora_DOWN + Esplora_LEFT + Esplora_UP + Esplora_RIGHT + + + Esplora_LEFT2 + Esplora_RIGHT2 + Esplora_MIDDLE + + + Esplora_Mouse_Click + Esplora_Mouse_Press + Esplora_Mouse_Release + + + Esplora_Keyboard_Click + Esplora_Keyboard_Press + Esplora_Keyboard_Release + + + Esplora_TFT_Height + Esplora_TFT_Width + + + Esplora_Image_Height + Esplora_Image_Width + + + ESPLORA_OUTA + ESPLORA_OUTB + + + ESPLORA_INA + ESPLORA_INB + + + GROVE_CS + DUPONT_CS + ESPLORA_CS + + + Midi_C + Midi_CS + Midi_D + Midi_DS + Midi_E + Midi_F + Midi_FS + Midi_G + Midi_GS + Midi_A + Midi_AS + Midi_B + + + + + + + + loop + program + delay + delay_microseconds + millis + if + ifelse + while + do_while + repeat_times + repeat + repeat_control + break + subroutine + subroutine-ref + subroutine_var + subroutine-ref_var + ref_var + + + pin-write-digital + pin-toggle + pin-read-digital + pin-read-digital-pullup + pin-read-analog + pin-write-analog + tone + tone_time + no_tone + pinListDigital_D0 + pinListAnalog_A0 + pinListAnalogWrite_D3 + + + greater + less + equal + greater_equal + less_equal + not_equal + equal_digital + not_equal_digital + equal_poly + not_equal_poly + equal_string + not_equal_string + and + or + not + string_equal + string_empty + string_toInt + + + addition + subtraction + multiplication + division + modulo + abs + pow + sqrt + sin + cos + tan + random_range + map + toint + constrain + + + number + setter_variable_number + variable_number + setter_variable_number_unsigned_long + variable_number_unsigned_long + setter_variable_digital + variable_digital + digital-low + digital-high + true + false + setter_variable_number_double + variable_number_double + number_double + pinListDigital_D0 + pinListAnalog_A0 + pinListAnalogWrite_D3 + setter_variable_char + variable_poly + char + setter_variable_String + variable_String + message + create_variable_vector + variable_vector + setter_variable_vector + + + servo_default + ultrasonic + df_dht11_temperature + df_dht11_humidity + LCD_I2C_Sainsmart_20by4 + LCD_command_lightOff + LCD_PLL_Sainsmart_16by2 + number-single-I2C-address + number-single-fixed-parallel + + + serial_write + serial_print + glue_sn + glue_sb + glue_poly + ir_setport + ir_getcode + wire_write + wire_read + wire_isread + serial_available + serial_available2 + serial_read + serial_parseInt + DuinoEDU_Guino_Read + DuinoEDU_Guino_Slider + DuinoEDU_Guino_switch + DuinoEDU_Guino_pause + DuinoEDU_Guino_Title + DuinoEDU_Guino_column + DuinoEDU_hand_positionX + DuinoEDU_handRotX + DuinoEDU_angle_pouce + Serialplus_send_variable_number + Serialplus_send_variable_digital + Serialplus_receive_number + Serialplus_receive_digital + + + scoop_task + scoop_loop + scoop_sleep + scoop_pin_event + scoop_event_low + scoop_event_high + scoop_event_falling + scoop_event_rising + scoop_event_change + + + eeprom_read_int + eeprom_write_int + eeprom_read_long + eeprom_write_long + eeprom_read + eeprom_write + sd_write2 + MaSD_Connect + MaSD_file + MaSD_Write + MaSD_NewLine + MaSD_separator + + + + + + bleshield + bleshield_available + bleshield_read_poly + bleshield_compare + + + code_head + code_setup + code_loop + DuinoEDU_code_head + DuinoEDU_code_setup + DuinoEDU_code_loop + + + Tinker_LED + Tinker_LED_pwm + Tinker_Button + Tinker_Accmeter + Tinker_Hall + Tinker_LDR + Tinker_LinearPotentiometer + Tinker_RotaryPotentiometer + Tinker_Thermistor + Tinker_Touch + Tinker_Tilt + Tinker_Relay + Tinker_Mosfet + Tinker_Mosfet_pwm + + + df_led + df_led_pwm + df_digital_push_button + df_digital_viberation_sensor + df_analog_rotation_sensor_v1 + df_analog_rotation_sensor_v2 + df_servo + df_360_degree_rotation_motor + df_analog_sound_sensor + df_analog_volume_sensor + df_relay + df_analog_ambient_light_sensor + df_analog_grayscale_sensor + df_buzzer + df_buzzer_tone + df_buzzer_tone_delay + df_capacitive_touch_sensor + df_digital_tilt_sensor + df_digital_infrared_motion_sensor + df_digital_ir_receiver_module + df_adjustable_infrared_sensor_switch + df_line_tracking_sensor + df_joystick_module_button + df_digital_magnetic_sensor + df_pizeo_disk_vibration_sensor + df_flame_sensor + df_temperature_sensor + df_joystick_module_x + df_joystick_module_y + df_analog_mma7361_x + df_analog_mma7361_y + df_analog_mma7361_z + df_mma7260_x + df_mma7260_y + df_mma7260_z + df_analog_gp2y0a21 + df_analog_moisture + df_analog_gas_sensor + df_analog_co_sensor + df_analog_voltage_divider + df_piranha_led + df_piranha_led_pwm + panda_i1 + panda_o1 + df_lcd_keypad + + + seeed_led + seeed_button + seeed_switch + seeed_angle_sensor + seeed_light_sensor + seeed_temp_sensor + seeed_sound_sensor + seeed_line_finder + seeed_pir_motion_sensor + seeed_tilt_switch + seeed_water_sensor + seeed_moisture_sensor + seeed_touch_sensor + seeed_mag_switch + seeed_ir_dist_int + seeed_ir_proximity_sensor + seeed_air_quality_sensor + seeed_vib + seeed_vib_sensor + seeed_relay + seeed_dry_relay + seeed_2coil_relay + seeed_solid_relay + seeed_joystick + seeed_joystick_button + seeed_diff_amp + seeed_ir_temp_sensor + seeed_electricity_sensor + seeed_voltage_divider + seeed_flame_sensor + seeed_ir_refl_sensor + seeed_heart_rate_sensor + seeed_chest_heart_sensor + seeed_circle_led + seeed_led_strip + seeed_var_led + seeed_uv_sensor + seeed_single_gyro + seeed_mq9_sensor + seeed_mp3_sensor + seeed_o2_sensor + + + DDRA + PORTA + PORT_FIX + PINA + DuinoEDU_Led + DuinoEDU_Servo_Plus + DuinoEDU_Ultrasonic + DuinoEDU_LCD_I2C_RGB2 + DuinoEDU_LCD_I2C_Backlight + DuinoEDU_LCD_I2C_RGB_Clear + DuinoEDU_infrared + DuinoEDU_infrared_compare + DuinoEDU_temp + DuinoEDU_humiPro + DuinoEDU_Barometer_Pression + DuinoEDU_Led_Bar + DuinoEDU_Oled_I2C + DuinoEDU_Oled_Clear + DuinoEDU_Keypad_12_Button + DuinoEDU_Keypad_Post + DuinoEDU_Keypad_Pwd + DuinoEDU_Digital_Tube + DuinoEDU_Digital_Tube_Ecrire + DuinoEDU_Display_Digital_Tube + DuinoEDU_Digital_Clear + DuinoEDU_Driver_I2C_Speed_A_Motor + DuinoEDU_Driver_I2C_Forward + DuinoEDU_Driver_I2C_Stop + DuinoEDU_shildbot_Speed_Motor + DuinoEDU_shildbot_Forward + DuinoEDU_shildbot_Stop + DuinoEDU_shildbot_Read + DuinoEDU_Motor_shield_Speed_Motor + DuinoEDU_Motor_shield_Forward + DuinoEDU_Motor_shield_Stop + DuinoEDU_Motor_shield_Drift_Motor + DuinoEDU_Aix_Acc_mesurerX + DuinoEDU_Partie_Emetteur + DuinoEDU_Partie_Recepteur + DuinoEDU_Rfid_Write + DuinoEDU_Rfid_Test + DuinoEDU_Rfid_Read + DuinoEDU_Rfid_Clear + DuinoEDU_neopixel_init + DuinoEDU_neopixel_pixel_colorRGB + DuinoEDU_neopixel_show + DuinoEDU_neopixel_Brightness + DuinoEDU_neopixel_Clear + DuinoEDU_stepper_step + DuinoEDU_stepper_setSpeed + DuinoEDU_matrice_write + DuinoEDU_matrice_Brightness + DuinoEDU_matrice_clear + DuinoEDU_MP3_Player + DuinoEDU_MP3_Pause + DuinoEDU_RTC_Mem + DuinoEDU_RTC_Day + DuinoEDU_Gps_Init + DuinoEDU_Gps_Synchronise + DuinoEDU_Gps_LatitudeNbr + DuinoEDU_Gps_LatitudeGoogleMaps + DuinoEDU_Gps_Day + DuinoEDU_Gps_Speed + DuinoEDU_Mouse_Xmove + keyboard_post + keyboard_compare + DuinoEDU_Nunchuck_BoutonC + + + Esplora_Led + Esplora_tone + Esplora_notone + Esplora_Slider + Esplora_Microphone + Esplora_LightSensor + Esplora_Temp + Esplora_Switch + Esplora_JoystickSwitch2 + Esplora_JoystickX + Esplora_JoystickSwitch + Esplora_AccelerationX + ESPLORA_INA + ESPLORA_OUTA + Esplora_Mouse_Click + Esplora_Mouse_isPressed + Esplora_Mouse_move + Esplora_Keyboard_Click + Esplora_Keyboard_ReleaseAll + Esplora_Keyboard_print + Esplora_TFT_Background + Esplora_TFT_Height + Esplora_TFT_Point + Esplora_TFT_Line + Esplora_TFT_Circle + Esplora_TFT_Rect + Esplora_TFT_Text + Esplora_Load_Image + variable_PImage + Esplora_Image_Width + Esplora_Image_isValid + Esplora_TFT_Display_Image + Espora_SD_Write + Espora_SD_Begin + Esplora_Setter_Variable_File + Esplora_Variable_File + Esplora_Variable_File_Bool + Esplora_File_Available + Esplora_File_Read + Esplora_File_Close + + + ada_dc_motor_fwd + ada_dc_motor_bwd + ada_dc_motor_release + ada_neopixel_init + ada_neopixel_pixel_colorRGB + ada_neopixel_show + ada_neopixel_Brightness + + + me_ultrasonic_sensor + me_linefinder + me_limitswitch + me_shutter + me_motordriver + me_servodriver + me_stepper_motor + me_infraredreceiver + me_bluetooth_read + me_bluetooth_write + me_bluetooth_commands + me_bluetooth_command + me_port_1 + me_motor_1 + me_shutter_1 + + + + insectbot_get_distance + insectbot_is_indanger + insectbot_go_forward + insectbot_go_backright + insectbot_turn_left + insectbot_blink_led + + + + iDrawing_set_para + iDrawing_run + iDrawing_rule_start + iDrawing_rule_stop + iDrawing_rule_sleep + + iDrawing_trigger_time + iDrawing_trigger_dpin + iDrawing_trigger_apin + + iDrawing_actuator_led + iDrawing_actuator_playermini + iDrawing_actuator_dpin + + port_pin_name + led_mode_flash + led_mode_fade + player_mode_random + player_mode_single + output_mode_high + output_mode_low + output_mode_highpulse + output_mode_lowpulse + trigger_equal + trigger_greater + trigger_less + + + + little_bits_bendsensor + little_bits_button + little_bits_dimmer + little_bits_lightsensor + little_bits_lighttrigger + little_bits_microphone + little_bits_motiontrigger + little_bits_pressuresensor + little_bits_pulse + little_bits_remotetrigger + little_bits_rollerswitch + little_bits_slidedimmer + little_bits_slideswitch + little_bits_soundtrigger + little_bits_timeout + little_bits_toggleswitch + little_bits_mix + little_bits_oscillator + little_bits_random + little_bits_bargraph + little_bits_brightled + little_bits_dcmotor + little_bits_fan + little_bits_ir_led + little_bits_led + little_bits_lightwire + little_bits_longled + little_bits_number + little_bits_rgbled + little_bits_uvled + little_bits_vibration_motor + little_bits_synthspeaker + + + + + + + + + + + + + ke-motor-run + ke-motor-setmoto + ke-motor-stop + ke-tft-print + ke-tft-add + ke-tft-clear + ke-eye-minvalue + ke-eye-minindex + ke-eye-maxvalue + ke-eye-maxindex + ke-button-getbutton + ke-encoder-clear + ke-encoder-getencoder + ke-compass + ke-buzzer + ke-relays + ke-led-on-off + ke-led-pwm + ke-touch + ke-ground-light + ke-light + ke-photo + ke-potentiometer + ke-tempe + ke-psd + ke-servo + + + + midi_command + + + + + + + + + + + + + + + + + com/ardublock/block/trash_open.png + com/ardublock/block/trash.png + + + diff --git a/src/main/resources/com/ardublock/block/Skins/all-master/block-mapping.properties b/src/main/resources/com/ardublock/block/Skins/all-master/block-mapping.properties new file mode 100644 index 00000000..b08d994d --- /dev/null +++ b/src/main/resources/com/ardublock/block/Skins/all-master/block-mapping.properties @@ -0,0 +1,940 @@ +#short name can be found in /src/com/ardublock/translator/block/TranslatorBlockFactory.java +eeprom_read=com.ardublock.translator.block.storage.EEPROMReadBlock +eeprom_write=com.ardublock.translator.block.storage.EEPROMWriteBlock +eeprom_read_int=com.ardublock.translator.block.storage.EEPROMReadIntBlock +eeprom_write_int=com.ardublock.translator.block.storage.EEPROMWriteIntBlock +eeprom_read_long=com.ardublock.translator.block.storage.EEPROMReadLongBlock +eeprom_write_long=com.ardublock.translator.block.storage.EEPROMWriteLongBlock +sd_write=com.ardublock.translator.block.storage.SDWriteBlock +sd_write_number=com.ardublock.translator.block.storage.SDWriteNumberBlock +sd_write_number_int=com.ardublock.translator.block.storage.SDWriteNumberIntBlock +sd_return=com.ardublock.translator.block.storage.SDPortBlock +sd_no_return=com.ardublock.translator.block.storage.SDPortBlock +sd_write2=com.ardublock.translator.block.storage.SDWrite2Block +MaSD_file=com.ardublock.translator.block.storage.MaSD_file +MaSD_Write=com.ardublock.translator.block.storage.MaSD_Write +MaSD_NewLine=com.ardublock.translator.block.storage.MaSD_NewLine +GROVE_CS=com.ardublock.translator.block.Duinoedu.OutputPortBlock +DUPONT_CS=com.ardublock.translator.block.Duinoedu.OutputPortBlock +ESPLORA_CS=com.ardublock.translator.block.Duinoedu.OutputPortBlock +MaSD_Connect=com.ardublock.translator.block.storage.MaSD_Connect +MaSD_separator=com.ardublock.translator.block.storage.MaSD_separator +constrain=com.ardublock.translator.block.ConstrainBlock + +variable_poly=com.ardublock.translator.block.VariablePolyBlock +char=com.ardublock.translator.block.PolyBlock +setter_variable_char=com.ardublock.translator.block.SetterVariablePolyBlock +glue_poly=com.ardublock.translator.block.GluePolyBlock +serial_read_poly=com.ardublock.translator.block.SerialReadPolyBlock +equal_poly=com.ardublock.translator.block.EqualPolyBlock +equal_string=com.ardublock.translator.block.EqualPolyBlock +not_equal_poly=com.ardublock.translator.block.NotEqualPolyBlock +not_equal_string=com.ardublock.translator.block.NotEqualPolyBlock +serial_available=com.ardublock.translator.block.SerialAvailableBlock +serial_available2=com.ardublock.translator.block.SerialAvailableBlock2 +program=com.ardublock.translator.block.ProgramBlock +setup=com.ardublock.translator.block.SetupBlock(Anybody using it???) +variable_fake=com.ardublock.translator.block.VariableFakeBlock +variable_vector=com.ardublock.translator.block.VariableVectorBlock +setter_variable_vector=com.ardublock.translator.block.SetterVariableVectorBlock +create_variable_vector=com.ardublock.translator.block.CreateVariableVectorBlock +code_head=com.ardublock.translator.block.CodeHeadBlock +code_setup=com.ardublock.translator.block.CodeSetupBlock +code_loop=com.ardublock.translator.block.CodeLoopBlock +serial_read=com.ardublock.translator.block.SerialReadBlock +serial_parseInt=com.ardublock.translator.block.SerialParseInt +equal_digital=com.ardublock.translator.block.EqualDigitalBlock +not_equal_digital=com.ardublock.translator.block.NotEqualDigitalBlock +repeat=com.ardublock.translator.block.RepeatBlock +repeat_control=com.ardublock.translator.block.RepeatControlBlock +glue_msg=com.ardublock.translator.block.GlueMSGBlock + + +#arduino control +loop=com.ardublock.translator.block.LoopBlock +ifelse=com.ardublock.translator.block.IfelseBlock +true=com.ardublock.translator.block.TrueBlock +and=com.ardublock.translator.block.AndBlock +not=com.ardublock.translator.block.NotBlock +or=com.ardublock.translator.block.OrBlock +digital-high=com.ardublock.translator.block.DigitalHighBlock +digital-low=com.ardublock.translator.block.DigitalLowBlock +digital-on=com.ardublock.translator.block.DigitalOnBlock +digital-off=com.ardublock.translator.block.DigitalOffBlock +false=com.ardublock.translator.block.FalseBlock +if=com.ardublock.translator.block.IfBlock +while=com.ardublock.translator.block.WhileBlock +do_while=com.ardublock.translator.block.DoWhileBlock +repeat_times=com.ardublock.translator.block.RepeatTimesBlock +break=com.ardublock.translator.block.BreakBlock +subroutine=com.ardublock.translator.block.SubroutineBlock +subroutine-ref=com.ardublock.translator.block.SubroutineRefBlock +subroutine_var=com.ardublock.translator.block.SubroutineBlock_var +subroutine-ref_var=com.ardublock.translator.block.SubroutineRefBlock_var +ref_var=com.ardublock.translator.block.Duinoedu.OutputPortBlock +scoop_loop=com.ardublock.translator.block.scoop.SCoopLoopBlock +scoop_task=com.ardublock.translator.block.scoop.SCoopTaskBlock +scoop_sleep=com.ardublock.translator.block.scoop.SCoopSleepBlock +scoop_pin_event=com.ardublock.translator.block.scoop.SCoopPinEventBlock +scoop_event_low=com.ardublock.translator.block.scoop.SCoopEventLowBlock +scoop_event_high=com.ardublock.translator.block.scoop.SCoopEventHighBlock +scoop_event_falling=com.ardublock.translator.block.scoop.SCoopEventFallingBlock +scoop_event_rising=com.ardublock.translator.block.scoop.SCoopEventRisingBlock +scoop_event_change=com.ardublock.translator.block.scoop.SCoopEventChangeBlock + +#const number +number=com.ardublock.translator.block.NumberBlock +number_long=com.ardublock.translator.block.NumberUnsignedLongBlock +number_double=com.ardublock.translator.block.NumberDoubleBlock +message=com.ardublock.translator.block.MessageBlock +glue_sn=com.ardublock.translator.block.GlueSNBlock +glue_sb=com.ardublock.translator.block.GlueSBBlock +number-single=com.ardublock.translator.block.NumberBlock +number-single-fixed-parallel=com.ardublock.translator.block.NumberBlock + +#Pin List Constants +# +pinListDigital_D0=com.ardublock.translator.block.D0 +pinListDigital_D1=com.ardublock.translator.block.D1 +pinListDigital_D2=com.ardublock.translator.block.D2 +pinListDigital_D3=com.ardublock.translator.block.D3 +pinListDigital_D4=com.ardublock.translator.block.D4 +pinListDigital_D5=com.ardublock.translator.block.D5 +pinListDigital_D6=com.ardublock.translator.block.D6 +pinListDigital_D7=com.ardublock.translator.block.D7 +pinListDigital_D8=com.ardublock.translator.block.D8 +pinListDigital_D9=com.ardublock.translator.block.D9 +pinListDigital_D10=com.ardublock.translator.block.D10 +pinListDigital_D11=com.ardublock.translator.block.D11 +pinListDigital_D12=com.ardublock.translator.block.D12 +pinListDigital_D13=com.ardublock.translator.block.D13 +pinListDigital_D14=com.ardublock.translator.block.D14 +pinListDigital_D15=com.ardublock.translator.block.D15 +pinListDigital_D16=com.ardublock.translator.block.D16 +pinListDigital_D17=com.ardublock.translator.block.D17 +pinListDigital_D18=com.ardublock.translator.block.D18 +pinListDigital_D19=com.ardublock.translator.block.D19 +# +pinListDigital_D20=com.ardublock.translator.block.D20 +pinListDigital_D21=com.ardublock.translator.block.D21 +pinListDigital_D22=com.ardublock.translator.block.D22 +pinListDigital_D23=com.ardublock.translator.block.D23 +pinListDigital_D24=com.ardublock.translator.block.D24 +pinListDigital_D25=com.ardublock.translator.block.D25 +pinListDigital_D26=com.ardublock.translator.block.D26 +pinListDigital_D27=com.ardublock.translator.block.D27 +pinListDigital_D28=com.ardublock.translator.block.D28 +pinListDigital_D29=com.ardublock.translator.block.D29 +pinListDigital_D30=com.ardublock.translator.block.D30 +pinListDigital_D31=com.ardublock.translator.block.D31 +pinListDigital_D32=com.ardublock.translator.block.D32 +pinListDigital_D33=com.ardublock.translator.block.D33 +pinListDigital_D34=com.ardublock.translator.block.D34 +pinListDigital_D35=com.ardublock.translator.block.D35 +pinListDigital_D36=com.ardublock.translator.block.D36 +pinListDigital_D37=com.ardublock.translator.block.D37 +pinListDigital_D38=com.ardublock.translator.block.D38 +pinListDigital_D39=com.ardublock.translator.block.D39 +pinListDigital_D40=com.ardublock.translator.block.D40 +pinListDigital_D41=com.ardublock.translator.block.D41 +pinListDigital_D42=com.ardublock.translator.block.D42 +pinListDigital_D43=com.ardublock.translator.block.D43 +pinListDigital_D44=com.ardublock.translator.block.D44 +pinListDigital_D45=com.ardublock.translator.block.D45 +pinListDigital_D46=com.ardublock.translator.block.D46 +pinListDigital_D47=com.ardublock.translator.block.D47 +pinListDigital_D48=com.ardublock.translator.block.D48 +pinListDigital_D49=com.ardublock.translator.block.D49 +pinListDigital_D50=com.ardublock.translator.block.D50 +pinListDigital_D51=com.ardublock.translator.block.D51 +pinListDigital_D52=com.ardublock.translator.block.D52 +pinListDigital_D53=com.ardublock.translator.block.D53 +# +pinListAnalogWrite_D3=com.ardublock.translator.block.D3 +pinListAnalogWrite_D5=com.ardublock.translator.block.D5 +pinListAnalogWrite_D6=com.ardublock.translator.block.D6 +pinListAnalogWrite_D9=com.ardublock.translator.block.D9 +pinListAnalogWrite_D10=com.ardublock.translator.block.D10 +pinListAnalogWrite_D11=com.ardublock.translator.block.D11 +# +pinListAnalogWrite_D2=com.ardublock.translator.block.D2 +pinListAnalogWrite_D4=com.ardublock.translator.block.D4 +pinListAnalogWrite_D7=com.ardublock.translator.block.D7 +pinListAnalogWrite_D8=com.ardublock.translator.block.D8 +pinListAnalogWrite_D12=com.ardublock.translator.block.D12 +pinListAnalogWrite_D13=com.ardublock.translator.block.D13 +pinListAnalogWrite_D44=com.ardublock.translator.block.D44 +pinListAnalogWrite_D45=com.ardublock.translator.block.D45 +pinListAnalogWrite_D46=com.ardublock.translator.block.D46 + +pinListAnalog_A0=com.ardublock.translator.block.A0 +pinListAnalog_A1=com.ardublock.translator.block.A1 +pinListAnalog_A2=com.ardublock.translator.block.A2 +pinListAnalog_A3=com.ardublock.translator.block.A3 +pinListAnalog_A4=com.ardublock.translator.block.A4 +pinListAnalog_A5=com.ardublock.translator.block.A5 +pinListAnalog_A6=com.ardublock.translator.block.A6 +pinListAnalog_A7=com.ardublock.translator.block.A7 +pinListAnalog_A8=com.ardublock.translator.block.A8 +pinListAnalog_A9=com.ardublock.translator.block.A9 +pinListAnalog_A10=com.ardublock.translator.block.A10 +pinListAnalog_A11=com.ardublock.translator.block.A11 +pinListAnalog_A12=com.ardublock.translator.block.A12 +pinListAnalog_A13=com.ardublock.translator.block.A13 +pinListAnalog_A14=com.ardublock.translator.block.A14 +pinListAnalog_A15=com.ardublock.translator.block.A15 + +#Pin +pin-read-analog=analogInput +pin-read-digital=digitalInput +pin-read-digital-pullup=digitalInputPullup +pin-write-analog=analogOutput +pin-write-digital=digitalOutput +pin-toggle=com.ardublock.translator.block.Toggle +servo=servo +ultrasonic=com.ardublock.translator.block.UltrasonicBlock +LCD_I2C_Sainsmart_20by4=com.ardublock.translator.block.LCD_I2C_Sainsmart_20by4_Block +LCD_I2C_Sainsmart_16by2=com.ardublock.translator.block.LCD_I2C_Sainsmart_16by2_Block +LCD_PLL_Sainsmart_16by2=com.ardublock.translator.block.LCD_PLL_Sainsmart_16by2_Block +LCD_command_clear=com.ardublock.translator.block.LCD_command_clear_Block +LCD_command_home=com.ardublock.translator.block.LCD_command_home_Block +LCD_command_lightOn=com.ardublock.translator.block.LCD_command_lightOn_Block +LCD_command_lightOff=com.ardublock.translator.block.LCD_command_lightOff_Block +LCD_command_cursorOn=com.ardublock.translator.block.LCD_command_cursorOn_Block +LCD_command_cursorOff=com.ardublock.translator.block.LCD_command_cursorOff_Block +LCD_command_blinkOn=com.ardublock.translator.block.LCD_command_blinkOn_Block +LCD_command_blinkOff=com.ardublock.translator.block.LCD_command_blinkOff_Block +tone=tone +tone_time=toneTime +no_tone=noTone +setter_variable_number=com.ardublock.translator.block.SetterVariableNumberBlock +setter_variable_number_unsigned_long=com.ardublock.translator.block.SetterVariableNumberUnsignedLongBlock +setter_variable_number_double=com.ardublock.translator.block.SetterVariableNumberDoubleBlock +variable_number=com.ardublock.translator.block.VariableNumberBlock +variable_number_unsigned_long=com.ardublock.translator.block.VariableNumberUnsignedLongBlock +variable_number_double=com.ardublock.translator.block.VariableNumberDoubleBlock +setter_variable_digital=com.ardublock.translator.block.SetterVariableDigitalBlock +variable_digital=com.ardublock.translator.block.VariableDigitalBlock +variable_string=com.ardublock.translator.block.VariableStringBlock +setter_variable_String=com.ardublock.translator.block.setter_variable_String +variable_String=com.ardublock.translator.block.variable_String +DDRA=com.ardublock.translator.block.DDR_Port +DDRB=com.ardublock.translator.block.DDR_Port +DDRC=com.ardublock.translator.block.DDR_Port +DDRD=com.ardublock.translator.block.DDR_Port +DDRH=com.ardublock.translator.block.DDR_Port +DDRL=com.ardublock.translator.block.DDR_Port +PORTA2=com.ardublock.translator.block.Duinoedu.OutputPortBlock +PORTB2=com.ardublock.translator.block.Duinoedu.OutputPortBlock +PORTC2=com.ardublock.translator.block.Duinoedu.OutputPortBlock +PORTD2=com.ardublock.translator.block.Duinoedu.OutputPortBlock +PORTH2=com.ardublock.translator.block.Duinoedu.OutputPortBlock +PORTL2=com.ardublock.translator.block.Duinoedu.OutputPortBlock +PORT_FIX=com.ardublock.translator.block.PORT_FIX +PORTA=com.ardublock.translator.block.PORT +PORTB=com.ardublock.translator.block.PORT +PORTC=com.ardublock.translator.block.PORT +PORTD=com.ardublock.translator.block.PORT +PORTH=com.ardublock.translator.block.PORT +PORTL=com.ardublock.translator.block.PORT +LEVEL1=com.ardublock.translator.block.Duinoedu.A1 +LEVEL0=com.ardublock.translator.block.Duinoedu.A0 +PINA=com.ardublock.translator.block.PIN_port +PINB=com.ardublock.translator.block.PIN_port +PINC=com.ardublock.translator.block.PIN_port +PIND=com.ardublock.translator.block.PIN_port +PINH=com.ardublock.translator.block.PIN_port +PINL=com.ardublock.translator.block.PIN_port +#Math +addition=com.ardublock.translator.block.AdditionBlock +subtraction=com.ardublock.translator.block.SubtractionBlock +multiplication=com.ardublock.translator.block.MultiplicationBlock +division=com.ardublock.translator.block.DivisionBlock +modulo=com.ardublock.translator.block.ModuloBlock +greater=com.ardublock.translator.block.GreaterBlock +less=com.ardublock.translator.block.LessBlock +equal=com.ardublock.translator.block.EqualBlock +greater_equal=com.ardublock.translator.block.GreaterEqualBlock +less_equal=com.ardublock.translator.block.LessEqualBlock +not_equal=com.ardublock.translator.block.NotEqualBlock +min=com.ardublock.translator.block.MinBlock +max=com.ardublock.translator.block.MaxBlock +abs=com.ardublock.translator.block.AbsBlock +pow=com.ardublock.translator.block.PowBlock +sqrt=com.ardublock.translator.block.SqrtBlock +sin=com.ardublock.translator.block.SinBlock +cos=com.ardublock.translator.block.CosBlock +tan=com.ardublock.translator.block.TanBlock + +string_empty=com.ardublock.translator.block.StringEmptyBlock +string_greater=com.ardublock.translator.block.GreaterBlock +string_less=com.ardublock.translator.block.LessBlock +string_equal=com.ardublock.translator.block.EqualBlock +string_greater_equal=com.ardublock.translator.block.GreaterEqualBlock +string_less_equal=com.ardublock.translator.block.LessEqualBlock +string_not_equal=com.ardublock.translator.block.NotEqualBlock +string_equals=com.ardublock.translator.block.string_equals +string_equalsIgnoreCase=com.ardublock.translator.block.string_equalsIgnoreCase +string_toInt=com.ardublock.translator.block.string_toInt +string_compareTo=com.ardublock.translator.block.string_compareTo + +#Utility + +delay=com.ardublock.translator.block.DelayBlock +random=com.ardublock.translator.block.RandomBlock +map_common=com.ardublock.translator.block.MapCommonBlock +map=com.ardublock.translator.block.MapBlock +toint=com.ardublock.translator.block.Toint +delay_microseconds=com.ardublock.translator.block.DelayMicrosecondsBlock +millis=com.ardublock.translator.block.MillisBlock +watchdog_setup=com.ardublock.translator.block.WatchdogBlock +watchdog_15ms=com.ardublock.translator.block.custom.WatchdogPortBlock +watchdog_30ms=com.ardublock.translator.block.custom.WatchdogPortBlock +watchdog_60ms=com.ardublock.translator.block.custom.WatchdogPortBlock +watchdog_120ms=com.ardublock.translator.block.custom.WatchdogPortBlock +watchdog_250ms=com.ardublock.translator.block.custom.WatchdogPortBlock +watchdog_500ms=com.ardublock.translator.block.custom.WatchdogPortBlock +watchdog_1s=com.ardublock.translator.block.custom.WatchdogPortBlock +watchdog_2s=com.ardublock.translator.block.custom.WatchdogPortBlock +watchdog_4s=com.ardublock.translator.block.custom.WatchdogPortBlock +watchdog_8s=com.ardublock.translator.block.custom.WatchdogPortBlock +watchdog_reset=com.ardublock.translator.block.WatchdogResetBlock +random_range=com.ardublock.translator.block.RandomRangeBlock +servo_default=com.ardublock.translator.block.ServoDefaultBlock +servo_sg90=com.ardublock.translator.block.ServoSg90Block +servo_mg996r=com.ardublock.translator.block.ServoMg996rBlock + +#Communication +serial_read=com.ardublock.translator.block.SerialReadBlock +serial_write=com.ardublock.translator.block.SerialWriteBlock +serial_print=com.ardublock.translator.block.SerialPrintBlock +serial_println=com.ardublock.translator.block.SerialPrintlnBlock +wire_read=com.ardublock.translator.block.WireReadBlock +wire_write=com.ardublock.translator.block.WireWriteBlock +wire_write_one_byte=com.ardublock.translator.block.WireWriteOneByteBlock +wire_isread=com.ardublock.translator.block.WireIsReadBlock +ir_setport=com.ardublock.translator.block.IrSetPortBlock +ir_getcode=com.ardublock.translator.block.IrGetCodeBlock +bluno_println=com.ardublock.translator.block.BlunoOledPrintlnBlock +bluno_println_number=com.ardublock.translator.block.BlunoOledPrintlnNumberBlock +bluno_println_clear=com.ardublock.translator.block.BlunoOledClearBlock +#Storage +eeprom_read=com.ardublock.translator.block.storage.EEPROMReadBlock +eeprom_write=com.ardublock.translator.block.storage.EEPROMWriteBlock +sd_write=com.ardublock.translator.block.storage.SDWriteBlock +sd_write_number=com.ardublock.translator.block.storage.SDWriteNumberBlock +sd_write_number_int=com.ardublock.translator.block.storage.SDWriteNumberIntBlock +sd_return=com.ardublock.translator.block.storage.SDPortBlock +sd_no_return=com.ardublock.translator.block.storage.SDPortBlock + +#TinkerKit +Tinker_I0=com.ardublock.translator.block.tinker.TinkerInputPortBlock +Tinker_I1=com.ardublock.translator.block.tinker.TinkerInputPortBlock +Tinker_I2=com.ardublock.translator.block.tinker.TinkerInputPortBlock +Tinker_I3=com.ardublock.translator.block.tinker.TinkerInputPortBlock +Tinker_I4=com.ardublock.translator.block.tinker.TinkerInputPortBlock +Tinker_I5=com.ardublock.translator.block.tinker.TinkerInputPortBlock + +Tinker_O0=com.ardublock.translator.block.tinker.TinkerOutputPortBlock +Tinker_O1=com.ardublock.translator.block.tinker.TinkerOutputPortBlock +Tinker_O2=com.ardublock.translator.block.tinker.TinkerOutputPortBlock +Tinker_O3=com.ardublock.translator.block.tinker.TinkerOutputPortBlock +Tinker_O4=com.ardublock.translator.block.tinker.TinkerOutputPortBlock +Tinker_O5=com.ardublock.translator.block.tinker.TinkerOutputPortBlock + +Tinker_LED=com.ardublock.translator.block.tinker.TinkerLEDBlock +Tinker_Mosfet=com.ardublock.translator.block.tinker.TinkerMosfetBlock +Tinker_Relay=com.ardublock.translator.block.tinker.TinkerRelayBlock +Tinker_Button=com.ardublock.translator.block.tinker.TinkerButtonBlock +Tinker_Accmeter=com.ardublock.translator.block.tinker.TinkerAccmeterBlock +Tinker_Hall=com.ardublock.translator.block.tinker.TinkerHallBlock +Tinker_LDR=com.ardublock.translator.block.tinker.TinkerLDRBlock +Tinker_LinearPotentiometer=com.ardublock.translator.block.tinker.TinkerLinearPotentiometerBlock +Tinker_RotaryPotentiometer=com.ardublock.translator.block.tinker.TinkerRotaryPotentiometerBlock +Tinker_Thermistor=com.ardublock.translator.block.tinker.TinkerThermistorBlock +Tinker_Touch=com.ardublock.translator.block.tinker.TinkerTouchBlock +Tinker_Tilt=com.ardublock.translator.block.tinker.TinkerTiltBlock +Tinker_LED_pwm=com.ardublock.translator.block.tinker.TinkerLEDPwmBlock +Tinker_Mosfet_pwm=com.ardublock.translator.block.tinker.TinkerMosfetPwmBlock +Tinker_Servo=com.ardublock.translator.block.tinker.TinkerServoBlock + +#Xinchejian +xcj_motor_forward=com.ardublock.translator.block.xinchejian.XinchejianMotorForwardBlock +xcj_motor_backward=com.ardublock.translator.block.xinchejian.XinchejianMotorBackwardBlock +xcj_ms_digital_write=com.ardublock.translator.block.xinchejian.XinchejianDigitalWriteBlock +xcj_ms_digital_read=com.ardublock.translator.block.xinchejian.XinchejianDigitalReadBlock + +#DFRobot +df_digital_viberation_sensor=digitalInput +df_digital_infrared_motion_sensor=digitalInput +df_digital_ir_receiver_module=digitalInput +df_adjustable_infrared_sensor_switch=digitalInput +df_line_tracking_sensor=digitalInput +df_digital_push_button=digitalInput +df_joystick_module_button=digitalInput +df_capacitive_touch_sensor=digitalInput +df_digital_tilt_sensor=digitalInput +df_digital_magnetic_sensor=digitalInput +df_pizeo_disk_vibration_sensor=analogInput +df_analog_ambient_light_sensor=analogInput +df_analog_grayscale_sensor=analogInput +df_flame_sensor=analogInput +df_temperature_sensor=analogInput +df_joystick_module_x=analogInput +df_joystick_module_y=analogInput +df_mma7260_x=analogInput +df_mma7260_y=analogInput +df_mma7260_z=analogInput +df_analog_rotation_sensor_v1=analogInput +df_analog_rotation_sensor_v2=analogInput +df_analog_sound_sensor=analogInput +df_analog_volume_sensor=com.ardublock.translator.block.dfrobot.VolumeSensorBlock +df_analog_gas_sensor=analogInput +df_analog_co_sensor=analogInput +df_analog_voltage_divider=analogInput +df_analog_mma7361_x=analogInput +df_analog_mma7361_y=analogInput +df_analog_mma7361_z=analogInput +df_analog_gp2y0a21=com.ardublock.translator.block.dfrobot.SharpGP2Y0A21 +df_analog_moisture=analogInput +df_lcd_keypad=com.ardublock.translator.block.dfrobot.lcdkeypad + +df_servo=servo +df_360_degree_rotation_motor=servo +df_dht11_temperature=com.ardublock.translator.block.dfrobot.Dht11TemperatureBlock +df_dht11_humidity=com.ardublock.translator.block.dfrobot.Dht11HumidityBlock +df_romeo_motors=com.ardublock.translator.block.dfrobot.RomeoMotorsBlock +df_romeo_motor=com.ardublock.translator.block.dfrobot.RomeoMotorBlock +df_romeo_motor_stop=com.ardublock.translator.block.dfrobot.RomeoMotorStopBlock +df_led=digitalOutput +df_led_pwm=analogOutput +df_piranha_led=digitalOutput +df_piranha_led_pwm=analogOutput +df_relay=digitalOutput +df_buzzer=digitalOutput +df_buzzer_tone=tone +df_buzzer_tone_delay=toneTime + +#SeeedStudio +seeed_joystick=analogInput +seeed_joystick_button=com.ardublock.translator.block.seeedstudio.GroveJoyStickButtonBlock +seeed_o2_sensor=analogInput +seeed_uv_sensor=analogInput +seeed_single_gyro=analogInput +seeed_mq9_sensor=analogInput +seeed_mp3_sensor=analogInput +seeed_vib_sensor=analogInput +seeed_loud_sensor=analogInput +seeed_diff_amp=analogInput +seeed_ir_temp_sensor=analogInput +seeed_ir_proximity_sensor=analogInput +seeed_electricity_sensor=analogInput +seeed_angle_sensor=analogInput +seeed_sound_sensor=analogInput +seeed_moisture_sensor=analogInput +seeed_temp_sensor=analogInput +seeed_light_sensor=analogInput + +seeed_valtage_divider=digitalInput +seeed_flame_sensor=digitalInput +seeed_button=digitalInput +seeed_switch=digitalInput +seeed_ir_refl_sensor=digitalInput +seeed_heart_rate_sensor=digitalInput +seeed_chest_heart_sensor=digitalInput +seeed_air_quality_sensor=digitalInput +seeed_line_finder=digitalInput +seeed_pir_motion_sensor=digitalInput +seeed_tilt_switch=digitalInput +seeed_push_button=digitalInput +seeed_water_sensor=digitalInput +seeed_touch_sensor=digitalInput +seeed_mag_switch=digitalInput +seeed_ir_dist_int=digitalInput + +seeed_circle_led=digitalOutput +seeed_2coil_relay=digitalOutput +seeed_dry_relay=digitalOutput +seeed_solid_relay=digitalOutput +seeed_circle_led=digitalOutput +seeed_led_strip=digitalOutput +seeed_led=digitalOutput +seeed_var_led=inversedDigitalOutput +seeed_vib=digitalOutput +seeed_relay=digitalOutput + + +#DuinoEDU +DuinoEDU_infrared=com.ardublock.translator.block.Duinoedu.Infrared +DuinoEDU_humi=com.ardublock.translator.block.Duinoedu.Humi +DuinoEDU_temp=com.ardublock.translator.block.Duinoedu.Temp +DuinoEDU_humiPro=com.ardublock.translator.block.Duinoedu.HumiPro +DuinoEDU_tempPro=com.ardublock.translator.block.Duinoedu.TempPro +DuinoEDU_Led_Bar=com.ardublock.translator.block.Duinoedu.Led_Bar +DuinoEDU_LCD_I2C_RGB=com.ardublock.translator.block.Duinoedu.LCD_I2C_RGB +DuinoEDU_LCD_I2C_RGB2=com.ardublock.translator.block.Duinoedu.LCD_I2C_RGB2 +DuinoEDU_LCD_I2C_Backlight=com.ardublock.translator.block.Duinoedu.LCD_I2C_Backlight +DuinoEDU_LCD_I2C_RGB_Clear=com.ardublock.translator.block.Duinoedu.LCD_I2C_RGB_Clear +keyboard=com.ardublock.translator.block.KeyboardBlock +keyboard_post=com.ardublock.translator.block.Keyboard_PostBlock +keyboard_compare=com.ardublock.translator.block.Keyboard_Compare +DuinoEDU_notequal=com.ardublock.translator.block.Duinoedu.OutputPortBlock +DuinoEDU_equal=com.ardublock.translator.block.Duinoedu.OutputPortBlock +DuinoEDU_less=com.ardublock.translator.block.Duinoedu.OutputPortBlock +DuinoEDU_greater=com.ardublock.translator.block.Duinoedu.OutputPortBlock +DuinoEDU_less_equal=com.ardublock.translator.block.Duinoedu.OutputPortBlock +DuinoEDU_greater_equal=com.ardublock.translator.block.Duinoedu.OutputPortBlock +DuinoEDU_Mouse_Init=com.ardublock.translator.block.Duinoedu.Mouse_Init +DuinoEDU_Mouse_Xmove=com.ardublock.translator.block.Duinoedu.Mouse_Xmove +DuinoEDU_Mouse_Ymove=com.ardublock.translator.block.Duinoedu.Mouse_Ymove +DuinoEDU_Keypad_12_Button=com.ardublock.translator.block.Duinoedu.Keypad_12_Button +DuinoEDU_Keypad_Post=com.ardublock.translator.block.Duinoedu.Keypad_Post +DuinoEDU_Keypad_Pwd=com.ardublock.translator.block.Duinoedu.Keypad_Pwd +DuinoEDU_Digital_Tube=com.ardublock.translator.block.Duinoedu.Digital_Tube +DuinoEDU_Digital_Tube_Ecrire=com.ardublock.translator.block.Duinoedu.Digital_Tube_Ecrire +DuinoEDU_Digital_Clear=com.ardublock.translator.block.Duinoedu.Digital_Clear +DuinoEDU_Display_Digital_Tube=com.ardublock.translator.block.Duinoedu.Digital_Tube_Display +DuinoEDU_Display_Digital_Tube2=com.ardublock.translator.block.Duinoedu.Digital_Tube_Display2 +DuinoEDU_Oled_I2C=com.ardublock.translator.block.Duinoedu.Oled_I2C +DuinoEDU_Oled_Clear=com.ardublock.translator.block.Duinoedu.Oled_Clear +DuinoEDU_Driver_I2C_Forward=com.ardublock.translator.block.Duinoedu.Driver_I2C_Forward +DuinoEDU_Driver_I2C_Stop=com.ardublock.translator.block.Duinoedu.Driver_I2C_Stop +DuinoEDU_Driver_I2C_Back=com.ardublock.translator.block.Duinoedu.Driver_I2C_Back +DuinoEDU_Driver_I2C_Pivoter=com.ardublock.translator.block.Duinoedu.Driver_I2C_Pivoter +DuinoEDU_Driver_I2C_Speed_A_Motor=com.ardublock.translator.block.Duinoedu.Driver_I2C_Speed_A_Motor +DuinoEDU_Driver_I2C_Speed_B_Motor=com.ardublock.translator.block.Duinoedu.Driver_I2C_Speed_B_Motor +DuinoEDU_shildbot_Forward=com.ardublock.translator.block.Duinoedu.Shildbot_Forward +DuinoEDU_shildbot_Back=com.ardublock.translator.block.Duinoedu.Shildbot_Back +DuinoEDU_shildbot_Pivoter=com.ardublock.translator.block.Duinoedu.Shildbot_Pivoter +DuinoEDU_shildbot_Stop=com.ardublock.translator.block.Duinoedu.Shildbot_Stop +DuinoEDU_shildbot_Speed_Motor=com.ardublock.translator.block.Duinoedu.Shildbot_Speed_Motor +DuinoEDU_shildbot_Read=com.ardublock.translator.block.Duinoedu.Shildbot_Read +DuinoEDU_S1=com.ardublock.translator.block.Duinoedu.OutputPortBlock +DuinoEDU_S2=com.ardublock.translator.block.Duinoedu.OutputPortBlock +DuinoEDU_S3=com.ardublock.translator.block.Duinoedu.OutputPortBlock +DuinoEDU_S4=com.ardublock.translator.block.Duinoedu.OutputPortBlock +DuinoEDU_S5=com.ardublock.translator.block.Duinoedu.OutputPortBlock +DuinoEDU_right=com.ardublock.translator.block.Duinoedu.Driver_Right +DuinoEDU_straight=com.ardublock.translator.block.Duinoedu.Driver_Straight +DuinoEDU_left=com.ardublock.translator.block.Duinoedu.Driver_Left +DuinoEDU_Aix_Acc_mesurerX=com.ardublock.translator.block.Duinoedu.Acc_mesurerX +DuinoEDU_Aix_Acc_mesurerY=com.ardublock.translator.block.Duinoedu.Acc_mesurerY +DuinoEDU_Aix_Acc_mesurerZ=com.ardublock.translator.block.Duinoedu.Acc_mesurerZ +DuinoEDU_Aix_Acc_mesurerXYZ=com.ardublock.translator.block.Duinoedu.Acc_mesurerXYZ +DuinoEDU_Aix_Acc_mesurerVariation=com.ardublock.translator.block.Duinoedu.Acc_mesurerVariation +DuinoEDU_Ultrasonic=com.ardublock.translator.block.Duinoedu.Ultrasonic +DuinoEDU_Partie_Emetteur=com.ardublock.translator.block.Duinoedu.Partie_Emetteur +DuinoEDU_Partie_Recepteur=com.ardublock.translator.block.Duinoedu.Partie_Recepteur +DuinoEDU_On_digit1=com.ardublock.translator.block.Duinoedu.OutputPortBlock +DuinoEDU_On_digit2=com.ardublock.translator.block.Duinoedu.OutputPortBlock +DuinoEDU_On_digit3=com.ardublock.translator.block.Duinoedu.OutputPortBlock +DuinoEDU_On_digit4=com.ardublock.translator.block.Duinoedu.OutputPortBlock +DuinoEDU_setSerialInfosOn=com.ardublock.translator.block.Duinoedu.SetSerialInfosOn +DuinoEDU_setSerialInfosOff=com.ardublock.translator.block.Duinoedu.SetSerialInfosOff +DuinoEDU_Rfid_Write=com.ardublock.translator.block.Duinoedu.Rfid_Write +DuinoEDU_Rfid_Test=com.ardublock.translator.block.Duinoedu.Rfid_Test +DuinoEDU_Rfid_Read=com.ardublock.translator.block.Duinoedu.Rfid_Read +DuinoEDU_Rfid_Clear=com.ardublock.translator.block.Duinoedu.Rfid_Clear +DuinoEDU_Rfid_Ram_List=com.ardublock.translator.block.Duinoedu.Rfid_Ram_List +DuinoEDU_neopixel_init=com.ardublock.translator.block.Duinoedu.Neopixel_init +DuinoEDU_neopixel_pixel_colorGRB=com.ardublock.translator.block.Duinoedu.Neopixel_pixel_colorGRB +DuinoEDU_neopixel_pixel_colorRGB=com.ardublock.translator.block.Duinoedu.Neopixel_pixel_colorRGB +DuinoEDU_neopixel_show=com.ardublock.translator.block.Duinoedu.Neopixel_show +DuinoEDU_neopixel_Brightness=com.ardublock.translator.block.Duinoedu.Neopixel_Brightness +DuinoEDU_neopixel_Clear=com.ardublock.translator.block.Duinoedu.Neopixel_Clear +DuinoEDU_stepper_step=com.ardublock.translator.block.Duinoedu.Stepper_step +DuinoEDU_stepper_setSpeed=com.ardublock.translator.block.Duinoedu.Stepper_SetSpeed +DuinoEDU_matrice_write=com.ardublock.translator.block.Duinoedu.Matrice_write +DuinoEDU_matrice_clear=com.ardublock.translator.block.Duinoedu.Matrice_clear +DuinoEDU_matrice_Brightness=com.ardublock.translator.block.Duinoedu.Matrice_Brightness +DuinoEDU_Servo_Plus=com.ardublock.translator.block.Duinoedu.Servo_Plus +DuinoEDU_Led=digitalOutput +DuinoEDU_SerialOscillo=com.ardublock.translator.block.Duinoedu.SerialOscillo +DuinoEDU_SerialOscillo_Init=com.ardublock.translator.block.Duinoedu.SerialOscillo_Init +DuinoEDU_Volts=com.ardublock.translator.block.Duinoedu.Volts +DuinoEDU_VALEURS_BRUTES=com.ardublock.translator.block.Duinoedu.VALEURS_BRUTES +DuinoEDU_CM=com.ardublock.translator.block.Duinoedu.CM +DuinoEDU_DEGRES=com.ardublock.translator.block.Duinoedu.DEGRES +DuinoEDU_Nunchuck_BoutonC=com.ardublock.translator.block.Duinoedu.Nunchuck_BoutonC +DuinoEDU_Nunchuck_BoutonZ=com.ardublock.translator.block.Duinoedu.Nunchuck_BoutonZ +DuinoEDU_Nunchuck_JoystickX=com.ardublock.translator.block.Duinoedu.Nunchuck_JoystickX +DuinoEDU_Nunchuck_JoystickY=com.ardublock.translator.block.Duinoedu.Nunchuck_JoystickY +DuinoEDU_Nunchuck_AccelerationX=com.ardublock.translator.block.Duinoedu.Nunchuck_AccelerationX +DuinoEDU_Nunchuck_AccelerationY=com.ardublock.translator.block.Duinoedu.Nunchuck_AccelerationY +DuinoEDU_Nunchuck_AccelerationZ=com.ardublock.translator.block.Duinoedu.Nunchuck_AccelerationZ +DuinoEDU_Barometer_Temperature=com.ardublock.translator.block.Duinoedu.Barometer_Temperature +DuinoEDU_Barometer_Pression=com.ardublock.translator.block.Duinoedu.Barometer_Pression +DuinoEDU_Barometer_Altitude=com.ardublock.translator.block.Duinoedu.Barometer_Altitude +DuinoEDU_Guino_Read=com.ardublock.translator.block.Duinoedu.Guino_Read +DuinoEDU_Guino_Init=com.ardublock.translator.block.Duinoedu.Guino_Init +DuinoEDU_Guino_Title=com.ardublock.translator.block.Duinoedu.Guino_Title +DuinoEDU_Guino_Slider=com.ardublock.translator.block.Duinoedu.Guino_Slider +DuinoEDU_Guino_column=com.ardublock.translator.block.Duinoedu.Guino_Column +DuinoEDU_Guino_switch=com.ardublock.translator.block.Duinoedu.Guino_Switch +DuinoEDU_Guino_pause=com.ardublock.translator.block.Duinoedu.Guino_Pause +DuinoEDU_MP3_Player=com.ardublock.translator.block.Duinoedu.MP3_Player +DuinoEDU_MP3_Pause=com.ardublock.translator.block.Duinoedu.MP3_Pause +DuinoEDU_D2=com.ardublock.translator.block.Duinoedu.D2 +DuinoEDU_D3=com.ardublock.translator.block.Duinoedu.D3 +DuinoEDU_D4=com.ardublock.translator.block.Duinoedu.D4 +DuinoEDU_D5=com.ardublock.translator.block.Duinoedu.D5 +DuinoEDU_D6=com.ardublock.translator.block.Duinoedu.D6 +DuinoEDU_D7=com.ardublock.translator.block.Duinoedu.D7 +DuinoEDU_D8=com.ardublock.translator.block.Duinoedu.D8 +DuinoEDU_D9=com.ardublock.translator.block.Duinoedu.D9 +DuinoEDU_D10=com.ardublock.translator.block.Duinoedu.D10 +DuinoEDU_D11=com.ardublock.translator.block.Duinoedu.D11 +DuinoEDU_D12=com.ardublock.translator.block.Duinoedu.D12 +DuinoEDU_D13=com.ardublock.translator.block.Duinoedu.D13 +DuinoEDU_D14=com.ardublock.translator.block.Duinoedu.D14 +DuinoEDU_D15=com.ardublock.translator.block.Duinoedu.D15 +DuinoEDU_D16=com.ardublock.translator.block.Duinoedu.D16 +DuinoEDU_D17=com.ardublock.translator.block.Duinoedu.D17 +DuinoEDU_D18=com.ardublock.translator.block.Duinoedu.D18 +DuinoEDU_D19=com.ardublock.translator.block.Duinoedu.D19 +DuinoEDU_D20=com.ardublock.translator.block.Duinoedu.D20 +DuinoEDU_D21=com.ardublock.translator.block.Duinoedu.D21 +DuinoEDU_A0=com.ardublock.translator.block.Duinoedu.A0 +DuinoEDU_A1=com.ardublock.translator.block.Duinoedu.A1 +DuinoEDU_A2=com.ardublock.translator.block.Duinoedu.A2 +DuinoEDU_A3=com.ardublock.translator.block.Duinoedu.A3 +DuinoEDU_A4=com.ardublock.translator.block.Duinoedu.A4 +DuinoEDU_A5=com.ardublock.translator.block.Duinoedu.A5 +DuinoEDU_A6=com.ardublock.translator.block.Duinoedu.A6 +DuinoEDU_A7=com.ardublock.translator.block.Duinoedu.A7 +DuinoEDU_A8=com.ardublock.translator.block.Duinoedu.A8 +DuinoEDU_A9=com.ardublock.translator.block.Duinoedu.A9 +DuinoEDU_A10=com.ardublock.translator.block.Duinoedu.A10 +DuinoEDU_A11=com.ardublock.translator.block.Duinoedu.A11 +DuinoEDU_A12=com.ardublock.translator.block.Duinoedu.A12 +DuinoEDU_A13=com.ardublock.translator.block.Duinoedu.A13 +DuinoEDU_A14=com.ardublock.translator.block.Duinoedu.A14 +DuinoEDU_A15=com.ardublock.translator.block.Duinoedu.A15 +DuinoEDU_IRREMOTE_MEMORISER_TOUCHE=com.ardublock.translator.block.Duinoedu.IRREMOTE_MEMORISER_TOUCHE +DuinoEDU_IRREMOTE_NE_PAS_MEMORISER=com.ardublock.translator.block.Duinoedu.IRREMOTE_NE_PAS_MEMORISER +DuinoEDU_IRREMOTE_MEMORISER_200_MS=com.ardublock.translator.block.Duinoedu.IRREMOTE_MEMORISER_200_MS +DuinoEDU_IRREMOTE_MEMORISER_2000_MS=com.ardublock.translator.block.Duinoedu.IRREMOTE_MEMORISER_2000_MS +DuinoEDU_infrared_compare=com.ardublock.translator.block.Duinoedu.Infrared_compare +DuinoEDU_hand_positionX=com.ardublock.translator.block.Duinoedu.Hand_positionX +DuinoEDU_hand_positionY=com.ardublock.translator.block.Duinoedu.Hand_positionY +DuinoEDU_hand_positionZ=com.ardublock.translator.block.Duinoedu.Hand_positionZ +DuinoEDU_handRotX=com.ardublock.translator.block.Duinoedu.handRotX +DuinoEDU_handRotY=com.ardublock.translator.block.Duinoedu.handRotY +DuinoEDU_handRotZ=com.ardublock.translator.block.Duinoedu.handRotZ +DuinoEDU_angle_pouce=com.ardublock.translator.block.Duinoedu.angle_pouce +DuinoEDU_angle_index=com.ardublock.translator.block.Duinoedu.angle_index +DuinoEDU_angle_majeur=com.ardublock.translator.block.Duinoedu.angle_majeur +DuinoEDU_angle_annulaire=com.ardublock.translator.block.Duinoedu.angle_annulaire +DuinoEDU_angle_auriculaire=com.ardublock.translator.block.Duinoedu.angle_auriculaire +DuinoEDU_RTC_Mem=com.ardublock.translator.block.Duinoedu.RTC_Mem +DuinoEDU_RTC_Day=com.ardublock.translator.block.Duinoedu.RTC_Day +DuinoEDU_RTC_Month=com.ardublock.translator.block.Duinoedu.RTC_Month +DuinoEDU_RTC_Year=com.ardublock.translator.block.Duinoedu.RTC_Year +DuinoEDU_RTC_Hour=com.ardublock.translator.block.Duinoedu.RTC_Hour +DuinoEDU_RTC_Minute=com.ardublock.translator.block.Duinoedu.RTC_Minute +DuinoEDU_RTC_Second=com.ardublock.translator.block.Duinoedu.RTC_Second +DuinoEDU_code_head=com.ardublock.translator.block.Duinoedu.CodeHeadBlock +DuinoEDU_code_setup=com.ardublock.translator.block.Duinoedu.CodeSetupBlock +DuinoEDU_code_loop=com.ardublock.translator.block.Duinoedu.CodeLoopBlock +DuinoEDU_Motor_shield_Forward=com.ardublock.translator.block.Duinoedu.Motor_shield_Forward +DuinoEDU_Motor_shield_Back=com.ardublock.translator.block.Duinoedu.Motor_shield_Back +DuinoEDU_Motor_shield_Pivoter=com.ardublock.translator.block.Duinoedu.Motor_shield_Pivoter +DuinoEDU_Motor_shield_Stop=com.ardublock.translator.block.Duinoedu.Motor_shield_Stop +DuinoEDU_Motor_shield_Speed_Motor=com.ardublock.translator.block.Duinoedu.Motor_shield_Speed_Motor +DuinoEDU_Motor_shield_Drift_Motor=com.ardublock.translator.block.Duinoedu.Motor_shield_Drift_Motor +DuinoEDU_Gps_Init=com.ardublock.translator.block.Duinoedu.Gps_Init +DuinoEDU_Uno23=com.ardublock.translator.block.Duinoedu.Uno23 +DuinoEDU_Uno45=com.ardublock.translator.block.Duinoedu.Uno45 +DuinoEDU_Uno67=com.ardublock.translator.block.Duinoedu.Uno67 +DuinoEDU_Uno89=com.ardublock.translator.block.Duinoedu.Uno89 +DuinoEDU_Mega1=com.ardublock.translator.block.Duinoedu.Mega1 +DuinoEDU_Mega2=com.ardublock.translator.block.Duinoedu.Mega2 +DuinoEDU_Mega3=com.ardublock.translator.block.Duinoedu.Mega3 +DuinoEDU_Mega4=com.ardublock.translator.block.Duinoedu.Mega4 +DuinoEDU_Gps_LatitudeNbr=com.ardublock.translator.block.Duinoedu.Gps_LatitudeNbr +DuinoEDU_Gps_LongitudeNbr=com.ardublock.translator.block.Duinoedu.Gps_LongitudeNbr +DuinoEDU_Gps_LatitudeDirection=com.ardublock.translator.block.Duinoedu.Gps_LatitudeDirection +DuinoEDU_Gps_LongitudeDirection=com.ardublock.translator.block.Duinoedu.Gps_LongitudeDirection +DuinoEDU_Gps_LatitudeGoogleMaps=com.ardublock.translator.block.Duinoedu.Gps_LatitudeGoogleMaps +DuinoEDU_Gps_LongitudeGoogleMaps=com.ardublock.translator.block.Duinoedu.Gps_LongitudeGoogleMaps +DuinoEDU_Gps_Day=com.ardublock.translator.block.Duinoedu.Gps_Day +DuinoEDU_Gps_Month=com.ardublock.translator.block.Duinoedu.Gps_Month +DuinoEDU_Gps_Year=com.ardublock.translator.block.Duinoedu.Gps_Year +DuinoEDU_Gps_Hour=com.ardublock.translator.block.Duinoedu.Gps_Hour +DuinoEDU_Gps_Minute=com.ardublock.translator.block.Duinoedu.Gps_Minute +DuinoEDU_Gps_Seconde=com.ardublock.translator.block.Duinoedu.Gps_Seconde +DuinoEDU_Gps_Milliseconde=com.ardublock.translator.block.Duinoedu.Gps_Milliseconde +DuinoEDU_Gps_Speed=com.ardublock.translator.block.Duinoedu.Gps_Speed +DuinoEDU_Gps_Angle=com.ardublock.translator.block.Duinoedu.Gps_Angle +DuinoEDU_Gps_altitude=com.ardublock.translator.block.Duinoedu.Gps_altitude +DuinoEDU_Gps_Synchronise=com.ardublock.translator.block.Duinoedu.Gps_Synchronise +DuinoEDU_Gps_ActiverInterruption=com.ardublock.translator.block.Duinoedu.Gps_ActiverInterruption +DuinoEDU_Gps_DesactiverInterruption=com.ardublock.translator.block.Duinoedu.Gps_DesactiverInterruption +DuinoEDU_Information1=com.ardublock.translator.block.Duinoedu.OutputPortBlock +DuinoEDU_Information2=com.ardublock.translator.block.Duinoedu.OutputPortBlock +DuinoEDU_Information3=com.ardublock.translator.block.Duinoedu.OutputPortBlock +EDUGPS_1HZ=com.ardublock.translator.block.Duinoedu.OutputPortBlock +EDUGPS_5HZ=com.ardublock.translator.block.Duinoedu.OutputPortBlock +EDUGPS_10HZ=com.ardublock.translator.block.Duinoedu.OutputPortBlock +EDUGPS_100MLHZ=com.ardublock.translator.block.Duinoedu.OutputPortBlock +EDUGPS_200MLHZ=com.ardublock.translator.block.Duinoedu.OutputPortBlock + +#Esplora +Esplora_Led=com.ardublock.translator.block.Esplora.Led +Esplora_AccelerationX=com.ardublock.translator.block.Esplora.AccX +Esplora_AccelerationY=com.ardublock.translator.block.Esplora.AccY +Esplora_AccelerationZ=com.ardublock.translator.block.Esplora.AccZ +Esplora_JoystickX=com.ardublock.translator.block.Esplora.JoystickX +Esplora_JoystickY=com.ardublock.translator.block.Esplora.JoystickY +Esplora_JoystickSwitch=com.ardublock.translator.block.Esplora.JoystickSwitch +Esplora_Slider=com.ardublock.translator.block.Esplora.Slider +Esplora_Microphone=com.ardublock.translator.block.Esplora.Microphone +Esplora_LightSensor=com.ardublock.translator.block.Esplora.LightSensor +Esplora_tone=com.ardublock.translator.block.Esplora.tone +Esplora_notone=com.ardublock.translator.block.Esplora.notone +Esplora_Temp=com.ardublock.translator.block.Esplora.Temperature +Esplora_DEGREES_C=com.ardublock.translator.block.Esplora.DEGREES_C +Esplora_DEGREES_F=com.ardublock.translator.block.Esplora.DEGREES_F +Esplora_DOWN=com.ardublock.translator.block.Esplora.Down +Esplora_LEFT=com.ardublock.translator.block.Esplora.Left +Esplora_UP=com.ardublock.translator.block.Esplora.Up +Esplora_RIGHT=com.ardublock.translator.block.Esplora.Right +Esplora_JoystickSwitch2=com.ardublock.translator.block.Esplora.JoystickSwitch2 +Esplora_Switch=com.ardublock.translator.block.Esplora.Switch +Esplora_LEFT2=com.ardublock.translator.block.Esplora.Left +Esplora_RIGHT2=com.ardublock.translator.block.Esplora.Right +Esplora_MIDDLE=com.ardublock.translator.block.Esplora.Middle +Esplora_Mouse_Click=com.ardublock.translator.block.Esplora.Mouse_Click +Esplora_Mouse_Press=com.ardublock.translator.block.Esplora.Mouse_Press +Esplora_Mouse_Release=com.ardublock.translator.block.Esplora.Mouse_Release +Esplora_Mouse_isPressed=com.ardublock.translator.block.Esplora.Mouse_isPressed +Esplora_Mouse_move=com.ardublock.translator.block.Esplora.Mouse_move +Esplora_Keyboard_print=com.ardublock.translator.block.Esplora.Keyboard_print +Esplora_Keyboard_Click=com.ardublock.translator.block.Esplora.Keyboard_Click +Esplora_Keyboard_Press=com.ardublock.translator.block.Esplora.Keyboard_Press +Esplora_Keyboard_Release=com.ardublock.translator.block.Esplora.Keyboard_Release +Esplora_Keyboard_ReleaseAll=com.ardublock.translator.block.Esplora.Keyboard_ReleaseAll +Esplora_TFT_Height=com.ardublock.translator.block.Esplora.TFT_Height +Esplora_TFT_Width=com.ardublock.translator.block.Esplora.TFT_Width +Esplora_TFT_Background=com.ardublock.translator.block.Esplora.TFT_Background +Esplora_TFT_Point=com.ardublock.translator.block.Esplora.TFT_Point +Esplora_TFT_Line=com.ardublock.translator.block.Esplora.TFT_Line +Esplora_TFT_Circle=com.ardublock.translator.block.Esplora.TFT_Circle +Esplora_TFT_Rect=com.ardublock.translator.block.Esplora.TFT_Rect +Esplora_TFT_Text=com.ardublock.translator.block.Esplora.TFT_Text +setter_variable_PImage=com.ardublock.translator.block.Esplora.setter_variable_PImage +variable_PImage=com.ardublock.translator.block.Esplora.variable_PImage +Esplora_Load_Image=com.ardublock.translator.block.Esplora.TFT_Load_Image +Esplora_Image_isValid=com.ardublock.translator.block.Esplora.Image_isValid +Esplora_Image_Width=com.ardublock.translator.block.Esplora.Image_Width +Esplora_Image_Height=com.ardublock.translator.block.Esplora.Image_Height +Esplora_TFT_Display_Image=com.ardublock.translator.block.Esplora.TFT_Display_Image +Espora_SD_Write=com.ardublock.translator.block.Esplora.SD_Write +Espora_SD_Begin=com.ardublock.translator.block.Esplora.SD_Begin +Esplora_Setter_Variable_File=com.ardublock.translator.block.Esplora.Setter_Variable_File +Esplora_Variable_File=com.ardublock.translator.block.Esplora.Variable_File +Esplora_Variable_File_Bool=com.ardublock.translator.block.Esplora.Variable_File +Esplora_File_Available=com.ardublock.translator.block.Esplora.File_Available +Esplora_File_Read=com.ardublock.translator.block.Esplora.File_Read +Esplora_File_Close=com.ardublock.translator.block.Esplora.File_Close +ESPLORA_OUTA=com.ardublock.translator.block.Esplora.OUTA +ESPLORA_OUTB=com.ardublock.translator.block.Esplora.OUTB +ESPLORA_INA=com.ardublock.translator.block.Esplora.INA +ESPLORA_INB=com.ardublock.translator.block.Esplora.INB + +Serialplus_send_variable_number=com.ardublock.translator.block.Duinoedu.Serialplus_send +Serialplus_send_variable_digital=com.ardublock.translator.block.Duinoedu.Serialplus_send +Serialplus_receive_number=com.ardublock.translator.block.Duinoedu.Serialplus_receive +Serialplus_receive_digital=com.ardublock.translator.block.Duinoedu.Serialplus_receive + +#Panda +panda_i0=com.ardublock.translator.block.panda.PandaInputPortBlock +panda_i1=com.ardublock.translator.block.panda.PandaInputPortBlock +panda_i2=com.ardublock.translator.block.panda.PandaInputPortBlock +panda_i3=com.ardublock.translator.block.panda.PandaInputPortBlock +panda_i4=com.ardublock.translator.block.panda.PandaInputPortBlock +panda_i5=com.ardublock.translator.block.panda.PandaInputPortBlock + +panda_o0=com.ardublock.translator.block.panda.PandaOutputPortBlock +panda_o1=com.ardublock.translator.block.panda.PandaOutputPortBlock +panda_o2=com.ardublock.translator.block.panda.PandaOutputPortBlock +panda_o3=com.ardublock.translator.block.panda.PandaOutputPortBlock +panda_o4=com.ardublock.translator.block.panda.PandaOutputPortBlock +panda_o5=com.ardublock.translator.block.panda.PandaOutputPortBlock + +# BLE Shield +bleshield=com.ardublock.translator.block.network.BLEShield +bleshield_available=com.ardublock.translator.block.network.BLEShieldAvailable +bleshield_read_poly=com.ardublock.translator.block.network.BLEShieldRead +bleshield_compare=com.ardublock.translator.block.network.bleshield_compare +# Adafruit Motorshield +ada_dc_motor_fwd=com.ardublock.translator.block.adafruit.dcmotor_fwd +ada_dc_motor_bwd=com.ardublock.translator.block.adafruit.dcmotor_bwd +ada_dc_motor_release=com.ardublock.translator.block.adafruit.dcmotor_release +ada_neopixel_NEO_GRB=com.ardublock.translator.block.adafruit.NEO_GRB +ada_neopixel_NEO_RGB=com.ardublock.translator.block.adafruit.NEO_RGB +ada_neopixel_NEO_KHZ400=com.ardublock.translator.block.adafruit.KHZ400 +ada_neopixel_NEO_KHZ800=com.ardublock.translator.block.adafruit.KHZ800 +ada_neopixel_init=com.ardublock.translator.block.adafruit.ada_neopixel_init +ada_neopixel_pixel_colorGRB=com.ardublock.translator.block.adafruit.Neopixel_pixel_colorGRB +ada_neopixel_pixel_colorRGB=com.ardublock.translator.block.adafruit.Neopixel_pixel_colorRGB +ada_neopixel_show=com.ardublock.translator.block.adafruit.Neopixel_show +ada_neopixel_Brightness=com.ardublock.translator.block.adafruit.Neopixel_Brightness + +# Makeblock +me_ultrasonic_sensor=com.ardublock.translator.block.makeblock.MeUltrasonicSensor +me_linefinder=com.ardublock.translator.block.makeblock.MeLineFinder +me_motordriver=com.ardublock.translator.block.makeblock.MeMotorDriver +me_servodriver=com.ardublock.translator.block.makeblock.MeServoDriver +me_infraredreceiver=com.ardublock.translator.block.makeblock.MeInfraredReceiver +me_bluetooth_read=com.ardublock.translator.block.makeblock.MeBluetoothRead +me_bluetooth_write=com.ardublock.translator.block.makeblock.MeBluetoothWrite +me_basemotordriver=com.ardublock.translator.block.makeblock.MeBaseMotorDriver +me_bluetooth_commands=com.ardublock.translator.block.makeblock.MeBluetoothCommands +me_bluetooth_command=com.ardublock.translator.block.makeblock.MeBluetoothCommand +me_limitswitch=com.ardublock.translator.block.makeblock.MeLimitSwitch +me_shutter=com.ardublock.translator.block.makeblock.MeShutter +me_stepper_motor=com.ardublock.translator.block.makeblock.MeStepperMotor +me_port_1=com.ardublock.translator.block.makeblock.MePort +me_port_2=com.ardublock.translator.block.makeblock.MePort +me_port_3=com.ardublock.translator.block.makeblock.MePort +me_port_4=com.ardublock.translator.block.makeblock.MePort +me_port_5=com.ardublock.translator.block.makeblock.MePort +me_port_6=com.ardublock.translator.block.makeblock.MePort +me_port_7=com.ardublock.translator.block.makeblock.MePort +me_port_8=com.ardublock.translator.block.makeblock.MePort +me_motor_1=com.ardublock.translator.block.makeblock.MePort +me_motor_2=com.ardublock.translator.block.makeblock.MePort +me_shutter_1=com.ardublock.translator.block.makeblock.MeShutterAction +me_shutter_2=com.ardublock.translator.block.makeblock.MeShutterAction +me_shutter_3=com.ardublock.translator.block.makeblock.MeShutterAction +me_shutter_4=com.ardublock.translator.block.makeblock.MeShutterAction + +#Insect Bot +insectbot_get_distance=com.ardublock.translator.block.insectbot.GetDistanceBlock +insectbot_is_indanger=com.ardublock.translator.block.insectbot.InDangerBlock +insectbot_go_forward=com.ardublock.translator.block.insectbot.GoForwardBlock +insectbot_go_backright=com.ardublock.translator.block.insectbot.GoBackRightBlock +insectbot_turn_left=com.ardublock.translator.block.insectbot.TurnLeftBlock +insectbot_blink_led=com.ardublock.translator.block.insectbot.BlinkLedBlock + +#Creator_4Drawing +iDrawing_set_para=com.ardublock.translator.block.drawing.SetParameters +iDrawing_run=com.ardublock.translator.block.drawing.Run +iDrawing_rule_start=com.ardublock.translator.block.drawing.AddRule +iDrawing_rule_stop=com.ardublock.translator.block.drawing.AddRule +iDrawing_rule_sleep=com.ardublock.translator.block.drawing.AddRule + + +iDrawing_trigger_time=com.ardublock.translator.block.drawing.TimePara +iDrawing_trigger_dpin=com.ardublock.translator.block.drawing.DigitalInputPara + +iDrawing_actuator_led=com.ardublock.translator.block.drawing.LedPara +iDrawing_trigger_apin=com.ardublock.translator.block.drawing.AnalogInputPara +iDrawing_actuator_playermini=com.ardublock.translator.block.drawing.PlayerPara +iDrawing_actuator_dpin=com.ardublock.translator.block.drawing.DigitalOutputPara + +port_pin_name=com.ardublock.translator.block.drawing.PinName + +led_mode_flash=com.ardublock.translator.block.drawing.ConstantMap +led_mode_fade=com.ardublock.translator.block.drawing.ConstantMap + + +trigger_equal=com.ardublock.translator.block.drawing.ConstantMap +trigger_greater=com.ardublock.translator.block.drawing.ConstantMap +trigger_less=com.ardublock.translator.block.drawing.ConstantMap + +player_mode_random=com.ardublock.translator.block.drawing.ConstantMap +player_mode_single=com.ardublock.translator.block.drawing.ConstantMap + +output_mode_high=com.ardublock.translator.block.drawing.ConstantMap +output_mode_low=com.ardublock.translator.block.drawing.ConstantMap +output_mode_highpulse=com.ardublock.translator.block.drawing.ConstantMap +output_mode_lowpulse=com.ardublock.translator.block.drawing.ConstantMap + + + +#legacy support +loop1=com.ardublock.translator.block.LoopBlock +loop2=com.ardublock.translator.block.ProgramBlock +loop3=com.ardublock.translator.block.LoopBlock + +# littlebits +little_bits_bendsensor=analogInput +little_bits_button=digitalInput +little_bits_dimmer=analogInput +little_bits_lightsensor=analogInput +little_bits_lighttrigger=analogInput +little_bits_microphone=analogInput +little_bits_motiontrigger=analogInput +little_bits_pressuresensor=analogInput +little_bits_pulse=analogInput +little_bits_remotetrigger=analogInput +little_bits_rollerswitch=analogInput +little_bits_slidedimmer=analogInput +little_bits_slideswitch=analogInput +little_bits_soundtrigger=analogInput +little_bits_timeout=analogInput +little_bits_toggleswitch=analogInput +little_bits_mix=analogInput +little_bits_oscillator=analogInput +little_bits_random=analogInput +little_bits_bargraph=analogOutput +little_bits_brightled=analogOutput +little_bits_dcmotor=analogOutput +little_bits_fan=analogOutput +little_bits_ir_led=analogOutput +little_bits_led=analogOutput +little_bits_lightwire=analogOutput +little_bits_longled=analogOutput +little_bits_number=analogOutput +little_bits_rgbled=analogOutput +little_bits_uvled=analogOutput +little_bits_vibration_motor=analogOutput +little_bits_synthspeaker=analogOutput + +#keenlon +ke-motor-run=com.ardublock.translator.block.keenlon.MotorRunBlock +ke-motor-setmoto=com.ardublock.translator.block.keenlon.MotorSetMotoBlock +ke-motor-stop=com.ardublock.translator.block.keenlon.MotorStopBlock +ke-tft-print=com.ardublock.translator.block.keenlon.TFTPrintBlock +ke-tft-clear=com.ardublock.translator.block.keenlon.TFTClearBlock +ke-eye-minvalue=com.ardublock.translator.block.keenlon.EyeMinValueBlock +ke-eye-minindex=com.ardublock.translator.block.keenlon.EyeMinIndexBlock +ke-eye-maxvalue=com.ardublock.translator.block.keenlon.EyeMaxValueBlock +ke-eye-maxindex=com.ardublock.translator.block.keenlon.EyeMaxIndexBlock +ke-eye-singlevalue=com.ardublock.translator.block.keenlon.EyeSingleValueBlock +ke-button-getbutton=com.ardublock.translator.block.keenlon.ButtonGetButton +ke-encoder-clear=com.ardublock.translator.block.keenlon.EncoderClearBlock +ke-encoder-getencoder=com.ardublock.translator.block.keenlon.EncoderGetEncoderBlock +ke-tft-msg=com.ardublock.translator.block.keenlon.TFTPrintMsgBlock +ke-tft-add=com.ardublock.translator.block.keenlon.TFTPrintAddParamBlock +ke-buzzer=digitalOutput +ke-ground-light=analogInput +ke-led-on-off=digitalOutput +ke-led-pwm=analogOutput +ke-light=analogInput +ke-mic=analogInput +ke-photo=digitalInput +ke-potentiometer=analogInput +ke-relays=digitalOutput +ke-tempe=analogInput +ke-touch=digitalInput +ke-servo=servo +ke-psd=analogInput +ke-compass=com.ardublock.translator.block.keenlon.CompassGetCompass + +#jerusalab +midi_command=com.ardublock.translator.block.jerusalab.MidiCommandBlock +Midi_C=com.ardublock.translator.block.jerusalab.MidiInputPortBlock +Midi_CS=com.ardublock.translator.block.jerusalab.MidiInputPortBlock +Midi_D=com.ardublock.translator.block.jerusalab.MidiInputPortBlock +Midi_DS=com.ardublock.translator.block.jerusalab.MidiInputPortBlock +Midi_E=com.ardublock.translator.block.jerusalab.MidiInputPortBlock +Midi_F=com.ardublock.translator.block.jerusalab.MidiInputPortBlock +Midi_FS=com.ardublock.translator.block.jerusalab.MidiInputPortBlock +Midi_G=com.ardublock.translator.block.jerusalab.MidiInputPortBlock +Midi_GS=com.ardublock.translator.block.jerusalab.MidiInputPortBlock +Midi_A=com.ardublock.translator.block.jerusalab.MidiInputPortBlock +Midi_AS=com.ardublock.translator.block.jerusalab.MidiInputPortBlock +Midi_B=com.ardublock.translator.block.jerusalab.MidiInputPortBlock diff --git a/src/main/resources/com/ardublock/block/Skins/slim/ardublock.properties b/src/main/resources/com/ardublock/block/Skins/slim/ardublock.properties new file mode 100644 index 00000000..be085787 --- /dev/null +++ b/src/main/resources/com/ardublock/block/Skins/slim/ardublock.properties @@ -0,0 +1,1487 @@ +bc.start=start +bg.repeat_control=repeat between +bg.repeat_control.description=Repeat the commands with "variable" ranging between "start" and "stop" values. "variable" changes by "steps of" after each repetition +bc.end=stop +bc.increment=steps of +bg.constrain=constrain +bc.low=lower +bc.high=higher +bg.sd_write2=write to SD +bg.sd_write=SD flash write +bg.sd_write_number=SD write number +bg.sd_write_number_int=SD write number Int +bg.sd_return=Return +bg.sd_no_return=No return +bg.eeprom_read=read 'byte' EEPROM +bg.eeprom_write=write 'byte' EEPROM +bg.eeprom_read_int=read number from EEPROM +bg.eeprom_write_int=write number to EEPROM +bg.eeprom_read_long=read 'long' from EEPROM +bg.eeprom_write_long=write 'long' to EEPROM +bd.storage=Storage +bc.device_address=device address +bc.device_address_I2C=address 0x +bc.register_address=register address +bc.watchdog_enable=enable +bc.eeprom_address=address +bc.eeprom_data=data +bc.ln=new line +bc.message=message2 +bc.print=print +bc.line_number=line# +bc.character_number=char# + + +bg.variable_poly=char variable name +bg.setter_variable_char=set char variable +bg.char=A +bd.chars= Chars Test +bg.not_equal_poly= != +bg.equal_string= == +bg.not_equal_string= != +bg.equal_poly= == +bg.glue_poly=glue +bg.serial_read_poly=serial read +bg.serial_available=serial data available +bg.program=MAIN TASK +bc.setup=setup +bc.loop=loop +bg.setup=setup +bc.par=input +bc.vecsize=size +bc.num=# +bg.variable_fake=fake +bg.fake=fake +bg.variable_vector=array variable name +bc.position=position +bg.create_variable_vector=create an array +bg.setter_variable_vector=set an array member +bg.string_greater= > +bg.string_less= < +bg.string_equal= == +bg.string_greater_equal= >= +bg.string_less_equal= <= +bg.string_not_equal= != +bg.string_equals= equals +bg.string_equalsIgnoreCase=equalsIgnoreCase +bg.string_toInt=toInt +bg.string_compareTo=compareTo + +bg.code_head=add code on Head +bg.code_setup=add code on Setup +bg.setter_variable_String=set String variable +bg.setter_variable_String.description=set String variable +bg.variable_String=String variable +bg.variable_String.description=String variable +bg.code_loop=add code on Loop +bg.serial_read=serial read +bd.especial=Especial +bg.equal_digital=== +bg.not_equal_digital=!= +bg.repeat=repeat +bg.break=break +bc.var=iteration variable name +bg.glue_msg=glue + +# BlockDrawer name +bc.angle=angle +bc.base=base +bc.condition=test +bc.else=else +bc.exponent=exponent +bc.from=from +bc.level=level +bc.max=max +bc.min=min +bc.microseconds=microseconds +bc.milliseconds=milliseconds + +# BlockConnector label +bc.pin_number=pin# +bc.status=status +bc.test=test +bc.then=commands +bc.to=to +bc.value=value +bc.variable=variable +bc.frequency=frequency +bc.do=do +bc.device_address=device address +bc.register_address=register address +bc.watchdog_enable=Enable +bc.eeprom_address=address +bc.eeprom_data=data +bc.motor_channel=motor channel +bc.motor_speed=motor speed + +bc.scoop_event_flag=Event + +bd.control=Control +bd.scoop=Tasks +bd.dfrobot=DFRobot +bd.number=Variables/Constants +bd.operators=Math Operators +bd.pins=Pins +bd.seeedstudio=Seeed Studio Grove + +bd.communication=Communication +bd.storage=Storage + +#linksprite +bd.linksprite_LinkerKit=Linker Kit + +bd.tinkerkit=TinkerKit +bd.utilities=Generic Hardware +# BlockGenus initlabel +bg.df_lcd_keypad=DFRobot LCD Keypad +bg.Tinker_Accmeter=Accelerometer +bg.Tinker_Button=Button +bg.Tinker_Hall=Hall +bg.Tinker_I0=I0 +bg.Tinker_I1=I1 +bg.Tinker_I2=I2 +bg.Tinker_I3=I3 +bg.Tinker_I4=I4 +bg.Tinker_I5=I5 +bg.Tinker_LDR=LDR +bg.Tinker_LED=LED +bg.Tinker_LED_pwm=LED +bg.Tinker_LinearPotentiometer=LinearPotentiometer +bg.Tinker_Mosfet=Mosfet +bg.Tinker_Mosfet_pwm=Mosfet +bg.Tinker_O0=O0 +bg.Tinker_O1=O1 +bg.Tinker_O2=O2 +bg.Tinker_O3=O3 +bg.Tinker_O4=O4 +bg.Tinker_O5=O5 +bg.Tinker_Relay=Relay +bg.Tinker_RotaryPotentiometer=RotaryPotentiometer +bg.Tinker_Servo=Servo +bg.Tinker_Thermistor=Thermistor +bg.Tinker_Tilt=Tilt +bg.Tinker_Touch=Touch +bg.abs=abs +bg.addition=+ +bg.and=and +bg.cos=cos + +bg.scoop_task=Multi Task +bg.scoop_loop=Multi Task +bg.scoop_sleep=Sleep Multi Task +bg.scoop_pin_event=Pin Event +bg.scoop_event_low=Event: LOW +bg.scoop_event_high=Event: HIGH +bg.scoop_event_falling=Event: FALLING +bg.scoop_event_rising=Event: RISING +bg.scoop_event_change=Event: CHANGE + +bg.delay=Sleep ALL Tasks +bg.delay_microseconds=Sleep ALL Tasks + +bg.df_360_degree_rotation_motor=360 degree rotation motor +bg.df_adjustable_infrared_sensor_switch=Adjustable Infrared Sensor Switch +bg.df_analog_ambient_light_sensor=Analog Ambient Light Sensor +bg.df_analog_gas_sensor=Analog Gas Sensor +bg.df_analog_grayscale_sensor=Analog Grayscale Senor +bg.df_analog_rotation_sensor_v1=Analog Rotation Sensor V1 +bg.df_analog_rotation_sensor_v2=Analog Rotation Sensor V2 +bg.df_analog_sound_sensor=Analog Sound Sensor +bg.df_analog_volume_sensor=Analog Sound Volume Sensor +bg.df_capacitive_touch_sensor=Capacitive Touch Sensor +bg.df_digital_infrared_motion_sensor=Digital Infrared Motion Sensor +bg.df_digital_ir_receiver_module=Digital IR Receiver Module +bg.df_digital_push_button=Digital Push Button +bg.df_digital_viberation_sensor=Digital Vibration Sensor +bg.df_flame_sensor=Flame Sensor +bg.df_joystick_module_button=JoyStick Module Button +bg.df_joystick_module_x=Joystick Module (Axis-X) +bg.df_joystick_module_y=Joystick Module (Axis-Y) +bg.df_led=LED Module +bg.df_led_pwm=LED with brightness +bg.df_line_tracking_sensor=Line Tracking Sensor +bg.df_mma7260_x=Triple Axis Accelerometer MMA7260 (Axis-X) +bg.df_mma7260_y=Triple Axis Accelerometer MMA7260 (Axis-Y) +bg.df_mma7260_z=Triple Axis Accelerometer MMA7260 (Axis-Z) +bg.df_piranha_led=piranha LED Module +bg.df_piranha_led_pwm=piranha LED with brightness +bg.df_pizeo_disk_vibration_sensor=Piezo Disk Vibration Sensor +bg.df_relay=Relay +bg.df_servo=Servo +bg.df_dht11_humidity=Dht11 Humidity +bg.df_dht11_temperature=Dht11 Temperature +bg.df_temperature_sensor=Temperature Sensor +bg.df_romeo_motors=Romeo motors +bg.df_romeo_motor=Romeo motor +bg.df_romeo_motor_stop=Romeo stop motors +bg.df_buzzer=Buzzer +bg.df_buzzer_tone=Buzzer +bg.df_buzzer_tone_delay=Buzzer + +bg.df_digital_tilt_sensor=Digital Tilt Sensor +bg.df_digital_magnetic_sensor=Digital Magnetic Sensor +bg.df_analog_co_sensor=Analog Carbon Monoxide Sensor +bg.df_analog_voltage_divider=Analog Voltage Divider +bg.df_analog_mma7361_x=X-Asix of Accelerometer +bg.df_analog_mma7361_y=Y-Asix of Accelerometer +bg.df_analog_mma7361_z=Z-Asix of Accelerometer +bg.df_analog_gp2y0a21=Sharp GP2Y0A21 Distance Sensor +bg.df_analog_moisture=Soil Moisture Sensor +bg.df_lcd_keypad=LCD Keypad + +bg.digital-high=HIGH +bg.digital-low=LOW +bg.digital-off=OFF +bg.digital-on=ON +bg.division=\u00f7 +bg.equal=== +bg.false=FALSE +bg.glue_sb=glue +bg.glue_sn=glue +bg.dummy=dummy +bg.greater=> +bg.greater_equal=>= +bg.if=if +bg.ifelse=if/else +bg.less=< +bg.less_equal=<= +bg.loop=MAIN TASK +bg.subroutine=subroutine +bg.subroutine-ref=subroutine +bg.map=map +bg.map_common=map [0, 1023] to [0, 255] +bg.max=max +bg.message=message +bg.millis=millis +bg.min=min +bg.modulo=% +bg.multiplication=x +bg.not=not +bg.not_equal=!= +bg.char=A +bg.number=1 +bg.number_long=1000000 +bg.number_double=3.1415927 +bg.number-single=1 +bg.number-single-I2C-address=3F +bg.number-single-fixed-parallel=Parallel +bg.or=or +bg.pin-read-analog=analog pin +bg.pin-read-digital=digital pin +bg.pin-read-digital-pullup=input pullup +bg.pin-write-analog=set analog pin +bg.pin-write-digital=set digital pin +bg.pow=power +bg.random=random +bg.repeat_times=repeat +bg.seeed_joystick=Grove Thumb Joystick +bg.seeed_joystick_button=Grove Thumb Joystick Button +bg.watchdog_15ms=WDTO_15MS +bg.watchdog_30ms=WDTO_30MS +bg.watchdog_60ms=WDTO_60MS +bg.watchdog_120ms=WDTO_120MS +bg.watchdog_250ms=WDTO_250MS +bg.watchdog_500ms=WDTO_500MS +bg.watchdog_1s=WDTO_1S +bg.watchdog_2s=WDTO_2S +bg.watchdog_4s=WDTO_4S +bg.watchdog_8s=WDTO_8S +bg.watchdog_setup=Watchdog +bg.watchdog_reset=Watchdog Reset +bg.sd_write=SD flash write +bg.sd_write_number=SD write number +bg.sd_write_number_int=SD write number Int +bg.sd_return=Return +bg.sd_no_return=No return +bg.eeprom_read=read byte from EEPROM +bg.eeprom_write=write byte to EEPROM +bg.random_range=random + + +#linksprite +bg.ls_10mmLEDModule=10mm Blue/Green/Yellow/Red LED Module +bg.ls_5mmLEDModule=5mm Blue/Green/Yellow/Red LED Module +bg.ls_AccelerometerModule_x=Accelerometer Module (x-Achse) +bg.ls_AccelerometerModule_y=Accelerometer Module (y-Achse) +bg.ls_AccelerometerModule_z=Accelerometer Module (z-Achse) +bg.ls_ButtonModule=Button Module +bg.ls_BuzzerModule=Buzzer Module +bg.ls_HallSensor=Hall Sensor +bg.ls_HighPowerLedModule=High Power Led Module +bg.ls_JoystickSensorModule_x=Joystick Sensor Module (x-Achse) +bg.ls_JoystickSensorModule_y=Joystick Sensor Module (y-Achse) +bg.ls_LDRModule=LDR Module +bg.ls_LEDBar=LED Bar +bg.ls_Linear-SlidePotentiometerModule=Linear/Slide Potentiometer Module +bg.ls_MagneticSwitch=Magnetic Switch +bg.ls_MosfetModule=Mosfet Module +bg.ls_RelayModule=Relay Module +bg.ls_RotaryPotentiometerModule=Rotary Potentiometer Module +bg.ls_RTCModule=RTC Module +bg.ls_SoundSensor=Sound Sensor +bg.ls_ThermalModule=Thermal Module +bg.ls_TiltModule=Tilt Module +bg.ls_TouchSensorModule=TouchSensor Module + +bg.serial_println=serial println +bg.ir_setport=set IR port +bg.ir_getcode=get IR code +bg.bluno_println=bluno println +bg.bluno_println_number=bluno println +bg.bluno_println_clear=bluno clear +bg.serial_print=serial print +bg.serial_read=serial read +bg.equal_digital=== +bg.not_equal_digital=!= +bg.repeat=repeat and count +bg.glue_msg=glue message +bg.servo=Servo +bg.servo_prefix=Servo : +bg.servo_default=Servo : Default +bg.servo_sg90=Servo : SG90 +bg.servo_mg996r=Servo : MG996R +bg.setter_variable_digital=set digital variable +bg.setter_variable_number=set integer variable +bg.setter_variable_number_unsigned_long=set large integer variable +bg.setter_variable_number_double=set decimal number variable +bg.sin=sin +bg.sqrt=sqrt +bg.subtraction=- +bg.tan=tan +bg.true=TRUE +bg.string_equal=equals +bg.string_empty=is empty + +bg.ultrasonic=ultrasonic +bg.LCD_I2C_Sainsmart_20by4=20by4 I2C Sainsmart +bg.LCD_I2C_Sainsmart_16by2=16by2 I2C Sainsmart +bg.LCD_PLL_Sainsmart_16by2=16by2 PLL Sainsmart +bg.LCD_command_clear=CLEAR +bg.LCD_command_home=HOME +bg.LCD_command_lightOn=Light On +bg.LCD_command_lightOff=Light Off +bg.LCD_command_cursorOn= Cursor On +bg.LCD_command_cursorOff=Cursor Off +bg.LCD_command_blinkOn= Blink On +bg.LCD_command_blinkOff=Blink Off +bg.variable_digital=digital variable name +bg.variable_number=integer variable name +bg.variable_number_unsigned_long=Large integer variable name +bg.variable_number_double='Decimal' variable name +bg.variable_string=string name +bg.while=while +bg.do_while=do while +bg.wire_isread=read I2C ok? +bg.wire_read=read from I2C +bg.wire_write=write to I2C +bg.wire_write_one_byte=I2C write 1 +bg.tone=tone +bg.tone_time=tone +bg.no_tone=no tone + +# +bg.pinListAnalog_A0=A0 +bg.pinListAnalog_A1=A1 +bg.pinListAnalog_A2=A2 +bg.pinListAnalog_A3=A3 +bg.pinListAnalog_A4=A4 +bg.pinListAnalog_A5=A5 +# +bg.pinListAnalog_A6=A6 (Mega/Nano) +bg.pinListAnalog_A7=A7 (Mega/Nano) +bg.pinListAnalog_A8=A8 (Mega) +bg.pinListAnalog_A9=A9 (Mega) +bg.pinListAnalog_A10=A10 (Mega) +bg.pinListAnalog_A11=A11 (Mega) +bg.pinListAnalog_A12=A12 (Mega) +bg.pinListAnalog_A13=A13 (Mega) +bg.pinListAnalog_A14=A14 (Mega) +bg.pinListAnalog_A15=A15 (Mega) + +bg.pinListDigital_D0=D0 +bg.pinListDigital_D1=D1 +bg.pinListDigital_D2=D2 +bg.pinListDigital_D3=D3 +bg.pinListDigital_D4=D4 +bg.pinListDigital_D5=D5 +bg.pinListDigital_D6=D6 +bg.pinListDigital_D7=D7 +bg.pinListDigital_D8=D8 +bg.pinListDigital_D9=D9 +bg.pinListDigital_D10=D10 +bg.pinListDigital_D11=D11 +bg.pinListDigital_D12=D12 +bg.pinListDigital_D13=D13 +# +# +# +# +# +# +bg.pinListDigital_D14=D14 (Mega) +bg.pinListDigital_D15=D15 (Mega) +bg.pinListDigital_D16=D16 (Mega) +bg.pinListDigital_D17=D17 (Mega) +bg.pinListDigital_D18=D18 (Mega) +bg.pinListDigital_D19=D19 (Mega) +# +bg.pinListDigital_D20=D20 (Mega) +bg.pinListDigital_D21=D21 (Mega) +bg.pinListDigital_D22=D22 (Mega) +bg.pinListDigital_D23=D23 (Mega) +bg.pinListDigital_D24=D24 (Mega) +bg.pinListDigital_D25=D25 (Mega) +bg.pinListDigital_D26=D26 (Mega) +bg.pinListDigital_D27=D27 (Mega) +bg.pinListDigital_D28=D28 (Mega) +bg.pinListDigital_D29=D29 (Mega) +bg.pinListDigital_D30=D30 (Mega) +bg.pinListDigital_D31=D31 (Mega) +bg.pinListDigital_D32=D32 (Mega) +bg.pinListDigital_D33=D33 (Mega) +bg.pinListDigital_D34=D34 (Mega) +bg.pinListDigital_D35=D35 (Mega) +bg.pinListDigital_D36=D36 (Mega) +bg.pinListDigital_D37=D37 (Mega) +bg.pinListDigital_D38=D38 (Mega) +bg.pinListDigital_D39=D39 (Mega) +bg.pinListDigital_D40=D40 (Mega) +bg.pinListDigital_D41=D41 (Mega) +bg.pinListDigital_D42=D42 (Mega) +bg.pinListDigital_D43=D43 (Mega) +bg.pinListDigital_D44=D44 (Mega) +bg.pinListDigital_D45=D45 (Mega) +bg.pinListDigital_D46=D46 (Mega) +bg.pinListDigital_D47=D47 (Mega) +bg.pinListDigital_D48=D48 (Mega) +bg.pinListDigital_D49=D49 (Mega) +bg.pinListDigital_D50=D50 (Mega) +bg.pinListDigital_D51=D51 (Mega) +bg.pinListDigital_D52=D52 (Mega) +bg.pinListDigital_D53=D53 (Mega) +# +bg.pinListAnalogWrite_D3=D3 +bg.pinListAnalogWrite_D5=D5 +bg.pinListAnalogWrite_D6=D6 +bg.pinListAnalogWrite_D9=D9 +bg.pinListAnalogWrite_D10=D10 +bg.pinListAnalogWrite_D11=D11 +# +bg.pinListAnalogWrite_D2=D2 (Mega) +bg.pinListAnalogWrite_D4=D4 (Mega) +bg.pinListAnalogWrite_D7=D7 (Mega) +bg.pinListAnalogWrite_D8=D8 (Mega) +bg.pinListAnalogWrite_D12=D12 (Mega) +bg.pinListAnalogWrite_D13=D13 (Mega) +bg.pinListAnalogWrite_D44=D44 (Mega) +bg.pinListAnalogWrite_D45=D45 (Mega) +bg.pinListAnalogWrite_D46=D46 (Mega) + +bg.DDRA=DDRA +bg.DDRB=DDRB +bg.DDRC=DDRC +bg.DDRD=DDRD +bg.DDRH=DDRH +bg.DDRL=DDRL +bg.PORTA=PORTA +bg.PORTB=PORTB +bg.PORTC=PORTC +bg.PORTD=PORTD +bg.PORTH=PORTH +bg.PORTL=PORTL +bg.PINA=PINA +bg.PINB=PINB +bg.PINC=PINC +bg.PIND=PIND +bg.PINH=PINH +bg.PINL=PINL +bg.xcj_motor_backward=motor shield backward +bg.xcj_motor_forward=motor shield forward +bg.xcj_ms_digital_read=Xinchejian digitalRead +bg.xcj_ms_digital_write=Xinchejian digitalWrite +bg.code_loop=loop +bg.code_head=head +bg.code_setup=setup + +bd.logic=Tests +bd.communication=Communication +bd.especial=Code Blocks + +bd.adafruit=Adafruit +bg.ada_dc_motor_fwd=DC motor FORWARD +bg.ada_dc_motor_bwd=DC motor BACKWARD +bg.ada_dc_motor_release=DC motor RELEASE +bg.ada_neopixel_NEO_GRB=NEO_GRB +bg.ada_neopixel_NEO_RGB=NEO_RGB +bg.ada_neopixel_NEO_KHZ400=NEO_KHZ400 +bg.ada_neopixel_NEO_KHZ800=NEO_KHZ800 +bg.ada_neopixel_init=Neopixel Init +bg.ada_neopixel_pixel_colorGRB=Neopixel GRB Pixel Color +bg.ada_neopixel_pixel_colorGRB=Neopixel RGB Pixel Color +bg.ada_neopixel_show=Neopixel Show +bg.ada_neopixel_Brightness=Neopixel Brightness + + +ardublock.file.suffix=Ardublock Program File(*.abp) +ardublock.ui.new=New +ardublock.ui.save=Save +ardublock.ui.saveAs=Save As +ardublock.ui.load=Open +ardublock.ui.upload=Upload to Arduino +ardublock.ui.clone=Clone +ardublock.ui.add_comment=Add Comment +ardublock.ui.delete_comment=Delete Comment +ardublock.ui.organize_blocks=Organize all blocks +ardublock.ui.create_refer=create reference +ardublock.ui.website=Go to Web Site +ardublock.ui.serialMonitor=Serial Monitor +ardublock.ui.saveImage=Save as image... +ardublock.ui.version=20160326 Highclare (beta) (slim) + +ardublock.error_msg.digital_var_slot=Digital variable slot must take a 'digital variable' name.\nHint: Look at the 'variable' socket on the highlighted block +ardublock.error_msg.number_var_slot=Standard variable slot must take a standard 'Integer' variable name.\nHint: Look at the 'variable' socket on the highlighted block +ardublock.error_msg.long_number_var_slot=Large integer variable slot must take a 'Large Integer' variable name.\nHint: Look at the 'variable' socket on the highlighted block +ardublock.error_msg.double_number_var_slot=variable slot must take a 'Decimal' variable name.\nHint: Look at the 'variable' socket on the highlighted block +ardublock.error_msg.char_var_slot=Char variable slot must take a char variable name.\nHint: Look at the 'variable' socket on the highlighted block +ardublock.error_msg.array_var_slot='Array variable' slot must take an 'array variable' name.\nHint: Look at the 'variable' socket on the highlighted block +ardublock.error_msg.array_size_slot='Array size' slot must take a standard integer constant +ardublock.error_msg.string_var_slot=String variable slot must take a String variable name.\nHint: Look at the 'variable' socket on the highlighted block +ardublock.error_msg.Digital_pin_slot=Pin# must be a valid digital pin number found on an Arduino Board +ardublock.error_msg.Analog_pin_slot=Pin# must be a valid analog input pin number found on an Arduino Board + +ardublock.translator.exception.subroutineNameDuplicated=two or more subroutines have the same name! +ardublock.translator.exception.noLoopFound=No MAIN TASK found! +ardublock.translator.exception.multipleLoopFound=multiple MAIN TASKs found! +ardublock.translator.exception.socketNull=A required Value, Variable Name or 'Test' is missing.\nHint:: Look for an empty 'socket' in the highlighted block. +ardublock.translator.exception.subroutineNotDeclared=subroutine not declared + +message.title.error=Error +message.title.question=Question +message.content.open_unsaved=You have unsaved work which may be lost!\n Do you want to save your work before opening a new file? +message.content.overwrite=Do you want overwrite existing file? +message.file_not_found=File Not Found or Permission Denied +message.question.newfile_on_workspace_changed=You have unsaved work which will be lost if you click 'YES' !\n Do you want to start a new Ardublock program? + +bc.repeat_times=Repetitions + +# Descriptions of all Block + +bg.program.description=Main program with loop and setup +bg.loop.description=Main Program loop without setup commands + +bg.scoop_sleep.description=Delay execution of current thread for x milliseconds +bg.scoop_task.description=Multitasking thread with loop and setup +bg.scoop_loop.description=Multitasking thread without setup commands +bg.scoop_pin_event.description=Multitasking thread. Runs commands when an event is detected on a pin. +bg.scoop_event_low.description=event triggered when pin is low +bg.scoop_event_high.description=event triggered when pin is high +bg.scoop_event_falling.description=event triggered when pin is falling +bg.scoop_event_rising.description=event triggered when pin is rising +bg.scoop_event_change.description=event triggered when pin is change + +bg.delay.description=Delay for "milliseconds" indicated.\nNOTE: 1000 millis = 1 second +bg.if.description=Execute the commands if the "test" is true +bg.ifelse.description=Execute the first set of commands if the "test" is true, otherwise it will do the second set of commands. +bg.while.description=Execute the commands as long as the "test" is true +bg.do_while.description=Execute the list of commands. Then, if 'test' is true, keep on repeating it until 'test' is 'false' +bg.repeat_times.description=Repeat a list of commands a number of times. +bg.repeat.description=Repeat a list of commands a number of times. "variable" counts the repetitions. +bg.break.description=break +bg.subroutine.description=A list of commands we can call by a single name. They will run only if 'called', see CONTROL menu. +bg.subroutine-ref.description=Run the list of commands in the subroutine called... +bg.delay_microseconds.description=Delay for "microseconds" indicated. \nNOTE: 1000000 micros = 1 second +bg.pin-read-analog.description=Read analog value from pin. Zero volts = 0. Five volts = 1023 +bg.pin-read-digital.description=Read digital value (HIGH or LOW) from pin. +bg.pin-read-digital-pullup.description=Set pin to digital input. Pin will report HIGH if unconnected. +bg.pin-write-digital.description=Set digital pin to HIGH or LOW +bg.pin-write-analog.description=Write analog voltage to pin. 0 = Zero volts. 255 = five volts. +bg.addition.description=Sum of two numbers +bg.subtraction.description=Difference of two numbers +bg.multiplication.description=Product of two numbers +bg.division.description=Quotient of two numbers +bg.random.description=Generate a random number less than the number +bg.map_common.description=map value from [0, 1023] to [0, 255] +bg.map.description=Map value from "from" range to "to" range +bg.constrain.description=Constrain a number between two values +bg.dummy.description= +bg.greater.description=True if the first number is greater the second number +bg.less.description=True if the first number is less then the second number +bg.equal.description=True if the first number equals to the scond number +bg.equal_digital.description=True if the first number equals to the scond number +bg.greater_equal.description=True if the first number is greater or equal to the second number +bg.less_equal.description=True if the first number is less or equal to the second number +bg.not_equal.description=True if the first number is not equal to the second number +bg.not_equal_digital.description=True if the first number is not equal to the second number +bg.and.description=True if both of the two conditions are true. +bg.or.description=True if one or both of the two conditions are true. +bg.not.description=The opposite of +bg.equal_poly.description=True if first character is equal to the second character +bg.not_equal_poly.description=True if first character is not equal to the second character +bg.equal_string.description=True if first string is equal to the second string +bg.not_equal_string.description=True if first string is not equal to the second string +bg.string_greater.description= True if first string is to the second string +bg.string_less.description= True if first string is to the second string +bg.string_equal.description= True if first string is to the second string +bg.string_greater_equal.description= True if first string is to the second string +bg.string_less_equal.description= True if first string is to the second string +bg.string_not_equal.description= True if first string is to the second string +bg.string_equals.description=True if first string is to the second string +bg.string_equalsIgnoreCase.description=True if first string is to the second string +bg.string_toInt.description=True if a numeric string compared to the number it represents +bg.string_compareTo.description=True if first string is to the second string +bg.millis.description=milliseconds since last power-up or reset. Note: Use a 'Large Integer' variable. +bg.true.description=Boolean True. +bg.false.description=Boolean False. +bg.digital-high.description=Pin HIGH +bg.digital-low.description=Pin LOW +bg.string_equal.description=True if two strings are equal +bg.string_empty.description=True if string is empty +bg.char.description=Character constant +bg.number.description=Standard integer constant. 32,768 to +32,767 +bg.pinListDigital_D0.description=List of valid digital pin numbers on various Arduino boards +bg.pinListDigital_D8.description=List of valid digital pin numbers on various Arduino boards +bg.pinListDigital_D11.description=List of valid digital pin numbers on various Arduino boards +bg.pinListDigital_D12.description=List of valid digital pin numbers on various Arduino boards +bg.pinListDigital_D13.description=List of valid digital pin numbers on various Arduino boards +bg.pinListAnalog_A0.description=List of valid analog pin numbers on various Arduino boards +bg.pinListAnalogWrite_D3.description=List of valid analog write PWM pin numbers on various Arduino boards +bg.number_long.description=Large integer constant. 0 to 4,294,967,295 +bg.number_double.description='Decimal' number constant. +/- 3.4028235E+38 +bg.variable_number.description=Standard integer variable. -32,768 to +32,767 +bg.variable_number_unsigned_long.description=Large integer variable name +bg.variable_number_double.description='Decimal' variable name +bg.variable_digital.description=Digital variable +bg.variable_string.description=string variable +bg.setter_variable_number.description=Set standard integer variable. -32,768 to +32,767 +bg.setter_variable_number_unsigned_long.description=Set large integer variable. 0 to 4,294,967,295 +bg.setter_variable_number_double.description=Set 'Decimal' variable. +/- 3.4028235E+38 +bg.setter_variable_digital.description=Set digital variable +bg.variable_vector.description=Get the value of an array member +bg.create_variable_vector.description=Create an array of standard integers. -32,768 to +32,767 +bg.setter_variable_vector.description=Set the value of an array member +bg.setter_variable_char.description=Set a character variable +bg.variable_poly.description=Character variable name +bg.servo.description=Control a servo +bg.servo_sg90.description=Control an SG90 servo +bg.servo_mg996r.description=Control an MG996R servo +bg.servo_default.description=Control a servo +bg.ultrasonic.description=Ultrasonic distance sensor +bg.LCD_I2C_Sainsmart_20by4.description= Sainsmart LCD Display. I2C. 20 Char by 4 Lines +bg.LCD_I2C_Sainsmart_16by2.description= Sainsmart LCD Display. I2C. 16 Char by 2 Lines +bg.LCD_PLL_Sainsmart_16by2.description= Sainsmart LCD Display. Parallel. 16 Char by 2 Lines +bg.LCD_command_clear.description=Clear an LCD display +bg.LCD_command_home.description=LCD display home +bg.LCD_command_lightOn.description=LCD display light on. +bg.LCD_command_lightOff.description=LCD display light off +bg.LCD_command_cursorOn.description=LCD display cursor on. +bg.LCD_command_cursorOff.description=LCD display cursor off +bg.LCD_command_blinkOn.description=LCD display blink on. +bg.LCD_command_blinkOff.description=LCD display blink off +bg.tone.description=Generates a square wave of the specified frequency (and 50% duty cycle) on a pin. +bg.tone_time.description=Generates a square wave of the specified frequency (and 50% duty cycle) on a pin. +bg.no_tone.description=Stops the generation of a square wave triggered by tone(). +bg.DDRA.description=DDRA +bg.DDRB.description=DDRB +bg.DDRC.description=DDRC +bg.DDRD.description=DDRD +bg.DDRH.description=DDRH +bg.DDRL.description=DDRL +bg.PORTA.description=PORTA +bg.PORTB.description=PORTB +bg.PORTC.description=PORTC +bg.PORTD.description=PORTD +bg.PORTH.description=PORTH +bg.PORTL.description=PORTL +bg.PINA.description=PINA +bg.PINB.description=PINB +bg.PINC.description=PINC +bg.PIND.description=PIND +bg.PINH.description=PINH +bg.PINL.description=PINL +bg.serial_print.description=Send message via Serial port +bg.message.description=Text message +bg.glue_sn.description=Glue number to string +bg.glue_sb.description=Glue boolean to string +bg.glue_poly.description=Glue char to string +bg.wire_write.description=Write data via I2C +bg.wire_read.description=Read data from i2c +bg.wire_isread.description=Is last read from I2C success? +bg.eeprom_read.description=Read a byte (0-255) from EEPROM. Each byte consumes just one EEPROM address. Using consecutive addresses is OK +bg.eeprom_write.description=Write a byte (0-255) to EEPROM. Each byte consumes just one EEPROM address. Using consecutive addresses is OK +bg.eeprom_read_int.description=Read an int (+/- 32,767) from EEPROM. NOTE: DON'T read from consecutive addresses. Each number consumes 2 addresses in EEPROM +bg.eeprom_write_int.description=Write an int (+/- 32,767) to EEPROM. NOTE: DON'T write to consecutive addresses. Each number consumes 2 addresses in EEPROM +bg.eeprom_read_long.description=Read a 'long' (0 - 4,294,967,295) from EEPROM. NOTE: DON'T read from consecutive addresses. Each number consumes 4 addresses in EEPROM +bg.eeprom_write_long.description=Write a 'long' (0 - 4,294,967,295) to EEPROM. NOTE: DON'T write to consecutive addresses. Each number consumes 4 addresses in EEPROM +bg.sd_write2.description=Write to SD card +bg.code_loop.description=Add raw codes to loop() +bg.code_head.description=Add raw codes to head +bg.code_setup.description=Add raw codes to setup() +bg.glue_msg.description=Glue a text message +bg.variable_fake.description=Digital Var +bg.serial_println.description=Send message via Serial port with a return +bg.ir_setport.description=Set Port where IR Receiver attached +bg.ir_getcode.description=Get code from ir receiver and store in a variable string +bg.bluno_println.description=println string on bluno oled +bg.bluno_println_clear.description=clear bluno oled +bg.bluno_println_number.description=println number on bluno oled +bg.Tinker_LED.description=TinkerKit LED +bg.Tinker_LED_pwm.description=TinkerKit LED +bg.Tinker_Mosfet.description=TinkerKit Mosfet +bg.Tinker_Mosfet_pwm.description=TinkerKit Mosfet +bg.Tinker_Relay.description=TinkerKit Relay +bg.Tinker_Servo.description=TinkerKit Servo +bg.Tinker_Button.description=TinkerKit Button +bg.Tinker_Accmeter.description=TinkerKit Accelerometer +bg.Tinker_Hall.description=TinkerKit Hall Sensor +bg.Tinker_LDR.description=TinkerKit LDR +bg.Tinker_LinearPotentiometer.description=TinkerKit Accelerometer +bg.Tinker_RotaryPotentiometer.description=TinkerKit RotaryPotentiometer +bg.Tinker_Thermistor.description=TinkerKit Thermistor +bg.Tinker_Touch.description=TinkerKit Touch Sensor +bg.Tinker_Servo.description=TinkerKit Servo +bg.Tinker_Tilt.description=TinkerKit Tilt +bg.xcj_motor_forward.description=forward +bg.xcj_motor_backward.description=Moving the car backward +bg.xcj_ms_digital_write.description=Write digital signal to Socket +bg.xcj_ms_digital_read.description=Read digital status from socket +bg.df_pizeo_disk_vibration_sensor.description=Vibration Sensor buffers a piezoelectric transducer that responds to strain changes by generating a measurable output voltage change which is proportional to the strength of vibration. +bg.df_analog_ambient_light_sensor.description=The ambient light sensor detects light density. +bg.df_analog_grayscale_sensor.description=Analog Grayscale Sensor detect the grayscale. +bg.df_flame_sensor.description=Read analog value from pin +bg.df_analog_mma7361_x.description=Read analog value from pin +bg.df_analog_mma7361_y.description=Read analog value from pin +bg.df_analog_mma7361_z.description=Read analog value from pin +bg.df_analog_gp2y0a21.description=Read analog value from pin +bg.df_analog_moisture.description=Read analog value from pin +bg.df_temperature_sensor.description=Read analog value from pin +bg.df_joystick_module_x.description=Read analog value from pin +bg.df_joystick_module_y.description=Read analog value from pin +bg.df_mma7260_x.description=Read analog value from pin +bg.df_mma7260_y.description=Read analog value from pin +bg.df_mma7260_z.description=Read analog value from pin +bg.df_analog_rotation_sensor_v1.description=Read analog value from pin +bg.df_analog_rotation_sensor_v2.description=Read analog value from pin +bg.df_analog_sound_sensor.description=Read analog value from pin +bg.df_analog_volume_sensor.description=Read analog value from pin +bg.df_analog_gas_sensor.description=Read analog value from pin +bg.df_analog_co_sensor.description=Read analog value from pin +bg.df_analog_voltage_divider.description=Read analog value from pin +bg.df_servo.description=set a pin to pwm +bg.df_360_degree_rotation_motor.description=set a pin to pwm +bg.df_dht11_humidity.description=get Humidity from Dht11 +bg.df_dht11_temperature.description=get Temperature from Dht11 +bg.df_romeo_motors.description=set motors speed on romeo +bg.df_romeo_motor.description=set motor speed on romeo +bg.df_romeo_motor_stop.description=stop motor on romeo +bg.df_led.description=LED Module +bg.df_led_pwm.description=LED Module +bg.df_piranha_led.description=Piranha LED Module +bg.df_piranha_led_pwm.description=Pianha LED Module with brightness level +bg.df_relay.description=Relay Module +bg.df_buzzer.description=Buzzer Module +bg.df_buzzer_tone.description=Generates a square wave of the specified frequency (and 50% duty cycle) on a pin. +bg.df_buzzer_tone_delay.description=Generates a square wave of the specified frequency (and 50% duty cycle) on a pin. +bg.df_lcd_keypad.description= lcd block that use liquicrystal +bg.seeed_joystick.description=Read analog value from analog pin +bg.seeed_joystick_button.description=Read analog value from analog pin +bg.seeed_o2_sensor=Gas Sensor(O2) +bg.seeed_uv_sensor=UV Sensor +bg.seeed_single_gyro=Single Axis Analog Gyro +bg.seeed_mq9_sensor=Gas Sensor(MQ9) +bg.seeed_mp3_sensor=Gas Sensor(MQ3) +bg.seeed_vib_sensor=Piezo Vibration Sensor +bg.seeed_loud_sensor=Loudness Sensor +bg.seeed_diff_amp=Differential Amplifier +bg.seeed_ir_temp_sensor=Infrared Temperature Sensor +bg.seeed_ir_proximity_sensor=80cm Infrared Proximity Sensor +bg.seeed_electricity_sensor=Electricity Sensor +bg.seeed_angle_sensor=Rotary Angle Sensor +bg.seeed_sound_sensor=Sound Sensor +bg.seeed_moisture_sensor=Moisture Sensor +bg.seeed_temp_sensor=Sound Sensor +bg.seeed_light_sensor=Light Sensor + +bg.seeed_voltage_divider=Voltage Divider +bg.seeed_flame_sensor=Flame Sensor +bg.seeed_button=Button +bg.seeed_switch=Switch +bg.seeed_ir_refl_sensor=Infrared Reflective Sensor +bg.seeed_heart_rate_sensor=Ear-clip Heart Rate Sensor +bg.seeed_chest_heart_sensor=Chest Strap Heart Rate Sensor +bg.seeed_air_quality_sensor=Air Quality Sensor +bg.seeed_line_finder=Line Finder +bg.seeed_pir_motion_sensor=PIR Motion Sensor +bg.seeed_tilt_switch=Tilt Switch +bg.seeed_push_button=Button +bg.seeed_water_sensor=Water Sensor +bg.seeed_touch_sensor=Touch Sensor +bg.seeed_mag_switch=Magnetic Switch +bg.seeed_ir_dist_int=IR Distance Interrupter + +bg.seeed_circle_led=SPDT Relay(30A) +bg.seeed_2coil_relay=2-Coil Latching Relay +bg.seeed_dry_relay=Dry-Reed Relay +bg.seeed_solid_relay=Solid State Relay +bg.seeed_circle_led=Circular LED +bg.seeed_led_strip=LED Strip Driver +bg.seeed_led=LED +bg.seeed_var_led=Variable Color LED +bg.seeed_vib=Vibration Motor +bg.seeed_relay=Relay + +bg.seeed_o2_sensor.description=Grove-Gas Sensor (O\u2082) is a kind of sensor to test the oxygen concentration in air, which is based on the principle of the electrochemical cell to the original work. +bg.seeed_uv_sensor.description=\u2013 UV Sensor is used for detecting the intensity of incident ultraviolet(UV) radiation. +bg.seeed_single_gyro.description=Signal Axis Analog Gyro is based on an angular velocity sensor that uses the phenomenon of Coriolis force. +bg.seeed_mq9_sensor.description=Gas Sensor module is useful for gas leakage detecting(in home and industry). It can detect LPG, i-butane, methane, alcohol, Hydrogen, somke and so on. +bg.seeed_mp3_sensor.description=Gas Sensor module is useful for gas leakage detecting(in home and industry). It can detect LPG, i-butane, methane, alcohol, Hydrogen, somke and so on. +bg.seeed_vib_sensor.description=Piezo Vibration Sensor is suitable for measurements of flexibility, vibration, impact and touch. +bg.seeed_loud_sensor.description=Loudness Sensor is designed to detect the loudness of environmental sound. Based on amplifier LM2904 and a built-in microphone, it amplifies and filters the high frequency signal that received from the microphone, and outputs a positive envelop. +bg.seeed_diff_amp.description=It's designed for precise differential-input amplification +bg.seeed_ir_temp_sensor.description=The Infrared temperature sensor is a non-contact temperature measure model. +bg.seeed_ir_proximity_sensor.description=The 80cm Infrared Proximity Sensor is a General Purpose Type Distance Measuring Sensors, this sensor takes a continuous distance reading and returns a corresponding analog voltage with a range of 10cm (4") to 80cm (30"). +bg.seeed_electricity_sensor.description=The Electricity sensor module is based on the TA12-200 current transformer which can change large alternating current into a small amplitude. +bg.seeed_angle_sensor.description=The potentiometer twig produces analog output between 0 and Vcc (5V DC with Seeeduino) on its D1 connector. +bg.seeed_sound_sensor.description=The Sound sensor module is a simple microphone. +bg.seeed_moisture_sensor.description=This Moisture Sensor can be used to detect the moisture of soil or judge if there is water around the sensor, let the plants in your garden reach out for human help. +bg.seeed_temp_sensor.description=The temperature sensor uses a thermistor which returns the ambient temperature in the form of a resistance value, which is then used to alter Vcc (5V with our Seeeduinos). +bg.seeed_light_sensor.description=The light sensor returns the ambient light in the form of a resistance value, which is then used to alter Vcc (5V with our Seeeduinos). + +bg.seeed_voltage_divider.description=Voltage Divider provides an interface for measuring external voltage, eliminating the need to connect a resistance to input interface. +bg.seeed_flame_sensor.description=Flame Sensor can be used to detect fire source or other light sources of the wavelength in the range of 760nm - 1100 nm. +bg.seeed_button.description=Button +bg.seeed_switch.description=Switch +bg.seeed_ir_refl_sensor.description=Infrared Reflective Sensor utilizes a RPR220 reflective photosensor module to detect color and distance. +bg.seeed_heart_rate_sensor.description=The heart rate measure kit can be used to monitor heart rate of patient and athlete. +bg.seeed_chest_heart_sensor.description=The heart rate measure kit can be used to monitor the heart rate of patients and athletes, meanwhile the result can be displayed on a screen via serial port and saved for analysis. +bg.seeed_air_quality_sensor.description=The sensor is designed for indoor air quality testing. The main gas detected is carbon monoxide, alcohol, acetone, thinner, formaldehyde and other slightly toxic gases. +bg.seeed_line_finder.description=Line finder is designed for line following robotic. It consists two parts - an IR emitting LED and an IR sensitive phototransistor. It can output digital signal to a microcontroller so the robot can reliably follow a black line on a white background, or vice versa. +bg.seeed_pir_motion_sensor.description=when anyone moves in its detecting range, the sensor outputs HIGH on its SIG pin. +bg.seeed_tilt_switch.description=The tilt-switch twig is the equivalent of a button, and is used as a digital input. +bg.seeed_push_button.description=Button +bg.seeed_water_sensor.description=This sensor works by having a series of exposed traces connected to ground and interlaced between the grounded traces are the sens traces. The sensor traces have a weak pull-up resistor of 1 M\u03a9. The resistor will pull the sensor trace value high until a drop of water shorts the sensor trace to the grounded trace. +bg.seeed_touch_sensor.description=It can detect the change in capacitance when a finger is near it. +bg.seeed_mag_switch.description=The magnetic switch is a wonder tool for designers who would like to turn a circuit on and off based on proximity. +bg.seeed_ir_dist_int.description=This IR Distance Interrupter features a high-sensitivity RFR-359F photoreflector to perform distance detection function. + +bg.seeed_circle_led.description=The SPDT Relay(30A) is a high quality Single Pole Double Throw Relay(SPDT). +bg.seeed_2coil_relay.description=This module is based on 2-Coil Latching Relay. +bg.seeed_dry_relay.description=Grove-Dry-Reed Relay is a relay module which works through magnetizing the vibration reed via the current in the coils. +bg.seeed_solid_relay.description=Solid State Relay is a non-contact electronic switch module that has relay features. +bg.seeed_circle_led.description=it has a florid body with 24 controllable LEDs. +bg.seeed_led_strip.description=It can help you control the luminance of a single-color LED strip, as well as the color and the luminance of an RGB LED strip through Arduino or Seeeduino. +bg.seeed_led.description=LED is designed for the beginners of Arduino/Seeeduino to monitor controls from digital ports. +bg.seeed_var_led.description=When SIG pin is logic LOW, the RGB LED will show. +bg.seeed_vib.description=It is consist one coin type motor which is a Permanent Magnet coreless DC motor. +bg.seeed_relay.description=The Relay is a digital normally open switch that controls a relay capable of switching much higher voltages and currents than your normal Arduino boards. + +bd.DuinoEDU=DuinoEDU Grove Add +bg.DuinoEDU_infrared=Infrared +bg.DuinoEDU_infrared.description=Infrared +bg.DuinoEDU_temp=Temp sensor +bg.DuinoEDU_temp.description=Temp sensor +bg.DuinoEDU_tempPro=Temp sensor Pro +bg.DuinoEDU_tempPro.description=Temp sensor Pro +bg.DuinoEDU_humi=Humi sensor +bg.DuinoEDU_humi.description=Humi sensor +bg.DuinoEDU_humiPro=Humi sensor Pro +bg.DuinoEDU_humiPro.description=Humi sensor Pro +bg.DuinoEDU_Led_Bar=Led Bar +bg.DuinoEDU_Led_Bar.description=Led Bar +bg.DuinoEDU_LCD_I2C_RGB=LCD I2C RGB Backlight +bg.DuinoEDU_LCD_I2C_RGB.description=LCD I2C RGB Backlight +bg.DuinoEDU_LCD_I2C_Backlight=LCD I2C Backlight +bg.DuinoEDU_LCD_I2C_Backlight.description=LCD I2C Backlight depend of the RGB between 0 and 1000 or more +bg.DuinoEDU_LCD_I2C_RGB_Clear=LCD I2C RGB Clear +bg.DuinoEDU_LCD_I2C_RGB_Clear.description=LCD I2C RGB Clear +bg.keyboard=keyboard +bg.keyboard.description=keyboard +bg.keyboard_post=keyboard post +bg.keyboard_post.description=keyboard post +bg.keyboard_compare=key of keyboard +bg.keyboard_compare.description=return a boolean = or != to +bg.DuinoEDU_Mouse_Init=Init Mouse +bg.DuinoEDU_Mouse_Init.description= Initialisation of the mouse +bg.DuinoEDU_Mouse_Xmove= Mouse X Move +bg.DuinoEDU_Mouse_Xmove.description= Mouse X Move +bg.DuinoEDU_Mouse_Ymove=Mouse Y Move +bg.DuinoEDU_Mouse_Ymove.description= Mouse Y Move +bg.DuinoEDU_Keypad_12_Button=Keypad 12 Button +bg.DuinoEDU_Keypad_12_Button.description=Keypad 12 Button +bg.DuinoEDU_Keypad_Post=Keypad Post +bg.DuinoEDU_Keypad_Post.description=Keypad Post +bg.DuinoEDU_Keypad_Pwd=Keypad Password +bg.DuinoEDU_Keypad_Pwd.description=Keypad Password +bg.DuinoEDU_Digital_Tube=Digital Tube +bg.DuinoEDU_Digital_Tube.description=Digital Tube +bg.DuinoEDU_Digital_Clear=Digital Tube Clear +bg.DuinoEDU_Digital_Clear.description=Digital Tube Clear +bg.DuinoEDU_Display_Digital_Tube=Display on digital tube +bg.DuinoEDU_Display_Digital_Tube.description=Display on digital tube +bg.DuinoEDU_Display_Digital_Tube2=Display on digital tube +bg.DuinoEDU_Display_Digital_Tube2.description=Display on digital tube +bg.DuinoEDU_Oled_I2C=Oled I2C +bg.DuinoEDU_Oled_I2C.description=Oled I2C +bg.DuinoEDU_Oled_Clear=Oled Clear +bg.DuinoEDU_Oled_Clear.description=Oled Clear +bg.DuinoEDU_Driver_I2C_Forward=Forward +bg.DuinoEDU_Driver_I2C_Forward.description=Driver I2C Forward +bg.DuinoEDU_Driver_I2C_Back=Back +bg.DuinoEDU_Driver_I2C_Back.description=Driver I2C Back +bg.DuinoEDU_Driver_I2C_Pivoter=Pivote +bg.DuinoEDU_Driver_I2C_Pivoter.description=Driver I2C Pivote +bg.DuinoEDU_Driver_I2C_Speed_A_Motor=Speed A Motor +bg.DuinoEDU_Driver_I2C_Speed_A_Motor.description=fixe the speed of the motor between 1 and 1000 +bg.DuinoEDU_Driver_I2C_Speed_B_Motor=Speed B Motor +bg.DuinoEDU_Driver_I2C_Speed_B_Motor.description=fixe the speed of the motor between 1 and 1000 +bg.DuinoEDU_right=Right +bg.DuinoEDU_straight=Straight +bg.DuinoEDU_left=Left +bg.DuinoEDU_Aix_Acc_mesurerX=mesurerX +bg.DuinoEDU_Aix_Acc_mesurerX.description=mesurerX +bg.DuinoEDU_Aix_Acc_mesurerY=mesurerY +bg.DuinoEDU_Aix_Acc_mesurerY.description=mesurerY +bg.DuinoEDU_Aix_Acc_mesurerZ=mesurerZ +bg.DuinoEDU_Aix_Acc_mesurerZ.description=mesurerZ +bg.DuinoEDU_Aix_Acc_mesurerXYZ=mesurerXYZ +bg.DuinoEDU_Aix_Acc_mesurerXYZ.description=mesurerXYZ +bg.DuinoEDU_Aix_Acc_mesurerVariation=Variation +bg.DuinoEDU_Aix_Acc_mesurerVariation.description=Variation +bg.DuinoEDU_Ultrasonic=Ultrasonic +bg.DuinoEDU_Ultrasonic.description=Ultrasonic +bg.DuinoEDU_Partie_Emetteur=Emetteur +bg.DuinoEDU_Partie_Emetteur.description=Emetteur +bg.DuinoEDU_Partie_Recepteur=Recepteur +bg.DuinoEDU_Partie_Recepteur.description=Recepteur +bg.DuinoEDU_Rfid_Write=Rfid save code +bg.DuinoEDU_Rfid_Write.description=Save in Ram the code +bg.DuinoEDU_Rfid_Test=Rfid Test +bg.DuinoEDU_Rfid_Test.description= compare the code with the list in the ram +bg.DuinoEDU_Rfid_Read=Rfid Read +bg.DuinoEDU_Rfid_Read.description=Read a badge +bg.DuinoEDU_Rfid_Clear=Rfid clear +bg.DuinoEDU_Rfid_Clear.description=Clear the liste of codes in Ram +bg.DuinoEDU_Rfid_Ram_List=Rfid Ram List +bg.DuinoEDU_Rfid_Ram_List.description=Create a liste of code in Ram +bg.DuinoEDU_neopixel_init=Neopixel Init +bg.DuinoEDU_neopixel_init.description=initialization +bg.DuinoEDU_neopixel_pixel_colorGRB=Neopixel GRB Pixel Color +bg.DuinoEDU_neopixel_pixel_colorGRB.description=Pixel Color between 0 and 1000 for each color +bg.DuinoEDU_neopixel_pixel_colorRGB=Neopixel RGB Pixel Color +bg.DuinoEDU_neopixel_pixel_colorRGB.description=Pixel Color between 0 and 1000 for each color +bg.DuinoEDU_neopixel_show=Neopixel Show +bg.DuinoEDU_neopixel_show.description=Push the color data to the strip +bg.DuinoEDU_neopixel_Brightness=Neopixel Brightness +bg.DuinoEDU_neopixel_Brightness.description=Brightness between 0 and 1000 +bg.DuinoEDU_neopixel_Clear=Neopixel Clear +bg.DuinoEDU_neopixel_Clear.description=Clear all led +bg.DuinoEDU_stepper_step=Stepper Motor Step +bg.DuinoEDU_stepper_step.description= Number of step of the Motor +bg.DuinoEDU_stepper_setSpeed=Stepper Motor setSpeed +bg.DuinoEDU_stepper_setSpeed.description=Set speed of Stepper Motor +bg.DuinoEDU_matrice_write=Matrice Write +bg.DuinoEDU_matrice_write.description=Turn on one Led of the matrice +bg.DuinoEDU_matrice_clear=Matrice Clear +bg.DuinoEDU_matrice_clear.description=Clear the Matrice +bg.DuinoEDU_matrice_Brightness=Matrice Brightness +bg.DuinoEDU_matrice_Brightness.description=Brightness between 0 and 15 +bg.DuinoEDU_Led=LED +bg.DuinoEDU_Led.description=LED Module +bg.DuinoEDU_Servo_Plus=Servo Plus +bg.DuinoEDU_Servo_Plus.description=Servo Plus +bg.DuinoEDU_SerialOscillo=SerialOscillo +bg.DuinoEDU_SerialOscillo.description=SerialOscillo Duinoedu.com +bg.DuinoEDU_SerialOscillo_Init=SerialOscillo Init +bg.DuinoEDU_SerialOscillo_Init.description=SerialOscillo Init Duinoedu.com +bc.serial_broche=Number of Dial +bc.dial=Dial +bc.in=In +bg.DuinoEDU_Volts=Volts +bg.DuinoEDU_VALEURS_BRUTES=Gross Value +bg.DuinoEDU_CM=CM +bg.DuinoEDU_DEGRES=\u00B0C +bg.DuinoEDU_Nunchuck_BoutonC=Bouton C +bg.DuinoEDU_Nunchuck_BoutonC.description=Nunchuck +bg.DuinoEDU_Nunchuck_BoutonZ=Bouton Z +bg.DuinoEDU_Nunchuck_BoutonZ.description= +bg.DuinoEDU_Nunchuck_JoystickX=Joystick X +bg.DuinoEDU_Nunchuck_JoystickX.description= +bg.DuinoEDU_Nunchuck_JoystickY=Joystick Y +bg.DuinoEDU_Nunchuck_JoystickY.description= +bg.DuinoEDU_Nunchuck_AccelerationX=ACC X +bg.DuinoEDU_Nunchuck_AccelerationX.description= +bg.DuinoEDU_Nunchuck_AccelerationY=ACC Y +bg.DuinoEDU_Nunchuck_AccelerationY.description= +bg.DuinoEDU_Nunchuck_AccelerationZ=ACC Z +bg.DuinoEDU_Nunchuck_AccelerationZ.description= + +bc.DuinoEDU_Brightness=Brightness +bc.DuinoEDU_Display=Display +bg.DuinoEDU_On_digit1=1 +bg.DuinoEDU_On_digit2=2 +bg.DuinoEDU_On_digit3=3 +bg.DuinoEDU_On_digit4=4 +bc.DuinoEDU_On_digit=On digit +bc.DuinoEDU_On_digit1=On digit1 +bc.DuinoEDU_On_digit2=On digit2 +bc.DuinoEDU_On_digit3=On digit3 +bc.DuinoEDU_On_digit4=On digit4 +bc.DuinoEDU_Display_Point=Display Point +bg.DuinoEDU_setSerialInfosOn=ON +bg.DuinoEDU_setSerialInfosOff=OFF +bc.DuinoEDU_serial_display=Display on serial +bc.red=Red +bc.blue=Blue +bc.green=Green +bc.stepperround=Step per Round +bc.step=Nb Step +bg.DuinoEDU_equal=Equal +bg.DuinoEDU_not_equal=Not Equal + +bg.ls_10mmLEDModule.description=10mm Blue/Green/Yellow/Red LED Module +bg.ls_5mmLEDModule.description=5mm Blue/Green/Yellow/Red LED Module +bg.ls_AccelerometerModule_x.description=Based on the excellent ADXL-345, this digital 3-axis accelerometer has excellent EMI protection. +bg.ls_AccelerometerModule_y.description=Based on the excellent ADXL-345, this digital 3-axis accelerometer has excellent EMI protection. +bg.ls_AccelerometerModule_z.description=Based on the excellent ADXL-345, this digital 3-axis accelerometer has excellent EMI protection. +bg.ls_ButtonModule.description=Button Module +bg.ls_BuzzerModule.description=Buzzer Module +bg.ls_HallSensor.description=Hall Sensor +bg.ls_HighPowerLedModule.description=High Power Led Module +bg.ls_JoystickSensorModule_x.description=Joystick Sensor Module +bg.ls_JoystickSensorModule_y.description=Joystick Sensor Module +bg.ls_LDRModule.description=LDR Module +bg.ls_LEDBar.description=LED Bar +bg.ls_Linear-SlidePotentiometerModule.description=Linear/Slide Potentiometer Module +bg.ls_MagneticSwitch.description=Magnetic Switch +bg.ls_MosfetModule.description=Mosfet Module +bg.ls_RelayModule.description=Relay Module +bg.ls_RotaryPotentiometerModule.description=Rotary Potentiometer Module +bg.ls_RTCModule.description=RTC Module +bg.ls_SoundSensor.description=Sound Sensor +bg.ls_ThermalModule.description=Thermal Module +bg.ls_TiltModule.description=Tilt Module +bg.ls_TouchSensorModule.description=Touch Sensor Module +bg.random_range.description=Generate random number between min and (max - 1) + +bg.panda_i1=panda I1 +bg.panda_i2=panda I2 +bg.panda_i3=panda I3 +bg.panda_i4=panda I4 +bg.panda_i5=panda I5 +bg.panda_i6=panda I6 + +bg.panda_o1=panda O1 +bg.panda_o2=panda O2 +bg.panda_o3=panda O3 +bg.panda_o4=panda O4 +bg.panda_o5=panda O5 +bg.panda_o6=panda O6 + +bd.network=Networking +bg.bleshield=BLE Shield +bg.bleshield.description=BLE Shield for Bluetooth Communication +bg.bleshield_available=BLE Shield Data Available? +bg.bleshield_read_poly=read from BLE Shield + +bd.adafruit.description=Adafruit Motorshield +bg.ada_dc_motor_fwd=Adafruit DC motor FORWARD +bg.ada_dc_motor_bwd=Adafruit DC motor BACKWARD +bg.ada_dc_motor_release=Adafruit DC motor RELEASE +bg.ada_neopixel_NEO_GRB=NEO_GRB +bg.ada_neopixel_NEO_RGB.description=NEO_RGB +bg.ada_neopixel_NEO_KHZ400=NEO_KHZ400 +bg.ada_neopixel_NEO_KHZ800=NEO_KHZ800 +bg.ada_neopixel_init=initialization +bg.ada_neopixel_pixel_colorGRB=Pixel Color between 0 and 255 for each color +bg.ada_neopixel_pixel_colorRGB=Pixel Color between 0 and 255 for each color +bg.ada_neopixel_show= Push the color data to the strip +bg.ada_neopixel_Brightness=Brightness between 0 and 255 +bg.ada_dc_motor_fwd.description= +bg.ada_dc_motor_bwd.description= +bg.ada_dc_motor_release.description= +bg.ada_neopixel_init.description= +bg.ada_neopixel_pixel_colorGRB.description= +bg.ada_neopixel_pixel_colorRGB.description= +bg.ada_neopixel_show.description= +bg.ada_neopixel_Brightness.description= + +bd.makeblock=Makeblock +bc.shutter_state=Action +bc.port_number=PORT_# +bc.motor_number=M# +bc.m1=M1 +bc.m2=M2 +bc.command_number=Type +bc.speed_number=Speed +bc.acceleration_number=Acceler +bc.moveTo_number=MoveTo +bc.angle_number=Angle +bc.input_data=Data +bc.device_number=Device +bc.output_data=Data +bc.commands=Commands +bc.stepper_finish=Finish +bc.me_key_down=KeyDown +bc.me_key_up=KeyUp +bg.me_port_1=PORT 1 +bg.me_port_1.description= Me Base Shield Port +bg.me_port_2=PORT 2 +bg.me_port_3=PORT 3 +bg.me_port_4=PORT 4 +bg.me_port_5=PORT 5 +bg.me_port_6=PORT 6 +bg.me_port_7=PORT 7 +bg.me_port_8=PORT 8 +bg.me_motor_1=M1 +bg.me_motor_1.description= Me Base Shield DC Motor Port +bg.me_motor_2=M2 +bg.me_shutter_1=Shot On +bg.me_shutter_1.description= Me Shutter Action +bg.me_shutter_2=Shot Off +bg.me_shutter_3=Focus On +bg.me_shutter_4=Focus Off +bg.me_ultrasonic_sensor= +bg.me_ultrasonic_sensor.description=return distance between Object to Sensor. +bg.me_linefinder= +bg.me_linefinder.description=return 0-3 for Left And Right Side State. +bg.me_limitswitch= +bg.me_limitswitch.description=It sends a signal to the controller when it is triggered. +bg.me_shutter= +bg.me_shutter.description=It sends a signal to the DSLR Camera for shot and focus. +bg.me_motordriver= +bg.me_motordriver.description=Motor can use M1,M2,Port_1 and Port_2. +bg.me_servodriver= +bg.me_servodriver.description=Servo can use Port_1 and Port_2,device can use 1 and 2. +bg.me_stepper_motor= +bg.me_stepper_motor.description=Mini stepper motor driver base on A4988.Compatible with 4 and 6 wire stepper motors. +bg.me_infraredreceiver= +bg.me_infraredreceiver.description=Receive Data from Infrared Controller +bg.me_bluetooth_read= +bg.me_bluetooth_read.description=Bluetooth Read Byte Data +bg.me_bluetooth_write= +bg.me_bluetooth_write.description=Bluetooth Write Byte Data +bg.me_bluetooth_commands = +bg.me_bluetooth_commands.description=Commands Parser For Android App's Communication. +bg.me_bluetooth_command = +bg.me_bluetooth_command.description=return (0:module,1:device ID,2:mode,3:port,4:value) + +#workshop blocks +bd.workshop=Workshop template +bg.ws_setting=Setting +bg.ws_setting.description=setup a robot +bg.ws_go_forward=Go +bg.ws_go_forward.description=go forward +bg.ws_go_backward=Back +bg.ws_go_backward.description=go backward +bg.ws_stop=Stop +bg.ws_stop.description=stop moving +bg.ws_turn_left=Turn left +bg.ws_turn_left.description=turn left +bg.ws_turn_right=Turn Right +bg.ws_turn_right.description=turn right +bg.ws_go_forward_left=Go Left +bg.ws_go_forward_left.description=go forward left +bg.ws_go_forward_right=Go Right +bg.ws_go_forward_right.description=go forward right +bg.ws_go_backward_left=Back Left +bg.ws_go_backward_left.description=go back left +bg.ws_go_backward_right=Back Right +bg.ws_go_backward_right.description=go back right +bg.ws_light=Light +bg.ws_light.description=stop moving +bg.ws_scan=Scan +bg.ws_scan.description=Scan an obstacle +bg.ws_music=Music +bg.ws_music.description=play music +bg.ws_wireless=Wrieless +bg.ws_wireless.description=Wireless +bg.ws_danger=In Danger +bg.ws_danger.description=is robot in danger? +bg.ws_binoculars=Binoculars +bg.ws_binoculars.description=Binoculars + +#InsectBot blocks +bd.insectbot=Insect Bot +bg.insectbot_get_distance=Distance +bg.insectbot_get_distance.description=get distance of obstacle in front of robot +bg.insectbot_is_indanger=In Danger? +bg.insectbot_is_indanger.description=is robot in danger? +bg.insectbot_go_forward=Go Forward +bg.insectbot_go_forward.description=go forward +bg.insectbot_go_backright=go back right +bg.insectbot_go_backright.description=go back right +bg.insectbot_turn_left=turn left +bg.insectbot_turn_left.description=turn left +bg.insectbot_blink_led=blink +bg.insectbot_blink_led.description=blink led + + +##iDrawing blocks +bd.iDrawing=4Drawing +bg.led_mode_flash=Flash +bg.led_mode_flash.description=Flashing +bg.led_mode_fade=Fade +bg.led_mode_fade.description=Fading +bg.port_pin_name=5 +bg.port_pin_name.description=Pin Name(5,6,9,10,11, A0,A1,A2,A3,A4,A5, UART,I2C) + +bg.trigger_equal=== +bg.trigger_equal.description=== +bg.trigger_greater=> +bg.trigger_greater.description=> +bg.trigger_less=< +bg.trigger_less.description=< + +bg.player_mode_random=Random +bg.player_mode_random.description=play song randomly + +bg.player_mode_single=Single +bg.player_mode_single.description=play the specified song + +bg.output_mode_low=Low +bg.output_mode_low.description=Low lever +bg.output_mode_high=High +bg.output_mode_high.description=High lever + +bg.output_mode_lowpulse=Low Pulse +bg.output_mode_lowpulse.description=Low pulse + +bg.output_mode_highpulse=High Pulse +bg.output_mode_highpulse.description=High pulse + + +# +bg.iDrawing_set_para=Set 4Drawing +bg.iDrawing_set_para.description=Set parameters in setup +bg.iDrawing_run= Run 4Drawing +bg.iDrawing_run.description=Running in loop + + +bg.iDrawing_rule_start=Start +bg.iDrawing_rule_start.description=Start Rule + +bg.iDrawing_rule_stop=Stop +bg.iDrawing_rule_stop.description=Stop Rule + +bg.iDrawing_rule_sleep=Sleep +bg.iDrawing_rule_sleep.description=System go to sleep state + +# +bg.iDrawing_trigger_time=Time +bg.iDrawing_trigger_time.description=Time + +bg.iDrawing_trigger_dpin=Digital input +bg.iDrawing_trigger_dpin.description=digital input + +bg.iDrawing_trigger_apin=Analog input +bg.iDrawing_trigger_apin.description=analog input + + +bc.pin_name=Pin Name +bc.wake_condition=Wake condition +bc.duration=Duration(5-180s) +bc.rules=Rules +bc.trigger_logic=Logic +bc.analog_value=Value(0-100) +bc.digital_status=Status + + + + +bc.trigger=Trigger +bc.actuator=Actuator + + +bc.time=Second + +# +bg.iDrawing_actuator_led=LED +bg.iDrawing_actuator_led.description=LED + +bg.iDrawing_actuator_playermini=Player +bg.iDrawing_actuator_playermini.description=DFPlayer Mini + +bg.iDrawing_actuator_dpin=Digital Output +bg.iDrawing_actuator_dpin.description=digital output + + +bc.mode=Mode +bc.period=Period(ms) +bc.songname=Song + +bg.testdatablock=test +bg.testdatablock.description=test + + + +#legacy support +bg.loop1=loop +bg.loop1.description=loop +bg.loop2=loop +bg.loop2.description=loop +bg.loop3=loop +bg.loop3.description=loop + +# littlebits +bd.littlebits=LittleBits +bg.little_bits_bendsensor=BendSensor +bg.little_bits_bendsensor.description=This is BendSensor +bg.little_bits_button=Button +bg.little_bits_button.description=This is Button +bg.little_bits_dimmer=Dimmer +bg.little_bits_dimmer.description=This is Dimmer +bg.little_bits_lightsensor=LightSensor +bg.little_bits_lightsensor.description=This is LightSensor +bg.little_bits_lighttrigger=LightTrigger +bg.little_bits_lighttrigger.description=This is LightTrigger +bg.little_bits_microphone=Microphone +bg.little_bits_microphone.description=This is Microphone +bg.little_bits_motiontrigger=MotionTrigger +bg.little_bits_motiontrigger.description=This is MotionTrigger +bg.little_bits_pressuresensor=PressureSensor +bg.little_bits_pressuresensor.description=This is PressureSensor +bg.little_bits_pulse=Pulse +bg.little_bits_pulse.description=This is Pulse +bg.little_bits_remotetrigger=RemoteTrigger +bg.little_bits_remotetrigger.description=This is RemoteTrigger +bg.little_bits_rollerswitch=RollerSwitch +bg.little_bits_rollerswitch.description=This is RollerSwitch +bg.little_bits_slidedimmer=SlideDimmer +bg.little_bits_slidedimmer.description=This is SlideDimmer +bg.little_bits_slideswitch=SlideSwitch +bg.little_bits_slideswitch.description=This is SlideSwitch +bg.little_bits_soundtrigger=SoundTrigger +bg.little_bits_soundtrigger.description=This is SoundTrigger +bg.little_bits_timeout=TimeOut +bg.little_bits_timeout.description=This is TimeOut +bg.little_bits_toggleswitch=ToggleSwitch +bg.little_bits_toggleswitch.description=This is ToggleSwitch +bg.little_bits_mix=mix +bg.little_bits_mix.description=This is mix +bg.little_bits_oscillator=oscillator +bg.little_bits_oscillator.description=This is oscillator +bg.little_bits_random=random +bg.little_bits_random.description=This is random +bg.little_bits_bargraph=Bargraph +bg.little_bits_bargraph.description=This is Bargraph +bg.little_bits_brightled=BrightLED +bg.little_bits_brightled.description=This is BrightLED +bg.little_bits_dcmotor=DCMotor +bg.little_bits_dcmotor.description=This is DCMotor +bg.little_bits_fan=Fan +bg.little_bits_fan.description=This is Fan +bg.little_bits_ir_led=IR_LED +bg.little_bits_ir_led.description=This is IR_LED +bg.little_bits_led=LED +bg.little_bits_led.description=This is LED +bg.little_bits_lightwire=Lightwire +bg.little_bits_lightwire.description=This is Lightwire +bg.little_bits_longled=LongLED +bg.little_bits_longled.description=This is LongLED +bg.little_bits_number=Number +bg.little_bits_number.description=This is Number +bg.little_bits_rgbled=RGBLED +bg.little_bits_rgbled.description=This is RGBLED +bg.little_bits_uvled=UVLED +bg.little_bits_uvled.description=This is UVLED +bg.little_bits_vibration_motor=Vibration_Motor +bg.little_bits_vibration_motor.description=This is Vibration_Motor +bg.little_bits_synthspeaker=synthspeaker +bg.little_bits_synthspeaker.description=This is synthspeaker + +bd.ke-keenlon=Keenlon +bg.ke-motor-run=motor run +bc.ke-motor-run-leftspeed=left speed +bc.ke-motor-run-rightspeed=right speed +bg.ke-motor-setmoto=motor setmoto +bc.ke-motor-setmoto-motonumber=motor number +bc.ke-motor-setmoto-motospeed=motor speed +bg.ke-motor-stop=motor stop +bg.ke-tft-print=TFT print +bc.ke-tft-print-line=line num +bc.ke-tft-print-string=string +bc.ke-tft-print-param1=param1; +bc.ke-tft-print-param2=param2; +bc.ke-tft-print-param3=param3; +bc.ke-tft-print-param4=param4; +bc.ke-tft-print-param5=param5; +bg.ke-tft-clear=TFT clear +bg.ke-eye-minvalue=eye min value +bg.ke-eye-minindex=eye min index +bg.ke-eye-maxvalue=eye max value +bg.ke-eye-maxindex=eye max index +bg.ke-eye-singlevalue=eye get a channel +bc.ke-eye-singlevalue-numble=channel num +bg.ke-button-getbutton=get button +bg.ke-encoder-clear=encoder clear +bc.ke-encoder-clear-index=encoder num +bg.ke-encoder-getencoder=get encoder +bc.ke-encoder-getencoder-index=encoder num +bg.ke-tft-msg=tft msg +bg.ke-tft-add=tft add variable +bg.ke-ground-light=ground light +bg.ke-light=light +bg.ke-Potentiometer=Potentiometer +bg.ke-buzzer=buzzer +bg.ke-ground-light=ground light +bg.ke-led-on-off=led on off +bg.ke-led-pwm=led pwm +bg.ke-light=light +bg.ke-mic=mic +bg.ke-photo=photo +bg.ke-potentiometer=Potentiometer +bg.ke-relays=relays +bg.ke-tempe=Temperature sensor +bg.ke-touch=touch sensor +bg.ke-psd=sharp GP2Y0A21 +bg.ke-compass=compass +bc.ke-digital-state=state +bc.ke-led-on-off-state=state +bc.ke-led-pwm-Brightness=Brightness +bg.ke-servo=servo +bg.ke-motor-run.description= +bg.ke-motor-setmoto.description= +bg.ke-motor-stop.description= +bg.ke-tft-print.description= +bg.ke-tft-clear.description= +bg.ke-eye-minvalue.description= +bg.ke-eye-minindex.description= +bg.ke-eye-maxvalue.description= +bg.ke-eye-maxindex.description= +bg.ke-eye-singlevalue.description= +bg.ke-button-getbutton.description= +bg.ke-encoder-clear.description= +bg.ke-encoder-getencoder.description= +bg.ke-tft-add.description= +bg.ke-compass.description= +bg.ke-buzzer.description= +bg.ke-ground-light.description= +bg.ke-led-on-off.description= +bg.ke-led-pwm.description= +bg.ke-light.description= +bg.ke-mic.description= +bg.ke-photo.description= +bg.ke-potentiometer.description= +bg.ke-relays.description= +bg.ke-tempe.description= +bg.ke-psd.description= +bg.ke-touch.description= +bg.ke-servo.description= + +bd.jerusalab=Jerusalab +bg.midi_command=Midi Controller Command +bg.midi_command.description=Sends a Midi command to the computer via serial connection, to be consumed by application such as Hairless Midi +bg.midi_note=Midi Note +bg.Midi_C=C +bg.Midi_CS=C# +bg.Midi_D=D +bg.Midi_DS=D# +bg.Midi_E=E +bg.Midi_F=F +bg.Midi_FS=F# +bg.Midi_G=G +bg.Midi_GS=G# +bg.Midi_A=A +bg.Midi_AS=A# +bg.Midi_B=B + +bg.color=48 63 159 diff --git a/src/main/resources/com/ardublock/block/Skins/slim/ardublock.xml b/src/main/resources/com/ardublock/block/Skins/slim/ardublock.xml new file mode 100644 index 00000000..fe48b25c --- /dev/null +++ b/src/main/resources/com/ardublock/block/Skins/slim/ardublock.xml @@ -0,0 +1,9742 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + repeat + + A variable to track the repetitions + + + Start value of variable + + + End value of variable + + + How much to change variable each time + + + A list of commands to do. + + + + + + + + + + + + + + + + + + + + + + + this is the loop of the arduino + + A list of commands to run first, and once only. + + + A list of commands to repeat forever, after setup commands have finished. + + + + + + + + + + + this is the loop of the arduino + + A list of commands to repeat forever. + + + + + + + + + + + + + + + program delay in x milliseconds + + + + + + + + + + + If + + is true, the agent will run the blocks attached to + + + + A logical test. Is it TRUE or FALSE? + + + + A list of commands to do if the test is TRUE. + + + + + + + + + + + + Does the first list of commands if the test specified is + true, otherwise it will do the second list of commands. + + + A logical test. Is it TRUE or FALSE? + + + + A list of commands to do if the test is TRUE. + + + + A list of commands to do if the test is FALSE. + + + + + + + + + + + + + While Block + + + A logical test. Is it TRUE or FALSE? + + + + A list of commands to repeat while the test is TRUE. + + + + + + + + + + + + Do While Block + + + A list of commands to do. + + + A logical test. Do the commands again if the test is TRUE + + + + + + + + + + + + + Repeat the commands for "times" + + + + + + Repeat the commands for "times" + + How many times to repeat the commands + + + A list of commands to do be repeated. + + + + + + + + + + + + + repeat + + A variable to track the repetitions + + + How many times to repeat the commands + + + A list of commands to do be repeated. + + + + + + + + + + + + + + + subroutine + + + + + + + + + invoke subroutine + + + + + program delay in x microseconds + + + + + + + + + + + this is the loop of the arduino + + A list of commands to run first, and once only. + + + A list of commands to repeat forever, after setup commands have finished. + + + + + + + + + + + this is the loop of the arduino + + A list of commands to repeat forever. + + + + + + + + + + Task sleep in x milliseconds + + + + + + + + + + + + event flag + + + + + + + + event flag + + + + + + + + event flag + + + + + + + + event flag + + + + + + + + event flag + + + + + + + + + + + SCoop Event on pin + + Pin number to watch. + + + What kind of event to watch for. + + + A list of commands to run when the event is detected on the pin. + + + + + + + + + + + + + + + + + + + + Read digital from the pin + + + + + + + + + + + + + Read digital from the pin. Default High + + + + + + + + + + + Read analog value from pin + + + + + + + + + + + write digital to pin + + + + + + + + + + + + + + write analog to pin + + + + + + + + + + + + + + Generates a square wave of the specified frequency (and 50% + duty cycle) on a pin. + + + + + + + + + + + + + + + + Generates a square wave of the specified frequency (and 50% + duty cycle) on a pin. + + + + + + + + + + + + + + + + + + Stops the generation of a square wave triggered by tone(). + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + DDRA + + + + + + + + + + + DDRB + + + + + + + + + + + DDRC + + + + + + + + + + + DDRD + + + + + + + + + + + DDRH + + + + + + + + + + + DDRL + + + + + + + + + + + PORTA + + + + + + + + + + + PORTB + + + + + + + + + + + PORTC + + + + + + + + + + + PORTD + + + + + + + + + + + PORTH + + + + + + + + + + + PORTL + + + + + + + + + + + PINA + + + + + + + + PINB + + + + + + + + PINC + + + + + + + + PIND + + + + + + + + PINH + + + + + + + + PINL + + + + + + + + + + + + Reports the sum of two numbers ( + + + + + ). + + + + + + + + + + + + + + + + Reports the difference of two numbers ( + + - + + ). + + + + + + + + + + + + + + + + Reports the product of two numbers ( + + x + + ). + + + + + + + + + + + + + + + + Reports the quotient of two numbers ( + + ÷ + + ). + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + generate a random number less than the number + + + + + + + + + + + + Generate random number between min and (max - 1) + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + map value from [0, 1023] to [0, 255] + + + + + + + + + + + + map + + + + + + + + + + + + + + + + + + + + + + Constrain a number between two values + + + + + + + + + + + + + + + + + + is upper number greater then lower? + + + + + + + + + + + + + + is upper number less then lower? + + + + + + + + + + + + + + is upper number greater then lower? + + + + + + + + + + + + + is upper number greater then lower? + + + + + + + + + + + + + + is upper number greater then lower? + + + + + + + + + + + + + + is upper number greater then lower? + + + + + + + + + + + + + + is upper number greater then lower? + + + + + + + + + + + + + + is upper number greater then lower? + + + + + + + + + + + + + + is upper string greater then lower? + + + + + + + + + + + + + + + is upper string less then lower? + + + + + + + + + + + + + + + is upper string greater then lower? + + + + + + + + + + + + + + + + is upper string greater then lower? + + + + + + + + + + + + + + + is upper string greater then lower? + + + + + + + + + + + + + + + is upper string greater then lower? + + + + + + + + + + + + + + + + is equalsIgnoreCase then lower? + + + + + + + + + + + + + + + is equals then ? + + + + + + + + + + + + + + + is compareTo ? + + + + + + + + + + + + + + + is a numeric string compared to the number it represents + + + + + + + + + + + + + + + + Reports true if both of the two conditions are true. + + + + + + + + + + + + + + Reports true if one or both of the two conditions are true. + + + + + + + + + + + + + Reports the opposite of + + . + + + + + + + + + + + is upper number greater then lower? + + + + + + + + + + + + + + + + is upper number greater then lower? + + + + + + + + + + + + + + is upper number greater then lower? + + + + + + + + + + + + + + is upper number greater then lower? + + + + + + + + + + + + is upper number greater then lower? + + + + + + + + + + + + + + is upper number greater then lower? + + + + + + + + + + + + + + + Time in milliseconds + + + + + + + + + + Standard integer constant + + + + + + + + + + + Digital Pin Constant + + + + + + + + + + + Digital Pin Constant + + + + + + + + + + + Digital Pin Constant + + + + + + + + + + Digital Pin Constant + + + + + + + + + + + Digital Pin Constant + + + + + + + + + + + Analog Pin Constant + + + + + + + + + + + PWM Pin Constant + + + + + + + + + + + 'Unsigned Long' constant + + + + + + + + + + + 'Double' constant + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Pin HIGH + + + + + + + + + + + Pin LOW + + + + + + + + + + + + Reports the boolean true. + + + + + + + + + + + Reports the boolean false. + + + + + + + + + + + Integer Var + + + + + + + + + + + Unsigned Long Var + + + + + + + + + + + Double + + + + + + + + + + + Digital Var + + + + + + + + + + string message + + + + + + + + + set integer variable + + + + + + + + + + + + + + set a large integer variable + + + + + + + + + + + + + + set decimal variable + + + + + + + + + + + + + + write digital to pin + + + + + + + + + + + + + + + Array member value + + + + + + + + + + + + + create a vector of numbers + + + + + + + + + + + + + + + Set a vector number + + + + + + + + + + + + + + + + + create a vector of numbers + + + + + + + + + + + + + + + + character variable + + + + + + + + + + + character + + + + + + + + + + set String variable + + + + + + + + + + + + + + + Variable String + + + + + + + + + + Servo Default + + + + + + + + + + + + com/ardublock/block/SG90.png + + + + + + + SG90 + + + + + + + + + + + + com/ardublock/block/SG90.png + + + + + + + Servo MG996R + + + + + + + + + + + + com/ardublock/block/SG90.png + + + + + + + Ultrasonic distance sensor + + + + + + + + + + + + + com/ardublock/block/ultrasonic.png + + + + + + + 20 Char by 4 Line LCD display + + + + + + + + + + + + + + + + + + com/ardublock/block/LCD20by4.png + + + + + + + 16 Char by 2 Line LCD display + + + + + + + + + + + + + + + + + + com/ardublock/block/LCD20by4.png + + + + + + + 16 Char by 2 Line LCD display + + + + + + + + + + + + + + + + + + com/ardublock/block/LCD16by2.png + + + + + + + Clear LCD + + + + + + + + + + + Home LCD + + + + + + + + + + + Home LCD + + + + + + + + + + + Home LCD + + + + + + + + + + + Home LCD + + + + + + + + + + + Home LCD + + + + + + + + + + + Home LCD + + + + + + + + + + + Home LCD + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + send message via Serial port + + + + + + + + + + + + + + string message + + + + + + + + + + glue number to string + + + + + + + + + + glue boolean to string + + + + + + + + + + + + + + + + + + + + write data via I2C + + + + + + + + + + + + + + + + + read data from i2c + + + + + + + + + + + + + + + is last read from I2C success? + + + + + + + + + + EEPROM Read integer + + + + + + + + + + + + EEPROM Write integer + + + + + + + + + + + + + + EEPROM Read 'unsigned long' + + + + + + + + + + + + EEPROM Write 'unsigned long' + + + + + + + + + + + + + + EEPROM Read + + + + + + + + + + + + EEPROM Write + + + + + + + + + + + + + + Write to SD card + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + send message via Serial port + + + + + + + + + + send message via Serial port + + + + + + + + + + send message via Serial port + + + + + + + + + + + + + + + + + + + + + + + Digital Var + + + + + + + + + + + + + + + + + + + + + + send message via Serial port + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + send message via Serial port + + + + + + + + + + + send message via Serial port + + + + + + + + + + + send message via Serial port + + + + + + + + + TinkerKit LED + + + + + + + + + + + + com/ardublock/block/arduino/Tinker_LED.jpg + + + + + + + TinkerKit LED + + + + + + + + + + + + com/ardublock/block/arduino/Tinker_LED.jpg + + + + + + + TinkerKit Mosfet + + + + + + + + + + + + com/ardublock/block/arduino/Tinker_Mosfet.jpg + + + + + + + TinkerKit Mosfet + + + + + + + + + + + + com/ardublock/block/arduino/Tinker_Mosfet.jpg + + + + + + + TinkerKit Relay + + + + + + + + + + + + com/ardublock/block/arduino/Tinker_Relay.jpg + + + + + + + TinkerKit Servo + + + + + + + + + + + + com/ardublock/block/arduino/Tinker_Servo.jpg + + + + + + + TinkerKit Button + + + + + + + + + + com/ardublock/block/arduino/Tinker_Button.png + + + + + + + TinkerKit Accelerometer + + + + + + + + + + com/ardublock/block/arduino/Tinker_Accmeter.png + + + + + + + TinkerKit Hall Sensor + + + + + + + + + + com/ardublock/block/arduino/Tinker_Hall.png + + + + + + + TinkerKit LDR + + + + + + + + + + com/ardublock/block/arduino/Tinker_LDR.jpg + + + + + + + TinkerKit Accelerometer + + + + + + + + + + com/ardublock/block/arduino/Tinker_LinearPotentiometer.jpg + + + + + + + TinkerKit RotaryPotentiometer + + + + + + + + + + com/ardublock/block/arduino/Tinker_RotaryPotentiometer.jpg + + + + + + + TinkerKit Thermistor + + + + + + + + + + com/ardublock/block/arduino/Tinker_Thermistor.jpg + + + + + + + TinkerKit Touch Sensor + + + + + + + + + + com/ardublock/block/arduino/Tinker_Touch.jpg + + + + + + + TinkerKit Servo + + + + + + + + + + + + com/ardublock/block/arduino/Tinker_Servo.jpg + + + + + + + TinkerKit Tilt + + + + + + + + + + com/ardublock/block/arduino/Tinker_Tilt.jpg + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + forward + + + + + + + + + + + + com/ardublock/block/motor.jpg + + + + + + + Moving the car backward + + + + + + + + + + + + com/ardublock/block/motor.jpg + + + + + + + Write ditial singal to Socket + + + + + + + + + + + + + + Read digital status from socket + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + com/ardublock/block/dfrobot/dfr0027.png + + + + + + + + + + + + + + com/ardublock/block/dfrobot/dfr0028.png + + + + + + + + + + + + + + com/ardublock/block/dfrobot/sen0018.png + + + + + + + + + + + + + + com/ardublock/block/dfrobot/dfr0094.jpg + + + + + + + + + + + + + + com/ardublock/block/dfrobot/sen0019.jpg + + + + + + + + + + + + + + com/ardublock/block/dfrobot/sen0017.jpg + + + + + + + + + + + + + + com/ardublock/block/dfrobot/dfr0029.png + + + + + + + + + + + + + + com/ardublock/block/dfrobot/dfr0061.png + + + + + + + + + + + + + + com/ardublock/block/dfrobot/dfr0030.png + + + + + + + + + + + + + + com/ardublock/block/dfrobot/dfr0033.png + + + + + + + + Vibration Sensor buffers a piezoelectric transducer that + responds to strain changes by generating a measurable output + voltage change which is proportional to the strength + of vibration. + + + + + + + + + + + com/ardublock/block/dfrobot/dfr0052.png + + + + + + The ambient light sensor detects light density. + + + + + + + + + + com/ardublock/block/dfrobot/dfr0026.png + + + + + + Analog Grayscale Sensor detect the grayscale. + + + + + + + + + + com/ardublock/block/dfrobot/dfr0022.png + + + + + + Read analog value from pin + + + + + + + + + + com/ardublock/block/dfrobot/dfr0076.png + + + + + + + Read analog value from pin + + + + + + + + + + com/ardublock/block/dfrobot/dfr0143.png + + + + + + + Read analog value from pin + + + + + + + + + + com/ardublock/block/dfrobot/dfr0143.png + + + + + + + + Read analog value from pin + + + + + + + + + + com/ardublock/block/dfrobot/dfr0143.png + + + + + + + Read analog value from pin + + + + + + + + + + com/ardublock/block/dfrobot/sen0014.png + + + + + + + Read analog value from pin + + + + + + + + + + com/ardublock/block/dfrobot/sen0114.png + + + + + + + + Read analog value from pin + + + + + + + + + + com/ardublock/block/dfrobot/dfr0023.png + + + + + + Read analog value from pin + + + + + + + + + + com/ardublock/block/dfrobot/dfr0061.png + + + + + + Read analog value from pin + + + + + + + + + + com/ardublock/block/dfrobot/dfr0061.png + + + + + + Read analog value from pin + + + + + + + + + + com/ardublock/block/dfrobot/dfr0068.jpg + + + + + + Read analog value from pin + + + + + + + + + + com/ardublock/block/dfrobot/dfr0068.jpg + + + + + + Read analog value from pin + + + + + + + + + + com/ardublock/block/dfrobot/dfr0068.jpg + + + + + + Read analog value from pin + + + + + + + + + + com/ardublock/block/dfrobot/dfr0054.jpg + + + + + + Read analog value from pin + + + + + + + + + + com/ardublock/block/dfrobot/dfr0058.png + + + + + + Read analog value from pin + + + + + + + + + + com/ardublock/block/dfrobot/dfr0034.png + + + + + + Read analog value of sound volume from pin + + + + + + + + + + com/ardublock/block/dfrobot/dfr0034_vol.png + + + + + + Read analog value from pin + + + + + + + + + + com/ardublock/block/dfrobot/dfr0049.jpg + + + + + + + + Read analog value from pin + + + + + + + + + + com/ardublock/block/dfrobot/sen0132.png + + + + + + + Read analog value from pin + + + + + + + + + + com/ardublock/block/dfrobot/dfr0051.png + + + + + + + set a pin to pwm + + + + + + + + + + + + + + set a pin to pwm + + + + + + + + + + + + + + Read analog value from pin + + + + + + + + + + + + Read analog value from pin + + + + + + + + + + + + set a pin to pwm + + + + + + + + + + + + + + set a pin to pwm + + + + + + + + + + + + + + set a pin to pwm + + + + + + DFRobot LED Module + + + + + + + + + + + + com/ardublock/block/dfrobot/dfr0021.png + + + + + + + DFRobot LED Module + + + + + + + + + + + + com/ardublock/block/dfrobot/dfr0021.png + + + + + + + DFRobot piranha LED Module + + + + + + + + + + + + com/ardublock/block/dfrobot/dfr0031.jpg + + + + + + + DFRobot pianha LED Module with brightnes level + + + + + + + + + + + + com/ardublock/block/dfrobot/dfr0031.jpg + + + + + + + Dfrobot Relay Module + + + + + + + + + + + + com/ardublock/block/dfrobot/dfr0017.png + + + + + + + DFRobot buzzer Module + + + + + + + + + + + + com/ardublock/block/dfrobot/dfr0032.png + + + + + + + Generates a square wave of the specified frequency (and 50% + duty cycle) on a pin. + + + + + + + + + + + + + + com/ardublock/block/dfrobot/dfr0032.png + + + + + + + Generates a square wave of the specified frequency (and 50% + duty cycle) on a pin. + + + + + + + + + + + + + + + + com/ardublock/block/dfrobot/dfr0032.png + + + + + + + LCD + + + + + + + + + com/ardublock/block/bulk/lcd2x16-01.jpg + + + + + + + + + + + Read analog value from analog pin + + + + + + + + + + com/ardublock/block/seeedstudio/COM90133P.jpg + + + + + + + Read analog value from analog pin + + + + + + + + + + com/ardublock/block/seeedstudio/COM90133P.jpg + + + + + + + Read analog value from analog pin + + + + + + + + + + com/ardublock/block/seeedstudio/o2.jpg + + + + + + Read analog value from analog pin + + + + + + + + + + com/ardublock/block/seeedstudio/uv.jpg + + + + + + Read analog value from analog pin + + + + + + + + + + com/ardublock/block/seeedstudio/gyro.jpg + + + + + + Read analog value from analog pin + + + + + + + + + + com/ardublock/block/seeedstudio/mq9.jpg + + + + + + Read analog value from analog pin + + + + + + + + + + com/ardublock/block/seeedstudio/mq3.jpg + + + + + + Read analog value from analog pin + + + + + + + + + + com/ardublock/block/seeedstudio/vib_sensor.jpg + + + + + + Read analog value from analog pin + + + + + + + + + + com/ardublock/block/seeedstudio/loud_sensor.jpg + + + + + + Read analog value from analog pin + + + + + + + + + + com/ardublock/block/seeedstudio/diff_amp.jpg + + + + + + Read analog value from analog pin + + + + + + + + + + com/ardublock/block/seeedstudio/ir_temp_sensor.jpg + + + + + + Read analog value from analog pin + + + + + + + + + + com/ardublock/block/seeedstudio/ir_proximity_sensor.jpg + + + + + + Read analog value from analog pin + + + + + + + + + + com/ardublock/block/seeedstudio/electricity_sensor.jpg + + + + + + Read analog value from analog pin + + + + + + + + + + com/ardublock/block/seeedstudio/angle_sensor.jpg + + + + + + Read analog value from analog pin + + + + + + + + + + com/ardublock/block/seeedstudio/sound_sensor.jpg + + + + + + Read analog value from analog pin + + + + + + + + + + com/ardublock/block/seeedstudio/moisture_sensor.jpg + + + + + + Read analog value from analog pin + + + + + + + + + + com/ardublock/block/seeedstudio/temp_sensor.jpg + + + + + + + Read digital from the pin + + + + + + + + + + com/ardublock/block/seeedstudio/voltage_divider.jpg + + + + + + + Read digital from the pin + + + + + + + + + + com/ardublock/block/seeedstudio/flame_sensor.jpg + + + + + + + Read digital from the pin + + + + + + + + + + com/ardublock/block/seeedstudio/button.jpg + + + + + + Read digital from the pin + + + + + + + + + + com/ardublock/block/seeedstudio/switch.jpg + + + + + + Read digital from the pin + + + + + + + + + + com/ardublock/block/seeedstudio/ir_refl_sensor.jpg + + + + + + + Read digital from the pin + + + + + + + + + + com/ardublock/block/seeedstudio/heart_rate_sensor.jpg + + + + + + + Read light + + + + + + + + + + com/ardublock/block/seeedstudio/Light_Sensor.jpg + + + + + + Read digital from the pin + + + + + + + + + + com/ardublock/block/seeedstudio/chest_heart_sensor.jpg + + + + + + + Read digital from the pin + + + + + + + + + + com/ardublock/block/seeedstudio/air_quality_sensor.jpg + + + + + + + Read digital from the pin + + + + + + + + + + com/ardublock/block/seeedstudio/line_finder.jpg + + + + + + + Read digital from the pin + + + + + + + + + + com/ardublock/block/seeedstudio/pir_motion_sensor.jpg + + + + + + + Read digital from the pin + + + + + + + + + + com/ardublock/block/seeedstudio/tilt_switch.jpg + + + + + + + Read digital from the pin + + + + + + + + + + com/ardublock/block/seeedstudio/push_button.jpg + + + + + + + Read digital from the pin + + + + + + + + + + com/ardublock/block/seeedstudio/water_sensor.jpg + + + + + + + Read digital from the pin + + + + + + + + + + com/ardublock/block/seeedstudio/touch_sensor.jpg + + + + + + + Read digital from the pin + + + + + + + + + + com/ardublock/block/seeedstudio/mag_switch.jpg + + + + + + + Read digital from the pin + + + + + + + + + + com/ardublock/block/seeedstudio/ir_dist_int.jpg + + + + + + + Write status to digital pin + + + + + + + + + + + + com/ardublock/block/seeedstudio/circle_led.jpg + + + + + + + Write status to digital pin + + + + + + + + + + + + com/ardublock/block/seeedstudio/2coil_relay.jpg + + + + + + + Write status to digital pin + + + + + + + + + + + + com/ardublock/block/seeedstudio/dry_relay.jpg + + + + + + + Write status to digital pin + + + + + + + + + + + + com/ardublock/block/seeedstudio/solid_relay.jpg + + + + + + + Write status to digital pin + + + + + + + + + + + + com/ardublock/block/seeedstudio/circle_led.jpg + + + + + + + Write status to digital pin + + + + + + + + + + + + com/ardublock/block/seeedstudio/led_strip.jpg + + + + + + + Write status to digital pin + + + + + + + + + + + + com/ardublock/block/seeedstudio/led.jpg + + + + + + + Write status to digital pin + + + + + + + + + + + + com/ardublock/block/seeedstudio/var_led.jpg + + + + + + + Write status to digital pin + + + + + + + + + + + + com/ardublock/block/seeedstudio/vib.jpg + + + + + + + Write status to digital pin + + + + + + + + + + + + com/ardublock/block/seeedstudio/relay.jpg + + + + + + + + + + + + Infrared distance sensor + + + + + + + + + + com/ardublock/block/seeedstudio/infrared.png + + + + + + + temp sensor + + + + + + + + + + com/ardublock/block/seeedstudio/temp_humi.png + + + + + + + temp sensor + + + + + + + + + + com/ardublock/block/seeedstudio/temp_humi_pro.png + + + + + + + humi sensor + + + + + + + + + + com/ardublock/block/seeedstudio/temp_humi.png + + + + + + + humi sensor + + + + + + + + + + com/ardublock/block/seeedstudio/temp_humi_pro.png + + + + + + temp sensor + + + + + + + + + + com/ardublock/block/seeedstudio/Ultrasonic_Ranger.png + + + + + + + + Led_Bar + + + + + + + + + + + + + + + + com/ardublock/block/seeedstudio/led_bar.png + + + + + + + + LCD_I2C_RG + + + + + + + + + + + + com/ardublock/block/seeedstudio/LCD_Serial_RGB_Backlight.png + + + + + + + + LCD_I2C_Backlight + + + + + + + + + + + + + + + com/ardublock/block/seeedstudio/LCD_Serial_RGB_Backlight.png + + + + + + + LCD_I2C_RG_Clear + + + + + + + + Oled_I2C + + + + + + + + + + + + + + + com/ardublock/block/seeedstudio/Oled.png + + + + + + + Oled_Clear + + + + + + + + keyboard post + + + + + + + + + + + + + com/ardublock/block/keyboard.png + + + + + + + + keyboard post + + + + + + + + + + + + + + + + + + + com/ardublock/block/keyboard.png + + + + + + + + + + + + + + + + + + + Mouse X Move + + + + + + + + + + + + + com/ardublock/block/seeedstudio/mouse.png + + + + + + + Mouse Y Move + + + + + + + + + + + + + com/ardublock/block/seeedstudio/mouse.png + + + + + + + + Keypad 12 or 16 Buttons + + + + + + + + + + + + + + + com/ardublock/block/keypad_12_button.png + + + + + + + Keypad post + + + + + + + + + + Keypad pwd + + + + + + + + + + + + + + + + + + + + + + + + + Didital Tube + + + + + + + + + + + + + + + com/ardublock/block/seeedstudio/Didital_Tube.png + + + + + + + Display Didital Tube + + + + + + + + + + + + + + + + com/ardublock/block/seeedstudio/Didital_Tube.png + + + + + + + + + + + + + + + + + + + + + + + + + + + Display Didital Tube + + + + + + + + + + + + + + + + + + + + + com/ardublock/block/seeedstudio/Didital_Tube.png + + + + + + Didital Tube Clear + + + + + + + + + + + Driver I2C forward + + + + + + + + + com/ardublock/block/seeedstudio/I2CMotorDriver.png + + + + + + + Driver I2C back + + + + + + + + + com/ardublock/block/seeedstudio/I2CMotorDriver.png + + + + + + + Driver I2C pivote + + + + + + + + + com/ardublock/block/seeedstudio/I2CMotorDriver.png + + + + + + + Driver I2C Speed A Motor + + + + + + + + + com/ardublock/block/seeedstudio/I2CMotorDriver.png + + + + + + + Driver I2C Speed B Motor + + + + + + + + + com/ardublock/block/seeedstudio/I2CMotorDriver.png + + + + + + + + + + + + + + + + + + + + + + + + Acc mesurer X + + + + + + + com/ardublock/block/seeedstudio/3_aix_acc.png + + + + + + + Acc mesurer Y + + + + + + + com/ardublock/block/seeedstudio/3_aix_acc.png + + + + + + + Acc mesurer Z + + + + + + + + com/ardublock/block/seeedstudio/3_aix_acc.png + + + + + + + Acc mesurer XYZ + + + + + + + com/ardublock/block/seeedstudio/3_aix_acc.png + + + + + + + Acc mesurer Variation + + + + + + + + com/ardublock/block/seeedstudio/3_aix_acc.png + + + + + + + Partie Emetteur + + + + + + + + + + + + com/ardublock/block/seeedstudio/Simple_RF.png + + + + + + + Partie Recepteur + + + + + + + + + + com/ardublock/block/seeedstudio/Simple_RF.png + + + + + + + DuinoEDU_Rfid_Write + + + + + + + + + + + + + + + com/ardublock/block/seeedstudio/rfid.png + + + + + + + DuinoEDU_Rfid_Ram_List + + + + + + + + + + + + + + + com/ardublock/block/seeedstudio/rfid.png + + + + + + + DuinoEDU_Rfid_Test + + + + + + + + + + + com/ardublock/block/seeedstudio/rfid.png + + + + + + DuinoEDU_Rfid_Read + + + + + + + + + com/ardublock/block/seeedstudio/rfid.png + + + + + + DuinoEDU_Rfid_Clear + + + + + + + com/ardublock/block/seeedstudio/rfid.png + + + + + + + DuinoEDU_neopixel_init + + + + + + + + + + + + + + + + + + com/ardublock/block/adafruit/neopixel.png + + + + + + + DuinoEDU_neopixel_pixel_colorGRB + + + + + + + + + + + + + + + + + + + + + com/ardublock/block/adafruit/neopixel.png + + + + + + + DuinoEDU_neopixel_pixel_colorRGB + + + + + + + + + + + + + + + + + + + + + com/ardublock/block/adafruit/neopixel.png + + + + + + DuinoEDU_neopixel_show + + + + + + + + + com/ardublock/block/adafruit/neopixel.png + + + + + + DuinoEDU_neopixel_Brightness + + + + + + + + + + + + com/ardublock/block/adafruit/neopixel.png + + + + + + DuinoEDU_neopixel_Clear + + + + + + + + + com/ardublock/block/adafruit/neopixel.png + + + + + + + DuinoEDU_stepper_step + + + + + + + + + + + + + + + + + + + + + com/ardublock/block/seeedstudio/stepper.png + + + + + + DuinoEDU_stepper_setSpeed + + + + + + + + + + + + + + + + + + + + + + + + com/ardublock/block/seeedstudio/stepper.png + + + + + + DuinoEDU_stepper_setSpeed + + + + + + + + + + + + + + + + + + + + + + + + com/ardublock/block/seeedstudio/matrice-64-spi.png + + + + + + DuinoEDU_matrice_clear + + + + + + + + + + + + + + + com/ardublock/block/seeedstudio/matrice-64-spi.png + + + + + + DuinoEDU_matrice_Brightness + + + + + + + + + + + + + + + + + + com/ardublock/block/seeedstudio/matrice-64-spi.png + + + + + + + Write status to digital pin + + + + + + + + + + + + com/ardublock/block/seeedstudio/LED_BLANCHE_GROVE.png + + + + + + + Servo Plus + + + + + + + + + + + + + + + com/ardublock/block/seeedstudio/SERVO_SG90_DUPONT_ASSEMBLE.png + + + + + + Serial Oscillo + + + + + + + + + + + + + + + Serial Oscillo Init + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Nunchuck BoutonC + + + + + + + com/ardublock/block/seeedstudio/Nunchuck.png + + + + + + Nunchuck BoutonZ + + + + + + + com/ardublock/block/seeedstudio/Nunchuck.png + + + + + + Nunchuck Joystick X + + + + + + + com/ardublock/block/seeedstudio/Nunchuck.png + + + + + + Nunchuck Joystick Y + + + + + + + com/ardublock/block/seeedstudio/Nunchuck.png + + + + + + Nunchuck Acceleration X + + + + + + + com/ardublock/block/seeedstudio/Nunchuck.png + + + + + + Nunchuck Acceleration Y + + + + + + + com/ardublock/block/seeedstudio/Nunchuck.png + + + + + + Nunchuck Acceleration Z + + + + + + + com/ardublock/block/seeedstudio/Nunchuck.png + + + + + + + + + 10mm Blue/Green/Yellow/Red LED Module + + + + + + + + + + + + com/ardublock/block/linksprite/10mmLEDModule.jpg + + + + + + + 5mm Blue/Green/Yellow/Red LED Module + + + + + + + + + + + + com/ardublock/block/linksprite/5mmLEDModule.jpg + + + + + + + Based on the excellent ADXL-345, this digital 3-axis + accelerometer has excellent EMI protection. + + + + + + + + + + com/ardublock/block/linksprite/AccelerometerModule.jpg + + + + + + + Based on the excellent ADXL-345, this digital 3-axis + accelerometer has excellent EMI protection. + + + + + + + + + + com/ardublock/block/linksprite/AccelerometerModule.jpg + + + + + + + Based on the excellent ADXL-345, this digital 3-axis + accelerometer has excellent EMI protection. + + + + + + + + + + com/ardublock/block/linksprite/AccelerometerModule.jpg + + + + + + + Button Module + + + + + + + + + + com/ardublock/block/linksprite/ButtonModule.jpg + + + + + + + Buzzer Module + + + + + + + + + + + + com/ardublock/block/linksprite/BuzzerModule.jpg + + + + + + + Hall Sensor + + + + + + + + + + com/ardublock/block/linksprite/HallSensor.jpg + + + + + + + High Power Led Module + + + + + + + + + + + + com/ardublock/block/linksprite/HighPowerLedModule.jpg + + + + + + + Joystick Sensor Module + + + + + + + + + + com/ardublock/block/linksprite/JoystickSensorModule.jpg + + + + + + + Joystick Sensor Module + + + + + + + + + + com/ardublock/block/linksprite/JoystickSensorModule.jpg + + + + + + + LDR Module + + + + + + + + + + com/ardublock/block/linksprite/LDRModule.jpg + + + + + + + LED Bar + + + + + + + + + + + + com/ardublock/block/linksprite/LEDBarr.jpg + + + + + + + Linear/Slide Potentiometer Module + + + + + + + + + + com/ardublock/block/linksprite/Linear-SlidePotentiometerModule.jpg + + + + + + + Magnetic Switch + + + + + + + + + + com/ardublock/block/linksprite/MagneticSwitch.jpg + + + + + + + Mosfet Module + + + + + + + + + + + + com/ardublock/block/linksprite/MosfetModule.jpg + + + + + + + Relay Module + + + + + + + + + + + + com/ardublock/block/linksprite/RelayModule.jpg + + + + + + + Rotary Potentiometer Module + + + + + + + + + + com/ardublock/block/linksprite/RotaryPotentiometerModule.jpg + + + + + + + RTC Module + + + + + + + + + + com/ardublock/block/linksprite/RTCModule.jpg + + + + + + + Sound Sensor + + + + + + + + + + com/ardublock/block/linksprite/SoundSensor.jpg + + + + + + + Thermal Module + + + + + + + + + + com/ardublock/block/linksprite/ThermalModule.jpg + + + + + + + Tilt Module + + + + + + + + + + com/ardublock/block/linksprite/TiltModule.jpg + + + + + + + Touch Sensor Module + + + + + + + + + + com/ardublock/block/linksprite/TouchSensorModule.jpg + + + + + + + + BLE Shield for Bluetooth Connectivity + + + + + + + + + + + + com/ardublock/block/network/bleshield.jpg + + + + + + + + + + + + + + + + + + + Adafruit DC motor + + + + + + + + + + + + + + Adafruit DC motor + + + + + + + + + + + + + + Adafruit DC motor + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + ada_neopixel_init + + + + + + + + + + + + + + + + + + com/ardublock/block/adafruit/neopixel.png + + + + + + + ada_neopixel_pixel_colorGRB + + + + + + + + + + + + + + + + + + + + + com/ardublock/block/adafruit/neopixel.png + + + + + + + ada_neopixel_pixel_colorRGB + + + + + + + + + + + + + + + + + + + + + com/ardublock/block/adafruit/neopixel.png + + + + + + + ada_neopixel_show + + + + + + + + + com/ardublock/block/adafruit/neopixel.png + + + + + + + ada_neopixel_Brightness + + + + + + + + + + + + com/ardublock/block/adafruit/neopixel.png + + + + + + + Makeblock Ultrasonic Sensor + + + + + + + + + + + com/ardublock/block/makeblock/me_ultrasonic_sensor.png + + + + + + Makeblock LineFinder + + + + + + + + + + + com/ardublock/block/makeblock/me_linefinder.png + + + + + + Makeblock LimitSwitch + + + + + + + + + + + com/ardublock/block/makeblock/me_limitswitch.png + + + + + + Makeblock Shutter For DSLR + + + + + + + + + + + + + com/ardublock/block/makeblock/me_shutter.png + + + + + + Makeblock DC Motor + + + + + + + + + + + + + + com/ardublock/block/makeblock/me_motordriver.png + + + + + + Makeblock Servo + + + + + + + + + + + + + + + com/ardublock/block/makeblock/me_servodriver.png + + + + + + Makeblock Stepper Motor + + + + + + + + + + + + + + + + + + + com/ardublock/block/makeblock/me_stepper_motor.png + + + + + + Makeblock Infrared Receiver + + + + + + + + + + + + + + com/ardublock/block/makeblock/me_infraredreceiver.png + + + + + + Makeblock Bluetooth Read + + + + + + + + + + + + + com/ardublock/block/makeblock/me_bluetooth.png + + + + + + Makeblock Bluetooth Write + + + + + + + + + + + + com/ardublock/block/makeblock/me_bluetooth_write.png + + + + + + Makeblock Bluetooth Commands + + + + + + + + + + com/ardublock/block/makeblock/me_bluetooth_cmds.png + + + + + + Makeblock Bluetooth Commands + + + + + + + + + + + + + com/ardublock/block/makeblock/me_bluetooth_cmd.png + + + + + + Me Base Shield Port + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Me Base Shield DC Motor Port + + + + + + + + + + + + + + + + + Me Shutter Action + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + workshop template + + + + com/ardublock/block/workshop/setting.png + + + + + + + workshop template + + + + com/ardublock/block/workshop/go_forward.png + + + + + + + workshop template + + + + com/ardublock/block/workshop/go_backward.png + + + + + + + workshop template + + + + com/ardublock/block/workshop/stop.png + + + + + + + workshop template + + + + com/ardublock/block/workshop/turn_left.png + + + + + + + workshop template + + + + com/ardublock/block/workshop/turn_right.png + + + + + + + workshop template + + + + com/ardublock/block/workshop/go_forward_left.png + + + + + + + workshop template + + + + com/ardublock/block/workshop/go_forward_right.png + + + + + + + workshop template + + + + com/ardublock/block/workshop/go_back_left.png + + + + + + + workshop template + + + + com/ardublock/block/workshop/go_back_right.png + + + + + + + + workshop template + + + + com/ardublock/block/workshop/light.png + + + + + + + workshop template + + + + com/ardublock/block/workshop/scan.png + + + + + + + workshop template + + + + com/ardublock/block/workshop/music.png + + + + + + + workshop template + + + + com/ardublock/block/workshop/wireless.png + + + + + + + workshop template + + + + + + + com/ardublock/block/workshop/danger.png + + + + + + + workshop template + + + + + + + com/ardublock/block/workshop/binoculars.png + + + + + + + + + workshop template + + + + + + + com/ardublock/block/workshop/insectbot_distance.png + + + + + + + workshop template + + + + + + + com/ardublock/block/workshop/insectbot_danger.png + + + + + + + workshop template + + + + com/ardublock/block/workshop/insectbot_goforward.png + + + + + + + workshop template + + + + com/ardublock/block/workshop/insectbot_gobackright.png + + + + + + + workshop template + + + + com/ardublock/block/workshop/insectbot_turnleft.png + + + + + + + workshop template + + + + com/ardublock/block/workshop/insectbot_led.png + + + + + + + BendSensor + + + + + + + + + + com/ardublock/block/littlebits/input/BendSensor.jpg + + + + + + + Button + + + + + + + + + + com/ardublock/block/littlebits/input/Button.jpg + + + + + + + Dimmer + + + + + + + + + + com/ardublock/block/littlebits/input/Dimmer.jpg + + + + + + + LightSensor + + + + + + + + + + com/ardublock/block/littlebits/input/LightSensor.jpg + + + + + + + LightTrigger + + + + + + + + + + com/ardublock/block/littlebits/input/LightTrigger.jpg + + + + + + + Microphone + + + + + + + + + + com/ardublock/block/littlebits/input/Microphone.jpg + + + + + + + MotionTrigger + + + + + + + + + + com/ardublock/block/littlebits/input/MotionTrigger.jpg + + + + + + + PressureSensor + + + + + + + + + + com/ardublock/block/littlebits/input/PressureSensor.jpg + + + + + + + Pulse + + + + + + + + + + com/ardublock/block/littlebits/input/Pulse.jpg + + + + + + + RemoteTrigger + + + + + + + + + + com/ardublock/block/littlebits/input/RemoteTrigger.jpg + + + + + + + RollerSwitch + + + + + + + + + + com/ardublock/block/littlebits/input/RollerSwitch.jpg + + + + + + + SlideDimmer + + + + + + + + + + com/ardublock/block/littlebits/input/SlideDimmer.jpg + + + + + + + SlideSwitch + + + + + + + + + + com/ardublock/block/littlebits/input/SlideSwitch.jpg + + + + + + + SoundTrigger + + + + + + + + + + com/ardublock/block/littlebits/input/SoundTrigger.jpg + + + + + + + TimeOut + + + + + + + + + + com/ardublock/block/littlebits/input/TimeOut.jpg + + + + + + + ToggleSwitch + + + + + + + + + + com/ardublock/block/littlebits/input/ToggleSwitch.jpg + + + + + + + mix + + + + + + + + + + com/ardublock/block/littlebits/input/mix.jpg + + + + + + + oscillator + + + + + + + + + + com/ardublock/block/littlebits/input/oscillator.jpg + + + + + + + random + + + + + + + + + + com/ardublock/block/littlebits/input/random.jpg + + + + + + + Bargraph + + + + + + + + + + + + com/ardublock/block/littlebits/output/Bargraph.jpg + + + + + + + BrightLED + + + + + + + + + + + + com/ardublock/block/littlebits/output/BrightLED.jpg + + + + + + + DCMotor + + + + + + + + + + + + com/ardublock/block/littlebits/output/DCMotor.jpg + + + + + + + Fan + + + + + + + + + + + + com/ardublock/block/littlebits/output/Fan.jpg + + + + + + + IR_LED + + + + + + + + + + + + com/ardublock/block/littlebits/output/IR_LED.jpg + + + + + + + LED + + + + + + + + + + + + com/ardublock/block/littlebits/output/LED.jpg + + + + + + + Lightwire + + + + + + + + + + + + com/ardublock/block/littlebits/output/Lightwire.jpg + + + + + + + LongLED + + + + + + + + + + + + com/ardublock/block/littlebits/output/LongLED.jpg + + + + + + + Number + + + + + + + + + + + + com/ardublock/block/littlebits/output/Number.jpg + + + + + + + RGBLED + + + + + + + + + + + + com/ardublock/block/littlebits/output/RGBLED.jpg + + + + + + + UVLED + + + + + + + + + + + + com/ardublock/block/littlebits/output/UVLED.jpg + + + + + + + Vibration_Motor + + + + + + + + + + + + com/ardublock/block/littlebits/output/Vibration_Motor.jpg + + + + + + + synthspeaker + + + + + + + + + + + + com/ardublock/block/littlebits/output/synthspeaker.jpg + + + + + + + set both left and right motor Keenlon Robot 上海擎朗智能 + + + + + + + + + + + + com/ardublock/block/keenlon/k_dianji.png + + + + + + + set left or right motor Keenlon Robot 上海擎朗智能 + + + + + + + + + + + + com/ardublock/block/keenlon/k_dianji.png + + + + + + + stop motor Keenlon Robot 上海擎朗智能 + + + + com/ardublock/block/keenlon/k_dianji.png + + + + + + + print string to TFT Keenlon Robot 上海擎朗智能 + + + + + + + + + + + + com/ardublock/block/keenlon/k_tft.png + + + + + + + clear TFT Keenlon Robot 上海擎朗智能 + + + + com/ardublock/block/keenlon/k_tft.png + + + + + + + get eye min value Keenlon Robot 上海擎朗智能 + + + + + + + + com/ardublock/block/keenlon/k_fuyan.png + + + + + + + get eye min index Keenlon Robot 上海擎朗智能 + + + + + + + com/ardublock/block/keenlon/k_fuyan.png + + + + + + + get eye max value Keenlon Robot 上海擎朗智能 + + + + + + + com/ardublock/block/keenlon/k_fuyan.png + + + + + + + get eye max index Keenlon Robot 上海擎朗智能 + + + + + + + com/ardublock/block/keenlon/k_fuyan.png + + + + + + + get eye on a channel Keenlon Robot 上海擎朗智能 + + + + + + + + + + + + get button Keenlon Robot 上海擎朗智能 + + + + + + + + + encoder clear Keenlon Robot 上海擎朗智能 + + + + + + + + + com/ardublock/block/keenlon/k_bianmaqi.png + + + + + + + get encoder Keenlon Robot 上海擎朗智能 + + + + + + + + + + com/ardublock/block/keenlon/k_bianmaqi.png + + + + + + + + + tft add a variable Keenlon Robot 上海擎朗智能 + + + + + + + + + + + get compass degree Keenlon Robot 上海擎朗智能 + + + + + + + com/ardublock/block/keenlon/k_compass.png + + + + + + + buzzer Keenlon Robot 上海擎朗智能 + + + + + + + + + + + + com/ardublock/block/keenlon/k_fengminqi.png + + + + + + + ground light sensor Keenlon Robot 上海擎朗智能 + + + + + + + + + + com/ardublock/block/keenlon/k_dimianhuidu.png + + + + + + + led on off Keenlon Robot 上海擎朗智能 + + + + + + + + + + + + com/ardublock/block/keenlon/k_led.png + + + + + + + led pwm Keenlon Robot 上海擎朗智能 + + + + + + + + + + + + com/ardublock/block/keenlon/k_led.png + + + + + + + light sensor Keenlon Robot 上海擎朗智能 + + + + + + + + + + com/ardublock/block/keenlon/k_guanggan.png + + + + + + + mic Keenlon Robot 上海擎朗智能 + + + + + + + + + + com/ardublock/block/keenlon/k_fengminqi.png + + + + + + + photo sensor Keenlon Robot 上海擎朗智能 + + + + + + + + + + com/ardublock/block/keenlon/k_guangdian.png + + + + + + + potentiometer sensor Keenlon Robot 上海擎朗智能 + + + + + + + + + + com/ardublock/block/keenlon/k_dianweiqi.png + + + + + + + relays Keenlon Robot 上海擎朗智能 + + + + + + + + + + + + com/ardublock/block/keenlon/k_jidianqi.png + + + + + + + tempe sensor Keenlon Robot 上海擎朗智能 + + + + + + + + + + com/ardublock/block/keenlon/k_wendu.png + + + + + + + sharp distance sensor Keenlon Robot 上海擎朗智能 + + + + + + + + + + com/ardublock/block/keenlon/k_psd.png + + + + + + + touch sensor Keenlon Robot 上海擎朗智能 + + + + + + + + + + com/ardublock/block/keenlon/k_pengzhuang.png + + + + + + + + + set a pin to pwm Keenlon Robot 上海擎朗智能 + + + + + + + + + + + + com/ardublock/block/keenlon/k_duoji.png + + + + + + + + + + Flashing Mode + + + + + + + + + + + Fading Mode + + + + + + + + + + + + Pin name + + + + + + + + + + + trigger equal + + + + + + + + + + + trigger greater + + + + + + + + + + + trigger less + + + + + + + + + + + + + Random Mode + + + + + + + + + + + Single Mode + + + + + + + + + + + high + + + + + + + + + + + low + + + + + + + + + + + high pulse + + + + + + + + + + + low pulse + + + + + + + + + + + + + set iDrawing parameter + + + + + + + + + + + + + + + iDrawing run + + + + + + + + set rule + + + + + + + + + + set rule + + + + + + + + + + + + + let system go to sleep state + + + + + + + + + + + + tigger + + + + + + + + + + + + digital pin + + + + + + + + + + + + + + + analog pin + + + + + + + + + + + + + + + + + + + + + actuator + + + + + + + + + + + + + + + + + + + actuator + + + + + + + + + + + + + + + + + + + digital pin + + + + + + + + + + + + + + + + Midi Command + + + + + + + + + + + + + + + + + + com/ardublock/block/jerusalab/midi_command.png + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + digital-high + digital-low + + + and + or + + + true + false + + + addition + subtraction + multiplication + division + modulo + + + min + max + + + greater + less + equal + greater_equal + less_equal + not_equal + + + equal_digital + not_equal_digital + + + equal_poly + not_equal_poly + + + string_greater + string_less + string_equal + string_greater_equal + string_less_equal + string_not_equal + string_equals + string_equalsIgnoreCase + string_compareTo + + + equal_string + not_equal_string + + + sin + cos + tan + + + code_head + code_setup + code_loop + + + digital-on + digital-off + + + LCD_I2C_Sainsmart_20by4 + LCD_I2C_Sainsmart_16by2 + + + LCD_command_clear + LCD_command_home + LCD_command_lightOff + LCD_command_lightOn + LCD_command_cursorOn + LCD_command_cursorOff + LCD_command_blinkOn + LCD_command_blinkOff + + + servo_default + servo_sg90 + servo_mg996r + + + + + + + pinListDigital_D0 + pinListDigital_D1 + pinListDigital_D2 + pinListDigital_D3 + pinListDigital_D4 + pinListDigital_D5 + pinListDigital_D6 + pinListDigital_D7 + pinListDigital_D8 + pinListDigital_D9 + pinListDigital_D10 + pinListDigital_D11 + pinListDigital_D12 + pinListDigital_D13 + pinListDigital_D14 + pinListDigital_D15 + pinListDigital_D16 + pinListDigital_D17 + pinListDigital_D18 + pinListDigital_D19 + + pinListDigital_D20 + pinListDigital_D21 + pinListDigital_D22 + pinListDigital_D23 + pinListDigital_D24 + pinListDigital_D25 + pinListDigital_D26 + pinListDigital_D27 + pinListDigital_D28 + pinListDigital_D29 + pinListDigital_D30 + pinListDigital_D31 + pinListDigital_D32 + pinListDigital_D33 + pinListDigital_D34 + pinListDigital_D35 + pinListDigital_D36 + pinListDigital_D37 + pinListDigital_D38 + pinListDigital_D39 + pinListDigital_D40 + pinListDigital_D41 + pinListDigital_D42 + pinListDigital_D43 + pinListDigital_D44 + pinListDigital_D45 + pinListDigital_D46 + pinListDigital_D47 + pinListDigital_D48 + pinListDigital_D49 + pinListDigital_D50 + pinListDigital_D51 + pinListDigital_D52 + pinListDigital_D53 + + + pinListAnalog_A0 + pinListAnalog_A1 + pinListAnalog_A2 + pinListAnalog_A3 + pinListAnalog_A4 + pinListAnalog_A5 + + + + + pinListAnalog_A0 + pinListAnalog_A1 + pinListAnalog_A2 + pinListAnalog_A3 + pinListAnalog_A4 + pinListAnalog_A5 + + pinListAnalog_A6 + pinListAnalog_A7 + + pinListAnalog_A8 + pinListAnalog_A9 + pinListAnalog_A10 + pinListAnalog_A11 + pinListAnalog_A12 + pinListAnalog_A13 + pinListAnalog_A14 + pinListAnalog_A15 + + + + + pinListAnalogWrite_D3 + pinListAnalogWrite_D5 + pinListAnalogWrite_D6 + pinListAnalogWrite_D9 + pinListAnalogWrite_D10 + pinListAnalogWrite_D11 + + pinListAnalogWrite_D2 + pinListAnalogWrite_D4 + pinListAnalogWrite_D7 + pinListAnalogWrite_D8 + pinListAnalogWrite_D12 + pinListAnalogWrite_D13 + pinListAnalogWrite_D44 + pinListAnalogWrite_D45 + pinListAnalogWrite_D46 + + + + df_joystick_module_x + df_joystick_module_y + + + df_mma7260_x + df_mma7260_y + df_mma7260_z + + + Tinker_I0 + Tinker_I1 + Tinker_I2 + Tinker_I3 + Tinker_I4 + Tinker_I5 + + + Tinker_O0 + Tinker_O1 + Tinker_O2 + Tinker_O3 + Tinker_O4 + Tinker_O5 + + + panda_i1 + panda_i2 + panda_i3 + panda_i4 + panda_i5 + + + panda_o1 + panda_o2 + panda_o3 + panda_o4 + panda_o5 + + + ada_dc_motor_fwd + ada_dc_motor_bwd + ada_dc_motor_release + + + ada_neopixel_NEO_GRB + ada_neopixel_NEO_RGB + + + ada_neopixel_NEO_KHZ400 + ada_neopixel_NEO_KHZ800 + + + ada_neopixel_pixel_colorRGB + ada_neopixel_pixel_colorGRB + + + me_port_1 + me_port_2 + me_port_3 + me_port_4 + me_port_5 + me_port_6 + me_port_7 + me_port_8 + + + me_motor_1 + me_motor_2 + + + me_shutter_1 + me_shutter_2 + me_shutter_3 + me_shutter_4 + + + scoop_event_low + scoop_event_high + scoop_event_falling + scoop_event_rising + scoop_event_change + + + led_mode_flash + led_mode_fade + + + + trigger_equal + trigger_greater + trigger_less + + + + player_mode_random + player_mode_single + + + + output_mode_high + output_mode_low + output_mode_highpulse + output_mode_lowpulse + + + DuinoEDU_right + DuinoEDU_straight + DuinoEDU_left + + + DuinoEDU_Driver_I2C_Forward + DuinoEDU_Driver_I2C_Back + DuinoEDU_Driver_I2C_Pivoter + + + DuinoEDU_Driver_I2C_Speed_A_Motor + DuinoEDU_Driver_I2C_Speed_B_Motor + + + DuinoEDU_Aix_Acc_mesurerX + DuinoEDU_Aix_Acc_mesurerY + DuinoEDU_Aix_Acc_mesurerZ + DuinoEDU_Aix_Acc_mesurerXYZ + DuinoEDU_Aix_Acc_mesurerVariation + + + DuinoEDU_humiPro + DuinoEDU_tempPro + + + DuinoEDU_temp + DuinoEDU_humi + + + DuinoEDU_On_digit1 + DuinoEDU_On_digit2 + DuinoEDU_On_digit3 + DuinoEDU_On_digit4 + + + DuinoEDU_setSerialInfosOn + DuinoEDU_setSerialInfosOff + + + DuinoEDU_Mouse_Xmove + DuinoEDU_Mouse_Ymove + + + DuinoEDU_equal + DuinoEDU_not_equal + + + DuinoEDU_Rfid_Write + DuinoEDU_Rfid_Ram_List + + + DuinoEDU_neopixel_pixel_colorGRB + DuinoEDU_neopixel_pixel_colorRGB + + + DDRA + DDRB + DDRC + DDRD + DDRH + DDRL + + + PORTA + PORTB + PORTC + PORTD + PORTH + PORTL + + + PINA + PINB + PINC + PIND + PINH + PINL + + + DuinoEDU_Volts + DuinoEDU_VALEURS_BRUTES + DuinoEDU_CM + DuinoEDU_DEGRES + + + DuinoEDU_Nunchuck_BoutonC + DuinoEDU_Nunchuck_BoutonZ + DuinoEDU_Nunchuck_JoystickX + DuinoEDU_Nunchuck_JoystickY + DuinoEDU_Nunchuck_AccelerationX + DuinoEDU_Nunchuck_AccelerationY + DuinoEDU_Nunchuck_AccelerationZ + + + Midi_C + Midi_CS + Midi_D + Midi_DS + Midi_E + Midi_F + Midi_FS + Midi_G + Midi_GS + Midi_A + Midi_AS + Midi_B + + + + + + + + program + loop + subroutine + scoop_task + scoop_loop + scoop_pin_event + scoop_event_low + scoop_event_high + scoop_event_falling + scoop_event_rising + scoop_event_change + + + delay + delay_microseconds + scoop_sleep + subroutine-ref + if + ifelse + while + do_while + repeat_times + repeat + repeat_control + + + pin-read-digital + pin-read-analog + pin-write-digital + pin-write-analog + pin-read-digital-pullup + tone + tone_time + no_tone + + + greater + less + equal + greater_equal + less_equal + not_equal + equal_digital + not_equal_digital + equal_poly + not_equal_poly + and + or + not + + + addition + subtraction + multiplication + division + modulo + abs + pow + sqrt + sin + cos + tan + random + random_range + min + max + map_common + map + constrain + + + setter_variable_number + variable_number + number + setter_variable_digital + variable_digital + digital-high + digital-low + true + false + setter_variable_number_unsigned_long + variable_number_unsigned_long + number_long + millis + create_variable_vector + variable_vector + setter_variable_vector + setter_variable_char + variable_poly + char + setter_variable_number_double + variable_number_double + number_double + pinListDigital_D0 + pinListAnalog_A0 + pinListAnalogWrite_D3 + + + servo_sg90 + ultrasonic + LCD_I2C_Sainsmart_20by4 + LCD_command_lightOff + LCD_PLL_Sainsmart_16by2 + number-single-I2C-address + number-single-fixed-parallel + + + serial_read + serial_read_poly + serial_available + serial_print + serial_println + message + glue_sn + glue_sb + glue_poly + wire_write + wire_read + wire_isread + + + eeprom_read_int + eeprom_write_int + eeprom_read_long + eeprom_write_long + eeprom_read + eeprom_write + + + + + + + bleshield + bleshield_available + bleshield_read_poly + + + code_head + code_setup + code_loop + + + + + + + + + + + + + + + + + + + + + + + + + + + com/ardublock/block/trash_open.png + com/ardublock/block/trash.png + + + diff --git a/src/main/resources/com/ardublock/block/Skins/slim/block-mapping.properties b/src/main/resources/com/ardublock/block/Skins/slim/block-mapping.properties new file mode 100644 index 00000000..0353c125 --- /dev/null +++ b/src/main/resources/com/ardublock/block/Skins/slim/block-mapping.properties @@ -0,0 +1,713 @@ +#short name can be found in /src/com/ardublock/translator/block/TranslatorBlockFactory.java +eeprom_read=com.ardublock.translator.block.storage.EEPROMReadBlock +eeprom_write=com.ardublock.translator.block.storage.EEPROMWriteBlock +eeprom_read_int=com.ardublock.translator.block.storage.EEPROMReadIntBlock +eeprom_write_int=com.ardublock.translator.block.storage.EEPROMWriteIntBlock +eeprom_read_long=com.ardublock.translator.block.storage.EEPROMReadLongBlock +eeprom_write_long=com.ardublock.translator.block.storage.EEPROMWriteLongBlock +sd_write=com.ardublock.translator.block.storage.SDWriteBlock +sd_write_number=com.ardublock.translator.block.storage.SDWriteNumberBlock +sd_write_number_int=com.ardublock.translator.block.storage.SDWriteNumberIntBlock +sd_return=com.ardublock.translator.block.storage.SDPortBlock +sd_no_return=com.ardublock.translator.block.storage.SDPortBlock +sd_write2=com.ardublock.translator.block.storage.SDWrite2Block +constrain=com.ardublock.translator.block.ConstrainBlock + + +variable_poly=com.ardublock.translator.block.VariablePolyBlock +char=com.ardublock.translator.block.PolyBlock +setter_variable_char=com.ardublock.translator.block.SetterVariablePolyBlock +glue_poly=com.ardublock.translator.block.GluePolyBlock +serial_read_poly=com.ardublock.translator.block.SerialReadPolyBlock +equal_poly=com.ardublock.translator.block.EqualPolyBlock +equal_string=com.ardublock.translator.block.EqualPolyBlock +not_equal_poly=com.ardublock.translator.block.NotEqualPolyBlock +not_equal_string=com.ardublock.translator.block.NotEqualPolyBlock +serial_available=com.ardublock.translator.block.SerialAvailableBlock +program=com.ardublock.translator.block.ProgramBlock +setup=com.ardublock.translator.block.SetupBlock(Anybody using it???) +variable_fake=com.ardublock.translator.block.VariableFakeBlock +variable_vector=com.ardublock.translator.block.VariableVectorBlock +setter_variable_vector=com.ardublock.translator.block.SetterVariableVectorBlock +create_variable_vector=com.ardublock.translator.block.CreateVariableVectorBlock +code_head=com.ardublock.translator.block.CodeHeadBlock +code_setup=com.ardublock.translator.block.CodeSetupBlock +code_loop=com.ardublock.translator.block.CodeLoopBlock +serial_read=com.ardublock.translator.block.SerialReadBlock +equal_digital=com.ardublock.translator.block.EqualDigitalBlock +not_equal_digital=com.ardublock.translator.block.NotEqualDigitalBlock +repeat=com.ardublock.translator.block.RepeatBlock +repeat_control=com.ardublock.translator.block.RepeatControlBlock +glue_msg=com.ardublock.translator.block.GlueMSGBlock + + +#arduino control +loop=com.ardublock.translator.block.LoopBlock +ifelse=com.ardublock.translator.block.IfelseBlock +true=com.ardublock.translator.block.TrueBlock +and=com.ardublock.translator.block.AndBlock +not=com.ardublock.translator.block.NotBlock +or=com.ardublock.translator.block.OrBlock +digital-high=com.ardublock.translator.block.DigitalHighBlock +digital-low=com.ardublock.translator.block.DigitalLowBlock +digital-on=com.ardublock.translator.block.DigitalOnBlock +digital-off=com.ardublock.translator.block.DigitalOffBlock +false=com.ardublock.translator.block.FalseBlock +if=com.ardublock.translator.block.IfBlock +while=com.ardublock.translator.block.WhileBlock +do_while=com.ardublock.translator.block.DoWhileBlock +repeat_times=com.ardublock.translator.block.RepeatTimesBlock +break=com.ardublock.translator.block.BreakBlock +subroutine=com.ardublock.translator.block.SubroutineBlock +subroutine-ref=com.ardublock.translator.block.SubroutineRefBlock +scoop_loop=com.ardublock.translator.block.scoop.SCoopLoopBlock +scoop_task=com.ardublock.translator.block.scoop.SCoopTaskBlock +scoop_sleep=com.ardublock.translator.block.scoop.SCoopSleepBlock +scoop_pin_event=com.ardublock.translator.block.scoop.SCoopPinEventBlock +scoop_event_low=com.ardublock.translator.block.scoop.SCoopEventLowBlock +scoop_event_high=com.ardublock.translator.block.scoop.SCoopEventHighBlock +scoop_event_falling=com.ardublock.translator.block.scoop.SCoopEventFallingBlock +scoop_event_rising=com.ardublock.translator.block.scoop.SCoopEventRisingBlock +scoop_event_change=com.ardublock.translator.block.scoop.SCoopEventChangeBlock + +#const number +number=com.ardublock.translator.block.NumberBlock +number_long=com.ardublock.translator.block.NumberUnsignedLongBlock +number_double=com.ardublock.translator.block.NumberDoubleBlock +message=com.ardublock.translator.block.MessageBlock +glue_sn=com.ardublock.translator.block.GlueSNBlock +glue_sb=com.ardublock.translator.block.GlueSBBlock +number-single=com.ardublock.translator.block.NumberBlock +number-single-fixed-parallel=com.ardublock.translator.block.NumberBlock + +#Pin List Constants +# +pinListDigital_D0=com.ardublock.translator.block.D0 +pinListDigital_D1=com.ardublock.translator.block.D1 +pinListDigital_D2=com.ardublock.translator.block.D2 +pinListDigital_D3=com.ardublock.translator.block.D3 +pinListDigital_D4=com.ardublock.translator.block.D4 +pinListDigital_D5=com.ardublock.translator.block.D5 +pinListDigital_D6=com.ardublock.translator.block.D6 +pinListDigital_D7=com.ardublock.translator.block.D7 +pinListDigital_D8=com.ardublock.translator.block.D8 +pinListDigital_D9=com.ardublock.translator.block.D9 +pinListDigital_D10=com.ardublock.translator.block.D10 +pinListDigital_D11=com.ardublock.translator.block.D11 +pinListDigital_D12=com.ardublock.translator.block.D12 +pinListDigital_D13=com.ardublock.translator.block.D13 +pinListDigital_D14=com.ardublock.translator.block.D14 +pinListDigital_D15=com.ardublock.translator.block.D15 +pinListDigital_D16=com.ardublock.translator.block.D16 +pinListDigital_D17=com.ardublock.translator.block.D17 +pinListDigital_D18=com.ardublock.translator.block.D18 +pinListDigital_D19=com.ardublock.translator.block.D19 +# +pinListDigital_D20=com.ardublock.translator.block.D20 +pinListDigital_D21=com.ardublock.translator.block.D21 +pinListDigital_D22=com.ardublock.translator.block.D22 +pinListDigital_D23=com.ardublock.translator.block.D23 +pinListDigital_D24=com.ardublock.translator.block.D24 +pinListDigital_D25=com.ardublock.translator.block.D25 +pinListDigital_D26=com.ardublock.translator.block.D26 +pinListDigital_D27=com.ardublock.translator.block.D27 +pinListDigital_D28=com.ardublock.translator.block.D28 +pinListDigital_D29=com.ardublock.translator.block.D29 +pinListDigital_D30=com.ardublock.translator.block.D30 +pinListDigital_D31=com.ardublock.translator.block.D31 +pinListDigital_D32=com.ardublock.translator.block.D32 +pinListDigital_D33=com.ardublock.translator.block.D33 +pinListDigital_D34=com.ardublock.translator.block.D34 +pinListDigital_D35=com.ardublock.translator.block.D35 +pinListDigital_D36=com.ardublock.translator.block.D36 +pinListDigital_D37=com.ardublock.translator.block.D37 +pinListDigital_D38=com.ardublock.translator.block.D38 +pinListDigital_D39=com.ardublock.translator.block.D39 +pinListDigital_D40=com.ardublock.translator.block.D40 +pinListDigital_D41=com.ardublock.translator.block.D41 +pinListDigital_D42=com.ardublock.translator.block.D42 +pinListDigital_D43=com.ardublock.translator.block.D43 +pinListDigital_D44=com.ardublock.translator.block.D44 +pinListDigital_D45=com.ardublock.translator.block.D45 +pinListDigital_D46=com.ardublock.translator.block.D46 +pinListDigital_D47=com.ardublock.translator.block.D47 +pinListDigital_D48=com.ardublock.translator.block.D48 +pinListDigital_D49=com.ardublock.translator.block.D49 +pinListDigital_D50=com.ardublock.translator.block.D50 +pinListDigital_D51=com.ardublock.translator.block.D51 +pinListDigital_D52=com.ardublock.translator.block.D52 +pinListDigital_D53=com.ardublock.translator.block.D53 +# +pinListAnalogWrite_D3=com.ardublock.translator.block.D3 +pinListAnalogWrite_D5=com.ardublock.translator.block.D5 +pinListAnalogWrite_D6=com.ardublock.translator.block.D6 +pinListAnalogWrite_D9=com.ardublock.translator.block.D9 +pinListAnalogWrite_D10=com.ardublock.translator.block.D10 +pinListAnalogWrite_D11=com.ardublock.translator.block.D11 +# +pinListAnalogWrite_D2=com.ardublock.translator.block.D2 +pinListAnalogWrite_D4=com.ardublock.translator.block.D4 +pinListAnalogWrite_D7=com.ardublock.translator.block.D7 +pinListAnalogWrite_D8=com.ardublock.translator.block.D8 +pinListAnalogWrite_D12=com.ardublock.translator.block.D12 +pinListAnalogWrite_D13=com.ardublock.translator.block.D13 +pinListAnalogWrite_D44=com.ardublock.translator.block.D44 +pinListAnalogWrite_D44=com.ardublock.translator.block.D45 +pinListAnalogWrite_D46=com.ardublock.translator.block.D46 + +pinListAnalog_A0=com.ardublock.translator.block.A0 +pinListAnalog_A1=com.ardublock.translator.block.A1 +pinListAnalog_A2=com.ardublock.translator.block.A2 +pinListAnalog_A3=com.ardublock.translator.block.A3 +pinListAnalog_A4=com.ardublock.translator.block.A4 +pinListAnalog_A5=com.ardublock.translator.block.A5 +pinListAnalog_A6=com.ardublock.translator.block.A6 +pinListAnalog_A7=com.ardublock.translator.block.A7 +pinListAnalog_A8=com.ardublock.translator.block.A8 +pinListAnalog_A9=com.ardublock.translator.block.A9 +pinListAnalog_A10=com.ardublock.translator.block.A10 +pinListAnalog_A11=com.ardublock.translator.block.A11 +pinListAnalog_A12=com.ardublock.translator.block.A12 +pinListAnalog_A13=com.ardublock.translator.block.A13 +pinListAnalog_A14=com.ardublock.translator.block.A14 +pinListAnalog_A15=com.ardublock.translator.block.A15 + +#Pin +pin-read-analog=analogInput +pin-read-digital=digitalInput +pin-read-digital-pullup=digitalInputPullup +pin-write-analog=analogOutput +pin-write-digital=digitalOutput +servo=servo +ultrasonic=com.ardublock.translator.block.UltrasonicBlock +LCD_I2C_Sainsmart_20by4=com.ardublock.translator.block.LCD_I2C_Sainsmart_20by4_Block +LCD_I2C_Sainsmart_16by2=com.ardublock.translator.block.LCD_I2C_Sainsmart_16by2_Block +LCD_PLL_Sainsmart_16by2=com.ardublock.translator.block.LCD_PLL_Sainsmart_16by2_Block +LCD_command_clear=com.ardublock.translator.block.LCD_command_clear_Block +LCD_command_home=com.ardublock.translator.block.LCD_command_home_Block +LCD_command_lightOn=com.ardublock.translator.block.LCD_command_lightOn_Block +LCD_command_lightOff=com.ardublock.translator.block.LCD_command_lightOff_Block +LCD_command_cursorOn=com.ardublock.translator.block.LCD_command_cursorOn_Block +LCD_command_cursorOff=com.ardublock.translator.block.LCD_command_cursorOff_Block +LCD_command_blinkOn=com.ardublock.translator.block.LCD_command_blinkOn_Block +LCD_command_blinkOff=com.ardublock.translator.block.LCD_command_blinkOff_Block +tone=tone +tone_time=toneTime +no_tone=noTone +setter_variable_number=com.ardublock.translator.block.SetterVariableNumberBlock +setter_variable_number_unsigned_long=com.ardublock.translator.block.SetterVariableNumberUnsignedLongBlock +setter_variable_number_double=com.ardublock.translator.block.SetterVariableNumberDoubleBlock +variable_number=com.ardublock.translator.block.VariableNumberBlock +variable_number_unsigned_long=com.ardublock.translator.block.VariableNumberUnsignedLongBlock +variable_number_double=com.ardublock.translator.block.VariableNumberDoubleBlock +setter_variable_digital=com.ardublock.translator.block.SetterVariableDigitalBlock +variable_digital=com.ardublock.translator.block.VariableDigitalBlock +variable_string=com.ardublock.translator.block.VariableStringBlock +setter_variable_String=com.ardublock.translator.block.setter_variable_String +variable_String=com.ardublock.translator.block.variable_String +DDRA=com.ardublock.translator.block.DDR_Port +DDRB=com.ardublock.translator.block.DDR_Port +DDRC=com.ardublock.translator.block.DDR_Port +DDRD=com.ardublock.translator.block.DDR_Port +DDRH=com.ardublock.translator.block.DDR_Port +DDRL=com.ardublock.translator.block.DDR_Port +PORTA=com.ardublock.translator.block.PORT +PORTB=com.ardublock.translator.block.PORT +PORTC=com.ardublock.translator.block.PORT +PORTD=com.ardublock.translator.block.PORT +PORTH=com.ardublock.translator.block.PORT +PORTL=com.ardublock.translator.block.PORT +PINA=com.ardublock.translator.block.PIN_port +PINB=com.ardublock.translator.block.PIN_port +PINC=com.ardublock.translator.block.PIN_port +PIND=com.ardublock.translator.block.PIN_port +PINH=com.ardublock.translator.block.PIN_port +PINL=com.ardublock.translator.block.PIN_port +#Math +addition=com.ardublock.translator.block.AdditionBlock +subtraction=com.ardublock.translator.block.SubtractionBlock +multiplication=com.ardublock.translator.block.MultiplicationBlock +division=com.ardublock.translator.block.DivisionBlock +modulo=com.ardublock.translator.block.ModuloBlock +greater=com.ardublock.translator.block.GreaterBlock +less=com.ardublock.translator.block.LessBlock +equal=com.ardublock.translator.block.EqualBlock +greater_equal=com.ardublock.translator.block.GreaterEqualBlock +less_equal=com.ardublock.translator.block.LessEqualBlock +not_equal=com.ardublock.translator.block.NotEqualBlock +min=com.ardublock.translator.block.MinBlock +max=com.ardublock.translator.block.MaxBlock +abs=com.ardublock.translator.block.AbsBlock +pow=com.ardublock.translator.block.PowBlock +sqrt=com.ardublock.translator.block.SqrtBlock +sin=com.ardublock.translator.block.SinBlock +cos=com.ardublock.translator.block.CosBlock +tan=com.ardublock.translator.block.TanBlock + +string_empty=com.ardublock.translator.block.StringEmptyBlock +string_greater=com.ardublock.translator.block.GreaterBlock +string_less=com.ardublock.translator.block.LessBlock +string_equal=com.ardublock.translator.block.EqualBlock +string_greater_equal=com.ardublock.translator.block.GreaterEqualBlock +string_less_equal=com.ardublock.translator.block.LessEqualBlock +string_not_equal=com.ardublock.translator.block.NotEqualBlock +string_equals=com.ardublock.translator.block.string_equals +string_equalsIgnoreCase=com.ardublock.translator.block.string_equalsIgnoreCase +string_toInt=com.ardublock.translator.block.string_toInt +string_compareTo=com.ardublock.translator.block.string_compareTo + +#Utility + +delay=com.ardublock.translator.block.DelayBlock +random=com.ardublock.translator.block.RandomBlock +map_common=com.ardublock.translator.block.MapCommonBlock +map=com.ardublock.translator.block.MapBlock +delay_microseconds=com.ardublock.translator.block.DelayMicrosecondsBlock +millis=com.ardublock.translator.block.MillisBlock +watchdog_setup=com.ardublock.translator.block.WatchdogBlock +watchdog_15ms=com.ardublock.translator.block.custom.WatchdogPortBlock +watchdog_30ms=com.ardublock.translator.block.custom.WatchdogPortBlock +watchdog_60ms=com.ardublock.translator.block.custom.WatchdogPortBlock +watchdog_120ms=com.ardublock.translator.block.custom.WatchdogPortBlock +watchdog_250ms=com.ardublock.translator.block.custom.WatchdogPortBlock +watchdog_500ms=com.ardublock.translator.block.custom.WatchdogPortBlock +watchdog_1s=com.ardublock.translator.block.custom.WatchdogPortBlock +watchdog_2s=com.ardublock.translator.block.custom.WatchdogPortBlock +watchdog_4s=com.ardublock.translator.block.custom.WatchdogPortBlock +watchdog_8s=com.ardublock.translator.block.custom.WatchdogPortBlock +watchdog_reset=com.ardublock.translator.block.WatchdogResetBlock +random_range=com.ardublock.translator.block.RandomRangeBlock +servo_default=com.ardublock.translator.block.ServoDefaultBlock +servo_sg90=com.ardublock.translator.block.ServoSg90Block +servo_mg996r=com.ardublock.translator.block.ServoMg996rBlock + +#Communication +serial_read=com.ardublock.translator.block.SerialReadBlock +serial_print=com.ardublock.translator.block.SerialPrintBlock +serial_println=com.ardublock.translator.block.SerialPrintlnBlock +wire_read=com.ardublock.translator.block.WireReadBlock +wire_write=com.ardublock.translator.block.WireWriteBlock +wire_write_one_byte=com.ardublock.translator.block.WireWriteOneByteBlock +wire_isread=com.ardublock.translator.block.WireIsReadBlock +ir_setport=com.ardublock.translator.block.IrSetPortBlock +ir_getcode=com.ardublock.translator.block.IrGetCodeBlock +bluno_println=com.ardublock.translator.block.BlunoOledPrintlnBlock +bluno_println_number=com.ardublock.translator.block.BlunoOledPrintlnNumberBlock +bluno_println_clear=com.ardublock.translator.block.BlunoOledClearBlock +#Storage +eeprom_read=com.ardublock.translator.block.storage.EEPROMReadBlock +eeprom_write=com.ardublock.translator.block.storage.EEPROMWriteBlock +sd_write=com.ardublock.translator.block.storage.SDWriteBlock +sd_write_number=com.ardublock.translator.block.storage.SDWriteNumberBlock +sd_write_number_int=com.ardublock.translator.block.storage.SDWriteNumberIntBlock +sd_return=com.ardublock.translator.block.storage.SDPortBlock +sd_no_return=com.ardublock.translator.block.storage.SDPortBlock + +#TinkerKit +Tinker_I0=com.ardublock.translator.block.tinker.TinkerInputPortBlock +Tinker_I1=com.ardublock.translator.block.tinker.TinkerInputPortBlock +Tinker_I2=com.ardublock.translator.block.tinker.TinkerInputPortBlock +Tinker_I3=com.ardublock.translator.block.tinker.TinkerInputPortBlock +Tinker_I4=com.ardublock.translator.block.tinker.TinkerInputPortBlock +Tinker_I5=com.ardublock.translator.block.tinker.TinkerInputPortBlock + +Tinker_O0=com.ardublock.translator.block.tinker.TinkerOutputPortBlock +Tinker_O1=com.ardublock.translator.block.tinker.TinkerOutputPortBlock +Tinker_O2=com.ardublock.translator.block.tinker.TinkerOutputPortBlock +Tinker_O3=com.ardublock.translator.block.tinker.TinkerOutputPortBlock +Tinker_O4=com.ardublock.translator.block.tinker.TinkerOutputPortBlock +Tinker_O5=com.ardublock.translator.block.tinker.TinkerOutputPortBlock + +Tinker_LED=com.ardublock.translator.block.tinker.TinkerLEDBlock +Tinker_Mosfet=com.ardublock.translator.block.tinker.TinkerMosfetBlock +Tinker_Relay=com.ardublock.translator.block.tinker.TinkerRelayBlock +Tinker_Button=com.ardublock.translator.block.tinker.TinkerButtonBlock +Tinker_Accmeter=com.ardublock.translator.block.tinker.TinkerAccmeterBlock +Tinker_Hall=com.ardublock.translator.block.tinker.TinkerHallBlock +Tinker_LDR=com.ardublock.translator.block.tinker.TinkerLDRBlock +Tinker_LinearPotentiometer=com.ardublock.translator.block.tinker.TinkerLinearPotentiometerBlock +Tinker_RotaryPotentiometer=com.ardublock.translator.block.tinker.TinkerRotaryPotentiometerBlock +Tinker_Thermistor=com.ardublock.translator.block.tinker.TinkerThermistorBlock +Tinker_Touch=com.ardublock.translator.block.tinker.TinkerTouchBlock +Tinker_Tilt=com.ardublock.translator.block.tinker.TinkerTiltBlock +Tinker_LED_pwm=com.ardublock.translator.block.tinker.TinkerLEDPwmBlock +Tinker_Mosfet_pwm=com.ardublock.translator.block.tinker.TinkerMosfetPwmBlock +Tinker_Servo=com.ardublock.translator.block.tinker.TinkerServoBlock + +#Xinchejian +xcj_motor_forward=com.ardublock.translator.block.xinchejian.XinchejianMotorForwardBlock +xcj_motor_backward=com.ardublock.translator.block.xinchejian.XinchejianMotorBackwardBlock +xcj_ms_digital_write=com.ardublock.translator.block.xinchejian.XinchejianDigitalWriteBlock +xcj_ms_digital_read=com.ardublock.translator.block.xinchejian.XinchejianDigitalReadBlock + +#DFRobot +df_digital_viberation_sensor=digitalInput +df_digital_infrared_motion_sensor=digitalInput +df_digital_ir_receiver_module=digitalInput +df_adjustable_infrared_sensor_switch=digitalInput +df_line_tracking_sensor=digitalInput +df_digital_push_button=digitalInput +df_joystick_module_button=digitalInput +df_capacitive_touch_sensor=digitalInput +df_digital_tilt_sensor=digitalInput +df_digital_magnetic_sensor=digitalInput +df_pizeo_disk_vibration_sensor=analogInput +df_analog_ambient_light_sensor=analogInput +df_analog_grayscale_sensor=analogInput +df_flame_sensor=analogInput +df_temperature_sensor=analogInput +df_joystick_module_x=analogInput +df_joystick_module_y=analogInput +df_mma7260_x=analogInput +df_mma7260_y=analogInput +df_mma7260_z=analogInput +df_analog_rotation_sensor_v1=analogInput +df_analog_rotation_sensor_v2=analogInput +df_analog_sound_sensor=analogInput +df_analog_volume_sensor=com.ardublock.translator.block.dfrobot.VolumeSensorBlock +df_analog_gas_sensor=analogInput +df_analog_co_sensor=analogInput +df_analog_voltage_divider=analogInput +df_analog_mma7361_x=analogInput +df_analog_mma7361_y=analogInput +df_analog_mma7361_z=analogInput +df_analog_gp2y0a21=com.ardublock.translator.block.dfrobot.SharpGP2Y0A21 +df_analog_moisture=analogInput +df_lcd_keypad=com.ardublock.translator.block.dfrobot.lcdkeypad + +df_servo=servo +df_360_degree_rotation_motor=servo +df_dht11_temperature=com.ardublock.translator.block.dfrobot.Dht11TemperatureBlock +df_dht11_humidity=com.ardublock.translator.block.dfrobot.Dht11HumidityBlock +df_romeo_motors=com.ardublock.translator.block.dfrobot.RomeoMotorsBlock +df_romeo_motor=com.ardublock.translator.block.dfrobot.RomeoMotorBlock +df_romeo_motor_stop=com.ardublock.translator.block.dfrobot.RomeoMotorStopBlock +df_led=digitalOutput +df_led_pwm=analogOutput +df_piranha_led=digitalOutput +df_piranha_led_pwm=analogOutput +df_relay=digitalOutput +df_buzzer=digitalOutput +df_buzzer_tone=tone +df_buzzer_tone_delay=toneTime + +#SeeedStudio +seeed_joystick=analogInput +seeed_joystick_button=com.ardublock.translator.block.seeedstudio.GroveJoyStickButtonBlock +seeed_o2_sensor=analogInput +seeed_uv_sensor=analogInput +seeed_single_gyro=analogInput +seeed_mq9_sensor=analogInput +seeed_mp3_sensor=analogInput +seeed_vib_sensor=analogInput +seeed_loud_sensor=analogInput +seeed_diff_amp=analogInput +seeed_ir_temp_sensor=analogInput +seeed_ir_proximity_sensor=analogInput +seeed_electricity_sensor=analogInput +seeed_angle_sensor=analogInput +seeed_sound_sensor=analogInput +seeed_moisture_sensor=analogInput +seeed_temp_sensor=analogInput +seeed_light_sensor=analogInput + +seeed_valtage_divider=digitalInput +seeed_flame_sensor=digitalInput +seeed_button=digitalInput +seeed_switch=digitalInput +seeed_ir_refl_sensor=digitalInput +seeed_heart_rate_sensor=digitalInput +seeed_chest_heart_sensor=digitalInput +seeed_air_quality_sensor=digitalInput +seeed_line_finder=digitalInput +seeed_pir_motion_sensor=digitalInput +seeed_tilt_switch=digitalInput +seeed_push_button=digitalInput +seeed_water_sensor=digitalInput +seeed_touch_sensor=digitalInput +seeed_mag_switch=digitalInput +seeed_ir_dist_int=digitalInput + +seeed_circle_led=digitalOutput +seeed_2coil_relay=digitalOutput +seeed_dry_relay=digitalOutput +seeed_solid_relay=digitalOutput +seeed_circle_led=digitalOutput +seeed_led_strip=digitalOutput +seeed_led=digitalOutput +seeed_var_led=inversedDigitalOutput +seeed_vib=digitalOutput +seeed_relay=digitalOutput + + +#DuinoEDU +DuinoEDU_infrared=com.ardublock.translator.block.Duinoedu.Infrared +DuinoEDU_humi=com.ardublock.translator.block.Duinoedu.Humi +DuinoEDU_temp=com.ardublock.translator.block.Duinoedu.Temp +DuinoEDU_humiPro=com.ardublock.translator.block.Duinoedu.HumiPro +DuinoEDU_tempPro=com.ardublock.translator.block.Duinoedu.TempPro +DuinoEDU_Led_Bar=com.ardublock.translator.block.Duinoedu.Led_Bar +DuinoEDU_LCD_I2C_RGB=com.ardublock.translator.block.Duinoedu.LCD_I2C_RGB +DuinoEDU_LCD_I2C_Backlight=com.ardublock.translator.block.Duinoedu.LCD_I2C_Backlight +DuinoEDU_LCD_I2C_RGB_Clear=com.ardublock.translator.block.Duinoedu.LCD_I2C_RGB_Clear +keyboard=com.ardublock.translator.block.KeyboardBlock +keyboard_post=com.ardublock.translator.block.Keyboard_PostBlock +keyboard_compare=com.ardublock.translator.block.Keyboard_Compare +DuinoEDU_notequal=com.ardublock.translator.block.Duinoedu.OutputPortBlock +DuinoEDU_equal=com.ardublock.translator.block.Duinoedu.OutputPortBlock +DuinoEDU_Mouse_Init=com.ardublock.translator.block.Duinoedu.Mouse_Init +DuinoEDU_Mouse_Xmove=com.ardublock.translator.block.Duinoedu.Mouse_Xmove +DuinoEDU_Mouse_Ymove=com.ardublock.translator.block.Duinoedu.Mouse_Ymove +DuinoEDU_Keypad_12_Button=com.ardublock.translator.block.Duinoedu.Keypad_12_Button +DuinoEDU_Keypad_Post=com.ardublock.translator.block.Duinoedu.Keypad_Post +DuinoEDU_Keypad_Pwd=com.ardublock.translator.block.Duinoedu.Keypad_Pwd +DuinoEDU_Digital_Tube=com.ardublock.translator.block.Duinoedu.Digital_Tube +DuinoEDU_Digital_Clear=com.ardublock.translator.block.Duinoedu.Digital_Clear +DuinoEDU_Display_Digital_Tube=com.ardublock.translator.block.Duinoedu.Digital_Tube_Display +DuinoEDU_Display_Digital_Tube2=com.ardublock.translator.block.Duinoedu.Digital_Tube_Display2 +DuinoEDU_Oled_I2C=com.ardublock.translator.block.Duinoedu.Oled_I2C +DuinoEDU_Oled_Clear=com.ardublock.translator.block.Duinoedu.Oled_Clear +DuinoEDU_Driver_I2C_Forward=com.ardublock.translator.block.Duinoedu.Driver_I2C_Forward +DuinoEDU_Driver_I2C_Back=com.ardublock.translator.block.Duinoedu.Driver_I2C_Back +DuinoEDU_Driver_I2C_Pivoter=com.ardublock.translator.block.Duinoedu.Driver_I2C_Pivoter +DuinoEDU_Driver_I2C_Speed_A_Motor=com.ardublock.translator.block.Duinoedu.Driver_I2C_Speed_A_Motor +DuinoEDU_Driver_I2C_Speed_B_Motor=com.ardublock.translator.block.Duinoedu.Driver_I2C_Speed_B_Motor +DuinoEDU_right=com.ardublock.translator.block.Duinoedu.Driver_Right +DuinoEDU_straight=com.ardublock.translator.block.Duinoedu.Driver_Straight +DuinoEDU_left=com.ardublock.translator.block.Duinoedu.Driver_Left +DuinoEDU_Aix_Acc_mesurerX=com.ardublock.translator.block.Duinoedu.Acc_mesurerX +DuinoEDU_Aix_Acc_mesurerY=com.ardublock.translator.block.Duinoedu.Acc_mesurerY +DuinoEDU_Aix_Acc_mesurerZ=com.ardublock.translator.block.Duinoedu.Acc_mesurerZ +DuinoEDU_Aix_Acc_mesurerXYZ=com.ardublock.translator.block.Duinoedu.Acc_mesurerXYZ +DuinoEDU_Aix_Acc_mesurerVariation=com.ardublock.translator.block.Duinoedu.Acc_mesurerVariation +DuinoEDU_Ultrasonic=com.ardublock.translator.block.Duinoedu.Ultrasonic +DuinoEDU_Partie_Emetteur=com.ardublock.translator.block.Duinoedu.Partie_Emetteur +DuinoEDU_Partie_Recepteur=com.ardublock.translator.block.Duinoedu.Partie_Recepteur +DuinoEDU_On_digit1=com.ardublock.translator.block.Duinoedu.OutputPortBlock +DuinoEDU_On_digit2=com.ardublock.translator.block.Duinoedu.OutputPortBlock +DuinoEDU_On_digit3=com.ardublock.translator.block.Duinoedu.OutputPortBlock +DuinoEDU_On_digit4=com.ardublock.translator.block.Duinoedu.OutputPortBlock +DuinoEDU_setSerialInfosOn=com.ardublock.translator.block.Duinoedu.SetSerialInfosOn +DuinoEDU_setSerialInfosOff=com.ardublock.translator.block.Duinoedu.SetSerialInfosOff +DuinoEDU_Rfid_Write=com.ardublock.translator.block.Duinoedu.Rfid_Write +DuinoEDU_Rfid_Test=com.ardublock.translator.block.Duinoedu.Rfid_Test +DuinoEDU_Rfid_Read=com.ardublock.translator.block.Duinoedu.Rfid_Read +DuinoEDU_Rfid_Clear=com.ardublock.translator.block.Duinoedu.Rfid_Clear +DuinoEDU_Rfid_Ram_List=com.ardublock.translator.block.Duinoedu.Rfid_Ram_List +DuinoEDU_neopixel_init=com.ardublock.translator.block.Duinoedu.Neopixel_init +DuinoEDU_neopixel_pixel_colorGRB=com.ardublock.translator.block.Duinoedu.Neopixel_pixel_colorGRB +DuinoEDU_neopixel_pixel_colorRGB=com.ardublock.translator.block.Duinoedu.Neopixel_pixel_colorRGB +DuinoEDU_neopixel_show=com.ardublock.translator.block.Duinoedu.Neopixel_show +DuinoEDU_neopixel_Brightness=com.ardublock.translator.block.Duinoedu.Neopixel_Brightness +DuinoEDU_neopixel_Clear=com.ardublock.translator.block.Duinoedu.Neopixel_Clear +DuinoEDU_stepper_step=com.ardublock.translator.block.Duinoedu.Stepper_step +DuinoEDU_stepper_setSpeed=com.ardublock.translator.block.Duinoedu.Stepper_SetSpeed +DuinoEDU_matrice_write=com.ardublock.translator.block.Duinoedu.Matrice_write +DuinoEDU_matrice_clear=com.ardublock.translator.block.Duinoedu.Matrice_clear +DuinoEDU_matrice_Brightness=com.ardublock.translator.block.Duinoedu.Matrice_Brightness +DuinoEDU_Servo_Plus=com.ardublock.translator.block.Duinoedu.Servo_Plus +DuinoEDU_Led=digitalOutput +DuinoEDU_SerialOscillo=com.ardublock.translator.block.Duinoedu.SerialOscillo +DuinoEDU_SerialOscillo_Init=com.ardublock.translator.block.Duinoedu.SerialOscillo_Init +DuinoEDU_Volts=com.ardublock.translator.block.Duinoedu.Volts +DuinoEDU_VALEURS_BRUTES=com.ardublock.translator.block.Duinoedu.VALEURS_BRUTES +DuinoEDU_CM=com.ardublock.translator.block.Duinoedu.CM +DuinoEDU_DEGRES=com.ardublock.translator.block.Duinoedu.DEGRES +DuinoEDU_Nunchuck_BoutonC=com.ardublock.translator.block.Duinoedu.Nunchuck_BoutonC +DuinoEDU_Nunchuck_BoutonZ=com.ardublock.translator.block.Duinoedu.Nunchuck_BoutonZ +DuinoEDU_Nunchuck_JoystickX=com.ardublock.translator.block.Duinoedu.Nunchuck_JoystickX +DuinoEDU_Nunchuck_JoystickY=com.ardublock.translator.block.Duinoedu.Nunchuck_JoystickY +DuinoEDU_Nunchuck_AccelerationX=com.ardublock.translator.block.Duinoedu.Nunchuck_AccelerationX +DuinoEDU_Nunchuck_AccelerationY=com.ardublock.translator.block.Duinoedu.Nunchuck_AccelerationY +DuinoEDU_Nunchuck_AccelerationZ=com.ardublock.translator.block.Duinoedu.Nunchuck_AccelerationZ +#Panda +panda_i0=com.ardublock.translator.block.panda.PandaInputPortBlock +panda_i1=com.ardublock.translator.block.panda.PandaInputPortBlock +panda_i2=com.ardublock.translator.block.panda.PandaInputPortBlock +panda_i3=com.ardublock.translator.block.panda.PandaInputPortBlock +panda_i4=com.ardublock.translator.block.panda.PandaInputPortBlock +panda_i5=com.ardublock.translator.block.panda.PandaInputPortBlock + +panda_o0=com.ardublock.translator.block.panda.PandaOutputPortBlock +panda_o1=com.ardublock.translator.block.panda.PandaOutputPortBlock +panda_o2=com.ardublock.translator.block.panda.PandaOutputPortBlock +panda_o3=com.ardublock.translator.block.panda.PandaOutputPortBlock +panda_o4=com.ardublock.translator.block.panda.PandaOutputPortBlock +panda_o5=com.ardublock.translator.block.panda.PandaOutputPortBlock + +# BLE Shield +bleshield=com.ardublock.translator.block.network.BLEShield +bleshield_available=com.ardublock.translator.block.network.BLEShieldAvailable +bleshield_read_poly=com.ardublock.translator.block.network.BLEShieldRead + +# Adafruit Motorshield +ada_dc_motor_fwd=com.ardublock.translator.block.adafruit.dcmotor_fwd +ada_dc_motor_bwd=com.ardublock.translator.block.adafruit.dcmotor_bwd +ada_dc_motor_release=com.ardublock.translator.block.adafruit.dcmotor_release +ada_neopixel_NEO_GRB=com.ardublock.translator.block.adafruit.NEO_GRB +ada_neopixel_NEO_RGB=com.ardublock.translator.block.adafruit.NEO_RGB +ada_neopixel_NEO_KHZ400=com.ardublock.translator.block.adafruit.KHZ400 +ada_neopixel_NEO_KHZ800=com.ardublock.translator.block.adafruit.KHZ800 +ada_neopixel_init=com.ardublock.translator.block.adafruit.ada_neopixel_init +ada_neopixel_pixel_colorGRB=com.ardublock.translator.block.adafruit.Neopixel_pixel_colorGRB +ada_neopixel_pixel_colorRGB=com.ardublock.translator.block.adafruit.Neopixel_pixel_colorRGB +ada_neopixel_show=com.ardublock.translator.block.adafruit.Neopixel_show +ada_neopixel_Brightness=com.ardublock.translator.block.adafruit.Neopixel_Brightness + +# Makeblock +me_ultrasonic_sensor=com.ardublock.translator.block.makeblock.MeUltrasonicSensor +me_linefinder=com.ardublock.translator.block.makeblock.MeLineFinder +me_motordriver=com.ardublock.translator.block.makeblock.MeMotorDriver +me_servodriver=com.ardublock.translator.block.makeblock.MeServoDriver +me_infraredreceiver=com.ardublock.translator.block.makeblock.MeInfraredReceiver +me_bluetooth_read=com.ardublock.translator.block.makeblock.MeBluetoothRead +me_bluetooth_write=com.ardublock.translator.block.makeblock.MeBluetoothWrite +me_basemotordriver=com.ardublock.translator.block.makeblock.MeBaseMotorDriver +me_bluetooth_commands=com.ardublock.translator.block.makeblock.MeBluetoothCommands +me_bluetooth_command=com.ardublock.translator.block.makeblock.MeBluetoothCommand +me_limitswitch=com.ardublock.translator.block.makeblock.MeLimitSwitch +me_shutter=com.ardublock.translator.block.makeblock.MeShutter +me_stepper_motor=com.ardublock.translator.block.makeblock.MeStepperMotor +me_port_1=com.ardublock.translator.block.makeblock.MePort +me_port_2=com.ardublock.translator.block.makeblock.MePort +me_port_3=com.ardublock.translator.block.makeblock.MePort +me_port_4=com.ardublock.translator.block.makeblock.MePort +me_port_5=com.ardublock.translator.block.makeblock.MePort +me_port_6=com.ardublock.translator.block.makeblock.MePort +me_port_7=com.ardublock.translator.block.makeblock.MePort +me_port_8=com.ardublock.translator.block.makeblock.MePort +me_motor_1=com.ardublock.translator.block.makeblock.MePort +me_motor_2=com.ardublock.translator.block.makeblock.MePort +me_shutter_1=com.ardublock.translator.block.makeblock.MeShutterAction +me_shutter_2=com.ardublock.translator.block.makeblock.MeShutterAction +me_shutter_3=com.ardublock.translator.block.makeblock.MeShutterAction +me_shutter_4=com.ardublock.translator.block.makeblock.MeShutterAction + +#Insect Bot +insectbot_get_distance=com.ardublock.translator.block.insectbot.GetDistanceBlock +insectbot_is_indanger=com.ardublock.translator.block.insectbot.InDangerBlock +insectbot_go_forward=com.ardublock.translator.block.insectbot.GoForwardBlock +insectbot_go_backright=com.ardublock.translator.block.insectbot.GoBackRightBlock +insectbot_turn_left=com.ardublock.translator.block.insectbot.TurnLeftBlock +insectbot_blink_led=com.ardublock.translator.block.insectbot.BlinkLedBlock + +#Creator_4Drawing +iDrawing_set_para=com.ardublock.translator.block.drawing.SetParameters +iDrawing_run=com.ardublock.translator.block.drawing.Run +iDrawing_rule_start=com.ardublock.translator.block.drawing.AddRule +iDrawing_rule_stop=com.ardublock.translator.block.drawing.AddRule +iDrawing_rule_sleep=com.ardublock.translator.block.drawing.AddRule + + +iDrawing_trigger_time=com.ardublock.translator.block.drawing.TimePara +iDrawing_trigger_dpin=com.ardublock.translator.block.drawing.DigitalInputPara + +iDrawing_actuator_led=com.ardublock.translator.block.drawing.LedPara +iDrawing_trigger_apin=com.ardublock.translator.block.drawing.AnalogInputPara +iDrawing_actuator_playermini=com.ardublock.translator.block.drawing.PlayerPara +iDrawing_actuator_dpin=com.ardublock.translator.block.drawing.DigitalOutputPara + +port_pin_name=com.ardublock.translator.block.drawing.PinName + +led_mode_flash=com.ardublock.translator.block.drawing.ConstantMap +led_mode_fade=com.ardublock.translator.block.drawing.ConstantMap + + +trigger_equal=com.ardublock.translator.block.drawing.ConstantMap +trigger_greater=com.ardublock.translator.block.drawing.ConstantMap +trigger_less=com.ardublock.translator.block.drawing.ConstantMap + +player_mode_random=com.ardublock.translator.block.drawing.ConstantMap +player_mode_single=com.ardublock.translator.block.drawing.ConstantMap + +output_mode_high=com.ardublock.translator.block.drawing.ConstantMap +output_mode_low=com.ardublock.translator.block.drawing.ConstantMap +output_mode_highpulse=com.ardublock.translator.block.drawing.ConstantMap +output_mode_lowpulse=com.ardublock.translator.block.drawing.ConstantMap + + + +#legacy support +loop1=com.ardublock.translator.block.LoopBlock +loop2=com.ardublock.translator.block.ProgramBlock +loop3=com.ardublock.translator.block.LoopBlock + +# littlebits +little_bits_bendsensor=analogInput +little_bits_button=digitalInput +little_bits_dimmer=analogInput +little_bits_lightsensor=analogInput +little_bits_lighttrigger=analogInput +little_bits_microphone=analogInput +little_bits_motiontrigger=analogInput +little_bits_pressuresensor=analogInput +little_bits_pulse=analogInput +little_bits_remotetrigger=analogInput +little_bits_rollerswitch=analogInput +little_bits_slidedimmer=analogInput +little_bits_slideswitch=analogInput +little_bits_soundtrigger=analogInput +little_bits_timeout=analogInput +little_bits_toggleswitch=analogInput +little_bits_mix=analogInput +little_bits_oscillator=analogInput +little_bits_random=analogInput +little_bits_bargraph=analogOutput +little_bits_brightled=analogOutput +little_bits_dcmotor=analogOutput +little_bits_fan=analogOutput +little_bits_ir_led=analogOutput +little_bits_led=analogOutput +little_bits_lightwire=analogOutput +little_bits_longled=analogOutput +little_bits_number=analogOutput +little_bits_rgbled=analogOutput +little_bits_uvled=analogOutput +little_bits_vibration_motor=analogOutput +little_bits_synthspeaker=analogOutput + +#keenlon +ke-motor-run=com.ardublock.translator.block.keenlon.MotorRunBlock +ke-motor-setmoto=com.ardublock.translator.block.keenlon.MotorSetMotoBlock +ke-motor-stop=com.ardublock.translator.block.keenlon.MotorStopBlock +ke-tft-print=com.ardublock.translator.block.keenlon.TFTPrintBlock +ke-tft-clear=com.ardublock.translator.block.keenlon.TFTClearBlock +ke-eye-minvalue=com.ardublock.translator.block.keenlon.EyeMinValueBlock +ke-eye-minindex=com.ardublock.translator.block.keenlon.EyeMinIndexBlock +ke-eye-maxvalue=com.ardublock.translator.block.keenlon.EyeMaxValueBlock +ke-eye-maxindex=com.ardublock.translator.block.keenlon.EyeMaxIndexBlock +ke-eye-singlevalue=com.ardublock.translator.block.keenlon.EyeSingleValueBlock +ke-button-getbutton=com.ardublock.translator.block.keenlon.ButtonGetButton +ke-encoder-clear=com.ardublock.translator.block.keenlon.EncoderClearBlock +ke-encoder-getencoder=com.ardublock.translator.block.keenlon.EncoderGetEncoderBlock +ke-tft-msg=com.ardublock.translator.block.keenlon.TFTPrintMsgBlock +ke-tft-add=com.ardublock.translator.block.keenlon.TFTPrintAddParamBlock +ke-buzzer=digitalOutput +ke-ground-light=analogInput +ke-led-on-off=digitalOutput +ke-led-pwm=analogOutput +ke-light=analogInput +ke-mic=analogInput +ke-photo=digitalInput +ke-potentiometer=analogInput +ke-relays=digitalOutput +ke-tempe=analogInput +ke-touch=digitalInput +ke-servo=servo +ke-psd=analogInput +ke-compass=com.ardublock.translator.block.keenlon.CompassGetCompass + +#jerusalab +midi_command=com.ardublock.translator.block.jerusalab.MidiCommandBlock +Midi_C=com.ardublock.translator.block.jerusalab.MidiInputPortBlock +Midi_CS=com.ardublock.translator.block.jerusalab.MidiInputPortBlock +Midi_D=com.ardublock.translator.block.jerusalab.MidiInputPortBlock +Midi_DS=com.ardublock.translator.block.jerusalab.MidiInputPortBlock +Midi_E=com.ardublock.translator.block.jerusalab.MidiInputPortBlock +Midi_F=com.ardublock.translator.block.jerusalab.MidiInputPortBlock +Midi_FS=com.ardublock.translator.block.jerusalab.MidiInputPortBlock +Midi_G=com.ardublock.translator.block.jerusalab.MidiInputPortBlock +Midi_GS=com.ardublock.translator.block.jerusalab.MidiInputPortBlock +Midi_A=com.ardublock.translator.block.jerusalab.MidiInputPortBlock +Midi_AS=com.ardublock.translator.block.jerusalab.MidiInputPortBlock +Midi_B=com.ardublock.translator.block.jerusalab.MidiInputPortBlock