Sisukord:

Juhend, mida soovisin Arduino drooni ehitamisel: 9 sammu
Juhend, mida soovisin Arduino drooni ehitamisel: 9 sammu

Video: Juhend, mida soovisin Arduino drooni ehitamisel: 9 sammu

Video: Juhend, mida soovisin Arduino drooni ehitamisel: 9 sammu
Video: How to make a Helicopter, 如何制作一架直升飞机, Cómo hacer un helicóptero, ヘリコプターの作り方, como fazer um helicopte 2024, November
Anonim
Juhend, mida soovisin Arduino drooni ehitamisel
Juhend, mida soovisin Arduino drooni ehitamisel

See dokument on omamoodi kaldkriipsude dokument „Kuidas juhendada”, mis läbib protsessi, mille jooksul mul oli vaja mõista mõisteid, et saavutada oma eesmärk luua lihtne nelikopter, mida saaksin oma mobiiltelefonilt juhtida.

Selle projekti tegemiseks tahtsin saada aimu, mis droon tegelikult on, minu puhul quadcopter, nii et hakkasin natuke uurima. Vaatasin palju YouTube'i videoid, lugesin hulga artikleid ja Insructible lehti ning see on see, mida ma sain.

Põhimõtteliselt saate drooni jagada kaheks osaks. Ma nimetasin seda “füüsiliseks” ja “kontrolleriks”. Füüsiline on sisuliselt kõik, mis on seotud mehaanikaga, mis paneb drooni lendama. Need on sellised asjad nagu mootor, raam, aku, propellerid ja kõik muu, mis füüsiliselt droonile lennuvõime annab.

Lennujuht on sisuliselt lennujuht. Mis kontrollib füüsilist, et droon saaks lennata terve üksusena ilma kukkumiseta. Põhimõtteliselt on mikrokontroller, sellel olev tarkvara ja andurid, mis aitavad tal laagreid kolmnurga all asetada. Nii et drooni omamiseks vajasin ma kontrollerit ja hulga füüsilisi osi, et kontroller saaks seda juhtida.

Tarvikud

Projekti eelarve: 250 dollarit

Ajavahemik: 2 nädalat

Asjad, mida osta:

  • Füüsiline raam 20 dollarit
  • Terad 0 dollarit (raamiga kaasas)
  • Aku 25 dollarit
  • ESC (elektroonilised kiiruse regulaatorid) $ 0 (mootoritega kaasas)
  • Mootorid 70 dollarit

Lennujuht

  • Arduino nano 20 dollarit
  • Arduino USB -kaabel 2 dollarit
  • Bluetooth-moodul (HC-05) 8 dollarit
  • 3 mm LED ja 330 oomi takistid ja juhtmed 13 dollarit
  • GY-87 (kiirendusmõõtur, güroskoop) 5 dollarit
  • Prototüüplaud 10 dollarit
  • Meeste ja naiste päised 5 dollarit

Muu

  • Jootekomplekt 10 dollarit
  • Multimeeter 20 dollarit

Tahtsin insenerina selle projekti ehitamist nautida, nii et ostsin muid asju, mida ma ei pidanud.

Kokku: 208 dollarit

Samm: minu esialgne kogemus

Pärast kõigi oma komponentide ostmist panin selle kõik kokku ja proovisin seejärel drooni käivitada, kasutades Multiwii -d (tarkvara, mida paljud isetehtud droonikogukonnad kasutavad), kuid mõistsin kiiresti, et ma ei saanud täielikult aru, mida tegi, sest vigu oli palju ja mul polnud aimugi, kuidas neid parandada.

Pärast seda otsustasin drooni lahti võtta ja igast komponendist tükkhaaval aru saada ning selle uuesti üles ehitada nii, et saaksin kõigest toimuvast täielikult aru.

Järgmistes osades vaatan pusle kokku panemise protsessi. Enne seda teeme kiire ülevaate.

Füüsiline

Füüsilise jaoks peaks meil olema: raam, propellerid, aku ja esc. Neid oleks üsna lihtne kokku panna. Nende osade ja sellest, mida peaksite hankima, mõistmiseks külastage seda linki. Ta selgitab, mida peate teadma kõigi minu loetletud osade ostmise kohta. Vaata ka seda Youtube'i videot. See aitab teid, kui olete osade kokku panemisel kinni jäänud.

