Tonni die Roboter-Mülltonne

Für eine Werbeaktion brauchte ein guter Freund eine fahrende Mülltone. Diese sollte per Fernsteuerung in einem Baumarkt herum rollen und auf die Recycling-Abteilung der gleichen Firma Werbung machen.

Bild "Müllrobi_Titel.jpg"

Allerdings haben wir beschlossen, das Projekt noch etwas zu erweitern:
Die Mülltonne soll nun autark die Gegend erkunden, ohne dabei Leute umzufahren oder mit Baumarktregalen zu kollidieren.
Hierzu soll sie sich mithilfe von Ultraschallsensoren orientieren. Zur Erkennung von Menschen (die dann angequatscht werden können) werden wir PIR Sensoren verwenden.

Prototyp

Damit wir leicht an die Elektronik herankommen, die am Boden der Tonne sitzen soll, haben wir erst mal eine Mülltonne auf 25cm gekürzt. So wird das ganze Teil auch etwas handlicher.

Bild "Müllrobi_Sägen.jpg"

Den Boden haben wir herausgenommen und durch eine solide Multiplex-Sperrholzplatte ersetzt, die eine Basis für den Antrieb bildet. Beim Hobeln der Kanten ist eine solide und fachmännische Arbeitsplattform sehr wichtig  :)

Bild "Müllrobi_Bodenplatte.jpg"

Das Fahrgestell

Die Mülltonne soll robust und schwer werden, damit sie nicht einfach umfallen kann. Die Fahrgeschwindigkeit muss so langsam sein, dass auch bei Fehlfunktion niemand verletzt wird.
Wir haben uns für Antriebe aus dem Sortiment von Pollin entschieden.
Als Antrieb dient ein 24V Motor mit Getriebe, der aber schon bei 12V Betriebspannung ausreichend Drehmoment liefert und ca. 25 U/min macht.

Bild "Müllrobi_Bodenraus.jpg"

Bild "Müllrobi_Antrieb.jpg"

Die Lenkung erfolgt über einen Spindelmotor, dessen Mutter über einen Hebel den Antriebsmotor dreht. Der Drehpunkt liegt genau über dem Rad, so dass es auch im Stand gedreht werden kann.

Bild "Müllrobi_Lenkung.jpg"

Das Rad mussten wir seines Kugellagers berauben und auf eine Radnabe umrüsten, die fest auf der Antriebsachse verschraubt ist.
  
Bild "Müllrobi_Rad.jpg"

Bild "Müllrobi_Rad1.JPG"

Die neue Radnabe haben wir aus Aluminium gedreht und mit einem Bund versehen, der mit dem Rad fest verschraubt ist. Der verwendete Motor hat eine verzahnte Welle, auf die dieses Aluteil durch eine Verschraubung aufgepresst wird. Das überträgt die Antriebskraft spielend, dreht aber durch, wenn die Tonne gewaltsam geschoben wird.

Bild "Müllrobi_Rad2.JPG"

Damit sich das Antriebsrad genau auf seiner Mitte drehen lässt, muss es - zusammen mit dem Antriebsmotor auf einem Drehteller gelagert sein. Hierzu haben wir ein Drehbares Rad, wie man es von Einkaufswagen kennt - verwendet. Das Rad haben wir entfernt und lediglich den Drehteller verwendet. Das Bild zeigt den Aufbau. Wo vorher das Rad saß, ist jetzt die Holzkonstruktion, die den Mechanismus hält.

Bild "Müllrobi_Antrieb1.JPG"  

Die Fahrelektronik


Um das Ganze so einfach und zuverlässig wie möglich zu machen, wird alles von einem Arduino gesteuert. Natürlich kann dieser nicht direkt den Fahrmotor und den kräftigen Spindelmotor für die Lenkung treiben. Dafür verwenden wir L298 H-Brücken ICs,
Ähnlich wie bei einem Modellbauservo wird die Stellung der Lenkung durch ein Potentiometer ermittelt. Die Spannung am Schleifer wird von einem analogen Eingangspin des Arduinos gemessen womit die Software eine Regelschleife bildet, die dafür sorgt, dass der Lenkmotor solange in die entsprechende Richtung läuft bis das Antriebsrad in die gewünschte Richtung zeigt.

Links im Bild der Spindelmotor - In der Mitte das lenkbare Antriebsrad mit Motor - Rechts das Linearpoti, dessen Schleifer mit einem Stahldraht an an der Lenkung befestigt ist.

Bild "Müllrobi_Lenkung1.JPG"

Die 5 Sinne von Tonni

Naja eigentlich ist es nur ein Sinn - der Tastsinn per Ultraschall. Wir haben 5 Ultraschall-Module verbaut:
Zwei gucken nach vorne, jeweils eins nach rechts und links und eins nach hinten.
Für jedes dieser Module werden zwei Pins des Arduinos gebraucht. Somit sind bereits 10 IO Pins des Arduinos für diese Aufgabe belegt.

Bild "Müllrobi_Probefahrt.JPG"

Hier macht der Prototyp eine kurze Probefahrt in der Werkstatt. Man kann erkennen, dass es beim Prototyp nur einen Sensor nach vorne gibt. Damit hat er allerdings nicht alle frontalen Hindernisse erkannt, weshalb wir uns für einen weiteren Sensor für die finale Version der Tonne entschieden haben,
In der endgültigen Version von Tonni wird es eine Platine geben, die den Mikrocontroller und die Motorsteuer-ICs integriert. Hier ist alles auf einzelnen Platinen aufgebaut, was noch etwas gebastelt aussieht.

Augen, Mund und Sounds

Tonni soll einen lebendigen Eindruck machen. Also muss er beweglich Augen haben und den Mund öffnen können. Geräusche sind schon deshalb wichtig, weil Tonni fast lautlos fährt und so sehr leicht übersehen werden kann. Wir haben uns für ein MP3 Modul mit integriertem Verstärker von Pollin entschieden um die Geräuschkulisse zu erzeugen.

Sound


Bild "Müllrobi_Soundmodul.jpg"
Das Soundmodul speichert die verschiedenen Geräusche als MP3 Dateien auf eine SD Karte. Über eine IR-Fernsteuerung kann man die einzelnen Dateien abspielen. Diese sind dabei alphabetisch geordnet, so dass sich sich entsprechend ihrer Reihenfolge mit den Tasten 1 bis 9 auf der Fernsteuerung aufrufen lassen.
Der Arduino soll entscheiden können, welcher Sound gespielt werden soll - z.B. einen beim Hochfahren, einen anderen bei der Vorwärtsfahrt und wieder einen anderen beim Rückwährtsfahren.

Bild "Müllrobi_Soundhack.JPG"
Das erreichen wir durch einen digitalen IO Pin, der das Fernsteuersignal imitiert. Wir haben es mit einem Bitscope für jeder der Tasten aufgezeichnet und als Konstante in der Arduino SW gespeichert. Siehe Softwarekapitel.

Bild "Müllrobi_Soundhack-Bitscope.JPG"

Bild "Müllrobi_Soundcode.png"
Alle Tasten der Fernsteuerung werden durch diese Pulsfolge dargestellt. Nach einer Präambel, die immer gleich ist, kommen 16 bit und danach ein immer gleiches Stoppbit.

Mit dem Arduino lassen sich die beiden Bits dann so darstellen. Welches Symbol man dann "0" und welches "1" nennt ist egal.

Bild "Müllrobi_SoundCodes.png"

Augen

Bild "Müllrobi_Auge1.jpg"

Damit Tonni etwas menschlicher wird muss er bewegliche Augen haben. Diese bestehen aus zwei ineinander liegenden Plastik-Christbaumkugen. Diese kann man im Bastelbedarf kaufen. Da sie aus zwei getrennten Halbschalen bestehen, kann man sie leicht ineinander anordnen.
Die innere haben wir weiß gespritzt und mit einer Pupille versehen. Sie sitzt auf einem Modellbauservo. Die äußere Kugel haben wir blau lackiert und dabei den Bereich, in dem man die Pupille sehen soll, freigelassen. Dass ließ sich durch Abkleben mit flexiblem Malerklebeband bewerkstelligen.

Modellbauservos werden mittels einem Signal gesteuert, bei dem alle 20ms ein Puls der Länge 0,9ms bis 2.1ms gesendet wird. Die Servostellung ist dabei proportional zur Pulsbreite. Für den Arduino gibt es bereits eine fertige Bibliothek dafür.

Bild "Müllrobi_Auge2.jpg"

Mund


Der Mund (also der Deckel der Mülltonne) wird auch mit einem Servo geöffnet.
Damit das Servo nicht überlastet wird, wenn jemand gewaltsam auf den Deckel drückt, besteht die Schubstange aus einem Teleskopmechanismus mit einer Feder.

Bild "Müllrobi_Grillgabel1.JPG"

Bild "Müllrobi_Grillgabel2.JPG"

Diesen Mechanismus haben wir aus einer Grillgabel, einer Feder und einem passenden Alurohr gebastelt - gut wenn man solche Sachen nicht wegwirft...

Das Bild unten zeigt den ganzen Aufbau im Prototypenstadium. Die weiße Platte mit dem Hebemechanismus für den Deckel und dem Soundmodul wird beim fertigen Tonni direkt unter dem Deckel montiert.

Bild "Müllrobi_Prototyp_mit_Deckel.jpg"

Der fertige Tonni


Bild "Müllrobi_TonniSeite.jpg"

Rechts und links haben wir Lautsprecher eingebaut, da unser Soundmodul beide Stereokanäle bereitstellt. Sowohl die Lautsprecher als auch das Grunddesign der Lautsprecherdeckel konnten wir aus dem Projekt muTube wiederverwenden.

Bild "Müllrobi_Kopfplatte.JPG"
Hier ist die Unterseite der Abdeckplatte zu sehen. Sie beherbergt das Soundmodul, das Hebeservo und die Stromversorgung für die Servos.

Bild "Müllrobi_Gesicht.jpg"

Die Software


Da es nur darauf ankommt, dass die Tonne umher fährt und Hindernissen ausweicht, reichte es aus, rundherum Ultraschallsensoren anzubringen, die vom Arduino ausgewertet werden.

Bild "Müllrobi-Programmierung.JPG"

Nach einem Sonntagnachmittag des Probierens auf der Terrasse, kommen schon ganz sinnvolle Bewegungsabläufe zustande. Bemerkenswerterweise wurde der Sourcode dabei eher einfacher als komplizierter.

Da wir die Software mit Sicherheit weiterentwickeln werden, gibt es hier den Link auf Github, wo die jeweils neueste Version zu finden ist:  
https://github.com/surasto/Tonni