www.mikrocontroller.net

Forum: Mikrocontroller und Digitale Elektronik Wii Motion Plus per I2C auslesen (Atmega128)


Autor: Christopher G. (cbg)
Datum:
Angehängte Dateien:

Bewertung
0 lesenswert
nicht lesenswert
Hallo!
Ich möchte das Wii Motion Plus mit einem Atmega128 auslesen aber leider 
funktionniert schon die Initialisierung nicht. Nach [1] hat das WMP 
anfangs die Adresse 0x53. Man muss 0x04 ins Register 0xfe schreiben, 
damit es aktiviert wird und danach ändert sich die Adresse auf 0x52. 
Danach kann man nach einem bestimmten Ablauf die Daten auslesen. Leider 
bekomme ich schon beim Startbefehl fürs Schreiben nach 0x53 kein ACK 
zurück (per Oszi  überprüft). Habs mit 100 kHz und 400 kHz probiert, 
geht beides nicht. Code ist im Anhang. Als I2C Lib wird die von Peter 
Fleury verwendet, UART Lib ist selbst geschrieben. Liegt aber nicht an 
denen, denn wenn ich auf meinen I2C Kompass umstecke kann ich den mit 
der benötigten Routine problemlos auslesen. WMP ist auch richtig 
verkabelt, schon 10x durchgepiepst. Funktionnieren tuts auch noch, mit 
Wii getestet.
Leider finde ich ausser [1] keine wirklich brauchbaren Informationen um 
das WMP auszulesen. Bei [2] steht auch eine Menge aber da gehts primär 
darum, wie man die Extensions ausliest, wenn sie an die Wiimote 
angesteckt sind. Apropos, was hat die Schreibweise 0x(4)a600f0 bei [2] 
zu bedeuten ("The extension is initialised by writing 0x55 to 
0x(4)a600f0.")? Geht mir hierbei um das (4). Kapier nicht, was das 
bedeuten soll.

Hoffe ihr könnt mir helfen.

LG


[1] 
http://randomhacksofboredom.blogspot.com/2009/06/w...
[2] 
http://www.wiibrew.org/wiki/Wiimote/Extension_Cont...

Autor: Christopher G. (cbg)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Grrr
0x53 ist die Adresse (Initialisiert dann 0x52) aber natürlich ohne das 
R/W Bit. Also so gehts:
// Zum Initialisieren
i2c_start_wait(0xA6 + I2C_WRITE); // 0xA6 = 0x53 << 1
...

// Nach Initialisierung
i2c_start_wait(0xA4 + I2C_WRITE); // bzw + I2C_READ; 0xA4 = 0x52 << 1

Frohe Weihnachten!

Autor: Veit Devil (devil-elec)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo,

nur mal so gefragt. Wofür liest Du den Wii Plus Controller aus?
Was willst Du später mit dem Controller steuern?

Frohes Fest

Tschau
Devil-Elec

Autor: Christopher G. (cbg)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Ist derzeit nur eine Spielerei. Wie ich gelesen hab, dass das ganze Wii 
Zubehör einfach per I2C kommuniziert wollt ich das einfach mal testen.
Wird schon irgendwann irgendwo verwendet werden :)
Wenn mir gleich aufgefallen wäre, dass 0x53 eine irrsinnige I2C Adresse 
für die PF Lib Funktionen ist, da ungerade und demnach nicht um 1 
geshiftet, dann wäre das Demoprogramm in lediglich 30 Min erfolgreich 
getestet gewesen.

Das Nunchuck [1] würde ist übrigens auch nicht schlecht.
1x Joystick
2x Button
1x Accelerometer
Gibt diverse günstige Nachbauten im Netz. Wiimote Extension 
Verlängerungskabel gibts auch auf eBay, da hat man dann beide Seiten vom 
komischen Stecker die man auf eine Pfostenbuchse löten kann (so hab ichs 
gemacht), sonst kann man mit einem PCB oder, mit etwas Geschick, mit
Heißklebepistole und Stiftleisten einen Adapter bauen.
Wers kabellos will / braucht und ein paar Buttons und Funktionen mehr 
will kann gleich zur Wiimote greifen und die per Bluetooth auslesen. Hab 
ich auch schon gemacht, geht ganz einfach.


[1] 
http://wiibrew.org/wiki/Wiimote/Extension_Controll...

Autor: M. G. (looking)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Christopher G. schrieb:

> Wers kabellos will / braucht und ein paar Buttons und Funktionen mehr
> will kann gleich zur Wiimote greifen und die per Bluetooth auslesen. Hab
> ich auch schon gemacht, geht ganz einfach.

Ausgelesen über Bluetooth per PC oder per BT-Modul an einem 
Mikrocontroller? Hast Du nähere Infos dazu?
Danke.

Autor: Christopher G. (cbg)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Habs damals am PC ausgelesen. Hab mich damals nur ein bisschen gespielt 
und geschaut was sich ändert wenn ich die Tasten drücke / die Lage 
ändere und hab die LEDs und den Vibromotor an und ausgemacht.
Hab mit den Infos von Wiibrew.org [1] gearbeitet. Mehr Infos kann ich 
leider nicht anbieten.

[1] http://wiibrew.org/wiki/Wiimote

Antwort schreiben

Die Angabe einer E-Mail-Adresse ist freiwillig. Wenn Sie automatisch per E-Mail über Antworten auf Ihren Beitrag informiert werden möchten, melden Sie sich bitte an.

Wichtige Regeln - erst lesen, dann posten!

  • Groß- und Kleinschreibung verwenden
  • Längeren Sourcecode nicht im Text einfügen, sondern als Dateianhang

Formatierung (mehr Informationen...)

  • [c]C-Code[/c]
  • [avrasm]AVR-Assembler-Code[/avrasm]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] - Link zu Artikel
  • Verweis auf anderen Beitrag einfügen: Rechtsklick auf Beitragstitel,
    "Adresse kopieren", und in den Text einfügen




Bild automatisch verkleinern, falls nötig
Bitte das JPG-Format nur für Fotos und Scans verwenden!
Zeichnungen und Screenshots im PNG- oder
GIF-Format hochladen. Siehe Bildformate.
Hinweis: der ursprüngliche Beitrag ist mehr als 6 Monate alt.
Bitte hier nur auf die ursprüngliche Frage antworten,
für neue Fragen einen neuen Beitrag erstellen.

Mit dem Abschicken bestätigst du, die Nutzungsbedingungen anzuerkennen.