Arduino-Roboter

vor 3 years 2 weeks von Jan II

Hallo alle miteinander,

ich wollte diesen Thread einfach mal als Sammelthread starten zum Thema "Roboter mit Arduino-Gehirn bauen".

Das "Hello World" in der Hobbyrobotik ist ja, wie ich es kenne, das Konstruieren eines Roboters, der einer markierten Linie auf dem Boden folgen kann.

Nun ist dabei die erste Hürde, die es zu überwinden gilt, wohl das Bauen eines Rädergestells, auf welchem das Arduino-Board einen unfallsicheren Platz findet und welches ordentlich fahren kann (sind dabei Servomotoren der richtige Weg? Wenn ja: Welche? Und: Wie ansteuern?).

Dann geht es um die Erkennung einer Markierung auf dem Boden. Hier ein Konstruktionsvorschlag (nicht mein Eigen, ich habe diese Methode auch noch nicht getestet):

 Schema zur Konstruktion einer Linienfolge-ApparaturLinienfolge-Schema - Schema zur Konstruktion einer Linienfolge-Apparatur
Die grauen Teile sind LDRs, das rote in der Mitte (Überraschung) eine LED. Auf dieser Seite wird das Schema näher erläutert (allerdings auf den ASURO bezogen).

Ist das eine funktionale Methode? Und: Wie ließe sie sich mit dem Arduino verwirklicht programmieren?

Das alles nur als Anregung zu einer Diskussion des Themas "Arduino-Robotik". Was man sich immer durch den Kopf gehen lassen sollte, wenn man von Robotern spricht: Es bedeutet "Arbeiter".

Lieben Gruß,

Jan II

Ähnliche Posts

39 Antworten auf “Arduino-Roboter”


Seite 1 von 2nächste>>

Comment viewing options

Select your preferred way to display the comments and click "Save settings" to activate your changes.
  1. Jan sagt:

    Ich hab oft Servomotoren gesehen, die auf Rundumlauf umgebaut sind. Vorteile: billig, eingebautes Getriebe und die Geschwindigkeit scheint auch gut zu passen. Ich hab die umgebauten Servos noch nicht betrieben.

    Login or register to post comments

  1. Jan II sagt:

    Davon habe ich auch schon mal gelesen. Heißt "Rundumlauf" denn, dass sie in ganzen Kreisen drehen können (eben wie bei einem Rad)?

    Login or register to post comments

  1. Jan sagt:

    Ja, sie drehen sich wie ein normaler Motor, also ohne die normale Begrenzung bei einem Servo.

    Login or register to post comments

  1. Jan II sagt:

    Und wie ist das dann bei Taschenfans? Sind da Servos drin oder normale Motoren (durchwühl meinen alten Kram nämlich grad nach und nach, um ein bisschen Zeugs für meine Bastelkiste zusammenzufinden)?

    Login or register to post comments

  1. Jan sagt:

    Taschenfans? du meinst Fan = Ventilator?

    Login or register to post comments

  1. Jan II sagt:

    Ich meine diese kleinen Mini-Ventilatoren, die früher bei Zeitschriften beigelegt waren oder im 1-Euro-Laden zu erhalten sind - dieser billige Schrott also, der nach zwei Tagen sowieso nicht mehr geht und im Grunde auch unnütz ist.

    Login or register to post comments

  1. Vellas sagt:

    Hi Jan II!

    Der Motor, der beim ASURO dabei ist, ist scheinbar ein Gleichstrommotor.

    Quote:
    Ist das eine funktionale Methode? Und: Wie ließe sie sich mit dem Arduino verwirklicht programmieren?

    Das sollte einigermaßen funktionieren. Immerhin wird der ASURO damit ausgeliefert. Und ich sehe nichts was dagegen spricht, außer das die Umgebungsbeleuchtung nicht zu hell sein sollte.

    Das sollte sich mit dem Arduino ähnlich programmieren lassen. Der Mikrocontroller beim ASURO ist ein ATmega8L. Für den ASURO gibt es scheinbar schon fertige Bibliotheken zur Steuerung. Allerdings sind diese Bibliotheken wahrscheinlich auch in C, weil der ASURO in C programmiert wird. Ich denke man kann diese sogar wiederverwenden. Aber selbst wenn nicht, so liegt ja eigentlich gerade da der Reiz drin, die Steuerung selbst zu implementieren.

    Greetz

    Login or register to post comments

  1. Jan II sagt:

    Hallo Vellas,

    danke für die vielen Informationen. Sicher wird das eine interessante Sache, sich die komplette Steuerung selbst zu schreiben, allerdings gibt es ja auch z. B. die ServoLibrary, allerdings müsste man dafür Servos verwenden, die ordentlich funktionieren. Mal sehen, wie sich das realisieren lässt.

    Erst einmal hätte ich noch die Frage: Was hat das mit diesen MOSFETs auf sich? Ich habe hier nämlich ein paar alte Motoren herumliegen, von denen ich nicht genau weiß, was es für welche sind (ich kenne mich noch nicht allzu gut aus...).

    Das sind so kleine Metallzylinder mit Plastikkappe oben und einem Stab unten (für die Bewegung; sie sind alle aus alten Mini-Ventilatoren ausgebaut).

    Zwei Kabel (rot + schwarz) sind noch dran - kann ich die nun einfach an den Arduino anschließen wie einen Piezo (der ja dieselben Kabelverbindungen hat) oder benötige ich einen MOSFET, um Überlastung zu verhindern?

    Ich bin noch sehr neu mit dem Arduino, deshalb die vielen Fragen.

    Lieben Gruß,

    Jan II

    Login or register to post comments

  1. Alex (not verified) sagt:

    Hi,

    also Servos funktionieren super als Robo-Antrieb. Das schöne ist, dass man sie direkt mit dem Arduino und der Servolib ansteuern kann. Keine Transistoren oder sonstige Motortreiber notwendig. Ich habe letztens einen Licht-suchenden Robi gebaut. Als Chassi habe ich ein Breadboard verwendet und einen Boarduino als Hirn. Aber mit einem "normalen" Arduino sollte es auch klappen.

    http://tinkerlog.com/2009/04/18/arduino-powered-braitenberg-vehicle/

    Wenn Du Motoren direkt ansteuern willst, dann brauchst Du Transistoren (oder Relais), da der Arduino nur bis zu 20 mA liefern kann. Die Motoren benötigen aber bis zu 1 A. Um zwei Motoren ansteuern zu können (vorwärts und rückwärts) braucht man eine sogenannte H-Brücke oder H-Bridge mit min. 4 Transistoren. Oder man nimmt einen Chip, der das alles schon integriert hat, z.B. L293.

    Viele Grüße,
    Alex

    Login or register to post comments

  1. Jan II sagt:

    Das Schöne ist, dass man sie direkt mit dem Arduino und der Servolib ansteuern kann. Keine Transistoren oder sonstige Motortreiber notwendig.

    (...)

    Wenn Du Motoren direkt ansteuern willst, dann brauchst Du Transistoren (oder Relais), da der Arduino nur bis zu 20 mA liefern kann.

    Meinst du mit Motoren jetzt "normale", also keine Servos? - Die Motoren, die ich aus Mini-Ventilatoren ausgebaut habe, haben bloß zwei Kabel; beim Braitenberg-Vehikel (und auch bei anderen Howtos) haben diese Modellbau-Servos aber immer drei, die an 3-Pin-Header angesteckt werden. Wie habe ich das zu verstehen (ich glaube, am Besten ist es, ich kaufe mir dann doch noch Servos bei Conrad o.Ä.)?

    Also hast du bei dem lichtsuchenden Roboter einfach bloß Servos angesteckt, den Code hochgeladen, fertig?

    Login or register to post comments

  1. Jan sagt:

    vielleicht hilft dir dieser Link das ganze besser zu verstehen:

    http://www.adafruit.com/index.php?main_page=product_info&products_id=154

    Ja, bei Servos brauchst Du keine zusätzliche Elektronik, weil die Stromversorgung und die Steuerimpulse getrennt verlaufen.

    Login or register to post comments

  1. gatonero sagt:

    Hier http://todbot.com/blog/2009/04/11/tiny-servos-as-continuous-rotation-gea... gibt es eine Anleitung, wie man normale Servos in kontinuierlich drehende Motoren verwandeln kann (schnell und preiswert) und mit dem Arduino nutzen kann.

    Login or register to post comments

  1. Jan II sagt:

    Danke für die Links. Ich habe nur gefragt, weil in "Getting Started With Arduino" beim Thema Servos etwas von MOSFETs die Rede war.

    Login or register to post comments

  1. Jan II sagt:

    Noch was zum Thema Servos: Muss ich da irgendwelche Spannungen beachten, die den Arduino evtl. zerstören könnten? Oder könnte ich jetzt einfach z.B. dieses Servo kaufen und direkt ans Arduino-Board anschließen und gleich mit der Lib ansteuern, wie bei einer LED?

    Login or register to post comments

  1. Alex (not verified) sagt:

    Hmm, konnte den Link nicht öffnen, aber im Prinzip kannst Du jedes Servo direkt mit dem Arduino ansteuern. Rot an +5V, braun an GND und gelb an einen Arduino-Pin.

    Login or register to post comments

  1. Jan II sagt:

    Hab mir jetzt ein Servo geholt, es funktioniert super! Mal schauen, ob ich es auch "gehackt" kriege, wie beim Todbot Blog beschrieben (um daraus einen CRG=Continuous Rotation Gearmotor zu machen).

    Bei Elektromotoren brauche ich MOSFETs?

    Login or register to post comments

  1. Jan II sagt:

    Ich bin gerade dabei, dieses "Braitenberg'sche Vehikel" von Tinkerlog nachzubauen. Bis jetzt läuft alles super, ein einziges, dennoch erhebliches Problem hat sich trotzdem aufgetan: Die Räder. So blöd sich das auch anhören mag, aber daran scheint es vorerst tatsächlich zu scheitern... weiß jemand eine kostengünstige Bezugsquelle für Räder, die auf Standardservos passen? Ich habe hier nur eine Kiste mit Rädern aus einem alten Fischertechnik-Kasten herumliegen, aber die passen um wenige Millimeter nicht... - es wäre jedenfalls schön, wenn jemand helfen kann.

    Gruß,

    Jan II

    Login or register to post comments

  1. Jan sagt:

    einfach selber aussäger mit stichsäge oder ähnliches? du könntest dir sogar selber eine mini drehmachine nachbauen, indem du die form grob aussägst und dann in einer bohrmachine einspannst und exakt rund drehst, z.b. mit sehr grobem sandpapier. als halterung würde ich einfach eine servohorn aufkleben. entweder permanent mit epoxy oder mit starken, doppelklebenden teppichband.

    Login or register to post comments

  1. Jan II sagt:

    Zu sowas bin ich zu faul und unausgestattet :-). Aber trotzdem danke. Ich hab mir jetzt die Servoräder von Solarbotics bei Watterott bestellt.

    Login or register to post comments

  1. Jan II sagt:

    Mein Braitenberg'sches Vehikel ist fertig (juhu)! So sieht's aus:

     Arduino-betriebener Lichtsucher nach Tinkerlog.comBraitenberg-Vehikel: Arduino-betriebener Lichtsucher nach Tinkerlog.com

    Login or register to post comments

  1. Jan sagt:

    da bekommt der Ausdruck "Rollbrett" ne ganz neue bedeutung :)

    Login or register to post comments

  1. Jan II sagt:

    Stimmt :-)! Mein nächstes Projekt auf Grundlage meines Roboboards wird ein Linienfolger sein. Das verwirkliche ich nach dem Prinzip mit 2 LDRs + einer LED (Reflexionshelligkeit wird gemessen; s. oben):

    if LDR1Wert - LDR2Wert ungleich O; entgegenSteuern();

    Ganz einfach :-) (wird wahrscheinlich etwas komplizierter, aber Spaß ist schon mal garantiert).

    Lieben Gruß,

    Jan II

    Login or register to post comments

  1. Jan II sagt:

    Ich habe das Servo-Hacking Tutorial vom Todbot Blog jetzt übernommen und eine Art deutsche Version ins Tutorial-Archiv gepostet (siehe http://freeduino.de/de/books/servos-f%C3%BCr-durchlauf-umbauen).

    Login or register to post comments

  1. spirou sagt:

    Moin,
    auch Ich baue seit einigen Wochen an meinem Arduino basierten Roboter.
    Unter http://web.me.com/carstenm/INF habe ich ein "Werkstattbuch" angelegt um die Fortschritte und Rückschläge zu dokumentieren.

    Z.Zt benutze ich noch eine Plattform von http://www.robotshop.ca/robotshop-rover-arduino-tank-kit-6.html aber Ich habe auch schon mit der Bauweise die beim http://oomlout.com/serb.html benutzt wird experimentiert.

    - Spirou

    Login or register to post comments

  1. Jan II sagt:

    Cooles Projekt, was du da am Laufen hast!

    So ähnlich wie der SERB ist mein Teil ja auch.

    Dieses Rover-Case, ist das nicht ein Bisschen zu teuer (vergl. auch RP5-Gestell; erhältlich z. B. bei Conrad für 40 EUR; scheint immer so teuer zu sein...)? Oder ist dieses Rover-Case besonders praktisch für diesen Zweck mit dem Arduino (steht ja auch extra dran)?

    Login or register to post comments

  1. spirou sagt:

    Jau, danke.

    Das RP5 habe ich mir auch angeschaut aber das kommt mir vor wie ne Batteriebox auf Ketten. Bodenfreiheit 0. Keine Chance da ne Maus anzubauen. Da erschien mir das Ding vom Robotshop besser.

    Inzwischen habe ich die Zeichnungen für eine SERB Variante (tiefer gelegt, zweite Ebene, etc.) fertig und auch die ersten Zuschnitte gemacht. Die Servos werden noch je einen Quadraturencoder bekommen und dann werde ich das RobotShop-Ding einem Freund vermachen.

    - Spirou

    Login or register to post comments

  1. Jan II sagt:

    Aber abgesehen davon, dass das RP5-Case kaum Abstand zum Boden hat; kannst du dir vorstellen, dass es geeignet ist? Ich überlege nämlich, ob ich mir das kaufen soll - oder eher das Teil vom Robotshop?

    Quadraturencoder? Sorry, aber ich bin noch nicht einmal in den Roboter-Basics drin (ein Tipp für ein Buch oder so, du scheinst dich ja auszukennen?)... - apropos: Was gibt's eigentlich so für Möglichkeiten, eine Linienfolge umzusetzen (siehe auch Grafik ganz oben hier)? Ich glaube, der 3Pi von Pololu.com fährt elektromagnetisches (?) Klebeband ab; und geht sowas auch mit einem Farbsensor (entschuldige meine eventuelle Doofheit, aber wie gesagt: Ich habe auf dem Gebiet noch nicht sonderlich viel Ahnung...)?

    Lieben Gruß,

    Jan II

    Login or register to post comments

  1. spirou sagt:

    Hi Jan,
    ich kann mir schon vorstellen, das man mit dem RP5 was nettes bauen kann.

    Quadraturencoder - wird zur Messung der Drehrichtung und der Drehzahl benutzt.
    Output sind 2 Signale, die Frequenz des Signals ist ein Maß für die Geschwindigkeit, die Richtung ergibt sich durch die Phasenverschiebung zwischen den beiden Signalen. Wird bei mechanischen Mäusen und Scrollrädern eingesetzt.

    Ich habe unter http://www.xar.it/quadrature_encoder_inside_a_servo.htm eine schöne Anleitung (englisch) gefunden und bin dabei etwas ähnliches für meinen ServoBot zu bauen.

    Der 3Pi arbeitet bei der Linienverfolgung optisch. Er benutzt 5 Reflexlichschranken jedenfalls sagt das der Schaltplan.

    Die 5 Sensoren schauen nach unten und sehen zB.(vereinfacht auf 1 Bit)
    1 = Linie
    0 = Untergrund
    [0 0 1 0 0] - Alles bestens
    [0 1 0 0 0] - Linie halb Links,
    [1 0 0 0 0] - Linie stark Links
    Entsprechend des erkannten Musters kann das Programm dann gegensteuern und die Linie in der Mitte unter den Sensoren halten.

    Im Prinzip geht es immer darum, einen Sprung im Signal zu erkennen (Hell->Dunkel oder Rot->Grün) und diesem Sprung eine Richtung (Links oder Rechts) zu zuordnen. Ob man dabei einen Sensor bewegt oder sich mehrerer Sensoren bedient, wie der 3Pi, ist eigentlich nebensächlich.
    Mehrere Sensoren machen es einem aber deutlich einfacher. Die Richtung ist dann direkt durch den Sensor bestimmt, der das Signal erfasst hat.

    Auch mit anderen Sensoren kann man diese Art der Messung durchführen. Ob man nun einem Stromdurchflossenen Leiter mit einem Magnetfeld-Sensor folgt, oder mit einem Farbsensor einer farbigen Linie ist nur von den Gegebenheiten abhängig und wie viel Aufwand man betreiben möchte.

    - Spirou

    Login or register to post comments

  1. Jan II sagt:

    Vielen Dank für die ausführliche Antwort!

    Login or register to post comments

  1. Jan II sagt:

    Mal wieder eine Frage, ich dachte mir: Ich poste das mal hier, ist vielleicht am Passendsten. Und zwar will ich jetzt mal versuchen, DC-Motoren an Stelle der Servos einzusetzen. Nur, um mal zu sehen, wie das mit dem Arduino zu laufen hat.

    Welchen Treiber-IC soll ich mir jetzt holen? Bei Watterott gibt's L293D und L293N, welcher ist geeigneter? Und mit welchem kann man zwei DC-Motoren gleichzeitig bedienen? Oder ist SN754410 besser? Wäre super, wenn mir da jemand weiterhelfen könnte.

    Dann noch etwas, wo wir gerade bei DC-Motoren sind: Kriegt man es hin, den DC-Motor so schnell laufen zu lassen, dass er als Ventilator dienen kann? Ich will nämlich einen temperaturabhängigen Automatik-Mini-Ventilator bauen.

    Login or register to post comments

Seite 1 von 2nächste>>