报丧女妖M 报丧女妖M
关注数: 1 粉丝数: 20 发帖数: 946 关注贴吧数: 11
【求教】关于arduino和processing交互的问题 个人想做一个arduino和processing交互的用陀螺仪来控制移动的迷宫的小游戏,迷宫和陀螺仪的代码都写完了,但是如何在processng中导入arduino陀螺仪的数据的那几步我不会,求大神指教,附上arduino的代码和迷宫截图 #include <Wire.h> byte Version[3]; int8_t x_data; int8_t y_data; int8_t z_data; byte range=0x00; float divi=16; float x,y,z; void setup() { Serial.begin(9600); Wire.begin(); Wire.beginTransmission(0x0A); // address of the accelerometer // range settings Wire.write(0x22); //register address Wire.write(range); //can be set at"0x00""0x01""0x02""0x03", refer to Datashhet on wiki // low pass filter Wire.write(0x20); //register address Wire.write(0x05); //can be set at"0x05""0x04"......"0x01""0x00", refer to Datashhet on wiki Wire.endTransmission(); } void AccelerometerInit() { Wire.beginTransmission(0x0A); // address of the accelerometer // reset the accelerometer Wire.write(0x04); // Y data Wire.endTransmission(); Wire.requestFrom(0x0A,1); // request 6 bytes from slave device #2 while(Wire.available()) // slave may send less than requested { Version[0] = Wire.read(); // receive a byte as characte } x_data=(int8_t)Version[0]>>2; Wire.beginTransmission(0x0A); // address of the accelerometer // reset the accelerometer Wire.write(0x06); // Y data Wire.endTransmission(); Wire.requestFrom(0x0A,1); // request 6 bytes from slave device #2 while(Wire.available()) // slave may send less than requested { Version[1] = Wire.read(); // receive a byte as characte } y_data=(int8_t)Version[1]>>2; Wire.beginTransmission(0x0A); // address of the accelerometer // reset the accelerometer Wire.write(0x08); // Y data Wire.endTransmission(); Wire.requestFrom(0x0A,1); // request 6 bytes from slave device #2 while(Wire.available()) // slave may send less than requested { Version[2] = Wire.read(); // receive a byte as characte } z_data=(int8_t)Version[2]>>2; x=(float)x_data/divi; y=(float)y_data/divi; z=(float)z_data/divi; Serial.print("X="); Serial.print(x); // print the character Serial.print(" "); Serial.print("Y="); Serial.print(y); // print the character Serial.print(" "); Serial.print("Z="); // print the character Serial.println(z); } void loop() { switch(range) //change the data dealing method based on the range u've set { case 0x00:divi=16; break; case 0x01:divi=8; break; case 0x02:divi=4; break; case 0x03:divi=2; break; default: Serial.println("range setting is Wrong,range:from 0to 3.Please check!");while(1); } AccelerometerInit(); delay(100); }
1 下一页