» електроника » Arduino »Домашна система за стабилизиране на самолети, базирана на Arduino

Домашна система за стабилизиране на самолети, базирана на Arduino


Наскоро се заинтересувах от темата за модела на самолета. И тогава започна: той построи самолет, купи оборудване. Предвиждайки бързата кончина на първия модел, без да се отклонява от боксофиса, той започна да събира втория, като същевременно работи в симулатора. Като цяло закъснях първия си истински полет, колкото можех, страхувайки се да не се счупя в движение модела, И тогава, съвсем случайно, разоравайки откритите пространства на aliexpress, попаднах на интересно нещо - система за стабилизация на полета. Това е малко устройство с размер на приемника, което регулира полета на самолет, като го прави по-плавно, изглажда пилотните недостатъци. Започнали да търсят, четат, те казват и наистина е добро за начинаещи. Е, тук се запалих - искам и поне ти пукаш. Просто бюджетът вече се изчерпва ... Изглежда самолетът ще изгради въпрос от 10 долара на тавана и ще купи оборудване, ще купи акумулатор, ще купи зарядно за него, двигател, регулатор, сервоми, витла ... С една дума, се случват много неща. Малко потиснат, но не се отказах, започнах да изсъхвам задната част на главата си: така, аз някак знам как да споявам. Той започна да търси и почти веднага намери малка статия, озаглавена „Системата за стабилизиране на самолета за 200 рубли“. Много скромна малка статия с много скромно изпълнение. Но това вече е нещо. Той се качи на чужди форуми - и ето, това е огромен проект с постоянно развитие! Решено е, ние ще го направим!

Проектът се нарича MultiWii. Първоначално той е бил замислен като полетен контролер за многокоптера Ардуино, но с течение на времето започна да расте и да се подобрява. Сега има код, който ви позволява да поставите тази система за стабилизиране на самолети и V крила. За най-простото изпълнение, както в горната статия, ще ви трябват само 2 неща: ардуино и акселерометър. Всичко това може да бъде споено с проводници, напълнено с горещ сопол и ще работи. Но може и ще бъде, само аз не работя така.




И така, за производството на цялостно устройство ще ви трябва:

  • Arduino PRO Mini, 5V, Atmega 328
  • Триосен акселерометър модул с жироскоп MPU-6050
  • Гребен pls
  • Парче от фибростъкло от фолио, ако сами си направите дъската.
  • SMD резистор 500-1500 Ом
  • LED 3 мм всякакви.

От инструментите:

  • Пояло
  • спойка
  • Flux (препоръчвам F5)
  • USB - UART конвертор CP2102 или подобен
  • Модел / клерически / монтажен нож за изработка на калъфа

Е, малките неща, двустранната лента, ножиците, клечките за уши, пинсетите, какво трябва да бъде в услуга на най-малките.

Както казах, проектът се разраства и развива. Така че тук можете да завиете друг Bluetooth модул, за да конфигурирате контролера от телефона, барометър, за да контролирате височината, GPS, за да върнете модела „вкъщи“, когато сигналът е загубен. В допълнение към това нараства и темата за импровизираните приемници, базирани на същия ардуино и евтин комуникационен модул A7105, което без хирургия пречи на моето оборудване FlySky i6, така че на теория можете да свържете тези два проекта и да получите пълни мозъци за самолет, планер или крила. А в отделение с гореспоменатото бюджетно оборудване, което тихо мига от 6 канала до 14, това като цяло излиза просто идеално за начинаещ за парите си.

Поради тази причина се опитах да направя платката за това устройство възможно най-проста, тоест едностранна и с ютия. Разбира се, ще са необходими познания в радиоелектрониката, поне способността да запоявате повече или по-малко висококачествено, можете да поръчате дъска и в крайни случаи, но по същество това е дизайнер: заших ардуино, споях го, модула и гребена на платката, готов е. Минимални усилия.


Arduino



За фърмуера на arduinka ще ви е необходим специален USB - UART (TTL) конвертор, защото Arduino PRO Mini няма USB интерфейс. Не трябва да се страхувате от това, като правило, можете да ги купите на същото място, където се продават ардуино и модули. Единствената разлика във фърмуера чрез този конвертор е, че трябва умело да натиснете бутона за нулиране на самия ардуино строго в момента на изтегляне на скицата, въпреки че има конвертори, които сами издърпват крака за нулиране. Няма да описвам процедурата за качване на скица; вече има милион статии и видеоклипове по този въпрос, написани и заснети.

плащане



Следващата стъпка е да направите дъската. Дъската се изработва по всяка налична технология или се поръчва. Силно препоръчвам да разкъсате пистите, по-добре е да използвате ROSE или WOODA сплав, така че слоят да е възможно най-малък, големите токове да не обикалят тук и е по-добре да защитите медта от прекомерна корозия, дъжд, сняг, никога не знаете, все още не е домашно устройство. Направих измамен ЛУТ, не най-добрият резултат, можете да направите много лош принтер, но на кого му пука)



Първото нещо за запояване на джъмперите.



Зад тях е ардуино. Краката за мигане на ардуинките трябва да бъдат запоени нагоре или ъглови настрани. Можете да попълните скицата веднага, не можете да я попълните, няма значение, защото сглобеното устройство все още ще трябва да бъде свързано с компютъра, така че контактите за програмиране трябва да бъдат лесно достъпни. Единственият съвет е да проверите ардуино преди запояване, попълнете всяка тестова скица и се уверете, че дъската мига. Просто спойка, тогава ще бъдат хемороиди.



Ами и всичко останало. Акселерометърът е споен на високи крака и е разположен над ардуино. Няма да скрия грях, шпионирах такова оформление в чужд форум при едно продадено, но нарисувах собствен едностранно шал. Що се отнася до мен, отсъствието на три джъмпера не си струва суетата с двустранна дъска, без значение колко лоша форма присъствието на същите тези джъмпери не се счита.




Едно предупреждение. На платката има един резистор и светодиод. SMD форматът на резистора може да бъде отпаднал от някакво счупено оборудване, номиналната стойност от 500 ома - 1,5 kOhm. Можете да вземете обикновен 3-милиметров светодиод, имах правоъгълен такъв, запоях го.


На този етап устройството по принцип вече може да бъде свързано и конфигурирано, но както ми се струва непълно. електроника за радиоуправляемите модели отдавна придоби модулен характер. Ето защо мисля, че това устройство трябва да бъде доведено до готовия модул, който е лесен за монтиране в модела и свързване. За да направи това, той се нуждае от дело. Добър вариант би бил да го отпечатате на 3D принтер, пластмасата, използвана за печат, е лека и издръжлива. Но не всеки го има. Можете да направите случая чрез термоформоване, в интернет има много информация как да направите обикновена машина за това от прахосмукачка, дървен материал и парче шперплат. Но за това е необходимо да направите блокчейн и това е мързел. По този начин поех по пътя на най-малкото съпротивление. Да, и такъв метод ще бъде подобен на тази статия - да го направите възможно най-прост, като използвате минимум инструменти.


жилище

Изрязах две парчета пластмаса според размера на дъската, в моя случай тънък прозрачен PVC, но можете да използвате каквото и да е, например кутия от диск. Не съм правила междинни снимки, но мисля, че така или иначе ще стане ясно.С помощта на линийка измерих разстоянието до контактите на дъската и изрязах прозорци за тях в горната част на „кутията“. Пробивах дупки съвместно с дупките на дъската и свързвах всичко заедно с импровизирани нитове от тръбите от ушните пръчки. За да направите такава нита, достатъчно е внимателно да държите върха на тръбата в пламъка на запалката и когато се образува приток, да я притиснете към тялото на тази запалка. На обратната страна изрязваме тръбите, оставяйки няколко милиметра, и правим същото. Като дистанционери използвали сегменти от тръбата от капкомера. В резултат на това излезе такъв сандвич:




Лесен за правене, лек, прост и надежден. Вече е удобно да го монтирате във фюзелажа на самолета, като залепите към дъното чифт ленти от „автомобилна“ двустранна лента. Но за пълната картина все още се нуждаете от табелка с етикет, която ще ви каже след половин година, когато вече ще бъдат сглобени единадесет други схеми, към какво да се свържете.




Табелката, отпечатана върху самозалепваща се лъскава хартия. Наскоро купена специално за такива цели. Преди това направих това: отпечатах върху това, което имах, ламинирах се с лепяща лента и го залепих на двустранна лента. Най-внимателният би могъл да оцени нивото ми на английски)

Сега устройството наистина може да се нарече готов модул. Общото тегло 15,5 грама. Прекалено много в сравнение с закупеното, но като цяло, много нищо. Поне моят модел с обхват от 950мм ще дръпне без проблеми. Но ако гоните теглото, можете да развалите ардуино от разхлабения прах директно на дъската, спестете 2 грама, използвайте тънък милиметров текстолит (аз използвах кой от един, половина или два милиметра, не мерихте), не правете случая. Но струва ли си тези 5 грама? Например, теглото на родния приемник от приложението ми е 16 грама.
Устройството трябва да бъде разположено в хоризонтална равнина, стрелката показва посоката на движение. Също така устройството не може да бъде инсталирано с главата надолу. За по-голяма яснота прикачвам снимка.




Настройка, калибриране

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




Избираме го. Сега трябва да калибрирате акселерометъра. Натискаме бутона READ и ако всичко е правилно, можем да наблюдаваме показанията от сензора в реално време. Поставяме устройството върху равна повърхност и натискаме CALIB_ACC. Обикновено "плоска повърхност" е маса в близост до компютъра, така че когато натиснете калибрирането, дръжте ръцете си далеч от масата. Който не си спомня, акселерометърът е сензор за ускорение. Така че всякакви вибрации или вибрации в калибрирането няма да имат положителен ефект. Но ако е възможно, по-добре е да го калибрирате на повърхност, изложена на нивото. Жироскопът се калибрира сам при всяко включване, така че не е необходимо да се калибрира. Единственото нещо е, че когато включите модела трябва да е неподвижен. Тоест поставяме модела на земята, включваме го и не го пипаме. Жироскопът се калибрира веднага. Калибрирането се обозначава със светодиод, подписан като СТАТУТ.




Незабавно конфигурирайте AUX1. За него е удобно да използва трипозиционен превключвател, ако има такъв на предавателя. При ниско ниво (превключване в първа позиция) стабилизацията е забранена, при средно ниво (и съответно положение) се включва акселерометър, а на високо ниво - жироскоп и акселерометър. За нормален полет по принцип е достатъчен акселерометър, обикновено за полети с FPV се използва жироскоп. Какво би било, както описах - задайте стойностите, както са показани тук:



Малко за другите настройки. PID - това са настройките на самата стабилизация. С две думи:

  • P е стойността на прилаганата коригираща сила, за да се върне моделът в първоначалното му положение.
  • аз Периодът от време, през който се записват и осредняват ъглови отклонения.
  • D - това е скоростта, с която моделът ще се върне в първоначалното си положение.




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

Напред. TPA отговорен за стойността на тези PID настройки в зависимост от положението на газа. При стойност 0,00, PID стойностите ще бъдат еднакви при всяко положение на газ, тоест, както се очаква, при всяка скорост. Със стойност 1,00 с газ 100% PID ще бъде нула, тоест стабилизацията ще бъде деактивирана. При стойност от 0,5 на 100% от газа, пидрите ще бъдат съответно 50%. Тук вече е настроен за самолета и за вашия аеробен стил, засега съм оставил 50%.

Също така на канала AUX2 трябва да конфигурирате ръката. Въоръжението е термин от коптер. По човешки начин това се нарича отключване на двигателя. В самолетите това обикновено се осъществява чрез контролно оборудване, но оттогава Първоначално този контролер беше коптер - тук беше направено доста трудно. По принцип ние окачваме някакъв безплатен превключвател за превключване на AUX2, в програмата поставяме ARM на високо ниво. Тук някой може да иска да изневери и да настрои отключването на всички нива на AUX2, но просто не се проваля. В този случай multiviy изобщо отказва да стартира двигателя. Може да се предположи, че това е грешка, но мисля, че защитата е скоро. Самолетът все още лети само напред и само богове знаят къде ще избухне неконтролираният коптер.

Между другото, това всъщност е удобно. По-конкретно в приложението ми двигателят се отключва чрез преместване на превключвателя нагоре. В този случай оборудването трябва да бъде включено точно с всички превключватели в горната позиция. Тоест, оказва се, че трябва да включите оборудването, да преместите превключвателя за превключване надолу, за да блокирате двигателя, и след това да го прехвърлите обратно нагоре, за да се отключи. И не можете да обърнете основното. Веднага се оказва човешко, в горната позиция двигателят е заключен, в долната - отключен.




В раздела SERVO можете да обърнете сервовете, ако е необходимо. Тук го направиха някак сложно. Първо трябва да натиснете SERVO. Ще се покаже списък на сервовете и нивата. Ако натиснете бутона за обратно движение сега и се опитате да запазите, нищо няма да бъде записано. Първо трябва да натиснете GO LIVE, след което, когато пръчките бъдат отхвърлени, ще бъде възможно да наблюдавате отклонението на нивото в прозореца. Сега натискаме бутона за обратно движение на желания канал и след това натискаме SAVE. Сега всичко е записано.




Важен момент относно изключването на устройството от компютъра. Ако издърпате програмните проводници от устройството или извадите конвертора от USB порта без да затворите COM порта или програмата MultiWiiConf, системата ще се срине и синият екран ще бъде приблизително 100% вероятен. Поне на моя лаптоп е така. Дори специално проверих. Не знам дали това е проблем с моя хардуер или дали той реагира, че е видим за виртуалния COM порт, но ако е предупреден, това означава, че е въоръжен. Имайте предвид.

И още няколко настройки, които може да ви бъдат полезни. Ако вашият приемник знае как да издаде PPM сигнал, може да искате да го предадете на мулти-прегледа. За да направите това, отворете файла на фърмуера, отидете на раздела config.h и потърсете секцията PPM Sum Reciver (прославен Ctrl + F). Тук трябва да некомментирате 2 реда. Който не е в темата, коментира - това означава премахване на две наклонени черти в началото на реда. Беше така:


// # дефинирайте PPM_ON_THROTTLE


Стана така:

#define PPM_ON_THROTTLE


Също така трябва да декомментирате една от тези линии в зависимост от хардуера:

// # дефинирайте SERIAL_SUM_PPM PITCH, YAW, THROTTLE, ROLL, AUX1, AUX2, AUX3, AUX4,8,9,10,11 // За Graupner / Spektrum
// # определи SERIAL_SUM_PPM ROLL, PITCH, THROTTLE, YAW, AUX1, AUX2, AUX3, AUX4,8,9,10,11 // За Robe / Hitec / Futaba
// # определи SERIAL_SUM_PPM ROLL, PITCH, YAW, THROTTLE, AUX1, AUX2, AUX3, AUX4,8,9,10,11 // За мултиплекс
// # дефинирайте SERIAL_SUM_PPM PITCH, ROLL, THROTTLE, YAW, AUX1, AUX2, AUX3, AUX4,8,9,10,11 // За някои Hitec / Sanwa / Други


В моя случай това е вторият ред, където е Futaba (за какво разполагам с FlySky оборудване). Тук може да е необходимо да изберете емпирично, възможно е сами да предпишете желаната последователност. Така или иначе, няма нищо сложно в това. Ние съставяме скицата и я запълваме с нова. За да се върнете в нормален режим, направете обратното, коментирайте редове, компилирайте, попълнете. Искам да обърна внимание, след презареждане на скицата всички настройки и калибриране ще бъдат свалени, имайте това предвид.

Друг често срещан проблем, който, както аз го разбирам, често се среща и аз не съм изключение.След като всички са сглобили и конфигурирали, свързани всички волани - кормилото отплува. Дръжките на дистанционното управление бяха изтръпнали - изглежда, че е на мястото си, но ако планерът се разтърси малко - той отново отплува встрани и под доста сериозен ъгъл. Тя се третира елементарно: в GUI програмата задайте стойността YAW - аз до нула. Проблемът отшумява веднага.


Е, видеото работи:


заключение

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

, от който взех назаем формата фактор на дъската. Не предлагам да купувам, но темата има подробно ръководство за конфигурацията на фърмуера на английски. Вярно за старата версия на фърмуера, но в новата всичко е почти същото. В клона има и режим, който ви позволява да регулирате PID настройките в реално време чрез апарата за контрол на потенциометъра.

, Той има свой личен пренаписан фърмуер, казват, че той е идеално оптимизиран за самолети. Но отново старата версия. Можете да го опитате, но за появата на бъгове, които не са описани в тази статия, аз не нося отговорност. Има много описания на настройките.

, Но основната полезна информация, която е описана там, а именно обработката на кормилото, вече очертах. Въпреки това никога не се знае.