2. samm: näpunäiteid füüsiliste osade kokkupanemiseks ja silumiseks

Näpunäiteid füüsiliste osade kinnitamiseks ja silumiseks
Näpunäiteid füüsiliste osade kinnitamiseks ja silumiseks

Propellerid ja mootorid

  • Et kontrollida, kas teie propellerid on õiges asendis (pööratud või mitte), kui pöörate neid mootorite näidatud suunas (enamikul mootoritel on nooled, mis näitavad, kuidas need pöörlema peaksid), peaksite tundma imelihtsat sõukruvi all ja mitte üleval.
  • Vastassuunaliste sõukruvide kruvid peaksid olema sama värvi.
  • Külgnevate sõukruvide värv peaks olema sama.
  • Veenduge ka, et olete mootorid paigutanud nii, et need pöörlevad täpselt nagu ülaltoodud pildil.
  • Kui proovite mootori suunda pöörata, vahetage lihtsalt juhtmed vastassuunas. See muudab mootori suuna vastupidiseks.

Aku ja toide

  • Kui asjad mingil põhjusel sädelevad ja te ei saa aru, miks, siis tõenäoliselt sellepärast, et teil on positiivsed ja negatiivsed asjad vahetatud.
  • Kui te pole kindel, millal akusid laadida, võite pinge kontrollimiseks kasutada voltmeetrit. Kui see on madalam kui aku spetsifikatsioonid ütlevad, tuleb see laadida. Vaadake seda akude laadimise linki.
  • Enamik LIPO akusid ei ole akulaadijatega kaasas. Ostate need eraldi.

Samm: Arduino kontroller

Arduino kontroller
Arduino kontroller

See on kahtlemata kogu selle projekti kõige keerulisem osa. Komponente on väga lihtne õhku lasta ja silumine võib olla äärmiselt masendav, kui te ei tea, mida teete. Ka selles projektis juhtisin oma drooni bluetoothi ja rakenduse abil, mida ma teile näitan, kuidas ehitada. See muutis projekti eriti keeruliseks, sest 99% sealsetest õpetustest kasutavad raadiokontrollereid (see pole tõsiasi), kuid ärge muretsege, ma olen teie pärast pettumuse läbi teinud.

Näpunäiteid enne selle teekonna alustamist

  • Enne seadme trükkplaadile viimistlemist kasutage leivaplaati. See võimaldab teil hõlpsalt muudatusi teha.
  • Kui olete mõnda komponenti põhjalikult testinud ja see ei tööta, siis tõenäoliselt see ei tööta!
  • Enne seadme ühendamist vaadake pingeid, mida seade talub!

    • Arduino saab hakkama 6 kuni 20 V pingega, kuid proovige seda 12 V piirata, et mitte õhku lasta. Selle spetsifikatsioonide kohta saate rohkem lugeda siit.
    • HC-05 saab hakkama kuni 5 V pingega, kuid mõned tihvtid töötavad 3,3 V pingel, nii et olge sellega ettevaatlik. Me räägime sellest hiljem.
    • IMU (GY-521, MPU-6050) töötab ka 5 V pingel.
  • Kasutame oma rakenduse loomiseks RemoteXY -d. Kui soovite selle üles ehitada iOS-i seadmele, peate kasutama teist bluetooth-moodulit (The HM-10). Selle kohta saate lisateavet RemoteXY veebisaidilt.

Loodetavasti olete näpunäiteid lugenud. Nüüd testime iga komponenti, mis saab kontrolleri osaks eraldi.

Samm: MPU-6050

MPU-6050
MPU-6050

Sellel seadmel on güroskoop ja kiirendusmõõtur, seega sisuliselt näitab see kiirendust suunas (X, Y, Z) ja nurkkiirendust nendes suundades.

Selle testimiseks saame kasutada selle õpetust, saame seda õpetust kasutada Arduino veebisaidil. Kui see töötab, peaksite saama kiirendusmõõturi ja güroskoobi väärtuste voo, mis muutuvad seadistuse kallutamisel, pööramisel ja kiirendamisel. Samuti proovige koodi näpistada ja manipuleerida, et saaksite teada, mis toimub.

Samm: HC-05 Bluetooth-moodul

HC-05 Bluetooth-moodul
HC-05 Bluetooth-moodul
HC-05 Bluetooth-moodul
HC-05 Bluetooth-moodul
HC-05 Bluetooth-moodul
HC-05 Bluetooth-moodul

Te ei pea seda osa tegema, kuid on oluline, et saaksite minna AT -režiimi (seadistusrežiim), kuna peate suure tõenäosusega muutma ühte mooduli sätetest. See oli selle projekti üks masendavamaid osi. Uurisin nii palju, et välja selgitada, kuidas oma moodul AT -režiimi viia, sest minu seade ei reageerinud minu käskudele. Mul kulus 2 päeva, et jõuda järeldusele, et mu moodul on katki. Tellisin teise ja see töötas. Vaadake seda õpetust AT -režiimi sisenemiseks.

HC-05 on erinevat tüüpi, mõned on nuppudega ja mõned ilma ja kõikvõimalikud disainimuutujad. Üks, mis on siiski konstantne, on see, et neil kõigil on "Pin 34". Vaadake seda õpetust.

Asjad, mida peaksite teadma

  • AT -režiimi minemiseks hoidke enne toite ühendamist Bluetooth -mooduli 5 -pin kuni 34 -nda kontakti all.
  • Ühendage potentsiaalne jagaja mooduli RX -tihvtiga, kuna see töötab 3,3 V toitel. Saate seda endiselt kasutada 5 V juures, kuid see võib praadida, kui midagi läheb valesti.
  • Kui kasutate tihvti 34 (nupu asemel või muul viisil, mille Internetist leidsite), määrab moodul bluetoothi kiiruseks 38400. Sellepärast on ülaltoodud õpetuse lingil koodis rida, mis ütleb:

BTSerial.begin (38400); // HC-05 vaikekiirus AT-käsus rohkem

Kui moodul ei vasta endiselt nupule "OK", proovige tx ja rx kontakte vahetada. See peaks olema:

Bluetooth => Arduino

RXD => TX1

TDX => RX0

Kui see ikka ei tööta, muutke koodis olevad tihvtid teiste Arduino tihvtide vastu. Testige, kui see ei tööta, vahetage tx- ja rx -tihvtid välja, siis proovige uuesti

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

Muutke ülaltoodud rida. Võite proovida RX = 2, TX = 3 või mõnda muud kehtivat kombinatsiooni. Arduino tihvtide numbreid saate vaadata ülaltoodud pildil.

6. samm: osade ühendamine

Osade ühendamine
Osade ühendamine

Nüüd, kui oleme kindlad, et kõik toimib, on aeg hakata neid kokku panema. Saate ühendada osad täpselt nagu skeemil näidatud. Sain selle Electronoobsilt. Ta aitas mind tõesti selle projektiga. Tutvu tema versiooniga projektist siit. Kui järgite seda õpetust, ei pea te muretsema vastuvõtjaühenduste pärast: input_Yaw, input_Pitch jne. Kõik, mida hakatakse kasutama Bluetoothiga. Samuti ühendage bluetooth nii, nagu me tegime eelmises jaotises. Minu tx- ja rx -tihvtid tekitasid mulle natuke probleeme, nii et kasutasin Arduino oma:

RX kui 2 ja TX kui 3, tavaliste tihvtide asemel. Järgmisena kirjutame lihtsa rakenduse, mida täiustame, kuni saame lõpptoote.

7. samm: RemoteXY ilu

RemoteXY ilu
RemoteXY ilu

Pikemat aega mõtlesin lihtsale võimalusele luua kasutatav kaugrakendus, mis laseks mul drooni juhtida. Enamik inimesi kasutab MIT App Inventori, kuid kasutajaliides ei ole nii ilus kui tahaksin ja ma pole ka pildiprogrammeerimise fänn. Oleksin võinud selle Android Studio abil kujundada, kuid see oleks lihtsalt liiga palju tööd. Olin äärmiselt põnevil, kui leidsin RemoteXY -d kasutava õpetuse. Siin on link veebisaidile. Seda on äärmiselt lihtne kasutada ja dokumentatsioon on väga hea. Loome oma droonile lihtsa kasutajaliidese. Saate kohandada oma oma äranägemise järgi. Lihtsalt veenduge, et teate, mida teete. Järgige siin toodud juhiseid.

Kui olete seda teinud, muudame koodi nii, et saame oma helikopteril gaasi muuta. Lisage oma koodile read, millel on / **** asjad, mida peaksite tegema ja miks *** /.

Kui see ei kompileeri, veenduge, et kogu oleks alla laaditud. Avage ka näidisvisand ja võrrelge, mis sellel on, mida teil pole.

////////////////////////////////////////////////////////////////////////- raamatukogu // ///////////////////////////////////////////////////////////

// RemoteXY valige ühendusrežiim ja kaasake teek

#define REMOTEXY_MODE_HC05_SOFTSERIAL

#kaasama #kaasama #kaasama

// RemoteXY ühenduse seaded

#define REMOTEXY_SERIAL_RX 2 #define REMOTEXY_SERIAL_TX 3 #define REMOTEXY_SERIAL_SPEED 9600

// Propellerid

Servo L_F_prop; Servo L_B_prop; Servo R_F_prop; Servo R_B_prop;

// RemoteXY konfigureerimine

#pragma pack (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}; // see struktuur määratleb kõik teie juhtimisliidese struktuuri muutujad {

// sisendmuutuja

int8_t juhtnupp_x; // -100..100 x -koordinaadi juhtkangi asend int8_t Joystick_y; // -100..100 y -koordinaadi juhtkangi asend int8_t ThrottleSlider; // 0..100 liuguri asend

// muu muutuja

uint8_t connect_flag; // = 1, kui traat on ühendatud, muidu = 0

} RemoteXY;

#pragma pack (pop)

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

// END RemoteXY sisaldab // ////////////////////////////////////////////////////////// /

/********** Lisa see rida gaasihoova väärtuse hoidmiseks **************/

int input_THROTTLE;

tühine seadistus () {

RemoteXY_Init ();

/********** Kinnitage mootorid tihvtide külge Muutke väärtusi omale sobivaks **************/

L_F_prop.attach (4); // vasak eesmine mootor

L_B_prop.attach (5); // vasaku tagamootor R_F_prop.attach (7); // parem eesmine mootor R_B_prop.attach (6); // parempoolne mootor

/************* Vältige esc programmeerimisrežiimi sisenemist ********************/

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

}

void loop () {

RemoteXY_Handler ();

/****** Kaardistage rakendusest saadav gaasipedaali väärtus väärtustele 1000 ja 2000, mis on väärtused, mida enamik ESC -sid kasutavad *********/

input_THROTTLE = kaart (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. etapp: testimine

Kui olete kõik õigesti teinud, peaksite saama oma helikopterit testida, lükates gaasi üles ja alla. Tehke seda kindlasti väljas. Samuti ärge hoidke sõukruvisid sees, sest see põhjustab helikopteri hüppe. Me ei ole veel koodi selle tasakaalustamiseks kirjutanud, seega oleks halb idee seda katsetada koos propelleritega! Ma tegin seda ainult sellepärast.

Demonstratsioon on lihtsalt selleks, et näidata, et peaksime suutma rakendusest gaasi reguleerida. Te märkate, et mootorid kogelevad. Seda seetõttu, et ESC -sid pole kalibreeritud. Selleks vaadake sellel Githubi lehel olevaid juhiseid. Lugege juhiseid, avage fail ESC-Calibration.ino ja järgige neid juhiseid. Kui soovite aru saada, mis toimub, vaadake seda Electronoobsi õpetust.

Programmi töötamise ajal veenduge, et seoksite drooni nööridega kinni, kuna see läheb täisgaasiga. Veenduge ka, et propellerid pole sisse lülitatud. Mina jätsin oma ainult sisse, sest olen pooleldi hull. ÄRGE JÄTKE OMA TÜNNIKUID !!! Seda demonstratsiooni näidatakse teises videos.

9. samm: töötan koodeksi kallal. Lõpetab juhendatava mõne päevaga

Tahtsin lihtsalt lisada, et kui kasutate seda õpetust ja ootate mind, töötan selle kallal. Lihtsalt mu elus on tulnud ette muid asju, millega ma samuti tegelen, kuid ärge muretsege, ma postitan selle peagi. Oletame, et hiljemalt 10. augustiks 2019.

10. augusti värskendus: ei tahtnud sind rippuma jätta. Kahjuks pole mul viimase nädala jooksul olnud aega projektiga tegeleda. Olid muude asjadega väga hõivatud. Ma ei taha sind edasi juhatada. Loodetavasti täidan juhendatava lähitulevikus. Kui teil on küsimusi või vajate abi, võite lisada allpool kommentaari ja ma võtan teiega ühendust.

Soovitan: