Квадрокоптер на Arduino DUE
теперь проблема: я понятия не имею как подключать FlySky R6B… я создал схему… прошу помощи: просмотрите схему на ошибки и добавьте подключение приемника…
Красиво нарисовал, молодца! Компас и МПУ можно на одной И2Ц шине держать, но можно и так, земляные концы с регулей не нужны, кроме питающего(!). По приёмнимку: дорисовывтаь не буду, да и Дуину не знаю, каналы приёмыша надо подключать к ногам дуины, где она сможет принимать ШИМ.
земляные концы с регулей не нужны, кроме питающего(!)
Очень не рекомендую убирать сигнальную землю с регуляторов, с огромной вероятностью возникнут глюки управления.
Очень не рекомендую убирать сигнальную землю с регуляторов, с огромной вероятностью возникнут глюки управления.
если основной минус “правильный”, то не возникнут, а если “неправильный”, то силовой ток потечет по сигнальной земле. Что лучше выбирайте сами )
rual, поясните, пожалуйста, что в вашем понимании “правильный” и “неправильный” минус?
что в вашем понимании “правильный” и “неправильный” минус?
Все потребители расходятся из одной точки “звездой”, а не “гирляндой”. Ну и сечение проводов соответствует току.
Добиться идеальной земли в квадрокоптере весьма сложно - к каждому регулятору параллельно с сигнальным кабелем земля идти должна, если силовые провода имеют длину более 5-8см (значение на вскидку, все зависит от токов, регулятора, сечения и т.д.), в то же время, нужна земля от питающего контроллер бека и измерителей тока/напряжения. Выкидываешь землю от регуляторов - сигнал на них приобретает огромные помехи и часто приводит к срывам в работе, если убрать землю от бека и датчиков - плывет питающее напряжение, плывут показания с шунта и делителя. Решение проблемы - использование честных опто регуляторов, передача сигнала по дифференциальной линии, или использование коротких толстых проводов.
Но можно отказаться от звезды и смириться с уравнивающими токами, 90% так летают и не жалуются, зато при желании сделать все “правильно” начинаются проблемы.
Но можно отказаться от звезды и смириться с уравнивающими токами, 90% так летают и не жалуются
Так я не настаиваю ))) Более того, у меня все три проводка воткнуты, ибо не хочу чтоб концы во все стороны торчали.
зато при желании сделать все “правильно” начинаются проблемы.
У Алексея Козина на сайте очень практичный совет по организации питания:
плата распределения питания (подойдет квадрат или круг из двухстороннего фольгированного стеклотекстолита – снимите глубокую фаску по всем торцам, используйте одну сторону для плюса а вторую для минуса, после пайки обеспечьте невозможность замыкания слоев платы а при необходимости изолируйте ), соответствующий силовой аккумулятор
Компас и МПУ можно на одной И2Ц шине держать, но можно и так, земляные концы с регулей не нужны, кроме питающего(!).
спасибо вам за ответ! но в последствии мнения разделились… так все-таки, как лучше? земля только от 1 питающего регулятора (на схеме самый левый) или связать все земли 4 регулей?
второй вопрос: про I2C шину: то есть на схеме я собрался подключать компас к А5 А4, а вы предлагаете его (компас), как и MPU и как барометр подключать в SDA SCL ? (если так, то хорошо, что я еще не сделал тройники)
есть еще проблема с самим пультом, вернее с его конфигурацией, но об этом позже, надо все по-порядку
Лучше свяжите все 4 и подключите к земле контроллера. Прочитайте по iic шину, на нее можно повесить много устройств, если пропускной способности будет достаточно.
Лучше свяжите все 4 и подключите к земле контроллера.
все, значит так и будет,
iic шину, на нее можно повесить много устройств, если пропускной способности будет достаточно
хорошо, попробую, там видно будет,
питать плату он BEC регуля все равно какого?
теперь о прошивке: я буду использовать MultiWii, заточенную под DUE (Multiwii_DUE называется), кто - то тут говорил, что надо смотреть к каким пинам подключать приемник. По этому несколько вопросов:
- У приемника надо использовать 4 канала, в каждом по 3 пина. Надо использовать только сигнальные? или +5v и gnd тоже надо использовать?
- как питать приемник? там у него на самой верхушке есть что-то про питание… +в комплекте был черный дугообразный провод для соединения чего-то… как его использовать?
- в каком файле Multiwii глядеть в какие пины подключать
3_1) каналы приемника
3_2) сигнальные пины от регулей
P.S кто-то из вас говорил, что не знает о DUE, она почти как Mega2560, так что можно отталкиваться от ее данных о расположении пинов
Вы поставили себе задачу собрать собственный полетный контроллер (точнее просто скомпилировать исходники под свое железе), но при этом задаете ужасно глупые вопросы, не можете прочитать комментарии в коде и инструкцию к своей аппаратуре. Может стоит воспользоваться готовым полетным контроллером и настроить коптер по обучающим видео?
Ответы на ваши вопросы, как уже сказано, есть в комментариях в коде и его описании, инструкциях, обучающих статьях и видео.
В секции радиоуправления есть такое:
//#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? я ведь туда ранее хотел втыкать…
ладно, попробую так:
Моторы
Передний левый 2
Передний правый 5
Задний левый 6
Задний правый 3
Приемник
Throttle A8
Roll A9
Pitch A10
Yaw A11
Тот параметр из секции радиоуправления отвечает за порядок каналов в пакете CPPM сигнала, никаких пинов там не задается. Номера входов и выходов задаются в другом месте.
Номера входов и выходов задаются в другом месте
подскажите, пожалуйста, в каком?
Добрый вечер всем! Все-таки хочется узнать ответ на предыдущий вопрос, я хочу собрать БЛА, но уж простите, не могу найти в том коде где подключение пинов расписано… помогите кто нибудь! не закидывайте помидорами(( заранее спасибо!
Задается оно в файле output.cpp,
Дело в том, что, по умолчанию, выходные порты привязаны к аппаратным выходам таймера атмеги, хотя есть и программный шим. Поэтому, лучше вам попробовать вывести их на порты аппаратных таймеров вашего процессора, а процедуру инициализации таймеров, и название регисторв заменить на свои. Или делать все на программном шиме, описывается там же, но инициализацию и настройки под свое железо менять придется в любом случае.
не могу найти в том коде где подключение пинов расписано…
Откройте “def.h”.
В нём есть разделы, где определено подключение пинов для разных плат. Они озаглавлены #if defined(PROMINI), #if defined(PROMICRO), #if defined(MEGA) и т.д.
Найдите #if defined(ARDUINO_DUE) и посмотрите, какие функции каким пинам соответствуют.
Dmitry_DM Я сделал свое управление на 3DRadio модемах.
Из турниги использую батарею , стики и кнопки. В коробке ардуино и модем.
Ардуино считывает данные стиков и кнопок ( свой софт и протокол ) и передает пакеты по 6 байт примерно 10 раз в сек. Другой модем на коптере.
Ардуина в контроле управления принимает пакеты сравнивает контрольную сумму и выдает данные на управление. У тебя слишком большая плата. Делай
на нано версии. И еще совет - акселерометр надо крепить к железной пластине а её на демпферах подвешивать.
До этого был аксель LSM303 , хрень полная . Сейчас поставил MPU6050.
Виброразвязка самое главное.
спасибо всем за ответы! буду пробовать все вышеописанное
отдельное спасибо Samer за то, что я всегда искал…
хотелось бы обсудить где - нибудь детальнее эту конструкцию, но несколько позже, надо хотя бы с нормальным научится
но я не хочу потерять человека, который сделал то, что я хотел, если можно, Samer, оставьте свою почту мне в ЛС
инициализацию и настройки под свое железо менять придется в любом случае
возможно, это нужно проверить, но есть предположение, что в той версии Multiwii для Due это все продумано, ибо разработчик писал, что все что там написано работает на DUE
брал тут
Здравствуйте! В общем, соблюдая все вышеописанные рекомендации, мы все же собрали квадрокоптер… проводка идеальна, вибраций почти нет.
Но, к сожалению, конструкция не взлетела. Теперь опишу все по порядку
- Мы сконфигурировали MultiWii_for_DUE вот вся прошивка
в config.h выбрано только датчики, в файле Output.cpp написано о моторах
#if defined(ARDUINO_DUE)
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
а немного ниже
#if defined (ARDUINO_DUE)
/* Thanks to */
#if (NUMBER_MOTOR > 0)
setPWMpin(34); //PWM L0
PWMC_DisableChannel(PWM, 0);
#endif
#if (NUMBER_MOTOR > 1)
setPWMpin(36); //PWM L1
PWMC_DisableChannel(PWM, 1);
#endif
#if (NUMBER_MOTOR > 2)
setPWMpin(38); //PWM L2
PWMC_DisableChannel(PWM, 2);
#endif
#if (NUMBER_MOTOR > 3)
setPWMpin(40); //PWM L3
PWMC_DisableChannel(PWM, 3);
#endif
но мы, почему-то использовали не 3,5,6,2 (ШИМ), а 34,36,38,40 (цифровые) (только в них моторы после подачи питания издавали инициализирующий звук) и переставали пищать каждую секунду.
Так куда нужно втыкать пины мотора?
А так же как понять какой мотор по очереди втыкать: верхний левый, верхний правый, нижний левый, нижний правый?
Теперь в def.h написано
#define THROTTLEPIN 0 //PIN 62 = PIN A8
#define ROLLPIN 1 //PIN 63 = PIN A9
#define PITCHPIN 2 //PIN 64 = PIN A10
#define YAWPIN 3 //PIN 65 = PIN A11
#define AUX1PIN 4 //PIN 66 = PIN A12 (DAC0)
#define AUX2PIN 5 //PIN 67 = PIN A13 (DAC1)
это, как я понимаю пины куда втыкать каналы приемника
Опять же: как понять в какой очередности вставлять каналы? По-очереди? С 1 по 6 в А8 по А13?
В общем при подключении нижеописанным образом аппарат не взлетел, даже не ввелся в режим Arming опустив левый стик пульта в нижний правый угол на 2 секунды вот так:
Подключали так:
Приемника R6B 5v. - 5v.
Приемника R6B GND - GND
THR: PIN 62 - A8
ALE: PIN 63 - A9
ELE: PIN 64 - A10
RUD: PIN 65 - A11
AUX1: PIN 66 -DAC0
AUX2: PIN 67 - DAC1
Motor 1: PIN 34 (digital)
Motor 2: PIN 36 (digital)
Motor 3: PIN 38 (digital)
Motor 4: PIN 40 (digital)
MPU6050, BMP085, HMC5883: SCL - SCL
MPU6050, BMP085, HMC5883: SDA - SDA
MPU6050, HMC5883 5v. - 5v.
BMP085 3.3v. - 3.3v.
MPU6050, BMP085, HMC5883 GND - GND
Питание Arduino DUE от BEC Motor 1
Все это показано на картинке:
Пульт настраивали по видео:
Прошу помощи у всех вас! Пожалуйста, помогите разобраться и запустить коптер! Буду благодарен за любую помощь!
еще забыл добавить, что программа Windows GUI for MultiWii версии 2.3 (совпадает с версией для коптера) не смогла соединиться с прошивкой на Arduino, подключенной по USB, при выборе ком порта, и нажатия Connect, оно написало “Connecting MavLink”, затем еще что-то с отсчетом в 24 сек., по истечению которых выдало ошибку
а так же в config.h какой выбрать SERIAL_SUM_PPM в секции 3 - RC SYSTEM SETUP ?
Мы выбирали последний
#define SERIAL_SUM_PPM PITCH,ROLL,THROTTLE,YAW,AUX1,AUX2,AUX3,AUX4,8,9,10,11 //For some Hitec/Sanwa/Others