Harribot der kleine Wohnungsflitzer

Einen kleinen Roboter zu bauen war immer schon mein Wunsch. Jedoch verhinderten diverse Gründe immer wieder die Verwirklichung. Da waren die Bedenken nicht die entsprechende Mechanik herstellen zu können,  die Herausforderung eine funktionierenden Programmierung, und nicht zuletzt der notwendige Zeitaufwand. 

Ein Reitunfall brachte schließlich nicht nur Einschränkungen, sondern auch jede Menge Zeit. Eine Bestandsaufnahme meines Bauteilelagers förderte alle notwendigen Teile für einen einfachen Roboter zu Tage. Schließlich galt es noch den Überschuss an Demotivation abzubauen, und es konnte los gehen.

Grundsätzliche Überlegungen

Bei fast allen Projekten lege ich die Grundsätzlichen Funktionen  und Rahmenbedingungen fest. Und so sollte mein Roboter aussehen:

  • Zwei Antriebsräder, ein Stützrad
  • Umgebaute Miniservos als Antriebsmotoren
  • in etwa folgende Maße: 120 x 100 x 60
  • wenig Metallteile um Gewicht zu sparen
  • Grundplatine mit Steuerrechner (ATMEGA 32)
  • ISP-Programmierbar (ohne den Chip auszubauen)
  • Möglichkeit zusätzliche Platinen aufzusetzen
  • Berührungslose Hinderniserkennung (Infrarotsensor)
  • Aufprallschalter als Notstopp
  • Stromversorgung mittels Akku oder Batterie

Fahrzeugaufbau

Als Basis dient eine 4.5mm Plexiglasplatte, welche mittels Kreissäge und Fräsmaschine in die entsprechende Form gebracht wurde. In die Aussparungen wurden die Miniservos mit Zweikomponentenkleber eingeklebt. Die Antriebsräder wurden aus einer 11.5mm Plexiglasplatte gedreht, welche ursprünglich mal ein Couchtisch war. Ein Gummibelag aus einem ausgedienten Fahrradschlauch verhindert ein Durchrutschen. Das Stützrad entstand ebenfalls aus Plexiglas und läuft in einem Blechrahmen. 

3mm Schrauben an den Ecken nehmen später die Steuerplatine auf. Mit längeren Gewindestangen lassen sich mehrere Platinen übereinander anordnen. 

Antrieb

Modellbauservos können mit wenigen Arbeitsschritten zu einfach zu steuernden Getriebemotoren umgebaut werden. Dies erspart den Bau von Getrieben und diverse Miniaturarbeiten. Zudem bietet das Servogehäuse einen guten Schutz gegen Verschmutzung. Unter dem Suchbegriff Servohacking finden sich im Netz gute Anleitungen. Nach dem Öffnen entfernte ich zunächst den Endanschlag an einem der Zahnräder, sodass eine Drehung um 360° möglich wird. Das Entfernen des Potentiometers war nicht möglich, da dies bei dem verwendeten Typ zugleich eine Getriebeachse bildete. So entfernte ich auch beim Poti den Endanschlag, wodurch es sich frei drehen ließ. Der Gesamtwiderstandswert des Potis wurde mit 3kOhm gemessen. Ein Spannungsteiler, bestehend aus zwei kleinen 2kOhm Widerständen wurde anstelle des Potis angeschlossen, und gaukelt nun der Elektronik eine Mittelstellung der Drehachse vor. Nun kann mit Pulsweitenmodulation ein Steuersignal an das Servo geschickt werden. Ist der Steuerimpuls größer als 1.5msek so dreht es sich in eine Richtung, ist der Signalimpuls kürzer, so dreht es sich in die andere Richtung. In exakter Mittelstellung sorgt die servoeigene Elektronik dafür, dass der Motor nicht läuft.

Um diese Theorie zu überprüfen bastelte ich aus zwei NE555 Bausteinen und ein paar zusätzlichen Bauteilen einen Servotester. In einer ausgedienten PC-Maus verpackt liefert er ein entsprechendes Steuersignal an ein ansteckbares Servo. Drehungen am Regelpoti verändern die Steuerimpulslänge, wodurch der Servoumbau überprüft werden kann. Die Schaltung hab ich aus dem Netz nachgezeichnet und in der Simulation getestet. Der Nachbau ist nicht schwierig und liefert zufriedenstellende Ergebnisse

Erkennen von Hindernissen

Um dem Gefährt eine gewisse Eigenständigkeit zu geben, bedarf es der Fähigkeit Hindernisse zu Erkennen und diesen dann auszuweichen. Das kann mit Tastern geschehen, oder eleganter mit berührungsloser Hinderniserkennung. Viele kleine Roboter verwenden dazu Ultraschallsensoren oder Infrarotsensoren. Beides gibt es für wenig Geld fertig zu kaufen. Aber diesen Weg wollte ich nicht beschreiten. Frei nach dem Motto "Wer Kauft hat aufgegeben" machte ich mich auf die Suche nach Alternativen. Ultraschall schied mangels passender Ultraschalllautsprecher und Mikro aus. Es blieb der IR-Bereich. Fertige Distanzmessbausteine arbeiten mit einer IR-Diode und einem IR-Empfänger, der je nach Einfallswinkel ein entsprechendes Signal abgibt. Dadurch kann eine Entfernung ermittelt werden. Bei meinem Roboter ist die Entfernung zum Hindernis zweitrangig. Es geht nur darum zu erkennen, ob ein Hindernis da ist oder nicht. Ähnlich einer Reflexlichtschranke müsste so eine Erkennung realisiert werden können.

In meinem Bauteillager fand ich eine Fernbedienung und eine Platine eines Sat-Empfängers. Die Fernbedienung lieferte die Fotodiode und der Sat-Empfänger den IR-Fototransistor. Diese Transistoren enthalten integriert eine Verstärker und Demodulationsschaltung, und geben beim Empfang eines Fernbedienungsignals das demodulierte Signal weiter. Die Messung an der Fernbedienung zeigte, dass diese mit einer Trägerfrequenz mit Nadelimpulsen von 38kHz arbeitete. Der Sinn der gepulsten Tragerfrequenz liegt im Ausschalten von Störungen durch Umgebungslicht. Da der Fototransistor keinerlei Kennzeichnung aufwies, konnte ich auch nicht die passende Anschlussbelegung im Netz nachschauen. Daher musste ich diese experimentell ermitteln. Doch zuerst musste die Leuchtdiode mit einer Frequenz von 38KHz angesteuert werden.

 

IR-Dioden Treiber

Mein einfacher Frequenzgenerator kann nur Rechtecksignale mit einem Pausenverhältnis von 50/50 liefern. Versuche mit dem Fototransistor ergaben dabei unschöne Störungen. Daher entschied ich mich bei den Signalimpulsen möglichst nahe an die Signalform der Fernbedienung zu kommen. Ein NE555 Baustein wurde so beschaltet, dass er als astabile Kippstufe arbeitet, und dabei die Pausenzeit mit dem Poti R1 einstellbar ist. Die Impulsdauer wird durch den Widerstand R1 bestimmt und ist mit 200Ohm ziemlich kurz gehalten. Die IR-Diode besitzt einen Vorwiderstand von 100 Ohm und wird über einen Transistor angesteuert. Der Fototransistor reagierte bei einer direkten Bestrahlung mit der IR-Diode indem der Signalausgang auf low sprang. Nach ca. 1 sek kehrte er aber wieder in den High-Zustand zurück. Ohne Datenblatt des Transistors kann ich nur vermuten, dass dies so vorgesehen ist. Es könnte auch sein, dass ich bei der experimentellen Ermittlung der Anschlussbelegung einen Teil der integrierten Schaltung beschädigt habe. Für eine Hinderniserkennung ist die Funktion jedoch ausreichend. 

Der Hindernissensor

IR-Diode und Transistor benötigen ein entsprechendes Gehäuse. Meine Überlegung geht dahin, dass dieses Sensorgehäuse von einem Miniservo vor dem Roboter geschwenkt wird, und dabei Hindernisse erkennen soll. Der Roboter erhält damit einen beweglichen Kopf. 

Als Sensorgehäuse wurde ein Audiostecker umfunktioniert. Auf der Rückseite wurde ein Kunstoffwinkel angeschraubt, welcher die IR-Diode und den Transistor an Ort und Stelle fixiert. und später mit dem Servohorn verbunden wird. erste Tests zeigten, dass der Transistorausgang bei einer Hindernisentfernung von ca. 25cm von High auf Low springt.