Sisällysluettelo:

Opas, jonka toivoisin Arduino -dronin rakentamiseen: 9 vaihetta
Opas, jonka toivoisin Arduino -dronin rakentamiseen: 9 vaihetta

Video: Opas, jonka toivoisin Arduino -dronin rakentamiseen: 9 vaihetta

Video: Opas, jonka toivoisin Arduino -dronin rakentamiseen: 9 vaihetta
Video: High Density 2022 2024, Heinäkuu
Anonim
Opas, jonka toivoisin, että olisin rakentanut Arduino -dronin
Opas, jonka toivoisin, että olisin rakentanut Arduino -dronin

Tämä asiakirja on eräänlainen”Ohje” -viivakirja, joka käy läpi prosessin, joka kesti minun ymmärtää käsitteet saavuttaakseni tavoitteeni rakentaa yksinkertainen nelikopteri, jota voisin hallita matkapuhelimellani.

Tätä projektia varten halusin saada käsityksen siitä, mikä drone todellisuudessa on, minun tapauksessani nelikopteri, joten aloin tehdä tutkimusta. Katsoin paljon YouTube -videoita, luin joukon artikkeleita ja Insructible -sivuja, ja tämän sain.

Pohjimmiltaan voit jakaa droonin kahteen osaan. Kutsuin sitä "fyysiseksi" ja "ohjaajaksi". Fyysinen on pohjimmiltaan kaikki, mikä liittyy dronin lentämiseen liittyvään mekaniikkaan. Nämä ovat asioita, kuten moottori, runko, akku, potkurit ja kaikki muut asiat, jotka antavat droneille fyysisesti mahdollisuuden lentää.

Lennonjohtaja on lähinnä lennonjohtaja. Mikä hallitsee fyysistä niin, että drone voi lentää kokonaisena ilman putoamista. Pohjimmiltaan mikro -ohjain, sen ohjelmisto ja anturit, jotka auttavat sitä kolmiomittaamaan sen laakerit. Joten kaiken kaikkiaan saadakseni dronin tarvitsin ohjaimen ja joukon fyysisiä osia, jotta ohjain "hallitsisi".

Tarvikkeet

Hankkeen budjetti: 250 dollaria

Aikataulu: 2 viikkoa

Asioita ostettavaksi:

  • Fyysinen kehys 20 dollaria
  • Terät $ 0 (tulee kehyksen mukana)
  • Akku 25 dollaria
  • ESC (elektroniset nopeudensäätimet) $ 0 (tulee moottoreiden mukana)
  • Moottorit 70 dollaria

Lennonohjain

  • Arduino nano 20 dollaria
  • Arduino USB -kaapeli 2 dollaria
  • Bluetooth-moduuli (HC-05) 8 dollaria
  • 3 mm: n LED- ja 330 ohmin vastukset ja johdot 13 dollaria
  • GY-87 (kiihtyvyysmittari, gyroskooppi) 5 dollaria
  • Prototyyppilauta 10 dollaria
  • Uros- ja naarasotsikot 5 dollaria

Muut

  • Juotosarja 10 dollaria
  • Yleismittari 20 dollaria

Halusin nauttia tämän projektin rakentamisesta insinöörinä, joten ostin muita tavaroita, joita minun ei tarvinnut.

Yhteensä: 208 dollaria

Vaihe 1: Ensimmäinen kokemukseni

Kun olin ostanut kaikki komponentit, laitoin kaikki yhteen ja yritin sitten käynnistää dronin Multiwii -ohjelmalla (siirry ohjelmistoon, jota monet DIY -drone -yhteisöt käyttävät), mutta tajusin nopeasti, etten ymmärtänyt täysin mitä tein, koska virheitä oli paljon ja minulla ei ollut aavistustakaan kuinka korjata ne.

Sen jälkeen päätin purkaa dronin erilleen ja ymmärtää jokaisen komponentin pala kerrallaan ja rakentaa sen uudelleen siten, että ymmärrän täysin kaiken, mitä tapahtuu.

Seuraavissa osissa käyn läpi palapelin kokoamisen. Ennen sitä teemme nopean yleiskatsauksen.

Fyysinen

Fyysisesti meillä pitäisi olla: runko, potkurit, akku ja esc. Nämä olisi melko helppo koota yhteen. Jos haluat ymmärtää nämä osat ja mitä sinun pitäisi hankkia, käy tästä linkistä. Hän selittää, mitä sinun tarvitsee tietää kunkin luettelon osien ostamisesta. Katso myös tämä Youtube -video. Se auttaa sinua, jos olet jumissa osien liittämisessä yhteen.

Vaihe 2: Vinkkejä fyysisten osien liittämiseen ja virheenkorjaukseen

Vinkkejä fyysisten osien liittämiseen ja virheenkorjaukseen
Vinkkejä fyysisten osien liittämiseen ja virheenkorjaukseen

Potkurit ja moottorit

  • Jos haluat tarkistaa, ovatko potkurit oikeassa asennossa (käännetty vai ei), kun pyörität niitä moottorien osoittamaan suuntaan (useimmissa moottoreissa on nuolet, jotka osoittavat, kuinka niiden pitäisi pyöriä), sinun pitäisi tuntea tuulta potkurien alla, ei yläpuolella.
  • Vastakkaisten potkurien ruuvien tulee olla samanvärisiä.
  • Viereisten potkurien värin tulee olla sama.
  • Varmista myös, että olet järjestänyt moottorit siten, että ne pyörivät kuten yllä olevassa kuvassa.
  • Jos yrität kääntää moottorin suuntaa, vaihda johdot vastakkaisista päistä. Tämä kääntää moottorin suunnan.

Akku ja virta

  • Jos jostain syystä asiat kipinöivät etkä ymmärrä miksi, se johtuu todennäköisesti siitä, että sinulla on positiivisia ja negatiivisia asioita vaihdettu.
  • Jos et ole varma, milloin ladata akut, voit tarkistaa jännitteen voltimittarilla. Jos se on alhaisempi kuin akun tekniset tiedot sanovat, se on ladattava. Katso tämä linkki akkujen lataamisesta.
  • Useimpien LIPO -akkujen mukana ei tule laturia. Ostat ne erikseen.

Vaihe 3: Arduino -ohjain

Arduino -ohjain
Arduino -ohjain

Tämä on epäilemättä vaikein osa koko projektia. On erittäin helppoa räjäyttää komponentteja ja virheenkorjaus voi olla erittäin turhauttavaa, jos et tiedä mitä olet tekemässä. Myös tässä projektissa hallitsin droneani bluetoothilla ja sovelluksella, jonka näytän sinulle kuinka rakentaa. Tämä teki hankkeesta erityisen vaikean, koska 99% opetusohjelmista siellä käyttää radio -ohjaimia (tämä ei ole tosiasia), mutta älä huoli, olen käynyt läpi turhautumisen puolestasi.

Vinkkejä ennen kuin lähdet tälle matkalle

  • Käytä leipälevyä ennen kuin viimeistelet laitteen piirilevylle. Tämän avulla voit tehdä muutoksia helposti.
  • Jos olet testannut komponenttia laajasti ja se ei toimi, se ei todennäköisesti toimi!
  • Katso jännitteet, joita laite pystyy käsittelemään, ennen kuin liität sen pistorasiaan!

    • Arduino kestää 6-20 V, mutta yritä sulkea se 12 V: lla, jotta et räjäytä sitä. Voit lukea lisää sen teknisistä tiedoista täältä.
    • HC-05 kestää jopa 5 V, mutta jotkut nastat toimivat 3,3 V: lla, joten varo sitä. Puhumme siitä myöhemmin.
    • IMU (GY-521, MPU-6050) toimii myös 5 V: n jännitteellä.
  • Käytämme RemoteXY: tä sovelluksemme rakentamiseen. Jos haluat rakentaa sen iOS-laitteelle, sinun on käytettävä toista Bluetooth-moduulia (HM-10). Voit oppia lisää tästä RemoteXY -verkkosivustolta.

Toivottavasti olet lukenut vinkit. Testaa nyt jokainen komponentti, joka tulee ohjaimen osaksi erikseen.

Vaihe 4: MPU-6050

MPU-6050
MPU-6050

Tässä laitteessa on gyroskooppi ja kiihtyvyysmittari, joten se kertoo olennaisesti kiihtyvyyden suuntaan (X, Y, Z) ja kulmakiihtyvyyden näihin suuntiin.

Tämän testaamiseksi voimme käyttää tämän opetusohjelman avulla voimme käyttää tätä opetusohjelmaa Arduinon verkkosivustolla. Jos se toimii, sinun pitäisi saada kiihtyvyysmittarin ja gyroskoopin arvot, jotka muuttuvat, kun kallistat, käännät ja nopeutat asetuksia. Yritä myös säätää ja manipuloida koodia, jotta tiedät mitä tapahtuu.

Vaihe 5: HC-05 Bluetooth-moduuli

HC-05 Bluetooth-moduuli
HC-05 Bluetooth-moduuli
HC-05 Bluetooth-moduuli
HC-05 Bluetooth-moduuli
HC-05 Bluetooth-moduuli
HC-05 Bluetooth-moduuli

Sinun ei tarvitse tehdä tätä osaa, mutta on tärkeää, että voit siirtyä AT -tilaan (asetustila), koska sinun on todennäköisesti muutettava yksi moduulin asetuksista. Tämä oli yksi turhauttavimmista osista tässä projektissa. Tein niin paljon tutkimusta selvittääkseni, miten saan moduulin AT -tilaan, koska laitteeni ei vastannut komentoihini. Kesti 2 päivää, ennen kuin päädyin siihen, että moduulini oli rikki. Tilasin toisen ja se toimi. Tutustu tähän AT -tilaan siirtymisen opetusohjelmaan.

HC-05 on saatavana erilaisina, joista osa on painikkeilla ja osa ilman ja kaikenlaisia suunnittelumuuttujia. Yksi näistä on kuitenkin vakio, että niissä kaikissa on "Pin 34". Tutustu tähän opetusohjelmaan.

Asiat, jotka sinun pitäisi tietää

  • Siirry AT -tilaan pitämällä vain 5 V: n painiketta Bluetooth -moduulin nastassa 34 ennen kuin kytket siihen virran.
  • Kytke potentiaalinjakaja moduulin RX -nastaan, kun se toimii 3,3 V: n jännitteellä. Voit silti käyttää sitä 5 V: n jännitteellä, mutta se saattaa paistaa tämän nastan, jos jotain menee pieleen.
  • Jos käytät nastaa 34 (painikkeen sijasta tai jollain muulla tavalla, jonka löysit verkossa), moduuli asettaa bluetoothin siirtonopeudeksi 38400. Siksi yllä olevan opetusohjelman linkissä on koodissa rivi, joka sanoo:

BTSerial.begin (38400); // HC-05 oletusnopeus AT-komennossa lisää

Jos moduuli ei vieläkään vastaa "OK" -painikkeella, yritä vaihtaa tx- ja rx -nastat. Sen pitäisi olla:

Bluetooth => Arduino

RXD => TX1

TDX => RX0

Jos tämä ei vieläkään toimi, vaihda koodin nastat muihin Arduino -nastoihin. Testaa, jos se ei toimi, vaihda tx- ja rx -nastat, testaa sitten uudelleen

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

Vaihda yllä oleva rivi. Voit kokeilla RX = 2, TX = 3 tai muita kelvollisia yhdistelmiä. Voit katsoa Arduino -nastan numeroita yllä olevasta kuvasta.

Vaihe 6: Osien liittäminen

Osien liittäminen
Osien liittäminen

Nyt kun olemme varmoja, että kaikki toimii, on aika alkaa koota ne yhteen. Voit liittää osat kuten piirissä. Sain sen Electronoobsilta. Hän todella auttoi minua tässä projektissa. Katso hänen versionsa projektista täältä. Jos noudatat tätä opetusohjelmaa, sinun ei tarvitse huolehtia vastaanottimen yhteyksistä: input_Yaw, input_Pitch jne. Kaikki, mitä käsitellään bluetoothilla. Liitä myös bluetooth kuten edellisessä osassa. Tx- ja rx -nastani antoivat minulle vähän ongelmia, joten käytin Arduinon:

RX 2 ja TX 3 normaalien nastojen sijaan. Seuraavaksi kirjoitamme yksinkertaisen sovelluksen, jota parannamme edelleen, kunnes saamme lopullisen tuotteen.

Vaihe 7: RemoteXY: n kauneus

RemoteXY: n kauneus
RemoteXY: n kauneus

Mietin pisimpään helppoa tapaa rakentaa käyttökelpoinen Remote -sovellus, jonka avulla voin ohjata dronea. Useimmat ihmiset käyttävät MIT App Inventoria, mutta käyttöliittymä ei ole niin kaunis kuin haluaisin, enkä myöskään ole kuvallisen ohjelmoinnin fani. Olisin voinut suunnitella sen Android Studion avulla, mutta se olisi vain liikaa työtä. Olin erittäin innoissani, kun löysin opetusohjelman RemoteXY: n avulla. Tässä linkki verkkosivulle. Se on erittäin helppokäyttöinen ja dokumentaatio on erittäin hyvä. Luomme droneillemme yksinkertaisen käyttöliittymän. Voit muokata omiasi haluamallasi tavalla. Varmista vain, että tiedät mitä olet tekemässä. Noudata tässä annettuja ohjeita.

Kun olet tehnyt sen, muokkaamme koodia, jotta voimme muuttaa kopterimme kaasua. Lisää koodiin koodirivit, joissa on / **** -asioita ja miksi *** /.

Jos se ei käännä, varmista, että olet ladannut kirjaston. Avaa myös esimerkkiluonnos ja vertaa mitä siinä on, mitä sinulla ei ole.

///////////////////////////////////////////////////////////////////////////////////// RemoteXY sisältää kirjasto // /////////////////////////////////////////////

// RemoteXY valitse yhteystila ja sisälly kirjastoon

#define REMOTEXY_MODE_HC05_SOFTSERIAL

#Sisällytä #Sisällytä #Sisällytä

// RemoteXY -yhteysasetukset

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

// Potkurit

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

// RemoteXY -kokoonpano

#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}; // tämä rakenne määrittää kaikki ohjausliittymän rakenteen muuttujat {

// tulomuuttuja

int8_t Joystick_x; // -100..100 x -koordinaatin ohjaussauvan sijainti int8_t Joystick_y; // -100..100 y -koordinaatin ohjaussauvan asento int8_t ThrottleSlider; // 0..100 liukusäätimen asento

// muu muuttuja

uint8_t connect_flag; // = 1, jos johto on kytketty, muuten = 0

} RemoteXY;

#pragma pack (pop)

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

// END RemoteXY sisältää // /////////////////////////////////////////////////////////////// /

/********** Lisää tämä rivi pitääksesi kaasun arvon **************/

int input_THROTTLE;

void setup () {

RemoteXY_Init ();

/********** Kiinnitä moottorit nastoihin Muuta arvot sopivaksi **************/

L_F_prop.attach (4); // vasen etumoottori

L_B_prop.attach (5); // vasen takamoottori R_F_prop.attach (7); // oikea etumoottori R_B_prop.attach (6); // oikea takamoottori

/************* Estää esc: tä siirtymästä ohjelmointitilaan ********************/

L_F_prop.writeMicroseconds (1000); L_B_prop.writeMicroseconds (1000); R_F_prop.writeMicroseconds (1000); R_B_prop.writeMicrosekuntia (1000); viive (1000);

}

void loop () {

RemoteXY_Handler ();

/****** Kartoittaa sovelluksesta saadun kaasun arvon arvoihin 1000 ja 2000, jotka ovat arvoja, joita useimmat ESC: t toimivat *********/

input_THROTTLE = kartta (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); }

Vaihe 8: Testaus

Jos olet tehnyt kaiken oikein, sinun pitäisi pystyä testaamaan kopteriasi liu'uttamalla kaasua ylös ja alas. Varmista, että teet tämän ulkona. Älä myöskään pidä potkureita päällä, koska se saa kopterin hyppäämään. Emme ole vielä kirjoittaneet koodia tasapainottamaan sitä, joten olisi huono idea kokeilla tätä potkurien kanssa! Tein tämän vain koska lmao.

Esittely on vain osoittaaksemme, että meidän pitäisi pystyä ohjaamaan kaasua sovelluksesta. Huomaat, että moottorit tärisevät. Tämä johtuu siitä, että ESC: itä ei ole kalibroitu. Voit tehdä tämän katsomalla tämän Github -sivun ohjeita. Lue ohjeet, avaa tiedosto ESC-Calibration.ino ja noudata näitä ohjeita. Jos haluat ymmärtää, mitä tapahtuu, tutustu tähän Electronoobsin opetusohjelmaan.

Kun käytät ohjelmaa, varmista, että sidot dronin jousilla, koska se menee täydellä kaasulla. Varmista myös, että potkurit eivät ole päällä. Jätin omani päälle, koska olen puoliksi hullu. ÄLÄ jätä potkureita päälle !!! Tämä esitys näkyy toisessa videossa.

Vaihe 9: Työskentelen koodin parissa. Suorittaa ohjeen muutamassa päivässä

Halusin vain lisätä, että jos käytät tätä opetusohjelmaa ja odotat minua, työskentelen edelleen sen parissa. On vain muita asioita elämässäni, joita olen myös työstänyt, mutta älä huoli, postitan sen pian. Sanotaan viimeistään 10.8.2019.

10. elokuuta Päivitys: En halunnut jättää sinua roikkumaan. Valitettavasti minulla ei ole ollut aikaa työskennellä projektin parissa viime viikolla. On ollut hyvin kiireinen muiden asioiden kanssa. En halua johtaa sinua eteenpäin. Toivottavasti suoritan ohjeen lähitulevaisuudessa. Jos sinulla on kysyttävää tai tarvitset apua, voit lisätä kommentin alle, niin otan sinuun yhteyttä.

Suositeltava: