Benutzer-Werkzeuge

Webseiten-Werkzeuge


roboter_mit_android_steuern

Roboter mit Android steuern


Mit Android (Wireless) Roboter steuern macht Spaß und ist ausgesprochen lehrreich. Tatsächlich ist dieses Projekt eher etwas für den „angehenden Profi“, denn es werden viele Gebiete gestreift, in denen man sich ein wenig auskennen muss.

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 ?

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 :

java -jar RobotArmServer.jar

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).

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)

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

Um „Mr. Robot“ mit einen angeschlossenen Roboterarm zu verbinden muss der Menüpunkt „Settings“ aufgerufen werden.

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.txt · Zuletzt geändert: 2024/01/26 13:22 von torsten.roehl