ArduCopter Mega: порт на обычную Arduino (тестим)
через Arduino IDE через терминал посмотрите что выведет
Выводит бесконечно “0 0 0—1225”, ничего такого "ITG3200_ADDRESS 0x68 … " нет.
уупс, это чето странное я вам дал, прошу прощения, вот верная ссылка nekaka.com/d/iAAwmfve6A (точнее верный i2c_spy)
точнее верный i2c_spy
На какой версии IDE Arduino нужно компилировать? На версии 1.0.1 и 1.0.3 дает ошибку “i2c_spy:6: error: ‘Wire’ was not declared in this scope”
на 1.0 собралось, как вариант - удалена папка Wire из библиотек
на 1.0 собралось, как вариант - удалена папка Wire из библиотек
Восстановил библиотеки в IDE, скомпилировал, залил, но терминал все равно не то выдает: “Éíÿ"þItLPÿ”
скорость не та выставлена, надо 115200
Понял! БОДы полставил 115200 и вот результат:
I2C devices detector
=================================
Detected device addr: 0x3C HMC5883/43 (compass)
Detected device addr: 0x80 BMA180 (accel) FFIMU or BB
Detected device addr: 0xD0 ITG3200 (gyro)
Detected device addr: 0xEE BMP085 (baro)
=================================
Cycle is over
чето не одного совпадения адресов… или я не там их смотрел =( киньте прошивку, которая работает, посмотрю что там указано
киньте прошивку, которая работает
Качал от сюда:
code.google.com/p/ardupirates/…/MegaPirateB8.zip
попробуйте так:
лезем в libraries/AP_InertialSensor/AP_InertialSensor_Pirates.cpp (в новой прошивке)
и менять там для акселя код с
if (_board_Type == PIRATES_ALLINONE || _board_Type == PIRATES_BLACKVORTEX) {
accel_addr = 0x41;
на
if (_board_Type == PIRATES_ALLINONE || _board_Type == PIRATES_BLACKVORTEX) {
accel_addr = 0x80;
и для гиры (там же в самом верху)
#define ITG3200_ADDRESS 0x68 // 0xD0
на
#define ITG3200_ADDRESS 0xD0 // 0xD0
Если не получится, то ждемс что Sir Alex напишет =)
Это что то очень старое. Качайте отсюда: code.google.com/p/megapirateng/downloads/detail?na…
датчики выбирайте PIRATES_ALLINONE
Заменил адреса в файлах:
ITG3200_ADDRESS 0x68 -> 0xD0 in libraries\AP_InertialSensor\AP_InertialSensor_Pirates.cpp
accel_addr 0x41 -> 0x80 in libraries\AP_InertialSensor\AP_InertialSensor_Pirates.cpp
BMP085_ADDRESS 0x77 -> 0xEE in libraries\AP_Baro\AP_Baro_BMP085_Pirates.cpp
COMPASS_ADDRESS 0x1E -> 0x3C in libraries\AP_Baro\AP_Baro_BMP085_Pirates.cpp
НО MissionPlanner все равно не соединяется, пишет “No Heatbeat Packets Received”. Проверить работу датчиков не могу
Надо было только гиру и аксель поменять попробовать, остальное в старом коде имело те же адреса.
Это что то очень старое. Качайте отсюда: code.google.com/p/megapiraten...3.zip&can=2&q=
Именно от туда и качал прошивку (новую). К сожалению не работает.
Надо было только гиру и аксель поменять попробовать, остальное в старом коде имело те же адреса.
Получается, что не то же:
BMP085_ADDRESS 0x77 -> 0xEE
COMPASS_ADDRESS 0x1E -> 0x3C
Тут оракулов нету.
Сделайте хотя бы скриншоты того, что выдает плата при подключении терминалом (до изменений адресов и после). Терминал используйте Putty или на на худой конец Arduino IDE (там есть).
Сделайте хотя бы скриншоты того, что выдает плата при подключении терминалом (до изменений адресов и после). Терминал используйте Putty или на на худой конец Arduino IDE (там есть).
Я же говорил, что я новичек. Сказали бы сразу, что вывод терминалов нужен. Жду когда откопилируется новая прошивка с измнениями,а потом буду копилировать без изменеий.
Получается, что не то же:
посмотрите код внимательнее, если мне не верите
в новом #define BMP085_ADDRESS 0x77 //(0xEE >> 1)
в старом #define BMP085_ADDRESS 0x77 //(0xEE >> 1)
в новом #define COMPASS_ADDRESS 0x1E
в старом #define COMPASS_ADDRESS 0x1E
отличий не вижу, да и попробовать не долго
Извините! Просто у меня уже 2-45 ночи и голова совсем не варит, а в другом диапозоне времени с Вами не удастся пообщаться, т.к я далеко
Широка страна моя родная… Я вчера тоже почти 3 ночи писал, сегодня почитал… жесть какая то, но вроде прокатило =)
посмотрите код внимательнее, если мне не верите в новом #define BMP085_ADDRESS 0x77 //(0xEE >> 1) в старом #define BMP085_ADDRESS 0x77 //(0xEE >> 1) в новом #define COMPASS_ADDRESS 0x1E в старом #define COMPASS_ADDRESS 0x1E отличий не вижу, да и попробовать не долго
Я Вам писал вывод шпиона на своих датчиках:
Detected device addr: 0x3C HMC5883/43 (compass)
Detected device addr: 0x80 BMA180 (accel) FFIMU or BB
Detected device addr: 0xD0 ITG3200 (gyro)
Detected device addr: 0xEE BMP085 (baro)
Эти адреса отличались от новой MegaPirateNG_2.8_R3 (на старой B8 не смотрел)
там дальше в коде какие то махинации с адресами идут… я бы всетаки попробовал, поменять и перезалить не долго, малоли получится =)
там дальше в коде какие то махинации с адресами идут… я бы всетаки попробовал, поменять и перезалить не долго, малоли получится =)
Сделю во всех махинациях, но завтра, сейчас уже не в силах
Заранее извиняюсь, где-то видел похожий вопрос, но не видел ответ…
Есть MegaPirateNG_2.8 R3 на плате AIOP v2, и помимо комплектного ублокса есть такой модуль - Small PA6C MT3339 GPS, прошитый на 115200 10Hz.
Я подозреваю, что второй получше будет, и подключил, соответственно его, указав только:
#define GPS_PROTOCOL GPS_PROTOCOL_NMEA
#define SERIAL2_BAUD 115200
Гпс определяется, спутники находит, фикс есть, но как узнать, работает он на 10Hz или нет?
Провел первые испытания на прошивке B8, но коптер сразу кувыркается назад - минус один винт. С чем это может быть связано?