c't-Bot / Heise, Segor

Der c't-Bot ist ein mobiler Roboter für den Hobbybereich. Er wurde 2006 von der Redaktion der Fachzeitschrift c't entwickelt. http://www.heise.de/ct/projekte/ct-bot/.

 

Komponenten

c't-Bot

http://www.heise.de/ct/projekte/ct-bot/ct-bot.shtml
http://www.heise.de/ct/projekte/ct-bot/pdf/schaltplan-final.pdf

USB-2-Bot-Adapter

http://www.heise.de/ct/06/07/223/default.shtml
http://www.heise.de/ct/projekte/ct-bot/pdf/schaltplan-usb-2-bot.pdf
http://www.heise.de/ct/06/07/223/bild2.jpg

mySmartUSB

http://www.myavr.com/

 

Verkabelung des c't-Bots mit dem Personal Computer

 

Verkabelung PC mit c't-Bot

 


Ansicht Verkabelung c't-Bot


(1) c't-Bot, (2) In System Programmer, (3) USB-2-Bot Adapter, (4) USB-Hub, (5) PC mit Vehikel-IDE
Über das graue USB Kabel wird der Roboter neu programmiert.
Über das lila USB Kabel werden die Prozesswerte zur Entwicklungsumgebung übertragen.

Details

Mechanischer Aufbau

  • zylindrische Bauform
  • 2 Gleichstrommotoren als Differentialantrieb
  • 1 Gleitkufe als dritte Stütze
Der Vorteil dieses mechanischen Aufbau ist seine Einfachheit. Es wird keine aktive Lenkung benötigt. Durch den Aufbau kann der Roboter auf der Stelle wenden. Nachteilig ist jedoch, dass eine präzise Geradeausfahrt nicht möglich ist. Man kann sich Bewegungsweise dieses Roboters eher als Fahren in großen Bögen vorstellen. Er bewegt sich mit wechselnden Radien über die Ebene. Der Untergrund sollte glatt sein, da der dritte Stützpunkt lediglich aus einer 10mm hohen Gleitkufe besteht.

Prozessor

Die CPU des c't-Bots ist der ATmega 32 Mikrocontroller. Dieser besitzt nur einen begrenzten Speicherausbau: 32 KByte Flash, für Firmware und Applikation, 2 KByte RAM für temporäre Variablen und 1 KByte EEPROM für remanente Daten. Was aber für einen Neuling schwerer wiegt als der begrenzte Speicherausbau, ist der Einarbeitungsaufwand in die Harvard-Architektur des Prozessors. Es muss zwischen den Zugriffsarten auf RAM für temporäre Daten, Flash für Programmbefehle, EEPROM für remanente Daten und die E/A unterschieden werden. Nur innerhalb des RAMs kann mit den Zeigern der Programmiersprache C wie gewohnt umgegangen werden. Selbst das Lesen von Konstanten aus dem Programmspeicher ist nur durch Spezialcode, den der GNU C-Compiler einfügt, überhaupt möglich. Der EEPROM kann nur über Inline-Assembler gelesen werden. In der Vehikel-Programmiersprache kommt der Anwender, jedoch ohne hardwarenahe Programmierung aus. Er muss sich nicht mit der Speicheradressierung des Mikrocontroller belasten.

Aktoren, Sensoren und Diagnose

Der c't-Bot ist für seine Preisklasse sehr gut mit Sensoren ausgestattet. Er verfügt über zwei Infrarot Abstandssensoren, zwei lichtempfindliche Widerstände, zwei Radencoder, 4 Lichtschranken und eine optische Maus, welche an der Unterseite des Chassis angebracht ist. Die Abstandssensoren, ein Teil der Lichtschranken und die lichtempfindlichen Widerstände werden über 10 Bit A/D Wandler digitalisiert. Die restlichen Sensoren werden über binäre Ein- / Ausgabebausteine angebunden.

Als Aktoren dienen zwei Gleichstrommotoren. Die Gleichstrommotoren werden ungeregelt über Pulsweitenmodulation gesteuert.

Als Mensch Maschine Interface dienen 8 LEDs, mit denen Zustände dem Anwender signalisiert werden können. Optional steht ein einfaches Display, das 4 Zeilen a 20 Zeichen darstellen kann, zur Verfügung.

 

Besonderheiten

Es empfiehlt sich, den Roboter über einen preisgünstigen USB-Hub mit dem PC zu verbinden. Damit ist den Roboter nicht mehr in der Lage, seine Versorgungsspannung aus dem PC zu beziehen. Wenn die Motoren aktiv sind, sollte der Roboter seinen Energieverbrauch nicht aus der USB Schnittstelle des PCs, sondern aus seinen Akkus decken. Bei einem Kurzschluss im Roboter wird ''nur'' der USB-Hub zerstört. Die USB Schnittstelle des PCs wird durch den vorgeschalteten Hub geschützt.

Der 32 Byte große Programmspeicher des Roboters ist als Flash ausgeführt. Er wird über den In System Programmer mit dem Binärcode geladen. Dabei wird immer die gesamte Software auf dem Roboter neu ins Flash gebrannt. Es ist nicht möglich einzelne Programmteile getrennt zu aktualisieren. Während das Flash programmiert wird laufen bei manchen c't-Bots die Motoren mit voller Geschwindigkeit. Die  Akkus müssen genügend Spannung liefern können.

Der GP2D12 Infrarot Distanzsensor hat eine stark nichtlineare Kennlinie. Details findet man hier: http://document.sharpsma.com/files/GP2D12-DATA-SHEET.PDF

 

Bewertung

Der c't-Bot war wegen seiner Offenheit und seinen unterschiedlichen Sensoren am besten für eine Pilotimplementierung der Vehikel-Programmiersprache geeignet. Bei der Implementierung mussten der Speichermangel und die Besonderheiten des Mikrocontrollers berücksichtigt werden. Diese Einschränkungen stellen aber keine unüberwindlichen Hindernisse dar. Er ist mit 200 bis 250 Euro Anschaffungskosten, verglichen mit dem Angebot an Sensoren, preiswert. Der Anwender muss die Bauteile des Roboters selbst montieren und löten.

Für den c't-Bot fehlt ein preisgünstiger drahtloser Kommunikationskanal. Ein optionales Funkmodul verdoppelt den Preis der Plattform. Der Roboter hängt deshalb während der Entwicklung an der Leine.

SourceForge.net Logo  
     
 
Creative Commons License
Text and images are licensed under a Creative Commons License.
 
CC-GNU GPL
This software is licensed under the CC-GNU GPL.


 
     
 
Kandid, a genetic art project InnerWorld, a terrain generator for Blender Vehikel, embodied intelligence for mobile robots