Tumblelog by Soup.io
Newer posts are loading.
You are at the newest post.
Click here to check if anything new just came in.

July 06 2009

anton-pirker
12:45

Die Wii-mote mit dem Android Emulator verbinden.

Der Android Emulator ist wunderbar wenn man Software für das Android System entwickelt (vor allem praktisch wenn man selber kein Android Telefon sein eigen nennt)

Will man nun aber die Bewegungssensoren, den Kompass oder andere Sensoren des Telefons auslesen, dann kommt der Emulator schnell an seine Grenzen.

Für diesen Fall gibt es ein kleines Stück Software von OpenIntents welche genau hier ansetzt. Der SensorSimulator von OpenIntents redet über einen konfigurierbaren Port mit dem Android Emulator und
sendet Sensorinformation (gaukelt ihm also das tatsächliche Vorhandensein von Sensoren vor)

Der SensorSimulator hat eine Gui in der man mit der Maus ein Modell eines Telefons drehen und wenden kann und diese Informationen werden dann direkt an den Emulator gesendet. Das funktioniert einwandfrei. Will man nun aber etwas komplexere Bewegungsabläufe mit dem Emulator entwickeln kommt man mit der GUI des SensorSimulators nicht weit. Und für diesen Fall gibt es die Möglichkeit eine Wii-mote als Dummy-Telefon zu verwenden.

Hier also meine kleine Anleitung wie man das hinbekommt. Ich selber verwende Ubuntu 64-bit und habe auch alles nur aus meine Sicht der Dinge beschrieben. Windows oder Mac user müssen vielleicht einige der benötigten Komponenten je nach System austauschen.

Das Setup sieht dazu folgendermaßen aus:

Die Wii-mote verbindet sich über Bluetooth mit dem Rechner. Ein kleines Zusatzprogramm am Rechner ließt die Sensorinformation von der Wii-mote aus und schreibt sie in ein File. Der SensorSimulator ließt ständig dieses File und sendet die Sensorinformation an den Android Emulator.

Benötigte Software:

-) Den neuesten Android Emulator. Zu finden auf: http://developer.android.com/sdk/1.5_r2/index.html

-) Die Wii-Library CWiid. Ubuntu User können einfach das Packet libcwiid1-dev installieren (System -> Administration -> Synaptic Package Manager) andere können sich die lib hier herunterladen: http://abstrakraft.org/cwiid/

-) wiiacc von Dale Thatcher. Das ist das kleine Stück Software welches die Sensorinformation von der Wii-mote einließt und in ein File speichert. Runterzuladen von http://dalethatcher.com/android-wii/wiiacc.tar.bz2

-) Den SensorSimulator von OpenIntents. Hier der Download-Link: http://openintents.googlecode.com/files/sensorsimulator-1.0.0-beta1.zip

Zuerst installiert man den Android Emulator und den SensorSimulator. Wie das gemacht wird findet man hier: http://code.google.com/p/openintents/wiki/SensorSimulator
Wenn dies nun läuft installiert man CWiid, dies dürfte zumindest bei Ubuntu kein Problem sein. Ist diese lib im System installiert kann man sich daran machen wiiacc zu installieren. Im wiiacc Verzeichnis ruft man zuerst das script ./bootstrap.sh auf welches ein ./configure script erzeugt. Nun kann man wie gewohnt die folgenden drei befehle ausführen: ./configure; make; sudo make install;
Wenn alles glatt läuft wurde ein script ./wiiacc erstellt. Dieses script ruft man nun mit einem Filenamen in dem Sensorinformtionen gespeichert werden sollen als Parameter auf. Also zb ./wiiacc wii.data

Wenn wiiacc gestartet wird muss man die Wii-mote in den discovery mode versetzen in dem man 1+2 gleichzeitig drückt. Wenn alles funktioniert hat wird "Gathering events, press q and enter to quit" ausgegeben.

Nun hat man also die Sensorinformationen der Wii-mote im File. Man wendet sich nun wieder dem SensorSimulator zu und scrollt rechts bei den Settings ganz nach unten. Man gibt den kompletten Pfad und Dateiname zu unserem wii.data File in die Textbox ein und hackelt das Kästchen "Use Wii-mote accelerometer" an.

Und Voila, schon kann man mit der Wii-mote die Sensoren des Android Emulators steuern. Viel Spass damit!