Donnerstag, 22. März 2018

Nintendo Switch: Labo-artiges ferngesteuertes Fahrzeug

Labo ist noch nicht käuflich erhältlich, aber warum sollten wir warten? Warum sollten wir 70€ für Pappe ausgeben? (Ja ich weiß, ein Teil davon ist für die Cartridge.) Ich musste einfach mein eigenes per Vibration der Joy Cons angetriebene Fahrzeug bauen nachdem libnx Rumble Support bekommen hat. Dieses Projekt ist komplett open source!

Die Software

Zur Software kann man nicht viel sagen, da sie hauptsächlich auf den HID Beispielen (https://github.com/switchbrew/switch-examples/tree/master/hid) basiert. Genauer gesagt: es nutzt irsensor, touch-screen und vibration. Aber beim Entwickeln der Anwendung war ich davon überrascht, wie viele Features der Switch verwendet werden: abnehmbare Controller mit drahtloser Verbindung, die IR Kamera, starke Rumble Motoren und Multi Touch. Wenn man die linke Touchscreenhälfte drückt bewegt sich das Fahrzeug nach links, sonst nach rechts.
Mit Hilfe des Rumble Beispiels von libnx war es kein großes Problem eine gute Frequenz mit einem starken Rumble Effekt zu finden. Ich habe den Quellcode so verändert, dass die genutzten Frequenzen auf dem Bildschirm ausgegeben werden und dann notiert und sie in der Anwendung verwendet.
Die Framerate der IR Kamera ist ziemlich schlecht (ungefähr ein Bild pro Sekunde, vielleicht sogar weniger). Das Beispiel für die Kamera hat aber das gleiche Problem.
Die Rumble Unterstützung von libnx scheint etwas fehlerhaft zu sein. Deshalb veröffentliche ich kein fertiges Build sondern nur den Quellcode: https://filetrip.net/dl?2gsZEXYTZF

Die Hardware

Der erste Prototyp wurde aus Pappe hergestellt. Aber dann ist mir aufgefallen, dass man Pappe nicht anständig debuggen kann (man kann nicht einfach etwas an etwas anderem befestigen und es danach wieder lösen, ein falscher Schnitt und die ganze Arbeit ist Müll). Aus dem Grund wurden die späteren Prototypen mit einer Lego Technic Basis gebaut. Hier ist ein Link zu einer Datei von dem 3D-Modell der Lego-Basis die ich verwendet habe. Man kann sie mit dem Lego Digital Designer (https://www.lego.com/en-us/ldd) öffnen: https://filetrip.net/dl?UvOUJORUTy

Anforderungen an das Fahrgestell:
-Sehr eicht; es muss durch die Rumble Motoren bewegt werden können
-Feste Platzierung der Joy Cons; die Vibration muss so direkt wie möglich von den Joy Cons ans Gehäuse weitergeleitet werden
-Haltbar; das Fahrgestell muss längere Vibrationen aushalten
-Kleine Kontaktpunkte zum Boden: größere Kontaktpunkte zum Boden führen zu mehr Reibung -> keine Bewegung
-Richtige Struktur der Kontaktpunkte zum Boden; ich musste mehrere Konfigurationen ausprobieren um eine zu finden, die das Fahrzeug vorwärts bewegt
-Balanciertes (und balancierbares) Gewicht; das Fahrzeug muss gut balanciert sein um sich vorwärts zu bewegen

Es ergibt Sinn das Fahrgestell mit Lego Technic Teilen zu bauen weil sie leicht und haltbar sind und weil sie einfach balanciert werden können (man kann kleine Teile an den Seiten ergänzen um das Gewicht auszugleichen).
Ein Problem ist, dass die Joy Cons nicht genau ins Lego Technic "Rastermuster" passen. Ich habe einige 1x1 Platten und runde Platten angebaut damit sie besser passen. Wusstest du, dass es als illegale Bautechnik angesehen wird wenn man eine 1x2 Platte direkt auf die Löcher einer Technic Stange steckt?
Die Kontaktpunkte zum Boden wurden ähnlich gebaut. 1x1 Platten sind klein und können einfach umpositioniert werden.

Weitere Medien

Ich habe während der Entwicklung noch zwei weitere Videos aufgenommen. Das Erste zeigt die ersten Tests mit dem Rumblebeispiel von libnx während das Zweite ein schon funktionierendes Fahrzeug zeigt.

Besonderer Dank

-yls8
-plutoo
-Alle anderen, die an dem 3.0.0 Homebrew Launcher, libnx und den Switch Beispielen gearbeitet haben.

Keine Kommentare:

Kommentar veröffentlichen