Mit Python programmierbarer Tux-Roboter

Aus LinuxUser 07/2007

Mit Python programmierbarer Tux-Roboter

Tux lebt!

Schluss mit Krawatten, After Shave oder ähnlich unnützem Zeug – zum nächsten Fest lassen Sie sich von Ihren Liebsten etwas ganz Spezielles schenken: einen programmierbaren Pinguin.

Wer schon immer einen sprechenden und sich bewegenden Pinguin auf seinem Schreibtisch haben wollte, wird jetzt fündig: Die belgische Firma Kysoh SA [1] hat Tux zum Leben erweckt. Der niedliche Pinguin kommuniziert über Funk mit einem beliebigen Linux-Rechner und lässt sich mit Python-Skripten steuern. Dank Infrarot-Sensor übernimmt Tux Droid, wie das Kerlchen heißt, auch die Funktion einer universalen Fernbedienung (siehe Tabelle “Technische Daten”).

Technische Daten

Name Tux Droid
Hersteller Kysoh S.A. (http://www.kysoh.com)
Bewegliche Teile Augen, Flügel, Schnabel, Drehung um die eigene Achse
Sensoren Infrarot, Helligkeitssensor
Anschlüsse Line-In, Kopfhörer, Seriell
Zubehör Infrarot-Fernbedienung, WLAN-Dongle im Fisch-Outfit
Maße (ca) 20 x 13 x 21 cm
Gewicht (ca) 600 g
Preis 79 Euro

Den Tux Droid können Sie zum Preis von 79 Euro online im Webshop des Herstellers bestellen oder bei unserer Leseraktion gewinnen: Wir verlosen drei der robotischen Pinguine (siehe Kasten “Tux-Droid-Leseraktion”). Als Leser des LinuxUser sparen Sie beim Kauf von Tux Droid zudem 10 Euro – Details dazu finden Sie ebenfalls im erwähnten Kasten.

Tux-Droid-Leseraktion

Die LinuxUser-Redaktion sucht den schönsten und originellsten selbstgemachten Pinguin: Zeichnen, malen, basteln, modellieren oder backen Sie Tux, wie Ihn die Welt noch nicht gesehen hat, und senden Sie ihren Pinguin per Post an die LinuxUser-Redaktion (Adresse am Ende des Hefts) oder ein Foto davon per E-Mail an mailto:redaktion@linux-user.de.

Auf welche Art Sie Tux kreativ darstellen, spielt keine Rolle, Hauptsache selbst gemacht. Die besten Pinguine veröffentlicht LinuxUser in Ausgabe 09/2007, die drei Erstplatzierten bekommen je einen Tux Droid geschenkt. Einsendeschluss für die Verlosung ist der 18. Juli 2007.

Wer sich nicht auf Kreativität und Glück verlassen will, kann Tux Droid im Online-Shop von Kysoh kaufen und mit LinuxUser dabei die Versandkosten im Wert von 10 Euro sparen. Wählen Sie dazu auf dem Bestellformular unter http://www.kysoh.com/tux_order.html bei Shipping den Eintrag No shipping aus und geben Sie ganz unten im Kommentarfeld den Gutscheincode TIA4LUG2007 an.

Schwerer Start

Gelingt es Ihnen, Tux und seinen Fisch (Abbildung 1) – bei letzterem handelt es sich um einen USB-WLAN-Adapter – aus der massiven Verdrahtung der Originalpackung zu befreien, sollten Sie zunächst seinen Akku mit Hilfe des beiliegenden Adapters aufladen. Sonst laufen Sie Gefahr, dass sich Tux sehr seltsam benimmt und epileptisch mit den Augen zuckt, was auf eine Krankheit schließen ließe. In Wirklichkeit mangelt es dem Pinguinroboter dann jedoch nur an Energie.

Abbildung 1: Tux kommt in Begleitung eines handgroßen Fischs, der über ein USB-Kabel als Funkadapter dient.

Abbildung 1: Tux kommt in Begleitung eines handgroßen Fischs, der über ein USB-Kabel als Funkadapter dient.

Schließen Sie den Fisch-Dongle an den Rechner an, legen die Batterie in die Fernbedienung ein und drücken einige Knöpfe, passiert – rein gar nichts. Auch ein Blick in das dünne “Instruction Manual” hilft nicht weiter: Es erklärt zwar, wie Sie Tux Droid mit dem Rechner verbinden (wozu man nun wirklich kein Handbuch bräuchte), verweigert aber jegliche Information zur Software. Für detaillierte Informationen und die Software verweist das Manual lapidar auf die Kysoh-Homepage [1]. Schwer verständlich, warum die belgische Firma die Linux-only-Hardware ohne Treiber-CD verschickt. Die dritte und letzte Enttäuschung wartet, sobald Sie sich vom Tux-Droid-Community-Portal [2] das rund 2 MByte große Tuxsetup-Paket herunterladen und installieren: Mangels aktueller Firmware können Sie ihren Pinguinroboter immer noch nicht benutzen. Sie müssen zunächst auf dem WLAN-Adapter ein Firmware-Update vornehmen.

Firmware-Update

Laden Sie sich aus dem Kysoh-Downloadbereich [3] den Tuxsetup-Tarball herunter. Bei Redaktionsschluss war Version 1.0-rc2 vom 20. April 2007 aktuell. Entpacken Sie den Tarball und führen Sie als Root ./tuxsetup aus. Der Befehl installiert die Tux-Droid-Tools nach /opt/tuxdroid. Möchten Sie auch die Sprachfunktion von Tux nutzen, benötigen Sie zusätzliche Acapela-Sprachdateien. Die Installation beschreibt der Kasten “Sprachdateien nachrüsten”.

Sprachdateien nachrüsten

Für die Text-to-Speach-Funktion nutzen die Tux-Droid-Entwickler Sprachdateien der französischen Firma Acapela [5]. Sie finden diese im Kysoh-Downloadbereich [3] ganz unten. Zurzeit liegt je eine Datei für Englisch und Französisch zum Download bereit. Weitere 18 Sprachen, darunter auch Deutsch, sollen laut Kysoh demnächst Tagen folgen. Laden Sie sich die gewünschten Sprachen in ein beliebiges Verzeichnis und entpacken Sie den Tarball. Im Verzeichnis befindet sich eine Datei WIZARD. Für die Installation rufen Sie einfach mit Administratorrechten diese Datei auf, zum Beispiel über sh WIZARD oder mit ./WIZARD. Das Tool kopiert die Sprachdateien nach /opt/Acapela. Ob die Sprachunterstützung funktioniert, zeigt Ihnen die Statusanzeige der GUI tuxgi an (Abbildung 2).

Für das Firmware-Update benötigen sie zusätzlich das Tool dfu-programmer[4], um den Atmel-Chip des Dongles aufzufrischen. LinuxUser benutzte eine selbst kompilierte Version 0.4.1. Haben Sie Dfu-Programmer installiert und das Setup vorgenommen, geben Sie als root folgenden Befehl ein:

tuxup --all --pretend /opt/tuxdroid/firmware

Er überprüft, ob die Tux-Droid-Tools und dfu-programmer korrekt installiert sind und zeigt als Ausgabe die aktuellen Firmware-Versionen an. Für die nächsten Schritte brauchen Sie eventuell einen Assistenten: Trennen Sie den Fisch-Dongle vom Rechner und schalten Sie Tux aus. Halten Sie mit einer Büroklammer den Resetknopf am Bauch des Dongles (kleines Loch) gedrückt und schließen Sie gleichzeitig den Dongle an den Rechner an. Die Augen des Fischs dürfen nicht leuchten, sonst müssen Sie es noch einmal probieren.

Wechseln Sie ins Verzeichnis /opt/tuxdoid/firmware und starten Sie das Firmware-Update über den Befehl tuxup fuxusb.hex. Verläuft alles erfolgreich, sehen Sie die im Kasten “Ausgabe von tuxup” abgedruckten Zeilen. Sie können nun Tux einschalten und den Dongle erneut am Rechner anschließen. Hat alles geklappt, leuchten die Augen des Pinguins und des Fisches permanent blau.

Ausgabe von

tuxup

kim:/opt/tuxdroid/firmware # tuxup fuxusb.hex
Programming fuxusb.hex in the USB CPU
Bootloader Version: 0x03 (3)
Validating…
6789 bytes used (41.44%)
[OK]
Time elapsed:  7 seconds.

Endlich Fun

Für einen ersten Funktionstest drücken Sie den Knopf auf Tux’ Haupt. Blinken die Augen einmal, steht die Verbindung zum Tux-Daemon und Sie können über den Befehl tuxgi die grafische Oberfläche zum Tux Droid starten (Abbildung 2). Die GUI zeigt Ihnen oben links den Status des Tux-Daemons und des Tux-TTS-Daemons an. Auf unseren Testrechnern, starteten die zugehörigen Dienste beim Anschließen des Dongles automatisch, manuell rufen Sie mit Adminrechten tuxdaemon und tuxttsdaemon auf.

Abbildung 2: Die grafische Oberfläche bietet einen einfachen Zugriff auf die Hauptfeatures von Tux.

Abbildung 2: Die grafische Oberfläche bietet einen einfachen Zugriff auf die Hauptfeatures von Tux.

Über die einzelnen Buttons können Sie nun sämtliche Funktionen von Tux Droid ausprobieren. Drehungen funktionieren leider nur, wenn der Pinguin nicht an der Steckdose hängt. Ohne permanente Stromzufuhr machte der Akku von Tux allerdings nach einem halben Arbeitstag schlapp.

Über die oberste der vier Schaltflächen im Tools-Bereich von Tuxgi starten Sie eine Shell. Darin geben Sie Tux direkt Anweisungen. Möchten Sie nur einen einzigen Befehl an den Pinguin senden, klicken Sie auf Send Command. Über die Schaltfläche Get Light Level lesen Sie den Helligkeitssensor in Tux’ Kopf aus. Ein Klick auf Ping sendet 200 Ping-Kommandos vom Dongle zu Tux Droid. So testen Sie die Qualität der drahtlosen Verbindung.

Auf dem Reiter TTS probieren Sie die Text-To-Speech-Funktion aus. Wählen Sie dazu aus der Liste Select einen Sprecher, tippen Sie einen Satz ins Textfeld ein und klicken Sie auf Play. Mangels deutscher Stimme plapperte Tux im Test nur mit französischem oder amerikanischen Akzent. Erhöhen Sie allerdings die Pitch-Rate von 100 auf 250 und tippen zum Beispiel ui ui ui ! ui ui ui ? ins Textfeld ein, tönt das schon sehr nach Pinguin – egal welchen Sprecher Sie wählen. Bei Erscheinen dieser Ausgabe stehen laut Kysoh auch deutsche Sprachdateien zum Download bereit.

Im internen Speicher bringt Tux neun Sounddateien mit. Um diese anzuhören, klicken Sie auf dem Reiter Audio auf die Schaltflächen 1 bis 9. Die Geräusche 1 und 2 gibt Tux Droid wieder, sobald Sie den Netzadapter einstecken beziehungsweise entfernen. Möchten Sie diese durch eigene Sounds ersetzen, laden Sie entweder eine 8-Bit-Monodatei mit einer Samplingrate von 8 kHz über den Dateiauswahldialog hoch oder nutzen die Aufnahmefunktion, um eine solche Datei zu erstellen. Einmal auf Record gedrückt, nimmt Tux Droid rund zehn Sekunden auf und speichert die Geräusche als rec.wav auf Ihrem PC. Von hier laden Sie die Datei per Store auf den Droiden hoch.

Ein wenig Python

Die GUI nutzt nur einen kleinen Teil von Tux’ Funktionen. Möchten Sie dem Pinguinroboter mehr beibringen, helfen Ihnen die Python-Dokumentation in der Datei /opt/tuxdroid/doc/python-api/python_api-0.2.0.html und das Beispielskript basescript.py im Verzeichnis /opt/tuxdroid/doc/examples. Das Beispielskript lädt alle nötigen Python-Module, Sie müssen nur noch Ihre Befehle an die richtige Stelle schreiben. Um zum Beispiel eine in Tux gespeicherte Sound-Datei abzuspielen, wählen Sie den Befehl:

tux.cmd.sound_play(1,0)

Die erste Zahl in der Klammer bezeichnet dabei die Sounddatei, die zweite Zahl die Lautstärke (0 = maximale Lautstärke). Im Kasten “Mail-Benachrichtigung” sehen Sie ein vollständiges Skript. Tux Droid plappert damit mit einer auf 150 erhöhten Pitch-Rate “yep yep yep! Mail for you.” und blinkt danach zehn Mal mit den Augen.

Damit Tux dieses Skript bei jeder neuen Mail durchläuft, wählen Sie zum Beispiel in KMail Einstellungen | Benachrichtigungen festlegen und wählen als Aktion Neue Nachrichten sind angekommen. Nach einem Klick auf Erweitert markieren Sie die Option Programm ausführen und tragen dann den vollen Pfad zum Skript ein. Umfangreichere Beispielskripte (unter anderem auch für die Fernbedienung) finden Sie im Tux-Droid-Forum [6] und auf Ihrem Rechner im Verzeichnis /opt/tuxdroid/apps.

Mail-Benachrichtigung

#!/usr/bin/python
# -*- coding: latin-1 -*-
import sys
sys.path.append('/opt/tuxdroid/api/python')
from tux import *
# ——————————————
# Object "tux" is created by tux.py
# Hier die gewünschten Befehle eintragen
# ——————————————
tux.tts.connect('localhost',5500)
tux.tts.select_voice(SPK_US_FEMALE,150)
tux.tts.speak('yep yep yep ! Mail for you.')
tux.cmd.leds_blink(10,15)
# ——————————————
# Ende des eigenen Skripts
# ——————————————
tux.destroy()

Fazit

Tux Droid macht sehr viel Spaß, und mit wenigen Zeilen Code lässt sich der Pinguin für die verschiedensten Aufgaben einspannen. Kritik muss Kysoh für das Firmware-Upgrade und die fehlende Software und mangelhafte Dokumentation einstecken. Die aktuelle Produktion soll laut Kysoh kein Upgrade mehr benötigen. Auf den neuesten Stand gebracht, sorgt Tux Droid jedenfalls in jeder Umgebung für den nötigen Fun-Faktor.

Infos

[1] Kysoh: http://www.kysoh.com

[2] Community-Portal: http://www.tuxisalive.com

[3] Tuxsetup und TTS-Pakete: http://www.tuxisalive.com/downloads

[4] Dfu-Programmer: http://dfu-programmer.sourceforge.net

[5] Acapela-TTS: http://www.elan.fr

[6] Beispielskripte: http://www.tuxisalive.com/tux-droid-forum/scripts

LinuxUser 07/2007 KAUFEN
EINZELNE AUSGABE
ABONNEMENTS
TABLET & SMARTPHONE APPS
E-Mail Benachrichtigung
Benachrichtige mich zu:

Hinweis: Dieser Artikel ist älter als ein Jahr, enthaltene Informationen sind möglicherweise veraltet.

0 Kommentare
Älteste
Neuste Beste Bewertung
Inline Feedbacks
Alle Kommentare anzeigen
Nach oben