Roboter bauen mit Arduino

Für Maker von 9 bis 99

Roboter bauen mit Arduino - Die Anleitung für Einsteiger
Roboter bauen mit Arduino – Die Anleitung für Einsteiger

Markus Knapp

Roboter bauen mit Arduino

Die Anleitung für Einsteiger

  • Einfach einsteigen, kein Vorwissen erforderlich; für Maker von 9 bis 99
  • Alle Grundlagen: Arduino-Programmierung, Elektronik und Robotik
  • Einen eigenen Roboter bauen und schrittweise um neue Fähigkeiten erweitern

Sie möchten Ihren eigenen Roboter bauen und nebenbei den Arduino „richtig“ kennenlernen? Dann ist das Ihr Buch! Zuerst richten Sie Ihren Arduino ein und erhalten eine Einführung in dessen Programmierung sowie in die Grundlagen der Robotik und Elektronik. Dann geht es gleich ans Eingemachte: Schritt für Schritt montieren Sie Ihren eigenen Roboter und statten ihn z.B. mit Motoren, Servo, Rädern und Sensoren aus. Viele farbige Abbildungen, fertige Programme und Erweiterungstipps unterstützen Sie dabei. Für Einsteiger ohne Vorwissen geeignet!

411 Seiten, 2. aktualisierte Auflage 2016, broschiert, in Farbe,
ISBN 978-3-8362-4351-3
Für Windows, Mac OS, Linux
29,90 €

Hier bestellbar – mit kostenlosem Versand nach Deutschland und Österreich. Oder bei Amazon.

Den Roboter-Bausatz gibt es als StartKit bei watterott electronic.

PS.: Ich habe „keine Aktien“ im Roboter-Kit und daher leider auch gar keinen Einfluss auf die Lieferzeit des Bausatzes. Falls es einmal nicht lieferbar sein, einfach Kontakt zum Service von watterott aufnehmen und nach der Lieferbarkeit fragen…

Kunststoffteile/Chassis selbst lasern?

Es ist auch problemlos möglich, sich die Kunststoffteile lasern zu lassen. Die Vorlagen dazu gibt es frei verfügbar hier: https://github.com/markusk/StarterKit-Robotics/tree/master/docu

Alternativ ist das Chassis auch einzeln bestellbar.

 

 

14 Gedanken zu „Roboter bauen mit Arduino

  • 22.09.2014 um 07:56 Uhr
    Permalink

    Mensch Markus, wusste gar nicht, dass du ein Buch schreibst. Mal schauen….gibt es das für den Kindle? Cooles Video!!!

    Antworten
    • 26.09.2014 um 00:14 Uhr
      Permalink

      Tja, ich sag es dir… Und es ist endlich fertig: Am 27.10. ist die Veröffentlichung. Ob es auch direkt für den kindle lieferbar ist, kann ich nicht sagen. Aber bei Galileo Press bekommst du ja auch immer das eBook.

      Das ist dann auch übertragbar. Für den Paperwhite ist es aufgrund der detailreichen Fotos sicher nicht so zu empfehlen. Für alle anderen bestimmt schon.

      Ach ja: Das Video hat übrigens der Alex aus unserem Team produziert!

      Antworten
  • 25.04.2015 um 02:05 Uhr
    Permalink

    Ist bei der gebundenen Ausgabe auch die digitale Version dabei?

    Antworten
  • 28.05.2016 um 16:17 Uhr
    Permalink

    Hallo Markus,
    ich habe mir Dein Buch gekauft, weil ich gern mit dem Arduino experimentiere. Habe schon selbst versucht aus einzelnen Arduino Komponenten und kleinen Motoren und LEGO Teilen meines Sohnes ( hoffentlich merkt er es nicht) einen kleinen Roboter zu bauen. Funktioniert recht gut, aber mit Hilfe Deines Buches werde ich ihn noch verbessern können. Danke dafür. Echt tolles Buch und vorallem für Laien wie mich sehr gut verständlich.
    MfG Thomas

    Antworten
  • 12.01.2017 um 22:41 Uhr
    Permalink

    Hallo
    Klasse Buch. Als absoluter Laie komme ich damit sehr gut zurecht. Ich versuche auch immer die im Download angebotenen Listings nachzuvollziehen und zu verstehen. Allerdings bewegt sich bei der Datei Roboter_Software.ino der Servo nur dann, wenn er ein Hindernis erkennt. Während der Fahrt bleibt er bei 90 Grad. Istvdas ein Fehler ? Vielleicht komme ich ja auch noxh dahinter :-).
    Also nochmals vielen Dank für doeses Erwachsenenspielzeug. Daumen hoch.
    VG vom Niederrhein
    Uwe Schicht

    Antworten
    • 12.01.2017 um 23:03 Uhr
      Permalink

      danke für dein tolles Feedback, Uwe. Das freut mich wirklich sehr! Wenn du Lust hast, würde ich mich über so einen Text bei Amazon als Rezension auch sehr freuen. :) http://amzn.to/2eekLEl

      Zu deiner Frage:
      Der Server sollte sich auch während der Fahrt ständig drehen; quasi wie ein „Radar“. Wenn er das bei dir nicht macht, stimmt irgendetwas nicht im Sourcecode. Vielleicht wurde hier etwas verändert? Wenn du das Buch der Reihe nach komplett durcharbeitest, solltest du aber die Ursache auch finden können. Ansonsten melde dich nochmal über das Kontakt-Formular auf dieser Seite – vielleicht kann ich dir aus der Ferne etwas helfen.

      Antworten
      • 27.12.2017 um 11:32 Uhr
        Permalink

        Es handelt sich wohl um einen (kleinen) Fehler in der runtergeladenen Roboter_Software.ino: In der Funktion DriveForward() wird zwar die Variable ServoPosition gemäß der gewünschten Schwenkbewegung aktualisiert, aber der Wert nicht an den Servo übermittelt — ein Einfaches SensorServo.write(ServoPosition); am Ende der Funktion sollte genügen (nicht getestet).

        Bin selbst als Elektroniklaie mit Programmiererfahrung auch begeistert vom Buch (habe die 2. Ausgabe). Wenn ich dazu komme, will ich auch ein entsprechendes ausführliches Feedback auf Amazon hinterlassen.

        Ich habe allerdings ein Problem mit dem Standardaufbau, das ich als Elektronik-Anfänger einfach nicht gelöst bekomme: Bei Batterie-Versorgung (4 volle Eneloop im Watterott-Bausatz) bekommt man höhere Werte vom IR-Distanzsensor als bei USB. Das sieht man sehr gut bei aufgespieltem Roboter_Sensortest.ino: Zieht man USB raus (nur Batterieversorgung), blinkt die LED bei gleicher gemessenen Entfernung fast doppelt so schnell; steckt man USB wieder rein, wieder langsamer.

        Habe es eingegrenzt auf irgendwas mit der Spannung: Bei Batterieversorgung ist die Eingangsspannung 5,14V, am 5V-Pin liegen aber nur 4,25V an. Bei USB sind beide Spannungen über 5V. Am IR-Distanz-Signal-Ausgang liegt interessanterweise bei beiden Stromquellen dieselbe Spannung an. Habe auch schon versucht, erst den 5V-Pin und dann den 3,3V-Pin mit AREF zu verbinden — bei 5V-Pin keine Änderung der von analogRead(), bei 3,3V-Pin leichte Besserung, aber nicht wirklich gut.

        Wenn ich einen 9V-Block anschließe (am runden Stecker des Arduino UNO), sind die Werte ziemlich gleich zu USB.

        Nachdem ich exakt den im Buch beschriebenen Aufbau habe (selbst den Batterietyp), kann ich mir vorstellen, dass Du bei der Entwicklung mit demselben Problem gekämpft hast. Wie hast Du das mit den falschen Werten bei Batterieversorgung gelöst? Ich hab das Gefühl, dass es durch einen Standardkniff gelöst werden kann, z.B. irgendwo vielleicht noch was mit Pull-Up- oder Pull-Down-Widerständen gemacht werden muss, aber hab leider wenig Ahnung von allem Elektronischen.

        Antworten
        • 28.12.2017 um 00:45 Uhr
          Permalink

          Hallo Andreas,

          danke für dein Feedback. Wenn ich das richtig sehe, wird ServoPosition innerhalb der Funktion DriveForward sehr wohl an den Servo gesendet. Aber eben stets zu Beginn dieser Funktion. Da diese in der loop-Funktion ständig aufgerufen wird, wird sie auch an den Servo gesendet.

          Das Problem mit den Distanzen ist mir so tatsächlich noch nie aufgefallen. Ich habe mir den Bausatz und Software ja eben auch nicht ausgedacht. Ich nutze ihn nur für mein Buch…

          Mein Roboter fährt jetzt seit einigen Jahren mit den gleichen Akkus recht erfolgreich durch die Gegend. Aber es ist richtig, die Stromversorgung ist etwas knapp bemessen. Man könnte den Roboter durch einen sogenannten step up-Regler (oder auch DC/DC-Konverter) auf z.B. 6 Volt hoch regeln. Damit dürfte sich ads Problem lösen lassen. Hier findest du sehr gute Tipps dafür:

          https://www.robotfreak.de/blog/roboter-starterkit-v2-modifikationen/

          Antworten
          • 01.01.2018 um 12:27 Uhr
            Permalink

            Hallo Markus und frohes Neues Jahr!

            Vielen Dank für Deine Antwort. Habe mich jetzt noch mal hingesetzt und den Fehler im Code gefunden. Das hier ist glaub ich beim Versuch, den Code verständlicher zu machen, so stehengeblieben:
            ServoPosition = ServoPosition–;
            Idem dito für ServoPosition++

            Ich glaube, hier wollte jemand eigentlich aus ServoPosition–; bzw. ++ zum besseren Verständnis ein ServoPosition=ServoPosition+1 machen, wurde dann aber mittendrin abgelenkt. ;)

            Das Problem ist, dass ++ und — als Postfix den ursprünglichen Wert zurückgeben und erst danach die Variable aktualisieren (als Präfix ist es umgekehrt), wodurch der Variable ServoPosition ihr alter Wert zugewiesen wird (es findet keine Änderung statt). Denke aber nicht dass es als Präfix gedacht war: ++ und Zuweisung ist sowieso doppelt gemoppelt.

            Herzlichen Dank auch für den Link zu dem Blogpost von robotfreak.de! Das ist genau, was ich gesucht habe. Ich werde dann auch gleich schauen, ob das ständige Zittern des Servos durch Entstörkondensatoren weggeht (wird mein erster „echter“ Einsatz von Kondensatoren, drück mir die Daumen).

          • 05.01.2018 um 18:32 Uhr
            Permalink

            Sehr cool, Andreas! Großes Kino. Ich hätte es nicht besser beschreiben können und du hast natürlich absolut Recht.

            Und: Du bist der Erste, der es bemerkt hat. Danke. :)

            Ich habe den Code korrigiert und die Sourcen neu hochgeladen. Im Buch ist dieser Teil nur beschrieben und nicht abgedruckt, wenn ich nichts übersehen habe. Hier muss also erfreulicherweise nichts korrigiert werden.

Schreibe einen Kommentar zu stephan Antworten abbrechen

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

Diese Website verwendet Akismet, um Spam zu reduzieren. Erfahre mehr darüber, wie deine Kommentardaten verarbeitet werden.

Das Robotiklabor verwendet Cookies 🍪. Wir zählen damit die Seitenaufrufe und sie sind für die Kommentarfunktion notwendig. Weitere Infos findest du in unserer Datenschutzerklärung. Weitere Informationen

Die Cookie-Einstellungen auf dieser Website sind auf "Cookies zulassen" eingestellt, um das beste Surferlebnis zu ermöglichen. Wenn du diese Website ohne Änderung der Cookie-Einstellungen verwendest oder auf "Akzeptieren" klickst, erklärst du sich damit einverstanden.

Schließen