Контроллер махания крыльями для Angry Birds

Air_Hamster
capicator:

Оперативно управлять частотой кнопками у вас ни как не получится.Надо только с пульта чтобы на лету была возможность.

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

capicator

А как на земле это можно будет определить? Тут только в полете видно будет.А вот регулировку надо бы через микширование, тогда и кнопки н нужны будут.
Или не прав?

Air_Hamster

Микширование избыточно, т.к. ресурсами тини13 будет сложно анализировать сразу два входящих сигнала, плюс лишние провода = лишний вес.
Есть две кнопки (прибавить, убавить). Настраивать режим работы можно так:
отключаем мотор, чтобы не порубало. Переводим стик газа в максимум и кнопками настраиваем частоту махания в этом положении. Т.к. частота в полете линейно зависит от стика газа, то она будет изменяться от 0 до настроенного нами значения для полного газа. В полете смотрим, в какую сторону необходимо подстраивать.
В нижнем положении стика этими же кнопками можно настраивать максимальную амплитуду махания.

SGordon

А на SUMM PPM или сателлит спектрумовский ресурсов хватит? Наверное удобнее все таки с пульта было бы, а так вход один , хотя и не так универсально как простой ППМ.

В простых приемниках сигналы друг за другом были, в новых парралельно, на этом тоже можно попробовать сыграть … Понимаю что не универсально…

Air_Hamster
SGordon:

А на SUMM PPM или сателлит спектрумовский ресурсов хватит?

Контроллер управляется обычным ШИМ-сигналом с приемника, поэтому кодировка не имеет значения. Я все-таки склоняюсь к тому, что лучше врезать контроллер в цепь приемник - канал газа - регулятор. Хотя, в любом случае его можно будет повесить и на дополнительный канал и управлять маханием крутилкой на пульте

capicator

Илья! Ну как там …движется?Не пропадай.
Скинь для начала плату в тему.

Air_Hamster
capicator:

Илья! Ну как там …движется?Не пропадай.
Скинь для начала плату в тему.

Пишу прошивку потихоньку. Пробую на еднственном таймере сделать диспетчер задач, чтобы и входяший шим-сигнал измерял, и сервой дрыгал, и кнопки опрашивал. А там еще прибавится запись в EEPROM, так что забот хватает.
Платы размером 30х20:

Файл для Sprint Layout 6

10 days later
a_semchenko

Илья, хорошее дело делаете!
По результатам использования украинского контроллера могу сказать пару слов.

  1. Включение при помощи 3-х разъемов - зачет. Очень удобно. Один - в приемник, на канал газа. Второй, разумеется, на серву. Третий к регулятору. Убрать/поставить контроллер на птицу - дело одной минуты. Для настройки я отключал регуль от разъема и вместо него включал бек.
  2. Настройка безо всяких кнопок - безусловный зачет. Лишний вес нам ни к чему.
  3. Качалка сервы в середине на малом и большом газе (естественно, с небольшим запасом) - зачет. Правильно.
  4. Зависимость скорости от положения стика газа - хорошо, но, имхо, не сильно обязательно.
  5. Нет настройки скорости махания. Не очень хорошо. На моей птичке использован весь ход качалки для максимальной амплитуды махания. Так вот, на малом газе частота махания небольшая, и серва вполне успевает отработать в оба направления. На большом газе частота довольно высокая, серва, естественно, не успевает провернуть качалку до крайних положений. Поэтому амплитуда махания падает, что негативно отражается на зрелищности махания. Частоту вычислить несложно - обычно сервы используются на 0,16 с/60 градусов. Надо померять угол отклонения сервы (лучше брать дешевую и доступную, типа 900 или 500) из одного крайнего положения в другое. Ну, и разделить на скорость перемещения качалки. Для угла 120 градусов выходит где-то 3 -с-лишним герца.
    Далее видится 2 варианта решений.
    1 - ограничиваем максимальную частоту вычисленной (где-то 3-4 Гц). Минимальную частоту можно сделать примерно 1 Гц.
    2- При больше максимальной частоте придется ограничивать перемещение качалки на малой частоте, иначе амплитуды будут разные -(( Т.е. надо будет вычислить (думаю, это можно и сразу сделать) значения ппм для крайних положений качалки (относительно центра). Т.е. если на 3 Гц берем диапазон 800-2200, то на 6 Гц надо брать вдвое меньший, 1500±350, если не ошибаюсь.

ЗЫ возможно, я не правильно настраивал контроллер, и частоту махания, все-таки, можно уменьшить. Дома еще раз проверю.

capicator

Алексей! О каком украинском контроллере ты упоминаешь? Этот контроллер пендосовский и продается по всему миру. Просто родной проэкт реализован на избыточном (по характеристикам) контроллере и соответственно не бюджетном, по крайней мере у нас.Вот я и предложил на более бюджетный вариант перенести этот проэкт и Илья вызвался помочь, за что ему ограмное СПАСИБО.Или ты сам уже тоже реализовал но по своему этот проэкт?Проясни пожалуйста.

a_semchenko

Владимир, речь идет именно об украинском контроллере. Мне его в подарок прислал Костя Afa, вот как он работает. Термоусадку я не снимал с него, поэтому не знаю, на чем он реализован. Я бы не хотел погружаться снова в программы/железо, в свое время наигрался… По применению готов посотрудничать. Требования сформулировать.

blade
a_semchenko:

Требования сформулировать.

Извините, что вмешиваюсь, но в название темы- закралась неточность: птичка машет не крыльями, а винглетами.
Это не дает никакой подъемной силы, да и частота/амплитуда махания особой роли не играет, зато изменение положения винглет очень прилично меняет характеристики крыла: от V , когда они подняты вверх на 30- 45*, до непоймичего, когда они опущены?
Но смех полет данного аппарата вызывает- это совершенно точно.
Я к тому, что может и не стоит маяться с частотой/амплитудой махания- и так все забавно?

Air_Hamster

На днях изготовил платки, вот так они теперь выглядят:

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

a_semchenko
blade:

Извините, что вмешиваюсь, но в название темы- закралась неточность: птичка машет не крыльями, а винглетами.
Это не дает никакой подъемной силы, да и частота/амплитуда махания особой роли не играет, зато изменение положения винглет очень прилично меняет характеристики крыла: от V , когда они подняты вверх на 30- 45*, до непоймичего, когда они опущены?
Но смех полет данного аппарата вызывает- это совершенно точно.
Я к тому, что может и не стоит маяться с частотой/амплитудой махания- и так все забавно?

да нифига оно не меняет, как ни назови -))

blade:

Я к тому, что может и не стоит маяться с частотой/амплитудой махания- и так все забавно?

тогда 3 герца, и не больше

Air_Hamster:

При полном газе ими же будет регулироваться максимальная частота.

а если больше будет по факту - тогда что? Остановится?

Air_Hamster
a_semchenko:

а если больше будет по факту - тогда что? Остановится?

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

a_semchenko

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

Air_Hamster
a_semchenko:

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

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

a_semchenko
Air_Hamster:

ваша серва просто не успевает отрабатывать частоту в верхнем положении стика

вот-вот, это как раз и портит картину машущего полета -)) Амплитуда уменьшается.

Kwiki

Залейте в тиньку 45 или 85, через ардуино подключите плюс(8) минус(4) с приемника(2) на серву(3) , где pwm >800 можно поставить значение своего газа вниз чтоб не махала когда газ внизу, еще можно коэффициенты подредактировать, если тинька дип то плата не нужна паяите проводки на поджатые ножки после отладки проверки остальные обломить и в термоусадку


#include <SoftwareServo.h>
#define RCIN 3
SoftwareServo servo;
void setup()
{
  pinMode(RCIN, INPUT);
  servo.attach(4);
  servo.setMaximumPulse(2200);
}
void loop()
{
  int pos;
  int pwm;
  pwm = pulseIn(RCIN, HIGH, 25000);
  if (pwm > 800) {
    for (pos = 0; pos < 180; pos += 1) {
      servo.write(pos);
      delay(abs(((2500 - pwm) / 200) - 1)); // сдесь меняется скорость например пвм 1000 2000-1000/200 получаем задержку 5мс умножаем на 180 и имеем около секунды, 2000-2000/
      SoftwareServo::refresh();
    }
    for (pos = 180; pos >= 1; pos -= 1) {
      servo.write(pos); //тоже самое
      delay(abs(((2500 - pwm) / 200) - 1));
      SoftwareServo::refresh();
    }
  }

}
7 days later
V_Alex

Наконец сделали платы под контроллер птицелёта. Собрал, получилась такая цацка. Вес без термоусадки 1,4 грамма.

afx

еще такой сервотаймер есть (тыц) программируется на разные движения в зависимости от положения стика