ArduCopter Mega: порт на обычную Arduino (тестим)

levinst
SovGVD:

поэтому прошивка не работает

Прошивка может и работает, она даже заливается, но я не могу подключиться MissionPlanner’ом и моторы не запускаются (газ вниз и вправо)

SovGVD:

кстатии есть вероятность, что каки то перемычки на allinone плате датчиков не запаяны (или наоборот) и просто не те адреса для датчиков

И датчики проверил на MegaPirateB8, все работает

SovGVD

если датчики не проинциализировались, то прошивка дальше не будет грузится и соотвественно никакой планер не подключится и моторы не стартанут

levinst:

И датчики проверил на MegaPirateB8, все работает

адреса этих датчиков могли быть изменены в новых прошивках
скачайте nekaka.com/d/317ho8OsGV и загрузите в ардуинку с подключенными датчиками и через Arduino IDE через терминал посмотрите что выведет (выведет на каких адресах висят датчики),

адреса датчиков для all in one платки датчиков должны быть
ITG3200_ADDRESS  0x68
accel_addr 0x41
BMP085_ADDRESS 0x77
COMPASS_ADDRESS 0x1E

levinst
SovGVD:

через Arduino IDE через терминал посмотрите что выведет

Выводит бесконечно “0 0 0—1225”, ничего такого "ITG3200_ADDRESS 0x68 … " нет.

SovGVD

уупс, это чето странное я вам дал, прошу прощения, вот верная ссылка nekaka.com/d/iAAwmfve6A (точнее верный i2c_spy)

levinst
SovGVD:

точнее верный i2c_spy

На какой версии IDE Arduino нужно компилировать? На версии 1.0.1 и 1.0.3 дает ошибку “i2c_spy:6: error: ‘Wire’ was not declared in this scope”

SovGVD

на 1.0 собралось, как вариант - удалена папка Wire из библиотек

levinst
SovGVD:

на 1.0 собралось, как вариант - удалена папка Wire из библиотек

Восстановил библиотеки в IDE, скомпилировал, залил, но терминал все равно не то выдает: “É휖‰ÿ"þšItL“Pÿ”

SovGVD

скорость не та выставлена, надо 115200

levinst

Понял! БОДы полставил 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

SovGVD

чето не одного совпадения адресов… или я не там их смотрел =( киньте прошивку, которая работает, посмотрю что там указано

SovGVD

попробуйте так:
лезем в 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 напишет =)

levinst

Заменил адреса в файлах:

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”. Проверить работу датчиков не могу

SovGVD

Надо было только гиру и аксель поменять попробовать, остальное в старом коде имело те же адреса.

levinst
Sir_Alex:

Это что то очень старое. Качайте отсюда: code.google.com/p/megapiraten...3.zip&can=2&q=

Именно от туда и качал прошивку (новую). К сожалению не работает.

SovGVD:

Надо было только гиру и аксель поменять попробовать, остальное в старом коде имело те же адреса.

Получается, что не то же:

BMP085_ADDRESS 0x77 -> 0xEE
COMPASS_ADDRESS 0x1E -> 0x3C

Sir_Alex

Тут оракулов нету.
Сделайте хотя бы скриншоты того, что выдает плата при подключении терминалом (до изменений адресов и после). Терминал используйте Putty или на на худой конец Arduino IDE (там есть).

levinst
Sir_Alex:

Сделайте хотя бы скриншоты того, что выдает плата при подключении терминалом (до изменений адресов и после). Терминал используйте Putty или на на худой конец Arduino IDE (там есть).

Я же говорил, что я новичек. Сказали бы сразу, что вывод терминалов нужен. Жду когда откопилируется новая прошивка с измнениями,а потом буду копилировать без изменеий.

SovGVD
levinst:

Получается, что не то же:

посмотрите код внимательнее, если мне не верите
в новом #define BMP085_ADDRESS 0x77 //(0xEE >> 1)
в старом #define BMP085_ADDRESS 0x77 //(0xEE >> 1)

в новом #define COMPASS_ADDRESS 0x1E
в старом #define COMPASS_ADDRESS 0x1E

отличий не вижу, да и попробовать не долго

levinst

Извините! Просто у меня уже 2-45 ночи и голова совсем не варит, а в другом диапозоне времени с Вами не удастся пообщаться, т.к я далеко

SovGVD

Широка страна моя родная… Я вчера тоже почти 3 ночи писал, сегодня почитал… жесть какая то, но вроде прокатило =)