Benutzer-Werkzeuge

Webseiten-Werkzeuge


Seitenleiste

projektesose22:farbsortiererpublic:start

Projektdokumentation

Benjamin, Benjamin, Maren Abb. 1: Farbsortierer

Einleitung

Was soll der Farbsortierer können?

Unsere Idee war es einen Roboter zu konstruieren, der verschiedenfarbige würfelförmige Objekte auf einem Tisch selbständig findet, deren Farbe erkennt, sie dann einsammelt und mit Hilfe von Leitlinien an den mit der entsprechenden Farbe markierten Orten ablegt. Dabei sollte er die Objekte und den Rand des Tisches erkennen und auf der Tischplatte herumfahren, ohne dabei vom Tisch zu stürzen. Ein ähnlicher Roboter ist zum Beispiel im Projekt wall-e verwirklicht worden. Bei dem Design unseres Roboters haben wir uns am cat-3000 aus dem Wintersemester 2019 orientiert.

Diese Anforderungen haben wir im Verlauf angepasst. Das Finden, Erkennen und Einsammeln von Objekten war weiterhin das Ziel. Das Sortieren mit Leitlinien hätten wir jedoch zeitlich nicht mehr geschafft. Um trotzdem zu zeigen, dass der Roboter die Farbe richtig erkannt hat, arbeiten wir jetzt mit verschiedenen Tönen.

Ablauf

Der Farbsortierer sucht ein einziges Objekt, umschließt dieses mit dem Aufnahmemechanismus, bestimmt die Farbe des Objekts und gibt den passenden Ton aus. Abb. 2: Ablaufschema

Einschub: Objekt

Objekte dieser Art kann der Farbsortierer gut bewegen. Er kann die Farben rosa, dunkelblau und schwarz unterscheiden. Abb. 3: Objekt mit Maßen

Methoden/Umsetzung

Überblick über das Gesamtsystem: Abb. 4: Skizze Farbsortierer

Der Roboter besteht aus einer quadratischen Grundplatte (15cm) und einer zweiten quadratischen Abdeckplatte. Dazwischen sind im vorderen Bereich zwei Schrittmotoren mit Rädern angebracht. Im hinteren Bereich wird der Roboter durch ein Styroporstück gestützt. Über dem Styroporstück auf der Grundplatte befindet sich der Arduino und die Verkabelung. Die Stromversorgung befindet sich auf der Abdeckplatte über dem Arduino. Vorne hat der Roboter einen V-förmigen Aufsatz. Jeweils in der Mitte der nach vorne abgehenden Aufsätze sind Servos mit abwinkelbaren Holzstückchen angebracht. Dies bildet einen Greifmechanismus für das Objekt. Zudem ist zwischen den Aufsätzen der Farbsensor angebracht und darüber auf der Abdeckplatte ein Ultraschallsensor um das Objekt zu erkennen. Außerdem ist am Ende der Aufsätze jeweils ein Ultraschallsensor angebracht mit dessen Daten ein Herunterfallen verhindert werden soll.

Die einzelnen Baugruppen unseres Roboters:

Fahrgestell mit Schrittmotoren

Abb. 5: Schaltplan Schrittmotoren mit Treiber pololu A4988 Abb. 6: Schrittmotoren mit Rädern auf Platte


Ultraschallsensoren

Abb. 7: Schaltplan Ultraschallsensoren

Zwei der drei Ultraschallsensoren sind jeweils rechts und links ganz vorne an den Aufsätzen. Sie sind bei einer Vorwärtsbewegung des Roboters somit das Erste, was über die Tischkante hängt. Sie messen in regelmäßigen Zeitabständen den Abstand nach unten. Wird dieser Abstand größer als der festgelegte Wert von 5cm (weil der Tisch nicht mehr da ist) reagiert der Roboter entsprechend. Das heißt ist der Tisch auf der rechten Seite nicht mehr zu messen dreht sich der Roboter nach links und umgekehrt im anderen Fall.

Der vordere Ultraschallsensor misst in regelmäßigen Zeitabständen den Abstand zum nächsten Objekt nach vorne. Handelt es sich dabei um einen Abstand kleiner als 2cm, hat der Roboter das Objekt gefunden. Er sammelt es dann ein.


Servos

Abb. 8: Schaltplan Servos Abb. 9: Servos am Roboter

Zum Aufnehmen des gefundenen Objekts hat der Roboter zwei Servos, die zwei Holzstücke bewegen. Die Servos sind in dem Zustand, wo noch kein Objekt gefunden wurde auf 0° bzw. 180° eingestellt. Sobald ein Objekt gefunden wurde werden sie beide auf 80° gestellt. Die Holzstücke bilden mit den Aufsätzen des Roboters dadurch eine Raute in der das Objekt transportiert wird.


Farbsensor

Abb. 10: Schaltplan Farbsensor

Farbsensoren geben vier Werte zurück. Einen R-, einen G-, einen B-Wert und einen gesamten Wert. Damit Farbsensoren die richtigen Farben ausgeben müssen sie kalibriert werden. Dazu bestimmt man die maximalen Werte (bei weißen Flächen) und die minimalen Werte (bei schwarzen Flächen), die der Sensor für jeden der vier Werte ausgibt. Dadurch kann man gemessene Werte auf den Bereich von 0 (weiße Flächen) bis 255 (schwarze Flächen) projizieren. So erhält man bei jeder Messung einen R-, einen G-, einen B-Wert und einen gesamten Wert im Bereich von 0 bis 255 und hat somit RGB-Farbcodes.

Um zu entscheiden welche Farben besonders gut unterscheidbar sind, haben wir Messwerte von verschieden farbigen Papieren bestimmt und uns dann für drei Farben entschieden, die in ihren Messwerten besonders weit auseinanderlagen: rosa, dunkelblau und schwarz.

Damit die Messungen des Farbsensors besonders genau sind nehmen wir für die Bestimmung immer den Mittelwert von drei Farbsensormessungen.


Piezo-Summer

Abb. 11: Schaltplan Piezo-Summer

Der Piezo-Summer gibt entsprechend der Farbe einen bestimmten Ton/eine bestimmte Tonsequenz aus.

schwarz blau rosa
Frequenz sinkt von 1000 auf 200 Frequenz von 500 Frequenz von 700

——-

Pinbelegung

Arduino-Pin Funktion
A0 Stepper rechts
A1 Stepper rechts
A2 Stepper links
A3 Stepper links
A5 Piezo-Summer
2 Ultraschallsensor vorne Trigger-Pin
3 Ultraschallsensor vorne Echo-Pin
5 Servomotor 1
6 Servomotor 2
7 Farbsensor S2
8 Farbsensor S3
9 Farbsensor OUT
10 Ultraschallsensor links/rechts Trigger-Pin
11 Ultraschallsensor rechts Echo-Pin
12 Ultraschallsensor links Echo-Pin

Diskussion

Wie anfangs schon erwähnt, mussten wir unsere Anforderungen im Verlauf der Arbeit am Roboter anpassen. Unsere Pläne waren von Anfang an relativ ambitioniert, wir hatten dann nur relativ große Probleme mit den Schrittmotoren, wodurch sich unser Zeitplan ein bisschen verschoben hat. Dadurch haben wir letztlich darauf verzichtet unsere Pläne mit dem Ablegen der Objekte an Orten, die durch Leitlinien gefunden werden zu verwirklichen. Damit man trotzdem erkennen kann, dass der Farbsensor die richtige Farbe bestimmt hat, haben wir uns dafür entschieden dies mit verschiedenen Tönen kenntlich zu machen.

Wir wissen leider immer noch nicht so richtig was eigentlich das Problem mit den Schrittmotoren war. Am Ende haben wir sie einfach durch andere ersetzt.

Ausblick

Zukünftig könnte man an dem Roboter auf jeden Fall unseren ursprünglichen Plan mit den Leitlinien umsetzen, sodass der Roboter die Boxen nicht nur findet und einsammelt, sondern auch an einen Ort bringt. Hier gäbe es sicher auch andere Umsetzungsmöglichkeiten.

Es wäre auch möglich weiter an einer anderen Idee von uns zu arbeiten, bei der es darum geht, dass der Roboter sich seine Position auf der Tischplatte merkt, um nach Ausführen des Programmes wieder an seine Startposition zurückzukehren. Man würde dazu vermutlich mit x- und y-Koordinate zur Positionsangabe und einem Winkel zur Richtungsangabe arbeiten. Das könnte ein bisschen ungenau werden, wenn die Schrittmotoren Schritte auslassen oder Ähnliches, aber bei einigen Versuchen damit haben die Winkel halbwegs gestimmt. Ein bisschen Code dazu haben wir auch schon geschrieben.

Ansonsten gibt es am Roboter selbst noch einige Möglichkeiten, diesen ein wenig schöner gestalten, indem man zum Beispiel die bisher nur gesteckte Schaltung lötet oder die nur durch Klebeband gehaltenen Elemente anders befestigt.

Code

projektesose22/farbsortiererpublic/start.txt · Zuletzt geändert: 2022/08/29 21:44 von d.golovko