freesmile@bluewin.ch
13.01.2012, 16:46
Hallo zusammen
Bin neu hier und muss als erstes euer Forum loben!!! Echt TOP!!!
Ich versuche grade krampfhaft an mein Arduino Werte aus dem Wii Motion Plus heraus zu bringen.
Dazu suchte ich einen Code der nur den Winkel ausgibt. Da ich noch keine Erfahrungen mit I2C habe, versuche ich so es langsam zu verstehen.
Dabei fand ich folgenden Code:
#include <SoftwareSerial.h>
#include <Wire.h>
byte data[6];
int gier; //Daten vom AD-Wandler
int roll;
int nick;
void setup()
{
Serial.begin(9600);
Wire.begin(); //WiiMo ein
Wire.beginTransmission(0x53); //WiiMo starten und Adresse 0x53 deaktivieren
Wire.send(0xFE); //0x04 zur Addresse 0xFE senden zur Aktivierung
Wire.send(0x04);
Wire.endTransmission(); //WiiMo jetzt Addresse 0x52 aktiv
delay(30);
}
void loop()
{
//roll, nick und gier einlesen
Wire.beginTransmission(0x52); //Null senden
Wire.send(0x00);
Wire.endTransmission();
Wire.requestFrom(0x52,6); //6 Bytes lesen
for (int i=0;i<6;i++)
{
data[i]=Wire.receive();
}
//zusammensetzen
gier = ((data[3] / 4)<<8) + data[0];
roll = ((data[4] / 4)<<8) + data[1];
nick = ((data[5] / 4)<<8) + data[2];
//ausgeben
Serial.print(roll);
Serial.print(" ");
Serial.print(nick);
Serial.print(" ");
Serial.print(gier);
Serial.println();
delay(10);
}
Dabei kam aber immer einen Fehler raus, sodass ich den Code gar nicht auf Arduino laden konnte
Dieser sah folgenermassen aus:
/Applications/Arduino.app/Contents/Resources/Java/hardware/tools/avr/bin/avr-g++ -c -g -Os -Wall -fno-exceptions -ffunction-sections -fdata-sections -mmcu=atmega168 -DF_CPU=16000000L -DARDUINO=100 -I/Applications/Arduino.app/Contents/Resources/Java/hardware/arduino/cores/arduino -I/Applications/Arduino.app/Contents/Resources/Java/hardware/arduino/variants/eightanaloginputs -I/Applications/Arduino.app/Contents/Resources/Java/libraries/SoftwareSerial -I/Applications/Arduino.app/Contents/Resources/Java/libraries/Wire /var/folders/vn/5hwp46ws6qsgpzwkxxvwrrd40000gn/T/build1082119935771231009.tmp/sketch_jan13c.cpp -o/var/folders/vn/5hwp46ws6qsgpzwkxxvwrrd40000gn/T/build1082119935771231009.tmp/sketch_jan13c.cpp.o
sketch_jan13c.cpp: In function 'void setup()':
sketch_jan13c:26: error: 'class TwoWire' has no member named 'send'
As of Arduino 1.0, the Wire.send() function was renamed to Wire.write() for consistency with other libraries.
sketch_jan13c:28: error: 'class TwoWire' has no member named 'send'
As of Arduino 1.0, the Wire.send() function was renamed to Wire.write() for consistency with other libraries.
sketch_jan13c.cpp: In function 'void loop()':
sketch_jan13c:46: error: 'class TwoWire' has no member named 'send'
As of Arduino 1.0, the Wire.send() function was renamed to Wire.write() for consistency with other libraries.
sketch_jan13c:58: error: 'class TwoWire' has no member named 'receive'
As of Arduino 1.0, the Wire.receive() function was renamed to Wire.read() for consistency with other libraries.
Ich komme nicht weiter :(
hab mir jetzt schon ein Buch bestellt das mir weiterhelfen soll. Jedoch dauert das noch ne weile... Habe jedoch im Moment Ferien und würde gerne bei meinem Projekt weiter kommen.
Kann mir jemand helfen???
Besten Dank
gruss freesmile
P.S. ich hoffe ich habe es am richtigen Ort gepostet
Bin neu hier und muss als erstes euer Forum loben!!! Echt TOP!!!
Ich versuche grade krampfhaft an mein Arduino Werte aus dem Wii Motion Plus heraus zu bringen.
Dazu suchte ich einen Code der nur den Winkel ausgibt. Da ich noch keine Erfahrungen mit I2C habe, versuche ich so es langsam zu verstehen.
Dabei fand ich folgenden Code:
#include <SoftwareSerial.h>
#include <Wire.h>
byte data[6];
int gier; //Daten vom AD-Wandler
int roll;
int nick;
void setup()
{
Serial.begin(9600);
Wire.begin(); //WiiMo ein
Wire.beginTransmission(0x53); //WiiMo starten und Adresse 0x53 deaktivieren
Wire.send(0xFE); //0x04 zur Addresse 0xFE senden zur Aktivierung
Wire.send(0x04);
Wire.endTransmission(); //WiiMo jetzt Addresse 0x52 aktiv
delay(30);
}
void loop()
{
//roll, nick und gier einlesen
Wire.beginTransmission(0x52); //Null senden
Wire.send(0x00);
Wire.endTransmission();
Wire.requestFrom(0x52,6); //6 Bytes lesen
for (int i=0;i<6;i++)
{
data[i]=Wire.receive();
}
//zusammensetzen
gier = ((data[3] / 4)<<8) + data[0];
roll = ((data[4] / 4)<<8) + data[1];
nick = ((data[5] / 4)<<8) + data[2];
//ausgeben
Serial.print(roll);
Serial.print(" ");
Serial.print(nick);
Serial.print(" ");
Serial.print(gier);
Serial.println();
delay(10);
}
Dabei kam aber immer einen Fehler raus, sodass ich den Code gar nicht auf Arduino laden konnte
Dieser sah folgenermassen aus:
/Applications/Arduino.app/Contents/Resources/Java/hardware/tools/avr/bin/avr-g++ -c -g -Os -Wall -fno-exceptions -ffunction-sections -fdata-sections -mmcu=atmega168 -DF_CPU=16000000L -DARDUINO=100 -I/Applications/Arduino.app/Contents/Resources/Java/hardware/arduino/cores/arduino -I/Applications/Arduino.app/Contents/Resources/Java/hardware/arduino/variants/eightanaloginputs -I/Applications/Arduino.app/Contents/Resources/Java/libraries/SoftwareSerial -I/Applications/Arduino.app/Contents/Resources/Java/libraries/Wire /var/folders/vn/5hwp46ws6qsgpzwkxxvwrrd40000gn/T/build1082119935771231009.tmp/sketch_jan13c.cpp -o/var/folders/vn/5hwp46ws6qsgpzwkxxvwrrd40000gn/T/build1082119935771231009.tmp/sketch_jan13c.cpp.o
sketch_jan13c.cpp: In function 'void setup()':
sketch_jan13c:26: error: 'class TwoWire' has no member named 'send'
As of Arduino 1.0, the Wire.send() function was renamed to Wire.write() for consistency with other libraries.
sketch_jan13c:28: error: 'class TwoWire' has no member named 'send'
As of Arduino 1.0, the Wire.send() function was renamed to Wire.write() for consistency with other libraries.
sketch_jan13c.cpp: In function 'void loop()':
sketch_jan13c:46: error: 'class TwoWire' has no member named 'send'
As of Arduino 1.0, the Wire.send() function was renamed to Wire.write() for consistency with other libraries.
sketch_jan13c:58: error: 'class TwoWire' has no member named 'receive'
As of Arduino 1.0, the Wire.receive() function was renamed to Wire.read() for consistency with other libraries.
Ich komme nicht weiter :(
hab mir jetzt schon ein Buch bestellt das mir weiterhelfen soll. Jedoch dauert das noch ne weile... Habe jedoch im Moment Ferien und würde gerne bei meinem Projekt weiter kommen.
Kann mir jemand helfen???
Besten Dank
gruss freesmile
P.S. ich hoffe ich habe es am richtigen Ort gepostet