It-udfordringen: Interaktiv lærertaske krævede reverse engineering af Wii-controller

Denne uges it-udfordring handler om en interaktiv lærertaske, der giver læreren mulighed for styre applikationer med en infrarød pen på et skærmbillede, der projiceres op på tavlen fra en pc.

Det kan give uforudsete problemer at insistere på at holde sig til billige standardkomponenter for at holde it-projektets omkostninger nede.

Det har man måttet sande i den open source-baserede udviklingsvirksomhed Mergeit, der måtte reverse engineere controlleren til Nintendos Wii-spillekonsol for at få tingene til at spille i den interaktive lærertaske, virksomheden har udviklet til Århus Kommune.

Administrerende direktør i Mergeit, Claus Lavdal, forklarer her, hvordan virksomheden løste problemerne og fik den interaktive lærertaske til at fungere.

Hvad er målet med projektet?
»Målet har været at lave den interaktive lærertaske. Idéen stammer fra Århus Kommune, der gerne ville have en løsning, hvor læreren kan pege på tavlen med en infrarød pen og dermed interaktivt styre applikationerne på det skærmbillede, der projiceres op på tavlen fra en pc. Brugeren oplever det som at skrive på tavlen.

De senere år er der kommet løsninger på markedet som for eksempel Smartboard, der er en interaktiv tavle, man kan betjene ved at trykke på den. Men den slags løsninger er dyre med en typisk installationspris på omkring 50.000 kroner og kan heller ikke flyttes rundt så nemt.

Derfor har vi sammen med Århus Kommune undersøgt muligheden for at fremstille en interaktiv lærertaske, der baserer sig på billige standardkomponenter, så den samlede pris kan komme ned på omkring 15.000 kroner.

Tanken har også været at give lærerne et mobilt værktøj, der i modsætning til de fastmonterede, trykfølsomme tavler kan tages med hjem, så læreren kan bruge den til at forberede sig på, og derudover også kan flyttes mellem klasselokalerne.«

Hvilken teknologi er det baseret på?
»Løsningen er baseret på en Asus Eee-1000 pc, en projektor til at få billedet op på tavlen og en infrarød pen, der bruges som mus på tavlens skærmbillede. Og så bruger vi fjernbetjeningen fra Nintendos Wii, Wii-mote, som infrarødt kamera, der sammen med den infrarøde pen giver mulighed for at betjene det projicerede skærmbillede interaktivt.

Eee-pc'en kører Windows, fordi det var et krav fra kundens side, og med hensyn til anden software til for eksempel tekstgenkendelse har vi endnu ikke lagt os fast på noget bestemt.«

Hvilke problemer har I oplevet?
»Vi har skullet reverse engineere Wii-mote'en for at få kendskab om, hvilke modes den kan være i, og hvornår den er det. Det har vi gjort for at sikre, at den hele tiden har kontakt til pc'en gennem bluetooth, så brugeren ikke skal starte flere applikationer op manuelt eller foretage sig andet for at bruge den interaktive lærertaske.

Udfordringen har så været at sikre, at koblingen mellem pc og Wii-mote'en fungerede. Det er et problem, fordi det normalt er pc'en, der er den aktive enhed i en bluetooth-forbindelse og derfor er den, der forbinder den perifere enhed til sig.

Wii-mote'en er anderledes i bluetooth-sammenhæng, fordi det er den, der normalt parrer sig til Wii-konsollen og gemmer synkroniseringsadressen til konsollen i sig. Så det er lige pludselig det modsatte af det setup, man kender fra pc'en, for nu har man to enheder, der gerne vil stå for handshakingen.

Vi har derfor sat Wii-mote'en i konstant automatisk parringstilstand, hver gang den tændes. Men vi skal jo også sørge for, at den så tændes, når pc'en tændes, og derfor har vi trukket strøm til wii-mote'en gennem pc'ens usb-port.

I første version af den løsning tændte og slukkede vi for usb-hubben gennem driveren, hvilket gjorde, at vi kunne tænde og slukke Wii-mote'en softwaremæssigt. Det fungerede ganske fint, men problemet var, at det ophørte med at fungere, så snart vi flyttede setup'et over på en anden pc med en anden type usb-hub og tilhørende driver.

Derfor tog vi det fulde skridt og fremstillede en egentlig hardware-strømstyring af Wii-mote'en, som er meget mere generisk og fungerer på alle pc'er.

Det betyder, at vi nu har et setup, hvor vi kan tænde og slukke Wii'mote'en, og vi ved, at den er i parringstilstand de første 20 sekunder. Så vi ved både, hvilken tilstand den er i, og hvornår.

Det lidt paradoksale i den sammenhæng er, at vi så er endt op med både at have en bluetoothforbindelse og en usbforbindelse mellem pc og Wii-mote, men det har vi valgt at acceptere for at holde omkostningerne nede.«

Hvilke gode råd kan du give videre?
»Det tager tid at gennemføre projekter, hvor der indgår reverse engineering, så læg gerne 20 procent oven i den estimerede tidsplan. Du arbejder et langt stykke hen ad vejen med bind for øjnene, og du ved ikke nødvendigvis, hvad der kommer ud af det i sidste ende. Men når det er sagt, er det også en meget håndgribelig og sjov opgave, selvom det kan være svært at budgettere rigtigt.

Derudover har vi haft rigtig meget gavn af open source-communitiet omkring Wii-mote'en, som har givet os mange aktive kollegaer, som vi har kunne sparre med og, som har deltaget i testen og indrapporteret fejl.«

Version2-serien 'It-udfordringen' sætter hver fredag fokus på et projekt fra den danske it-hverdag.

Tips og korrekturforslag til denne historie sendes til tip@version2.dk
Kommentarer (2)
sortSortér kommentarer
  • Ældste først
  • Nyeste først
  • Bedste først
Carsten Frigaard

Ja, eller mere vin på flere flasker: Johnnys løsning er såmendt rigtig god, koden er gratis og virker fint.

Men der ligger et problem i at koble op til wiimoten, dvs. at man resette sin bluetooth stack, trykke "1-2" på wiimoten, og så trykke "connect" på pc'en, for at få oprettet forbindelsen.

Dette problem er også kendt som "The Ladder Problem", idet det minimum kræver en stige (og en adræt pedel) at lave en forbindelse til en wiimote, der hænger oppe under loftet ved siden lofts-monteret projektor...

Dette UNDER-problem har vi så bidraget med til suiten af wiimote software, igen en fri og åben hard- og software løsning.

Det er klart, at vi ikke kunne have kommet så langt uden andre folks åbne og frie udvikling, se f.eks. Wiimote project:

http://www.wiimoteproject.com/

eller wiimote reverse-engineering sites'ne:

http://www.wiiuse.net/

http://wiibrew.org/

Og et rigtigt godt site til at komme igang med hjemmelavede løsninger:

http://wyxs.net/web/wiimote/digital_whiteboard.html

Så vi står bare på de andres udvikleres skuldre...

Mvh
Carsten

(udvikler, MergeIt Aps)

  • 0
  • 0
Log ind eller Opret konto for at kommentere