Inhaltsverzeichnis

Ardublock

Ardublock ist grafische Programmierumgebung für die Arduino-IDE. Die Version 20140828 funktioniert nicht mehr mit mit der IDE-Version ab 1.6.12. (siehe z.B. hier). Eine Ardublock-Version für diese Version ist hier zu finden https://github.com/BirdBrainTechnologies/HummingbirdArdublock.

In Arduino-IDE einfügen

Die ardublock-all.jar wird in den Installationsordner der IDE unter \tools\ArduBlockTool\tool abgelegt. In der IDE ist Ardoblock dann im Menü unter Werkzeuge zu finden.

Eigene Erweiterungen

Vorgehensweise

\src\main\java\com\ardublock\translator\block

\src\main\resources\com\ardublock\block\block-mapping.properties

\src\main\resources\com\ardublock\block\ardublock.xml

\src\main\resources\com\ardublock\block\ardublock.properties

Beispiel

Erstellen einer Quelle

Im Verzeichnis \src\main\java\com\ardublock\translator\block wird ein neues Package-Unterverzeichnis angelegt - hier micha59

Anschließend werden die Quell-Dateien erstellt:
Keypad_4x3.java
Keypad_4x4.java

In diese Dateien muss in die oberste Zeile der Pfad zum Package eingetragen werden:
package com.ardublock.translator.block.micha59;

Einfügen in Oberfläche

In der Datei \src\main\resources\com\ardublock\block\block-mapping.properties werden die Quellen bekannt gemacht:

micha59_Keypad_4x3=com.ardublock.translator.block.micha59.Keypad_4x3
micha59_Keypad_4x4=com.ardublock.translator.block.micha59.Keypad_4x4

In der Datei \src\main\resources\com\ardublock\block\ardublock.xml werden die Blöcke zugefügt

<BlockGenuses>
...
	<BlockGenus name="micha59_Keypad_4x3" kind="command" color="0 0 96" initlabel="bg.micha59_Keypad_4x3">
		<description>
			<text>Keypad 12 or 16 Buttons</text>
		</description>			
		<BlockConnectors>
			<BlockConnector connector-type="number" connector-kind="socket" label="1. pin# row">
				<DefaultArg genus-name="number" label="2" />
			</BlockConnector>
			<BlockConnector connector-type="number" connector-kind="socket" label="1. pin# col">
				<DefaultArg genus-name="number" label="6" />
			</BlockConnector>
		</BlockConnectors>
	</BlockGenus>
	<BlockGenus name="micha59_Keypad_4x4" kind="command" color="0 0 96" initlabel="bg.micha59_Keypad_4x4">
		<description>
			<text>Keypad 12 or 16 Buttons</text>
		</description>			
		<BlockConnectors>
			<BlockConnector connector-type="number" connector-kind="socket" label="1. pin# row">
				<DefaultArg genus-name="number" label="2" />
			</BlockConnector>
			<BlockConnector connector-type="number" connector-kind="socket" label="1. pin# col">
				<DefaultArg genus-name="number" label="6" />
			</BlockConnector>
		</BlockConnectors>
	</BlockGenus>
...
</BlockGenuses>

Beide Blöcke sollen zusammengefasst werden:

<BlockFamilies>
...
	<BlockFamily>
		<FamilyMember>micha59_Keypad_4x3</FamilyMember>
		<FamilyMember>micha59_Keypad_4x4</FamilyMember>
	</BlockFamily>
...
</BlockFamilies>

Der Block soll einem vorhandenen Anzeige-Block zugefügt werden:

<BlockDrawerSets>
...
	<BlockDrawer button-color="205 133 63" name="bd.utilities" type="factory">
	...
		<BlockGenusMember>micha59_Keypad_4x4</BlockGenusMember>
	...
	</BlockDrawer>
...
</BlockDrawerSets>

Übersetzen mit Maven

Eine grundsätzliche Anleitung für Maven befindet sich hier. Ich habe Maven auf dem RaspberryPi installiert.
https://maven.apache.org/install.html
Die Verbindung zum Raspberry erfolgt über Putty mit SSH, die X11-Ausgabe so eingestellt, dass sie auf den PC zu XMing umgeleitet wird. X11-Forwarding

Damit die Übersetzung der HummingBird-Version klappte musste ich einige Dateien zu Maven installieren.

~/ardublock-master $ mvn install:install-file -Dfile=./lib/pde.jar -DpomFile=./pom.xml
~/ardublock-master $ mvn install:install-file -Dfile=./lib/arduino-core.jar -DpomFile=./pom.xml
~/ardublock-master $ mvn validate
~/ardublock-master $ mvn compile exec:java -Dexec.mainClass="com.ardublock.Main"
~/ardublock-master $ mvn clean package