Съдържание:

Arduino Drone с GPS: 16 стъпки
Arduino Drone с GPS: 16 стъпки

Видео: Arduino Drone с GPS: 16 стъпки

Видео: Arduino Drone с GPS: 16 стъпки
Видео: Leslie Kean on David Grusch (UFO Whistleblower): Non-Human Intelligence, Recovered UFOs, UAP, & more 2024, Юли
Anonim
Arduino Drone с GPS
Arduino Drone с GPS

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

Включихме инструкции как да възпроизведем нашия продукт, ако сте доволни от по -ограничения квадрокоптер.

Включихме и всички стъпки, които предприехме по пътя към по -автономен квадрокоптер. Ако се чувствате комфортно да копаете дълбоко в Arduino или вече имате много опит с Arduino и бихте искали да приемете нашата точка на спиране като отправна точка за вашето собствено проучване, тогава тази инструкция е също за вас.

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

Настройката е следната:

В списъка с материали за двете цели са необходими части без звездичка.

Части с една звездичка са необходими само за недовършения проект на по -автономен квадрокоптер.

Части с две звездички са необходими само за по -ограничения квадрокоптер.

Стъпките, общи за двата проекта, нямат маркер след заглавието

Стъпките, необходими само за по-ограничения неавтономен квадрокоптер, имат „(Uno)“след заглавието.

Необходимите стъпки само за автономния квадрокоптер в ход имат „(Mega)“след заглавието.

За да изградите Uno-базиран четириъгълник, следвайте стъпките по ред, като пропускате всички стъпки с „(Mega)“след заглавието.

За да работите върху мега-базиран четириъгълник, следвайте стъпките по ред, като пропускате всички стъпки с „(Uno)“след заглавието.

Стъпка 1: Съберете материали

Компоненти:

1) Една рамка на квадрокоптер (точният кадър вероятно няма значение) ($ 15)

2) Четири безчеткови двигателя 2830, 900kV (или подобни) и четири монтажни комплекта аксесоари (4x $ 6 + 4x $ 4 = общо $ 40)

3) Четири 20A UBEC ESC (4x $ 10 = $ 40 общо)

4) Едно разпределително табло (с връзка XT-60) ($ 20)

5) Една 3s, 3000-5000mAh LiPo батерия с връзка XT-60 (3000mAh съответства на приблизително 20 минути полетно време) ($ 25)

6) Много пропелери (те се чупят много) ($ 10)

7) Един Arduino Mega 2560* ($ 40)

8) Един Arduino Uno R3 ($ 20)

9) Втори Arduino Uno R3 ** ($ 20)

10) Един Arduino Ultimate GPS щит (нямате нужда от щита, но използването на различен GPS ще изисква различно окабеляване) ($ 45)

11) Два безжични трансивера HC-12 (2x $ 5 = $ 10)

12) Един MPU-6050, 6DOF (степен на свобода) жироскоп/акселерометър ($ 5)

13) Една двойка Turnigy 9x 2.4GHz, 9 канала предавател/приемник ($ 70)

14) женски (подредени) заглавки на Arduino ($ 20)

15) Зарядно устройство за баланс на LiPo батерия (и 12V DC адаптер, не са включени) ($ 20)

17) USB адаптер от мъжки към мъжки адаптер USB A до B ($ 5)

17) Тиксо

18) Свиваеми тръби

Оборудване:

1) поялник

2) Припой

3) Пластмасова епоксидна смола

4) Запалка

5) Машинка за отстраняване на тел

6) Комплект гаечни ключове Allen

Допълнителни компоненти за FPV (изглед от първо лице) видео предаване в реално време:

1) Малка FPV камера (тази връзка към доста евтината и некачествена, която използвахме, може да замените по-добра) ($ 20)

2) 5.6GHz двойка видео предавател/приемник (използвани са 832 модела) ($ 30)

3) 500mAh, 3s (11.1V) LiPo батерия ($ 7) (използвахме с бананов щепсел, но препоръчваме в ретроспекция да използвате свързаната батерия, тъй като тя има съединител, съвместим с предавателя TS832, и по този начин не не изисква запояване).

4) 2 1000mAh 2s (7.4V) LiPo батерия или подобна ($ 5). Броят на mAh не е критичен, стига да е повече от 1000mAh или така. Същото твърдение, както по -горе, се отнася за типа на щепсела за една от двете батерии. Другият ще се използва за захранване на монитора, така че ще трябва да запоявате независимо от всичко. Вероятно най-добре е да вземете такъв с щепсел XT-60 за това (това направихме). Връзка за този тип е тук: 1000mAh 2s (7.4V) LiPo с щепсел XT-60

5) LCD монитор (по избор) ($ 15). Можете също да използвате AV-USB адаптер и софтуер за копиране на DVD, за да гледате директно на лаптоп. Това също дава възможност за запис на видео и снимки, вместо просто да ги гледате в реално време.

6) Ако сте закупили батерии с различни щепсели от свързаните, може да се нуждаете от подходящи адаптери. Независимо от това, вземете адаптер, съответстващ на щепсела за батерията, която захранва монитора. Ето откъде да вземете адаптери XT-60

* = само за по -напреднал проект

** = само за по -основен проект

Разходи:

Ако започнете от нулата (но с поялник и т.н. …), няма FPV система: ~ 370 $

Ако вече имате RC предавател/приемник, зарядно устройство LiPo и LiPo батерия: ~ 260 долара

Цената на системата FPV: $ 80

Стъпка 2: Сглобете рамката

Сглобете рамката
Сглобете рамката
Сглобете рамката
Сглобете рамката
Сглобете рамката
Сглобете рамката

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

Стъпка 3: Монтирайте двигатели и свържете Escs

Монтирайте двигатели и свържете Escs
Монтирайте двигатели и свържете Escs
Монтирайте двигатели и свържете Escs
Монтирайте двигатели и свържете Escs
Монтирайте двигатели и свържете Escs
Монтирайте двигатели и свържете Escs
Монтирайте двигатели и свържете Escs
Монтирайте двигатели и свържете Escs

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

След като двигателите се завинтват, поставете епоксидна смола на разпределителната платка (PDB) върху горната част на рамката на квадрокоптера. Уверете се, че сте го ориентирали така, че конекторът на батерията да сочи между различно оцветените рамена (успоредно на една от дългите части на долната плоча), както е на снимката по-горе.

Трябва също да имате четири конуса на витлото с женски резби. Оставете ги настрана засега.

Сега извадете вашите ESC. От едната страна ще има два проводника, един червен и един черен. За всеки от четирите ESC, поставете червения проводник в положителния конектор на PDB, а черния в отрицателния. Обърнете внимание, че ако използвате различен PDB, тази стъпка може да изисква запояване. Сега свържете всеки от трите проводника, излизащи от всеки двигател. На този етап няма значение кой ESC проводник свързвате с кой проводник на двигателя (стига да свържете всички проводници на един ESC със същия двигател!) По -късно ще коригирате всяка обратна полярност. Не е опасно, ако проводниците са обърнати; това води само до въртене на двигателя назад.

Стъпка 4: Подгответе Arduino и Shield

Пригответе Arduino и Shield
Пригответе Arduino и Shield
Пригответе Arduino и Shield
Пригответе Arduino и Shield

Бележка, преди да започнете

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

Подгответе Arduino и щит

Извадете вашия Arduino Mega (или Uno, ако правите неавтономния четворка), GPS щит и подреждащи се заглавки. Запоявайте мъжкия край на подреждащите се заглавки на място върху щита на GPS, в редовете от щифтове, успоредни на предварително запоените щифтове, както е показано на горното изображение. Също така запоявайте в подреждащи се заглавки на ред щифтове, обозначени с 3V, CD,… RX. Използвайте резачка за тел, за да отрежете излишната дължина на щифтовете, стърчащи отдолу. Поставете мъжки заглавки с огънати върхове във всички тези подреждащи се заглавки. Това е, към което ще запоявате проводници за останалите компоненти.

Прикрепете GPS щита отгоре, като се уверите, че щифтовете съвпадат с тези на Arduino (Mega или Uno). Обърнете внимание, че ако използвате Mega, много от Arduino все още ще бъдат изложени, след като поставите щита на място.

Поставете електрическа лента в долната част на Arduino, покриваща всички открити спойки за щифтове, за да предотвратите късо съединение, тъй като Arduino лежи върху PDB.

Стъпка 5: Свържете заедно компонентите и поставете батерията (Uno)

Свържете заедно компоненти и поставете батерията (Uno)
Свържете заедно компоненти и поставете батерията (Uno)
Свържете заедно компоненти и поставете батерията (Uno)
Свържете заедно компоненти и поставете батерията (Uno)
Свържете заедно компоненти и поставете батерията (Uno)
Свържете заедно компоненти и поставете батерията (Uno)
Свържете заедно компоненти и поставете батерията (Uno)
Свържете заедно компоненти и поставете батерията (Uno)

Схемата по -горе е почти идентична с тази, направена от Joop Brooking, тъй като ние силно основавахме нашия дизайн на неговия.

*Имайте предвид, че тази схема предполага правилно монтиран GPS щит и по този начин GPS не се появява в тази схема.

Схемата по -горе е изготвена с помощта на софтуер Fritzing, който е силно препоръчителен, особено за схеми, включващи Arduino. Използвахме най -вече общи части, които могат да се редактират гъвкаво, тъй като нашите части обикновено не бяха в включената библиотека на части на Fritzing.

-Уверете се, че превключвателят на щита за GPS е превключен на „Direct Write“.

-Сега свържете всички компоненти съгласно горната схема (с изключение на батерията!) (Важна забележка за проводниците за данни за GPS по -долу).

-Забележете, че вече сте свързали ESC към двигателите и PDB, така че тази част от схемата е направена.

-Освен това, имайте предвид, че GPS данните (жълти проводници) излизат от пинове 0 и 1 на Arduino (а не отделните пинове Tx и Rx на GPS). Това е така, защото конфигуриран за "Direct Write" (виж по -долу), GPS извежда директно към хардуерните серийни портове на uno (щифтове 0 и 1). Това е най -ясно показано на втората снимка по -горе на цялото окабеляване.

-Когато окабелявате RC приемника, вижте снимката по -горе. Обърнете внимание, че проводниците за данни отиват в горния ред, докато Vin и Gnd са съответно на втория и третия ред (и на втората до най-отдалечената колона от щифтове).

-За да свържем окабеляването на трансивъра HC-12, RC приемника и 5Vout от PDB към Vin на Arduino, използвахме подреждащи се заглавки, докато за жироскопа запояваме проводниците директно към платката и използваме термосвиваеми тръби около спойка. Можете да изберете да направите някой от компонентите, но се препоръчва запояване директно към жироскопа, тъй като спестява място, което улеснява монтажа на малката част. Използването на заглавки е малко повече работа отпред, но осигурява по -голяма гъвкавост. Запояването на проводници директно е по-сигурна връзка в дългосрочен план, но това означава, че използването на този компонент в друг проект е по-трудно. Имайте предвид, че ако сте използвали заглавки на GPS щита, все още имате прилична гъвкавост, независимо от това, което правите. Най -важното е да се уверите, че проводниците за данни за GPS в щифтове 0 и 1 на GPS са лесни за премахване и подмяна.

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

С всичко свързано и поставено, вземете LiPo батерията и я плъзнете между горната и долната плоча на рамката. Уверете се, че неговият конектор е насочен в същата посока като конектора на PDB и че те всъщност могат да се свържат. Използвахме тиксо, за да държим батерията на място (велкро лентата също работи, но е по -досадна от тиксовата лента). Тиксото работи добре, защото човек може лесно да смени батерията или да я извади за зареждане. Трябва обаче да сте сигурни, че сте залепили батерията ТОЧНО, тъй като ако батерията се движи по време на полет, това може сериозно да наруши баланса на дрона. НЕ свързвайте батерията към PDB все още.

Стъпка 6: Свържете заедно компонентите и поставете батерията (мега)

Свържете заедно компоненти и поставете батерията (мега)
Свържете заедно компоненти и поставете батерията (мега)
Свържете заедно компоненти и поставете батерията (мега)
Свържете заедно компоненти и поставете батерията (мега)
Свържете заедно компоненти и поставете батерията (мега)
Свържете заедно компоненти и поставете батерията (мега)

Схемата по -горе е изготвена с помощта на софтуер Fritzing, който е силно препоръчителен, особено за схеми, включващи arduino. Използвахме най -вече общи части, тъй като нашите части обикновено не бяха в включената библиотека на части на Fritzing.

-Имайте предвид, че тази схема предполага правилно монтиран GPS щит и по този начин GPS не се появява в тази схема.

-Преместете превключвателя на вашия Mega 2560 на „Soft Serial“.

-Сега свържете всички компоненти съгласно горната схема (с изключение на батерията!)

-Забележете, че вече сте свързали ESC към двигателите и PDB, така че тази част от схемата е направена.

-Джъмперните кабели от Pin 8 към Rx и Pin 7 до Tx са налице, защото (за разлика от Uno, за който е направен този щит), на мега устройството липсва универсален асинхронен приемник-предавател (UART) на пинове 7 и 8 и по този начин трябва да използваме хардуерни серийни щифтове. Има още причини, поради които се нуждаем от хардуерни серийни щифтове, обсъдени по -късно.

-Когато окабелявате RC приемника, вижте снимката по -горе. Обърнете внимание, че проводниците за данни отиват в горния ред, докато Vin и Gnd са съответно на втория и третия ред (и на втората до най-отдалечената колона от щифтове).

-За да направим окабеляването за трансивера HC-12, RC приемника и 5Vout от PDB до Vin на Arduino, използвахме подреждащи се хедери, докато за жироскопа запояваме проводниците директно и използваме термосвиваеми тръби около спойката. Можете да изберете да направите или за някой от компонентите. Използването на заглавки е малко повече работа отпред, но осигурява по -голяма гъвкавост. Запояването на проводници директно е по-сигурна връзка в дългосрочен план, но това означава, че използването на този компонент в друг проект е по-трудно. Обърнете внимание, че ако сте използвали заглавки на GPS щита, все още имате прилична гъвкавост, независимо от това, което правите.

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

С всичко свързано и поставено, вземете LiPo батерията и я плъзнете между горната и долната плоча на рамката. Уверете се, че неговият конектор е насочен в същата посока като конектора на PDB и че те всъщност могат да се свържат. Използвахме тиксо, за да държим батерията на място (велкро лентата също работи, но е по -досадна от тиксовата лента). Тиксото работи добре, защото човек може лесно да смени батерията или да я извади за зареждане. Трябва обаче да сте сигурни, че сте залепили батерията ТОЧНО, тъй като ако батерията се движи по време на полет, това може сериозно да наруши баланса на дрона. НЕ свързвайте батерията към PDB все още.

Стъпка 7: Свържете приемника

Свързващ приемник
Свързващ приемник
Свързващ приемник
Свързващ приемник

Вземете RC приемника и временно го свържете към 5V захранване (или като включите Arduino с USB или 9V захранване, или с отделно захранване. Все още не свързвайте LiPo към Arduino). Вземете свързващия щифт, доставен с RC приемника, и го поставете към щифтовете BIND на приемника. Алтернативно, съкратете горния и долния щифт в колоната BIND, както е показано на снимката по -горе. Червената лампичка трябва бързо да мига на приемника. Сега вземете контролера и натиснете бутона на гърба, докато е изключен, както е показано по -горе. С натиснат бутон включете контролера. Сега мигащата светлина на приемника трябва да свети постоянно. Приемникът е свързан. Извадете свързващия кабел. Ако сте използвали различно захранване, свържете отново приемника към 5V от Arduino.

Стъпка 8: (По избор) Свържете заедно и монтирайте системата за камера FPV

(По избор) Свържете заедно и монтирайте системата за камера FPV
(По избор) Свържете заедно и монтирайте системата за камера FPV
(По избор) Свържете заедно и монтирайте системата за камера FPV
(По избор) Свържете заедно и монтирайте системата за камера FPV

Първо, запойте заедно адаптера XT-60 със захранващите и заземяващите проводници на монитора. Те могат да варират в зависимост от монитора, но захранването почти винаги ще бъде червено, земята почти винаги е черна. Сега поставете адаптера с запоени проводници във вашия 1000mAh LiPo с щепсела XT-60. Мониторът трябва да се включи със (обикновено) син фон. Това е най -трудната стъпка!

Сега завийте антените на приемника и предавателя.

Свържете вашия малък 500mAh Lipo към предавателя. Най -десният щифт (точно под антената) е заземен (V_) на батерията, следващият щифт вляво е V+. Идват трите проводника, които отиват към камерата. Вашата камера трябва да бъде снабдена с три в един щепсел, който се вписва в предавателя. Уверете се, че имате жълтия проводник за данни в средата. Ако сте използвали батериите, с които сме свързани, с тапи, предназначени за това, тази стъпка не трябва да изисква запояване.

И накрая, свържете другата си батерия от 1000 mAh с кабела за изход за постоянен ток, доставен с приемника, и на свой ред го включете в порта за постоянен ток на приемника. И накрая, свържете черния край на AVin кабела, доставен с приемника, към порта AVin на вашия приемник, а другия (жълт, женски) край към жълтия мъжки край на AVin кабела на вашия монитор.

В този момент трябва да можете да видите изглед от камерата на монитора. Ако не можете, уверете се, че приемникът и предавателят са включени (трябва да видите номера на малките им екрани) и че са на един и същ канал (използвахме канал 11 и за двата и постигнахме добър успех). Освен това може да се наложи да смените канала на монитора.

Монтирайте компонентите върху рамката.

След като инсталацията работи, изключете батериите, докато не сте готови за полет.

Стъпка 9: Настройте приемане на GPS данни

Настройте приемане на GPS данни
Настройте приемане на GPS данни
Настройте приемане на GPS данни
Настройте приемане на GPS данни

Свържете втория си Arduino с втория си трансивер HC-12, както е показано на горната схема, като имате предвид, че настройката ще се захранва само както е показано, ако е включена в компютър. Изтеглете предоставения код на трансивъра, отворете серийния си монитор до 9600 бода.

Ако използвате по-основната настройка, трябва да започнете да получавате GPS изречения, ако вашият GPS щит е захранван и правилно свързан към другия трансивер HC-12 (и ако превключвателят на щита е на "Direct Write").

С Mega се уверете, че превключвателят е на "Soft Serial".

Стъпка 10: Изпълнете кода за настройка (Uno)

Този код е идентичен с този, използван от Joop Brokking в своя урок за квадрокоптер Arduino и той заслужава цялата заслуга за неговото писане.

Когато батерията е изключена, използвайте USB кабела, за да свържете компютъра си към Arduino и качете приложения код за настройка. Включете вашия RC предавател. Отворете серийния си монитор на 57600 бода и следвайте подканите.

Често срещани грешки:

Ако кодът не успее да се качи, уверете се, че щифтове 0 и 1 са изключени от щита UNO/GPS. Това е същият хардуерен порт, който устройството използва за комуникация с компютъра, така че трябва да е свободен.

Ако кодът прескача няколко стъпки наведнъж, проверете дали вашият GPS превключвател е в положение „Direct Write“.

Ако не е открит приемник, уверете се, че има постоянна (но приглушена) червена светлина на приемника, когато предавателят е включен. Ако е така, проверете окабеляването.

Ако не е открит жироскоп, това може да се дължи на това, че жироскопът е повреден или ако имате различен тип жироскоп от този, към който е предназначен кода.

Стъпка 11: Изпълнете код за настройка (мега)

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

Когато батерията е изключена, използвайте USB кабела, за да свържете компютъра си към Arduino и качете приложения код за настройка. Отворете серийния си монитор на 57600 бода и следвайте подканите.

Стъпка 12: Калибрирайте ESC (Uno)

Отново този код е идентичен с кода на Joop Brokking. Всички модификации са направени в опит да се интегрират GPS и Arduino и могат да бъдат намерени по -късно, в описанието на конструкцията на по -усъвършенствания квадрокоптер.

Качете прикачения код за калибриране на ESC. На серийния монитор напишете буквата 'r' и натиснете връщане. Трябва да започнете да виждате изброени стойности на RC контролера в реално време. Уверете се, че те варират от 1000 до 2000 в крайностите на дросела, въртенето, височината и криволиченето. След това напишете „а“и натиснете връщане. Оставете калибрирането на жироскопа и след това проверете дали жироскопът регистрира движението на квадроцикъла. Сега извадете arduino от компютъра, натиснете газта докрай нагоре на контролера и свържете батерията. ESC трябва да циклират различни звукови тонове (но това може да е различно в зависимост от ESC и неговия фърмуер). Натиснете газта докрай надолу. ESC трябва да издават по -ниски звукови сигнали, след което да замълчат. Изключете батерията от контакта.

По избор можете на този етап да използвате конусите, които са доставени с комплектите аксесоари за монтиране на двигателя, за да завиете плътно винтовете. След това въведете цифрите 1 - 4 на серийния монитор, за да включите двигатели съответно 1 - 4 при най -ниската мощност. Програмата ще регистрира количеството разклащане поради дисбаланс на подпорите. Можете да опитате да отстраните това, като добавите малки количества скоч от едната или другата страна на подпорите. Открихме, че можем да постигнем отличен полет без тази стъпка, но може би малко по -малко ефективно и по -силно, отколкото ако балансирахме реквизита.

Стъпка 13: Калибриране на ESC (мега)

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

Качете прикачения код за калибриране на ESC. На серийния монитор напишете буквата 'r' и натиснете връщане. Трябва да започнете да виждате изброени стойности на RC контролера в реално време. Уверете се, че те варират от 1000 до 2000 в крайностите на дросела, въртенето, височината и криволиченето.

След това напишете „а“и натиснете връщане. Оставете калибрирането на жироскопа и след това проверете дали жироскопът регистрира движението на квадроцикъла.

Сега извадете arduino от компютъра, натиснете газта докрай нагоре на контролера и свържете батерията. ESC трябва да излъчват три ниски звукови сигнала, последвани от висок (но това може да е различно в зависимост от ESC и неговия фърмуер). Натиснете газта докрай надолу. Изключете батерията от контакта.

Промените, които направихме в този код, бяха да преминем от използване на PORTD за щифтовете ESC към използване на PORTA и след това да променим байтовете, записани към тези портове, така че да активираме правилните щифтове, както е показано на схемата на окабеляване. Тази промяна се дължи на това, че регистрационните пинове на PORTD не са на същото място в Mega, както в Uno. Не успяхме да тестваме напълно този код, тъй като работехме със стара мега марка Mega, която имаше в магазина на нашето училище. Това означаваше, че по някаква причина не всички регистрационни щифтове PORTA не успяха да активират правилно ESC. Също така имахме проблеми с използването на оператора or equals (| =) в някои от тестовия код. Не сме сигурни защо това причинява проблеми при писането на байтовете за задаване на напреженията на ESC пиновете, затова променихме кода на Brooking възможно най -малко. Смятаме, че този код е много близък до функционален, но пробегът ви може да варира.

Стъпка 14: Вземете се във въздуха !! (Uno)

И отново, този трети гениален код е дело на Joop Brokking. Промените във всички тези три кода присъстват само в опитите ни за интегриране на GPS данните в Arduino.

Когато вашите двигатели са здраво монтирани на рамката и всички компоненти са прикрепени, залепени или по друг начин монтирани, заредете кода на полетния контролер към вашия Arduino, след което изключете Arduino от компютъра си.

Извадете квадрокоптера си навън, включете батерията и включете предавателя. По желание носете със себе си лаптоп, свързан с вашата настройка за получаване на GPS, както и настройката и монитора за получаване на видео. Заредете кода на приемо -предавателя на вашия наземен Arduino, отворете серийния си монитор до 9600 бода и гледайте как се внасят GPS данните.

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

Вижте вграденото видео, на което развълнувано летим с дрона първия път, когато успяхме да накараме дрона и GPS да работят едновременно.

Стъпка 15: Вземете се във въздуха !! (Мега)

Поради нашето затваряне с кода за калибриране на ESC за Mega, никога не успяхме да създадем код за полетен контролер за тази дъска. Ако сте стигнали до този момент, тогава си представям, че поне сте се заиграли с кода за калибриране на ESC, за да го накара да работи за Mega. Следователно вероятно ще трябва да направите подобни промени в кода на полетния контролер, както сте направили в последната стъпка. Ако нашият код за калибриране на ESC за Mega магически работи без никакви други модификации, тогава има само няколко неща, които ще трябва да направите с кода на склад, за да работи за тази стъпка. Първо ще трябва да преминете и да замените всички екземпляри на PORTD с PORTA. Също така, не забравяйте да промените DDRD на DDRA. След това ще трябва да промените всички записани байтове в регистъра PORTA, така че да активират правилните пинове. За да направите това, използвайте байта B11000011, за да зададете щифтовете на високо и B00111100, за да зададете щифтовете на ниско. Успех и моля, уведомете ни, ако успешно летите с помощта на Mega!

Стъпка 16: Как стигнахме до момента, в който се намираме с мега дизайна

Този проект беше огромно обучение за нас като начинаещи в хобито на Arduino и електроника. Затова смятаме, че бихме включили сагата от всичко, което срещнахме, докато се опитвахме да използваме GPS кода на Joop Brokking. Тъй като кодът на Brokking е толкова задълбочен и много по -сложен от всичко, което пишехме, решихме да го променим възможно най -малко. Опитахме се да накараме GPS щита да изпраща данни до Arduino и след това да накараме Arduino да ни изпрати тази информация чрез трансивъра HC12, без да променя кода на полета или окабеляването по никакъв начин. След като разгледахме схемите и окабеляването на нашия Arduino Uno, за да разберем какви пинове са налични, променихме кода на GPS трансивъра, който използвахме, за да заобиколим съществуващия дизайн. След това го тествахме, за да се уверим, че всичко работи. В този момент нещата изглеждаха обещаващи.

Следващата стъпка беше да интегрираме кода, който току -що променихме и тествахме с полетния контролер на Brokking. Това не беше твърде трудно, но бързо попаднахме на грешка. Полетният контролер на Brokking разчита на библиотеките Arduino Wire и EEPROM, докато нашият GPS код използваше както библиотеката Software Serial, така и Arduino GPS библиотеката. Тъй като Wire Library се позовава на Software Serial Library, попаднахме на грешка, при която кодът не се компилира, защото имаше „множество дефиниции за _vector 3_“, каквото и да означава това. След като потърсихме в Google и се поразровихме из библиотеките, в крайна сметка разбрахме, че този библиотечен конфликт прави невъзможно да се използват тези парчета код заедно. Затова тръгнахме да търсим алтернативи.

Това, което разбрахме, е, че единствената комбинация от библиотеки, които не ни изпратиха грешка, бяха превключването на стандартната GPS библиотека към neoGPS и след това използване на AltSoftSerial вместо Software Serial. Тази комбинация работи, обаче, AltSoftSerial може да работи само със специфични щифтове, които не бяха налични в нашия дизайн. Това ни води до използването на Mega. Arduino Megas имат множество хардуерни серийни портове, което означава, че можем да заобиколим този библиотечен конфликт, като изобщо не се налага да отваряме софтуерни серийни портове.

Когато обаче започнахме да използваме Mega, бързо разбрахме, че конфигурацията на щифтовете е различна. Пиновете на Uno, които имат прекъсвания, са различни на Mega. По същия начин щифтовете SDA и SCL бяха на различни места. След като изучихме пиновите диаграми за всеки тип Arduino и обновихме регистрите, извикани в кода, успяхме да стартираме кода за настройка на полета само с минимално повторно окабеляване и без промени в софтуера.

Кодът за калибриране на ESC е мястото, където започнахме да срещаме проблеми. Ние засегнахме това накратко преди, но по принцип кодът използва пинови регистри за регулиране на пиновете, използвани за управление на ESC. Това прави кода по -труден за четене, отколкото използването на стандартната функция pinMode (); това обаче прави кода да работи по -бързо и да активира пинове едновременно. Това е важно, тъй като кодът на полета работи в цикъл с внимателно време. Поради различията в пиновете между Arduinos, решихме да използваме порт порт A на Mega. Въпреки това, в нашето тестване, не всички изводи ни дадоха същото изходно напрежение, когато им беше казано да работят високо. Някои от изводите имаха изход около 4.90V, а други ни приближиха до 4.95V. Очевидно ESC -тата, които имаме, са малко изискани и затова те биха работили правилно само когато използвахме щифтовете с по -високо напрежение. Това ни принуди да променим байтовете, които написахме, за да регистрираме А, така че да говорим с правилните щифтове. Повече информация за това има в секцията за калибриране на ESC.

Това е доколкото стигнахме в тази част на проекта. Когато отидохме да тестваме този модифициран код за калибриране на ESC, нещо се късо и загубихме комуникация с нашия Arduino. Бяхме изключително озадачени от това, защото не сме сменили нито едно окабеляване. Това ни принуди да отстъпим назад и да осъзнаем, че имаме само няколко дни, за да вземем летящ дрон след седмици, в които се опитвахме да съберем несъвместимите си части. Ето защо се върнахме назад и създадохме по -простия проект с Uno. Все пак смятаме, че нашият подход е близо до работата с Mega с малко повече време.

Нашата цел е това обяснение на препятствията, които срещнахме, да ви бъде полезно, ако работите върху промяна на кода на Brokking. Също така никога не сме имали възможност да опитаме да кодираме автономни функции за управление, базирани на GPS. Това е нещо, което ще трябва да разберете, след като създадете работещ дрон с Mega. От някои предварителни проучвания на Google обаче изглежда, че внедряването на филтър на Калман може да е най -стабилният и точен начин за определяне на позицията в полет. Предлагаме ви да проучите малко за това как този алгоритъм оптимизира оценките на състоянието. Освен това, късмет и ни уведомете, ако стигнете по -далеч, отколкото успяхме!

Препоръчано: