Im vorherigen Artikel „Status quo und Expertenstimmen“ haben wir bereits gelernt, dass Java, JavaFX und Visual Studio Code perfekt zum Raspberry Pi passen. Geben wir nun noch Pi4J in diese Mischung, können wir Java-Anwendungen erstellen, die mit den elektronischen Komponenten sprechen können, die wiederum an die GPIO-Pins des Raspberry Pi angestöpselt sind. In diesem Artikel erstellen wir unser erstes Projekt, mit dem wir eine LED kontrollieren sowie den Status eines physischen Schalters feststellen und verarbeiten können.
Anfang 2021 hat das Pi4J-Projekt einige wichtige Schritte in Richtung Zukunft gemacht. Die finale Version der ersten Generation des Frameworks wurde veröffentlicht. Version 1.3 (basierend auf Java 8) brachte die Unterstützung für neuere Raspberry Pi Boards (4, 400, CM4), Version 1.4 hob das Framework auf Java 11.
In dieser Serie verwenden wir allerdings Version 2 von Pi4J, eine Version, die aktuell nur als Snapshot-Variante verfügbar ist. Das Projektteam ist mittlerweile gewachsen und es gibt Bestrebungen, die Entwicklung und Veröffentlichung neuer (Test-)Versionen zu beschleunigen. Ein erster Schritt dahingehend war es, die Webseite des Projekts [1] komplett neu zu gestalten. Die neue Kategorie „Getting started“ [2] sollte den Einstieg in das Erstellen von Java-Projekten für den Raspberry Pi deutlich vereinfachen. Das Beispiel „Minimal Example Application“ ist Thema dieses Artikels, die anderen Beispiele werden mit Hilfe von Studenten der Fachhochschule Nordschweiz [3] aufbereitet.
Im GitHub-Projekt pi4j-example-minimal [4] finden sich der Beispielcode, um einen digitalen I/O mit Pi4J zu kontrollieren. Die Anwendung schaltet eine LED an und aus und mit jedem Drücken eines Knopfes wird die Geschwindigkeit schneller. Nach dem fünften Betätigen des Knopfes, stoppt die Anwendung.
Verkabelung: Dieses Minimalbeispiel verwendet eine Verbindung zwischen einem Knopf und einer LED. In Abbildung 1 sehen wir das Schema eines sogenannten T-Cobbler auf einer Lochrasterplatte. So kann die Verkabelung extrem schnell geändert werden und das Herumexperimentieren mit unterschiedlichen Set-ups ist sehr einfach, da man einen klaren Überblick über die Nummern der GPIO-Pins erhält. Das gleiche Set-up lässt sich auch mit direkten Verbindungen zum Raspberry Pi erledigen, wie Abbildung 2 zeigt.
Das wichtigste Werkzeug des Pi4J-Projekts ist Maven. Das Beispielprojekt auf GitHub enthält allerdings auch eine Build-Konfiguration für Gradle.
Maven: Das Beispielprojekt kann mit Apache Maven 3.6 (oder neuer) und dem OpenJDK 11 (oder neuer) erstellt werden. Die genannten Versionen sind die Voraussetzung für das Erstellen des Projekts und müssen vorher installiert sein. Mit dem Befehl mvn package können alle Projektabhängigkeiten heruntergeladen und das Java-Modul kompiliert werden. Mit Java 11+ kann das Projekt direkt auf dem Raspberry Pi erstellt werden.
Gradle: Man kann natürlich auch das Build-Tool Gradle verwenden. Hierzu sollte man Version 6.6 (oder neuer) und ebenfalls OpenJDK 11 (oder neuer) verwenden. Der Wrapper von Gradle wird so verwendet...