Benutzer-Werkzeuge

Webseiten-Werkzeuge


Seitenleiste

projektesose22:hamsterpublic:start

Roll-E aka. Projekt Hamsterball

Einleitung

Ein Roboter, der wie ein Hamster in einem Ball herumfährt. Das war unsere grundlegende Idee. Wir ließen uns dabei inspirieren von dem BB8 Droiden aus Star Wars und seiner Umsetzung als Sphero-Spielzeug. https://sphero.com/pages/legacy-products

Er sollte aber auch einen gewissen Sinn haben, also fiel uns ein, man könnte ihn doch einfach Würfeln lassen! So haben wir uns überlegt, wir wollen einen Roboter, welcher durch ein kabelloses Signal zum Würfeln aufgefordert werden kann und dann so in der Sphäre herumfährt, dass eine bestimmte Zahl angezeigt wird.

Mehr zu unseren anfänglichen Idee erfährt man in unserer Seite zur Projektplanung

Überblick über das Gesamtsystem

Baugruppen (nach EVA-Prinzip):

Eingabe: Der RFID-Empfänger ermittelt den Code des überfahrenden RFID-Chips und sendet ihn an den Arduino. Das Bluetooth-Modul empfängt (vom Android-Handy) eine Zahl, die gewürfelt werden soll; bzw. das Signal für einen zufälligen Wurf und übergibt diese Daten auch an den Arduino.

Verarbeitung: Der Arduino Nano verarbeitet diese empfangenen Daten und ermittelt daraufhin die Wegstrecke. Der Arduino sendet dann Befehle zur Fortbewegung an die Motoren-Treiber. Der Nano sendet auch, wenn der Roboter richtig steht, die Information, dass der Wurf beendet ist an das Bluetooth-Modul.

Ausgabe: Die Motoren-Treiber schalten die Versorgungsspannung für die Steppermotoren auf Grundlage der empfangenen Signale. Der Rotor der Schrittmotoren dreht sich, je nach Spannungsversorgung, links oder rechts herum. (dadurch kann der Roboter sich vor und zurück bewegen und sich auf der Stelle drehen). Das Bluetooth-Modul sendet das Signal, dass der Wurf beendet ist an das Handy. Wenn der Roboter fertig gewürfelt hat, steht auf dem Bildschirm: „Party!“.

Abbildung 1: Ansicht von oben
Abbildung 2: Frontansicht
Abbildung 3: Heckansicht
Abbildung 4: Roboter in Kugel

Einzelne Abschnitte zur Beschreibung von Details der einzelnen Systembestandteile

Konstruktion:

Abbildung 5: Gehäuse 3D-Design

Wir haben uns bei der Konstruktion für ein 3D-gedrucktes Gehäuse entschieden, da wir viele Bauteile auf engstem Raum unterbringen wollten. Die Position der beiden Schrittmotoren (links und rechts) haben wir als Basis genommen. Darunter sollte sich der Akku befinden, damit der Schwerpunkt möglichst weit unten liegt. Dadurch konnten auch Stützräder/ -rollen zur Abstützung nach oben wegfallen. Es eignete sich am besten, den RFID-Empfänger unter dem Akku - an der Unterseite des Roboters - zu befestigen, damit ein möglichst kleiner Abstand zur Kugel und den RFID-Chips besteht. Oben, über den Schrittmotoren, hat es sich angeboten ein (zugeschnittenes) Steckbrett zu befestigen. Auf diesem Steckbrett befinden sich der Arduino Nano, das Bluetooth-Modul, der Stecker des RFID-Moduls und die beiden Treiber für die Motoren. Zwischen den beiden Motoren befindet sich eine Kabeldurchführung. Oben an der Vorderseite des Roboters sind zwei Schienen mit Versorgungsspannung befestigt (UNenn1 = 5V; UNenn2 = 11,1V). Der Akku-Wächter ist auch vorne am Roboter befestigt.




Abbildung 6: Antriebsrad 3D-Design




Nach dem Designen des Gehäuses haben wir beschlossen auch die Räder zu drucken, damit der Abstand des Zwischen RFID-Chip und -Empfänger stimmt. Dieser beträgt (mittig) 15mm. Die Räder sind mit einer Rille in der Lauffläche versehen, da dort ein Gummidichtband eingesetzt wird für bessere Haftung in der Kugel.





Navigation:

Die Navigation des Roboters basiert auf drei Variablen. Diese symbolisieren zwei Ringe in der Sphäre, sogenannte Äquatoren. Es gibt es 5 Werte die man auf einem Äquator haben kann, Postionen 1-4 oder die 0, die bedeutet dass der Roboter sich gerade nicht auf diesem Äquator befindet. Dazu gibt es auch noch eine Variable die speichert auf welchem Äquator der Roboter sich gerade befindet. Je nachdem welche Zahl dann gewürfelt wird kann abgeglichen, ob sie sich nun auf dem Äquator befindet worauf der Roboter gerade ausgerichtet ist. Wenn ja kann der dann ganz einfach geradeaus fahren und erreicht die erforderte Zahl. Aber wenn er sich auf dem falschen Äquator befindet wird er dann aufgefordert zu einem Pol zu fahren und sich zu drehen, um sich so auf den gewünschten Äquator auszurichten.

Bedienweise:

Für die Bedienung haben wir uns für eine Open Source Bluetooth-Kommunikations-App entschieden und dort spezielle Buttons erstellt, die spezifische Zahlenwerte in HEX-Code an den Roboter senden. 1-6 fordert den Roboter auf zur jeweiligen Zahl zu fahren. Schickt die App ein 7 heißt das: Würfel jetzt! Und eine 8 funktioniert als Not-Aus und stoppt den Roboter in seiner Bewegung.

Abbildung 8: Screenshot des App-Interfaces

Technische Daten, Bauteile, Pins, etc.

Bauteil Anzahl
Arduino Nano 1
Schrittmotor 2
Motor-Treiber (DRV8825) 2
Akku (11,1V) 1
RFID-Empfänger (RC522) 1
RFID-Chip zum Kleben 6
Bluetooth-Modul (HC-05) 1
Android-Handy 1
Gehäuse 3D-Druck 1
Antriebsrad 3D-Druck 2
Plastikkugelhälfte ø=20cm 2
Elektrische und andere Kleinteile -
Pin (Arduino) Bauteil
D2 serielle Kommunikation mit HC05 (TXD)
D3 serielle Kommunikation mit HC05 (RXD)
D4 Motor-Treiber (links) Richtung (DIR)
D5 Motor-Treiber (links) Bewegung (STP)
D6 Motor-Treiber (rechts) Richtung (DIR)
D7 Motor-Treiber (rechts) Bewegung (STP)
D8 -
D9 RFID (RST)
D10 RFID (NSS)
D11 RFID (MOSI)
D12 RFID (MISO)
D13 RFID (SCK)
Abbildung 9: Schalt-Schema

Ergebnis und Diskussion

Alles in allem sind wir sehr zufrieden was aus dem Roboter geworden ist. Er ist zwar sehr simpel in seiner Funktionsweise, aber er funktioniert und bietet viel Potential.

Es wäre gut würde er noch ein Feedback geben wenn fertig gewürfelt wurde, deswegen wollten wir eigentlich auch noch einen Lautsprecher einbauen, wurden aber leider von dem Arduino Nano limitiert, weil dieser leider nicht mehr genug Pins hatte für die tone()-Funktion. Aber mit einem anderen Microkontroller sollte das kein Problem sein.

Auch gut wäre eine App-freie Version, oder eine Möglichkeit zur freien Bedienung des Roboters.

Anonsten könnte man noch mit mehr Chips die Navigation verbessern oder mehr Features beim Würfeln hinzufügen. Z.B. eine Aufforderung zum Shots-trinken.

Es folgen noch zwei Video-Demonstrationen des Roboters und der finale Code.

Abbildung 10: Einmal “würfeln”
Abbildung 11: “Würfeln” mit Drehung

Code und Rohdaten

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