Ruhe in Frieden – RN-MEGA 2560 Modul…

Was so passiert, wenn man einen Stecker falsch beschriftet und leichtfertig sich auf die (falsche) Beschriftung verlässt sieht man in den nachfolgenden Bildern. Leider wurden hier für einige (Schreck)Sekunden 12V auf das Atmel-Board gegeben, auf welches nur 5V verträgt. Das Ergebnis sieht dann (nach einen kleinen, aber feinen Rauchwolke so aus:

   

Für diejenigen, die den Atmel von so nah noch nie gesehen haben: Der Hügel sollte dort auf dem Bild nicht zu sehen sein…

Ein paar Tests (und Drahtbrücken) später…

…stellte sich erfreulicherweise heraus, dass die beiden nachgelagerten Motorcontrol-Boards keinen Schaden erlitten haben… Glück gehabt.

Einbau einer externen USB-Buchse für den Joystick

Um den Roboter auch einmal per Jpoystick steuern zu können, sollte besser eine ordentliche USB-Buchse her. Diese stelle zudem sicher, dass im Notfall, das Kabel dort einfach und vor allem ungefährlich "heraus rutschen" kann – ohne gleich den ganzen PC mit sich zu reißen. Die Buchse ist übrgens von Neutrik. Hier die Fotostrecke:

 

Austausch der Stromversorgungs-Buchsen, Verkabelung der PC-Stromversorgung

Heute wurden die Buchsen für die externe Stromversorgung bzw. zum Laden der Akkus gegen "Sicherheitsbuchsen" ausgetauscht. In die vorigen "normalen" Buchsen passten die Sicherheitsstecker leider nicht rein (nicht tief genug).  Das ist das Ergebnis:

 

 

Nun galt es noch die Kabel für die Stromversorgung für den fit-PC 2 zu verlegen. Bei der Gelegenheit wurden auch die Sicherungshalter neu beschriftet, den der PC bekam natürlich einen eigenen Stromkreis mit Sicherung:

 

 

Auch das zentrale Panel wurde von der Unterseite beschriftet, damit auch alles an den richtigen Platz gesteckt wird, wenn man es mal ummontiert o.ä.

 

Jetzt nur nichts vertauschen…

 

…und alles läuft (wider Erwarten einmal) auf Anhieb:

Der fit-PC 2 ist da!

Endlich ist es soweit: 

Die neue "Steuerzentrale" des Roboters wurde nach langen Verzögerungen und mehrfachen Vertröstungen des Distributors geliefert: Der fit-PC 2:

       

Ursache für die Verzögerungen sind wohl Probleme des Herstellers CompuLab.

Hier die Leistungsdaten des schnuckeligen "kleinsten Industrie-PCs der Welt":

 

Leistungsmerkmale

CPU

Intel Atom Z530 1.6GHz / Z510 1.1GHz

Chipsatz

Intel US15W SCH

RAM

1GB DDR2-533 on-board

Speicher

Internal bay for 2.5" SATA HDD

miniSD socket

Anzeige und Grafik

Intel GMA500 graphics acceleration

Full hardware video acceleration of H.264, MPEG2, VC1, and WMV9

DVI Digital output up to 1920 x 1080 through HDMI connector

Audio

High definition 2.0

Line-out, line-in, mic

Netzwerk

1000 BaseT Ethernet

802.11g WLAN

USB

6 USB 2.0 High Speed ports

Infrarot

Programmable consumer IR receiver

 

Software

BIOS

Phoenix

BIOS Bootable from HDD, USB thumb drive, USB CDROM, USB hard disk, over network

Betriebssystem

Windows XP Home SP3

Ubuntu Linux 8.04

Other operating systems can be installed by user

 

Maße, Gewicht, Umgebung

Gehäuse

100% aluminum

Die cast body

Abmessungen

101 x 115 x 27 mm (4" x 4.5" x 1.05")

Gewicht

370 grams (13 ounces) – including hard disk

Betriebstempereatur

0 – 45 deg C with hard disk

0 – 70 deg C without a hard disk

Stromversorgung

12V single supply

Energieverbrauch

6W at low CPU load

<7W at 1080p H.264 playback

8W at full CPU load

<1W at standby

 

Einbau des micromag3 Sensors (3D Kompass)

Um eine möglichst genaue Lageerkennung des Roboters zu ermöglichen, wurde auf das micromag 3-Achs-Magnetfeldstärken-Messgerät von PNI zurückgegriffen. Als von Magenetfeldern möglichst ungestörten Ort auf dem Bot wurde die Stelle zwischen den Laserscannern gewählt (möglichst weit weg von den Motoren). Weiterer Vorteil: Es ist genau die Mitte und damit der Drehpunkt des Bots. Also als erstes mal wieder raus mit einem Laserscanner…

 

…und die Platine verkabelt und mit Distanzbolzen zwischen den Scannern montiert:

 

Verbunden wurde das Modul per Flachbandkabel an den Atmel-Controller, der das Auslesen übernimmt. Angesprochen wird der Sensor übrigens via SPI. Den Sourcecode dazu gibt es – bequem per git auscheckbar – hier (direcs/direcs-avr/micromag.c und .h).

Das ist dann auch an diesem Screenshot rechts unten bereits zu erkennen:

Verkabelung der Laserscanner, Motorboards und Sicherungen

Nach der NSLU war jetzt die Verkabelung der Laserscanner an der Reihe.

Vorher bekam die NSLU2 noch einen Ein-Aus-Taste spendiert (hier zu sehen die Lochbohrung in der Konsole) und die Motorboards wurden mit 12V versorgt:

   

Nun aber die Verkabelung der Laser (inklusiver Sicherungen):

Unterhalb der Laserscanner wurden die Kabel einigermaßen gebündelt, damit nichts "lose rumfliegt":

Auch die Akkus können jetzt auch an ihren vorgesehenen Platz. Erst auf der rechten Seite…

…dann auf der linken:

 

Und zum Schluss ein wenig "Showtime":

Sprachausgabe für den Bot

Ein Roboter der nicht sprechen kann? Das geht gar nicht… ;-) Also wurde das Sprachmodul sp03 von Devantech erworben. Dieses ist per RS232 und per I²C ansteuerbar. Die zu sprechenden Texte (text to speech) werden mit nur wenigen Befehlen im ASCII-Format an das Modul gesendet.

 

Da das Modul vom Hersteller ab Werk nur mit einem Piezo-Speaker ausgestattet ist, wurde es in ein preiswertes Lautsprecherset mit integriertem Verstärker vom lokalen Elektromarkt eingebaut. Eine Sub-D-Buchse für die serielle Schnittstelle wurde ebenfalls integriert:

Einbau des Atmel-Controllerboards, der Stromverteilung und der Konsole

Nun kommt das "Kleinhirn" des Roboters zum Einbau: Das Atmel-Controllerboard (Atmel 2560 Prozessor, 16 MHz, 256 kiB Flash-Speicher, 8 kiB RAM, 4 kiB EEPROM u.v.a.m.). Hier links oben im Bild:

Hier das "Power-Board" von der aus alle Komponenten mit Strom versorgt werden und im nächsten Bild sind die Module am Ziel:

Und so sieht das ganze dann fertig aus:

Auf dem folgenden Bild sieht man bereits die Verbindung der Motorcontrolboards mit dem Atmelboard per Flachbandkabel. Auf dem letzen kam dann noch ein hübsches Alu-Lochblech mit zwei "Vandalismus"-Tastern, einer 12V- und einer 24V-LED sowie dem Not-Aus-Schalter hinzu:

Umrüstung einer Linksys NSLU2, Cross compiling der Software

Hier der Zwischenstand der Umrüstung einer NSLU2 von Linksys:

Diese soll künftig anstatt des Laptops den Roboter als "PC" steuern. Der vollständige Umbau ist im Menü links unter "Fotos" zu sehen!

 

Nur soviel:

Der NSLU2 wurde zu einem Debian Linux verholfen, sie wurde um drei auf insgesamt fünf USB-Port "aufgerüstet" und mit WLAN versehen. Außerdem wurde "mal eben" (siehe auch Zeit zwischen dem letzen Blog-Eintrag und diesem!) die komplette Software per cross compiling für den NSLU2-Prozessor (Intel ARM XScale IXP420) umgewandelt. Natürlich musste die Software dabei auch noch "nicht-GUI"-ready gemacht werden; lässt sich also jetzt auch auf der Console aufrufen (ARM und Linux!) und übers Netz (LAN oder WLAN) steuern! Qt for Embedded Linux sein Dank!

 

Das heißt, das vollständige Qt-Programm direcs kann nun auf drei Arten verwenden werden

  • als GUI-Anwendung auf einem "normalen" PC
  • als Konsolen-Anwendung auf einem "normalen" PC
  • als Konsolen-Anwendung auf einem ARM-Prozessor – cross compiling Umgebung vorausgesetzt!

Steuerbar ist das Ganze per Umgebungsvariable vor Ausführen des make-Befehls.

Montage des 3. und 4. Motors

Hier die aktuellen Bilder des Einbaus des dritten und vierten Motors – da ja bei einem Antrieb mit Mecanum-Rädern jedes Rad einen eigenen Antrieb benötigt um alle Möglichkeiten zu nutzen.

Hier ist bereits gut zu erkennen, das der Platz auf und "in" dem Roboter (innerhalb des Grundrahmens) dieses Mal so gut wie nur möglich ausgenutzt werden soll: