ArduCopter Mega: порт на обычную Arduino (тестим)
docs.megapirateng.com тут много чего интересного…
Парни, подскажите - из какого бранча на гитхабе (или где еще) брать исходники с телеметрией frsky? Читал что Sir Alex добавил в пирата возможность отправлять телеметрию в формате frsky на порту S1, но проша из флештула молчит на данных выводах(смотрел лоджик аналайзером). Бранч mpng-3.1-beta вроде со слов сэра Алекса и есть 3.1.5-r2 Final, но там либы AP_FrSky не нашел…(как и данных в порту) На гитхабе еще есть несколько веток типа master, s.port и тп - там указанная либа присутствует, но фик его знает чем они от основной ветки еще отличаются… Ставить эксперименты по надежности не хочется… А самому выдрать код в основную ветку боюсь ума не хватит, да и опять же это вопрос надежности и падучести (в прямом и переносном смысле).
Кто-нить реально пользовался этим? Или у всех или осд и радиомодемы? Хочется использовать потенциал Тараниса без доп. оборудования на борту и апе.
ЧТо бы не повторятся скину ссылку на свое сообщению сюда. может изначально нужно было писать в этой теме ?
rcopen.com/forum/f123/topic330159/260
первую ошибку, которую вы сделали - прошили AIOP через мишен планер. возможно что из-за этого в меге загрузщик испортили. по идее нужно попробовать залить загрузщик через ISP программатор
нужно попробовать залить загрузщик через ISP программатор
ISP программатора У меня нет. Отсюда вопрос, есть желающие в Москве (СЗАО) и ближнем Подмосковье мне помочь. Куда надо подъеду (если это не очень далеко будет)
Попробовать ардуиной залить чего нить.
Может и не умер бут.
Или собрать на коленке ISP программатор 😃 robocraft.ru/blog/arduino/50.html
У меня тоже в терминале на аиоп кракозябры, если контроллер загрузить, подключить сначала МП, а потом отключить его и подключить терминал. Я тоже когда-то вначале пробовал прошить из планера - платка перестала реагировать до прошивки флештулом, после спокойно поднялась и работает - так что загрузчик должен быть жив. Тем более если модем подключился - то явно чтото там живет и функционирует 😉
У меня тоже в терминале на аиоп кракозябры, если контроллер загрузить, подключить сначала МП, а потом отключить его и подключить терминал. Я тоже когда-то вначале пробовал прошить из планера - платка перестала реагировать до прошивки флештулом, после спокойно поднялась и работает - так что загрузчик должен быть жив. Тем более если модем подключился - то явно чтото там живет и функционирует 😉
Да вы правы платка жива. Мне чудесным образом прошил наш однофорумчанин. Почему чудесным? Да потому, потому что я вроде все тоже самое делал. Единственное телеметрию при прошивке не отключал. Вот, что значит рука мастера. Раз и готово. Спасибо ему и всем дает ответы на этом форуме.
Телеметрия поди на 0м порту висела 😃
Народ, подскажите не могу скомпилить
flip.pde:9:9: error: redefinition of ‘uint8_t flip_timer’
flip.ino:9:9: error: ‘uint8_t flip_timer’ previously declared here
flip.pde:10:9: error: redefinition of ‘uint8_t flip_state’
flip.ino:10:9: error: ‘uint8_t flip_state’ previously declared here
flip.pde:16:15: error: redefinition of ‘int8_t flip_dir’
flip.ino:16:15: error: ‘int8_t flip_dir’ previously declared here
flip.pde: In function ‘void init_flip()’:
flip.pde:18:6: error: redefinition of ‘void init_flip()’
flip.ino:18:6: error: ‘void init_flip()’ previously defined here
flip.pde: In function ‘void roll_flip()’:
flip.pde:28:6: error: redefinition of ‘void roll_flip()’
flip.ino:28:6: error: ‘void roll_flip()’ previously defined here
inertia.pde: In function ‘void read_inertia()’:
inertia.pde:4:13: error: redefinition of ‘void read_inertia()’
inertia.ino:4:13: error: ‘void read_inertia()’ previously defined here
inertia.pde: In function ‘void read_inertial_altitude()’:
inertia.pde:21:13: error: redefinition of ‘void read_inertial_altitude()’
inertia.ino:21:13: error: ‘void read_inertial_altitude()’ previously defined here
leds.pde: In function ‘void update_notify()’:
leds.pde:5:13: error: redefinition of ‘void update_notify()’
leds.ino:5:13: error: ‘void update_notify()’ previously defined here
leds.pde: In function ‘void copter_leds_init()’:
leds.pde:38:13: error: redefinition of ‘void copter_leds_init()’
leds.ino:38:13: error: ‘void copter_leds_init()’ previously defined here
leds.pde: In function ‘void update_copter_leds()’:
leds.pde:54:13: error: redefinition of ‘void update_copter_leds()’
leds.ino:54:13: error: ‘void update_copter_leds()’ previously defined here
leds.pde: In function ‘void copter_leds_reset()’:
leds.pde:129:13: error: redefinition of ‘void copter_leds_reset()’
leds.ino:129:13: error: ‘void copter_leds_reset()’ previously defined here
leds.pde: In function ‘void copter_leds_on()’:
leds.pde:140:13: error: redefinition of ‘void copter_leds_on()’
leds.ino:140:13: error: ‘void copter_leds_on()’ previously defined here
leds.pde: In function ‘void copter_leds_off()’:
leds.pde:161:13: error: redefinition of ‘void copter_leds_off()’
leds.ino:161:13: error: ‘void copter_leds_off()’ previously defined here
leds.pde: In function ‘void copter_leds_slow_blink()’:
leds.pde:182:13: error: redefinition of ‘void copter_leds_slow_blink()’
leds.ino:182:13: error: ‘void copter_leds_slow_blink()’ previously defined here
leds.pde: In function ‘void copter_leds_fast_blink()’:
leds.pde:199:13: error: redefinition of ‘void copter_leds_fast_blink()’
leds.ino:199:13: error: ‘void copter_leds_fast_blink()’ previously defined here
leds.pde: In function ‘void copter_leds_oscillate()’:
leds.pde:210:13: error: redefinition of ‘void copter_leds_oscillate()’
leds.ino:210:13: error: ‘void copter_leds_oscillate()’ previously defined here
leds.pde: In function ‘void copter_leds_GPS_on()’:
leds.pde:255:13: error: redefinition of ‘void copter_leds_GPS_on()’
leds.ino:255:13: error: ‘void copter_leds_GPS_on()’ previously defined here
leds.pde: In function ‘void copter_leds_GPS_off()’:
leds.pde:259:13: error: redefinition of ‘void copter_leds_GPS_off()’
leds.ino:259:13: error: ‘void copter_leds_GPS_off()’ previously defined here
leds.pde: In function ‘void copter_leds_GPS_slow_blink()’:
leds.pde:263:13: error: redefinition of ‘void copter_leds_GPS_slow_blink()’
leds.ino:263:13: error: ‘void copter_leds_GPS_slow_blink()’ previously defined here
leds.pde: In function ‘void copter_leds_GPS_fast_blink()’:
leds.pde:276:13: error: redefinition of ‘void copter_leds_GPS_fast_blink()’
leds.ino:276:13: error: ‘void copter_leds_GPS_fast_blink()’ previously defined here
leds.pde: In function ‘void copter_leds_aux_off()’:
leds.pde:286:13: error: redefinition of ‘void copter_leds_aux_off()’
leds.ino:286:13: error: ‘void copter_leds_aux_off()’ previously defined here
leds.pde: In function ‘void copter_leds_aux_on()’:
leds.pde:290:13: error: redefinition of ‘void copter_leds_aux_on()’
leds.ino:290:13: error: ‘void copter_leds_aux_on()’ previously defined here
leds.pde: In function ‘void piezo_on()’:
leds.pde:294:6: error: redefinition of ‘void piezo_on()’
leds.ino:294:6: error: ‘void piezo_on()’ previously defined here
leds.pde: In function ‘void piezo_off()’:
leds.pde:300:6: error: redefinition of ‘void piezo_off()’
leds.ino:300:6: error: ‘void piezo_off()’ previously defined here
leds.pde: In function ‘void piezo_beep()’:
leds.pde:306:6: error: redefinition of ‘void piezo_beep()’
leds.ino:306:6: error: ‘void piezo_beep()’ previously defined here
leds.pde: In function ‘void piezo_beep_twice()’:
leds.pde:314:6: error: redefinition of ‘void piezo_beep_twice()’
leds.ino:314:6: error: ‘void piezo_beep_twice()’ previously defined here
motors.pde: In function ‘void arm_motors_check()’:
motors.pde:10:13: error: redefinition of ‘void arm_motors_check()’
motors.ino:10:13: error: ‘void arm_motors_check()’ previously defined here
motors.pde: In function ‘void auto_disarm_check()’:
motors.pde:93:13: error: redefinition of ‘void auto_disarm_check()’
motors.ino:93:13: error: ‘void auto_disarm_check()’ previously defined here
motors.pde: In function ‘void init_arm_motors()’:
motors.pde:117:13: error: redefinition of ‘void init_arm_motors()’
motors.ino:117:13: error: ‘void init_arm_motors()’ previously defined here
motors.pde: In function ‘void pre_arm_checks(bool)’:
motors.pde:222:13: error: redefinition of ‘void pre_arm_checks(bool)’
motors.ino:222:13: error: ‘void pre_arm_checks(bool)’ previously defined here
motors.pde: In function ‘void pre_arm_rc_checks()’:
motors.pde:383:13: error: redefinition of ‘void pre_arm_rc_checks()’
motors.ino:383:13: error: ‘void pre_arm_rc_checks()’ previously defined here
motors.pde: In function ‘bool pre_arm_gps_checks(bool)’:
motors.pde:416:13: error: redefinition of ‘bool pre_arm_gps_checks(bool)’
motors.ino:416:13: error: ‘bool pre_arm_gps_checks(bool)’ previously defined here
motors.pde: In function ‘bool arm_checks(bool)’:
motors.pde:434:13: error: redefinition of ‘bool arm_checks(bool)’
motors.ino:434:13: error: ‘bool arm_checks(bool)’ previously defined here
motors.pde: In function ‘void init_disarm_motors()’:
motors.pde:472:13: error: redefinition of ‘void init_disarm_motors()’
motors.ino:472:13: error: ‘void init_disarm_motors()’ previously defined here
motors.pde: In function ‘void set_servos_4()’:
motors.pde:518:1: error: redefinition of ‘void set_servos_4()’
motors.ino:518:1: error: ‘void set_servos_4()’ previously defined here
navigation.pde: In function ‘void run_nav_updates()’:
navigation.pde:6:13: error: redefinition of ‘void run_nav_updates()’
navigation.ino:6:13: error: ‘void run_nav_updates()’ previously defined here
navigation.pde: In function ‘void calc_position()’:
navigation.pde:19:13: error: redefinition of ‘void calc_position()’
navigation.ino:19:13: error: ‘void calc_position()’ previously defined here
navigation.pde: In function ‘void calc_distance_and_bearing()’:
navigation.pde:28:13: error: redefinition of ‘void calc_distance_and_bearing()’
navigation.ino:28:13: error: ‘void calc_distance_and_bearing()’ previously defined here
navigation.pde: In function ‘void run_autopilot()’:
navigation.pde:55:13: error: redefinition of ‘void run_autopilot()’
navigation.ino:55:13: error: ‘void run_autopilot()’ previously defined here
navigation.pde: In function ‘bool set_nav_mode(uint8_t)’:
navigation.pde:75:13: error: redefinition of ‘bool set_nav_mode(uint8_t)’
navigation.ino:75:13: error: ‘bool set_nav_mode(uint8_t)’ previously defined here
navigation.pde: In function ‘void update_nav_mode()’:
navigation.pde:122:13: error: redefinition of ‘void update_nav_mode()’
navigation.ino:122:13: error: ‘void update_nav_mode()’ previously defined here
navigation.pde: In function ‘void reset_nav_params()’:
navigation.pde:167:13: error: redefinition of ‘void reset_nav_params()’
navigation.ino:167:13: error: ‘void reset_nav_params()’ previously defined here
navigation.pde: In function ‘int32_t get_yaw_slew(int32_t, int32_t, int16_t)’:
navigation.pde:184:16: error: redefinition of ‘int32_t get_yaw_slew(int32_t, int32_t, int16_t)’
navigation.ino:184:16: error: ‘int32_t get_yaw_slew(int32_t, int32_t, int16_t)’ previously defined here
navigation.pde: In function ‘void circle_set_center(Vector3f, float)’:
navigation.pde:196:1: error: redefinition of ‘void circle_set_center(Vector3f, float)’
navigation.ino:196:1: error: ‘void circle_set_center(Vector3f, float)’ previously defined here
navigation.pde: In function ‘void update_circle()’:
navigation.pde:238:1: error: redefinition of ‘void update_circle()’
navigation.ino:238:1: error: ‘void update_circle()’ previously defined here
perf_info.pde: At global scope:
Народ, подскажите не могу скомпилить
Удалить все к чертям, потом поставить строго по мануалу.
Добрый вечер.
Прошу прощения, если вопросы покажутся нудными.
Вчера (вернее уже позавчера) первый раз увидел, как летает коптер на прошивке MegaPirate на плате AIOP. Мне понравилось. 2 года летал на Маховии, правда до конца так и не донастроил. Вроде летает, но всегда чего-то не хватало. В частности удержание высоты и точки - метров 3-5 в диаметре и до 1 метра по высоте. У Пирата лучше. По крайней мере, то что я увидел. Хочу попробовать. У меня коптер на AIOP с GPS, OSD и модуле блютуз с Rc-Timer с выносным компасом. Ради интереса прошил через FlashTool. Прошился с первого раза, в Mission Planere видится. Откалибровал аксели. Компас выносной на удивление заработал сразу. GPS не проверял - питание не подавал, завтра буду пробовать. Да и EEPROM сперва почистить надо.
Вопросы такие - кроме порядка подключения двигателей, что еще меняется? GPS, блютус, OSD, датчик напряжения, пищалка, подвес? Где можно посмотреть порядок сборки на AIOP? Или все остается на тех-же портах?
Спасибо.
megapirateng.com
Добрый вечер.
Задал этот вопрос в теме про OSD. Ответа не дождался. Может кто-то здесь поможет.
Спасибо.
"Плата MAVLink-OSD была прошита KV Team OSD. Пробую прошить MinimOSD под Mega Pirate. Все прошивается, запускается, но линия горизонта рисуется значками и при покачивании коптера прорисовывается рисунок от Мультивия. Шрифты обновлял, EEPROM чистил. Что делаю не так? "
PS. Файл шрифтов заливал от разных проектов, положительного результата нет.
Ответ на поверхности 😃
Шрифт не залился или не тот заливаете.
Шрифт не залился или не тот заливаете.
Нет, вчера разобрался. Проклятый склероз - знал, да забыл.😁 Питания от программатора недостаточно, для видеопроцессора надо и основное питание подавать.
Просто у видео 3 питания.
Одно штатно к цифре, а два со стороны аналога подключены.
Непонятное при первом Armed после подключения аккумулятора. Левый стик вправо на 4 сек., отпускаешь его и через 2 секунды стартуют двигатели. На второй и следующие разы (если не отключать акк) стартует через 4 секунды стика вправо. Ну или долго держать при первом запуске. Но пугает именно эта пауза при первом запуске.
И необходимость реверса Rolla это нормально?
Но пугает именно эта пауза при первом запуске.
При первом запуске, происходит калибровка датчиков. Это видно по моргающим светодиодам.
При первом запуске, происходит калибровка датчиков.
Это именно при запуске? Я на Mahowii привык, что датчики калибруются при подаче напряжения.
Еще вопрос - можно ли откалибровать RSSI? Или только делитель? А то показывает 160%.