Raspberry Pi Robot 2

Die zweite Version des RaspPiBot habe ich von Grund auf in der CAD Software Solid Edge entworfen und geplant. Dahinter stand einerseits der Wunsch sich mit dieser Software auseinanderzusetzen und andererseits die Absicht einer platzeffizienten  und durchdachten Konstruktion.

Fahrgestell

Angefangen habe ich mit der Planung des Fahrgestells. Dabei verwende ich hauptsächlich Aluminium, weil es stabil ist, sich relativ leicht verarbeiten lässt und hochwertig aussieht. Komplizierte Teile kann man sich außerdem mit Laser schneiden lassen. Ich denke das werde ich zumindest für die Grundplatte des Fahrgestells in Anspruch nehmen, da sie sehr viele verschiedene Ausschnitte haben wird.

Die Räder habe ich diesmal fertig gekauft, sie sind relativ breit und haben daher hoffentlich gute Haftung auch auf glattem Boden.

Als Antrieb habe ich zwei Gleichstrom-Getriebemotoren genommen, die durch die Untersetzung genügend Kraft für die größeren Räder haben. Gestützt wird der Roboter hinten von einer Möbelrolle.

Sensorik

– Ultraschall-Entfernungssensor –

panning mechanismAls Ultraschallabstandssensoren kommen die allseits bekannten HC-SR04 Module zum Einsatz. Damit ich mit einem solchen Sensor ein möglichst großen Bereich abdecken kann ohne den Roboter drehen zu müssen, habe ich mir überlegt einen Schwenkmechanismus zu bauen. Das naheliegendste wäre ein Modellbauservo gewesen, allerdings sind die meiner bisherigen Erfahrung nach beim schnellen Stellen doch relativ laut.

panning mechanismMeine Idee war nun deshalb, das mit einem kleinen Gleichstrommotor zu realisieren, da diese einerseits sehr leise sind (oder zumindest sein können) und für diesen Zweck ausreichend kräftig sind. Ein Schneckenzahnrad bringt die nötige Untersetzung, zwei Endkontakte sorgen zusammen mit einer Flip-Flop-Schaltung dafür, dass der Motor immer wieder umgepolt wird.

Nach einigem Testen, stellte sich leider heraus, dass trotz Schmierung der Zahnräder und verminderter Motordrehzahl der Geräuschpegel nicht so gering ist wie erhofft. Eventuell werde ich daher also doch ein Miniatur-Servo verwenden, da ich damit eine bessere Wiederholgenauigkeit des Schwenkwinkels erreichen kann, bei kompakteren Maßen.

Die HC-SR04 Ultraschall-Module haben eine Reichweite von etwa 2 cm bis 400 cm. Zur grundsätzlichen Funktionsweise gibt es ein gutes YouTube-Video, auf das ich hier verweisen möchte.

Eine Distanzmessung wird folgendermaßen durchgeführt. Das Sensormodul hat, neben den beiden Anschlüssen für die Spannungsversorgung und GND, zwei Pins: Trigger und Echo. Eine Messung wird durch einen high-Puls mit einer Länge von mindestens 10µS gestartet. Das Modul reagiert auf die fallende Flanke. Daraufhin wird ein Ultraschallsignal ausgesendet und der Echo-Pin geht auf high-Pegel. Sobald das Echo des Signals empfangen wurde, geht der Echo-Pin wieder auf low-Pegel. Durch die Länge des high-Pulses am Echo-Pin und die Schallgeschwindigkeit in der Luft lässt sich nun die Distanz berechnen.

Die Schallgeschwindigkeit in der Luft lässt sich mit folgender Näherungsformel berechnen (Quelle: Wikipedia):

c_{Luft} \approx (331,5 + 0,6 \cdot \theta / ^\circ C) \frac{m}{s}

wobei \theta die Lufttemperatur in Grad Celsius ist.

– Odometrie –

Für die Odometrie-Sensoren spiele ich derzeit noch mit dem Gedanken die Sensoren von optischen Mäusen zu verwenden. Einerseits um die Bewegung des Roboters über dem Boden zu vermessen, andererseits vielleicht zusätzlich auch die Umdrehung der Räder, so dass man aus der Differenz Rückschlüsse auf den Schlupf der Räder ziehen kann. Damit ließe sich dann z.B. ein Festhängen des Roboters erkennen.

Ein Problem bei diesen Sensoren ist die geringe Messdistanz der meisten Sensoren, d.h. die Bodenfreiheit des Roboters wäre zu stark eingeschränkt. Da ich aber auch schon Berichte über Maussensoren im Internet gelesen habe, die über eine Distanz von einigen Zentimetern gearbeitet haben, bin ich noch dabei passende Modelle zu suchen.

Die Maussensoren könnten elektrisch unangetastet bleiben und per USB an den Raspberry Pi angeschlossen werden oder per Mikrocontroller ausgelesen werden, was das Auslesen des Sensorbildes ermöglichen würde (vielleicht zur Kalibrierung oder zur optimalen Positionierung der Lichtquelle hilfreich).

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht.

Bitte beantworte kurz folgende Frage, um zu zeigen, dass du kein Roboter bist: *