Archiv der Kategorie: Tools

Menü Klassen für LCD Displays

Da ein Menü auf dem Display zu erstellen eine immer wiederkehrende Aufgabe ist, habe ich einige der Funktionalitäten in Klassen gepackt.

Komponenten

Hardware

Software

  • Arduino IDE
  • LiquidChristal Lib (Kann über den Bibliotheksmanager installiert werden, siehe auch hier )
  • Meine Menu Lib (siehe unten)

Ziele

  1. Schritt einfache Header mit Klassen, die in einem Hauptrogramm verwendet werden können (erledigt).
  2. Schritt Verpacken der Klassen  als Arduino Lib welche in die Gui Importiert werden kann. (erledigt)
  3. Weitere Menüpunkt Varianten erstellen. (Kommt vielleicht noch)

Installation

Download

Die Lib kann bei GitHub runter geladen  werden (Hier der Link).

Hier könnt ihr sie direkt als Zip-Datei herunterladen.

Arduino IDE

Das Zip könnt ihr in der Aruino GUI installieren, siehe auch hier.

Testprogramm

Bei der Lib ist ein Testprogramm dabei, welches ihr über die Examples auswählen könnt.

LCD Menu Lib -> LCDSchieldTest

Hier seht ihr wie es geht.

Das Programm kompilieren und auf den Arduino spielen.

Wenn ihr ein andere Board verwendet bzw. nicht die LCD Keypad Platine, müsst ihr die Einstellungen für die Knöpfe und das LCD Display entsprechend euere Konfiguration anpassen.

Erklärung

Das Menü wird in der Funktion buildMenu() aufgebaut. Hier wird ein Haupmenüknoten erstellt, an den dann der Rest angehängt wird.

Folgende Knoten stehen aktuell zur Verfügung:

ItemMenu – Menü  -> Kann alle anderen Menüpunkte als Kind bekommen. Kann auch als Untermenüpunkt verwendet werden.

ItemBool – Schalter -> Dieser Menüpunkt kann ein und ausgeschaltet werden.

ItemInt – Ganzzahlenwert -> Hier können integer Werte erhöht oder vermindert werden. Min und Max geben die Schranken an.

Die Callbacks werden im Beispiel nicht benutz, diese könne dazu verwendet werden eine Funktion in eurem Programm aufzurufen wenn sich der Wert eines Menüpunktes ändert.

Navigation im Menü

Oben steht am Anfang das Hauptmenü.

Unten steht der 1. Menüpunkt. Mit den rechts/links Tasten könn ihr den ensprechenden Menüpunkt auswählen. Mit runter springt ihr in den Menüpunkt, mit hoch springt ihr wieder raus.

Die Menüs können beliebig verschachtelt werde, wie ihr an Submenue 1 und 2 seht.

Ausblick

Für mich reicht die Bibliothek erst mal, ich habe aber noch ein Paar Ideen vielleich werde ich die bei Gelegenheit nochmal umsetzen:

  • Gleitkomma Menüeintrag
  • Balken  Menüeintrag, für kleine Intwerte wird ein Balken angezeigt der die Einstellung symbolisiert.
  • Auswahlliste Menüpunkt (.. Wähle A, B oder C …)
  • zusätzlichen Beispiel für Callbacks

Probleme

Aktuell klappt das entprellen der Tasten im Beispiel nur bedingt. Den Fehler muss ich noch finden und beheben.

Quellen

Arduino LCD Keypad Shield

 

Java – IP Fernbedienung

Zweck des Ganzen ist eine Fernbedienung für meine Roboter.

Da alle Roboter (zumindest die fortschrittlicheren) über eine Netzwerkverbindung verfügen, möchte ich eine kleine App entwickeln, die per Konfiguration Telegramme an einen bestimmten Empfänger versenden kann.

Erster Wurf

Im ersten Schritt soll die Fernbedienung nur aus einem Tastenfeld bestehen. Der Benutzer kann die Anzahl Zeilen und Spalten bestimmen und die Knöpfe einzeln konfigurieren. Dies sollte ausreichen eine einfache Fernsteuerung zu erstellen.

Std. Layout 3 x 3 Felder
Konfigurierte Version des 3×3 Std. Layouts.

 

 

Java Socket Konsolen Server

Die Java Socket Konsole öffnet einen Server auf einem definierten Port. Der Port kann beim Start mit übergeben werden. Wird kein Port angegeben ist der standard Port 2021.  Alles was an diesen Port gesendet wird, erscheint als zeilenbasierte Ausgabe in einem Fenster.

Das Programm ermöglicht genau eine Verbindung.  Über die Textbox am Fuß des Dialogs und den „send“ Knopf kann Text an den verbundenen Client gesendet werden.

Vorausetzung

Java Version >= 7 muss installiert sein
Wurde bis jetzt nur unter Win 10 getestet

Starten

Die Datei kann einfach per Mouse-Doppelkick gestartet werde.

Ein starten über die die Konsole, um den Port mit zu geben, sieht wie folgt aus.

Der Port kann direkt hinter dem Dateinamen angegeben werden.

Ausgabe

Dateien

Jar Archiv

SocketConsole

Sourcen (Eclipse Projekt)

net.fambach.net.socket.console.zip

Probleme

Bei Problemen Mail an mich anfrage(at)fambach.net

Quellen

http://openbook.rheinwerk-verlag.de/javainsel9/javainsel_21_006.htm

https://docs.oracle.com/javase/7/docs/api/java/net/Socket.html

https://docs.oracle.com/javase/tutorial/networking/sockets/index.html

https://javabeginners.de/Netzwerk/Socketverbindung.php