Квадрокоптер на Arduino DUE

Dmitry_DM

Здравствуйте! Прислушался ко всем вашим советам, отказался от беспультового управления, купил пульт. Пришло время подключить и установить всю аппаратуру на коптер. Но есть вопрос по подключению. И так, компоненты следующие:
мозги: Arduino DUE
двигатели + регуляторы: A2212 1000KV + 30A ESC
гироскоп + акселерометр: MPU-6050
барометр: GY-68 BMP180
компас (магнитометр): Gy-273 HMC5883L
аккумулятор 3S 11.1В 5200 мАч 30C
аппаратура управления 6-канальная FlySky FS-CT6B 2.4GHz с приёмником R6B ( FS-CT6B+R6B )
Ультразвуковой датчик HC-SR04 (даже не знаю есть ли его применение в MultiWii)
ни GPS, ни OSD, ничего другого, кроме вышеописанного нету
теперь проблема: я понятия не имею как подключать FlySky R6B… я создал схему… прошу помощи: просмотрите схему на ошибки и добавьте подключение приемника…

Заранее спасибо!

Bulldog

Ну так в коде и смотри на какие инпуты должен приходить PWM с приемника.

rual
Dmitry_DM:

теперь проблема: я понятия не имею как подключать FlySky R6B… я создал схему… прошу помощи: просмотрите схему на ошибки и добавьте подключение приемника…

Красиво нарисовал, молодца! Компас и МПУ можно на одной И2Ц шине держать, но можно и так, земляные концы с регулей не нужны, кроме питающего(!). По приёмнимку: дорисовывтаь не буду, да и Дуину не знаю, каналы приёмыша надо подключать к ногам дуины, где она сможет принимать ШИМ.

Jade_Penetrate
rual:

земляные концы с регулей не нужны, кроме питающего(!)

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

rual
Jade_Penetrate:

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

если основной минус “правильный”, то не возникнут, а если “неправильный”, то силовой ток потечет по сигнальной земле. Что лучше выбирайте сами )

AlexeyStn

rual, поясните, пожалуйста, что в вашем понимании “правильный” и “неправильный” минус?

rual
AlexeyStn:

что в вашем понимании “правильный” и “неправильный” минус?

Все потребители расходятся из одной точки “звездой”, а не “гирляндой”. Ну и сечение проводов соответствует току.

Jade_Penetrate

Добиться идеальной земли в квадрокоптере весьма сложно - к каждому регулятору параллельно с сигнальным кабелем земля идти должна, если силовые провода имеют длину более 5-8см (значение на вскидку, все зависит от токов, регулятора, сечения и т.д.), в то же время, нужна земля от питающего контроллер бека и измерителей тока/напряжения. Выкидываешь землю от регуляторов - сигнал на них приобретает огромные помехи и часто приводит к срывам в работе, если убрать землю от бека и датчиков - плывет питающее напряжение, плывут показания с шунта и делителя. Решение проблемы - использование честных опто регуляторов, передача сигнала по дифференциальной линии, или использование коротких толстых проводов.
Но можно отказаться от звезды и смириться с уравнивающими токами, 90% так летают и не жалуются, зато при желании сделать все “правильно” начинаются проблемы.

rual
Jade_Penetrate:

Но можно отказаться от звезды и смириться с уравнивающими токами, 90% так летают и не жалуются

Так я не настаиваю ))) Более того, у меня все три проводка воткнуты, ибо не хочу чтоб концы во все стороны торчали.

Jade_Penetrate:

зато при желании сделать все “правильно” начинаются проблемы.

У Алексея Козина на сайте очень практичный совет по организации питания:

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

Dmitry_DM
rual:

Компас и МПУ можно на одной И2Ц шине держать, но можно и так, земляные концы с регулей не нужны, кроме питающего(!).

спасибо вам за ответ! но в последствии мнения разделились… так все-таки, как лучше? земля только от 1 питающего регулятора (на схеме самый левый) или связать все земли 4 регулей?
второй вопрос: про I2C шину: то есть на схеме я собрался подключать компас к А5 А4, а вы предлагаете его (компас), как и MPU и как барометр подключать в SDA SCL ? (если так, то хорошо, что я еще не сделал тройники)

есть еще проблема с самим пультом, вернее с его конфигурацией, но об этом позже, надо все по-порядку

Jade_Penetrate

Лучше свяжите все 4 и подключите к земле контроллера. Прочитайте по iic шину, на нее можно повесить много устройств, если пропускной способности будет достаточно.

Dmitry_DM
Jade_Penetrate:

Лучше свяжите все 4 и подключите к земле контроллера.

все, значит так и будет,

Jade_Penetrate:

iic шину, на нее можно повесить много устройств, если пропускной способности будет достаточно

хорошо, попробую, там видно будет,

питать плату он BEC регуля все равно какого?

теперь о прошивке: я буду использовать MultiWii, заточенную под DUE (Multiwii_DUE называется), кто - то тут говорил, что надо смотреть к каким пинам подключать приемник. По этому несколько вопросов:

  1. У приемника надо использовать 4 канала, в каждом по 3 пина. Надо использовать только сигнальные? или +5v и gnd тоже надо использовать?
  2. как питать приемник? там у него на самой верхушке есть что-то про питание… +в комплекте был черный дугообразный провод для соединения чего-то… как его использовать?
  3. в каком файле Multiwii глядеть в какие пины подключать
    3_1) каналы приемника
    3_2) сигнальные пины от регулей
    P.S кто-то из вас говорил, что не знает о DUE, она почти как Mega2560, так что можно отталкиваться от ее данных о расположении пинов
Jade_Penetrate

Вы поставили себе задачу собрать собственный полетный контроллер (точнее просто скомпилировать исходники под свое железе), но при этом задаете ужасно глупые вопросы, не можете прочитать комментарии в коде и инструкцию к своей аппаратуре. Может стоит воспользоваться готовым полетным контроллером и настроить коптер по обучающим видео?
Ответы на ваши вопросы, как уже сказано, есть в комментариях в коде и его описании, инструкциях, обучающих статьях и видео.

Dmitry_DM

В секции радиоуправления есть такое:
//#define SERIAL_SUM_PPM PITCH,YAW,THROTTLE,ROLL,AUX1,AUX2,AUX3,AUX4,8,9,10,11 //For Graupner/Spektrum
//#define SERIAL_SUM_PPM ROLL,PITCH,THROTTLE,YAW,AUX1,AUX2,AUX3,AUX4,8,9,10,11 //For Robe/Hitec/Futaba
//#define SERIAL_SUM_PPM ROLL,PITCH,YAW,THROTTLE,AUX1,AUX2,AUX3,AUX4,8,9,10,11 //For Multiplex
#define SERIAL_SUM_PPM PITCH,ROLL,THROTTLE,YAW,AUX1,AUX2,AUX3,AUX4,8,9,10,11 //For some Hitec/Sanwa/Others
но у меня FlySky, и я выбрал последний, т.к там написано “Others”
судя по всему 8,9,10,11 это сигнальные пины для приемника
но тогда в какие пины втыкать сигналы от ESC? я ведь туда ранее хотел втыкать…

Dmitry_DM

ладно, попробую так:
Моторы
Передний левый 2
Передний правый 5
Задний левый 6
Задний правый 3
Приемник
Throttle A8
Roll A9
Pitch A10
Yaw A11

Jade_Penetrate

Тот параметр из секции радиоуправления отвечает за порядок каналов в пакете CPPM сигнала, никаких пинов там не задается. Номера входов и выходов задаются в другом месте.

Dmitry_DM
Jade_Penetrate:

Номера входов и выходов задаются в другом месте

подскажите, пожалуйста, в каком?

Dmitry_DM

Добрый вечер всем! Все-таки хочется узнать ответ на предыдущий вопрос, я хочу собрать БЛА, но уж простите, не могу найти в том коде где подключение пинов расписано… помогите кто нибудь! не закидывайте помидорами(( заранее спасибо!

Jade_Penetrate

Задается оно в файле output.cpp,
Дело в том, что, по умолчанию, выходные порты привязаны к аппаратным выходам таймера атмеги, хотя есть и программный шим. Поэтому, лучше вам попробовать вывести их на порты аппаратных таймеров вашего процессора, а процедуру инициализации таймеров, и название регисторв заменить на свои. Или делать все на программном шиме, описывается там же, но инициализацию и настройки под свое железо менять придется в любом случае.

AlexeyStn
Dmitry_DM:

не могу найти в том коде где подключение пинов расписано…

Откройте “def.h”.
В нём есть разделы, где определено подключение пинов для разных плат. Они озаглавлены #if defined(PROMINI), #if defined(PROMICRO), #if defined(MEGA) и т.д.
Найдите #if defined(ARDUINO_DUE) и посмотрите, какие функции каким пинам соответствуют.

Samer

Dmitry_DM Я сделал свое управление на 3DRadio модемах.
Из турниги использую батарею , стики и кнопки. В коробке ардуино и модем.
Ардуино считывает данные стиков и кнопок ( свой софт и протокол ) и передает пакеты по 6 байт примерно 10 раз в сек. Другой модем на коптере.
Ардуина в контроле управления принимает пакеты сравнивает контрольную сумму и выдает данные на управление. У тебя слишком большая плата. Делай
на нано версии. И еще совет - акселерометр надо крепить к железной пластине а её на демпферах подвешивать.
До этого был аксель LSM303 , хрень полная . Сейчас поставил MPU6050.
Виброразвязка самое главное.