Benutzer-Werkzeuge

Webseiten-Werkzeuge


roboter_mit_android_steuern

Unterschiede

Hier werden die Unterschiede zwischen zwei Versionen angezeigt.

Link zu dieser Vergleichsansicht

Beide Seiten der vorigen RevisionVorhergehende Überarbeitung
Nächste Überarbeitung
Vorhergehende Überarbeitung
roboter_mit_android_steuern [2024/01/26 13:07] torsten.roehlroboter_mit_android_steuern [2024/01/26 13:22] (aktuell) – [Inbetriebnahme des Clients (Mr. Robot)] torsten.roehl
Zeile 1: Zeile 1:
 ====== Roboter mit Android steuern  ====== ====== Roboter mit Android steuern  ======
  
 +----
 +{{:inf:msr:google-play.png?100 |}}
  
  
Zeile 7: Zeile 9:
  
 Dennoch, wer lediglich die Android App //"Mr.Robot"// ausprobieren möchte oder, ohne einen Roboterarm zu besitzen, einen einfachen Servomotor mit Android ansteuern will, kann hier lernen wie man es macht. Dennoch, wer lediglich die Android App //"Mr.Robot"// ausprobieren möchte oder, ohne einen Roboterarm zu besitzen, einen einfachen Servomotor mit Android ansteuern will, kann hier lernen wie man es macht.
 +
 +==== Worum geht es ? ====
 +{{ :inf:msr:android_mr_robot_1.png? |}}
 +
 +**Prinzip**
 +
 +  * Ein mit Servomotoren gesteuerter Roboterarm wird an einen Adafruit Servo Controller angeschlossen.
 +          * Über einen IO-Warrior wird der Servo Controller angesteuert.Der IO-Warrior ist mit einem Linux Computer verbunden. Auf diesem läuft ein Java-Programm, mit dem das Android Gerät eine Verbindung aufnimmt.
 +  * Anschließend kann mit einem Android Gerät (via WLAN) der Roboterarm gesteuert werden.
 +
 +====  Themenbereiche====
 +Einige der Themenbereiche sind bereits kleine Projekte für sich, z.B. wurde der Roboterarm fotografiert und in der 3D-Modellierungssoftware Blender modelliert. Anschließend wurden die Daten exportiert und mit einem kleinen "Java-Programm" in ein für Android lesbares Format gewandelt. Unter Android wurde dann OpenGL ES2.0 für die 3D-Darstellung verwendet.
 +
 +Wem das zu kompliziert ist, kann aber die 3D-Programmierung komplett auslassen.  Das Ansteuern des Servo-Controllers mit dem IO-Warrior24 unter Java wird im Band III (IIC-Projekte) ausführlich gezeigt.
 +
 +Anschließend noch eine Liste mit Themenbereichen die in diesem Projekt behandelt werden:
 +  * Android Programmierung
 +          * OpenGL Programmierung unter Android
 +  * 3D Modellierung mit Blender
 +      * Die von Blender erzeugten 3D-Daten werden mit einem kleinen Java Programm in ein für Android lesbares Format exportiert.
 +  * Netzwerkprogrammierung
 +          * Client ↔ Server, Socket Programmierung
 +  * IO-Warrior
 +          * Verwenden der IIC-Schnittstelle zum Ansteuern eines 16 Kanal Adafruit-Servo-Controller
 +
 +==== Benötigte Hardware ====
 +  * Standard Servomotor (1 bis 6 Stück )
 +          * Netzgerät zur Stromversorgung der Servomotoren (5-6 Volt, 1-2 Ampere)
 +
 +  * PCA9685 Adafruit Servo Controller
 +  * IO-Warrior24 (einfach geht es mit dem Gandalf-Board  )
 +  * Linux PC um den IO-Warrior24 mit der Serversoftware zu betreiben (es geht auch ein Raspberry-Pi).
 +  * Android Gerät (ab 4.2) um die Motoren zu steuern.
 +
 +FIXME Aufbau der Hardware
 +
 +
 +==== Inbetriebnahme des Servers====
 +
 +
 +  * getestet wurde ein 32Bit-System
 +Der Server ''RobotArmServer.jar'' benötigt die Native-Bibliothek ''libiowkit.so'', damit der IO-Warrior angesteuert werden kann.
 +
 +Deshalb wird ein Aufruf mit :
 +
 +<code>java -jar RobotArmServer.jar</code>
 +
 +nicht funktionieren, wenn nicht zuvor der Pfad zur Datei: ''libiowkit.so'' angegeben wird.
 +
 +Unter Linux kann man z.B. die Umgebungsvariable (Envirenmentvariable) ''LD_LIBRARY_PATH'' auf das Verzeichnis setzen, dass die ''libiowkit.so'' enthält.
 +
 +Das macht man mit ''"export LD_LIBRARY_PATH=/VERZEICHNIS/"'' (s. Abb. 1).
 +
 +|{{ :inf:msr:shell1.png? |}}|
 +| Abb. 1 |
 +
 +In diesem Beispiel liegt sowohl das Programm "RobotArmServer.jar", als auch die Native-Bibliothek "libiokit.so" im  Homeverzeichnis: /home/torsten/
 +
 +
 +Der Server muss zuerst gestartet werden, anschließend kann eine Verbindung zum Client (AndroidApp) hergestellt werden. Dabei müssen sich der Server und der Client im gleichen Netzwerk befinden.
 +
 +
 +==== Inbetriebnahme des Clients (Mr. Robot) ====
 +
 +
 +
 +
 +{{ :inf:msr:mr_robot2.png? |}}
 +
 +Der Client ist unter Android (ab 4.2) schnell installiert. Auch ohne Hardware (bzw. Server) lässt sich die //App// bedienen.
 +
 +Allerdings macht es erst mit angeschlossener Hardware richtig Spaß! 
 +
 +Die zu installierende Anwendung lautet: ''de.androidtools.mr.robot.apk''
 +
 +(einfacher geht es im Playstore //"Mr.Robot"//)
 +
 +=== Konfiguration===
 +|{{ :inf:msr:server23.png?350 |}}|
 +|Um "Mr. Robot" mit einen angeschlossenen Roboterarm zu verbinden muss der Menüpunkt "Settings" aufgerufen werden.|
 +
 +
 +
 +
 +{{ :inf:msr:servername.png?350 |}}
 +|Die Adresse des Servers und ein freier Port (z.B. 4444 oder 5555 ) muss eingegeben werden. Die Server-IP gibt die Linux-Rechner, an denen der Roboterarm angeschlossen ist, auf der Kommandozeile aus.|
 +
 +
 +
 +=== Quellcode ===
 +FIXME Quellcode zur Verfügung stellen
 +
roboter_mit_android_steuern.1706274458.txt.gz · Zuletzt geändert: 2024/01/26 13:07 von torsten.roehl