Eigenbau einer Roboterspinne
Microcontroller: Javelin Stamp (mit Ubicom SX48AC, Parallax) Alternativ: PIC 18F2550 Sensorik: 1x Ultraschallsensor (Devantech SRF04, z.B. hier) 2x Fühler mit Mikroschaltern Aktorik: 3x Standard Modellbau Servos für den Bewegungsapparat 1x Micro Servo zum Schwenken des Ultraschallsensors Video: Die Spinne in Aktion |
» Herzstück der Spinne ist der in einem Java-Subset programmierte Microcontroller Javelin Stamp, welcher drei Teilaufgaben auszuführen hat: 1. Überprüfung/Ansteuerung des Ultraschallsensors und der Fühler 2. Berechnung der auszuführenden Aktion (Vorwärts, Flucht, Totstellen, Ausweichen) basierend auf den Sensordaten 3. Ansteuerung der drei Servos für den Bewegungsapparat entsprechend der benötigten Aktion Wie auf dem Video der Spinne zu sehen ist, erfolgen die Bewegungen sehr sanft und realitätsgetreu. Dies ist darin begründet, dass jedes einzelne Servo nicht nur in die Endpositionen, sondern auch in (fast) jede beliebige Position dazwischen gebracht werden kann. Die eigentliche Fortbewegung bzw. Berechnung der Position der Servos erfolgt auf Basis von Sinus-Funktionen, die für jeden einzelnen Servo je nach gewünschter Bewegungsrichtung phasenverschoben werden. Die Spinne weist folgende Verhaltensweisen auf: 1. Ist kein Hindernis festzustellen -> vorwärts laufen 2. Erkennt der Ultraschallsensor ein Hindernis -> langsam nähern bis die Entfernung weiter abgenommen hat, dann den Sensor nach links und rechts bewegen um zu prüfen, in welche Richtung ausgewichen werden kann. 3. Ausweichen 4. Nach dem Ausweichen zurück zu 1 5. Sollte bei Schritt 1 bis 3 ein Fühler berührt werden, einige Schritte zurückgehen und in die Richtung ausweichen, in der kein Fühler berührt wurde. 6. Sollte sich ein Hindernis schneller nähern als die Spinne selbst läuft, tritt sie die Flucht nach rückwärts an (siehe Video) 7. Sollte sich ein Hindernis soweit genähert haben, dass es ganz dicht ist (<10cm), so stellt sich die Spinne tot. |
» Auf diesem Bild sind die integrierten Akkus, der Mikrocontroller, die serielle Programmierschnittstelle sowie die Sensorik zu erkennen. |
» Die Mechanik wurde aus Aluminiumrohren und -winkeln selbst erstellt. Abbildung 3 zeigt den Bewegungsapparat noch einmal im Detail. Im Bild links zu erkennen sind die beiden Servos für die Vor/Zurückbewegung der Spinnenbeine (je ein Servo für die drei linken und die drei rechten Beine), sowie der dritte Servo für die gegenläufige Auf/Abbewegung der beiden mittleren Beine. Diese drehen sich dazu um ein Längslager im Aluminiumgestell. |
Ein Video der Spinne in Aktion gibt es hier!
|
» Leider ist kürzlich (naja, nach 4 Jahren Spinnenleben) die Javelin Stamp kaputt gegangen. Sie lässt sich nicht einmal mehr neu programmieren. Da diese mit 90€ jedoch recht teuer ist, musste ein kostengünstiger Ersatz her. Die obige Abbildung zeigt das Ergebnis: Eine Adapterplatine, mit der ein PIC 18F2550 mit integriertem USB Controller in den bestehenden Sockel der Spinne gesteckt werdn kann. Javelinstamp raus - Adapter mit PIC rein. Natürlich musste noch der Quellcode von Java nach C migriert werden. Aber auch das ging recht gut. |
» Da nun eine performante USB Komunikation möglich ist, habe ich kurzerhand eine passende GUI (in C#) dazu programmiert, mit der man die Spinne anhalten und starten kann und die einzelnen Sensorwerte sowie die "Gedanken" der Spinne angezeigt bekommt. |
Dieses Projekt ist verlinkt auf:
|