Mundarija:

Arduino dronini yasashni xohlagan qo'llanma: 9 qadam
Arduino dronini yasashni xohlagan qo'llanma: 9 qadam

Video: Arduino dronini yasashni xohlagan qo'llanma: 9 qadam

Video: Arduino dronini yasashni xohlagan qo'llanma: 9 qadam
Video: ESP32 Tutorial 3 - Resistor, LED, Bredboard and First Project: Hello LED -ESP32 IoT Learnig kit 2024, Noyabr
Anonim
Men xohlagan qo'llanma, men Arduino dronini yaratishni xohlardim
Men xohlagan qo'llanma, men Arduino dronini yaratishni xohlardim

Bu hujjat - bu "qanday yo'l -yo'riq ko'rsatish" kerak bo'ladigan kesma hujjati bo'lib, u o'zimning mobil telefonim orqali boshqariladigan oddiy kvadrokopter yaratish maqsadimga erishish uchun tushunchalarni tushunishimga to'g'ri keldi.

Bu loyihani amalga oshirish uchun men samolyot aslida nima ekanligini tushunmoqchi edim, mening vaziyatimda kvadrokopter, shuning uchun men tadqiqot o'tkaza boshladim. Men YouTube -da juda ko'p videolarni ko'rdim, ko'plab maqolalar va o'qib bo'lmaydigan sahifalarni o'qidim va menda shunday bo'ldi.

Umuman olganda, siz dronni ikki qismga bo'lishingiz mumkin. Men uni "jismoniy" va "nazoratchi" deb atadim. Fizika - bu dronni uchib ketadigan mexanika bilan bog'liq bo'lgan hamma narsa. Bular dvigatel, ramka, akkumulyator, pervanellar va boshqa jismonan uchuvchiga uchish qobiliyatini beradigan narsalar.

Boshqaruvchi asosan parvoz boshqaruvchisidir. Dron yiqilmasdan butun birlik sifatida ucha olishi uchun fizikani nima boshqaradi. Asosan, mikrokontroller, undagi dasturiy ta'minot va rulmanlarni uchburchakka aylantirishga yordam beradigan sensorlar. Umuman olganda, uchuvchisiz samolyotga ega bo'lish uchun menga nazoratchi va nazoratchi uchun bir qancha jismoniy qismlar kerak edi.

Ta'minotlar

Loyihaning byudjeti: $ 250

Vaqt oralig'i: 2 hafta

Sotib olinadigan narsalar:

  • Jismoniy ramka $ 20
  • Pichoqlar $ 0 (ramka bilan birga keladi)
  • Batareya to'plami $ 25
  • ESC (elektron tezlikni boshqaruvchi) $ 0 (dvigatellar bilan birga keladi)
  • Motorlar 70 dollar

Parvoz boshqaruvchisi

  • Arduino nano 20 dollar
  • Arduino USB kabeli $ 2
  • Bluetooth moduli (HC-05) $ 8
  • 3 mm LED va 330 Ohm qarshilik va simlar $ 13
  • GY-87 (akselerometr, giroskop) 5 dollar
  • Prototip taxtasi - 10 dollar
  • Erkak va Ayol sarlavhalari $ 5

Boshqa

  • Lehim to'plami $ 10
  • Multimetr $ 20

Men bu loyihani muhandis sifatida qurishni yoqtirmoqchi edim, shuning uchun men kerak bo'lmagan boshqa narsalarni sotib oldim.

Hammasi: $ 208

1 -qadam: Mening birinchi tajribam

Barcha komponentlarimni sotib olgandan so'ng, men hammasini bir joyga to'pladim, keyin Multiwii -ni ishlatib, dronni ishga tushirishga harakat qildim (ko'pchilik DIY dron hamjamiyati foydalanadigan dasturiy ta'minotga o'ting), lekin men o'zim tushunmagan narsani tezda angladim. xatolar ko'p bo'lgani uchun qilgandim va ularni qanday tuzatishni bilmasdim.

Shundan so'ng, men dronni ajratib, har bir komponentni bo'lak -bo'lak qilib tushunishga qaror qildim va nima bo'layotganini to'liq tushuna oladigan qilib qayta qurdim.

Keyingi bo'limlarda men jumboqni birlashtirish jarayonidan o'taman. Undan oldin keling, qisqacha sharh olaylik.

Jismoniy

Jismoniy uchun bizda quyidagilar bo'lishi kerak: ramka, pervanellar, batareya va escs. Bularni birlashtirish juda oson bo'lardi. Bu qismlar va qaysi qismlarni olish kerakligini tushunish uchun siz ushbu havolaga kirishingiz mumkin. U men sanab o'tgan har bir qismni sotib olish haqida bilishingiz kerak bo'lgan narsalarni tushuntiradi. Youtube -dagi ushbu videoni ham ko'ring. Agar siz qismlarni bir -biriga bog'lab qo'ysangiz, bu sizga yordam beradi.

2 -qadam: Jismoniy qismlarni birlashtirish va tuzatish bo'yicha maslahatlar

Jismoniy qismlarni birlashtirish va tuzatish bo'yicha maslahatlar
Jismoniy qismlarni birlashtirish va tuzatish bo'yicha maslahatlar

Pervanellar va motorlar

  • Pervanellaringiz to'g'ri yo'nalishda (burilganmi yoki yo'qmi) tekshirish uchun, siz ularni dvigatellar ko'rsatgan yo'nalishda aylantirganingizda (ko'pchilik dvigatellarda qanday aylanishi kerakligini ko'rsatadigan o'qlar bor), siz pervanellar ostida shamol esishingiz kerak..
  • Qarama -qarshi pervanellarning vintlari bir xil rangda bo'lishi kerak.
  • Qo'shni pervanellarning rangi bir xil bo'lishi kerak.
  • Shuningdek, siz motorlarni xuddi yuqoridagi rasmda aylanadigandek joylashtirganingizga ishonch hosil qiling.
  • Agar siz dvigatelning yo'nalishini o'zgartirmoqchi bo'lsangiz, simlarni qarama -qarshi uchiga almashtiring. Bu dvigatelning yo'nalishini o'zgartiradi.

Batareya va quvvat

  • Agar biron sababga ko'ra narsalar uchqun bo'lsa va buning sababini aniqlay olmasangiz, ehtimol sizda ijobiy va salbiy narsalar almashgan.
  • Agar siz batareyalarni qachon zaryad qilishingizga ishonchingiz komil bo'lmasa, voltmetr yordamida kuchlanishni tekshirishingiz mumkin. Agar u batareyaning xususiyatlaridan past bo'lsa, uni zaryad qilish kerak. Batareyalarni zaryad qilish uchun ushbu havolani ko'ring.
  • Aksariyat LIPO batareyalari zaryadlovchi bilan birga kelmaydi. Siz ularni alohida sotib olasiz.

3 -qadam: Arduino boshqaruvchisi

Arduino boshqaruvchisi
Arduino boshqaruvchisi

Bu, shubhasiz, butun loyihaning eng qiyin qismi. Agar siz nima qilayotganingizni bilmasangiz, komponentlarni portlatish juda oson va disk raskadrovka juda asabiylashishi mumkin. Shuningdek, ushbu loyihada men dronimni bluetooth yordamida boshqarganman va sizga qanday qurishni ko'rsataman. Bu loyihani ayniqsa qiyinlashtirdi, chunki u erda 99% darsliklar radio boshqaruvchilardan foydalanadi (bu haqiqat emas), lekin xavotir olmang, men siz uchun umidsizlikni boshdan kechirdim.

Ushbu sayohatni boshlashdan oldin maslahatlar

  • Qurilmangizni PCB -ga joylashtirishdan oldin, non panelidan foydalaning. Bu osonlikcha o'zgartirishlar kiritish imkonini beradi.
  • Agar siz komponentni sinab ko'rsangiz va u ishlamasa, ehtimol u ishlamayapti!
  • Elektr tarmog'iga ulashdan oldin, qurilma qanday kuchlanishga ega ekanligini ko'rib chiqing.

    • Arduino 6 dan 20 V gacha ishlaydi, lekin uni portlatib yubormaslik uchun uni 12 V ga qo'yishga harakat qiling. Bu erda uning xususiyatlari haqida ko'proq o'qishingiz mumkin.
    • HC-05 5V gacha ishlaydi, lekin ba'zi pinlar 3.3V da ishlaydi, shuning uchun ehtiyot bo'ling. Bu haqda keyinroq gaplashamiz.
    • O'IH (GY-521, MPU-6050) ham 5V da ishlaydi.
  • Biz ilovamizni yaratish uchun RemoteXY -dan foydalanamiz. Agar siz uni iOS qurilmasida qurmoqchi bo'lsangiz, boshqa bluetooth modulidan foydalanishingiz kerak (HM-10). Bu haqda ko'proq ma'lumotni RemoteXY veb -saytidan olishingiz mumkin.

Umid qilamanki, siz maslahatlarni o'qidingiz. Keling, tekshirgich tarkibiga kiradigan har bir komponentni alohida sinovdan o'tkazaylik.

4-qadam: MPU-6050

MPU-6050
MPU-6050

Bu qurilma giroskop va akselerometrga ega, shuning uchun u sizga tezlik (X, Y, Z) va shu yo'nalishdagi burchak tezlanishini ko'rsatadi.

Buni sinab ko'rish uchun biz ushbu qo'llanmani Arduino veb -saytida ishlatishimiz mumkin. Agar u ishlayotgan bo'lsa, siz egilayotganda, aylantirishda va sozlashni tezlashtirishda o'zgaradigan akselerometr va giroskop qiymatlari oqimini olishingiz kerak. Bundan tashqari, nima bo'layotganini bilish uchun kodni o'zgartirishga va o'zgartirishga harakat qiling.

5-qadam: HC-05 Bluetooth moduli

HC-05 Bluetooth moduli
HC-05 Bluetooth moduli
HC-05 Bluetooth moduli
HC-05 Bluetooth moduli
HC-05 Bluetooth moduli
HC-05 Bluetooth moduli

Siz bu qismni bajarishingiz shart emas, lekin AT rejimiga o'tish imkoniyatiga ega bo'lish juda muhimdir, chunki siz modul parametrlaridan birini o'zgartirishingiz kerak bo'ladi. Bu loyihaning eng achinarli qismlaridan biri edi. Men modulni AT rejimiga qanday o'tkazishni aniqlash uchun juda ko'p izlanishlar olib bordim, chunki mening qurilmam buyruqlarimga javob bermadi. Moduli buzilgan degan xulosaga kelishim uchun 2 kun kerak bo'ldi. Men boshqasiga buyurtma berdim va u ishladi. AT rejimiga o'tish bo'yicha qo'llanmani ko'rib chiqing.

HC-05 har xil ko'rinishda bo'ladi, ba'zilari tugmachali, ba'zilari esa dizayn o'zgaruvchilarining har xil turlari. O'zgarmas narsa shundaki, ularning barchasida "34 -pin" bor. Ushbu qo'llanmani ko'rib chiqing.

Siz bilishingiz kerak bo'lgan narsalar

  • AT rejimiga o'tish uchun, quvvatni ulashdan oldin, bluetooth modulining 34 -pinli 5V ni ushlab turing.
  • Modulning RX piniga potentsial ajratgichni ulang, chunki u 3,3V da ishlaydi. Siz uni 5V da ishlatishingiz mumkin, lekin agar biror narsa noto'g'ri ketsa, bu pinni qovurishi mumkin.
  • Agar siz 34 -pindan foydalansangiz (tugma o'rniga yoki Internetda topilgan boshqa usulda), modul bluetooth -ning uzatish tezligini 38400 ga o'rnatadi. Shuning uchun yuqoridagi qo'llanma havolasida kodda shunday satr bor:

BTSerial.begin (38400); // AT buyrug'idagi HC-05 standart tezligi

Agar modul hali ham "OK" bilan javob bermasa, tx va rx pinlarini almashtirishga harakat qiling. Bu shunday bo'lishi kerak:

Bluetooth => Arduino

RXD => TX1

TDX => RX0

Agar bu hali ham ishlamasa, koddagi pinlarni boshqa Arduino pinlariga o'zgartiring. Sinab ko'ring, agar u ishlamasa, tx va rx pinlarini almashtiring, keyin yana sinab ko'ring

SoftwareSerial BTSerial (10, 11); // RX | TX

Yuqoridagi qatorni o'zgartiring. Siz RX = 2, TX = 3 yoki boshqa amaldagi kombinatsiyalarni sinab ko'rishingiz mumkin. Siz yuqoridagi rasmda Arduino pin raqamlarini ko'rishingiz mumkin.

6 -qadam: qismlarni ulash

Qismlarni ulash
Qismlarni ulash

Hamma narsa ishlayotganiga amin bo'lganimizdan so'ng, ularni birlashtirishni boshlash vaqti keldi. Siz qismlarni sxemada ko'rsatilgandek ulashingiz mumkin. Men buni Electronoobs -dan oldim. U menga bu loyihada haqiqatan ham yordam berdi. Uning loyiha versiyasini bu erda ko'ring. Agar siz ushbu qo'llanmani kuzatayotgan bo'lsangiz, siz qabul qiluvchining ulanishlari haqida xavotirlanmasligingiz kerak: input_Yaw, input_Pitch va boshqalar. Bularning hammasi bluetooth bilan ishlaydi. Bundan tashqari, bluetooth -ni oldingi bo'limda bo'lgani kabi ulang. Mening tx va rx pinlarim menga biroz muammo tug'dirdi, shuning uchun men Arduino -dan foydalandim:

Oddiy pinlar o'rniga RX 2, TX esa 3 ga teng. Keyinchalik, biz oddiy mahsulotni yozamiz, biz uni yakuniy mahsulotga ega bo'lguncha yaxshilashda davom etamiz.

7 -qadam: RemoteXY go'zalligi

RemoteXY go'zalligi
RemoteXY go'zalligi

Uzoq vaqt davomida men dronni boshqarishga imkon beradigan masofadan boshqarish dasturini yaratishning oson yo'lini o'ylardim. Ko'pchilik MIT App Inventor -dan foydalanadi, lekin foydalanuvchi interfeysi men xohlagan darajada chiroyli emas va men tasviriy dasturlash muxlisi emasman. Men uni Android Studio yordamida ishlab chiqishim mumkin edi, lekin bu juda ko'p ish bo'lardi. RemoteXY yordamida qo'llanma topganimdan juda xursand bo'ldim. Bu erda veb -saytga havola. Foydalanish juda oson va hujjatlar juda yaxshi. Biz dronimiz uchun oddiy foydalanuvchi interfeysini yaratamiz. Siz o'zingiz xohlagan tarzda sozlashingiz mumkin. Faqat nima qilayotganingizni bilishingizga ishonch hosil qiling. Bu yerdagi ko'rsatmalarga amal qiling.

Siz buni qilganingizdan so'ng, biz kodni tahrir qilamiz, shunda biz kopterimizdagi gazni o'zgartiramiz. Kodingizga / **** qilish kerak bo'lgan va nima uchun *** / bo'lgan satrlarni qo'shing.

Agar u kompilyatsiya qilinmasa, kutubxonani yuklab olganingizga ishonch hosil qiling. Shuningdek, namunaviy eskizni oching va sizniki bo'lmagan narsalarni solishtiring.

///////////////////////////////////////////////////////////// RemoteXY o'z ichiga oladi. kutubxona //

// RemoteXY ulanish rejimini tanlang va kutubxonani o'z ichiga oladi

#REMOTEXY_MODE_HC05_SOFTSERIAL ni aniqlang

#qo'shish #qo'shish #qo'shish

// RemoteXY ulanish sozlamalari

#REMOTEXY_SERIAL_RX 2 ni belgilang #REMOTEXY_SERIAL_TX 3ni aniqlang #REMOTEXY_SERIAL_HIZMAT 9600

// Pervanellar

Servo L_F_prop; Xizmat ko'rsatish L_B_prop; Servo R_F_prop; Servo R_B_prop;

// RemoteXY sozlang

#pragma to'plami (push, 1) uint8_t RemoteXY_CONF = {255, 3, 0, 0, 0, 61, 0, 8, 13, 0, 5, 0, 49, 15, 43, 43, 2, 26, 31, 4, 0, 12, 11, 8, 47, 2, 26, 129, 0, 11, 8, 11, 3, 17, 84, 104, 114, 111, 116, 116, 108, 101, 0, 129, 0, 66, 10, 7, 3, 17, 80, 105, 116, 99, 104, 0, 129, 0, 41, 34, 6, 3, 17, 82, 111, 108, 108, 0}; // bu tuzilma boshqaruv interfeysi tuzilmangizning barcha o'zgaruvchilarini belgilaydi {

// kirish o'zgaruvchisi

int8_t Joystick_x; // -100..100 x koordinatali joystik pozitsiyasi int8_t Joystick_y; // -100..100 y -koordinatali joystik joyi int8_t ThrottleSlider; // 0..100 slayder holati

// boshqa o'zgaruvchi

uint8_t connect_flag; // = 1 sim ulangan bo'lsa, boshqa = 0

} RemoteXY;

#pragma to'plami (pop)

/////////////////////////////////////////////

// END RemoteXY o'z ichiga oladi // //////////////////////////////////////////////////////////////////////////////////////////////////// /

/********** Gaz qiymatini ushlab turish uchun bu qatorni qo'shing **************/

int kirish_THROTTLE;

bo'sh o'rnatish () {

RemoteXY_Init ();

/********** Dvigatellarni pinlarga ulang. O'zingizga mos keladigan qiymatlarni o'zgartiring **************/

L_F_prop.attach (4); // chap old dvigatel

L_B_prop.attach (5); // chap orqa dvigatel R_F_prop.attach (7); // o'ng old dvigatel R_B_prop.attach (6); // o'ng orqa dvigatel

/************* Esc dasturlash rejimiga kirishini oldini olish ********************/

L_F_prop.writeMicroseconds (1000); L_B_prop.writeMicroseconds (1000); R_F_prop.writeMicroseconds (1000); R_B_prop.writeMicroseconds (1000); kechikish (1000);

}

void loop () {

RemoteXY_Handler ();

/****** Ilovadan keladigan gaz kelebeği qiymatini 1000 va 2000 gacha xaritaga qo'ying, bu ESClarning ko'pchiligi ********* da ishlaydi.

input_THROTTLE = xarita (RemoteXY. ThrottleSlider, 0, 100, 1000, 2000);

L_F_prop.writeMicroseconds (input_THROTTLE);

L_B_prop.writeMicroseconds (input_THROTTLE); R_F_prop.writeMicroseconds (input_THROTTLE); R_B_prop.writeMicroseconds (input_THROTTLE); }

8 -qadam: sinov

Agar siz hamma narsani to'g'ri bajargan bo'lsangiz, gaz kelebeğini yuqoriga va pastga siljitish orqali kopteringizni sinab ko'rishingiz kerak. Buni tashqarida qilishingizga ishonch hosil qiling. Shuningdek, pervanellarni ushlab turmang, chunki bu kopterning sakrashiga olib keladi. Biz kodni muvozanatlash uchun hali yozmaganmiz, shuning uchun buni PROVELLER bilan birga sinab ko'rish yomon bo'lardi! Men buni faqat lmao tufayli qildim.

Namoyish shunchaki, biz gazni ilovadan boshqarishimiz kerakligini ko'rsatish uchun. Dvigatellar qoqayotganini sezasiz. Buning sababi, ESClar sozlanmagan. Buni amalga oshirish uchun ushbu Github sahifasidagi ko'rsatmalarni ko'rib chiqing. Ko'rsatmalarni o'qing, ESC-Calibration.ino faylini oching va ko'rsatmalarga amal qiling. Agar siz nima bo'layotganini tushunmoqchi bo'lsangiz, Electronoobs -ning ushbu qo'llanmasini ko'rib chiqing.

Siz dasturni ishga tushirayotganda dronni simlar bilan bog'lab qo'yganingizga ishonch hosil qiling, chunki u to'liq gazga aylanadi. Shuningdek, pervanellar yoqilmaganligiga ishonch hosil qiling. Men o'zimni qoldirdim, chunki men aqldan ozganman. PROVELERLARINGIZNI QO'LLAShMANG !!! Bu namoyish ikkinchi videoda ko'rsatilgan.

9 -qadam: Men kod ustida ishlayapman. Bir necha kun ichida ko'rsatmalarni tugatadi

Shuni qo'shib qo'ymoqchi edimki, agar siz bu darslikdan foydalanayotgan bo'lsangiz va meni kutayotgan bo'lsangiz, men hali ham shu ustida ishlayapman. Hayotimda boshqa narsalar paydo bo'ldi, men ham ishlayapman, lekin xavotir olmang, men uni yaqinda joylashtiraman. Aytaylik, 2019 yil 10 -avgustgacha.

10 avgust yangilanishi: sizni osilgan holda qoldirishni xohlamadim. Afsuski, o'tgan haftada loyihada ishlashga vaqtim bo'lmadi. Boshqa ishlar bilan juda band bo'lganman. Men sizni etaklamoqchi emasman. Umid qilamanki, men yaqin kelajakda ko'rsatmalarni tugataman. Agar sizda biron bir savol bo'lsa yoki yordamga muhtoj bo'lsangiz, quyida izoh qo'shishingiz mumkin va men sizga javob qaytaraman.

Tavsiya: