ПредишенСледващото

автопилот система за радиоуправляеми хеликоптери. Част 2: Контрол прихващане -3

  • 11.06.15 03:50 •
  • altanium •
  • • # 259683
  • • Habrahabr
  • 25 •
  • 6678

- като Forbes, само по-добре.

Това е продължение на статията за развитието на автопилот система за радиоуправляеми хеликоптери.

Тъй като аз нямам план за изграждане на пълноправен БЛА, в голямата си част тя е все още с хеликоптер с ръчно управление, както и пълно премахване на приемника от него, няма да го направя. Поради това е необходимо, тъй като някога да реализира комуникацията между Ардуино, радио и контролер мотор.

Първото нещо, което аз реших да разберете как приемник комуникира с контролера. След като задвижващи механизми са свързани към приемника, както и контролер, а след това на принципа на управление на двигателя е същата като сервото която се основава на PWM.

Тогава реших да опитам podchityvat стойности от изходите на приемника.

щифтове местоположение на приемника и контролера двигатели: 1-GND, 2-VCC, 3 сигнала.

За тази цел се свържете изходите на приемника сигнал (само 4, горните 2 - сервомашинки, следната 2 - за контрол на мотори) за Arduino пинов 5,6,7,8, един от входовете към VCC 5V Arduino, и един от входовете към GND GND Ардуино , С pulseIn () функция чете входа на сигнала при предварително определена дължина, получаваме стойностите, предоставени от приемника. Максимални отклонява лостове на дистанционното управление, аз ми даде необходимите стойности. Тази стойност на 1080-1800, в който емисионната стойност, когато дръжките са в нормално състояние за надлъжно, напречно и заглавието - 1450, както и на газ - 1080.

Скица достатъчно проста:

Ами, всъщност изглежда всичко вече е възможно да се прехвърлят контрола в ръцете на Arduino? Поставянето сега за управление на двигателя (Arduino пин 5 и 6) и задвижващи механизми (Arduino пин 7 и 8) и пишат Arduino друга скица:


Попълнете, напред, и това е мястото, където започват проблемите. Първо, дълго време да мисля защо контролера е включен, но не може да се калибрира и да започне работа. Половин час по-късно намерих решение: проблемът е, че тя се включва и започва да мига, когато всяко напрежение, но работата започва едва когато минималната батерията напрежение е 7,4 волта. Всъщност дори възползвали, Ардуино много добре хранени и се захранва от акумулатора чрез контролера, и не трябва да се постави една управление на батерията, а другият на управлението на двигателя (обикновено контролер е мощен акумулаторна батерия с голям капацитет и напрежение 11.1V, и управление на батерията малък капацитет (850 ма) и 7.4V напрежение).

Свържете батерията, опитайте отново. Отново, само мига. За да се реши този проблем отне час 3. Оказва се, че контролерът да работи, той трябва по някакъв начин, когато povzaimodeystvovat с приемника. Как точно, аз все още не са успели да се научат на приемника, за да го изпратя специално значение. За да се разреши този проблем, да се свърже с Ардуино и приемник (Arduino пинов 9,10,11,12), чете от него ценностите, идващи от дистанционното управление, и ги предава към контролера:

Попълнете, свържете, работа!

Сега приемникът е свързан към контролера чрез Arduino, която улавя сигнал и го изпраща към контролера желания канал. Въпреки, че сигналът се променя (обикновено стойността намалява с 15-20 единици), хеликоптерът се получава дори при въздушен лифт.

Сега добавете към бутона Arduino, когато тя стисна автоматичния контрол е активирана.


За да изпратиш Arduino контрол, трябва да се свържете батерията, изчакайте, докато индикаторът за контролер непрекъснато, а след това можете дори да изключите приемника, по принцип, защото след инициализация на контролера вече не може да работите с приемника.

В този пример, цикълът (за гладкост серво) варира ъгъла на наклона на лопатките. Впоследствие същият процес ще бъде контрол на хеликоптера по време на полет.

Вие можете да помогнете и превежда няколко средства за развитие на сайта

Четох и двете от вашите статии за начало (съжалявам, но това е) автопилот. Искам да предупредя наведнъж, за автопилота, няма да правя жироскоп, аз ще обясня защо. Жироскоп тенденция да лежи в интеграцията на показанията му. На RC хеликоптери наистина поставят единична ос жироскоп заключване главата (подравняване gp780 например). Те трябва да се стабилизира само в отклонение от курса. За съжаление, познанията ми за ТАУ и моделите на автопилот по-специално казват, че автопилотът трябва да знае, ъгълът на наклон на тялото, което го прави жироскоп.

Може би ще помогне за стабилизирането MultiWii код, има режим на хеликоптер, но тя не е предназначена за схема коаксиален ротор 2 хеликоптер и трябва да се мисли малко.

И все пак има известна вероятност, че кодът, написан на стил (с помощта на Ардуино библиотеки), не може да има достатъчно скорост, за да сериозно автопилот. Същата multiwii не използва, например, pulseIn функции.

Послепис Аз не искам да се намери виновен, но аз искам да знам защо двигателите се наричат ​​право и дъното?
Серво rightmot;
Серво nizmot;
P.P.S. Бих искал да, както и, така че да се направи код форматирането, отстъп комплект.
P.P.P.S. Добре е за теб, и са избрали интересна тема, но е необходимо да се разпространи върху Habr крачки повече от скици на dryganyu Серве. Тези неща трябва да arduino.cc

Тук не само жироскопа. Дори и с процент GPS актуализация на 1 Hz (сега аз наистина зарязала антената, но изчакайте, докато другият пристига в 5 Hz) и барометър (а не висотомера). Първоначално двигатели са по-ниски, тъй като горната изходите на контролера са разположени един над друг :). И тогава един е преименуван на правото, тъй като е отговорен за канал завой наляво и надясно, а вторият и остава по-ниска, тъй като този канал - Събуди се, отговорен за нагоре и надолу. Благодаря ти, но това е скица на мотори да се движат през контролера на скоростта. Що се отнася до мен това беше най-трудно и важната.

Послепис Подавам предложение се отнася за в бъдеще с факта, че серво / мотора прави, например rollServo, pitchServo, yawMotor, throttleMotor. Може би щеше да е по-удобно.

Сега всичко се реализира.
Да, аз съм почти същото, и да кажем 1 Hz ниско, така нареди приемник при 5 Hz.
Ами, всъщност, идеята е да се достигне с ръка до всяка точка рекордни GPS четения, а впоследствие сравни сегашната ситуация с предварително записана и вече на тази ръководи как да се процедира. Ако оставим на, лети надясно (ако полетът, летят наляво, и така нататък до безкрайност). За да поставите това не се вписва, но, например, за голямо пространство някъде в областта към момента. Дори и да се мотае нагоре грешка ще бъде до един метър, аз бях доста доволен.
С това вече се разбра, че преди не разбрах изобщо как контролирани и серво на моделите, RU, сега разбирам, обикновената PWM.
Благодарим ви, че е добра идея да се обадя kanalyy по предназначение и воля.

Ще ме извините, разбира се, но задачата на движещ се обект контрол е много гъвкав и универсално решение все още. Налице е PID, но той има проблем. Фактът, че правя тази задача в неговата научна дейност. Ако решите тази задача, а след това сподели с научната общност.
Също така, преди да стане задачата за филтриране на показанията на вашите сензори. Да не забравяме също така, че без знанието на начина, по който се обърна към хоризонта, вие дори не могат да летят през точките, а на хоризонта не ще разберат без акселерометъра.
Отново, ако летят наляво (вземете например), то на каква стойност да отхвърли Серве? Далеч наляво - обърнете.
Shim е най-простият от всички на вашия проект.

Аз не обърнете, проверете. Колкото по-далече от точката на повече от лявата страна, тъй като се доближава до намаляване на ъгъла на сервото. Всичко това ще трябва да се заключи, експериментално. Аз не разбирам фразата "включване на хоризонта." Това е компаса? Ако е така, тези показания са също снабдени с GPS приемник (той дава курс и скорост). В края на краищата, сложи акселерометъра - няма проблем.

Говоря за ъгли на наклон и на терена, които са много важни. измерваше само спомагателно устройство за определяне рискаене, като акселерометър за определяне смола и ролка.
Колкото по-далече от точката на повече от лявата страна, тъй като се доближава до намаляване на ъгъла на сервото.
Но колко по-малко? Това P контролер? P регулатори не винаги е лесно да се създаде, особено на подвижни обекти, като например хеликоптери. Знам, че дори и роботи, езда на линията често предпочитат да се сложи контролера PI.

Като цяло, Ви съветваме да продължите да се изчака, който ще разкаже за това. Но така да бъде. Ако са на мястото, където ъгълът на наклон е 0 серво условно (ъгъл 0 е ъгълът, под който пълна липса на вятър хеликоптер кръжи в място. Той е снабден с тример на устройството за дистанционно управление). Серво ъгъл на хеликоптера е някъде близо до 90 градуса, стойността изведени от приемника е приблизително равна на 1450 г. Ако се отклони от този момент, на ъгъла се увеличава или намалява стойността си в зависимост от това по какъв начин сме се отклонили. Ако искаме точност в електромера, максималният ъгъл деформация на задвижващия механизъм се постига тогава, когато сме в един метър от точката. Може и да греша, разбира се, но ако вятърът духа на модела, той също така не е необходимо да се промени своя ъгъл на наклон спрямо хоризонта? И това, което тогава е идеален модел в точно позицията преспи на една страна, а системата си мисли, че хеликоптерът е все още на същото място? Но GPS приемник, за да определят точно тези промени е голям, и с помощта на лесни за регулиране на положението. Отново, нека ви кажа всичко, когато се добави една статия, все едно не знаете как тази система сега изглежда и работи, и поправете ме, преди да видите резултата от него е безполезно. След това се карат, което искате, аз всъщност не възразявате.

Свързани статии

Подкрепете проекта - споделете линка, благодаря!