Wiimote, Ubuntu og Mediasenter

WiimoteJeg har kjøpt meg ny TV, og det fikk ønsket om å forbedre mediasenteret mitt til å skyte fart. Jeg ble skikkelig overrasket over hvor enkelt det egentlig er å sette opp et godt mediasenter med Ubuntu og en Wiimote.

Wiimoten hadde jeg fra før, så ekstrainvesteringen var også minimal. Det eneste jeg trengte i tillegg var en Bluetooth USB-penn og et par stearinlys (forklaring følger).

Wiimote kort forklart

Wiimoten består i hovedsak av to komponenter som kommuniserer med Wii-en din over Bluetooth.

  • Et gyroskop som registrerer orienteringen til Wiimoten. Dersom du rister eller tipper på Wiimoten blir dette registrert, og kan prosesseres av Wii-en eller en PC.
  • Et relativt høyoppløselig kamera, som registrerer infrarødt lys. Med en infrarød LED kan man derfor kalkulere hvor Wiimoten peker, og med to (eller fler) kan man også kalkulere avstanden fram til diodene.

Begge disse funksjonene kan benyttes for å fjernstyre en PC.

Dette trenger du

  • En USB bluetooth pen, eller eventuelt innebygget Bluetooth.
  • En Wiimote.
  • En eller flere infrarøde dioder, eller noe annet som avgir infrarødt lys (for eksempel stearinlys).

Stearinlys kan være litt klønete. Har man en Wii må den stå på for at «sensor bar»-en skal fungere. Det kan også være litt klønete, for dersom man prøver å synkronisere Wiimoten, så vil den koble seg til Wii-en og ikke PC-en.

Alternativt kan man også konstruere en infrarød «sensor bar» selv, som kan kobles til USB-porten på PC-en. Jeg er ingen ekspert på området, men det er en ganske liten investering, så det kan være verdt å prøve seg.

Det finnes også ferdige produkter å få kjøpt, til og med trådløse «sensor bars».

Installasjon og testing

I Gutsy Gibbon (7.10) legger du inn libcwiid0, lswm, wmgui og wminput:

sudo aptitide install libcwiid0 lswm wmgui wminput

I Hardy Heron (8.04) legger du inn libcwiid1, lswm, wmgui og wminput:

sudo aptitide install libcwiid1 lswm wmgui wminput

Det er fullt mulig å installere verktøyene for å bruke en Wiimote på eldre Linux-distribusjoner også, men da må du kompilere programvaren selv. Det er også ganske enkelt. Bare sørg for å ha build-essential installert før du begynner, så følger du bare brukerveiledningen om CWiiD.

Åpne wmgui ved å skrive følgende i et terminalvindu (du finner den forresten også i menyen under Tilbehør):

wmgui

Velg Connect fra File-menyen, og trykk ned knappene 1 og 2 samtidig på Wiimoten (Wii-en må ikke stå på, for da vil den synkronisere med den i stedet for PC-en). Fungerer alt, skal Connected dukke opp nederst til venstre. Nå skal du kunne se grafer med informasjon som hentes fra gyroskopet i Wiimoten ved å velge Acc Data fra Settings-menyen. I menyen kan du også velge å slå på «Rumble»-funksjonen og IR-kameraet. Ved å peke Wiimoten mot infrarøde lyskilder skal du nå kunne få dem opp som prikker på skjermen.

Nå skal alt være klart for å teste om Wiimoten kan brukes til å styre musepekeren. Kjør:

sudo wminput

og trykk 1 og 2 på wiimoten. Det skal stå Ready når den er tilkoblet.

Du skal nå kunne «tilte» på Wiimoten for å flytte musepekeren, og A og B skal kunne brukes som henholdsvis venstreklikk og høyreklikk.

Wiimote med «Sensor Bar»

Wiimote og Elisa Media CenterDu blir ikke veldig produktiv ved å bruke denne metoden, så trykk Ctrl+C for å avslutte wminput, så tester vi IR-kameraet i stedet.

Det første vi må gjøre er å skrive inn noen endringer i xorg.conf. Det kan være en idé å ta en kopi først, for feil i xorg.conf kan i verste fall gjøre at du ikke kommer inn igjen etter en omstart.

sudo cp /etc/X11/xorg.conf /etc/X11/xorg.conf.sikkerhetskopi

Se mer om hvordan du kan legge tilbake sikkerhetskopien på Absolute Beginner Talk.

Så åpner vi den slik:

gksudo gedit /etc/X11/xorg.conf

Etter siste InputDevice-seksjon legger du til følgende:

Section “InputDevice”
Identifier “Wiimote”
Driver “evdev”
Option “Name” “Nintendo Wiimote”
EndSection

Og følgende linje må inn under ServerLayout-seksjonen:

InputDevice “Wiimote” “AlwaysCore”

Lagre, lukk og start X på nytt ved å trykke Ctrl+Alt+Backspace.

Det er ikke spesielt heldig å kjøre wminput som root. Derfor gjør vi en liten endring slik at alle som ligger i admin-gruppa får lov til å kjøre den:

sudo sh -c 'echo "KERNEL==\"uinput\", GROUP=\"admin\"" > /etc/udev/rules.d/50-cwiid-input.rules'
sudo /etc/init.d/udev restart

Du kan selvfølgelig lage en annen gruppe og bruke noe annet enn admin i kommandoen over, dersom du ønsker det.

Nå skal du kunne kjøre wminput uten sudo. Wminput kan ta en konfigurasjonsfil som argument. Det ligger allerede en fil som heter ir_prt i pakka som er ment for IR-kameraet, men denne inneholder en feil. Vi tar derfor opp denne fila også:

gksudo gedit /usr/local/etc/cwiid/wminput/ir_ptr

Slett tilde-tegnet foran ABS slik at linjene blir slik:

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

Så kan vi kjøre wminput igjen, og bruke fila vi har redigert.

wminput -c ir_ptr

Har du en infrarød diode eller et par tente stearinlys skal du nå kunne styre musepekeren. Jeg har laget min egen konfigurasjonsfil for Elisa Media Center.

Automatisk oppstart av wminput

Siste skritt er å sette opp automatisk oppstart av wminput. Bruker du Hardy Heron kan du kjøre

wminput -d -c ir_ptr

for å starte wminput som en bakgrunnsprosess. Hvis ikke kan du for eksempel bruke

wminput -w -c ir_ptr

Med «-w» vil ikke wminput gå i time-out.

En av disse kommandoene kan legge inn under oppstart, enten som en tjeneste, eller bare som en prosess som starter etter pålogging. Det siste er kanskje det enkleste i Ubuntu. Gå inn på System->Brukervalg->Sesjoner, og velg Legg til under Oppstartsprogrammer. Skriv inn et fornuftig navn og kommandoen over.

For mer informasjon om hvordan du kjører kommandoen som en tjeneste og hvordan du lager script for oppstart, omstart og avslutning av tjenesten, se Ubuntu dokumentasjonssidene og Ubuntujourney.

3 kommentarer til “Wiimote, Ubuntu og Mediasenter”


  • Dette må jeg teste når jeg får tid. Virket litt genialt. Har sett noen youtube filmer med det men aldri orket å sjekke hvordan man gjør det. Hva synes du om Compiz Fusion?

  • Jeg bruker Compiz selv, der jeg har skjermkort med gode 3D drivere. Det begynner å bli utrolig stabilt, og har en del nyttig funksjonalitet. Blant annet bruker jeg Expose-funksjonaliteten mye, samt Application Switcher og Zoom. Mulighetene til å tilordne hurtigtaster, og lage litt spesielt oppsett for enkeltvinduer. Det gjør at du kan gjøre fiffige ting som å legge transparente vinduer fast på skrivebordet.

    Ellers er mye av det andre eyecandy. Det er likevel god reklame for Linux når de får til alt dette med mye mindre systemressurser enn Windows.

  • Dødstøft at du la ut denne lille tutorial’en, Audun :) Neste steg nå er å leke seg litt med Blender Game Engine kanskje. Har prøvd Johnny Lee’s test på windows med FaceTracking, og det hadde vært utrolig tøft å få til en løsning som kommuniserer med Blender :)

Skriv en kommentar




Bad Behavior has blocked 104 access attempts in the last 7 days.