Robots

#I-Sobot

I-Sobot

Ein sehr interessanter kleiner Roboter. Er hat 17 Servos und 1 eingebauten Gyro (Gleichgewichts Sensor). Ich hab ihn damals gekauft, ob man‘s glauben will oder nicht, als Stativ.

Aufgrund der Servos dachte ich mir, er sei hervorragend für meine Wärmebildkamera geeignet. Ich wollte ihn auch vom PC aus steuerbar machen und so die Kamera besser fern kontrollieren können.
Zu meiner Enttäuschung, kann man die Servos aber nicht einzeln kontrollieren. Es sind nur einprogrammiert Abläufe möglich, welche (wie zu erwarten) nicht meinen Vorstellungen entsprechen.


Funktion: treten

Über seine IR-Fernbedienung sind zwar ein ganzer Haufen an Bewegungsabläufen integriert. Aber sein Manko ist allerdings die Haltbarkeit der Batterien. Verwendet werden 3x AAA 1,5V Batterien.
Ich hab mir gedacht, ein paar LIPO Accu’s würden das bessern. Solltest du einen I-Sobot haben und etwas Ähnliches vorhaben... lass es.
Die Servos wurden stärker und Ausdauer war super, aber ich hab das Batteriepaket nicht eingebaut, weil mir dadurch die Sprachplatine kaputt ging. Während die normalen Batterien auf insgesamt ca. 4,5V kamen, war der erste Versuch bei 5V scheinbar schon zu viel. Die Steuerplatine und die Servos machen das alles mit, die Sprachplatine aber leider nicht. Vorher hat er bei den meisten Posen gesprochen und war in einem gewissen Modus per Sprache steuerbar (ein paar Sätze in Englisch) aber jetzt gibt er keinen Ton von sich und bleibt in jeder Bewegung stehen, in der er normalerweise gesprochen hätte.

Laufen usw. ist kein Problem, aber die meisten Sonderfunktionen fallen weg. Derzeit hab ich noch keine genauen Pläne mit ihm, aber da wird mir bestimmt schon was einfallen... irgendwann.


Zuletzt geändert am: Aug 08 2012 um 4:54 AM

#Projekt Mütze

#Einleitung

Dieser Roboter war ein Zufallsfund bei ebay. Er gehört in den Bereich Unterhaltungselektronik... brauch man also nicht, ist aber auch nicht schlecht ihn zu haben.
Ursprünglich sind die Dinger dazu gedacht, ein paar einprogrammierte Kunststückchen vorzuführen.

#Kaufzustand und erste Steuerung

Bild auf dem Koffer

in der mein Roboter geliefert wurde. Da ich es versäumt habe, ein paar Bilder vom Anfang zu behalten, gibt es einfach ein Foto vom Seitenbild des Koffers...

Leider musste ich nachdem auspacken feststellen, dass der linke Arm frei drehte (Defekter Servo Nr.1). Aber der Robo war sowieso gebraucht und eine Funktionsgarantie gab es auch nicht.

Eine der ersten Änderungen war es, den Kopfservo gegen den Schulterservo zu tauschen. Leider stellte sich nach dem verbinden mit einer geregelten Spannungsquelle heraus, dass auch der Servocontroller nicht so richtig Funktionieren wollte.
Er ließ nach dem Einschalten nur auf einer Seite in schätzungsweise sekündlichem Tankt die Servos einer Seite zucken.

Vor dem ersten Funktionstest

Der Roboter wurde allerdings ohne Software (welche sowieso nur chinesisch war) und ohne Datenkabel geliefert. Ich hatte daher sowieso vor, den Controller zu entfernen und einen anderen ein zu setzen.
Meine Wahl fiel auf den Lynxmotion SSC-32 Servo Controller. Der hat Platz für 32 Servos und ist über die serielle Schnittstelle ansteuerbar. Zur Ansteuerung werden sehr einfache Befehle gesendet.

