Скачал библиотеку i2cdevlib для работы с датчиком MPU 6050(MPU 6000). Папки MPU6050 и I2Cdev скопировал в C:\Users\Admin(RCMS)\Documents\Arduino\libraries Папка со скетчами расположена по адресу C:\Users\Admin(RCMS)\Documents\Arduino Использую Arduino IDE 1.0.3 for windows. Arduino IDE находится в папке C:\ArduPilot-Arduino-1.0.3-windows Пробовал скомпилировать пример MPU6050_DMP6, получил кучу ошибок: Код (Text): Building for ArduPilot Mega 2.x Excluding arduino core from include paths In file included from MPU6050_DMP6.ino:46: C:\Users\Admin(RCMS)\Documents\Arduino\libraries\I2Cdev/I2Cdev.h:77:29: error: Arduino.h: No such file or directory In file included from C:\Users\Admin(RCMS)\Documents\Arduino\libraries\I2Cdev/I2Cdev.h:80, from MPU6050_DMP6.ino:46: C:\ArduPilot-Arduino-1.0.3-windows\libraries\Wire/Wire.h:26:20: error: Stream.h: No such file or directory In file included from C:\Users\Admin(RCMS)\Documents\Arduino\libraries\I2Cdev/I2Cdev.h:80, from MPU6050_DMP6.ino:46: C:\ArduPilot-Arduino-1.0.3-windows\libraries\Wire/Wire.h:31: error: expected class-name before '{' token C:\ArduPilot-Arduino-1.0.3-windows\libraries\Wire/Wire.h:60: error: 'size_t' does not name a type C:\ArduPilot-Arduino-1.0.3-windows\libraries\Wire/Wire.h:61: error: 'size_t' does not name a type C:\ArduPilot-Arduino-1.0.3-windows\libraries\Wire/Wire.h:69: error: 'size_t' does not name a type C:\ArduPilot-Arduino-1.0.3-windows\libraries\Wire/Wire.h:70: error: 'size_t' does not name a type C:\ArduPilot-Arduino-1.0.3-windows\libraries\Wire/Wire.h:71: error: 'size_t' does not name a type C:\ArduPilot-Arduino-1.0.3-windows\libraries\Wire/Wire.h:72: error: 'size_t' does not name a type C:\ArduPilot-Arduino-1.0.3-windows\libraries\Wire/Wire.h:73: error: 'Print' has not been declared In file included from C:\Users\Admin(RCMS)\Documents\Arduino\libraries\MPU6050/MPU6050_6Axis_MotionApps20.h:37, from MPU6050_DMP6.ino:48: C:\Users\Admin(RCMS)\Documents\Arduino\libraries\MPU6050/helper_3dmath.h: In member function 'float Quaternion::getMagnitude()': C:\Users\Admin(RCMS)\Documents\Arduino\libraries\MPU6050/helper_3dmath.h:74: error: 'sqrt' was not declared in this scope C:\Users\Admin(RCMS)\Documents\Arduino\libraries\MPU6050/helper_3dmath.h: In member function 'float VectorInt16::getMagnitude()': C:\Users\Admin(RCMS)\Documents\Arduino\libraries\MPU6050/helper_3dmath.h:111: error: 'sqrt' was not declared in this scope C:\Users\Admin(RCMS)\Documents\Arduino\libraries\MPU6050/helper_3dmath.h: In member function 'float VectorFloat::getMagnitude()': C:\Users\Admin(RCMS)\Documents\Arduino\libraries\MPU6050/helper_3dmath.h:178: error: 'sqrt' was not declared in this scope In file included from C:\Users\Admin(RCMS)\Documents\Arduino\libraries\MPU6050/MPU6050_6Axis_MotionApps20.h:42, from MPU6050_DMP6.ino:48: C:\Users\Admin(RCMS)\Documents\Arduino\libraries\MPU6050/MPU6050.h: At global scope: C:\Users\Admin(RCMS)\Documents\Arduino\libraries\MPU6050/MPU6050.h:876: error: 'NULL' was not declared in this scope In file included from MPU6050_DMP6.ino:48: C:\Users\Admin(RCMS)\Documents\Arduino\libraries\MPU6050/MPU6050_6Axis_MotionApps20.h: In member function 'uint8_t MPU6050::dmpInitialize()': C:\Users\Admin(RCMS)\Documents\Arduino\libraries\MPU6050/MPU6050_6Axis_MotionApps20.h:329: error: 'delay' was not declared in this scope C:\Users\Admin(RCMS)\Documents\Arduino\libraries\MPU6050/MPU6050_6Axis_MotionApps20.h: In member function 'uint8_t MPU6050::dmpGetLinearAccelInWorld(VectorInt16*, VectorInt16*, Quaternion*)': C:\Users\Admin(RCMS)\Documents\Arduino\libraries\MPU6050/MPU6050_6Axis_MotionApps20.h:663: error: 'memcpy' was not declared in this scope C:\Users\Admin(RCMS)\Documents\Arduino\libraries\MPU6050/MPU6050_6Axis_MotionApps20.h: In member function 'uint8_t MPU6050::dmpGetEuler(float*, Quaternion*)': C:\Users\Admin(RCMS)\Documents\Arduino\libraries\MPU6050/MPU6050_6Axis_MotionApps20.h:684: error: 'atan2' was not declared in this scope C:\Users\Admin(RCMS)\Documents\Arduino\libraries\MPU6050/MPU6050_6Axis_MotionApps20.h:685: error: 'asin' was not declared in this scope C:\Users\Admin(RCMS)\Documents\Arduino\libraries\MPU6050/MPU6050_6Axis_MotionApps20.h: In member function 'uint8_t MPU6050::dmpGetYawPitchRoll(float*, Quaternion*, VectorFloat*)': C:\Users\Admin(RCMS)\Documents\Arduino\libraries\MPU6050/MPU6050_6Axis_MotionApps20.h:691: error: 'atan2' was not declared in this scope C:\Users\Admin(RCMS)\Documents\Arduino\libraries\MPU6050/MPU6050_6Axis_MotionApps20.h:693: error: 'sqrt' was not declared in this scope C:\Users\Admin(RCMS)\Documents\Arduino\libraries\MPU6050/MPU6050_6Axis_MotionApps20.h:693: error: 'atan' was not declared in this scope MPU6050_DMP6.ino: In function 'void setup()': MPU6050_DMP6:173: error: 'Serial' was not declared in this scope MPU6050_DMP6:183: error: 'F' was not declared in this scope MPU6050_DMP6:214: error: 'RISING' was not declared in this scope MPU6050_DMP6:214: error: 'attachInterrupt' was not declared in this scope MPU6050_DMP6:234: error: 'OUTPUT' was not declared in this scope MPU6050_DMP6:234: error: 'pinMode' was not declared in this scope MPU6050_DMP6.ino: In function 'void loop()': MPU6050_DMP6:272: error: 'Serial' was not declared in this scope MPU6050_DMP6:272: error: 'F' was not declared in this scope MPU6050_DMP6:316: error: 'Serial' was not declared in this scope MPU6050_DMP6:317: error: 'M_PI' was not declared in this scope MPU6050_DMP6:370: error: 'digitalWrite' was not declared in this scope Подскажите, что я неправильно делаю? Спасибо.
Скопировал абсолютно все библиотеки(эти тоже MPU6050 и I2Cdev) из папки C:\Users\Admin(RCMS)\Documents\Arduino\libraries в C:\ArduPilot-Arduino-1.0.3-windows\libraries Не помогло. Есть идеи?
Идей валом. Хотя и не телепат, но первая навскидку - раз не знаете, где библиотека должна лежать, то смело могли её и не правильно установить
Что вы имеете в виду под словом "установить"? Почти во всех мануалах (например http://arduino.ua/ru/guide/Libraries или http://www.freeduino.ru/arduino/libraries.html) установка описывается простым копированием файлов .cpp и .h (т.е папки в которой они находятся) в директорию, где хранятся библиотеки. Это либо пользовательские библиотеки C:\Users\<имя пользователя>\Documents\Arduino\libraries, либо Ардуиновские (подкаталог libraries каталога Arduino IDE). В моём случае они есть в обоих директориях и всё равно есть ошибки. Кстати, данные библиотеки также появились в Скетч -> Импортировать библиотеку. Я импортировал MPU6050 и всё равно получил ошибки. Вот теперь пора включать телепатию.
Решение найдено! Всё дело в версии компилятора(в версии Arduino IDE). Скачал с офф сайта Arduino IDE версии 1.5.8, загрузил библиотеки, немного потанцевал с бубном и всё скомпилилось(правда на другом компе). Тему можно закрывать.