blog.

Almost there.

“инж.”

Warning! Old content!

EN: This post is older than 9 years—a long time on the Internet. It is most likely outdated. I might’ve grown in many ways since its publication. Keep this in mind

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

Завърших. От две седмици съм инженер. Остава само да ми дадат дипломата.

Темата на дипломната ми работа беше “Проектиране на микропроцесорна система за управление на безпилотен летателен апарат”. Исках да е нещо с “летателни машини” и “21-и век”, но само на мен щеше да ми е забавно. Oбикновено това не ми е проблем, но имайки предвид, че трябваше за десетина минути да убедя 5-6 души, че заслужавам да стана инженер, остана това заглавие. Не щеш ли ми се получи и ми писаха две шестици.

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

Основната цел на контролера е според наклона и ускорението на дрона по дадена ос да изчисли скоростта на всеки мотор.
Звучи просто – четеш датчиците, смяташ, казваш на моторчетата да се въртят и толкова. Да, ама не е точно така.
Четенето на жироскопа, акселерометъра и компаса отнема време. След като се прочетат всичките състояния, трябва да се комбинират и да се разбере точното положение на обекта в пространството. Когато най-накрая се разбере колко и накъде се е накривило нещото, трябва да се реализира PID алгоритъма, от който пък ще излязат нужните стойности за контролерите на моторите (или ESC-та). Докато става всичко това, трябва да се следи какво се бута по дистанционното и да се реагира подобаващо.

Преди да се стигне до правенето на дипломната, се наложи да си купя една камара чаркове и да сглобя готовия дрон с готов контролер, за да се науча да го управлявам. Резултатът след близо два месеца чакане на доставки беше бързо сглобяване и първи опит за истински полет. След като успях да го задържа във въздуха с почти никакви настройки на PID-а, говедото реши да се преобърне с перките надолу. Не знам дали заради вятъра или гениалния пилотаж. Няма значение.

Да не се кара в некомпетентно състояние!
Да не се кара в некомпетентно състояние!
2015-04-26 16.27.32
От друг ъгъл също е прецакано, да

В последствие се оказа, че едното моторче не стартира, както се очаква от него. Едно чакане на доставка по-късно се сдобих с по-големи моторчета, нов дисплей за контролера и по-големи перки.

2015-05-18 15.43.00
Новите са малко по-бавни, но по-големите перки и по-голямата мощност на моторчетата (252W-285W!) компенсират

За да се избегнат евентуални по-лоши падания, трябваше да го сглобя по малко по-добър начин. В първата версия контролерът и платката за разпределяне на захранването (Power Distribution Board, PDB) бяха вързани със свински опашки и тиксо. Професионална работа, да. В текущата версия контролерът и PD платката са закрепени с болтове една върху друга и директно върху рамката.

Кабелаците малко преди да се изприберат
Кабелаците малко преди да се изприберат. В момента приемникът е вързан със свинска опашка, не с тиксо.
Power Distribution Board-а изглежда по-добре закрепен с болтове, отколкото вързан с тиксо.
Power Distribution Board-а изглежда по-добре закрепен с болтове, отколкото вързан с тиксо.
От по-близо. С бонус - косъм.
От по-близо. С бонус – косъм.

След многото падания и счупен крак на рамката май успях да докарам настройките на PID-а до приемливи за летене нива. Далеч е от перфектно, но вече поне се задържа повече във въздуха.

За контролера за дипломната работа първо мислех да използвам Arduino, но ми се стори скучно, затова скочих на PSoC 4. Цялата работа се оказа прекалено лесна. Използвах готови модули за комуникацията с акселерометъра и жироскопа (MPU-6050). Общо взето ми се наложи да сглобя елементарна комуникация и да си напиша супер прост PID контролер. PSoC 4 Pioneer Kit-а, който използвах, поддържа Arduino shield-ове, затова си начертах платка, върху която да сложа IMU-то и хедърите за ESC-тата и радиото. Добре че имаше кой да ми каже колко е тъпа платката и да я оправи преди да я ецне.
Накрая нещото не литна както исках. IMU-то се оказа с прецакан чип – отчетите от жироскопа подскачат от единия край на скалата до другия. Мислех си, че е заради инициализацията, но като го вързах за Arduino-тата, пак го имаше. Без значение от настройките и библиотеката. Ефектът е, че моторчетата не поддържат постоянни обороти, а имат пикове. Ако не ме домързи, ще пренапиша изцяло контролера, защото в момента не става. Докато ме мързи, ще си играя с готовия и може би ще сглобя gimbal-а.


Posted

in

,

by

Tags:

Comments

Leave a Reply

This site uses Akismet to reduce spam. Learn how your comment data is processed.