Новые дискретные настройки Fessel Flug контроллера и регулятора Castle для электро пилотажек
Что перемычка, что кнопка, эту логику надо прописать в Ардуино, чтобы она знала, что делать.
Reset не предлагать, там иногда проскакивают импульсы при перезагрузке , на которые реагирует регулятор включением двигателя. Как раз на днях это было проверено)) Слишком ардуинка чувствительна, даже на прикосновение пальца к контактам.
Задержка на нажатие кнопка 5мс как раз на дребезг…
Логику я как раз понимаю, а вот в коммандах пока никак)))
И еще момент, что по газу хорошо бы было уйти от серво бибилотеки, а как то задавать обороты в скетче. Чтобы прописал 10 000, а ардуина сама все прерывания и уровни выставила…
теперь еще момент,
почитал тему и очень удивился цеплянию за говернер, этот так необходимо?
в правилах что то есть касательно неизменных оборотов ??
на самом деле акселерометр достаточно просто решает вопрос изменения оборотов двигателя в зависимости от направления полета.
причем можно заложить в логику график изменения оборотов в зависимости от скорости изменения высоты ))
современные регуляторы (я не говорю о китайцах-китайцах), но даже китайский Hobby Wing Platinum,
не говоря уже о CC Phoenix Edge очень быстро реагируют на изменение положения стика газа.
Иначе на радио пилотажках на них никто бы не летал )
Задержка на нажатие кнопка 5мс как раз на дребезг…
я не видел Ваш скетч, если можно ткните носом.
но использование задержек это не комильфо
у ардуины есть таймер, им надо пользоваться, тогда логика ломаться не будет
www.arduino.ru
не знаю видели этот сайт или нет, но там масса примеров, плюс описание языка
обычные кнопки имеют дребезг
Кондер в параллель снимает эту проблему.
выпуск шасси
делаете две маленькие функции
gearup() и geardown()
вот arduino.ru/Reference/Millis функция работы с временем
проверяете состояние перемычки и если сняли
timestart = millis(); - с этого времени идет отсчет всего, старта останова выпуска уборки и прочее ))
…
flytime = millis()-timestart;
if (flytime > 5000) gearup(); через пять секунд
то же самое для убрать )
Кондер в параллель снимает эту проблему.
далеко не всегда, проверено
перемычка и проще и легче
Видел сайт уже второй месяц на нем тусуюсь и туплю, ну не мое это программирование))
Скетча как такового нет, играюсь с тем что выложил Евгений. Как напишу с нуля, выложу. Сейчас еще разбираюсь.
Нужно обеспечить 3 режима за полет, мордой вверх, мордой вниз, горизонт. Гувернер больше нужен для того чтобы следить за батарейкой и держать обороты.
Кондер может и не снять, надо с осциллографом смотреть.
самое простое разбить скетч на маленькие функции
и из них уже строить.
а скетч Евгения это где ?
Нужно обеспечить 3 режима за полет, мордой вверх, мордой вниз, горизонт.
как я понимаю, для начала нужно обеспечить взлет полет и посадку по времени, с уборкой шасси или без оной.
и получить что то законченное, поверьте мне, сразу городить большой огород не стоит )
дальше можно будет расширять функционал
if (flytime > 5000) gearup(); через пять секунд
А в это время модель только начала разбег… 😃
Гувернер больше нужен для того чтобы следить за батарейкой и держать обороты.
единственное достоинство говернера, это поддержание постоянны оборотов при изменении напряжения на батарее.
скажем так, этот вопрос тоже можно решить без говернера, ардуина умеет измерять напряжение,
дальше по мере проседания напряжения на батарее можно увеличивать ширину импульса на входе в регулятор.
но это все опять же позже )
Так взлет, посадка и полет уже написано и работает.
Надо теперь кнопку добавить, лампочку чтоб моргала показываю режим шасси можно уже потом.
Вот оно github.com/MrPix/CLAAT
А в это время модель только начала разбег…
я стесняюсь спросить, а вы сколько времени держите кордовую модель в руках, после того как пилот натянул корды.
а кроме того, условия для убирания шасси могут быть разными.
если у Вас нет конструктивных предложений …
Вот оно github.com/MrPix/CLAAT
этот скетч запустится как только на ардуину будет подано питание
сколько времени держите кордовую модель в руках
Модель с колёсами?! Нисколько не держу.
условия для убирания шасси могут быть разными.
Меня очень интересуют мысли по поводу того, как определить, что модель уже взлетела.
Уборка шасси это не самое нужное, это просто понты…
Можно определить по сигналу акселерометра, если уж очень надо.
этот скетч запустится как только на ардуину будет подано питание
Да, а это и не есть хорошо, нужно нажатие кнопки, на отсчет времени, старта (подготовки), и дальнейший полет. Лучше по двойному нажатию. Отключение одно нажатие.
Модель с колёсами?! Нисколько не держу.
и вы хотите сказать, что пяти секунд не хватит на взлет с колес ?
мало пяти секунд, поставьте 10.
Сергей, давайте так, если есть конструктивные мысли - пишите, нет - не пишите.
Можно определить по сигналу акселерометра
во когда он прикрутится, тогда можно будет, а пока по времени
примерно как сделать кнопку
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
}
}
}
}
что бы было понятно, прописана кнопка
это самый простой вариант, кнопка на выключение.
т.е. выключили, и пока она выключена, все работает так как у Вас было )
написано конечно криво, но постарался прикрутить к не самому оптимальному коду.
Ок попробую , отпишусь, кнопка на днях должна приехать как раз. Спасибо.
Хочется чтоб было все просто из готовых компонентов в продаже…
Виталий, кнопка в моем варианте не прокатит, если кнопка без фиксации, нужен другой код
это вариант с перемычкой или выключателем, на разрыв цепи ноги 7
Ок , попробую с перемычкой.
Мне просто надо въехать в логику работы контроллера, которую я пока не понимаю, как правильно составить скетч…
Алгоритм того что хочется видеть в итоге , пока рисую на бумаге)))
Для меня спаять прошить , не проблема, а вот с программирование раньше даже близко дело не имел.
Виталий, если есть скайп, могу попробовать на двух пальцах объяснить ))
у меня под аватаркой значок скайпа.
Скинул в личку, сейчас убегаю, часов в 9 вечера напишу вам. А там уже договоримся. Спасибо.
и совсем забыл добавить, акселерометр с гироскопом вряд ли в чем то помогут.
они измеряют изменение линейной/угловой скорости.
я не знаю как реализовано в устройстве в первом посте темы.
но решение дифференциальных уравнений в масштабах атмеги, труд совсем не благодарный )
если товарищу с помощью гироскопа+акселерометр удалось решить задачу вычисления фактического положения модели в пространстве в конкретный момент, без серьезного накопления ошибки,
с учетом угловых и линейных скоростей, тогда ему большой респект.
любопытно было бы посмотреть, а что там вообще под термоусадкой.
Там такой же контроллер, врятли там чтот считает, скорее просто по сигналу, + или - или его отсутствие.
При движении вверх, ускорение падает, при движении вниз - растет, по горизонту примерно одинаково, не меняется.
Конечно посмотреть, что там под пленкой было бы интересно.
Виталий, может и так, но тогда это не совсем то же самое о чем думал я ))
А как он работает при старте модели с земли ?
Модель набирает скорость, значит имеем положительное ускорение,
модуль должен считать, что модель снижается мордой вниз и будет уменьшать обороты.
модель выровняла горизонтальную скорость, модуль увеличил обороты и модель опять имеет положительное ускорение ))
что то все таки не совсем так )
если только увеличивать обороты не по акселерометру а по гироскопу, на основании данных по изменению тангажа.
но тоже не срастается.
высотометр - не пойдет, у него скорость отработки маленькая.
в общем, если кого-то есть, вот бы глянуть на плату одним глазом ))