CRIUS ALL IN ONE PRO Flight Controller

Probelzaelo

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

подсмотреть можно как организовано:
в Setup()
#if defined(LED_FLASHER)
init_led_flasher();
led_flasher_set_sequence(LED_FLASHER_SEQUENCE);
#endif

сделать собственные функции для огней по аналогии с этими или прямо внутри упомянутых.

вызывать в loop()
так же или прямо там и дописать про свои огоньки ))
#if defined(LED_FLASHER)
led_flasher_autoselect_sequence();
#endif

сразу оговорка, туда не влезал, нашел чисто просмотром исходника насикосог.

UserM

Дык, по поводу поддержки со стороны multiwii и был вопрос, а не этом как к транзистору Led пришпандорить.

Probelzaelo
UserM:

со стороны multiwii

первые шаги в направлении где копать я вроде показал.

DVE

Как вариант - сделать свой вариант pilot lamp, ее логика работы описывалась в форуме multiwii.

UserM
DVE:

сделать свой вариант pilot lamp

Вот к этому всё и идёт, просто надеялся, что кто-нибудь уже сделал. ))

vatanuki
UserM:

Вот к этому всё и идёт, просто надеялся, что кто-нибудь уже сделал. ))

если я правильно понял, то вот

/******************************** LED FLASHER ***********************************/
//#define LED_FLASHER
//#define LED_FLASHER_DDR DDRB
//#define LED_FLASHER_PORT PORTB
//#define LED_FLASHER_BIT PORTB4
//#define LED_FLASHER_INVERT
//#define LED_FLASHER_SEQUENCE 0b00000000 // leds OFF
//#define LED_FLASHER_SEQUENCE_ARMED 0b00000101 // create double flashes
//#define LED_FLASHER_SEQUENCE_MAX 0b11111111 // full illumination
//#define LED_FLASHER_SEQUENCE_LOW 0b00000000 // no illumination

можно сделать по тумблерку (AUX-x), можно при арме, при дисарме, все по разному мигает, для себя делал блым-блым-пауза, вроде так, видео есть если надо)
цеплял 12V LED полоски (4 штуки по 3 светодиода), смыкал это дело транзистором, вешал на D12 если не путаю

в новой версии мультивии они просот вместо bin (что я думаю нагляднее) сделали вот так

#define LED_FLASHER_SEQUENCE_ARMED ( (uint8_t) (1<<0 | 1<<2) )

Dreddix

Прошу помощи у сообщества с миним осд, айоп и рсси.
Пытаюсь заставить миним осд показать мне рсси с приемника.
Рсси контакт подключен к А5 АЙОПа, а коде в "Apm_config.h " добавил строчку #define RECEIVER_RSSI_PIN 5, также добавил эту строчку в config.h в разделе плата- пират. Я уже готов её запихать куда угодно. Была она у меня попеременно и там и там, никакой разницы.
Датчик тока/напряжения подключены к пинам А1/А2. А0 вроде как по умолчанию отдан датчику скорости, не будем масло масленное делать, пусть висит себе А0 в одиночестве. Необходимые правки сделал в config.h, всё ок, всё работает.
Перешивал саму осд с прошивками 2.0 и 2.2extra, и 2.3extra (залита сегодня, 11 часов назад вроде как 😃 )
Ко всему прочему полыхнул чип ОСД, пипец. Он тупо перегрелся! И это в1 не греющаяся с хоббика. Во время работы она нереально горячая. Чип генерации осд “филипс” (вроде) горячий хуже утуга, пальцем не коснуться. Вот он молча и умер. Но это фигня, есть ещё 1 осд.
Миним показывает всегда РССИ 1%. Не важно что я делаю, я вижу 1%. Даже когда я ставлю галочку @display RAW data@, я вижу 1% а не значение от 1 до 255…
Господа, что я делаю не так?

UserM
vatanuki:

если я правильно понял, то вот

Спасибо, сделаю пока так.

mahowik
Dreddix:

Миним показывает всегда РССИ 1%

а rssi случайно не pwm? как к примеру в D8R-XP
тогда нужно RC фильтр прилепить для преобразования в аналог…

Dreddix
mahowik:

а rssi случайно не pwm? как к примеру в D8R-XP…
тогда нужно RC фильтр прилепить для преобразования в аналог…

Нет, приемник V8FR-HV(discontinued) У него нет рсси. На просторах форума нарыл давно уже как через оперативный усилок сделать рсси (с зелёной лампочки статуса), точнее УБП(уровень битых пакетов). Там вольтики просто. Есть сигнал- 3в, нет сигнала меньше 1в. А Айопу разве не это надо? На осд ремзиби это работало. Там помоему принцип тот же. Или айопу совсем другое надо?
Да и дело скорее всего в АЙОПе, я не знаю как заставить его гнать сигнал на осд. Те чтрочки, что я добавлял, они взяты с официального сайта миним, для оригинального арду. Может в порте это не работает, или работает не так.
Вот единственная страничка, где я что-то нашел как включить рсси code.google.com/p/arducam-osd/wiki/Cfg_RSSI

igor_v_t

Занялся и я своими платами ALL In One v1.0 по случаю купленными на НК. Идея такая - собираюсь использовать программу от Ардукоптера. Взял библиотеки для барометра и гиро-акселя от Ардупирата чуток подправив и в результате барометр читается с непериодическими сбоями сбоями. Можно было бы выковырять кусочек кода для I2C из МультиВия, но тогда сильно много правки а не хотелось бы. Судя по всему I2C на Ардуино имеет какие то ньюансы, учитывая обилие библиотек и работает не очень. Обработку приемника выковыряю с МультиВия. Но это попозже, когда с I2C разберусь. Может кто-нибудь разбирался с I2C и может чего то посоветовать?
Для записи лога может попробую SD карточку использовать или внешнюю память прилеплю.
Попутно решил попробовать Глонас с GPS. Плата сделана в прошлом году но руки не доходили. Библиотека нашлась сразу и тестовая программка работает, так что осталось выставить в окошко и потестировать, но как то погода не способствует. Из окна дома прием не очень(по опыту), а на свежий воздух с ноутбуком гулять не тянет.

igor_v_t

В выходные продолжил возится с барометром. В результате заменил библиотеку на I2С. Нашел другую более продвинутую. Дописал пару строчек контроля и пришлось снизить частоту чтения до 50 Гц. Все в сумме как то помогло. Осталась непонятна инициализация. Как то нестабильно инициализируется. А так как то уже задышало. Так что буду потихоньку отлизывать.

mahowik

Игорь, а смысл сейчас городить что то совсем свое? Что пират что вий стали вполне стабильными платформами… проще дописать что то под себя и не гулять по старым граблям…

igor_v_t
mahowik:

Игорь, а смысл сейчас городить что то совсем свое? Что пират что вий стали вполне стабильными платформами… проще дописать что то под себя и не гулять по старым граблям…

Так и не гуляем. Программа отработана. Просто переношу с платформы на платформу. Работающее на АРМ1 точно так же работает на АРМ2 и будет работать на ALLINONE. Мне просто надоело в свое время тестировать чужие решения. Если появляется что то новое тут же дорисовываю себе. МультиВия платка на Атмеге 328 у меня на той же программе летала и получше, чем МУльтиВий. (Ну так мне показалось.)
О том что это хорошие платформы я писал очень давно и больше двух лет ими эпизодически занимаюсь.
По точкам у меня АРМ1 летала 2 года тому и автопосадка была.
В связи с существующей ситуацией, когда никому ничего не надо и беспилотники в том числе, развлекаемся когда делать совсем нечего. И с погодой не везет. Снегом всех засыпало и посылочки застряли.
Принципиально то что сервиса в программе нет, но зато датчики читаются чаще (почти в два раза) и обрабатываются.
Платки ALLINONE купил по дешевке для других целей (вместо процессора). А сейчас освободились и поставлю на коптер.
Далее если будет время и желание возьму телефон на Андроиде и будем использовать вместо пульта. Тот же Дрон с Айфоном, но подальше и с автопилотом. Пока что UMI X1не сильно вдохновил. Не нравятся его датчики.

MissiaL

есть ли возможность реализовать на этой этой плате автопосадку? Например, если не будет сигнала с пульта. Если есть, то какие дополнительные компоненты нужны? Хватит ли самой платы с её датчиками?

igor_v_t
MissiaL:

есть ли возможность реализовать на этой этой плате автопосадку? Например, если не будет сигнала с пульта. Если есть, то какие дополнительные компоненты нужны? Хватит ли самой платы с её датчиками?

Я не вижу проблемм. Можно садиться по барометру, а лучше прицепить сонар. Если взять с Ардукоптера типа МВ1240 - прицепить совсем легко на АЦП. Но он дорогой. Я использовал такой алгоритм- снижаемся со скоростью 10-20 см/сек, на высоте 20-30 см сбрасываем газ и блокируем моторы . Основная проблема в том, что при ветре садиться нужно достаточно быстро в момент когда горизонтальная скорость близка к нулю. Иначе переворачивается. С дешевым сонаром нужно данными сонара откалибровать барометр с фильтрацией, поскольку сонар сбоит. Чисто по барометру проблематично, так как за 5-10 мин нуль может на метр уйти. Сесть то сядет, но при ветре будут проблемы, поскольку при такой погрешности быстро снижаться не получиться.

Leon11t
MissiaL:

есть ли возможность реализовать на этой этой плате автопосадку? Например, если не будет сигнала с пульта. Если есть, то какие дополнительные компоненты нужны? Хватит ли самой платы с её датчиками?

Вот тут посмотрите , здесь чувак реализовал ету функцию. Перечитайте тему по ссылке, там есть ответ.

UserM
MissiaL:

Например, если не будет сигнала с пульта.

Зависит от Вашего приёмника. Например со стоковым комплектом Turnigy 9x, можно. Я имею ввиду просто уменьшить обороты и через определённое время выключить двигатели.

AndyGr
MissiaL:

есть ли возможность реализовать на этой этой плате автопосадку? Например, если не будет сигнала с пульта. Если есть, то какие дополнительные компоненты нужны? Хватит ли самой платы с её датчиками?

Подобное пробовал на MahoWii RC2 c использованием приемника, поддерживающего FS. Например FrSky.

MissiaL

У меня стоковый комплект Turnigy 9x. Имеется плата. Нет GPS, нет сонара. Хочу реализовать простейшую автопосадку, чтобы показать её на конференции. Переключил тумблер на пульте и коптер пошел на посадку. Хочется как-то так, ну или просто отключил пульт и коптер также пошел на посадку.

UserM

Можно ли это назвать полноценной посадкой, не знаю. В конфиге Вы можете разрешить работу функции FAILSAFE и указать времена и и обороты двигателя.


//#define FAILSAFE                                // uncomment  to activate the failsafe function
    #define FAILSAFE_DELAY     10                     // Guard time for failsafe activation after signal lost. 1 step = 0.1sec - 1sec in example
    #define FAILSAFE_OFF_DELAY 200                    // Time for Landing before motors stop in 0.1sec. 1 step = 0.1sec - 20sec in example
    #define FAILSAFE_THROTTLE  (MINTHROTTLE + 200)

После пропадания сигнала от передатчика, через установленное Вами время обороты снизятся до установленных в конфигурации и ещё через время моторы выключатся, но поскольку высота не контролируется , то и полноценной автопасадкой назвать наверно нельзя.

MissiaL:

чтобы показать её на конференции

Хотя для этой цели может и сойдёт, только нужно показывать атопасадку с заранее опредёлённой высоты. Например рекомендуют устанавливать обороты двигателей, для FAILSAFE чтоб коптер снижался примерно метр в секунду. Поднимаете коптер на 3 метра выключаете передатчик и если вконфиге поставить время 3-4 секунду он приземлится и выключит двигатели. ))
Конечно строго вниз он наверно не полетет, нужно иметь запас площади.