Wii: IR

Inledning

Det är nu dags att testa IR funktionen i Nintento Wiis trådlösa handkontroll. Denna artikel bygger på Wii: Inledning och Wii: Spaceship.

IR står för infra red och är samma teknik som används när fjärrkontroller skickar sina signaler. Handkontrollen är en slags omvänd fjärrkontroll. Det sitter en IR-läsare i toppen på handkontrollen som kan läsa av IR källor. Genom att sätta ut IR-dioder i närheten av skärmen/TV:n så går det att avläsa om handkontrollen siktas mot skärmen.

Genom att sätta ut minst två IR-källor så går det att avläsa siktet med förvånansvärt bra precision. Detta ska vi använda för att styra ett sikte på skärmen!

Dags att söka TE4!

Ansökningen är igång!
25 april till 15 maj!
ansök via skanegy.se

Öppet hus/info-möte den 8:e maj kl. 17-18 hos NTI Lund, Sankt Lars park!

Är du intresserad av programmering, t.ex. spelutveckling, appar eller webbserverprogrammering?
Går du på Teknikprogrammet på gymnasiet och läser Programmering 1? (eller har gått och är max 22 år)

Till höst startar jag ett nytt 4:e tekniskt år tillsammans med NTI i Lund för dig som vill bli Gymnasieingenjör. Målet är att du efter 4:e året kommer ut i arbete inom mjukvaruutveckling!

/MVH
Jonas Nilsson
skapare csharpskolan.se

IR-källor

Vi rekommenderar att du bygger en liten låda med två IR-dioder och ett batteri som du lätt kan placera i närheten av skärmen. Detta låter lite besvärligt och det går faktiskt att lösa på ett mycket enklare sätt. Värmeljus! Placeras helt enkelt två tända värmeljus i närheten av skärmen med ca 5 till 15 cm mellanrum.

OBS: var försiktig med ljusen så att de inte står på ett sådant sätt att den kan välta eller slås omkull. Glöm inte att släcka dem när du lämnar rummet!

bild

Test

Vi skapar ett XNA projekt och lägger till WiimoteLib precis som i artikel Wii: Spaceship. Vi behöver en textur till siktet samt en X- och en Y-position för siktet. Vi har valt att kalla dessa variabler för aimX och aimY.

Kontrollen och WiimoteLib räknar ut en punkt som ligger mellan de två IR-källorna. Denna punkt beskrivs som ett X- och ett Y-värde. Genom klassen WiimoteState kan vi nå dessa värden via ws.IRState.MidX och ws.IRState.MidY.

Dessa punkter är den beräknade mittpunkten med värden mellan 0.0 till 1.0 på båda axlarna. Står du nära IR-källorna så får du röra kontrollen mera än om du står längre ifrån. Detta kan du även kompensera genom att flytta IR-källorna mer isär.

För att översätta punkten vi får via IR till skärkoordinater så måste vi multiplicera med skärmens pixelbredd och pixelhöjd. I X-led måste vi dock invertera värdet för om vi siktar till vänster så hamnar mittpunkten längre till höger för handkontrollen.

Uppritningen är sedan enkel. Vi ritar upp siktet på position aimX och aimY.

bild

Ladda hem och testa exemplet! Med IR kan du göra nästan vilket enkelt spel till ett höjdarspel

Kommentera

E-postadressen publiceras inte. Obligatoriska fält är märkta *

Scroll to top