Arduino mit Java-App schalten

In diesem kleinen Tutorial schauen wir uns an, wie ein Java Programm über die serielle Schnittstelle mit einem Arduino kommunizieren kann und andersrum.

Ich verwende dazu die Arduino IDE und IntelliJ IDEA Community für das Java Programm.

Fall Du noch nicht so viel Erfahrung mit dem Arduio, könntest Du auch erstmal mit einem einfacheren Tutoruial beginnen Arduino LED blinken lassen.

Einfügen

1. Benötigte Materialien

Folgende Teile werden für dieses Tutorial benötigt:

Arduino UNO* Steckbrett* Drähte* LEDs* Widerstand 330Ohm oder etwas mehr (bis 680Ohm)*
Einfügen

2. Die Schaltung

Die Schaltung wird sehr einfach sein und soll hier nur als Beispiel dienen, natürlich kannst Du später sehr viel mehr steuern, als nur eine LED.

Einfügen

Werbung (Affiliate - ich bekomme eine kleine Provision, dein Preis ändert sich nicht)

Beim Kauf einer Lötstation gibt es einen elektronischen Bausatz gratis dazu.

3. Der Arduino Sketch

Das Arduino-Programm ist nicht sehr groß. Zunächst wird in "setup" der pinMode für die LED als Ausgang festgelegt. Weiterhin die Serielle Verbindung mit einer Baudrate von 9600 geöffnet.

In "loop" wird, falls Daten verfügbar sind, das entsprechende Kommando gelesen und je nachdem ob "0" oder "1" empfangen wurde, die LED ein- oder ausgeschalten. 

Falls ein Kommando ausgeführt wurde, wird eine Rückmeldung in Form einer "2" oder "3" gegeben. Dies dient dazu, später im JAVA-Programm den Zustand der LED anzeigen zu können.

Einfügen

Werbung (Affiliate - ich bekomme eine kleine Provision, dein Preis ändert sich nicht)

4. Die jSerialComm Bibliothek

Für die serielle Kommunikation nutzen wir in Java eine Bibliothek, welche Du hier findest: jSerialComm

Die hier verwendet Entwicklungsumgebung ist IntelliJ IDEA Community. 

Über das Menü: ProjectStructure > Libraries kann die heruntergeladene .jar Datei (also die jSerialComm Bibliothek) eingebunden werden.

Alternativ kann die Bibliothek auch über Maven eingebunden werden: hier

Einfügen

Werbung (Affiliate - ich bekomme eine kleine Provision, dein Preis ändert sich nicht)

5. Das Java Projekt

Zunächst ist das Projekt ein normales JAVA-FX Projekt über das Menü: New > Project erzeugt. Nutze hier den Generator für Java-FX Projekte, zusätzliche Java FX Module benötigst Du nicht.


Das Project besteht aus 2 Klassen plus die "view.fxml" Datei zum Aufbau der Oberfläche mittels FXMLLoader.



UML


Zunächst die View-Datei, welche in der Klasse "App" später geladen wird und die Benutzeroberfläche bildet.

view.fxml

Als nächstes benötigen wir die Klasse "App" diese startet die Applikation. Die hier implementierte Methode "start" muss implementiert werden, da unsere Klasse App von der abstrakten Klasse "Application" von Java-FX erbt. In "start" wird der "view.fxml"-File geladen und die so erstellte Scene im Fenster (stage) angezeigt.

App.java

Als letztes der Controller, in dem die eigentliche Funktionalität implementiert ist. 

Zunächst hier in der Methode "initialize" der Serielle Port geöffnet und anschließend wir ein Event angemeldet für den  Fall, das Daten verfügbar sind. Dazu wird im falle des Events die Methode "readState" aufgerufen. Dies dient dazu, den Status der LED vom Arduino zurückzuerhalten.

Die Methode "sendCommand" sendet ein jeweiliges Kommando an den Arduino. Das Senden wird aufgerufen, wenn eine der beiden Tasten "An" oder "Aus" aufgerufen wird.

Controller.java

So das wars, nun wird das Programm laufen und jeweils die LED schalten und den Status der Leuchte auch anzeigen.

Einfügen

6. Das könnte Dich auch interessieren

MP3-Player mit Java programmieren
Einfachen Arduino Roboter bauen
Einfügen