Elektronik und Roboterbau
AVR, avr-gcc, CAN, CPLD, Elektronik, Mikrocontroller, MSP430, PIC, Roboter, Schaltungen, Sensoren, Software, Testboards
Tags: Roboter
Stand: 2. August 2004, 22:06
bisher keine Kommentare
Das hier war eigentlich mein erster richtiger Roboter. Nachdem ich kurz vor den Sommerferien die Seite roboterwelt.de entdeckt und mein Onkel mir seine M-Unit ausgeliehen hatte saß ich während des Urlaubs die ganze Zeit am Strand und habe geplant und überlegt. Denn mir war klar, dass ich unbedingt auch einen Roboter bauen musste. Und so entstand dann im Rest der Sommerferien mein erster Roboter.
Funktion | Daten |
---|---|
Abmessungen (L/B/H): | 250 x 250 x 150 mm |
Gesamtgewicht: | ca. 500g |
Prosessor: | M-Unit von Conrad |
Sensoren: | 2x GP2D12 + 6x Taster rundherum |
Antrieb: | 2x Solarmotoren |
Geschwindigkeit: | sehr langsam |
Spannungsquelle: | Modellbauakku 7,2 V |
Max. Dauerbetrieb: | sehr lange |
Zuerst sollte das ganze wesentlich kleiner werden und ein Getriebemotorbausatz (Variogetriebe) von Conrad als Antrieb dienen, allerdings als ich das Ding in der Hand hielt und das erste mal angeschlossen hatte, war ich ganz schnell der Ansicht das etwas besseres her müsste. Dieser Getriebemotor ist unglaublich laut und hat überhaupt keine Kraft da ständig die Zahnräder durchdrehen.
Und so machte ich mich wieder auf die Suche nach einem passenden Antrieb. Solar-Motoren schienen mir aufgrund ihres sehr geringen Stromverbrauches geeignet. Diese sind zwar sehr leise, aber leider auch sehr langsam.
Gesteuert wurde der Roboter durch eine M-Unit von Conrad. Diese ist, wie ich finde zum Anfang gut geeignet, da alles schon in einem Modul integriert ist. Die benötigte Versorgungsspannung wurde mit Hilfe eines Festspannungsregler (7805) aus der Akkuspannung gewonnen.
Zum ansteuern der Motoren habe ich folgende Schaltung benutzt :
Das Ganze hat auch sehr gut funktioniert. Allerdings würde ich heute eher zu einem L293D raten, da dort die Beschaltung wesentlich einfacher ist. Man braucht praktisch keine weiteren Bauteile.
Vorne waren zwei GP2D12 Distanzsensoren angebracht. Diese Arbeiten auf Basis von moduliertem Infrarot-Licht und liefern ein von der Entfernung abhängiges Analoges Signal. Das lässt sich dann ganz einfach und ohne großen Aufwand auslesen, wenn man nicht die absolute Entfernung in cm braucht, da das Signal nur annähernd linear ist. Der Analogwert läßt sich zwar auch anhand der Formel:
Entfernung (in cm) = 27 x (Spannung in Volt) ^-1.1
in einen cm - Wert umrechnen. Allerdings ist das wie man sieht nicht ganz einfach. Deshalb benutzte ich auch in meinen Roboter nicht den genauen cm Wert sondern halt die relative Entfernung. Zum einfachen Umher fahren reicht das bei weitem aus.
Eine andere Möglichkeit zur Umrechnung über eine Hyperbelnäherung habe ich auf einer anderen Seite vorgestellt.
Das Programm zur Steuerung war ganz einfach aufgebaut: Der Roboter fuhr solang geradeaus bis der Wert an einem der Distanzsensoren unter einen bestimmten Wert gefallen ist, oder die Bumper eine Kollision gemeldet haben. Dann ist er eine bestimmte Zeit rückwärts gefahren hat sich in die entsprechende Richtung gedreht und ist dann wieder weitergefahren. Trotz der Einfachheit dieses Programms war der Roboter schon in der Lage sich relativ kollisionsfrei zu bewegen. Er hat es auch geschafft durch eine Reihe von Stuhlbeinen hindurch zu fahren.
Obwohl ich noch viele Ports frei hatte und die maximale Programmlänge auch noch nicht ansatzweise erreicht hatte habe ich mich entschieden das Projekt zugunsten eines AVR gesteuerten Roboters zu verwerfen. Zum einen da die AVRs wesentlich leistungsfähiger sind als die M-Unit und zum anderen weil ich fast kein RAM in der M-Unit mehr frei hatte. 24 Byte RAM sind für einen Roboter einfach zu wenig.
Mal davon abgesehen hat es sich eindeutig gelohnt mit der M-Unit in den Roboterbau einzusteigen, da man so sehr schnell zu ersten Erfolgen kommt auch wenn man sich noch nicht so sehr mit der Materie auskennt.
Deine Meinung: