Tinkerforge GUI Beginner Tutorial By M4ST3R

Ähnliche Dokumente
Arbeitsblatt 5 EAD II NetBeans

Praktikum 1: Einführung, BMI Rechner

/** Main-Methode erzeugt einen neuen Editor zum Testen */ public static void main(string[] args) { new Editor();

Einführung in das Programmieren

Eclipse 3.0 (Windows)

Datenbanksysteme 2 Fachbereich Angewandte Informatik WS 11/12 Dipl.-Inf. Christian Pape. 6. Übung

Handbuch für GUI 1 fli4l. Laura Schäfer, Philipp Rammos, Lukas Aliger, Mark Wittig, Thomas Muranaka, Patrick Kriegel

Graphische Benutzungsoberflächen mit Java. Einführung in NetBeans

1 - EIN NEUES GAMEGRID ANLEGEN

TCP/IP Programmierung. C# TimeServer Java6 TimeClient

Eclipse Tutorial.doc

Excel Tipp 3: Summenwerte in gestapelten Säulen-Diagrammen

Installation von Git für unsere OpenDCC/Fichtelbahn Entwickler Stephan Bauer, Christoph Schörner, Andreas Kuhtz

Rechnungsübersicht als Exceltabelle aus ADULO heraus erzeugen

Visual Basic Editor CATIA V5

(6) Verknüpfen der GUI mit dem Spiel

Mein Computerheft. Arbeiten mit Writer. Name: Ich kann ein Schreibprogramm öffnen und Texte schreiben. Öffne 00o4Kids mit einem Doppelklick!

Word starten. Word Word 2010 starten. Schritt 1

Acht Schritte zum persönlichen EXPRESS-Kalender Rund um den Dom

Installationsanleitung

DHBW Karlsruhe, Vorlesung Programmieren, Events Musterlösung

Installation von LeJOS für NXT und Einrichtung von Eclipse

Für die Erstellung von Javaprogrammen sind eventuell zwei Komponenten nötig. 1. Das Java-Develepment-Kit (JDK) und die 2. Java Runtime Engine (JRE)

Kurzanleitung Projektverwaltung

Eclipse 3.0 (Mac) 1. Eclipse installieren. 2. Welcome Projekt schliessen

Instrumentierung und Dekodierung

Interface. So werden Interfaces gemacht

Gobales Gedächtnis. AntMe. Sebastian Loers. lb-sys.info. Projekt: AntMe - Globales Gedächtnis (Version 1.0)

Zahlenraten: Ein Spiel in Java.

-Grundfunktionen Einführung in die Arbeit mit Mahara. Institut für Wissensmedien Universität Koblenz Landau

Wechseln Sie in den oberen Bereich auf Start> Dokumentenverwaltung> Neues Schreiben.

Im Mathe-Pool startet man Eclipse am besten aus einer Shell heraus, und zwar indem man im Home- Verzeichnis den Befehl

Handout CMS Pimcore. Bedienung der Webseite für Sektionen

Objektorientierte Programmierung Studiengang Medieninformatik

JSF Erstellen einer einfachen Bankanwendung mit Kontoübersicht und Überweisung

Erste Schritte mit SigmaPlot

Drei-Schichten-Architektur. Informatik B - Objektorientierte Programmierung in Java. Vorlesung 16: 3-Schichten-Architektur 1 Fachkonzept - GUI

NetBeans Installation für Handy-Programmierung

Einstieg in die Informatik mit Java

Handout für die Einrichtung von Microsoft Outlook

Grafische Benutzeroberfläche mit Glade und Python

WPF Steuerelemente. Dr. Beatrice Amrhein

C# - Einführung in die Programmiersprache Methoden. Leibniz Universität IT Services

Erzeugungsmuster. Kapselung der Objekt-Erzeugung

(3) Button-Klick & Texteingabe

AntMe! Workshop 8 April 2016

JUnit 4 Tutorial. Wolfgang Stöttinger

Starten sie das Internet und geben sie in die Adresszeile ein. Klicken Sie im rechten Bereich der Seite auf das Feld BILDER- GALERIE

7.0 Arbeiten mit Objekten und Klassen

Übung 1: Object Inspector

Erstellen einer DVD Movie-Datenbank Version 1.02

Anleitung zur Erstellung der Internetseiten

Software-Engineering Grundlagen des Software-Engineering

Konstruktoren, Packages und Scopes

Funktionale und Objekt-Orientierte Programmierkonzepte

Einführung in Truevision3D

Abonnieren Sie den apano-blog per RSS-Feed

Das medienneutrale Redaktionssystem von NUSSBAUM MEDIEN

finanzarchiv Das Handbuch Willkommen beim finanzarchiv!

1. Einloggen 2. Auswahl der Seite 3. Bearbeitung der Seite

How to install freesshd

Die elektronische Unterschrift ist Ihre Zukunft

LEGO-Mindstorms-Roboter im Informatikunterricht 1 - mit Java-

Praktikum Software Engineering

Algorithmen und Datenstrukturen

GIS-Web-Handbuch. Dieses Handbuch könnt ihr komplett lesen, oder über das Inhaltsverzeichnis zu den jeweiligen Themen springen.

Anleitung zur Migration auf Webmail

Wie erstelle ich eine Bilderstrecke?

Wir schreiben einen Brief

Desktop Hintergrund einrichten.

InfoSphere goes Android Hallo InfoSphere

Startseite. Primadenta Joomla. Unterseite

Programmieren II. Java im Vergleich zu anderen Sprachen. Einführung: GUI. Einführung: Grafische Benutzeroberflächen. Dr.

7. Java Fehler und Ausnahmen

Statistische Erhebung Stand (jahrgangsweise Erfassung)

Ghostscript Installation unter Windows 7

Kurze Einführung in die Arbeit mit dem Programm EUKLID ( Ac / 2008 )

Programmieren I. Fehlerbehandlung Exceptions. Heusch 2. Bd, 3 Ratz 10. Institut für Angewandte Informatik

Software-Engineering und Optimierungsanwendungen in der Thermodynamik

Kurzanleitung für den MyDrive Client

Eigenen Farbverlauf erstellen

Windows Presentation Foundation (WPF) -Grundlagen -Steuerelemente. Dr. Beatrice Amrhein

Formatvorlagen und automatisches Inhalts, - und Literaturverzeichnis erstellen bei Word

Technische Hochschule Georg Agricola WORKSHOP TEIL 3. IKT (Informations- und Kommunikationstechnik) an einer MorseApp erklärt

GUI Programmierung mit JAVA Swing

Anleitung zum Umgang:

Kopf-/Fußzeilen und Seitenzahlen

Swing : Komponeneten I (Teil 1) Was ist Swing?

cytan cytansynchro Version 4.1 / Mai 2016 Letzte Softwareanpassung: Woche 17 / 2016

Photoshop Tutorial Boot. In diesem Tutorial pfaden wir uns ein Boot und erstellen und ein Muster was wir für das Segel benötigen.

Comic Life 3.x. Fortbildung zum Mediencurriculum

Download. von: Ausfüllen und registrieren:

Java II - Übungsgruppe

Aufgabenblatt 1: - Präsenzübung für die Übungen Do Mi Ausgabe Mi

TempusCapio Erste Schritte

Installation und Update von UG NX7.5 und NX6

LERNMATERIALIEN VERWALTEN

Repair Guide für das tolino tab 8

8.6 Visualisierung der Sortieralgorithmen

Transkript:

Tinkerforge GUI Beginner Tutorial By M4ST3R

Voraussetzungen: Netbeans (7.1 aber funktioniert mit allen anderen auch) von Oracle installiert www.netbeans.org Java Bindings von TF runtergeladen BrickD installiert Masterbrick und JoystickBricklet vorhanden

Schritt 1) Als erstes starten wir Netbeans und sollten folgende Ansicht bekommen: Um ein neues Projekt zu öffnen, klickt man auf das entsprechende Icon (siehe Bild) Dann sollte sich folgender Dialog öffnen:

Man wählt in diesem Fall, da wir nur ein einfaches Testprojekt erstellen wollen, Java Application aus.

Nun müssen wir dem Projekt noch einen Namen geben. Dieser kann frei gewählt werden. Ebenso der Speicherort kann frei gewählt werden. Auf jeden Fall sollte man die beiden Haken unten entfernen! Anschließend auf Finish klicken. Schritt 2 Als nächstes müssen wir die von TF bereitgestellten Bindings hinzufügen, das geht folgendermaßen. Wir klicken mit der rechten Maustaste auf Libraries und anschließend auf Add Jar/Folder. Jetzt wählen wir die Tinkerforge.jar aus und klicken auf öffnen.

Wenn alles gut gegangen ist sollte unser Projekt jetzt so aussehen. Schritt 3) Unsere erste eigene Klasse. Dies wird zudem eine spezielle Klasse, da sie die Verbindung zu den Bricks aufbauen wird. Dazu klicken wir mit der rechten Maustaste auf den Ordner Source Package und wählen Neu Java Class aus.

Der Klasse geben wir den Namen singletoncommunication (habe leider hier das S großgeschrieben, aber ihr solltet es klein schreiben, da es im Wiki auch klein ist). Als Package habe ich config angegeben. So sieht unsere leere Klasse aus. Wir könnten das Programm jetzt starten, aber das würde nichts bringen, weil wir nicht sehen und noch keine Hauptklasse benannt haben.

Der Quellcode für die Klasse ist im Wiki Dokumentiert. Ich kopiere ihn für euch aber auch hier rein. Denkt daran, dass ihr die IDs der Bricks auf eure anpasst. Alle Bricks bzw. Bricklets, die wir nicht benötigen, was so ziemlich alle sind außer das Joystickbricklet und das Masterbrick, könnt ihr aus dem Code entfernen bzw. auskommentieren. public class singletoncommunication { private static singletoncommunication instance = null; private final String HOST = "localhost"; private final int PORT = 4223; // initialize Brick/let IDs // private final String IO16UID = "7gy"; // private final String SERVOBRICKUID = "9JhTMLq1hVQ"; private final String JOYSTICKBRICKUID = "7rC"; private final String MASTERBRICKUID = "9ekEEAPft7q"; //create Connection private IPConnection ipcon; // Create Bricks/Bricklets private BrickletJoystick joystick = new BrickletJoystick(JOYSTICKBRICKUID); // private BrickServo servo = new BrickServo(SERVOBRICKUID); // private BrickletIO16 io16 = new BrickletIO16(IO16UID); private BrickMaster master = new BrickMaster(MASTERBRICKUID); private singletoncommunication() { inithardwarecomponents(); public synchronized static singletoncommunication getinstance() { if (instance == null) { instance = new singletoncommunication(); return instance; private void inithardwarecomponents() { // Create new Connection with host and port try { ipcon = new IPConnection(HOST, PORT); catch (IOException ex) { Logger.getLogger(singletonCommunication.class.getName()).log(Level.SEVERE, null, ex); System.out.println("Hardware initialization IO error in " + singletoncommunication.class.getname()); // add devices to the connection try { ipcon.adddevice(master); // ipcon.adddevice(servo); // ipcon.adddevice(io16); ipcon.adddevice(joystick);

catch (Exception ex) { Logger.getLogger(singletonCommunication.class.getName()).log(Level.SEVERE, null, ex); System.out.println("Hardware initialization timeout error in " + singletoncommunication.class.getname()); public String gethost() { return HOST; public String getjoystickbrickuid() { return JOYSTICKBRICKUID; public String getmasterbrickuid() { return MASTERBRICKUID; public int getport() { return PORT; public IPConnection getipcon() { return ipcon; public BrickletJoystick getjoystick() { return joystick; public BrickMaster getmaster() { return master; Einfach alles kopieren und einfügen. Nicht wundern es gibt einige Fehlermeldungen, aber das ist erst mal ok! Mit der rechten Maustaste könnt ihr euren Code formatieren lassen. Das ist ganz hilfreich für die Übersicht.

So sollte das Ganze aussehen. Mit der rechten Maustaste ins Feld klicken und dann einfach Fix Imports anklicken. Dann erscheint folgendes Fenster:

Das könnt ihr einfach bestätigen. Danach die Klasse speichern und die Fehlermeldungen sind weg. Was ist hier passiert? Die Netbeans IDE hat an den Anfang der Klasse Imports geschrieben: Dadurch werden die Fehler behoben. Schritt 4) Als nächstes werden wir die Oberfläche gestalten. Dies wird für das Tutorial hier nur eine sehr einfache sein, um die Funktionsweise zu erklären.

Dazu klicken wir wieder auf Source und wählen New JFrame Form Nennen die Klasse UI und packen sie in das Package UI. Mit Finish wird alles erzeugt

Ihr habt gemerkt, das Netbeans in einen anderen Modus gesprungen ist. Da wir nun Oberflächen bearbeiten möchten, werden entsprechende Bilder rechts am Rand angezeigt, aber dazu kommen wir gleich. Als erstes ändern wir den Namen unserer Applikation. Dazu klicken wir Links auf JFrame und könnten dann rechts unter den Properties den Title ändern. Der Name ist dabei völlig egal.

Jetzt können wir endlich unseren Button in die GUI ziehen. Dazu können wir einfach per Drag and Drop die einzelnen Elemente auf die Oberfläche ziehen. Zusätzlich ziehen wir noch 4 Labels auf die Oberfläche in die wir unsere Werte gleich schreiben wollen. Mit der rechten Maustaste auf den Steuerelementen, kann man den angezeigten Text verändern. Den Button nennen wir Start und die jeweils linken Labels (siehe folgendes Bild) nennen wir X: bzw. Y: So sollte unsere Oberfläche jetzt aussehen. Um dem Button nun eine Funktion hinzuzufügen, klicken wir diesen einmal an und wählen rechts Events aus. Bei ActionPerformed (also Button geklickt) schreiben wir Start rein und drücken Enter.

Automatisch wird im Quelltext eine neue Funktion hinzugefügt für unseren Button. Dafür müssen wir ansonsten nichts machen. Nun wollen wir, wenn der Button geklickt wird, dem Joystickbricklet einen Listener hinzufügen. Das sieht folgendermaßen aus: joystick.setpositioncallbackperiod(50); joystick.calibrate(); joystick.setdebounceperiod(200); joystick.addlistener(new BrickletJoystick.PositionListener() { @Override

public void position(short x, short y) { jlabel2.settext(string.valueof(x)); jlabel4.settext(string.valueof(y)); ); Da wir die Variable joystick noch nicht definiert haben, bekommen wir eine Fehlermeldung. Deshalb schreiben wir nun folgendes: BrickletJoystick joystick = singletoncommunication.getinstance().getjoystick(); Damit sollten nun keine Fehler mehr angezeigt werden. Für die Leute die das jetzt selbst tippen ein kleiner Tipp: Wenn ihr Brick eingetippt habt drückt mal strg+leertaste dann werden euch automatisch alle Möglichkeiten angezeigt und ihr könnt es einfach mit enter bestätigen. Dadurch spart man sich mit der Zeit viel Schreibarbeit. Nun ist unser Programm eigentlich schon fertig. Wir klicken jetzt auf den grünen Pfeil (oder drücken F6) um das Programm zu starten. WICHTIG: die Bricks/lets müssen verbunden sein mit dem Rechner!!

Da wir noch keine Hauptklasse definiert haben, werden wir nun aufgefordert das zu tun. Einfach ok klicken. Unser Programm sollte nun so aussehen. Sobald wir auf Start klicken:

Wenn man jetzt den Joystick bewegt werden die Werte in die entsprechenden Labels geschrieben So ich hoffe ihr habt ein wenig was gelernt! Wenn Fragen auftreten einfach stellen!