ToyCollect V1.0 Roboter - Bauanleitung und Software

15.07.2015

ToyCollect V1.0 Roboter - Bauanleitung und Software

Wenn Sie Stereokameras brauchen, empfehlen wir stattdessen einen V1.21 (R2X) oder V1.3 (K3D) Roboter zu bauen.

Es folgen alle notwendigen Informationen damit Sie einen originalen ToyCollect V1.0 Roboter bauen können.

Hardware

Zuerst müssen Sie einkaufen gehen. Wir brauchen..

  • 1x Zumo Chassis Kit (#1418)
  • 2x 100:1 Micro Metal Gearmotor HP (#1101)
  • 1x Basic Sumo Blade for Zumo Chassis (#1410)
  • 1x Pololu Qik 2s9v1 Dual Serial Motor Controller (#1110)
  • 1x 0.100" (2.54 mm) Breakaway Male Header: 1x40-Pin, Straight (Leitungsverteiler, #965)
  • 1x Premium Jumper Wire 50-Piece Rainbow Assortment F-F 6" (Verbindungsleitungen, #1700)
erhältlich bei Pololu Robotics and Electronics.

  • 1x Raspberry Pi Model B (rev1) (#756-8308)
  • 1x Raspberry Pi Camera Modul (#775-7731)
  • 1x Edimax low power WLAN-Adapter EW-7811UN (#760-3621)
  • 1x Gehäuse for Model A/B (#764-4389)
erhältlich bei RS Components oder jedem anderen brauchbaren Geschäft.

Sie können einen RaspberryPi (RPi) Model A verwenden wenn das Gehäuse ca. 5mm zurück montiert oder ein kleiner Zeil des Sumo-Blades entfernt wird damit die WLAN USB Karte paßt.
Sie können einen RPi Model B+ verwenden wenn Sie ein anderes (oder kein) Gehäuse verwenden.
Model B (rev1) hatte keine Befestigungslöcher also mußten wir ein Gehäuse verwenden, es macht den Roboter 7mm höher und ist nicht notwendig. Wir verwendeten auch nur den unteren Teil des Gehäuses.

  • 1x DC-DC Buck Step-Down Spannungskonverter (basierend auf LM2596)

Diese Geräte bekommt man günstig bei eBay oder Amazon. Sie können bis zu 4A bei 5V ausgeben. Es ist unbedingt erforderlich das die Ausgangsspannung auf 5V gesetzt wird (mittels Voltmeter und 2x nachmessen)! Wenn Sie es sich zutrauen, kann auch ein IC mit einer fixen 5V Ausgangsspannung verwendet werden (zB L78S05CV)

  • 1x min. 2GB SD-Karte (oder MicroSD-Karte für Model B+) welche kompatibel mit dem RPi ist. Wenn Sie TCserver selbst kompilieren wollen, benötigen Sie ein vollständiges Entwicklungssystem am RPi - in diesem Fall besser eine größere SD-Karte nehmen (wir verwenden 32G)
  • 1x Lumimicro LMFLC4500 oder eine vergleichbare sehr helle weiße LED die mit 3,3V schon leuchtet und nicht viel mehr als 100mA verbraucht. Wir verbinden diese direkt mit einem GPIO-Port, der ca. 50mA ausgibt. Diese LED ist dann bei der Hälfte der maximalen Helligkeit.
  • mindestens 4x AA Lithium 1,5V Batterien mit zumindest 2900mAh Ladung pro Batterie
    ODER 4x AA Lithium-Ionen 3,7V Akkus mit IC Protection und zumindest 750mAh (diese benötigen ein spezielles Ladegerät)

Bedenken Sie das man 5V plus die minimale Spannungsdifferenz des Spannungskonverters für den RPi und die Motoren benötigen. Aus diesem Grund können keine aufladbaren NiMH oder NiCD Akkus verwendet werden da diese nur 4,8V liefern würden. Man könnte natürlich stattdessen einen Step-Up/Down Spannungskonverter verwenden... Die Lithium Batterien sind nicht aufladbar und betreiben den Roboter ca. 1,5h. Die Lithium-Ionen Akkus sind aufladbar und betreiben den Roboter ca. 2,5h. Wir empfehlen daher die Verwendung der Akkus. Verfügbar zB bei Amazon, oder googlen Sie "aw lithium rechargable 14500". Die Eingangsspannung ist hier 3.7V * 4 = 14,8V - bitte prüfen Sie ob Ihr Spannungskonverter kompatibel ist!

Zusammenbau

Detailliertes
Anschlußdiagramm
  1. Löten Sie die Leitungsverteiler (breakaway male header) an den Motor-Controller auf der falschen Seite (d.h. sie sollten nach unten zeigen wenn man von vorne darauf schaut). Die Pins für eine fixe Baudrate von 38400 sollten permanent verbunden werden indem ein kleines Stück Leitungsverteiler darüber gelötet wird. Wir haben keinen Platz für einen echten Jumper.
  2. Schneiden Sie einen kleinen Teil des Sumo blades weg damit die Kamera etwas sehen kann. 5mm x 8mm (BxH, Porträt) vom mittleren Teil sollten ausreichen (an der linken Seite vom mittleren Teil wenn von vorne gesehen). Wenn Sie ein Model A verwenden, muß zusätzlich etwas in der Mitte des mittleren Teils weggeschnitten werden da sonst der USB-Verbinder nicht zugänglich wäre. Verwenden Sie eine Metallsäge oder einen Bolzenschneider.
  3. Schneiden Sie den Stecker von einigen Verbindungsleitungen (jumper cables) und löten Sie das offene Kabel direkt an die zwei Motoren. Der Motor-Controller wird gleich neben den 2x USB Ports montiert - die Kabel müssen dorthin reichen. Wenn man die Kabel gleich neben dem Stecker abschneidet sind diese leicht lang genug.
  4. Wir haben den Spannungskonverter verkehrt auf die Unterseite des Gehäuses montiert, da es 2cm hinter der Zumo-Plattform hervorsteht. Der Eingang des Spannungskonverters muß an den Ausgang des Batteriefachs angeschlossen werden. Der Ausgang des Spannungskonverters muß die entsprechenden Pins des RPi erreichen können. Man muß alle Verbindungen direkt auf den Spannungskonverter löten, da zu wenig Platz darunter ist. Wir haben auf der Ober- und Unterseite gelötet je nach Platzbedarf (an den IN+ und OUT+ Verbindern wäre ein Leitungsverteiler möglich gewesen). Wenn man die Kabel gleich neben dem Stecker abschneidet, sind diese leicht lang genug.
    Die Ausgangsspannung muß auf 5V eingestellt werden. Das geschieht durch Einstellen der kleinen Schlitzschraube auf der hellblauen Box, während eine Eingangsspannung von mindestens 6V angeschlossen ist und die Ausgangsspannung via Voltmeter geprüft wird.
  5. Bauen Sie den Zumo Kit inklusive der Motoren und des Sumo-Blade zusammen.
  6. Verbinden Sie den RPi entweder über den unteren Teil des Gehäuses (B rev1), oder die Befestigungslöcher falls verfügbar. Die Zumo Plattform hat viele kleine Löcher auf der Oberseite, man benötigt sehr kleine Schrauben und Muttern.
  7. Verbinden Sie das Kameramodul noch nicht, aber stecken Sie den WLAN USB Adapter bereits in den oberen USB-Port.
  8. Schneiden Sie von zwei weiteren Verbindungsleitungen den Stecker und löten Sie deren offene Kabelseite an die LED. Diese Kabel müssen GPIO18 auf dem RPi erreichen. Kleben Sie die LED auf die Kamera (oben rechts) und verbinden Sie diese wie im Anschlußdiagramm angegeben.
  9. Verbinden Sie alles andere so wie im Anschlußdiagramm angegeben.
  10. Überprüfen Sie alles, insbesonders die Stromversorgung.
    5V an einen 3,3V Verbinder, Erdung (ground) oder einen GPIO-Pin anzuschließen wird mit hoher Sicherheit ihren RPi zerstören.

Software

  1. Jetzt ist die Zeit gekommen, die RPi Softwaredistribution Ihrer Wahl downzuloaden, diese auf die SD-Karte zu kopieren und einzulegen. Für erste Tests reicht die Verbindung via micro-USB Kabel zur Stromversorgung falls keine Motoren verwendet werden - ansonstens benötigt man ein 4A 5V Netzteil. Wir verwenden die Raspbian Distribution und die folgenden Schritte sind für diese Distribution gedacht.
  2. Verbinden Sie die Kamera. Das Kabel noch nicht verlegen.
  3. Sie müssen Overclocking konfigurieren (auf 1GHz), mittels sudo raspi-config, Overclock, zumindest High, vorzugsweise Turbo. Für Turbo empfehlen wir eine stärkere Stromversorgung zum Testen (mindestens 2A). Wir haben weiters ein kleines Heatsink am Hauptprozessor angeklebt um Überhitzungen zu vermeiden.
    Die Kamera muß ebenfalls in raspi-config aktiviert werden. Ein Reboot ist anschließend notwendig.
  4. Sie benötigen ein funktionierendes WLAN (d.h. existierende WLAN Infrastruktur, zB ein WLAN Router). Konfigurieren Sie WLAN und richten Sie es so ein das der RPi beim Hochfahren automatisch verbindet. Konfigurieren Sie auch SSH, sodaß fürs Troubleshooting eine Remotezugang zur Verfügung steht.
  5. Testen Sie die Internetverbindung und führen Sie die folgenden Kommandos aus, um notwendige Pakete zu installieren:
    apt-get update
    apt-get install netcat-openbsd libncurses5-dev
    
  6. Loggen Sie sich in den RPi ein und editieren Sie /etc/inittab as root. Sie müssen die letzte Zeile auskommentieren, da diese einen Getty auf ttyAMA0 startet und wir diesen seriellen Port für den Motor-Controller benötigen. Es sollte ausreichen, den Getty danach zu killen und ein HUP-Signal an Init zu senden, aber sicherheitshalber sollte man neu hochfahren.
  7. Starten Sie raspivid für eine Kameraanzeige und verlegen Sie dann das Kamera-Kabel. Positionieren Sie die Kamera vor dem Ethernet-Stecker mit dem Kabel nach rechts zeigend (d.h. 90° verdreht) und verlegen Sie das Kabel unter dem WLAN USB Adapter. Wenn Sie farbige Linien im Videobild sehen, ist das Kabel zu stark gebogen. Wechseln Sie zwischen Kabel verlegen und Videobild überprüfen, es ist manchmal etwas schwierig. Sie müssen u.U. den WLAN USB Adapter aus- und wieder einstecken.
  8. Laden Sie die Binärdateien vom Link auf der rechten Seite herunter. Alternativ können Sie die Sourcedateien downloaden und alles selbst kompilieren, das benötigt allerdings eine C++ Entwicklungsumgebung am Raspberry Pi selbst, wofür u.U. eine größere SD-Karte notwendig ist.
  9. Kopieren Sie das Programm TCserver auf den RPi und starten es manuell über SSH. Es sollte "Connected" und danach lauter Punkte ausgeben. Falls nicht, bitte vorherige Schritte überprüfen und ggf. angezeigte Fehlermeldungen (wenn vorhanden) berücksichtigen.
  10. Während TCserver am RPi läuft, installieren Sie TCclient-debug.apk auf einem Android-Gerät Ihrer Wahl (min. Android 4.1). Das Android-Gerät muß mit dem gleichen WLAN verbunden sein wie der RPi. TCclient nimmt eine IP-Adresse des RPi von 192.168.42.42 an, falls das nicht stimmt kann man diese über Klick auf das Logo (Mitte unten) ändern (TCclient wird die Änderung auch bei einem Neustart berücksichtigen). Es sollte sofort möglich sein den Roboter zu kontrollieren. Falls nicht, tippen Sie ein paar Mal auf den Hintergrund außerhalb der Steuerung - das startet einen neuen Verbindungsversuch. Ganz oben ist eine Steuerung für die LED Helligkeit - gut für erste Tests da sich hier nichts bewegt. Im Bewegungsrad tippen führt sofort zu einer Bewegung des Roboters, dafür sollte man dann besser auf Batterien umsteigen.
  11. Wenn alles funktioniert, kopieren Sie TCserver nach /usr/local/bin und fügen Sie die folgende Zeile zu /etc/rc.local hinzu:
    /usr/local/bin/TCserver &
    Das wird dafür sorgen, das TCserver bei jedem Neustart automatisch gestartet wird.

Anschließend sollte es in etwa so aussehen.



Viel Spaß! Wenn etwas nicht so funktioniert wie es sollte, kontaktieren Sie uns.