INHOUDSOPGAWE:

Die gids wat ek wou hê oor die bou van 'n Arduino -drone: 9 stappe
Die gids wat ek wou hê oor die bou van 'n Arduino -drone: 9 stappe

Video: Die gids wat ek wou hê oor die bou van 'n Arduino -drone: 9 stappe

Video: Die gids wat ek wou hê oor die bou van 'n Arduino -drone: 9 stappe
Video: Die Antwoord - Baita Jou Sabela feat. Slagysta (Official Video) 2024, Julie
Anonim
Die gids wat ek wou hê oor die bou van 'n Arduino -drone
Die gids wat ek wou hê oor die bou van 'n Arduino -drone

Dit is 'n dokument, 'n soort van 'hoe om te lei', 'n stippeldokumentasie wat deur die proses gegaan het. Dit het my nodig gehad om die konsepte te verstaan om my doel te bereik om 'n eenvoudige quadcopter te bou wat ek vanaf my selfoon kon beheer.

Om hierdie projek te doen, wou ek 'n idee kry van wat 'n hommeltuig eintlik is, in my geval 'n quadcopter, en daarom het ek begin navorsing doen. Ek het baie YouTube -video's gekyk, 'n klomp artikels en onbreekbare bladsye gelees, en dit is wat ek gekry het.

In wese kan u 'n hommeltuig in twee dele verdeel. Ek het dit die 'Fisiese' en die 'Beheerder' genoem. Die Fisiese is eintlik alles wat te doen het met die meganika wat die hommeltuig laat vlieg. Dit is dinge soos die motor, die raam, die battery, propellers en al die ander dinge wat die hommeltuig fisies die vermoë gee om te vlieg.

Die beheerder is in wese die vlugbeheerder. Wat beheer die fisiese, sodat die hommeltuig as 'n hele eenheid kan vlieg sonder om te val. In wese die mikrobeheerder, die sagteware daarop en die sensors wat dit help om die laers te trianguleer. Dus, om 'n drone te hê, het ek 'n beheerder en 'n klomp fisiese dele nodig gehad om die beheerder te kon 'beheer'.

Voorrade

Begroting vir projek: $ 250

Tydsraamwerk: 2 weke

Dinge om te koop:

  • Fisiese raam $ 20
  • Lemme $ 0 (kom met raam)
  • Batterypakket $ 25
  • ESC (elektroniese snelheidsbeheerders) $ 0 (kom met motors)
  • Motors $ 70

Vlugbeheerder

  • Arduino nano $ 20
  • Arduino USB -kabel $ 2
  • Bluetooth-module (HC-05) $ 8
  • 3 mm LED en 330 Ohm weerstande en drade $ 13
  • GY-87 (versnellingsmeter, gyroscoop) $ 5
  • Prototipe bord $ 10
  • Opskrifte vir mans en vroue $ 5

Ander

  • Soldeerstel $ 10
  • Multimeter $ 20

Ek wou graag die projek as ingenieur bou, en ek het ander goed gekoop wat ek nie nodig gehad het nie.

Totaal: $ 208

Stap 1: My aanvanklike ervaring

Nadat ek al my komponente gekoop het, het ek alles bymekaargemaak en daarna probeer om die drone te begin met behulp van Multiwii (die sagteware wat baie van die DIY -drone -gemeenskap gebruik), maar ek het vinnig besef dat ek nie heeltemal verstaan het wat ek het gedoen omdat daar baie foute was en ek nie 'n idee gehad het hoe om dit reg te stel nie.

Daarna het ek besluit om die drone uitmekaar te haal en elke komponent stuk vir stuk te verstaan en dit weer op te bou sodat ek alles wat aan die gang is, heeltemal sou verstaan.

In die volgende afdelings gaan ek deur die proses om die legkaart saam te voeg. Voordat ons 'n vinnige oorsig kry.

Fisies

Vir die fisiese moet ons hê: die raam, die propellers, die battery en die escs. Dit sal redelik maklik wees om dit saam te voeg. Om hierdie dele te verstaan en watter u moet kry, kan u hierdie skakel besoek. Hy verduidelik wat u moet weet oor die koop van elk van die onderdele wat ek gelys het. Kyk ook hierdie Youtube video. Dit sal u help as u die dele vasmaak.

Stap 2: Wenke oor die opmaak en ontfouting van die fisiese dele

Wenke oor die ontleding en ontfouting van die fisiese dele
Wenke oor die ontleding en ontfouting van die fisiese dele

Propellers en motors

  • Om te kyk of u propellers in die regte rigting is (omgedraai of nie), as u hulle draai in die rigting wat die motors aandui (die meeste motors het pyle wat wys hoe hulle moet draai), moet u 'n briesie onder die propellers voel en nie bo nie.
  • Die skroewe op die teenoorgestelde skroewe moet dieselfde kleur hê.
  • Die kleur van aangrensende propellers moet dieselfde wees.
  • Maak ook seker dat u die motors so gerangskik het dat hulle draai, net soos in die prent hierbo.
  • As u probeer om die rigting van 'n motor te draai, ruil u net die drade aan die teenoorgestelde ente. Dit sal die rigting van die motor omkeer.

Battery en krag

  • As dinge om een of ander rede vonkel en u nie kan uitvind hoekom nie, is dit waarskynlik omdat u positiewe en negatiewe uitruil het.
  • As u nie seker is wanneer u u batterye moet laai nie, kan u 'n voltmeter gebruik om die spanning te kontroleer. As dit laer is as wat die spesifikasies op die battery sê, moet dit gelaai word. Kyk na hierdie skakel vir die laai van u batterye.
  • Die meeste LIPO -batterye kom nie met laaiers nie. U koop dit afsonderlik.

Stap 3: Die Arduino -beheerder

Die Arduino -beheerder
Die Arduino -beheerder

Dit is ongetwyfeld die moeilikste deel van hierdie hele projek. Dit is baie maklik om komponente op te blaas en ontfouting kan uiters frustrerend wees as u nie weet wat u doen nie. In hierdie projek het ek ook my drone beheer met behulp van bluetooth en 'n app wat ek sal wys hoe u dit kan bou. Dit het die projek veral moeiliker gemaak omdat 99% van die tutoriale daar buite radiobeheerders gebruik (dit is nie 'n feit nie), maar moenie bekommerd wees nie, ek het die frustrasie vir u deurgemaak.

Wenke voordat u hierdie reis aanpak

  • Gebruik 'n broodbord voordat u u toestel op 'n PCB finaliseer. Hiermee kan u maklik veranderings aanbring.
  • As u 'n komponent breedvoerig getoets het en dit nie werk nie, werk dit waarskynlik nie!
  • Kyk na die spanning wat 'n toestel kan hanteer voordat u dit aansluit!

    • Arduino kan 6 tot 20V hanteer, maar probeer om dit op 12V te plaas sodat jy dit nie kan opblaas nie. U kan hier meer lees oor die spesifikasies daarvan.
    • Die HC-05 kan tot 5V hanteer, maar sommige penne werk teen 3.3V, dus kyk daarvoor. Ons sal later daaroor praat.
    • Die IMU (GY-521, MPU-6050) werk ook op 5V.
  • Ons sal RemoteXY gebruik om ons app te bou. As u dit op 'n iOS-toestel wil bou, moet u 'n ander Bluetooth-module (die HM-10) gebruik. U kan meer hieroor leer op die RemoteXY -webwerf.

Hopelik het u die wenke gelees. Kom ons toets elke komponent wat deel uitmaak van die beheerder afsonderlik.

Stap 4: Die MPU-6050

Die MPU-6050
Die MPU-6050

Hierdie toestel het 'n gyroscoop en 'n versnellingsmeter, so dit vertel u in wese die versnelling in 'n rigting (X, Y, Z) en die hoekversnelling in daardie rigtings.

Om dit te toets, kan ons die tutoriaal hieroor gebruik; ons kan hierdie tutoriaal op die Arduino -webwerf gebruik. As dit werk, moet u 'n stroom versnellingsmeter- en gyroscoopwaardes kry wat verander terwyl u die opstelling kantel, draai en versnel. Probeer ook om die kode aan te pas en te manipuleer sodat u weet wat aangaan.

Stap 5: Die HC-05 Bluetooth-module

Die HC-05 Bluetooth-module
Die HC-05 Bluetooth-module
Die HC-05 Bluetooth-module
Die HC-05 Bluetooth-module
Die HC-05 Bluetooth-module
Die HC-05 Bluetooth-module

U hoef nie hierdie deel te doen nie, maar dit is belangrik om na die AT -modus (instellingsmodus) te kan gaan, aangesien u waarskynlik een van die instellings van die module moet verander. Dit was een van die frustrerendste dele van hierdie projek. Ek het soveel navorsing gedoen om uit te vind hoe ek my module in die AT -modus kan kry, omdat my toestel nie op my opdragte reageer nie. Dit het my 2 dae geneem om tot die gevolgtrekking te kom dat my module stukkend was. Ek het vir nog een bestel en dit het gewerk. Kyk na hierdie handleiding om in die AT -modus te kom.

Die HC-05 kom in verskillende soorte, daar is sommige met knoppies en sommige sonder en allerhande ontwerpveranderlikes. Een wat konstant is, is dat hulle almal 'n "Pin 34" het. Kyk na hierdie tutoriaal.

Dinge wat jy moet weet

  • Om in die AT -modus te gaan, hou net 5V tot pin 34 van die bluetooth -module vas voordat u die stroom aansluit.
  • Koppel 'n potensiële verdeler aan die RX -pen van die module terwyl dit op 3.3V werk. U kan dit steeds teen 5V gebruik, maar dit kan die pen braai as iets verkeerd loop.
  • As u Pin 34 gebruik (in plaas van die knoppie of op 'n ander manier wat u aanlyn gevind het), stel die module die baud -tempo van Bluetooth op 38400. Daarom is daar 'n reël in die kode in die skakel vir die tutoriaal hierbo:

BTSerial.begin (38400); // HC-05 standaardspoed in AT-opdrag meer

As die module nog steeds nie met "OK" reageer nie, probeer om die tx- en rx -penne te verander. Dit moet wees:

Bluetooth => Arduino

RXD => TX1

TDX => RX0

As dit steeds nie werk nie, kies dan om die penne in die kode na ander Arduino -penne te verander. Toets, as dit nie werk nie, ruil die tx- en rx -penne om, toets dan weer

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

Verander die lyn hierbo. U kan RX = 2, TX = 3 of enige ander geldige kombinasie probeer. U kan na die Arduino -speldnommers in die prent hierbo kyk.

Stap 6: Koppel die onderdele

Koppel die onderdele
Koppel die onderdele

Noudat ons seker is dat alles werk, is dit tyd om dit aanmekaar te sit. U kan die dele aansluit, net soos in die kring getoon. Ek het dit by Electronoobs gekry. Hy het my regtig gehelp met hierdie projek. Kyk hier na sy weergawe van die projek. As u hierdie tutoriaal volg, hoef u nie bekommerd te wees oor die ontvangerverbindings nie: input_Yaw, input_Pitch, ens. Alles wat met Bluetooth hanteer sal word. Koppel ook die bluetooth aan soos ons in die vorige afdeling gedoen het. My tx- en rx -penne het my 'n bietjie moeilik gemaak, so ek het Arduino's gebruik:

RX as 2, en TX as 3, in plaas van die normale penne. Vervolgens skryf ons 'n eenvoudige app wat ons sal aanhou verbeter totdat ons die finale produk het.

Stap 7: Die skoonheid van RemoteXY

Die skoonheid van RemoteXY
Die skoonheid van RemoteXY

Vir die langste tyd het ek gedink aan 'n maklike manier om 'n bruikbare Remote -app te bou waarmee ek die hommeltuig kon beheer. Die meeste mense gebruik MIT App Inventor, maar die UI is nie so mooi soos ek sou wou nie en ek is ook nie 'n fan van beeldende programmering nie. Ek kon dit met Android Studio ontwerp het, maar dit sou net te veel werk wees. Ek was baie opgewonde toe ek 'n handleiding met RemoteXY vind. Hier is die skakel na die webwerf. Dit is baie maklik om te gebruik en die dokumentasie is baie goed. Ons sal 'n eenvoudige UI vir ons drone skep. U kan joune aanpas soos u wil. Maak net seker dat u weet wat u doen. Volg die instruksies hier.

Sodra u dit gedoen het, sal ons die kode wysig sodat ons die gas op ons motor kan verander. Voeg die lyne met die / **** dinge wat u moet doen en hoekom *** / by u kode.

As dit nie saamgestel word nie, maak seker dat u die biblioteek afgelaai het. Maak ook 'n voorbeeldskets oop en vergelyk wat u het, wat u nie het nie.

////////////////////////////////////////////////////////// biblioteek // ////////////////////////////////////////////////

// RemoteXY kies die verbindingsmodus en sluit die biblioteek in

#define REMOTEXY_MODE_HC05_SOFTSERIAL

#include #include #include

// RemoteXY -verbindingsinstellings

#definieer REMOTEXY_SERIAL_RX 2 #definieer REMOTEXY_SERIAL_TX 3 #definieer REMOTEXY_SERIAL_SPEED 9600

// Propellers

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

// RemoteXY konfigureer

#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}; // hierdie struktuur definieer al die veranderlikes van u beheer -koppelvlakstruktuur {

// invoer veranderlike

int8_t Joystick_x; // -100..100 x -koördineer joystickposisie int8_t Joystick_y; // -100..100 y -koördineer joystick -posisie int8_t ThrottleSlider; // 0..100 skuifposisie

// ander veranderlike

uint8_t connect_flag; // = 1 as draad gekoppel is, anders = 0

} RemoteXY;

#pragma -pak (pop)

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

// END RemoteXY sluit in // /////////////////////////////////////////////// /

/********** Voeg hierdie reël by om die gaswaarde ************** te hou/

int input_THROTTLE;

ongeldige opstelling () {

RemoteXY_Init ();

/********** Koppel die motors aan penne Verander die waardes om by u te pas **************/

L_F_prop.attach (4); // linker voor motor

L_B_prop.aanheg (5); // linker agter motor R_F_prop.attach (7); // motor regs voor R_B_prop.attach (6); // motor regs agter

/************** Voorkom dat esc die programmeermodus betree ********************/

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

}

leemte -lus () {

RemoteXY_Handler ();

/****** Kaart die gaswaarde wat u van die app kry, na 1000 en 2000, wat die waardes is wat die meeste ESC's op *********/gebruik

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); }

Stap 8: Toets

As u alles reg gedoen het, moet u die motor kan toets deur die gas op en af te skuif. Maak seker dat u dit buite doen. Moet ook nie die propellers aanhou nie, want dit sal veroorsaak dat die copter spring. Ons het nog nie die kode geskryf om dit te balanseer nie, so dit sal 'n SLEGTE IDEE wees om dit MET DIE PROPELLERS aan te toets! Ek het dit net gedoen omdat lmao.

Die demonstrasie is net om aan te toon dat ons die gashendel via die app moet kan beheer. U sal sien dat die motors hakkel. Dit is omdat die ESC's nie gekalibreer is nie. Om dit te kan doen, kyk na die instruksies op hierdie Github -bladsy. Lees die instruksies, maak die ESC-Calibration.ino-lêer oop en volg die instruksies. As u wil verstaan wat aangaan, kyk dan na hierdie handleiding deur Electronoobs.

Terwyl u die program aan die gang hou, maak seker dat u die hommeltuig met snare vasmaak, want dit sal met volle gas gaan. Maak ook seker dat die propellers nie aan is nie. Ek het myne net gelos omdat ek half mal is. MOET U PROPELLERS NIE LAAT NIE !!! Hierdie demonstrasie word in die tweede video getoon.

Stap 9: Ek werk aan die kode. Sal die instruksies binne 'n paar dae voltooi

Ek wou net byvoeg dat as ek hierdie tutoriaal gebruik en op my wag, ek steeds daaraan werk. Dit is net ander dinge in my lewe wat ek ook aan die lig kom, maar moenie bekommerd wees nie, ek plaas dit binnekort. Kom ons sê die nuutste teen 10 Augustus 2019.

Opdatering van 10 Augustus: wou u nie laat hang nie. Ongelukkig het ek die afgelope week nie tyd gehad om aan die projek te werk nie. Was baie besig met ander dinge. Ek wil jou nie verder lei nie. Hopelik sal ek die instruksies in die nabye toekoms voltooi. As u vrae het of hulp nodig het, kan u hieronder 'n opmerking byvoeg, en ek sal terugkom.

Aanbeveel: