Foto von einem NIBObee Roboter

Startseite

NIBObee Roboter

An dieser Stelle möchte ich jungen und erwachsenen Spielkindern einen spannenden Roboter-Bausatz vorstellen, und dazu eine passende alternative C-Library veröffentlichen. Meine Library ist einfacher und dennoch nicht weniger funktional, als die originale Library vom Hersteller (Stand April 2010).

Der NIBObee Roboter Bausatz von Nicai Systems richtet sich an Menschen, die ein bischen basteln wollen und vor allem Interesse an der Programmierung eines solchen Gerätes haben. Für nur 50 Euro erhalten Sie mit dem NIBObee ein hervorragend dokumentiertes, unterhaltsames und lehrreiches Männerspielzeug.

Der NIBObee wird normalerweise in C programmiert, mit dem AVR-GCC Compiler, für den es zahlreiche kostenlose grafische Oberflächen gibt. Für Windows ist eine CD dabei, für Linux und MacOS Benutzer stehen entsprechende Downloads zur Verfügung.

An technischer Ausstattung hat die Biene folgendes zu bieten:

Mit zwei Getriebemotoren fährt sie bis zu etwa 2 Meter pro Sekunde. Zwei Lichtschranken erfassen die Rotation der Räder. Sie dienen der Messung von Strecke, Richtung und Geschwindigkeit.

Zwei Fühler erkennen Hindernisse. Man kann unterscheiden, in welche Richtung sie gedrückt werden. Drei Infrarot Sensoren auf der Unterseite erkennen Markierungen auf dem Boden. Die Spannung der Batterien kann gemessen werden. Vier Leuchtdioden stehen zur freien Programmierung verfügbar.

Die Biene hat zehn I/O Pins frei, davon können vier auch als analoger Eingang verwendet werden. Zwei I/O Pins können als serielle Schnittstelle verwendet werden, und zwei andere können als I2C Schnittstelle verwendet werden.

Vergleich NIBObee mit Asuro

Viele Leute bezeichnen den NIBObee als besseren Nachfolger des Asuro. Denn einige Probleme des Asuro wurden beim NIBObee deutlich verbessert: Und all diese Vorteile bekommt man ohne Aufpreis!

Library

Der NIBObee wird mit einer wirklich tollen C Library nebst Tutorial geliefert, die einem das Programmieren leicht macht. Allerdings hatte ich Schwierigkeiten, die Library richtig in mein Source Projekt einzubinden, und ich bin da wohl nicht der einzige Leid-Tragende (siehe Roboternetz Forum). Manches scheint mir dort auch unnötig kompliziert gemacht zu sein.

Und darum habe ich meine eigene Library geschrieben. Ich bin davon überzeugt, daß einzig und alleine meine Library die Probleme der Welt lösen wird und für jeden daher zwangsläufig ideal ist ... quatsch, das war ein Scherz. Aber wer sie benutzen möchte, darf das gerne tun, und zwar ohne jegliche Einschränkung.

Zum Compilieren benötigen Sie eine AVR Toolchain.

Die Dokumentation der einzelnen Funktionen schreibe ich immer in die include Dateien (*.h) rein. Anders als bei der original Library brauchen Sie bei meiner nicht diverse init_xxxx() Funktionen aufzurufen. Die Library initialisiert sich nämlich selbst durch bloßes Einbinden.

Bevor Sie die fahren.c verwenden, möchte ich Sie animieren, die Motorsteuerung lieber selbst zu entwickeln. Denn diese Aufgabe ist alles andere als Trivial, und daher sehr lehrreich.

Wenn Sie Hilfe brauchen, dann schauen Sie in die Wissens-Datenbank vom Roboternetz oder holen Sie sich Anregungen aus meinem Quelltext.

Hinweis für Linux

Damit der integrierte ISP Programmer unter Linux für nicht-root Benutzer ansprechbar ist, kopieren Sie die Dateien 80-nibobee.rules nach /etc/udev/rules.d.

Erweiterungsvorschläge

Wer den seriellen Port benutzen möchte, könnte diesen über ein Bluetooth Modul BTM-222 mit dem PC verbinden. Wenn Sie meine Library einsetzen, benutzen Sie die Bluetooth Verbindung ganz einfach mit den Funktionen der stdio Library, z.B. println(), puts(), gets() und scanf().

Auf dem PC empfehle ich dazu das Hammer Terminal Programm.

Wer nicht gegen Hindernisse fahren möchte, kann einen Ultraschall Entfernungs-Sensor SRF02 auf den Roboter montieren. Alternativ bieten sich besonders für den Nahbereich auch Infrarot Entfernungs-Sensoren an.

Wenn man den Entfernungs-Sensor auf einen handelsüblichen Servo aus der Modellbau-Abteilung montiert, kann man ihn sogar hin und her drehen, ohne den ganzen Roboter bewegen zu müssen. Das sieht dann so aus:

Ultrschall Sensor mit Servo

Wenn sie noch mehr I/O Leitungen für Erweiterungen benötigen, dann schauen Sie sich mal die Datenblätter dieser Chips an: 8x12bit serieller A/D Wandler MCP3208, Schieberegister für mehr Eingänge 74HCT165, Schieberegister für mehr Ausgänge Ausgänge 74HCT595, Mehr I/O über I2C Bus PCF8574, 4x8bit A/D Wandler mit I2C Bus PCF8591.

Verbesserungsvorschläge

Fühler

Wenn die Biene frontal gegen einen schmalen Gegenstand fährt (z.B. ein Stuhlbein), erkennt sie das Hindernis nicht. Das obige Foto zeigt einen Umbau der Fühler, der dieses Problem weitgehend behebt.

Die Gelenke der Fühler sind ein wenig schwergängig. In der Montageanleitung ist vorgesehen, die Fühler mit Schrumpfschläuchen an diese Schalthebel zu befestigen:

Schalthebel, an die die Fühler befestigt werden

Entfernen Sie diese Schalthebel einfach und kleben Sie die Fühler wie im folgenden Foto gezeigt mit Heißkleber an, dann funktionieren sie einwandfrei:

Modifizierte Montage der Fühler

Bei der Programmierung müssen sie berücksichtigen, daß die Taster (vorne/hinten) nun umgekehrt funktionieren.

Grip der Reifen

Auf manchen Teppichen und auf leicht verstaubtem Laminat haben die Reifen wenig Grip, so daß sie durchrutschen. Klemmen Sie ein zusätzliches Gewicht (z.B. einen flachen Stein) mit einem Gummiband and den Batteriehalter, so kommt mehr Gewicht auf die Räder und der vordere Gleiter wird entlastet.

Man kann das Problem natürlich auch programmatisch beheben, indem man sanft beschleunigt und bremst.

Getriebe verschmutzt schnell

Die Zahnräder des Getriebes schauen unten heraus und enden sehr dicht über dem Fußboden. Sie sammeln daher fleißig Staubflocken und Haare ein, die dann das Getriebe blockieren.

Abhilfe schafft hier die Abdeckung aus einem halbierten Deckel von einer Haarspray-Dose, mit Heißkleber angeklebt.

Getriebe mit Abdeckung