Новые дискретные настройки Fessel Flug контроллера и регулятора Castle для электро пилотажек

VitalikV

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

Задержка на нажатие кнопка 5мс как раз на дребезг…
Логику я как раз понимаю, а вот в коммандах пока никак)))
И еще момент, что по газу хорошо бы было уйти от серво бибилотеки, а как то задавать обороты в скетче. Чтобы прописал 10 000, а ардуина сама все прерывания и уровни выставила…

Маркс

теперь еще момент,
почитал тему и очень удивился цеплянию за говернер, этот так необходимо?
в правилах что то есть касательно неизменных оборотов ??
на самом деле акселерометр достаточно просто решает вопрос изменения оборотов двигателя в зависимости от направления полета.
причем можно заложить в логику график изменения оборотов в зависимости от скорости изменения высоты ))
современные регуляторы (я не говорю о китайцах-китайцах), но даже китайский Hobby Wing Platinum,
не говоря уже о CC Phoenix Edge очень быстро реагируют на изменение положения стика газа.
Иначе на радио пилотажках на них никто бы не летал )

VitalikV:

Задержка на нажатие кнопка 5мс как раз на дребезг…

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

Маркс

выпуск шасси
делаете две маленькие функции
gearup() и geardown()

вот arduino.ru/Reference/Millis функция работы с временем

проверяете состояние перемычки и если сняли
timestart = millis(); - с этого времени идет отсчет всего, старта останова выпуска уборки и прочее ))

flytime = millis()-timestart;
if (flytime > 5000) gearup(); через пять секунд
то же самое для убрать )

Русинов_Сергей:

Кондер в параллель снимает эту проблему.

далеко не всегда, проверено
перемычка и проще и легче

VitalikV

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

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

Кондер может и не снять, надо с осциллографом смотреть.

Маркс

самое простое разбить скетч на маленькие функции
и из них уже строить.

а скетч Евгения это где ?

VitalikV:

Нужно обеспечить 3 режима за полет, мордой вверх, мордой вниз, горизонт.

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

Маркс
VitalikV:

Гувернер больше нужен для того чтобы следить за батарейкой и держать обороты.

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

VitalikV

Так взлет, посадка и полет уже написано и работает.
Надо теперь кнопку добавить, лампочку чтоб моргала показываю режим шасси можно уже потом.
Вот оно github.com/MrPix/CLAAT

Маркс
Русинов_Сергей:

А в это время модель только начала разбег…

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

если у Вас нет конструктивных предложений …

VitalikV:

Вот оно github.com/MrPix/CLAAT

этот скетч запустится как только на ардуину будет подано питание

Русинов_Сергей
Маркс:

сколько времени держите кордовую модель в руках

Модель с колёсами?! Нисколько не держу.

Маркс:

условия для убирания шасси могут быть разными.

Меня очень интересуют мысли по поводу того, как определить, что модель уже взлетела.

VitalikV

Уборка шасси это не самое нужное, это просто понты…
Можно определить по сигналу акселерометра, если уж очень надо.

этот скетч запустится как только на ардуину будет подано питание

Да, а это и не есть хорошо, нужно нажатие кнопки, на отсчет времени, старта (подготовки), и дальнейший полет. Лучше по двойному нажатию. Отключение одно нажатие.

Маркс
Русинов_Сергей:

Модель с колёсами?! Нисколько не держу.

и вы хотите сказать, что пяти секунд не хватит на взлет с колес ?
мало пяти секунд, поставьте 10.
Сергей, давайте так, если есть конструктивные мысли - пишите, нет - не пишите.

VitalikV:

Можно определить по сигналу акселерометра

во когда он прикрутится, тогда можно будет, а пока по времени

примерно как сделать кнопку

int key = 7; // кнопка/перемычка/тумблер на ногу номер 7
void setup()
{

pinMode(key, INPUT); // устанавливает режим работы - вход

}

void loop() {
unsigned long currentMillis = millis();
if (!digitalRead(key) {
if (currentMillis - previousMillis >= currentInterval) {
if (currentState == 0) {
// we are ready to fly, throttle max!
for (curThrottle = 0; curThrottle <= maxThrottle; curThrottle += 1) {
esc.write(curThrottle);
delay(20); // Throlle up delay
}
if (curThrottle < maxThrottle) {
curThrottle = maxThrottle;
}
esc.write(curThrottle);
currentInterval = flyingTime;
previousMillis = millis();
currentState = 1;
} else if (currentState == 1) {
// flying time is gone, time to landing
for (curThrottle = maxThrottle; curThrottle > 0; curThrottle -= 1) {
esc.write(curThrottle);
delay(100);// Throlle down delay
}
if (curThrottle < 0) {
curThrottle = 0;
}
esc.write(curThrottle);
currentState = 2;
} else {
// done
}
}
}
}

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

VitalikV

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

Маркс

Виталий, кнопка в моем варианте не прокатит, если кнопка без фиксации, нужен другой код
это вариант с перемычкой или выключателем, на разрыв цепи ноги 7

VitalikV

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

Маркс

Виталий, если есть скайп, могу попробовать на двух пальцах объяснить ))

у меня под аватаркой значок скайпа.

VitalikV

Скинул в личку, сейчас убегаю, часов в 9 вечера напишу вам. А там уже договоримся. Спасибо.

Маркс

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

VitalikV

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

Маркс

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

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

что то все таки не совсем так )

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

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