Beispiel: #1P500#2P2500#3P1500<ENTER>

  • Servo 1 nach links
  • Servo 2 nach rechts
  • Servo 2 Mittelstellung

Erster Funktionstest

Außerdem verfügt der SSC-32 über eine Gruppenlaufzeitfunktion. Da kann eine Zeit vorgegeben werden, in der eine Sequenz abgeschlossen werden soll. Die Servo laufen dann unterschiedlich schnell, je nachdem welche Entfernung sie zurücklegen müssen. Das Teil ist seine 70€ Wert finde ich.

Nachdem nun ein defekter Servo gewechselt und der neue Controller eingebaut war, hab ich alle Servos an den Controller verdrahtet, um dem Kabelsalat auf dem Rücken zu entgehen. Außerdem wurde ein USB-RS232 Konverter mit dem Controller verbunden, um die Steuerung vom PC aus zu testen.


Das erste Steuerungsprogramm, wurde in Visual Basic realisiert

Visual Basic

Die Expressversion ist kostenlos bei Microsoft erhältlich (Express VB), hat aber ein paar Leistungseinbußen. Diese stören hier aber nicht.

Inzwischen rate ich eher zur Verwendung von VB.net in Verbindung mit der IDE-Software SharpDevelop (Open Source).

Im Programm wurden ein paar Schieberegler räumlich so angeordnet, dass ich wusste für welches Gelenk sie sind. Ihre Position hat sich dann direkt auf die Servos übertragen.

#Neue Akkus

Oberkörper verlängert

Nach dem erfolgreichen Steuern vom PC aus, habe ich die Hauptstränge der Servoanschlüsse mit einem PVC-Spiralschlauch umwickelt, um die Leitungen besser vor mechanischen Einflüssen zu schützen.

Leider zeigte sich während des Funktionstestes, dass ein zweiter Servo Defekt war. Dieser defekt war etwas heimtückischer, da der Servo sich normal ansteuern ließ. Aber nach leichter Belastung gab er nach, deswegen hab ich aus dem Arm einen Servo entfernt und in das Bein eingebaut.


#Verlängerter Overkörper

Zu diesem Zeitpunkt wusste ich auch schon, welche Batterien verwendet werden sollen und welche Abmaße sie haben werden. Ein Batteriepaket sollte nach innen, weshalb der gesamte Oberkörper verlängert werden musste. Dadurch hatte der geplante PDA als Steuerung auch mehr Platz.

So wurde es ein größerer Roboter, mit Rückrad ;)
Außerdem ist ein Versuch für den Kopf zu sehen. Dort wurden 2 Miniservos benutzt, um eine horizontale und vertikale Bewegung zuzulassen. Da die kleinen Servos aber nicht genügend Stabilität hatten, wurden sie kurze Zeit später wieder entfernt.

Die LIPO Batteriepakete sollten eine Spannung von 7,4V erreichen, da die Servos vorher mit 7,2 betrieben wurden. Die Batterien mussten umgebaut werden, weil 3-zellige vom Preis-Leistung Verhältnis günstiger wahren.

  • Somit wurden aus: 2 Blöcken 11,1V (3 Zellen in Reihe) 2200 mAh
  • dann schließlich: 1 Block 7,4V (2 Zellen in Reihe) 6600 mAh

Insgesamt hatte ich 2 von den 7,4V Blöcken hergestellt und somit eine Gesamtkapazität von 13200 mAh. Damit sollte der Robo, schon ein bisschen durchhalten können. 4 Zellen landeten im Oberkörper. Wegen Platzproblemen auf dem Rücken, mussten aber später 2 Zellen entfernt werden, wodurch die Endkapazität jetzt bei 11000 mAh liegt.

Anzahl der Zellen Höchste Gesamtspannung Niedrigste Gesamtspannung
2 Zellen = 7,4 V 8,4 V 6,0 V
3 Zellen = 11,1 V 12,6 V 9,0 V

#Lipo Accus

LIPO Batteriepakete

Die Li-Zellen haben im Normalfall eine Zellspannung von 3,7 V. Die höchst zulässige Ladespannung, beträgt 4,2 V pro Zelle. Steigt die Ladespannung über 4,2 V, besteht Brandgefahr.
Die minimale Zellspannung beträgt 3,0 Volt, unter dieser Spannung besteht die Tiefentladungsgefahr. Hat die Zelle weniger als 2,5 Volt, ist sie Tiefentladen und definitiv defekt.

Weiter unten, ist der erweiterte Oberkörper zu sehen. Dort sind die 4 LIPO Zellen in der Mitte eingebaut. An der Seite des Roboters, befinden sich jetzt ein paar Schalter:


Seitenplatte
  • 1 großer Schalter für die Servos: Hier wird die größte Stromlast erwartet, darum ist er entsprechend groß.
  • 1 kleiner mit LED (grün): Für den 5V Regler.
  • 1 kleiner mit LED (blau): Für den Servocontroller.
  • 1 kleiner zum umschalten des USB Wandlers: Als Eingang, um zu sehen, ob der PDA die richtigen Daten sendet. Oder als Ausgang, um den Servocontroller direkt an zu steuern.

#Kopf hinzugefügt

Mit Kopf (vorn)

Inzwischen wurde das Batteriepaket auf dem Rücken (provisorisch) befestigt und ein Batteriechecker hinzugefügt. Die LIPO Accus, müssen überwacht werden, da eine zu tiefe Entladung zu dauerhafte Schäden führt.
Man kann an der Spannungsanzeige auch gut erkennen, dass 7,4V nicht die normale Ausgangspannung ist. Frisch geladen, kommt die Robobatterie auf ca. 8,1V. Aber unter Belastung, bricht die Spannung entsprechend ein. Die 7,4 V Angabe, bezieht sich auf eine recht starke Strombelastung. Stärker, als ich sie bisher erreichen konnte (allerdings habe ich auch eine höhere Kapazität).

Dann wurden 2 Servos für den Kopf hinzugefügt, um eine horizontale und vertikale Bewegung zuzulassen. Als Kopfgehäuse wurde ein Tischmülleimerdeckel verwendet, welcher aufgrund der Größe, zur Bezeichnung Mütze führte. Im Kopf sind jetzt 2 Servos und ein Servogehäuse. Einer zum Drehen des Kopfes. Einer um von oben nach unten zu sehen, welcher sich an einer Seite befindet. Auf der gegenüberliegenden Seite ist nur ein Servogehäuse, um sie Achse besser zu halten.

#Augen hinzugefügt

Nachdem der Kopf in groben Zügen vorhanden war, habe ich mich den Augen zugewandt. Ich wusste schon mal, dass sie in verschiedenen Farben leuchten sollten. Auf der Suche nach einem geeigneten Augengehäuse, bin ich auf billige Deos gestoßen.

Meine Freundin hat mich komisch angeschaut und fragte: "was willst du den mit 2 Deosticks für Frauen?" Als ich antwortete: "Ich brauch sie als Augen für meinen Robo...", hat sie nur mit den Augen gerollt. Ich liebe solche Momente...;)

LED Augen

Ich habe nur die Deckel verwendet. Aufgrund der diffusen Beschaffenheit des Plastiks, kann sich dort das Licht gut ausbreiten und letztendlich den ganzen Deckel beleuchten.
Im nächsten Schritt, habe ich in regelmäßigen Abständen kleine Vertiefungen für die LEDs mit einem Lötkolben eingeschmolzen. Die RGB LEDs wurden dann kurz danach mit Sekundenkleber eingeklebt. RGB LEDs sind im Prinzip 3 LEDs in einem Gehäuse in den Grundfarben Rot, Grün und Blau. Ich habe die Ausführung mit gemeinsamer Anode verwendet, da sich die mit dem Verstärkertransistoren am besten vertragen haben.

Nachdem die LEDs eingesetzt waren, wurde alles miteinander verdrahtet. Die gemeinsame Anode ist Gelb, die anderen Leitungsfarben entsprechen dann, dem angesprochenen Farbkanal.

Nachdem einige Tests gemacht wurden, sollten nun die Augen auch an den Kopf kommen.
Neue Änderungen im folgenden Bild:

  • 5V Festspannungsregler im Kopf:
    Die Rote Platine in der Mitte.
  • 3 Regler für Kleinmotoren:
    Diese Regler sind dafür konzipiert worden, dass PWM Signal eines Servos für einen kleinen Motor nutzbar zu machen. Servos werden ja vom Controller mit Pulsbreiten von 500µs bis 2500µs angesteuert. Wenn dieses Signal direkt verstärkt werden würde, dann würden die angeschlossenen LEDs sich besonders fein von schwach zu etwas stärker trimmen lassen. Deshalb war dieser Regler nötig, der immerhin die Leistung aufteilt. Ein kleiner Motor, könnte mittels der Servo PWM, stehen bleiben, sich nach rechts oder links drehen, in unterschiedlichen Geschwindigkeiten. Da LEDs Strom nur in eine Richtung fließen lassen, ist zwischen 0 und 100% nur eine Seite nutzbar, bei der anderen bleibt alles aus.
  • 3 Transistoren (gegenüber der Regler):
    Pro Farbkanal ist ein Transistor vorgesehen, welcher gegen das Blech dahinter isoliert sind. Aber die Abwärme musste ja auch abgeführt werden.
  • PDA Ipaq:
    Inzwischen, hatte ich mich auch schon mit dem Programmieren, für diese Geräte auseinander gesetzt. Die angezeigte Software, hat die Farbe der Position des Stiftes auf dem Bildschirm, in einen Datensatz umgewandelt, welcher an den Servocontroller gesendet wurde.
    Näheres zum Thema: PDA Steuerung
PDA Controller

Als nächstes ein Blick durch sie Wärmebildkamera. Interessanterweise verbrauchen die Regler (Links) mehr wenn die LEDs aus sind. Beim Transistor ist es genau umgekehrt... wie zu erwarten.
Im Beispiel unten ist nur Blau aktiv.

In die Mitte der Augen, sind inzwischen auch Ultraschall Entfernungsmesser eingebaut. Die Steuerplatine ist hinter einem der Servos angebracht. Der Ultraschallsensor, wird auch über RS-232 ausgelesen, allerdings über eine andere Übertragungsgeschwindigkeit (Sensor Baudrate: 9600 Servocontroller: 115200). Er ist noch nicht im Betrieb, dafür muss ich mir erstmal noch was einfallen lassen.

Die Seitenansicht, lässt aufgrund der Proportionen zwischen Kopf und Oberkörper, sicherlich nachempfinden, weshalb ich den Namen Mütze für angebracht halte.

#Hände hinzugefügt

Links: Rohling | rechts: Greifer

Zugegeben, Hände ist etwas übertrieben ausgedrückt. Aber Greifer klingt mies, also bleibe ich dabei.

Es wurden ein paar Messzangen (oder auch Krokodilklemmen) genommen und einfach kurz hinter ihrem Gelenkpunkt abgetrennt. Nach ein paar kleineren Änderungen, konnte die Zange in einem Winkel von ca. 80-90° geöffnet werden, während es vorher ca. 40° waren.

Ich bin des Weiteren noch am überlegen, ob eine elektrische Nutzung der Zangen angebracht wäre.

Ein Miniservo, wurde mittig an dem Gelenk angebracht, um die Zange entsprechend öffnen zu können. Ein weiterer Miniservo, wurde mit an die Zange montiert, damit sie sich auch drehen kann.
An die obere Seite der Zange, ist noch eine rechteckige Kunsthofffläche angebaut worden, aus optischen Gründen.

Gesamtansicht

An den Händen habe ich zum ersten mal gemerkt, dass eine starre Zuleitung, sich als störend bemerkbar machen kann.
Wenn die Servos beispielsweise fast am Anschlag sind, dann wirkt die Zuleitung so stark mechanisch dagegen, dass der Servo selbst wieder Energie aufbringen muss, um dies zu kompensieren.
Wird also eine Position am Anschlag angefahren, dann summt der Servo weiter vor sich hin. Dieses Problem wurde Später behoben, indem der Spiralschlauch entfernt wurde.

#Neuer LIPO-Checker

Inzwischen ist der Accuchecker auf der Rückseite durch einen Ladegerät ersetzt worden. Dadurch kann der Robo jetzt einfach per Standardstecker und 12V Netzteil geladen werden.

Die Überwachung wurde durch einen anderen LIPO-Checker getauscht. Der ist kleiner, befindet sich seitlich (ist dadurch auch besser sichtbar), hat pro Zelle 2 LEDs und signalisiert die LIPO Ladungen:

Ladezustand Signale
Normale Ladung 15% - 99% LED grün
Ladung niedrig (kleiner 3,5V) LED Rot Blinkt
Ladung sehr niedrig (kleiner 3,3V) LED Rot Blinkt + lautes Piepen
Ladung sehr hoch (größer 4,2V) LED Rot Blinkt + lautes Piepen

Derzeit versuch ich mein PC-Programm so weit anzupassen, dass ich mal mit dem Programmieren von Bewegungsabläufen beginnen kann.

Gesamtansicht

Der Entfernungsmesser:
Der Ultraschall Entfernungsmesser ist soweit funktionstüchtig, die Schallköpfe sind in den Augen verbaut. Aber die Werte, werden normalerweise Seriell übertragen (mit Baud: 9600). Der Servocontroller kommuniziert über Baud: 115200. Damit lassen sie sich leider nicht parallel betreiben.
Aber ich hab einen Mikrokontroller, der auch über Baud: 9600 arbeitet. Wahrscheinlich werde ich ihn so programmieren, dass er bei Signal über einen Pin, die Werte aus dem Entfernungsmesser abliest und dann als PWM (Analog) auf 2 andere Pins verteilt. Aber dafür muss ich mich erstmal, mit der Programmiersoftware und Sprache des Mikrocontrollers (basiert auf C) auseinandersetzen. Daher wird sich diese Angelegenheit, erstmal nach hinten verlagern.

#Aktueller Zustand

Momentan steht der Robo in der Ecke und bekommt regelmäßig eine Vollladung der Accus. Solange andere Projekte für mich interessanter sind, wird sich das auch nicht schnell ändern können.

Peripherie von Mütze

Eingebaute Komponenten

  • 22 Servos: Davon sind 4 Miniservos für die Greifer.
  • Servocontroller SSC-32: Der Controller hat 32 Servoanschlüsse und kann direkt mit dem PC über die Serielle Schnittstelle (RS-232) verbunden werden.
  • Batterie LIPO: Accu mit 7,4 V und 11000 mAh.4 Zellen im Oberkörper und 6 Zellen auf dem Rücken. (2200mAh pro Zelle und immer 2 in Reihe wegen der Spannung)
  • 2x Festspannungsregler: Die 5V Festspannungsregler sind einerseits für PDA und Servocontroller, andererseits für die Augen.
  • RGB LED’s: Für die Augen.
  • PDA rx3715: 400 mhz | 56 MB Ram | USB | RS-232 | Bluetooth | Wlan. Das "Gehirn" des Robos.
  • Regler für Kleinmotoren: Wird gebraucht, um die Servo PWM zu einer LED PWM zu wandeln. (PWM = Pulsweitenmodulation)
  • Transistoren: Verstärken die LED PWM.

Zuletzt geändert am: Aug 08 2012 um 4:54 AM

© by joe-c, 2023 - 2024. All Rights Reserved. Built with Typemill.