Microsoft Kinect – Halterung im Eigenbau

 Um mal wieder ein klein wenig handwerkliche Arbeiten zu machen, wurde die Kinect-Kamera für eine spätere Montage auf dem Roboter vorbereitet. Da sicher viele sich schon überlegt haben, wie man diese Kamera montieren könnte, hier eine mögliche Lösung dazu.

Als erstes wurde der Fuß der Kamera geöffnet. Hierzu wird die gummierte Seite vorsichtig abgezogen. Vorsichtig deshalb, weil sie später wieder aufgeklebt wird. Unterhalb der Gummiabdeckung befinden sich 4 kleine Torx-Schrauben, die sich aber zur Not auch mit einem Schlitzschraubendreher entfernen lassen. Das sieht dann geöffnet so aus:

 

 

Hier die Gummiabdeckung:

 

In den Fuß der Kinect-Kamera sollen nun 3mm "Gewinde" verbaut werden. Damit die Torx-Schrauben leichter eingesetzt werden können, wird die entfernte Gummiabdeckung wie abgebildet eingeschnitten. Und zwar genau an den Stellen, wo die kreisrunden Abdrücke im Gummi zu sehen sind. Ruhig grob ausschneiden. Bohren in das dünne Gummi hat nicht gut funktioniert, darum einfach per Saitenschneider oder Cutter das Material entfernen:

  

Nun die Kunststoffabdeckung fest aber vorsichtig einspannen und mit einem 3 mm-Bohrer drei Löcher in die gekennzeichneten Stellen bohren (die Stelle beim Metallbügel nicht durchbohren):

   

Danach die überstehenden Rest vorsichtig(!) mit einem großen Bohrer herunter bohren, damit es danach so aussieht:

 

Nun das Gummi wieder aufkleben:

 

Als nächstes drei 3mm-Schrauben von der Unterseite (Gummiseite) durch die Löcher stecken, mit Muttern von innen verschrauben und leicht anziehen:

 

Nun der entscheidende Teil, von dem leider kein Foto vorhanden ist. In dieser Position, wie das Teil auf dem letzten Foto liegt, Heißkleber vorsichtig über die Muttern (mit den durchgesteckten Schrauben laufen lassen. Hierbei gut darauf achten, dass der Kleber 1. möglichst nur in die Kammer rund um die Mutter läuft und 2.  möglichst keine Lufteinschlüsse innerhalb des Heißklebers sind.

Den Kleber ausreichend abkühlen lassen (im Idealfall über Nacht) und danach ggf. überstehende Reste mir einem Cutter vorsichtig entfernen. Das Ergebnis sieht dann hoffentlich so aus:

Wenn man die Schrauebn nun vorsichtig heraus dreht, sieht man *tadah* die neuen Gewinde im Fuß der Kinect-Kamera:

Und hier das Gesamtergebnis (mit einer Schraube). Viel Spaß beim Basteln:

 

  

 

Die hier gezeigte Anleitung führt zum Verlust der Garantie der Kamera und erfolgt auf eigene Gefahr!

In eigener Sache

Wie sicherlich an den hunderten von Bildern und zig Videos erkennbar ist, ist in die Robotikprojekte hier seit 2005 nicht nur viel Zeit, sondern mittlerweile auch viel Geld gesteckt worden. Das ist auch okay so. Jeder der schon einmal mit vergleichbaren Projekten zu tun hatte, wird das verstehen…

Natürlich sind meine Mittel auch nur begrenzt. Und alle Kosten für diese Webseite, für alle Materialen, Messgeräte, Videokameras und sonstige Gadgets wurden von mir vollständig privat finanziert. Und glaubt mir, hätte ich es vorher gewusst… Na, man kann nie wissen. Aber vielleicht ist es auch gut so, dass man das vorher nie weiß. :-)

Um es kurz zu machen: Jeder, der dieses Projekt weiter unterstützen möchte und dazu beitragen will, dass es direcs noch lange weiter gibt, kann dieses gerne via Flattr tun. Bitte nutzt dazu die entsprechenden flattr-Buttons..

 

Und wenn ihr euch schon immer gefragt habt, wer eigentlich hinter direcs steckt, hier gibt es die Antwort

 

 

direcs mit optionaler kleiner GUI

 Um das direcs Hauptprogramm auf dem Roboter optimal nutzen zu können, wurde für den Roboter die GUI neu designt. Der Clou dabei: Wenn das Programm auf einem Gerät gestartet wird, welches im Hostnamen "robot" enthält, wird automatisch die "kleine" neue GUI verwendet. Klein deshalb, weil sie für die Auflösung des Touchscreens auf dem Roboter optimiert wurde (840×542 Pixel). Bisher wurde die GUI beim compile-Vorgang fest ausgewählt. Ferner kann die kleine GUI auf jedem anderen System erzwungen werden, wenn als Startparameter "small" übergeben wird (die große mit "large"). Verzichtet wurde in der kleinen GUI auf keines der bisherigen Elemente, sie wurde nur anders angeordnet – konkret wurde sie auf mehrere Tabs / Reiter verteilt. Und sieht das Ergebnis aus (nur einige Tabs dargestellt):

         

PS.: Die Kinect-Kamera und der Roboter warten zum Zeitpunkt der Screenshots nicht angeschlossen und nur der Simulationsmodus aktiviert.

 

direcs-avrsim – mein direcs Atmel-Simulator

 In der Vergangenheit gab es bekanntermaßen diverse Probleme mit der seriellen Schnittstelle. Um hier beim debuggen nicht immer auf den angeschlossenen Roboter angewiesen zu sein, fiel der Entschluss einen direcs1-Roboter-Simulator zu entwickeln. Ziel sollte es sein eine Software zu haben, die auf dem seriellen Port wie die Software auf dem Atmel Microcontroller Befehle entgegennimmt und genauso "antwortet", also regiert.Gesagt, getan, hier das Zwischenergebnis. Als Name des Simulators wurde direcs-avrsim gewählt. 

Vorher noch eine Erklärung, wie das ganze hardwaretechnisch gelöst wurde, denn es müssen ja dann im Betrieb die Daten zwischen zwei seriellen Ports miteinander ausgetauscht werden; also zwischen der direcs-Software und direcs-avrsim. Ganz einfach, man verbindet einfach zwei serielle Ports mit einem seriellen crossover cable, auch Nullmodem-Kabel genannt. Und wenn am Gerät keine seriellen Ports vorhanden sind, jeweils noch über zwei USB-Seriell-Wandler. Und so sieht das Ganze dann aus:

Von Vorteil ist es, wenn USB-Seriell-Wandler mit einem unterschiedlichen Chip verwendet, dann haben die seriellen Ports unterschiedlichere Namen, wie z.B. hier diese drei:

~/develop/direcs% ls /dev/tty*

crw-rw-rw-  1 root    wheel    2,   0 17 Jun 19:38 /dev/tty
crw-rw-rw-  1 root    wheel   11,  46 19 Jun 16:01 /dev/tty.PL2303-003014FA
crw-rw-rw-  1 root    wheel   11,  44 19 Jun 16:02 /dev/tty.SLAB_USBtoUART
crw-rw-rw-  1 root    wheel   11,  40 14 Jun 21:29 /dev/tty.USA19Hfa141P1.1

Um die grundsätzliche Funktionalität der Adapter und des Kabels sicherzustellen, bietet es sich an diese mit zwei Terminal-Programmen zu testen. Z.B. auf dem Mac mit goSerial oder in der Shell (Konsole) mit minicom:

Bei jedem Programm muss dann jeweils der passende serielle Port gewählt werden und jeden Befehl, den man auf "der einen Seite" dann eintippt, sollte "auf der anderen Seite" genauso erscheinen.

Hier die nun sehr einfache GUI von direcs-avrsim direkt nach dem Start:

Das abgebildete Relais, das Flashlight und die GUI-LEDs entsprechen Aufbauten auf dem realen Roboter. Als Code der hier zur Verwendung kommt, dient dabei natürlich zu 99% der, der ansonsten auf dem Atmel läuft (main.c). Dieser kann – da es ja Standard-C ist – weiterverwendet werden. Die Atmel-spezifischen Anweisungen (Setzen von Registern, Watchdog etc.) sind natürlich nicht implementiert.

Die GUI wartet nun auf die Entgegennahme von Befehlen auf dem seriellen Port – eben genau so, wie sonst der reale Roboter. Hier sieht man den Status nach Erhalt der ersten Befehle (*re# = Reset, Roboter antwortet mit *ok#):

Hier sieht man unter anderem wie das Flashlight eingeschaltet wurde (Befehl *f0on#, Roboter antwortet ebenfalls mit *f0on#):

 

Ebenfalls erkennbar ist die Abfrage zweier Sensoren (*s7# und *s8#). Hier antwortet die GUI zurzeit noch mit immer den gleichen Werten. Sie entsprechen den Werten des AD-Wandlers und ergeben umgerechnet dier 12 und 24. Dieses entspricht der Akku-Überwachung mit 12Volt und 24Volt-Akkus.

Diese Woche gibt es Updates…

 So, lange gab es keinen neuen Artikel… Hintergrund ist, das zurzeit an einer sehr umfänglichen Umstrukturierung an der direcs-Software gearbeitet wird. Hierzu wurde extra im Sourcecode-Repository ein separater Branch eröffnet, da die grundsätzliche Arbeitsweise rund um den seriellen Port geändert wird. Ursache waren diverse Probleme in der Vergangenheit mit der Kommunikation zwischen PC / Mac und dem Roboter. Aber dazu in den nächsten Tagen mehr…