MURtle – Zeichenroboter

MURtle ist ein Kunstwort aus den beiden Wörtern MURCS und Turtle. Es ist ein Zeichenroboter, basierend auf dem MURCS Basis Chassis. Die Idee dazu kam mir aus der Dagu Doodle Bot Art competition.

Als Controller kommt ein Dagu Micro Magician zum Einsatz. Das Micro Magician board hat alles was man braucht onboard (IR Schnittstelle und Motor-Treiber) und läuft mit 3,3V. Man braucht deshalb nur 4 Akku Zellen zum Betrieb. Der Servo kann direkt aus der Batteriespannnung versorgt werden. Dazu kommt ein Micro Servo als Stifthalter zum Einsatz. Zudem werden noch zwei analoge Rad Encoder (Pololu IRS01A) verwendet.

[pe2-image src=“http://lh5.ggpht.com/-sUJftqZr_Lk/UeGzOMhjZVI/AAAAAAAAIL8/6i3lWS-9pJc/s144-c-o/IMG_6159_60_61_fused.tif.jpg“ href=“https://picasaweb.google.com/100614490999857774768/MURtle#5900194043293558098″ caption=““ type=“image“ alt=“IMG_6159_60_61_fused.tif.jpg“ ]

Teileliste:

  • MURCS Basis Chassis mit Encoder Platte

  • Dagu Micro Magician inklusive Abstandshalter und Muttern

  • Micro Servo (22x12x16 BxHxT) z.B. Jamara XT9, 2x16mm M3 Schrauben, 2x10mm M2 Schrauben, 2xM3 Muttern, 2xM2 Muttern

  • 2 x Pololu IRS01A analoger Infrarot Reflexkoppler 2x1mm M2,5 Schrauben, 2xM2,5 Muttern

  • Stützrad Pololu 1″ mit 2 x 20mm M3 Abstandshülsen und 2x 30mm M2,5mm Schrauben

  • Faser Stift, Büroklammer zum befestigen am Servohorn

  • Draht, 2x 3pin Buchsenleisten für IR Sensoren

  • optional Abdeckhaube aus 160mm Acryl Halbkugel

Rad Encoder:

Die Rad Encoder zum Laufen zu bringen war mit der schwierigste Akt. Da diese analog sind und auf zusätzliche Hardware wie Schmitt Trigger verzichtet wurde, war die Software dafür nicht ganz trivial. Zum Glück gab es so etwas auch schon beim Asuro mit einer gut dokumentierten Bibliothek.

Die Rad Encoder Scheiben haben 48 Segmente, das ergibt eine Auflösung von ca. 4.6mm pro Tick. Das ist mir noch etwas zu grob. Beim nächsten Lasern werde ich mal Encoder Scheiben mit 96 Segmenten ausprobieren. Eine andere Idee kam mir noch um die Auflösung zu erhöhen: Da das Encoder Signal analog ist und ungefähr einem Sinus entspricht, könnte man noch die Zwischenschritte zählen. Mal sehen ob ich das hin bekomme.

Stifthalter:

Der Stifthalter wird von unten montiert. Zur Befestigung des Stiftes wird eine Büroklammer verwendet. Zum Abgleich ist einiges an Einstellungen notwendig. Der Stift sollte nicht zu fest aufs Papier drücken, zudem soll er möglichst genau in der Mitte des Roboters sitzen. Außerdem sollte der eingefahrene Stift nicht am Chassis festklemmen. Beides kann man durch die Defines PENUP_POS und PENDN_POS im Programm festgelegt werden.

Ein Problem konnte ich allerdings nicht lösen. Um den Faserstift vor dem Austrocknen zu schützen muss man die Kappe draufstecken. Problem: die Kappe ist zu groß, auch bei eingefahrenem Stift.

Kalibrierung:

Damit die Zeichnungen einigermaßen genau werden, ist eine Kalibrierung des Roboters notwendig. Dabei werden die Werte ermittelt, mit denen der Roboter gerade aus fahren und auf der Stelle drehen kann. Leider ist im Moment der Drehwinkel zwischen Links und Rechtsdrehung sehr unterschiedlich. Hier ergibt sich noch einiges an Verbesserungs Potential.

Programmierung:

Die Programmierung erfolgt derzeit über fest vorgegebene Sequenzen, die mit einer Sony IR Fernbedienung aufgerufen werden. Später ist mal geplant über Bluetooth und einer Skriptsprache, ähnlich der Logo Programmier Sprache, Zeichen Skripte vom PC aus zu laden und direkt ausführen zu lassen.

Die Basisbefehle sind Pen(up, down), Go(steps) und Turn(angle). Negative „steps“ lassen den Roboter rückwärts fahren, ein negativer „angle“ den Roboter nach links drehen.

Beispiel1: Quadrat zeichnen

void Square(int width)
{
  Pen(down);
  for(int i=0; i<4; i++) 
  {
     Go(width);
     Turn(90); 
  }
  Pen(up);
}

Beispiel2: Spirale zeichnen

void Spiral(int limit, int steps, int angle)
{
  Pen(down);
  for(int i=steps; i< =limit; i+=steps)
  {
   Go(i);
   Turn(angle);
   Go(i);
   Turn(angle);
  }
  Pen(up);
}

Video:

httpv://www.youtube.com/watch?v=wVCDLklqoYM

Weiterführende Links:

 

 

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert