Activity

MultiWii

Переназначил порт на “С”. Заработало включение на команду LED MAX. На LED LOW не реагирует никак. А как сделать моргание светодиодов по команде с пульта? К примеру, при среднем положении переключателя светодиоды горят постоянно, а в max - моргают?

P.S. Спасибо! Разобрался сам.

MultiWii
UserM:

Чтоб моргало,раскоментируйте всё.

#define LED_FLASHER // разрешить подсветку

// Назначает порт, для платы CIRUS MultiWii Light контакт D12, для //остальных прозвонить, уточнить.
#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 “Патерн” , для режима “disarmed”, например если установить “0b01010101”,то в режиме “disarmed” будет мигать 125ms горит 125ms пауза.

#define LED_FLASHER_SEQUENCE_ARMED 0b00000101 // Как моргать, в режиме “armed” каждый бит 125mS. Т.е.при дефолтной установке две вспышки по 125мс , с паузой между вспышками 125мс , повторяются раз в 1секунду (3*125+ 5*125= 1сек.).

Следующие “дефайны” можно использовать, для включения/выключения LED, назначив канал на AUX.
//#define LED_FLASHER_SEQUENCE_MAX 0b11111111 // full illumination
//#define LED_FLASHER_SEQUENCE_LOW 0b00000000 // no illumination

Раскоментировал все строки , но результата не получил.Сигнал снимал с 33 pin платы (осцилографом). В ГУИ настроил на AUX. Также смотрел и на других выводах платы. Ничего нет.
Нашел в def.h такие строки:
//servo pins on AIO board is at pins 44,45,46,then release pins 33,34,35 for other usage
//eg. pin 33 on AIO can be used forLEDFLASHER output
О чем говорит вторая строка? И как вывести LED на 33 pin? Может где-то еще что-то нужно раскоментировать? Я в программировании не силен. Подскажите.

MultiWii

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

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

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

Решил попробовать установить прошивку 2.9 Мегапирата на плату ALL IN ONE PRO. До этого пользовался MultiWii. Раскоментировал скетч под свою аппаратуру. Переделал передачик Турнигу, т.е установил переключатель на 6 положений вместо одной из крутилок, подобрал сопротивления по необходимым сигналам PPM для Flight mode в Mission Planner.Теперь осталось выставить режимы. А вот тут у меня появились вопросы. В предложенных вариантах настройки, а их 12 режимов (и это на 6 позиций переключателя) есть незнакомые мне режимы, такие как, Guided, Land (я так понял, что это приземление), OF_LOITER (это не просто Loiter) и Toy. Кто может разъяснить их назначение? Это первый вопрос. Второй вопрос, какие режимы и в каком порядке расположить на переключателе режимов работы? Учитывая Ваш громадный опыт, наверное, уже есть накатанное решение. Прошу помочь в этих вопросах!

P.S. Просмотрел много тем, но ответы как то не попались.

CRIUS ALL IN ONE PRO Flight Controller

[QUOTE=mahowik;3906347]все давно есть… вот тут описывал[/URL] как настроить мертвую зону (DEADBAND)…

Спасибо! К сожалению я этого не видел. Сейчас посмотрел скетч, там у меня стоит 12. Наверное этого мало, потому что гистерезис чувствуется достаточно сильно. Буду настраивать по вашей методике.
Вопрос, а почему в ГУИ не наблюдается мертвая зона? Это отражается только на реакции двигателей?

CRIUS ALL IN ONE PRO Flight Controller
omegapraim:

filimon не сочтите за неуважение но отредактируйте свой пост так чтоб его можно было читать (проставьте пробелы)

К сожалению, так переносится в эту прграмму текст с Word. Сначала то что получилось, а потом будь добр правь.

CRIUS ALL IN ONE PRO Flight Controller

Александру (маховик).

Может быть Вас заинтересуют мои мысли по совершенствованию софта для MultiWii.

Столкнулся с такой проблемой. Качество передатчиков, а именно простых типа Турнига, оставляют желать лучшего. Дело в том, что переменные сопротивления, взаимодействующие со стиками и задающие сигнал PPM, имеют гистерезис в работе. Это сказывается на «нулевых» значениях основных каналов управления (Rool и Pitch), от которых зависит точность повтора зависания мультикоптера. Да, наверное, этот эффект Вы и сами отмечали при управлении коптером. Это хорошо видно и в ГУИ. Попробуйте поработать стиком потихоньку вперед, а потом в «ноль», а потом назад и опять в «ноль» и Вы увидете, что показания «нуля» в ГУИ примерно на 5 единиц не возвращаются к исходному. На коптере это заметно сказывается в виде дрейфа в ту или другую сторону, которое совершенно не поддается настройке. Так вот я предполагаю, что можно дополнить софт дополнительными строками, где среднее положение стика всегда будет 1500, т.е. близкие числа к нему в пределах заданного (допустим 5единиц) будут округлятся. Тогда среднее положение стика уже точно будет всегда постоянным числом 1500 и гистерезис будет ликвидирован. Можно пойти и другим путем. Это может потребоваться при необходимости триммирования нулей. Сигнал «нуля»запоминается при включении АРМа, но потом он усредняется в середине стика до запомненного при пуске (тоже в пределах заданного). Этот вариант, мне кажется,более лучший.

Если Вас заинтересовали мои предложения буду рад!

MultiWii
raefa:

А зачем режим Heli? Самолетный нельзя штоль? Читал темку давненько, может и подзабыл уже.

Подскажите, у MMA7361 есть 2 режима: 1.5g и 6g. Что выбирать?

Все зависит от передатчика и его софта. Главная задача избавиться от внутреннего микширования каналов в передатчике. Если есть такая возможность у передатчика выдать PPM сигналы без микширования каналов в конфигурациях акро или какой либо другой, отличной от предложенного варианта - тогда нет проблем.

MultiWii
Flutter:

Вы ссылочку внизу страницы видели? Насколько новая эта плата, если ее обсуждают уже 40 страниц в отдельной теме?

Простите, но я имел в виду, не то, что эта плата относится к новым разработкам! Просто эта плата имеет набор современных датчиков и стала дешевле. А на HobbiKing новые разработки появляются тогда, когда они уже “не новые”. А информация первая была от “маховика” rcopen.com/forum/f123/topic283798, но там (по ссылке) эта плата стоит 63 бакса. Хотя это и было сравнительно уже давно.

MultiWii

На HobbiKing появились новая плата MultiWii Megapirate на процессоре AT Mega 2560 с современными датчиками всего за 49 зеленых.

Кто не имеет возможности купить за доллары, здесь можно купить за рубли. Простите, но это не реклама, с паркфлайером связан только как покупатель.

MultiWii
RUPilot:

Всемдоброго времени. Имеется вот такой контроллер - MultiWii 328P Flight Controller w/FTDI & DSM2

Features:
• Atmega328P
• ITG3205 трех осевой гироскоп

• BMA180 Акселерометр
• BMP085 Барометр
• HMC5883L Компас
• Преобразователь уровней

Всё установлено на квадрокоптер, контроллер оперирует с программой версии 2.1
Проблема в том, что не получается изменить конфигурацию квадрокоптера (c + на X), и датчик стабилизации находится в реверсе (при накренении квадрокоптера газ добавляется на том моторе, что находится в верхней точке ). Все калибровки, произведенные на компьютере не помогают. Как реверсировать гироскоп и изменить конфигурацию? .

Руслан! Прежде начните все с «0».

  1. В передатчике выберете модель «Helli» и установите «0» по модификации привода автомата перекоса. Это означает, что Вы выключили все микшеры по Roll, Pitch,Yaw и THR. Это очень важно, так как все каналы управления должны не зависеть друг от друга.
  2. В скетче в конфиге выставите свой коптер, в данном случае #define QUADX
  3. Эту, конкретно, плату в скетче я не увидел (по набору датчиков она такая же как Crius SE, но датчики акселерометра и компаса запаяны с разворотом 180 градусов), поэтому типового IMU нет и Вам необходимо в конфиге раскоментировать эти датчики по отдельности, т.е. напротив строк с этими датчиками убрать //. При этом все IMU должны быть закомментированы( // ).
  4. После этого нужно подключиться к GUI и проверить правильность отработки команд Roll,Pitch,Yaw,THR. При необходимости откорректировать сигналы передатчика, т.е. сделать реверсы (если это необходимо), выставить нули (1500) и диапазоны регулировки (от1020 до 1950). Только после такой настройки передатчика можно продолжить настройку самой системы стабилизации.
  5. Проверьте правильность отработки гироскопов и, если идет не соответствие, подберите в конфиге соответствующую их расположению конфигурацию, меняя местами оси X и Y, а также знаки перед ними.

/* individual sensor orientation */
//#defineACC_ORIENTATION(X, Y, Z) {accADC[ROLL] = X;accADC[PITCH] = -Y; accADC[YAW] = Z;}
//#defineGYRO_ORIENTATION(X, Y, Z) {gyroADC[ROLL] = -Y; gyroADC[PITCH] = X; gyroADC[YAW]= -Z;}
//#defineMAG_ORIENTATION(X, Y, Z) {magADC[ROLL] = -X; magADC[PITCH] = -Y; magADC[YAW] = Z;}

6.Тоже нужно сделать при необходимости с акселем и компасом.
7.Произвести калибровку акселерометра.
8.Произвести калибровку компаса.
9.После этого можно ВПЕРЕД!

MultiWii
DVE:

В файле Output.ino есть строки типа

#if defined(MEGA)
 uint8_t PWM_PIN[8] = {3,5,6,2,7,8,9,10};      //for a quad+: rear,right,left,front   //+ for y6: 7:under right  8:under left
#endif

Дальше ищите соответствие номеров пинов на плате и пр. Но менять пины надо аккуратно т.к. другие номера могут использоваться где-то еще.

PS: Язык Arduino - это обычный С, начните с чтения любых книг по нему.

Дак вот и проблема. Здесь я все уже пробовал менять! Это не то. Скорее всего собака зарыта в кодах таймеров и вот там идет присвоение.

P.S
Александр! Я с Вами согласен. Просто тупо повторить сделанное кем то - это не интересно! На то оно и ХОББИ! Всегда надо разобраться с тем, что ты сотворил и добавить свою изюминку. Только тогда получишь удовольствие от того, что ты сделал.

MultiWii

[QUOTE=mahowik;3816509]а что конкретно вы хотите сделать? поменять пины выходов на моторы? тогда вопрос зачем? ))

Этот вопрос меня заинтересовал, когда я “спалил” один из выходов платы Arduino, на которой был построен стабилизатор MultiWii. Хотя это для меня не проблема по замене МК, но я дотошно попытаюсь разобраться в скетче по привязке выходов. Как я уже писал, язык Arduino мне ответов не дал! Вот поэтому я и спрашиваю у Вас!

MultiWii
mahowik:

Я вот тоже перестал практически в эту ветку заходить, бо зае… 😃

upd: а раньше тут было дофига интересных мыслей…

Александр! Я очень хочу понять, как можно поменять в программе (скетче), выхода на моторы и серво механизмы! Я не программист, но хочу разобраться в этих строках в скетче. Где можно найти описание программы, т.е. ее структуру (макрос) ее построения? Справочник языка Arduino я внимательно прочитал. Но в скетче я не нашел нужных (мне понятных) строк. Конечно, наверное, здесь какие то более сложные процессы присвоения PIN OUT по каждой разновидности микропроцессоров, но хотелось бы это понять! Если Вы в этом понимаете, подскажите!

MultiWii
flank:

подскажите пожалуйста
есть плата с ХК hobbyking.com/…/__27033__MultiWii_328P_Flight_Cont…
там нет разьема I2C, но вроде как дорожки с контактными площадками проведены, если припаять контакты работать будет? есть желание gps приделать

В этой плате, судя по фото, интерфейс I2C уже выведен (SDA и SCL), только не впаян разьем.Кроме этого даже выведено напряжение питания GPS платы – 3.3 вольта (хотя иногда для питания GPS модуля необходимо 5 вольт).
См. фото

Но есть другое. Большинство GPS плат(модулей) работают по интерфейсу UART(RX иTX). Хотя в этих специализированных микросхемах GPS и есть возможность работать по интерфейсу I2C, но эти порты не всегда выведены в модуле для внешнего контакта. На вашей плате интерфейс UART не выведен ( по крайней мере на фото не видно). Хотя он и есть на плате, но он занят портами связи USB микросхемы. Поэтому, прежде чем что-то делать по установке GPS модуля,нужно уточнить эти моменты.

MultiWii
SMaks:

Добрый день,
Собрал вот свой первый коптер на Cirrus All-in-One, поставил на стол без пропеллеров, прошил miltiwii, откалибровал ESC, аксель и магнитометр, заармил, завожу:

  • если заводить плавно, сначала включаются два мотора, потом еще один (где-то на 25% газа), потом, на 50% последний…
  • если заводить резко, включаются все 4, но через пару секунд обороты двух моторов начинают падать, и один останавливается, если газ меньше 50%.
    В конфигураторе multiwii все так и показывает - то есть проблемы не в моторах и не в регулях, это контроллер так управляет …
    Если коптер наклонять, то моторы меняют обороты, но поблемные моторы заводятся ненадолго на углах в 30-40 градусов и почти сразу останавливаются.
    Картинку из конфигуратора приложил - может что изначально не так стоит…

Подскажите, что делаю не так ??

И еще недавно обнаружил такую вещь. В настройках ГУИ на 1 положение AUX1 поставил LEVEL , на 2 - Hold и на 3 Hold и Mag. Вот тогда и появилась у меня дурь при раскрутке двигателей. Стою на 1 положении (включено Level). Сначала начинают крутиться 3 двигателя, а потом остальные. Ну и, конечно, полет никакой. После того, когда я восстановил правильные настройки, т.е. на 1 положении AUX ничего, на 2 положении Level , а на 3 - Level и режимы AltHold и Mag - все заработало как надо. Раскрутка на 1 положении. Вообще, непонятно и конечно интересно как то. Может и Вас что нибудь подобное происходит.

MultiWii
SMaks:

Добрый день,
Собрал вот свой первый коптер на Cirrus All-in-One, поставил на стол без пропеллеров, прошил miltiwii, откалибровал ESC, аксель и магнитометр, заармил, завожу:

  • если заводить плавно, сначала включаются два мотора, потом еще один (где-то на 25% газа), потом, на 50% последний…
  • если заводить резко, включаются все 4, но через пару секунд обороты двух моторов начинают падать, и один останавливается, если газ меньше 50%.
    В конфигураторе multiwii все так и показывает - то есть проблемы не в моторах и не в регулях, это контроллер так управляет …
    Если коптер наклонять, то моторы меняют обороты, но поблемные моторы заводятся ненадолго на углах в 30-40 градусов и почти сразу останавливаются.
    Картинку из конфигуратора приложил - может что изначально не так стоит…

Подскажите, что делаю не так ??

Для того, чтобы все работало правильно, необходимо в первую очередь настроить передатчик, т.е. в ГУИ (передатчиком) выставить пределы и нули сигналов управления по каждому параметру (YAW,ROLL, PITCH,THR). " нули "- это 1500, а диапазон от 1020 до 2000. Только в этом случае (если все эти настройки выполнены) ищите причину в другом.

MultiWii
devv:

какие именно выхода (номера портов) не работают при использовании Атмеги2560 ?

Подключение такое:
D2 - хвостовой ротор
D3 - THR
D5 - правая серва тарелки авт.пер.
D6 - левая серва тарелки авт.пер.
D37 - задняя

MultiWii

Ребята, кто юзал Multiwii в режиме Heli ? Столкнулся с такой проблемой. Плата с МК ATMega 328 c последними прошивками 2.1 работает, по крайней мере входа и выхода функционируют. А вот плата где МК ATMega 2560 (ардуино)нормально работать не хочет с этой прошивкой. Входа работают, а выхода (сервоприводы) не работают. В ГУИ все функционирует как положено. Попробовал заменить прошивку на Бетту версию для Heli по описанию …blogspot.ru/…/multiwii-helicopter.html сервоприводы заработали, но не все. Понял, что дело в прошивках, видимо все еще сырое. Все в основном делают упор на мультикоптеры, а до вертолетов руки не доходят, а жаль. Может кто что нибудь подскажет?

MultiWii
targetorsk:

Сам хочу попробовать т.к. на плате есть гиро+аксель то по логике система должна не только поддерживать FBL конфигурации (аксель) и заменять Flymentor (производить выравнивание вертолета) по сути заменяя собой Скокум720, и оно летает, но инфы маловато даже на rcgroups 😦

Вот и я хочу попробовать, но инфы мало. У меня есть и Flymentor и HelliCommand 3D, но они то все работают на вертах с флайбаром и не имеют на борту акселя. Сейчас разрабатываю в коробочках от флайментора и от приемника Турниговского специализированный Вий конкретно для вертолета без всяких лишних разьемов и других штучек. Контроллер 328 мега.

MultiWii
dROb:

Сама идея использования MultiWii предполагает что система заменит собой Флайбар, так что да, безусловно без флайбара.

А где можно почитать по этой конфигурации. Залил скетч с Helli. Хочу свою 500 сотку попробовать на мультивии, а где информация по подключению серв автомата перекоса?

MultiWii
filimon:

Ребята помогите. Собрал MultiWii на базе Arduino Mega 2560. В программированиия я не специалист, только пытаюсь разобраться. Проблема такая – сгорел выходной транзистор порта №06 (спалил нечаянно). Порт не работает. Но есть свободный порт №12 (вроде нигде не задействован) . Надо перенаправить туда сигнал управления двигателем. Искал в скетче v. 2.1 привязку выходных портов к двигателям, но так толком и не понял, где это и как это сделать. Если знаете, то подскажите, как это сделать. Жалко выбрасывать Ардуинку! Заранее благодарю!

Порт у Ардуины восстановил следующим образом:
Напряжением 10 вольт пробил сгоревший выходной транзистор порта. После этого выходное сопротивление порта стало около 1000Ом (было 75 Ом). Осцилограф показал наличие на нем выходного сигнала, но в 10 раз меньше по амплитуде, чем нормалный. Сделал маленькую печатку схемы компаратора на операционном усилителе. Сигнал усилился до амплитуды питания (5 вольт). После подключения мотора все заработало как положено!
Единственный неопределенный момент - надежность микроконтроллера, но время покажет. Так, что есть положительный опыт лечения таких неисправностей.

MultiWii
filimon:

Ребята помогите. Собрал MultiWii на базе Arduino Mega 2560. В программированиия я не специалист, только пытаюсь разобраться. Проблема такая – сгорел выходной транзистор порта №06 (спалил нечаянно). Порт не работает. Но есть свободный порт №12 (вроде нигде не задействован) . Надо перенаправить туда сигнал управления двигателем. Искал в скетче v. 2.1 привязку выходных портов к двигателям, но так толком и не понял, где это и как это сделать. Если знаете, то подскажите, как это сделать. Жалко выбрасывать Ардуинку! Заранее благодарю!

А если просто написать дополнительную строку дублирования сигнала порта №6 на порт №12? Тогда не надо будет нарушать скетч. Ребята программисты подумайте!

MultiWii
HATUUL:

По ходу в def.h
Под all the Mega types.А вот,как хороший вопрос.

Не в def.h. Там пробовал в строке: #define SERVO_5_PINMODE pinMode(6,OUTPUT); // BI LEFT - поставить- pinMode(12,OUTPUT);- не работает.

EduardNN:

Выбрасывать ардуинку конечно не стоит, а вот мегу лучше все таки заменить , как выгорел порт и что подгорело рядом с ним неизвестно - “поджаренный” контроллер может выкинуть все что угодно в самый неподходящий момент.

Согласен, но на первый взгляд он работает нормально. Выходное сопротивление порта упало до 75 Ом. Но, всетаки хочется попробовать найти эти строчки в скетче и поменять неисправный порт.

mataor:

не в деф.н а в оутпут.ино вывод на двигатели

К сожалению, я не могу найти эту строку в Output.ino. А потом какие нужно сделать в ней изменения, чтобы 6 порт поменять на 12?

MultiWii

Ребята помогите. Собрал MultiWii на базе Arduino Mega 2560. В программированиия я не специалист, только пытаюсь разобраться. Проблема такая – сгорел выходной транзистор порта №06 (спалил нечаянно). Порт не работает. Но есть свободный порт №12 (вроде нигде не задействован) . Надо перенаправить туда сигнал управления двигателем. Искал в скетче v. 2.1 привязку выходных портов к двигателям, но так толком и не понял, где это и как это сделать. Если знаете, то подскажите, как это сделать. Жалко выбрасывать Ардуинку! Заранее благодарю!