LightBot – ATtiny Roboter

LightBotAuch wenn man schon groß und erwachsen ist, so reizt es dann doch den Mann, mal ein kleines Spielzeug zu bauen, sei es auch noch so sinnfrei. Deshalb habe ich einen kleinen und einfachen Roboter bauen wollen, der dem Licht hinterher jagt. Dazu braucht es einen Mikrocontroller und zwei Lichtsensoren, damit die Richtung  des Lichts erkannt werden kann. Den Antrieb hatte ich ursprünglich mit zwei Vibrationsmotoren geplant, da mich diverse YouTube Videos inspiriert hatten, in denen ein „Brushbot“ mit einem Vibrationsmotor auf einem Zahnbürstenkopf durch die Gegend flitzt. Das Prinzip funktioniert recht gut, aber eine brauchbare Richtungssteuerung mit zwei Motoren links und rechts war nicht drin. Ich habe da viel experimentiert und Zeit verbraten, hohe und niedrige Spannung, Geschwindigkeit und verschiedene Montageorte. Vibrationsmotoren waren wohl für meinen Zweck nicht brauchbar. Deshalb bin ich zum altbewährten Fortbewegungsmittel zurückgekehrt: dem Rad. Schnell ein altes Spielzeugauto geschlachtet und auf die Wellen der Vibrationsmotoren geklebt. Damit war die Richtungssteuerung natürlich ein Traum! Schnell, effizient und präzise, auch wenns nicht ganz so lustig ist, wie ein vibrierend hüpfender Roboter 🙂

Die Hardware ist recht übersichtlich. Neben dem Mikrocontroller gibt es da einen Akku (Li-Po), zwei mini Elektromotoren, zwei LDR (lichtempfindliche Widerstände), zwei Transistoren, eine LED, ein Schalter und drei Widerstände. Das alles wollte ich auch so klein wie möglich unterbringen. Deshalb habe ich mir eine vollflächige Kupferplatine genommen und die Leiterbahnen frei mit einem Dremel ausgefräst. In meinem routing komme ich dabei mit einer Seite und zwei Durchkontaktierungen für die Motoren aus.

Lightbot_SchaltplanDer Mikrocontroller hat einen Spannungsbereich von 2,7 bis 5,5V, weshalb ich einen LiPo Akku aus dem Modellbau verwendet habe. Ich glaube, ich hatte ihn mal aus einem kleinen Helimodell ausgeschlachtet, der war so schön klein mit seinen 140mAh. Ein LiPo pendelt mit seiner Spannung zwischen 3,0 und 4,2V, deshalb brauchen wir keinerlei Spannungsregler und können direkt die Motoren und den Controller befeuern. Zum laden benutze ich entweder einen Modellbaulader oder einen USB Ladestecker. An der Unterseite habe ich dazu einen kleinen Stecker vorgesehen, denn der Akku ist festgeklebt und angelötet.

Der ATtiny kann pro Ausgangspin nur 20mA schalten, die Motoren ziehen pro Stück aber 50 bis 60mA, weshalb ich noch NPN Transistoren davor schalten musste. Ich habe die kleine BC849 Variante genommen, die gibt es als SMD Sot23 Baugröße. Wenn du alle Bauteile wie ich in SMD Größe benutzt, erfordert das Löten ein wenig Fingerspitzengefühl und eine Pinzette.

Als Lichtsensoren habe ich zwei LDRs verwendet. Das sind Lichtempfindliche Widerstände, die im Dunkeln ca. 500 kOhm und im Hellen ca. 0 Ohm haben. Zusammen mit einem einfachen Spannungsteiler mit zwei Festwiderständen von 10 kOhm ergibt das dann im Dunklen 0,5V und im Hellen 5V (VCC), die wir mit dem AD Wandler des ATtiny messen können (Ausgegangen von 5V Versorgungsspannung). Damit das Sichtfeld der einzelnen Sensoren nicht zu breit ist, habe ich ein Stück schwarzen Schrumpfschlauch darum geschrumpft. Wenn also der eine LDR eine höhere Helligkeit wahrnimmt, ist der zweite davon nicht beeinflusst und man kann einen eindeutigen Helligkeitsunterschied zwischen links und rechts feststellen.

Lightbot_Platine_anoAn einem Pin habe ich noch eine einzelne LED angeschlossen, damit ich diverse Statusmeldungen ausgeben kann. In meinem Code blinkt sie z.B. nach jedem Messdurchlauf drei Mal kurz hintereinander. Ich spiele aber schon mit dem Gedanken, diesen Pin einer IR Diode zu opfern, um evtl. die zweite Version des LightBot mit einer Infrarot-Fernbedienung zu steuern.

Hier findest du den Code für den ATtiny. Manches könnte man bestimmt anders lösen oder eleganter programmieren. Ich bin kein Informatiker und absolut offen für Vorschläge. Beispielsweise habe ich die Ansteuerung für die Motoren zwar mit PWM (Pulsweitenmodulation) erledigt, jedoch in Software. Man kann das auch in Hardware machen, da der ATtiny zwei Ausgänge dafür besitzt. Das hätte den Vorteil, dass er gleichzeitig die Helligkeit messen und sich bewegen kann. Ich habe den Code so gut es geht kommentiert, damit es nachvollziehbar bleibt. Dennoch setze ich ein gewisses Maß an Programmierkenntnisse in C voraus, denn ich kann hier leider keinen Programmierkurs abhalten. Die Bewegungen und Messungen habe ich in Funktionen ausgelagert, damit ich sie in der main nur kurz aufrufen muss, um mich rein auf die Steuerung konzentrieren zu können. Wenn du das Projekt nur nachbauen möchtest, findest du in der ZIP Datei auch die fertigen Hex Dateien zum direkten flashen für den ATtiny 13, 25 und 85. Diese Typen sind Pinkompatibel und reichen vom Speicherplatz aus.

Hier der Programmcode für den ATtiny:


Download Programmcode und Hex Dateien

So, das sollte an Info schon reichen, um das Spielzeug nachzubauen, zu verbessern oder weiter zu entwickeln. Lass dich noch von meinem Demovideo inspirieren. Viel Spaß beim Spielen 🙂



Haftungsausschluss: Ich übernehme keinerlei Verantwortung für auftretende Schäden oder Folgeschäden bei der Anwendung und Nutzung meiner Anleitungen. Alle Angaben sind ohne Gewähr. Außerdem obliegt jedem Leser die Prüfung der rechtlichen Zulassung in seinem Land, das gilt insbesondere für TÜV-Freigaben von baulichen Veränderungen an Fahrzeugen und Einbau von Zubehör. Meine Artikel sind nichts weiter als eine Art Machbarkeitsstudie zu verstehen. Jeder Leser hat vorher selbst die Durchführbarkeit zu überprüfen.



Noch keine Kommentare

Schreibe einen Kommentar