[[Vorlage(Archiviert)]] {{{#!vorlage Wissen [:Pakete_installieren: Installation von Programmen] [:Terminal: Ein Terminal öffnen] [:sudo: Rootrechte] [:Kernelmodule: Umgang mit Kernelmodulen (Treibern)] [:Benutzer_und_Gruppen: Benutzer und Gruppen] [:Editor: Einen Editor öffnen] }}} [[Inhaltsverzeichnis(2)]] [[Bild(Wiki/Icons/joystick.png, 50, left)]] 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: {{{#!vorlage Paketinstallation wminput, universe }}} 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]: {{{#!vorlage Befehl sudo modprobe uinput }}} Ist dies geschehen, kann man die Wiimote mit dem Computer verbinden: {{{#!vorlage Befehl 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: {{{#!vorlage Befehl hcitool scan }}} Dabei müssen die Tasten 1 und 2 der Wiimote gedrückt werden. Nun könnte ein Aufruf so aussehen: {{{#!vorlage Befehl 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]: {{{#!vorlage Befehl sudo addgroup wiimote }}} In diese trägt man jene Benutzer ein, die die Wiimote nutzen können sollen: {{{#!vorlage Befehl 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. {{{#!vorlage Befehl 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): {{{#!vorlage Befehl 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: {{{#!vorlage Befehl 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. [http://www.zimmer101.de/wii-spiele/tipps-zur-wii.html#wiisensorleistebauen 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: {{{#!vorlage Befehl 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 [http://www.cs.fsu.edu/~baker/devices/lxr/http/source/linux/include/linux/input.h?v=2.6.11.8 /usr/include/linux/input.h] studieren. Eine Übersicht aller Schalter von wminput findet man in {{{#!vorlage Befehl 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 {{{#!vorlage Paketinstallation wmgui }}} installiert werden. == python-cwiid == Mit dem Paket {{{#!vorlage Paketinstallation 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: {{{#!vorlage Befehl 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 [:ActivInspire:Programme], die sich als Whiteboard nutzen lassen und aus offiziellen Paketquellen installierbar sind. == 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: {{{#!vorlage Befehl wminput -c ButtonsMoc -w }}} Startet man jetzt Moc, kann getestet werden. = Links = * [http://www.wiimoteproject.com/ Wiimote Project] {en} * [http://abstrakraft.org/cwiid/ Offizielle CwiiD Homepage] {en} * [http://wiibrew.org/wiki/Main_Page wiibrew.org] {en} - Wiki mit vielen Informationen rund um die Wii * [http://www.wii-homebrew.com/ wii-homebrew.com] {de} - Noch mehr (deutschsprachige) Informationen * [github:pnegre/python-whiteboard:python-whiteboard] {en} * [http://www.stepd.ca/gtkwhiteboard/ GTK Wiimote Whiteboard] {en} # tag: Hardware, Multimedia, Whiteboard, Nintendo, Wii, Controller