Freitag, 19. April 2024

Wiimote

Aus Spielen-unter-Linux Wiki by linuxgaming.de

Dies ist eine alte Version. Zeitpunkt der Bearbeitung: 20:36, 5. Dez. 2011 durch Chemical Brother (Diskussion | Beiträge).
(Unterschied) ← Nächstältere Version | Aktuelle Version (Unterschied) | Nächstjüngere Version → (Unterschied)
Wechseln zu: Navigation, Suche
Diese Anleitung setzt die Kenntnis folgender Artikel vorraus:


Wiimote

Die Wiimote
Basisdaten
Entwickler: Nintendo
Architektur: x86, x64
Version: {{{Version}}}
Sprache: {{{Sprache}}}
Plattform(en): Linux
Lizenz: {{{Lizenz}}}
Webseite: Homepage
Diskussion: SuL-Forum

Inhaltsverzeichnis


Beschreibung der Hardware

Die Wiimote (auch Wii-Fernbedienung) ist der Controller für die Spielekonsole "Wii". Die Besonderheiten daran sind die Beschleunigungssensoren, die Gesten wie den Schwung mit einem Tennisschläger oder Golfschläger erkennen können, eine Infrarotkamera, die dem Controller die Möglichkeit gibt, eine Mauszeigerfunktion zu integrieren und die Erweiterbarkeit durch einen "Nunchuck-Controller" oder einen "Gitarrencontroller".

Da der Controller Bluetooth nutzt, kann man ihn auch relativ einfach mit Linux verbinden und damit u.a. als (spielerischen) Mausersatz oder auch als Controller für Spiele (oder wenn man den Gitarrencontroller an die Wiimote anschließt eben auch für Spiele wie FretsOnFire.

Hilfreich dabei ist die Software "Cwiid", mit der man die Wiimote verbinden und für Linux nutzbar machen kann.

Seit Linuxkernel 3.1 ist der Treiber für die Wiimote auch im Kernel selbst enthalten.


Installation

aus den Paketquellen

Arch Arch: AUR-Paket (wie man AUR-Pakete installiert)
Debian Debian apt-get install wmgui wminput
Fedora Fedora yum install cwiid
openSUSE openSUSE yast2 -i cwiid
Ubuntu Ubuntu: sudo apt-get install wmgui wminput


Einrichten

Cwiid kommt mit ein paar kleinen Programmen mit, die für sinnvolle Nutzung nötig sind. Aber erstmal muss man die Wiimote mit dem PC verbinden.

1. Ihr braucht ein Bluetooth-Empfangsgerät und Bluetooth bei eurer Linux-Distribution aktiviert. Für gewöhnlich ist es standardmäßig aktiviert.

2. Cwiid benötigt ein Modul, das geladen werden muss. Das macht ihr (mit Root-Rechten) mit dem Befehl:

modprobe uinput

Mit dem Einrichten seid ihr jetzt fast fertig.


Wmgui

Wmgui ist ein kleines Programm mit der man die Wiimote überwachen kann (siehe Screenshot weiter unten). Man kann anzeigen lassen, ob alle Buttons funktionieren (leuchten grün auf), man kann die Beschleunigungssensoren beobachten, die IR-Kamera (zuständig für den "Mausersatz") oder Batteriestand, etc. pp.

Um das Programm zu starten, nutzt den Konsolenbefehl

wmgui

Verbindet die Wiimote (oben auf File --> Connect), drückt 1 + 2 auf der Wiimote (damit die Wiimote gefunden werden kann) und schon kann es losgehen.


Wiimote als Mausersatz

Um die Wiimote als Maus zu nutzen, benötigt ihr erstmal zwei (!) Infrarotquellen. Die einfachste dürfte zB. zwei Teelichter sein oder die "WiiSensorbar" der Wii, die nichts anderes ist als zwei Infrarotlichtquellen an den jeweiligen Enden. Wenn ihr die Sensorbar nutzen wollt, solltet ihr die Wiimote erst mit dem PC verbinden und dann die Wii anschalten, damit die Sensorbar funktioniert. Ansonsten ist die Wiimote mit der Wii verbunden, was ihr in diesem Falle nicht wollt.

Damit die Wiimote als Maus nutzen kann, startet ihr erstmal das Programm "wminput" aus der Konsole (mit Root-Rechten)

wminput -c ir_ptr -w

Wenn ihr zwei Infrarotquellen (oder eine Sensorbar) habt, dann solltet ihr die Wiimote jetzt als Maus nutzen können. Sollte es nicht funktionieren, müsst ihr die Datei /etc/cwiid/wminput/ir_ptr (mit Root-Rechten) editieren und zwar von

#ir_ptr

include buttons

Plugin.ir_ptr.X = ~ABS_X
Plugin.ir_ptr.Y = ~ABS_Y 

zu

#ir_ptr

include buttons

Plugin.ir_ptr.X = ABS_X
Plugin.ir_ptr.Y = ABS_Y 


Wiimote als Controllerersatz

Im Prinzip ersetzt die Wiimote hier nicht ein Gamepad (mit dieser Methode), sondern ersetzt Tastatureingaben. Man kann jedem Buttondruck einer Taste zuweisen. Dazu editiert man die Datei /etc/cwiid/wminput/buttons (mit Root-Rechten). Die Datei sieht kann zB so aussehen:

#buttons                                             

Wiimote.A               = BTN_LEFT
Wiimote.B               = BTN_RIGHT
Wiimote.Up              = KEY_UP
Wiimote.Down    = KEY_DOWN
Wiimote.Left    = KEY_LEFT
Wiimote.Right   = KEY_RIGHT
Wiimote.Minus   = KEY_BACK
Wiimote.Plus    = KEY_FORWARD
Wiimote.Home    = KEY_HOME
Wiimote.1               = KEY_PROG1
Wiimote.2               = KEY_PROG2

Nunchuk.C               = BTN_LEFT
Nunchuk.Z               = BTN_RIGHT

Classic.Up              = KEY_UP
Classic.Down    = KEY_DOWN
Classic.Left    = KEY_LEFT
Classic.Right   = KEY_RIGHT
Classic.Minus   = KEY_SPACE
Classic.Plus    = KEY_ENTER
Classic.Home    = KEY_ESC
Classic.A               = KEY_X
Classic.B               = KEY_Y
Classic.X               = KEY_S
Classic.Y               = KEY_A
Classic.ZL              = KEY_C
Classic.ZR              = KEY_C
Classic.L               = KEY_Q
Classic.R               = KEY_W

Normalerweise würde ich hier noch auf das Wiki von Cwiid verweisen für weitere Information, nur leider ist die Seite gerade im Umbruch (Wechsel von SVN zu GIT + Website gewechselt), weswegen ich das hier später machen werde, wenn die Dokumentation wieder online ist.

Um die Wiimote jetzt als Controllerersatz zu nutzen, gebt in die Konsole (mit Root-Rechten) ein

sudo wminput -w

Dabei sind die Beschleunigungssensoren noch aktiviert, weswegen es sein kann, dass sich eure Maus auf einmal durch die Gegend bewegt.

Um das in Spielen zu benutzen, müsst ihr eventuell die Tastaturbelegung im Spiel selbst nochmal ändern.


Wiimote als Controller verbinden

Um die Wiimote als eigentlichen Controller zu verbinden, kann man ein paar Konsolenbefehle benutzen. Zum Scannen nach der Wiimote (mit Rootrechten):

hcitool scan

Als Ausgabe erhält man dann zum Beispiel:

        00:19:1D:67:C1:1C       Nintendo RVL-CNT-01

Ersteres ist die Adresse, letzteres die Bezeichnung. Verbinden kann man die Wiimote jetzt mit dem PC entweder mit (folgende Befehle alle mit Rootrechten):

hidd --search

Oder direkt mit der Adresse:

hidd –-connect 00:19:1D:67:C1:1C

Um die Verbindung zu trennen benötigt man:

hidd --unplug 00:19:1D:67:C1:1C


Weblinks

Cwiid Homepage


Screenshots

Wmgui zum Überwachen der Wiimote
Ing0 und wie man die Wiimote mit Teelichtern nutzt


--Chemical Brother 19:49, 1. Jan. 2010 (UTC)