ubuntuusers.de

ubuntuusers.deWikiWiimote

Wiimote

Dieser Artikel wurde für die folgenden Ubuntu-Versionen getestet:

Wiki/Icons/joystick.png Dieser Artikel beschreibt die Verwendung der Wii-Fernbedienung (in Folgendem Wiimote) als Eingabegerät für den Computer. Neben der Wiimote wird eine funktionierende Bluetooth-Erweiterung vorausgesetzt.

Installation

Folgendes Paket muss installiert [1] werden:

  • wminput (universe)

Wiki/Vorlagen/Installbutton/button.png mit apturl

Paketliste zum Kopieren:

sudo apt-get install wminput 

sudo aptitude install wminput 

Hat man das o. g. Pakete installiert, kann sofort getestet werden, ob die Bedienung via Wiimote funktioniert. Dazu muss das Modul uinput in den Kernel geladen werden[2][3]:

sudo modprobe uinput 

Ist dies geschehen, kann man die Wiimote mit dem Computer verbinden:

sudo wminput -w 

Dabei müssen gleichzeitig die Tasten 1 und 2 der Wiimote gedrückt werden. Steht die Verbindung, gibt die Konsole ein Ready aus und man kann testen.

Einrichtung

MAC-Adresse der Wiimote

Die MAC-Adresse der Wiimote kann beim Verbindungsaufbau hilfreich sein, etwa dann, wenn es etwas schneller gehen soll. Folgender Befehl verrät sie:

hcitool scan 

Dabei müssen die Tasten 1 und 2 der Wiimote gedrückt werden. Nun könnte ein Aufruf so aussehen:

sudo wminput 00:1D:BC:2C:32:3E #MAC muss angepasst werden! 

Wiimote als normaler Nutzer benutzen

Natürlich ist es mühsam, jedes Mal, wenn man die Wiimote nutzen möchte, sudo zu verwenden. Deshalb sollte man das Modul uinput in /etc/modules eintragen, damit es beim Systemstart automatisch in den Kernel geladen wird[4]. Danach sollte (es geht auch ohne, wird aber hier nicht beschrieben) eine neue Gruppe (hier wiimote) angelegt werden [5]:

sudo addgroup wiimote 

In diese trägt man jene Benutzer ein, die die Wiimote nutzen können sollen:

sudo usermod -aG wiimote BENUTZERNAME 

Hat man die Gruppe erstellt und alle Benutzer eingetragen, wird eine udev-Regel erstellt[6]; Inhalt:

KERNEL=="uinput", GROUP="wiimote", MODE="0666"

und in /etc/udev/rules.d gespeichert, wobei darauf zu achten ist, dass die Datei auf .rules endet, etwa 71-wiimote.rules. Spätestens nach einem Reboot sollte sich nun die Wiimote mittels z. B.

wminput -w 

ohne sudo verbinden lassen.

Wminput automatisch mit einer grafischen Sitzung starten

Was in jedem Falle funktionieren sollte, ist das anlegen einer Datei ~/.xsessionrc, in die man wminput einträgt (Die Schalter - hier -w - können dabei natürlich angepasst werden):

echo "wminput -w &" > ~/.xsessionrc 

Wer keine ~/.xsessionrc verwenden möchte, entnimmt Möglichkeiten zum automatischen Starten bitte der Dokumentation des Fensterverwalters bzw. der Desktop-Umgebung, den bzw. die er verwendet.

Sensorleiste

Sensorleiste (Allgemeines)

Nutzt man die Wiimote mit einer Sensorleiste, so muss das Plugin ir_ptr in der Konfigurationsdatei mit geladen werden. Dies erreicht man, indem man die Zeilen

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

der Konfigurationsdatei hinzufügt oder die in /etc/cwiid/wminput vorhandene Konfigurationsdatei nutzt:

wminput -c ir_ptr -w 

Diese Konfigurationsdatei inkludiert die Datei /etc/cwiid/wminput/buttons, sodass Änderungen für die Belegung der Knöpfe der Wiimote hier vorgenommen werden sollten. Falls die Steuerung nicht funktioniert oder nicht alle Bereiche des Bildschirms erreicht werden, kann es helfen, das Plugin über die Konfigurationsdatei wie folgt zu laden:

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

Sensorleiste (Nintendo)

Die Bedienung der Wiimote ohne Sensorleiste ist unkomfortabel, da sich die in der Wiimote eingebaute Infrarot-Kamera im Normalfall, also bei einer Benutzung mit der Konsole, an einer Infrarotlichtquelle orientiert. Um dieses Problem zu lösen, kann man die in der Wii eingebaute Sensorleiste verwenden, wobei man Acht geben muss, dass die Wiimote sich nicht auf die Wii verbindet, sondern auf den Computer. Hat man keine Wii oder möchte nicht die Sensorleiste der Wii verwenden, muss man sich was anderes einfallen lassen.

Sensorleiste (Marke: Eigenbau)

Möchte man nicht auf Teelichter oder Glühlampen, was auch funktionieren sollte, zurückgreifen, gilt: Zum Herstellen eines LED-Lämpchens benötigt man, möchte man es so einfach wie möglich halten, eigentlich nur eine Knopfzelle (etwa CR2032) und eine Leuchtdiode (etwa 3 mm). Schiebt man die Knopfzelle zwischen die Anode und die Kathode der Leuchtdiode, sollte diese zum Leuchten beginnen. Es wird natürlich empfohlen, im produktiven Einsatz noch allerwenigstens mit einem Vorwiderstand zu arbeiten, um die Lebenszeit des Lämpchens zu erhöhen. Eine umweltschonendere Stromquelle wäre natürlich auch angebracht. Beispiele, wie man eine eigene Sensorleiste herstellt, finden sich im Internet, z. B. hier {de}.

Konfiguration

Die Konfigurationsdateien von wminput finden sich im Verzeichnis /etc/cwiid/wminput. Man kann diese auch in seinem Heimatverzeichnis ablegen, dann aber ist es nötig, beim Aufruf von wminput den absoluten Pfad anzugeben, also etwa:

wminput -c ~/Pfad/zur/Config -w 

Eine Übersicht aller belegbarer Knöpfe auf der Wiimote, dem Classic- und dem Nunchuck-Controller findet sich in /usr/share/doc/wminput/wminput.list. Möchte man genau wissen,mit was man diese Knöpfe belegen kann, muss man /usr/include/linux/input.h studieren. Eine Übersicht aller Schalter von wminput findet man in

man wminput 

Tipps & Tricks, optionale Software

wmgui

Mit wmgui steht ein grafisches Programm zur Verfügung, mit dem die Wiimote überwacht werden kann. Es kann über das Paket

  • wmgui

Wiki/Vorlagen/Installbutton/button.png mit apturl

Paketliste zum Kopieren:

sudo apt-get install wmgui 

sudo aptitude install wmgui 

installiert werden.

python-cwiid

Mit dem Paket

  • python-cwiid

Wiki/Vorlagen/Installbutton/button.png mit apturl

Paketliste zum Kopieren:

sudo apt-get install python-cwiid  

sudo aptitude install python-cwiid  

kommt das Python-Modul cwiid auf den Rechner. Was damit u. a. gemacht werden kann, testet man am besten kurz auf der interaktiven Python-Konsole:

>>> import cwiid, time
>>> wii = cwiid.Wiimote() #Taste 1 und 2 der Wiimote druecken
>>> for i in range(16):
...  wii.led = i
...  time.sleep(.5)
... 
>>>

Ein erweitertes Testskript kann bei Brian Hensley heruntergeladen werden:

wget https://sites.google.com/site/brianhensleyfiles/wiimotetest.py 

Whiteboard

Die Möglichkeit, die Wiimote in Verbindung mit einem Beamer als Whiteboard zu benutzen, ist bemerkenswert. Es gibt verschiedene Programme, die sich als Whiteboard nutzen lassen und aus Ubuntu-Quellen installierbar sind:

  • gtkwhiteboard

Wiki/Vorlagen/Installbutton/button.png mit apturl

Paketliste zum Kopieren:

sudo apt-get install gtkwhiteboard 

sudo aptitude install gtkwhiteboard 

oder

  • xournal

Wiki/Vorlagen/Installbutton/button.png mit apturl

Paketliste zum Kopieren:

sudo apt-get install xournal 

sudo aptitude install xournal 

Medienabspieler mit Wiimote bedienen

Wie sich ein Medienabspieler mit der Wiimote bedienen lässt, soll hier an einem einfachen Beispiel mit MOC - music on console gezeigt werden. Eine Datei, hier ButtonsMoc, mit diesem Inhalt wird benötigt:

#ButtonsMoc
Wiimote.A       = KEY_ENTER
Wiimote.B       = KEY_S
Wiimote.Up      = KEY_UP
Wiimote.Down    = KEY_DOWN
Wiimote.Left    = KEY_LEFT
Wiimote.Right   = KEY_RIGHT
Wiimote.Minus   = KEY_B
Wiimote.Plus    = KEY_N
Wiimote.Home    = KEY_TAB
Wiimote.1       = KEY_L
Wiimote.2       = KEY_SPACE

Hat man diese erstellt, legt man sie in /etc/cwiid/wminput' ab. Nutzt man die Wiimote mit einer Sensorleiste, können noch die Zeilen

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

hinzugefügt werden. Danach kann wminput aufgerufen werden:

wminput -c ButtonsMoc -w 

Startet man jetzt Moc, kann getestet werden.

Diese Revision wurde am 24. Juni 2013 17:13 von frustschieber erstellt.
Die folgenden Schlagworte wurden dem Artikel zugewiesen: Hardware, Multimedia, Whiteboard, Wii, Nintendo, Controller