Новые дискретные настройки Fessel Flug контроллера и регулятора Castle для электро пилотажек
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 вечера напишу вам. А там уже договоримся. Спасибо.
и совсем забыл добавить, акселерометр с гироскопом вряд ли в чем то помогут.
они измеряют изменение линейной/угловой скорости.
я не знаю как реализовано в устройстве в первом посте темы.
но решение дифференциальных уравнений в масштабах атмеги, труд совсем не благодарный )
если товарищу с помощью гироскопа+акселерометр удалось решить задачу вычисления фактического положения модели в пространстве в конкретный момент, без серьезного накопления ошибки,
с учетом угловых и линейных скоростей, тогда ему большой респект.
любопытно было бы посмотреть, а что там вообще под термоусадкой.
Там такой же контроллер, врятли там чтот считает, скорее просто по сигналу, + или - или его отсутствие.
При движении вверх, ускорение падает, при движении вниз - растет, по горизонту примерно одинаково, не меняется.
Конечно посмотреть, что там под пленкой было бы интересно.
Виталий, может и так, но тогда это не совсем то же самое о чем думал я ))
А как он работает при старте модели с земли ?
Модель набирает скорость, значит имеем положительное ускорение,
модуль должен считать, что модель снижается мордой вниз и будет уменьшать обороты.
модель выровняла горизонтальную скорость, модуль увеличил обороты и модель опять имеет положительное ускорение ))
что то все таки не совсем так )
если только увеличивать обороты не по акселерометру а по гироскопу, на основании данных по изменению тангажа.
но тоже не срастается.
высотометр - не пойдет, у него скорость отработки маленькая.
в общем, если кого-то есть, вот бы глянуть на плату одним глазом ))
Я сам еще не совсем понял.
Там при подъеме вверх по оси Х образуется некая составляющая направленная против движения, вот по ней как то все это определяется.
Там от притяжения земли как то считается и поэтому используется акселерометр, а не гироскоп.
Там от притяжения земли как то считается и поэтому используется акселерометр, а не гироскоп.
“не правильный бутерброд”(с)
аксель ни какого отношения к притяжению не имеет.
он измеряет изменение линейной скорости по трем осям
если тело будет двигаться прямолинейно и равномерно и неважно в какую сторону,
тогда по всем осям будет 0.
именно поэтому аксели как и гирики требуют инициализации в состоянии покоя.
у разных моделей, время инициализации от долей секунд до нескольких секунд.
именно поэтому, модели с гироскопами, в том числе и вертолеты после подключения питания надо поставить
“на ровную, горизонтальную поверхность” и дождаться “взмаха элеронами” или еще какого сигнала о готовности гироскопа
Там при подъеме вверх по оси Х образуется некая составляющая направленная против движения
а вот насчет этого надо покумекать, графики порисовать, сили действующие на тело опять же ))
есть повод голову напрячь, а то усыхает уже на старости лет )
Там от притяжения земли как то считается и поэтому используется акселерометр
В FFC используется акселерометр типа ADXL20xxx. При повороте кристалла относительно вектора земного притяжения на выходе пропорционально меняется напряжение.
аксель ни какого отношения к притяжению не имеет
заблуждение
Я повторял FFC с акселерометром ADXL202, Все работает. Работает. В сети есть исходник.
Описание акселерометра www.analog.com/en/products/mems/…/adxl202.html
При повороте кристалла относительно вектора земного притяжения…
Апсолютно верно… .
Если мне память не изменяет, последние FFC уже с 3-х координатной “чиповиной”.
аксель ни какого отношения к притяжению не имеет.
Имеет, так-как меряет изменение положения относительно магнитного поля, а ускорение за время этого изменения.
У него “трубки пито” нет.
Имеет, так-как меряет изменение положения относительно магнитного поля, а ускорение за время этого изменения.
все правильно, посыпаю голову пеплом, метод измерения совсем другой, а значит MPU-6050 или GY-85 вполне можно использовать.
просто для них есть библиотеки под ардуинку и ценник гуманный
Есть сенсор , работающий по I2C, просто акселерометр, и на 10 степеней свободы, по цифре можно брать как все так и что-то в отдельности.
Вот например amperka.ru/product/troyka-accelerometer