FlyStick — Umbauten

In der CAVE der TU Chemnitz, IWP wird dieses Eingabegerät verwendet, aber auch an der POWERWALL sowie im benachbarten IWU (FhG). Teuer gekauft, aber von überall werden Huddeleien gemeldet.

Handgerät


So sieht er aus. Ein Hohlstecker steckt an seinem Ende, damit der Akku nicht leer läuft.

An den fünf retroreflektierenden (ansonsten gleichartigen) Kugeln wird mit Hilfe mehrerer Infrarot-Kameras (mit IR-Scheinwerfern) die Lage des Flysticks im Raum ermittelt (einige Bildverarbeitung erforderlich).

Für die beiden Knöpfe (einer oben, der andere an der Unterseite) ist ein 869-MHz-Funksender eingebaut. Es ist sogar ein Transceiver (also mit Empfänger), so dass man damit eine störungsfreie, zuverlässige Datenübertragung realisieren kann, oder auch ein Firmware-Update des enthaltenen Mikrocontrollers.

Und das ist der herausgefundene Schaltplan.


Schaltplan, mal schnell „disassembliert“

Der Grund für diese Untersuchung ist die unzuverlässige Übertragung der Steuerkommandos. Noch mehr stört, dass manchmal unkontrolliert Kommandos ausgeführt werden! Dies scheint etwas von der Auslastung des WLANs im Raum, vom Gebrauch von Bluetooth, Handys und Drahtlosmikrofonen abzuhängen. Von der Herstellerfirma wurde keine Verbesserung in Aussicht gestellt.

Beim genauer Analyse des Schaltplans, der Signale und der mechanischen Konstruktion fallen eine Menge Ungereimtheiten auf:

Das ganze Gerät kostete sicherlich einige 100 €! Hand aufs Herz, so etwas nenne ich Fehlkonstruktion!

Erste Umbaumaßnahme: Höhere Abstrahlungsleistung

Ohne die Firmware zu ändern oder den Mikrocontroller zu wechseln.

Zweite Umbaumaßnahme: Einfaches Ladegerät

Mitgeliefert wird ein Standfuß und ein professionelles Ladegerät Ansmann ACS110 traveller. So weit, so gut. Immer wieder kommt es vor, dass das Ladegerät nicht fertig wird mit Laden und die Akkus zerbrät. Das ist eben das Problem der Schnellladegeräte: Volle und noch warme Akkus werden als leer erkannt und geladen, bis sie glühen und kaputt gehen. Wirklich!! Von der Brandgefahr ganz zu schweigen. Ladegeräte, bei denen man die Akkus einlegen muss, haben dafür wenigstens eine Temperaturüberwachung.

Hin wie her, der Flystick wird maximal 1 Stunde pro Tag benutzt und minimal 23 Stunden pro Tag geladen. Wer braucht da einen Schnell-Lader? Richtig: niemand.

Eine Konstantstromquelle samt Miniatur-Trafo passt in den Standfuß und erspart obendrein die ewig störende Wandwarze. Mit 50 mA Ladestrom (viel weniger als ein Zehntel der Nennkapazität) kann man keine Akkus totbrennen. Zum Glück ist der Standfuß genügend dickwandig zum Basteln und bietet genug Hohlraum für den Trafo.

Pardon, Kein Foto vorhanden

Beim Ersatz der Schaltung mit einem besseren Mikrocontroller würde ich von Akkus zu Trockenbatterien umschwenken wollen, das ist letztlich zuverlässiger.

Empfangsteil

Es verbleiben immer noch die gelegentlichen Fehl-Tastendrücke. Obwohl es nun deutlich seltener passiert. Was wohl die Empfangseinheit macht? Wahrscheinlich einfach nur das Signal des Funkempfängers durchreichen.

   
Der Funkempfänger. Gespeist von einem Steckernentzteil.

Beim Anblick habe ich prompt die Hände über den Kopf zusammengeschlagen! Zwei Mikrocontroller! Zwei gleiche Quarze. Womöglich nur zur Baudraten-Konvertierung.

Und das ist der Schaltplan:

 
Schaltplan, mal schnell „disassembliert“

Die Schaltung ist derart trivial, dass diese keiner weiteren Erklärung bedarf.

Neubau

Da die vorhandenen FlySticks nicht für die Zeit des Umbaus abgezogen werden können, wird hier auf Neubau gesetzt. Mit NC-Fräsmaschinen sollte es keine Hürde sein, den Kopf nachzubauen.

Auf PC-Seite geht es stets per USB in den Rechner. Das erspart Wandwarzen und ähnliche Stromversorgungsprobleme. Das Gerät meldet sich schließlich als Joystick mit 2 Tasten und null Hebeln.

 
Unser Nachbau ist kürzer. drahtgebunden: An seinem Ende ist ein 4-poliger Binder-Stecker (Typnummern Kupplung: 719-09-9765-30-04, Einbaustecker: 719-09-9764-70-04) für den USB-Anschluss.

Mechanisch wurde hier das Elektronikteil samt LED und Taster komplett in den verlängerten Plast-Kopf gesteckt. Dadurch kann das Aluminium-Gehäuserohr per Zentralgewinde angeschraubt werden, und die fummeligen radialen Schrauben des Originals entfallen.

drahtgebunden: Im Gehäuse ist genügend Platz für das reichlich lange Kabel zum Buchsenstopfen, welches beim Eindrehen entsprechend verwunden im Innern zu liegen kommt.

drahtlos: Im Gehäuse ist Platz für 2 R3-Primärzellen, so wie im Original. Da die Ruhestromaufnahme extrem gering ist, ist keine Lademöglichkeit notwendig oder vorgesehen. So ist der Stopfen frei von Kabeln und kann problemlos aufgeschraubt werden, etwa zum Batteriewechsel.

drahtgebunden

Einfach zwei Joystick-Knöpfe und ein Joystick-zu-USB-Konverter. Mal ganz einfach. Der Konverter wurde bereits 1× in der Bastelkiste vorgefunden.

Ein weiterer wird mittels V-USB und ATtiny44 aufgebaut. Hier ist die Firmware. Diese gibt sich als Joystick mit 2 Tasten und null Hebeln aus und überträgt pro Report gerade mal 1 Byte mit sinnvollen 2 Bits. Zumindest Windows XP kommt damit problemlos zurecht. Ob es die VR-Software auch tut? - Ja, problemlos!

[Foto]
Leiterplatten-Bestückung als kabelgebundener HID-Joystick. Die zusätzlichen Bauelemente sind 2 Serienwiderstände und 2 Dioden zur Speisespannungsreduktion

drahtlos

Kompletter Ersatz sowohl der Sende- als auch Empfangselektronik, mit folgenden Eigenschaften:

Schaltung Handgerät

Das Handgerät (der eigentliche FlyStick) bekommt immer ein und dieselbe Leiterplatte. Hier der Schaltplan, das Layout oben und unten sowie die Eagle-Quelle (Einsicht). Aufgebaut wird in 3 Bestückungsvarianten. Diese stehen im Schaltplan.
Die Anschlussvarianten hierzu sind:
VarianteAusführung/AnschlüsseX1X2X3X4X5X6X7X8X9D+D–
AMit vorgefundenem USB-Joystick-Konverter (drahtgebunden)-----GNDT1 zum Konv.T2 zum Konv.5 V vom Konv.--
Am Joystick-Port (15-pol. SubD-Buchse)-----Pin 4Pin 2Pin 7Pin 1--
BUSB-HID-Joystick im Mikrocontroller (drahtgebunden)-5 V von USB---GND---D+D–
Cmit UHF-FM-Transceiver RFM12 (drahtlos)-3-V-Batterie +---Batterie -----
B+CFirmware programmierenRESET3..5 VSCKMISOMOSIGND-----

[Foto] [Foto]
Die Schaltung mit den zwei gegenüber liegenden Tasten passt in den FlyStick-Kopf

Schaltung „Empfänger“

Die Schaltung passt in das gern verwendete Reichelt-Kleingehäuse KS21. Die Antenne wurde im Stegreif um die Schaltung herum gelegt (nicht berechnet!). Hier ist das Layout oben und unten zu sehen.

[Foto] [Foto]
Die aufgebaute Schaltung kommt mit nur wenigen Bauelementen aus

Hier habe ich, um Probleme mit dem USB-Bootloader bei hochgezogenem OSCCAL zu umgehen, den 12-MHz-Quarz bestückt.

Firmware

Welch ein Glück, Variante A braucht keine Firmware, der vorgefundene Mikrocontroller ist bereits fertig programmiert. Für die übrigen Varianten wird Firmware benötigt.

Firmware Handgerät mit USB-Kabel (Variante B)

Firmware Handgerät mit UHF-FM-Transceiver (Variante C)

In Arbeit. Vorüberlegungen: Tatsächliche Implementierung: Wegen der spürbaren Latenzzeit und der geringen effektiven Datenrate wurde das Beacon-Konzept verworfen, und der FlyStick sendet bei Tastendruck einfach drauflos. Jedem der drei FlySticks und jedem der drei Empfänger wird je eine von 12 Frequenzen im 433-MHz-Band zugewiesen, nichts weiter. Das Acknowledge kommt vom Empfänger unmittelbar danach. Den RFM12 in Betrieb zu nehmen erwies sich als recht kompliziert, da das Datenblatt keine vernünftige Auskunft über das Funktionsprinzip und das how-to-use gibt. Daher kursieren im Netz jede Menge Halbwahrheiten. Ich habe deshalb etwas auf der o.a. Webseite ergänzt.

Firmware „Empfänger“ (Variante C)

In Arbeit. Vorüberlegungen

Einsatzerfahrungen

In Arbeit.

Bedrahtete FlySticks

Die zwei bedrahteten Geräte funktionieren erwartungsgemäß störungsfrei.

Funk-Flysticks

Bei den drei Funk-FlySticks bin ich bereits bei der Schaltplanerstellung in eine böse Falle getappt: Beim USI des ATtiny44 ist SDO auf MISO und SDI auf MOSI, unabhängig ob SPI-Master oder -Slave. Somit habe ich die falschen Leitungen für die Nutzung von USI angeschlossen, und damit muss das SPI-Protokoll per Software implementiert werden, was so nicht beabsichtigt war.

Die Ruhestromaufnahme liegt bei 0,7 µA. Die zwei R3-Zellen mit angenommenen 500 mAh Kapazität halten somit rechnerisch 70 Jahre; ein Ausschalter erübrigt sich wie geplant. Beim Senden liegt die Stromaufnahme bei 30 mA, in den Sendepausen bei 3 mA (zz. laufen beide Oszillatoren weiter, könnte man noch deutlich reduzieren).

Mitten in der Entwicklungsphase streikte der ATtiny44 vollends. Dies lag schließlich daran, dass der RFM12 ein Reset-Kommando beim Programmieren abbekommen haben muss und daraufhin RES permanent nach LOW zog. Man sollte es also vermeiden, die beiden Reset-Eingänge zu verbinden, wenn man noch genügend Pins frei hat. Schließlich wurden VDI, IRQ und FFIT gar nicht gebraucht.

Ausblick

Es bleibt bei der infrarot-optischen Lageerkennung des FlySticks im Raum. Dies ist aber schon der nächste Wackelkandidat …

Next Generation: Kompletter Neubau (Überlegung)

Bei den V-USB-Projekten ist mir AetherSense aufgefallen. Mit Ultraschall habe ich ja auch schon mal gearbeitet, und dieser erlaubt einfache Entfernungsmessungen in cm-Genauigkeit. Genau das richtige für einen Next-Generation-FlyStick.

Die Positionserkennung erfolgt hierbei durch Aussenden von kodierten Ultrascall-Signalen am FlyStick, den Empfang an mindestens 3 Ecken der Projektionswand und der Berechnung durch Laufzeit und Triangulation. Der Wandler am Handgerät sollte möglichst Kugelcharakteristik haben. Zur Schallgeschwindigkeitsbestimmung wird die Lufttemperatur gemessen.
Vielleicht auch andersherum, zur Energieeinsparung im Handgerät. Dies erfordert allerdings rechentechnisch aufwändige Signaltrennung. Oder Zeitmultiplex und Bewegungsprädiktion mit den Beschleunigungssensoren für angestrebte 100 Messwerte pro Sekunde.

Die Lageerkennung erfolgt wie beim WII-Eingabegerät mit Beschleunigungssensoren sowie einem Magnetkompass. Zugegeben, der Kompass ist das schwächste Glied der Berechnungskette, da er gern durch Fremdfelder verfälscht wird. Eine Alternative wären mehrere Ultraschall-Sender (bzw. Empfänger) am FlyStick.

Um Problemen mit Funknetzen aus dem Weg zu gehen ist eine Infrarotübertragung der Synchronisations- und Bediensignale angedacht. Allerdings beißt sich das mit anderen Infrarot-Fernbedienungen geben. Im VR-Bereich ist die Verwendung von Infrarot zur Fernsteuerung unüblich.

In Stichpunkten die Eigenschaften und Vorteile des Systems:

Alles in allem haben wir es mit einem Local Positioning System (LPS) zu tun.


Henrik Haftmann, letzte Änderung: 28.04.2012