Benutzer-Werkzeuge

Webseiten-Werkzeuge


Seitenleiste

projektewise1718:antobotpublic:start

Projektdokumentation: Ant-O-bot

ein Projekt von Roxana Fetescu, Alwin Wüthrich & Ernestine Müssig

Der Ant-O-bot ist ein insektenartiger Roboter, der sich auf acht Beinen ferngesteuert in vier Richtungen bewegen und kleine Objekte festhalten kann. Noch in Arbeit ist eine eigenständige Navigation zu einem Ziel via Kommunikation mit Processing, bei der eine Karte und Route um Hindernisse für den Roboter erstellt und an diesen übermittelt wird. Dementsprechend gliedert sich das Projekt in seine Bestandteile des Greifers auf dem Rücken des Roboters, der Fernsteuerung über eine fertige Infrarot Fernbedienung, die Beine des Roboters und die Navigation.

Draufsicht
Abbildung 1: Der Blick auf den Greifer und die Beine des Ant-O-Bot von oben

Umsetzung

Überblick

Wir haben uns damit beschäftigt, wie wir einen Roboter ohne ihn per Kabel anzuschließen steuern können (und uns letztendlich aus Zeitgründen für eine Fernbedienung auf Infrarot Basis entschieden), wie wir eine Bewegung des Roboters auf Beinen im Hinblick auf Motoranzahl effizient gestalten und wie wir eine Greif- beziehungsweise Festhaltevorrichtung konstruieren können. Für die letzten Teillösungen haben wir stepper-Motoren vom Typ 28BYJ-48 angesteuert. Weitere verwendete elektronische Bauteile sind die IR-Receiver und ein microswitch, die Elektronik musste wegen der Anzahl der Pins an den Arduino Nanos über 2 Arduinos verteilt werden.

Schaltplan

Pinbelegung
Abbildung 2: Die Anschlüsse der Bauteile an die Pins

Pinbelegungstabelle

Weggelassene Inhalte

  • Kabellose Datenübertragung der eigenständigen Navigation
  • Verfolgung einer Signalquelle
  • Erkennung und eigenständiges Aufheben von Gegenständen mit einer Kamera & Greifarm
  • Verwedung von Soundsignalen

Teillösungen

Die Fernsteuerung

 Vorderansicht
Abbildung 3: Die Vorderseite des Roboters mit den IR Receivern, auch sichtbar: Motor & Spule des Greifers

Bauteile

  • 2 Infrarot Receiver
  • 1 Fernbedienung

Probleme & Fragestellungen

  • Wie kommuniziere ich mit dem Roboter?
  • Wie verschicke ich meine IR-Signale?
  • Wie erkennt der Roboter was ich ihm sagen will?

Funktionsweise

Die codierten Infrarot Signale werden von den Receivern dauerhaft erkannt, allerdings wird nur auf spezifische Signale, die den Knöpfen der Fernbedienung zugeordnet sind, reagiert. Am Arduino können die Signale als integer Werte über die Verwendung von Bibliotheken (den IRLib Bibliotheken https://github.com/cyborg5/IRLib2) dargestellt werden. Falls ein relevantes Signal, wie z.B. das Signal für die Pfeiltaste nach oben, was dem Roboter Signalisieren soll, dass er vorwärts gehen soll, empfangen wird, wird die hinterlegte Anweisung ausgeführt. Für unser Beispiel wäre das eine for-Schleife mit 5000 Steps, in der der rechte Motor immer eine Step gegen Uhrzeigersinn macht und der linke Motor einem Step im Uhrzeigersinn macht. Die 5000 Steps entsprechen dann ca. einem Achtel einer vollen Umdrehung des Motors. Nach der Vollendung der for-Schleife ist der Receiver wieder einsatzbereit und kann das nächste Signal empfangen. Bei gedrückt gehaltener Vorwärts-Taste werden sich beide Motoren fortlaufend in ihre vorgegebene Richtung drehen.

Beinkonstruktion

Beine Seitenansicht
Abbildung 4: Seitenansicht einer der 2 Beinplatten

Bauteile

  • 12 Zahnräder
  • 4 Kegelzahnräder
  • 56 Kugellager
  • 2 28BYJ-48 Steppermotoren und 2 ULN2003 Treibermodule

Probleme & Fragestellungen

  • Wie konstruieren wir Beine, die stark genug sind um den Roboter und eventuelle Lasten zu tragen?
  • Welchen Aufbau der Beine verwenden wir, sodass dieser sich drehen kann?

Funktionsweise

Abbildung 5: Ein Video der Beinbewegung, die flüssige Version ist auf YouTube unter https://www.youtube.com/watch?v=IsOMyh7V1vw&feature=youtu.be verfügbar
 Beingrafik
Abbildung 6: Stilisierte Darstellung mit sichtbaren Achsen
Beine Draufsicht
Abbildung 7: Eine direkte Sicht auf die Zahnräder, an denen die Beine befestigt sind


An den Seiten des Roboters sind 2 Platten mit jeweils vier Beinen befestigt, die separat über 2 Steppermotoren gesteuert werden können. Dabei wird die Drehung eines Motors über die Zahnräder an Achsen, welche in Kugellagern laufen, auf die Beinpaare übertragen - ein Prinzip, das so bereits von elektronischen Spinnen-Spielzeugen verwendet wird. Durch entgegengesetzte Drehrichtungen der beiden Motoren wird der Roboter gedreht (dies haben wir jedoch nicht testen können). Die Motoren werden am Arduino über die Accel-Stepper Libary (https://www.arduinolibraries.info/libraries/accel-stepper) angesteuert, welche u.A. den einfachen

Greifermodul

Bestandteile

  • 1 28BYJ-48 Steppermotor
  • 1 ULN2003 Treibermodul
  • 1 Microswitch

Probleme & Fragestellungen

  • Wie öffnet und schließt sich der Greifer?
  • Welche Sensoren werden dafür gebraucht?
  • Wie erkenne ich, wann ein Objekt aufliegt?

Problemlösung

 Microswitch am Greifer
Abbildung 8: Einen Detailansicht des Greifermoduls

Der Greifer besteht aus zwei Holzplatten, die an zwei Metallstäben befestigt sind. Die eine Holzplatte ist fest am Roboter verschraubt, die andere dagegen beweglich geführt und kann über eine Schnur an einer Spule vom Motor gezogen werden.Zum Schließen kann ein Gummiband beim Loslassen des Motors nach Herunterdrücken des Microswitch, durch das aufliegende Gewicht des Objekts, die Platten wieder zusammen schieben. Der Steppermotor wurde an dieser Stelle über die spezielle „Cheap Stepper“ Library angesteuert (https://github.com/tyhenry/CheapStepper).

Ergebnisse und Diskussion

Endstand des Projektes

Bis zum Beginn des Blockkurses war der Aufbau des Roboters und die Programmierung für eine ferngesteuerte Bewegung fertig. Auch das Greifermodul ist abgeschlossen worden. Leider wurde eine kabellose Übertragung der Daten und ein eigenständiges Auffinden eines Zielsignals aus Zeitmangel während der Präsenzphase jedoch nicht geschafft. Desweiteren fehlt eine Befestigungsplatte für die Beine, da es uns in Handarbeit nicht möglich war diese so zu konstruieren, dass sich die Zahnräder nicht ineinander verklemmen. Deswegen ist dieser Teil des Roboters nicht getestet worden und zum Ende des Semesters als gescheitert zu betrachten.

Entwicklungspotential

Der Roboter könnte genau in den oben gennanten Punkten weiterentwickelt werden, aber auch die verworfenen Konzepte bieten Inspiration: besonders die Verfolgung einer mobilen Signalquelle in einem offenen Raum mit Hindernissen. Desweiteren könnte eine andere Beinkonstruktion etwa mit 3D-gedruckten Beinen für präzise Bewegungen interessant sein (es bietet sich hierbei an, Servomotoren an weniger Beinen zu verwenden und deren Halterungen nach Vorbild bereits bestehender Arduino Projekte zu erstellen [z.B. mit der Webapp Tinkercad für die Erstellung der Modelle]).

Code und Rohdaten

motorbewegung.zip verwendete_bibliotheken.zip

Ein Teil vom Code fehlt.Weil die Navigation unfertig ist und eigentlich einen anderen Aufbau des Roboters voraussetzt, wurden die Verweise dazu entfernt.

projektewise1718/antobotpublic/start.txt · Zuletzt geändert: 2018/05/17 00:43 von d.golovko