Arduino Roboter selber bauen

StepFertigDiese Anleitung ist eins der einfachen Wege, um dir einen schnellen Start in die Welt der selbstgebauten Roboter zu verschaffen. Nebenbei wirst du viele nützliche Sachen lernen, die dich beim Bau deines nächsten Roboters begleiten werden.

Die Anleitung wurde so ausgelegt, dass du schnell deinen ersten Erfolg erzielen kannst, denn gerade als Einsteiger, möchte man möglichst schnell Ergebnisse sehen. Und hiermit wird Dein erstes Ergebnis, ein programmierbarer Roboter.

Die einzelnen Teile werden zwar mit doppelseitigem Klebeband befestigt, dies erspart aber die Konstruktion oder den Kauf eines Chassis.

Der Vorteil ist, dass man das schnell wieder auseinander nehmen und die Sachen für andere Projekte verwenden kann. Wenn dir die Form des Roboters doch gefällt, kannst du die Motoren und Servo, mit Hilfe von Heißkleber, am Batteriehalter befestigen. Man kann dann immernoch alles auseinander reißen (mit etwas mehr Mühe) 😉

Nachteil: natürlich ist der Aufbau mit Heißkleber oder Klebeband nicht so elegant, wie mit Schrauben und Muttern und evtl. noch Kunststoffplatten. Der Roboter lässt sich dann aus Platz- und Energiemangel auch kaum erweitern. Aber so beschränkt man sich nur auf die wichtigsten Teile, um direkt kostengünstig (mit original Arduino Teilen und relativ guten Motoren).

 

Material

Es gibt zur Zeit leider keine Online-Händler, bei dem man alle nötigen Teile auf ein mal bestellen kann.
Der aktuelle Stand ist, dass man das in mehr als nur einem Shop bestellen muss oder man hat den einen oder anderen Teil schon zuhause liegen.

 

Hier ist eine kurze Aufzählung der Bauteile, die du für den Aufbau deines eigenen Roboters benötigst.

1 Arduino UNO Rev. 3

Arduino ist eine Entwicklungsplattform, bestehend aus Software und Hardware. Die Plattform wurde extra dafür entwickelt, ohne einer langen Lernphase, direkt in die Welt der Mikrocontroller-Projekte einzusteigen. Im Prinzip wurde Arduino für Nichtelektroniker entwickelt.

1Arduino

 

1 Arduino Motor Shield

Motor Shield ist eine wichtige Erweiterung für den Arduino. Da der Arduino nicht in der Lage ist, genug Strom von den Batterien zu den Motoren umzuleiten, übernimmt das der L298 Treiber auf dem Motor Shield, der von Arduino gesteuert wird. Außerdem bietet das Motor Shield weitere Anschlüsse für Sensoren und Aktoren. Diese Anschlüsse sind auch mit dem TinkerKit kompatibel.

2Motor-Shield

 

5 oder mehr 100mm Female-Female (FF) Jumper Wires

Diese kleine Leitungen ersparen einem einige Lötarbeiten und erhöhen die Flexibilität beim Aufbau.

11Jumper-Wires

 

Etwas Draht

Der Draht muss ca. 0,25mm² Querschnitt und ca. 20-30cm langes Stück reicht hier vollkommen aus.

12Draht

 

1 Batterieclip

Hier muss man wohl nicht viel erzählen. Ist eben dazu da, um die Batterien mit der Elektronik zu verbinden.

7Batteriekabel

 

1 Standard Servo

Servomotoren sind in Robotik sehr verbreitet. Im Inneren des Servos befindet sich ein kleiner Motor, mehrere Zahnräder und etwas „schlaue“ Elektronik. Ein Servo besitzt drei Anschlüsse für Plus, Minus und Signal. Über die Signalleitung sendet der Mikrocontroller (in unserem Fall Arduino) ein Signal zum Servo. Dadurch „weiß“ der Servo, in welche Richtung es drehen und an welcher Stelle anhalten soll. Diese Stelle liegt meistens zwischen 0° und 180°.

4Servo

 

1 Sharp Infrarot Distanzmesser

Der Distanzmesser besitzt drei Anschlussdrähte und so zu sagen „zwei Augen“. Ein Auge erzeugt einen Lichtstrahl, der für menschliche Augen nicht sichtbar ist. Also wundert euch nicht, wenn der Sensor nicht leuchtet. Das ist schon richtig so =). Sollte vor diesem Strahl ein Gegenstand auftauchen, wird dieses Licht zurück reflektiert und von dem „zweiten Auge“ des Sensors erkannt. In diesem Augenblick, wo das Hindernis von dem Sensor erkannt wurde, steigt die Spannung an der Signalleitung des Sensors und zwar je näher das Hindernis, desto höher die Spannung an der Signalleitung. Der Mikrocontroller kann dieses Signal auswerten und den Roboter ausweichen lassen.

Achte bitte darauf, dass der Sensor entweder mit Anschlusskabel (siehe auf dem Bild) geliefert wird oder bestell diesen mit.

5Sharp-Sensor

 

Batteriehalter für 4 AA Batterien (1,5Volt)

Die 4 Batterien hintereinander angeschlossen, erzeugen insgesamt 6 Volt, die in die Steckerbuchse des Arduinos gehen. Auf dem Board ist ein Spannungsregler, der die 6Volt in 5Volt umwandelt. 5Volt ist quasi die Standardspannung, mit der fast gesamte Elektronik des Roboters arbeitet.

6Batteriehalter

 

4 AA 1,5Volt Batterien

Aus den Batterien wird der Roboter mit Strom versorgt. Diese Batterien sind fast in jedem Laden erhältlich und sind relativ günstig.8Batterien

 

2 Getriebemotoren und 2 Räder

Das Getriebe des Getriebemotors besteht aus mehreren Zahnrädern, die die Drehzahl der Räder zwar reduzieren (Untersetzung), verleihen ihnen aber mehr Kraft (Drehmoment). Dadurch kann der Roboter auch leichte Neigungen hoch fahren und rollt nicht zurück.

9GM9-Motoren

Es gibt Räder, die direkt auf die GM9 Motoren passen, z.B. Räder der Firma Solabotics.

10Raeder

 

1 Rolle doppelseitiges Klebeband

Dieses Band ist eine gute Methode zwei kleine Gegenstände miteinander zu verkleben und ist in unserem Fall eine gute Alternative zum Sekundenkleber etc.. Falls du deinen Roboter modifizieren/umbauen möchtest, geht es viel leichter alles auseinander zu nehmen, als wenn es geklebt wäre.

14Klebeband

 

1 Schrumpfschlauch (3-5mm Durchmesser)

Während des Aufbaus deines Roboters, müssen einige Leitungen miteinander verlötet werden, z.B. die Anschlüsse des Sharp Sensors. Damit diese Leitungen kein Kurzschluss verursachen, sollten sie mit Hilfe von Schrumpfschlauch (oder Klebeband) isoliert werden. Wichtig ist, dass du den Schrumpfschlauch vor dem Verlöten auf die Leitungen drauf machst. Wenn man den Schrumpfschlauch erwärmt, schrumpft dieser zusammen.

13Schrumpfschlauch

 

Werkzeug

Ein Feuerzeug um Schrumpfschlauch zu erwärmen, Seitenschneider um Drähte und doppelseitiges Klebeband abzuschneiden, kleinen Schlitz-Schraubendreher (2-3mm breit) und eine Abisolierzange um die Drahtenden von der Isolation zu befreien.

15Werkzeug

 

Lötkolben und Lötzinn

Während des Aufbaus muss man einige Leitungen miteinander verlöten. Dazu braucht man Lötzinn und einen Lötkolben um den zum Schmelzen zu bringen.

16Loetstation

Ein Computer mit Internetverbindung und einem freien USB-Anschluss

Der Programm-Code für den Roboter wird mit Hilfe von USB-Kabel auf den Mikrocontroller übertragen. Die Arduino Programmierumgebung ist kostenlos und läuft unter Mac OS, Linux und Windows.

 

Zusammenbau

Hast du alles? Dann auf geht’s!!!

Ca. 4cm langes Stück doppelseitiges Klebeband abschneiden und auf einer Seite die Schutzfolie abziehen. Jetzt das Band mit der klebrigen Seite am Batteriehalter anbringen und drücke es mit etwas kraft zusammen.

Step1

 

Jetzt entferne die andere Schutzfolie und klebe den Servo drauf und drücke das Ganze mit etwas Kraft zusammen.

Step2

 

Schneide dir zwei 3 cm lange Stücke des Klebebandes ab und klebe sie auf den hinteren Bereich des Batteriehalters drauf.

Step3

 

Schneide dir 5 cm lange Stücke von dem Draht ab (4 Stück) und entferne mit Hilfe der Abisolierzange jeweils ca. 5mm der Isolierung ab.

Step4

 

Die GM9 Motoren haben jeweils zwei Anschlüsse. Je nach dem an welchem Anschluss Plus oder Minus angeschlossen wird, kann der Motor entweder in die eine oder andere Richtung drehen. Löte an jeden der Anschlüsse jeweils eine Leitung an, die du in Schritt 4 vorbereitet hast. Achte dabei darauf, dass die Lötspitze die Kunststoffteile der Motoren nicht berührt. Achte auch darauf, dass es keine Lötverbindungen zwischen Anschlüssen und dem metallischen Gehäuse des Motors gibt.

Step5

 

Jetzt werden die Motoren auf den Batteriehalter geklebt. Greife jetzt noch Mal zum doppelseitigen Klebeband und klebe es auf die Motoren oben drauf so dass auch die Metallfläche bedeckt ist.

Step6

 

Jetzt werden die Räder auf die Motorachsen montiert.
So langsam sieht es nach was aus, nicht Wahr?

Step7

 

Befestige den Arduino oben auf den beiden Motoren und lass etwas Abstand zwischen dem Servo und Arduino.

Step8

 

Auf den Arduino-Board wird nun das Motor Shield aufgesteckt. Achte dabei darauf, dass die Stiftleisten des Motor Shields sich nicht verbiegen und die Buchsenleisten richtig getroffen werden. Lass dir dabei etwas Zeit 😀

Step9

 

Nun kommen wir zu den Anschlüssen des Servo Motors. Wenn du es dir anschaust, wirst du feststellen, dass man etwas von den Anschlüssen sieht. Damit diese Kontakte nicht raus rutschen, hat der Servo-Anschluss drei kleine Klappen.

Step10

 

Bei diesem Schritt kann man zwischen zwei Varianten wählen.

Variante 1: Biege die Klappen mit dem Schlitz-Schraubendreher nach oben und ziehe die Leitungen mit der Kontakthülse raus Siehe Bild). Lass dir dabei etwas Zeit – wir haben es wirklich nicht eilig 😀

Variante 2: Man zieht nur die rote und die orangene Leitungen raus und vertauscht sie. In den Bildern wird nur die Variante 1 gezeigt. Es spielt keine Rolle ob du dich für 1 oder 2 entscheidest, denn die Funktion bleibt trotzdem gleich 😀

Step11

 

Wenn du alle drei Leitungen raus gezogen hast, sollte es ungefähr so aussehen (siehe Bild)

Step12

 

Schneide jetzt drei 1,5cm kurze Stücke von dem Schrumpfschlauch ab und setze sie auf die Anschlusshülsen der Servo-Anschlussleitungen (was für ein Wort, oder?) auf.

Step13

 

Nun werden die Schrumpfschläuche mit dem Feuerzeug erwärmt. Bring bitte nicht die Leitungen zum Schmelzen 😀  Zwei bis drei Sekunden reichen vollkommen aus.

Step14

 

Der Servo wird an den orangenen Steckern OUT ~5 auf dem Motor Shield angeschlossen. Wenn man den halbfertigen Roboter mit dem Servo zu sich hält, wird an den Linken Pin die Braune (Minus) Leitung, an den mittleren Pin die orangene (Signal) und an den rechten Pin die rote (Plus) Leitung angeschlossen. Bitte achte darauf, dass es richtig angeschlossen ist, sonst funktioniert der Servo nicht 😀

Step15

 

Nun werden die Motoren angeschlossen. Wir fangen mit dem linken Motor an. Stecke die obere Leitung des linken Motors in die aller linke (Minus) Schraubklemme rein und schraube sie zu. Die untere Leitung des Motors wird an die zweite Klemme von links (Plus) angeschraubt. Bitte wende beim Zusammenschrauben keine Gewalt an.

Step16

 

Jetzt ist der rechte Motor an der Reihe. Hier gilt dasselbe – also obere Leitung an Minus-Klemme (dritte von links) und die untere Leitung an Plus (vierte von links).

Step17

 

Batterieclip an den Batteriehalter anschließen (Batterien bleiben erst mal draußen). Die rote Leitung (Plus) wird an Vin (fünfte Klemme von links) und die schwarze Leitung (Minus) an GND (Schraubklemme ganz rechts) angeschlossen.

Step18

 

Nun kommt wieder mein Lieblingswerkzeug ins Spiel, nämlich ein Lötkolben 😀  Nimm dir drei Jumper Wires und zwar möglichst in denselben Farben, wie die Anschlussdrähte des IR-Distanzmessers. Manchmal werden die Jumper Wires in zufälligen Farben geliefert. Das macht aber nichts. Wichtig ist, dass du weißt welche Leitungen des Jumper Wires mit welchen Leitungen des Distanzmessers verbunden sind. Schneide alle drei Jumper Wires in der Mitte durch.
Die Leitungen vom IR-Sensor und Jumper Wires (ich weiß, ich wiederhole das Wort viel zu oft) werden an den Enden ca. 1,5cm abisoliert und die Schrumpfschläuche (ca. 2cm) werden aufgesetzt (siehe Bild).
Ein Jumper Wire und eine Leitung des Sensors miteinander verdrillen und anschließend miteinander verlöten.

Step19

Step20

 

Über jede dieser Lötstellen wird nun der Schrumpfschlauch drüber gezogen. Die verlöteten Spitzen, die im Weg stehen, werden einfach parallel zu Leitungen gebogen. Hier auch die Schrumpfschläuche mit dem Feuerzeug erwärmen, damit sie fest sitzen.

Step22

 

Da ich keine Jumper Wires in passender Farbe hatte, muss ich mir merken (und du vielleicht auch), welche Sensorleitung mit welcher Anschlussleitung verbunden wurde. Bei mir geht Rot auf Orange, Schwarz auf Braun, Weiß auf Grau.

Step23

 

Als nächstes wird der vorbereitete IR-Distanzmesser an den weißen IN 2 Pin wie im Bild angeschlossen. Die Pinbelegung der drei Anschlusspins ist zum Servo identisch. Wenn man den Roboter mit dem Servo zu sich hält, ist links die Minusleitung (schwarz beim Sensor), mittig die Signalleitung (weiß beim Sensor) und rechts die Plusleitung (Plus beim Sensor).

Step24

 

Und nun wird der Infrarotsensor mit Hilfe des doppelseitigen Klebebands am Servo befestigt.

uuuund…… !!! TADAAAAA 😀 !!! Den mechanischen Aufbau hast du fertig.

StepFertig

 

Programmierung

Das Programm für diesen Roboter, wurde von Bekannten von mir geschrieben. Mein Code hat nicht so gut funktioniert, deswegen veröffentliche ich hier seinen 😉

 

 

Hier ist noch etwas Nachhilfe, falls der Roboter nicht das tut, was es eigentlich soll.

Frage: Mein Roboter hält immer wieder ohne Grund an, bewegt den Kopf hin und her, versucht wieder anzufahren und bleibt wieder stehen. Woran lilegt das?

Antwort: Es liegt entweder an den zu schwachen Batterien oder an dem Servo. Manche Servos ziehen sehr viel Strom, sodass die Spannung kurzzeitig sehr niedrig wird. Dadurch spinnt dann die Elektronik.

 

Frage: Wieso fährt der Roboter, bei einem Hindernis auf der linken Seite, auch nach Links, obwohl er nach rechts fahren sollte?

Antwort: Das hängt so bisschen mit dem Servo und dem Programmcode zusammen. Die üblichen Servos haben einen Stellwinkel zwischen 0° und 180°. Bei manchen Servos liegen die 180° ganz links und 0° ganz rechts. Und bei manchen Servos genau umgekehrt. Im Programmcode wird abgefragt, wo der Servo sich gerade befindet, also in welche Richtung es gerade guckt. Entsprechend werden dann die Motoren so angesteuert, dass der Roboter sich vom Hindernis weg bewegt.

So wird der Controller von dem Servo manchmal rein gelegt und der “Controller” denkt, dass das Hindernis sich links befindet, obwohl das nicht stimmt. Als Lösung sollte man die Drahtpaare der Motoren gegeneinander tauschen. D.h. dort wo der rechte Motor angeschlossen war, wird der linke Motor angeschlossen und dort wo der linke Motor war, wird der rechte Motor angeschlossen.

27 Gedanken zu „Arduino Roboter selber bauen

  1. Hallo,
    Sobald die Batterien im Arduino Uno drin sind bewegt er seinen Kopf ( wie vorgesehen) aber danach dreht er sich nur noch auf der Stelle immer weiter nach Links !
    Was habe ich falsch gemacht ?

    • Hi,

      dreht er sich um seine eigene Achse oder fährt er einen Bogen?
      Wenn er sich um seine eigene Achse dreht, vertausche mal die Leitungen des Motors, der rückwärts dreht.
      Ansonsten im ausgeschaltetem Zustand die Motoren mit der Hand kurz drehen, ob sich ein Motor viel schwerer drehen lässt, als der andere.

      • Er hatte sich um seine eigene Achse gedreht. Nun fährt er gerade aus. Er erkennt aber keine Gegenstände, er fährt einfach dagegen. Was muss ich verändern ?

  2. Jo daran hat es gelegen. 😀 😀 😀

    PS: Das Video und die Bilder stimmen bei der reihen folge der Anschlüsse des Sensors nicht überein (bei mir waren die Bilder der richtige Weg):D

    Danke dass es Menschen gibt wie dich.Die anderen helfen.
    Like you bro !!!

  3. Hallo
    Danke für die Anleitung, mein Kleiner läuft.
    Jetzt versuch ich das Programm auf Ultraschallsensor umzustricken. ( mein erster Versuch)

    • Hi,

      coole Sache! Gratulation zum funktionierenden Roboter! 🙂
      Kannst dann ja berichten, ob es mit US-Sensor geklappt hat. Wünsche dabei auf jeden Fall viel Erfolg 😉

  4. Hallo, super Anleitung!
    gibt es denn inzwischen eine Variante mit Ultraschallsensoren?
    Macht es Sinn, anstatt der AA-Batterien LithiumIonen-Akkus (2 x 18650, á 3,7V) zu verbauen?
    V.G.!

  5. Ich hab versucht den Roboter mit einem SainSmart L293D Motor Drive Shield nachzubauen. Aber irgendwie komme ich mit der Pinbelegung nicht zurecht. Bin auch nicht grad ein Genie um ein neues Program zu schreiben 😉
    Hast du vielleicht einen Tip?

    p.s.
    Sehr schönes Block

    • Ich gehe davon aus, dass der SainSmart Shield ein Klon des Adafruit’s Shields ist. https://www.adafruit.com/products/81
      Die Ansteuerung der beiden Motor Shields ist unterschiedlich. Es reicht auch nicht, nur 1-2 Zeilen Code zu ändern, damit es mit dem Shield funktioniert.
      Wenn du nur den Roboter nachbauen willst, kannst du dir vielleicht überlegen, das Arduino Motor Shield (wie in der Anleitung) zu kaufen oder du beschäftigst dich halt mit der Programmierung der Mikrocontroller, um das SainSmart Shield zum laufen zu bringen bzw. um das Programm an deine Bedürfnisse anpassen zu können 🙂

  6. hallo
    ich habe die programierung draufgeladen und so
    aber es funktst. nicht. (das heist der Servo bewgt sich kein stück)
    Ich habe auch alles nach anweisungen angesteckt.
    Könnt ihr mir bitte helfen.

  7. Hallo was ist wenn ich ein L293D habe. Ich habe mich durchgelesen und eingesteckt, jedoch funktioniert dann der Sensor nicht. Irgendwelche tipps? Würde mich über eine Antwort freuen.

    • Hi,
      wenn du von der Anleitung abweichst, dann musst du schon so bisschen wissen, was du da tust. Hast du einfach nur den Chip eingesetzt oder ein Shield mit dem L293D genommen?
      In beiden Fällen, würde ich vermuten, dass es nicht 100% mit dem Arduino Motor Shield kompatibel ist.

  8. Hallo,
    ich habe diesen Sketch versucht zu kompilieren: Es kommen aber folgende Fehlermeldungen:

    sketch_oct11a:35: error: ‚Servo‘ does not name a type
    sketch_oct11a.ino: In function ‚int SeekingPositionWithClosestDanger()‘:
    sketch_oct11a:51: error: ‚SensorServo‘ was not declared in this scope
    sketch_oct11a:63: error: ‚SensorServo‘ was not declared in this scope
    sketch_oct11a.ino: In function ‚void DriveForward()‘:
    sketch_oct11a:72: error: ‚SensorServo‘ was not declared in this scope
    sketch_oct11a.ino: In function ‚void setup()‘:
    sketch_oct11a:143: error: ‚SensorServo‘ was not declared in this scope

  9. Hallo zusammen,

    nach meinem Quadrocopter Projekt hat mich jetzt auch das Arduinofieber gepackt.
    Den obigen Robi hab ich schon nachgebaut und hab jetzt zum Leid meiner Frau neue Sachen im Kopf.
    Nach dem Vorbild deines Robis würde ich gern einen Rasenmäher Roboter bauen.
    Der Plan ist für den Antrieb zwei 6V oder 12V 40RRPM Getriebemotoren zu verwenden
    Anstatt des Servos würde ich einen Brushlesregler an den Pin stecken mit einem zugehörigem Motor und Stromverteiler für das Schneidwerk.
    Als Spannungsversorgung dachte ich an 3S Lipos oder besser noch eine 12V Gel-Akkus.
    Bei den Sensoren macht die Anordnung deines Bubble Roboters Sinn.
    Er soll einfach nur nach dem Chaotischenprinzip den Rasen bearbeiten.
    Jetzt kommen meine Probleme… ich bin Mechaniker, die technische Umsetzung ist absolut kein Problem aber ich bekomme die Programmierung nicht in meinen Kopf.
    Könntest du mir da helfen?
    Und ist für dich die Anordnung der Bauteile plausibel?

    Beste Grüße
    Micha

  10. Hallo,
    ich möchte mir auch einen Arduino Roboter zulegen. Ich habe jetzt eine Frage ob man an diesen Roboter eine Fernbedinung anschliesen kann, da ich nicht nur im Autopilot sondern auch mal selber am steuer durch das Haus fahren will.
    Danke im Voraus!

  11. Hi! Ich finde das Projekt super und wollte es mal selber versuchen.
    Meine Frage hier nun ist ob es wirklich genau die selbern Bauteile sein müssen? Denn ich bekomme nicht den selben Servo Motor also den RS-2 und auch nicht den selben IR-Sensor also den 2Y0A21 F 2Y.

    Statdessen den Standard-Servo BMS-410C Analog und 2Y0A21 F 9Y.
    Beide sind aber von Modelcraft und Sharp

  12. Wie wird der Arduino denn gesteuert ich habe es in dem Inhalt auf der Seite nicht gelesen. WIrd er über eine Fernsteuerung oder über eine App am Smartphone gesteuert

    mfg

Schreibe einen Kommentar

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

Bitte löse folgende Rechenaufgabe * Time limit is exhausted. Please reload CAPTCHA.