Hello,
I downloaded and installed the "Wire" library from user robertmaxwilliams at
http://forum.arduino.cc/index.php?topic=318732.msg2205296%23msg2205296
in order to program my AtTiny85 to use my MPU6050.
But before I even get to my own code, I used the example code to see if it compiles.
Sad to say, it did not. Instead, it just reads: Compiling Sketch...
I'm using Arduino IDE ver. 1.6.4, Arduino as ISP, AtTiny85 at 8MHz, using the tiny core found in This Tutorial.
Thanks very much to anyone who is more knowlegable and can help shed some light on my situation and help me get this code to compile.
Here's the code, after that, the resulting output:
#include "MPU6050.h" //motion processor
#include "Wire.h"//actually TinyWireM with names changed
#include "I2Cdev.h"//I2C device library
#include "SoftwareSerial.h"//for debugging
#define LED_PIN 4
bool blinkState = false;//unused
//negative one to indicate unused- it is only transmitting
SoftwareSerial mySerial(-1,3);
MPU6050 accel;
int16_t ax, ay, az, gx, gy, gz;
//multiply rotational value by this to get a degree between 90 and -90
const float val_to_deg = 0.005625;
/*pinnout:
'RESET' 1 8 'VCC'
to RX of serial '3' 2 7 '2' SCL of MPU
'4' 3 6 '1'
'GND' 4 5 '0' SDA of MPU
RX is a bluetooth transmitter in my case,
but here is a tutorial on using your arduino as a debug stream
http://www.instructables.com/id/Attiny-serial-monitor-using-arduino-walkthrough/
*/
void setup() {
//join ic2 bus
Wire.begin();
//start serial (attached to bluetooth module)
mySerial.begin(9600);
//initialize accelerometer
accel.initialize();
//configure status LED
pinMode(LED_PIN, OUTPUT);
//testing connection
mySerial.println("Testing device connections...");
mySerial.println(accel.testConnection() ? "MPU6050 connection successful" : "MPU6050 connection failed");
//output LED - off means it works.
digitalWrite(LED_PIN, (accel.testConnection() ? LOW : HIGH));
}
void loop() {
//read accel values
accel.getAcceleration(&ax, &ay, &az);
accel.getRotation(&gx, &gy, &gz);
mySerial.println(gx);
delay(1000);
if (ax > 2000){//for when it works to check values
//digitalWrite(LED_PIN, LOW);
}
else{//for when it works to check values
//digitalWrite(LED_PIN, HIGH);
}
}
And here is the output:
Using library MPU6050 in folder: C:\Users\Dave\Documents\Arduino\libraries\MPU6050 (legacy)
Using library Wire in folder: C:\Users\Dave\Documents\Arduino\libraries\Wire (legacy)
Using library I2Cdev in folder: C:\Users\Dave\Documents\Arduino\libraries\I2Cdev (legacy)
Using library SoftwareSerial in folder: C:\Users\Dave\Documents\Arduino\libraries\SoftwareSerialC:\Program Files (x86)\Arduino\hardware\tools\avr/bin/avr-g++ -c -g -Os -Wall -Wextra -fno-exceptions -ffunction-sections -fdata-sections -fno-threadsafe-statics -MMD -mmcu=attiny85 -DF_CPU=8000000L -DARDUINO=10604 -DARDUINO_attiny -DARDUINO_ARCH_AVR -IC:\Program Files (x86)\Arduino\hardware\arduino\avr\cores\arduino -IC:\Users\Dave\AppData\Roaming\Arduino15\packages\attiny\hardware\avr\1.0.1\variants\tiny8 -IC:\Users\Dave\Documents\Arduino\libraries\MPU6050 -IC:\Users\Dave\Documents\Arduino\libraries\Wire -IC:\Users\Dave\Documents\Arduino\libraries\I2Cdev -IC:\Users\Dave\Documents\Arduino\libraries\SoftwareSerial C:\Users\Dave\AppData\Local\Temp\build1032086409184293057.tmp\test_mpu_attiny85.cpp -o C:\Users\Dave\AppData\Local\Temp\build1032086409184293057.tmp\test_mpu_attiny85.cpp.o
In file included from C:\Program Files (x86)\Arduino\hardware\arduino\avr\cores\arduino/Stream.h:26:0,
from C:\Program Files (x86)\Arduino\hardware\arduino\avr\cores\arduino/HardwareSerial.h:29,
from C:\Program Files (x86)\Arduino\hardware\arduino\avr\cores\arduino/Arduino.h:223,
from C:\Users\Dave\Documents\Arduino\libraries\I2Cdev/I2Cdev.h:75,
from C:\Users\Dave\Documents\Arduino\libraries\MPU6050/MPU6050.h:40,
from test_mpu_attiny85.ino:1:
C:\Program Files (x86)\Arduino\hardware\arduino\avr\cores\arduino/Print.h:32:0: warning: "BIN" redefined [enabled by default]
#define BIN 2
^
In file included from c:\program files (x86)\arduino\hardware\tools\avr\avr\include\avr\iotn85.h:38:0,
from c:\program files (x86)\arduino\hardware\tools\avr\avr\include\avr\io.h:428,
from c:\program files (x86)\arduino\hardware\tools\avr\avr\include\avr\pgmspace.h:88,
from C:\Program Files (x86)\Arduino\hardware\arduino\avr\cores\arduino/Arduino.h:28,
from C:\Users\Dave\Documents\Arduino\libraries\I2Cdev/I2Cdev.h:75,
from C:\Users\Dave\Documents\Arduino\libraries\MPU6050/MPU6050.h:40,
from test_mpu_attiny85.ino:1:
c:\program files (x86)\arduino\hardware\tools\avr\avr\include\avr\iotnx5.h:55:0: note: this is the location of the previous definition
#define BIN 7
^
Using previously compiled file: C:\Users\Dave\AppData\Local\Temp\build1032086409184293057.tmp\MPU6050\MPU6050.cpp.o
Using previously compiled file: C:\Users\Dave\AppData\Local\Temp\build1032086409184293057.tmp\Wire\USI_TWI_Master.cpp.o
Using previously compiled file: C:\Users\Dave\AppData\Local\Temp\build1032086409184293057.tmp\Wire\Wire.cpp.o
C:\Program Files (x86)\Arduino\hardware\tools\avr/bin/avr-gcc -c -g -Os -Wall -Wextra -ffunction-sections -fdata-sections -MMD -mmcu=attiny85 -DF_CPU=8000000L -DARDUINO=10604 -DARDUINO_attiny -DARDUINO_ARCH_AVR -IC:\Program Files (x86)\Arduino\hardware\arduino\avr\cores\arduino -IC:\Users\Dave\AppData\Roaming\Arduino15\packages\attiny\hardware\avr\1.0.1\variants\tiny8 -IC:\Users\Dave\Documents\Arduino\libraries\MPU6050 -IC:\Users\Dave\Documents\Arduino\libraries\Wire -IC:\Users\Dave\Documents\Arduino\libraries\I2Cdev -IC:\Users\Dave\Documents\Arduino\libraries\SoftwareSerial -IC:\Users\Dave\Documents\Arduino\libraries\I2Cdev\utility C:\Users\Dave\Documents\Arduino\libraries\I2Cdev\msp430_i2c.c -o C:\Users\Dave\AppData\Local\Temp\build1032086409184293057.tmp\I2Cdev\msp430_i2c.c.o