/ / Wie steuere ich mit JAVA das LED-Licht, das über USB / SerialPort / usw. An den PC angeschlossen wird? Welches Gerät soll ich verwenden? - Java, Gerät, Mikrocontroller, serielle Kommunikation, LED

Wie kann man mit JAVA das LED-Licht über USB / SerialPort / etc an den PC anschließen? Welches Gerät soll ich verwenden? - Java, Gerät, Mikrocontroller, serielle Kommunikation, LED

Ich möchte ein Programm in JAVA schreiben, das LED-Lichter steuern kann, die an "etwas" anschließen, das an den Computer angeschlossen ist.

JAVA-Programm besteht aus 8 Schaltflächen inJFrame. Die Tasten sind von 1 bis 8 nummeriert. Wenn die Taste mit der Nummer X gedrückt wird, leuchtet die LED mit der Nummer X auf. Wenn diese Schaltfläche erneut angeklickt (umgeschaltet) wird, wird diese LED ausgeschaltet.

Im Gegensatz zu Mikrocontrollern, die wir Code laden müssenIn ihnen empfängt "etwas", das ich erwähnt habe, nur Signale von JAVA (möglicherweise über USB / SerialPort / ...), um Lichter zu steuern. Zum Beispiel sendet JAVA 0000_0101 (schaltet LED Nr. 1 und 3 ein) über SerialPort an "etwas" und dann "behält" etwas diesen Wert, bis ein neues Signal gesendet wird. Jede Ziffer des Wertes steht für HIGH / LOW eines Pins auf "etwas", das ich mit dem Pin der LED verbinden werde.

"Something" kann so etwas wie ein Gerät sein, das "Serielles Port-Signal" in "Binär" umwandelt und dieses "Binär" in einem Register mit Ausgangspins speichert, die ich mit LEDs verbinden kann.

Ist das möglich? Gibt es ein Gerät wie "etwas"? Was ist es? Hat jemand einen Vorschlag? oder einige bessere Möglichkeiten, um Lichter vom PC aus zu steuern?

Antworten:

4 für die Antwort № 1

Ähnliches habe ich mit dem BeagleBone gemachtSchwarz läuft ein Android-Port. Ich habe eine Android-Anwendung entwickelt, die eine benutzerdefinierte Bluetooth Low Energy-API verwendet, die ich erstellt habe, um mit einem TI CC2541 zu kommunizieren, auf dem der BLE-Stack ausgeführt wird.

Sie müssen lediglich Funktionen schreibenC / C ++, um die erforderlichen Plattformhardwareaufrufe für das Umschalten der E / A zu tätigen. So etwas wie ToggleLed (led) würde ausreichen. Anschließend verbinden Sie die nativen Aufrufe von Java mit Java Native Interface (JNI). JNI erstellt eine Bibliothek, die Sie statisch laden können.

Sobald Sie die Bibliothek erstellt haben, können Sie sie in Java aufrufen.

In meiner Situation habe ich beispielsweise eine BLE erstelltAPI, die mit nativem C ++ kommunizierte und serielles Lesen / Schreiben für meinen eingebetteten CC2541 BLE-Chip ausführte, um ihn in verschiedene Zustände zu versetzen. Diese Befehle waren Verbinden / Trennen, Schreiben von Daten und Lesen von Daten. Die BLE-API wurde in Java geschrieben und über JNI- und Treiberaufrufe mit der Hardware verbunden. Ich schrieb dann Anwendungen, die die BLE-API verwendeten.


4 für die Antwort № 2

Sie können die GPIO-Pins auf einem Himbeer-Pi mit steuern File Operationen. Siehe zum Beispiel folgendes: https://blogs.oracle.com/hinkmond/entry/rpi_and_java_embedded_gpio3 Wenn eine LED blinkt, wird der Ausgang eines Pins gewechselt. Das "Etwas" ist also der Pi, den Sie für sehr wenig Geld von vielen verschiedenen Distributoren erhalten können.

In der Regel ist Java jedoch nicht die Sprache der Wahl für die Bitsteuerung auf niedriger Ebene. Verwenden Sie stattdessen vor allem beim Raspberry Pi Python.


1 für die Antwort № 3

Arduino wird eine einfache und wirtschaftliche Wahl sein. Welches kommt mit einer großen Community-Unterstützung.


0 für die Antwort № 4

Ich habe beim DRUCKER etwas ähnliches gemachtDie parallele DB25-Schnittstelle ist im Computer verfügbar. Da die parallele Schnittstelle jedoch nicht mehr mit PCs, Laptops, Sie können alternativ U "SB to PRINTER DB25 25-poliger Parallelport-Kabeladapter" verwenden.

Diese parallele Schnittstelle verfügt über 8 Ausgangsleitungen, die binär Werte von 0 bis 255 darstellen können.

  1. Schreiben Sie eine c ++ - Bibliothek, die einen Bytewert an die Ausgabe der parallelen Schnittstelle übergibt. da Java nicht direkt auf Ihre Hardware zugreifen kann.

  2. Mit JNI können Sie von Ihrem Java-Code aus auf diese Bibliothek zugreifen.

  3. Verbinden Sie nun 8 LEDs mit den Ausgangspins des Parallelports.

HINWEIS: 1 & 2 Schritte sind bereits für Sie erledigt. von der folgenden Bibliothek. http://web.archive.org/web/20080523134328/http://www.geocities.com/Juanga69/parport/

um nur die 1. led zu leuchten, stellen sie den wert 00000001b => 1 dezimal ein

um nur die zweite led zu leuchten 00000010b => 2 dezimal

zum Aufleuchten der 4. und 8. LED => 10001000b => 136 dezimal