Общата цена варира от 4-8 долара, в зависимост от това на каква цена са закупени ардуино и модула, има ли текстолит у дома, има ли програмист. Във всеки случай това е няколко пъти по-малко от пазарната стойност от $ 20 за устройство със същите характеристики. Лично на мен ми струваше 2 долара, запас ардуино за такива цели беше закупен преди година, нямаше само модул.

В приложения по-долу архив е скица за arduino, програма за настройка на MultiWiiConf за различни операционни системи, файл на платка (за да отворите, трябва SprintLayout не по-малко от версия 6), както и печатна платка в PDF формат, за тези, които нямат лазерен принтер у дома ( трябва да печатате на 100%).


airplain_stabilization.rar [10,64 Mb] (изтегляния: 234)

Успех на всички в работата ви!
10
10
9.9

Добавете коментар

    • усмихвамусмивкиxaxaдобреdontknowYahooНеа
      шефдраскотинаглупакдаДа-даагресивентайна
      съжалявамтанцувамdance2dance3извинениепомощнапитки
      спиркаприятелидобърgoodgoodсвиркаприпадамезик
      димплясканеCrayдеклариратподигравателендон-t_mentionизтегляне
      топлинасърдитlaugh1MDAсрещаmoskingотрицателен
      not_iпуканкинаказвамчетаплашаплашитърсене
      присмехthank_youтоваto_clueumnikостърСъгласен
      лошоbeeeblack_eyeblum3изчервяванесамохвалствоскука
      цензурираншегаsecret2заплашвампобедаюsun_bespectacled
      ShokРеспектхахаprevedдобре дошълkrutoyya_za
      ya_dobryiпомощникne_huliganne_othodifludзабранаблизо
9 коментар
Гост Генадий
По принцип експериментите бяха неуспешни, ардуинката изгоря. Чакаме нов от братята китайци да продължи.
Авторът
И линията също трябва да се коментира, в същия раздел те са наблизо.
Авторът
И как се свързахте с приемника, чрез PPM или канал по канал? Ако канал по канал, тогава трябва да намерите секцията в скицата в раздела conhig.h PPM Sum Reciver и коментирайте обратно на реда, прочетете края на статията. Ако не работи чрез PPM, проверете дали сте забравили да превключите оборудването и приемника в режим PPM.
Гост Генадий
Здравейте. Сглобена, качена скица в ардуино, в програмата показва отклонения. Но не мога да се свържа с rc оборудване. Сервовете не работят, или по-скоро "дрънкат".
Авторът
Отпишете се, ако е възможно, за сметка на резултата, решили ли сте проблема или не. И ако е така, как. Ще бъде полезно за други читатели.
Валери К.
Благодаря за отговора. Ще пробвам друга версия. И знам, че това не е автопилот. Имам нужда от стабилизатор на полета.
Авторът
Поздрави. Като се има предвид, че скицата работи 100% и библиотеките са вградени в самата скица, единственото, което идва на ум, е старата или обратно, съвсем нова версия Arduino IDE.По някаква причина, понякога с „грешната“ версия, скицата не се компилира, това се случва само веднъж, но форумите често пишат за такъв проблем. Не помня каква версия беше, когато я събирах, но сега я проверих, всичко събрано. Версия 1.8.6
Прочетете и източниците, приложени в края на статията, може би някой също се е сблъскал с проблем.
Послепис Това не е автопилот. Има и проект за автопилот за arduino, потърсете ardupilot.
Валери К.
Уважаеми авторе, сглобих автопилот за вашата статия. Но когато фърмуерът не се случи поради липсата на завършване на компилацията на скицата. Моля за помощ, защото за съжаление не съм програмист. Напоследък работя с ардуино и опитът не е достатъчен, но ловът лети.
Авторът
Забравих да пиша за друг проблем. Двигателят стартира само ако въздухоплавателното средство е в хоризонтално положение. Може да се случи, че по време на полета ще направите цикъл например и по някаква причина ще извадите газта до нула, може да се случи случайно. Така че след това, двигателят може вече да не стартира. Най-лесният начин за решаване на проблема е да пуснете газовия сигнал от приемника през Y кабела, единият е свързан директно към контролера, а вторият към мултивизирането. Но това работи само ако не използвате PPM. За PPM този косяк трябва да се третира в код.

Съветваме ви да прочетете:

Предайте го за смартфона ...