Sadržaj:

Vodič koji sam želio imati o izgradnji Arduino drona: 9 koraka
Vodič koji sam želio imati o izgradnji Arduino drona: 9 koraka

Video: Vodič koji sam želio imati o izgradnji Arduino drona: 9 koraka

Video: Vodič koji sam želio imati o izgradnji Arduino drona: 9 koraka
Video: Управляющая лампа переменного тока с реле 5 В с помощью Arduino 2024, Prosinac
Anonim
Vodič koji sam želio imati o izgradnji Arduino drona
Vodič koji sam želio imati o izgradnji Arduino drona

Ovaj dokument je svojevrsna kosa dokumentacija “Kako voditi” koja prolazi kroz proces koji mi je trebao za razumijevanje koncepata za postizanje cilja izgradnje jednostavnog četvorokopter -a kojim bih mogao upravljati sa svog mobilnog telefona.

Kako bih napravio ovaj projekt, želio sam steći predodžbu o tome što je zapravo dron, u mom slučaju quadcopter, pa sam počeo istraživati. Gledao sam mnogo YouTube videa, čitao hrpu članaka i stranica koje se ne mogu poništiti i to sam dobio.

U osnovi možete podijeliti bespilotnu letjelicu na dva dijela. Nazvao sam to "Fizički" i "Kontroler". Fizikalno je u biti sve što ima veze s mehanikom zbog koje dron leti. To su stvari poput motora, okvira, baterije, propelera i svih drugih stvari koje fizički daju bespilotnoj letjelici mogućnost leta.

Kontrolor je u biti kontrolor leta. Ono što kontrolira fizičko tako da dron može letjeti kao cjelina bez pada. U biti mikrokontroler, softver na njemu i senzori koji mu pomažu u triangulaciji ležajeva. Dakle, sve u svemu da bih imao bespilotnu letjelicu, trebao sam Kontroler i hrpu fizičkih dijelova kako bi kontroler mogao 'kontrolirati'.

Pribor

Budžet za projekt: 250 USD

Vremenski okvir: 2 tjedna

Stvari za kupiti:

  • Fizički okvir 20 USD
  • Oštrice 0 USD (dolazi s okvirom)
  • Baterija 25 dolara
  • ESC (elektronički regulatori brzine) 0 USD (dolazi s motorima)
  • Motori 70 dolara

Kontrolor leta

  • Arduino nano 20 USD
  • Arduino USB kabel 2 USD
  • Bluetooth modul (HC-05) 8 USD
  • 3mm LED i 330 Ohm otpornici i žice 13 USD
  • GY-87 (akcelerometar, žiroskop) 5 USD
  • Prototipna ploča 10 USD
  • Muška i ženska zaglavlja 5 USD

Ostalo

  • Komplet za lemljenje 10 USD
  • Multimetar 20 dolara

Htio sam uživati u izgradnji ovog projekta kao inženjer, pa sam kupio neke druge stvari koje nisam morao.

Ukupno: 208 USD

Korak 1: Moje početno iskustvo

Nakon što sam kupio sve svoje komponente, sve sam to spojio, a zatim pokušao lansirati dron koristeći Multiwii (idite na softver koji koristi većina DIY zajednice dronova), no brzo sam shvatio da nisam potpuno shvatio što radila jer je bilo puno grešaka i nisam imala pojma kako ih popraviti.

Nakon toga sam odlučio rastaviti dron i razumjeti svaku komponentu dio po dio i obnoviti je na način da ću u potpunosti razumjeti sve što se događa.

U sljedećim odjeljcima proći ću proces sastavljanja slagalice. Prije toga idemo na brzi pregled.

Fizički

Za fizičko, trebali bismo imati: okvir, propelere, bateriju i escs. Bilo bi ih prilično lako sastaviti. Da biste razumjeli ove dijelove i koje biste trebali nabaviti, posjetite ovu vezu. Objašnjava što trebate znati o kupnji svakog od dijelova koje sam naveo. Pogledajte i ovaj Youtube video. Pomoći će vam ako zaglavite sastavljajući dijelove.

Korak 2: Savjeti za sastavljanje i ispravljanje pogrešaka fizičkih dijelova

Savjeti za sastavljanje i ispravljanje pogrešaka fizičkih dijelova
Savjeti za sastavljanje i ispravljanje pogrešaka fizičkih dijelova

Propeleri i motori

  • Da biste provjerili jesu li vaši propeleri u ispravnoj orijentaciji (okrenuti ili ne), kad ih vrtite u smjeru koji pokazuju motori (većina motora ima strelice koje pokazuju kako se trebaju vrtjeti), trebali biste osjetiti povjetarac ispod propelera, a ne iznad.
  • Vijaci na suprotnim propelerima trebaju biti iste boje.
  • Boja susjednih propelera trebala bi biti ista.
  • Također provjerite jeste li rasporedili motore na način da se okreću kao na gornjoj slici.
  • Ako pokušavate okrenuti smjer motora, samo zamijenite žice na suprotnim krajevima. Time ćete promijeniti smjer motora.

Baterija i napajanje

  • Ako iz nekog razloga stvari iskre i ne možete shvatiti zašto, najvjerojatnije je to zato što ste zamijenili pozitivne i negativne.
  • Ako niste sigurni kada napuniti baterije, pomoću voltmetra provjerite napon. Ako je niža od specifikacija na bateriji, potrebno ju je napuniti. Pogledajte ovu vezu o punjenju baterija.
  • Većina baterija LIPO ne dolazi s punjačima. Kupujete ih zasebno.

Korak 3: Arduino kontroler

Arduino kontroler
Arduino kontroler

Ovo je bez sumnje najteži dio cijelog ovog projekta. Vrlo je lako razneti komponente, a ispravljanje pogrešaka moglo bi biti izuzetno frustrirajuće ako ne znate što radite. Također sam u ovom projektu kontrolirao svoj dron pomoću bluetootha i aplikacije koju ću vam pokazati kako izgraditi. To je dodatno otežalo projekt jer 99% vodiča koristi radijske kontrolere (ovo nije činjenica lol), ali ne brinite, prošao sam kroz frustraciju za vas.

Savjeti prije nego što krenete na ovo putovanje

  • Iskoristite ploču prije nego što finalizirate svoj uređaj na PCB -u. To vam omogućuje jednostavno unošenje promjena.
  • Ako ste opsežno testirali komponentu i ne radi, vjerojatno ne radi!
  • Pogledajte napone koje uređaj može podnijeti prije nego ga uključite!

    • Arduino može podnijeti 6 do 20V, ali pokušajte ga ograničiti na 12V kako ga ne biste raznijeli. Više o specifikacijama možete pročitati ovdje.
    • HC-05 može podnijeti do 5V, ali neki pinovi rade na 3.3V pa pripazite na to. O tome ćemo kasnije.
    • IMU (GY-521, MPU-6050) također radi na 5V.
  • Za izradu naše aplikacije koristit ćemo RemoteXY. Ako ga želite izgraditi na iOS uređaju, morate upotrijebiti drugi Bluetooth modul (HM-10). Više o tome možete saznati na web stranici RemoteXY.

Nadam se da ste pročitali savjete. Sada testirajmo svaku komponentu koja će biti dio kontrolera zasebno.

Korak 4: MPU-6050

MPU-6050
MPU-6050

Ovaj uređaj ima žiroskop i mjerač ubrzanja, pa vam u biti govori o ubrzanju u smjeru (X, Y, Z) i kutnom ubrzanju u tim smjerovima.

Da bismo to provjerili, možemo upotrijebiti vodič na ovoj stranici. Ovaj vodič možemo koristiti na web stranici Arduino. Ako radi, trebali biste dobiti niz mjerača ubrzanja i žiroskopa koji se mijenjaju dok naginjete, rotirate i ubrzavate postavljanje. Također pokušajte prilagoditi i manipulirati kodom kako biste znali što se događa.

Korak 5: HC-05 Bluetooth modul

Bluetooth-modul HC-05
Bluetooth-modul HC-05
Bluetooth-modul HC-05
Bluetooth-modul HC-05
Bluetooth-modul HC-05
Bluetooth-modul HC-05

Ovaj dio ne morate raditi, ali važno je da možete prijeći u način rada AT (način postavki) jer ćete najvjerojatnije morati promijeniti jednu od postavki modula. Ovo je bio jedan od najfrustrirajućih dijelova ovog projekta. Toliko sam istraživao kako bih shvatio kako prebaciti modul u AT način rada, jer moj uređaj nije reagirao na moje naredbe. Trebalo mi je 2 dana da zaključim da mi je modul pokvaren. Naručio sam još jedan i upalilo je. Pogledajte ovaj vodič o ulasku u AT način rada.

HC-05 dolazi u različitim vrstama, neki s gumbima, a neki bez i sve vrste varijabli dizajna. Jedna konstanta je ta da svi imaju "Pin 34". Pogledajte ovaj vodič.

Stvari koje biste trebali znati

  • Za prelazak u AT način rada samo držite 5V na pin 34 bluetooth modula prije nego što na njega priključite napajanje.
  • Spojite razdjelnik potencijala na RX pin modula jer radi na 3.3V. I dalje biste ga mogli koristiti na 5V, ali mogao bi ispržiti taj pin ako nešto pođe po zlu.
  • Ako koristite Pin 34 (umjesto gumba ili na neki drugi način koji ste pronašli na mreži), modul će postaviti brzinu prijenosa Bluetootha na 38400. Zato u poveznici za gornji vodič postoji redak u kodu koji kaže:

BTSerial.begin (38400); // Zadana brzina HC-05 u AT naredbi više

Ako modul i dalje ne reagira s "OK", pokušajte promijeniti tx i rx pinove. Trebalo bi biti:

Bluetooth => Arduino

RXD => TX1

TDX => RX0

Ako to i dalje ne radi, odaberite promjenu pinova u kodu u druge Arduino pinove. Testirajte, ako ne radi, zamijenite pinove tx i rx, a zatim ponovno testirajte

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

Promijenite gornju liniju. Možete pokušati RX = 2, TX = 3 ili bilo koju drugu valjanu kombinaciju. Možete vidjeti Arduino pin brojeve na gornjoj slici.

Korak 6: Spajanje dijelova

Spajanje dijelova
Spajanje dijelova

Sada kada smo sigurni da sve funkcionira, vrijeme je da ih počnemo sastavljati. Dijelove možete spojiti baš kao što je prikazano u krugu. Dobio sam to od Electronoobs -a. Zaista mi je pomogao u ovom projektu. Njegovu verziju projekta pogledajte ovdje. Ako slijedite ovaj vodič, ne morate brinuti o vezama prijemnika: input_Yaw, input_Pitch itd. Sve će se to rješavati bluetoothom. Također, povežite bluetooth na način na koji smo to učinili u prethodnom odjeljku. Moje igle za tx i rx zadavale su mi probleme, pa sam upotrijebio Arduino:

RX kao 2, a TX kao 3, umjesto normalnih pinova. Zatim ćemo napisati jednostavnu aplikaciju koju ćemo nastaviti poboljšavati dok ne dobijemo konačni proizvod.

Korak 7: Ljepota RemoteXY -a

Ljepota RemoteXY -a
Ljepota RemoteXY -a

Najduže sam razmišljao o jednostavnom načinu izgradnje upotrebljive aplikacije Remote koja bi mi omogućila upravljanje dronom. Većina ljudi koristi MIT App Inventor, ali korisničko sučelje nije toliko lijepo koliko bih želio, a također nisam ljubitelj slikovnog programiranja. Mogao sam ga osmisliti koristeći Android Studio, ali to bi jednostavno bilo previše posla. Bio sam izuzetno oduševljen kada sam pronašao vodič pomoću RemoteXY -a. Evo veze na web stranicu. Izuzetno je jednostavan za korištenje, a dokumentacija je vrlo dobra. Izradit ćemo jednostavno korisničko sučelje za naš dron. Svoju možete prilagoditi kako želite. Samo pazite da znate što radite. Slijedite upute ovdje.

Nakon što to učinite, uredit ćemo kôd tako da možemo promijeniti gas na našem helikopteru. Dodajte retke koji sadrže / **** stvari koje trebate učiniti i zašto *** / u vaš kôd.

Ako se ne sastavlja, provjerite jeste li preuzeli knjižnicu. Otvorite i primjer skice i usporedite ono što ima, a vaše nema.

////////////////////////////////////////////////////// RemoteXY uključuje knjižnica // ///////////////////////////////////////////////////

// RemoteXY odabire način povezivanja i uključuje biblioteku

#define REMOTEXY_MODE_HC05_SOFTSERIAL

#include #include #include

// Postavke veze RemoteXY

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

// Propeleri

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

// RemoteXY konfigurirati

#pragma paket (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}; // ova struktura definira sve varijable vaše strukture upravljačkog sučelja {

// ulazna varijabla

int8_t Joystick_x; // -100..100 x -koordinatni položaj joystick -a int8_t Joystick_y; // -100..100 y -koordinatna pozicija joystick -a int8_t ThrottleSlider; // 0..100 položaj klizača

// druga varijabla

uint8_t connect_flag; // = 1 ako je žica spojena, else = 0

} RemoteXY;

#pragma paket (pop)

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

// END END RemoteXY include // /////////////////////////////////////////////// /

/********** Dodajte ovaj redak kako biste zadržali vrijednost gasa **************/

int input_THROTTLE;

void setup () {

RemoteXY_Init ();

/********** Priključite motore na pinove Promijenite vrijednosti tako da odgovaraju vašim **************/

L_F_prop.attach (4); // lijevi prednji motor

L_B_prop.priključak (5); // lijevi stražnji motor R_F_prop.priključak (7); // prednji desni motor R_B_prop.priključak (6); // desni stražnji motor

/************* Spriječi esc da uđe u način programiranja ********************/

L_F_prop.writeMicroseconds (1000); L_B_prop.writeMicroseconds (1000); R_F_prop.writeMicroseconds (1000); R_B_prop.writeMicroseconds (1000); kašnjenje (1000);

}

void loop () {{100} {101}

RemoteXY_Handler ();

/****** Preslikajte vrijednost leptira za gas koju dobijete iz aplikacije na 1000 i 2000, vrijednosti na kojima većina ESC -a radi *********/

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

Korak 8: Testiranje

Ako ste sve učinili kako treba, trebali biste moći testirati svoj helikopter klizanjem gasa gore -dolje. Obavezno to učinite vani. Također nemojte držati propelere uključene jer će to uzrokovati skok helikoptera. Još nismo napisali kôd kako bismo ga uravnotežili, pa bi bila LOŠA IDEJA OVO ISPITIVATI S UKLJUČENIM PROPELERIMA! Ovo sam učinio samo zato što lmao.

Demonstracija samo želi pokazati da bismo trebali moći kontrolirati gas iz aplikacije. Primijetit ćete da motori mucaju. To je zato što ESC nisu kalibrirani. Da biste to učinili, pogledajte upute na ovoj stranici Github. Pročitajte upute, otvorite datoteku ESC-Calibration.ino i slijedite te upute. Ako želite razumjeti što se događa, pogledajte ovaj vodič tvrtke Electronoobs.

Dok pokrećete program, obavezno povežite dron žicama jer će raditi punim gasom. Također provjerite jesu li propeleri uključeni. Ostavio sam svoj samo zato što sam napola lud. NE OSTAVLJAJTE SVOJE PROPELERE UKLJUČENE !!! Ova demonstracija prikazana je u drugom videu.

Korak 9: Radim na Kodeksu. Završit će instrukcije za nekoliko dana

Samo sam htio dodati da ako koristite ovaj vodič i čekate na mene, još uvijek radim na tome. Samo su se druge stvari u mom životu pojavile na kojima također radim, ali ne brinite, uskoro ću to objaviti. Recimo najkasnije do 10. kolovoza 2019.

Ažuriranje 10. kolovoza: Nisam vas želio ostaviti na cjedilu. Nažalost, nisam imao vremena za rad na projektu proteklih tjedan dana. Bio sam jako zauzet drugim stvarima. Ne želim te voditi dalje. Nadam se da ću u bliskoj budućnosti dovršiti upute. Ako imate bilo kakvih pitanja ili trebate pomoć, možete dodati komentar ispod, a ja ću vam se javiti.

Preporučeni: