Foto von einem NIBObee Roboter
Links

Bezugsquellen:
NIBObee bei Reichelt
Ansmann Akkus bei Reichelt
Schnell-Ladegerät bei Reichelt

Informationen:
NIBObee von nicai-systems
AVR-GCC Compiler
avr-libc Dokumentation

Diskussions-Forum:
Roboternetz Bausätze und Modelle

Zubehör:
USB zu seriell Adapter
Bluetooth Modul BTM-222
Serielle LC-Displays
Mini Servo ES-05
Ultraschall-Sensor SRF02
Infrarot Entfernungs-Sensoren
mehr analoge Eingänge MCP3208
mehr digitale Eingänge 74HCT165
mehr digitale Ausgänge 74HCT595

Diese freie Werbefläche können Sie mieten.

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 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 unterhaltsames und lehrreiches Männerspielzeug. Da lohnt sich kein Eigenbau - es sei denn Sie haben mehr Geld zur Verfügung und richtig viel Spaß an mechanischer Konstruktions-Arbeit.

Der NIBObee wird normalerweise in C programmiert, mit dem avr-gcc Compiler, für den es zahlreiche kostenlose grafische Oberflächen gibt. Eine für Windows ist im Lieferumfang auf CD enthalten, 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 vorwärts und Rückwärts bis zu etwa 2 Meter pro Sekunde (auf glattem Boden). Kurven sind auch möglich, sowie Drehen auf der Stelle. Zwei Lichtschranken liefern 40 Takte pro Rad-Umdrehung. Sie dienen der Messung von Strecke, Winkel 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 (analog). 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.

Video Clip (Windows User müssen zur Wiedergabe eventuell einen DivX Codec installieren).

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.

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. Danach den udevd neu starten oder den Rechner rebooten.

Erweiterungsvorschläge

Wer den seriellen Port benutzen möchte, könnte diesen über einen USB zu seriell Adapter oder kabellos über ein Bluetooth Modul BTM-222 mit dem PC verbinden.

Der serielle Port wird von der Library mit den Datei-Handles stdin und stdout verbunden, welche von sämtlichen Funktionen in der stdio Library verwendet werden können.

Wenn sie noch mehr I/O Leitungen für Erweiterungen benötigen, dann schauen Sie sich mal den seriellen Analog/Digital Konverter MCP3208 oder die Schieberegister 74HCT165 und 74HCT595 an.

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 Servo 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

Verbesserungsvorschläge

Fühler

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

Verbesserte Fühler

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 zu 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. Der Roboter lenkt und dreht sich dann viel präziser.

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

Akkus altern vorzeitig

Das integrierte Ladegerät des NIBObee lädt die Akkus paarweise 7 Stunden mit einem Strom von etwa 200mA pro Akku, beim Laden sind immer zwei Akkus in Reihe geschaltet. Von dieser Methode halte ich nicht viel, denn sie berücksichtigt weder die Kapazität noch den Ladezustand der Akkus.

Vermeiden Sie das Überladen Ihrer Akkus, indem Sie entweder nur ganz leere Akkus in der Biene aufladen, oder den Ladevorgang unterbrechen, sobald sie Akkus heiß werden (Hand-warm ist ok). Besser ist ein externes Ladegerät, welches den tatsächlichen Ladezustand jeder Zelle einzeln überwacht.