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:09] torsten.roehlroboter_mit_android_steuern [2024/01/26 13:22] (aktuell) – [Inbetriebnahme des Clients (Mr. Robot)] torsten.roehl
Zeile 11: Zeile 11:
  
 ==== Worum geht es ? ==== ==== 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==== ====  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 ==== ==== Benötigte Hardware ====
-==== Inbetriebname des Servers==== +  * Standard Servomotor (1 bis 6 Stück ) 
-==== Inbetriebname des Clients (Mr. Robot) ====+          * 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.1706274597.txt.gz · Zuletzt geändert: 2024/01/26 13:09 von torsten.roehl