Indholdsfortegnelse:

Vejledningen, jeg ville ønske, jeg havde om at bygge en Arduino Drone: 9 trin
Vejledningen, jeg ville ønske, jeg havde om at bygge en Arduino Drone: 9 trin

Video: Vejledningen, jeg ville ønske, jeg havde om at bygge en Arduino Drone: 9 trin

Video: Vejledningen, jeg ville ønske, jeg havde om at bygge en Arduino Drone: 9 trin
Video: Видеопередатчик своими руками, как собрать собственную беспроводную видеосистему 2024, November
Anonim
Vejledningen, jeg ville ønske, jeg havde om at bygge en Arduino Drone
Vejledningen, jeg ville ønske, jeg havde om at bygge en Arduino Drone

Dette er dokument er en slags "Sådan vejledes" skråstregsdokumentation, der går igennem processen, det tog mig at forstå begreberne for at nå mit mål om at bygge en simpel quadcopter, som jeg kunne styre fra min mobiltelefon.

For at udføre dette projekt ønskede jeg at få en idé om, hvad en drone egentlig er, i mit tilfælde en quadcopter, så jeg begyndte at lave nogle undersøgelser. Jeg så en masse YouTube -videoer, læste en masse artikler og Ubrudbare sider, og det er det, jeg fik.

I det væsentlige kan du dele en drone i to dele. Jeg kaldte det "Fysisk" og "Controller". The Physical er i det væsentlige alt, der har at gøre med mekanikken, der får dronen til at flyve. Det er ting som motoren, rammen, batteriet, propeller og alle andre ting, der fysisk giver dronen mulighed for at flyve.

Controlleren er i det væsentlige flyvekontroller. Hvad styrer det fysiske, så dronen kan flyve som en hel enhed uden at falde. I det væsentlige mikrokontrolleren, softwaren på den og sensorerne, der hjælper den med at triangulere dens lejer. Så alt i alt for at have en drone havde jeg brug for en controller og en masse fysiske dele, som controlleren kunne 'styre'.

Forbrugsvarer

Budget for projektet: $ 250

Tidsramme: 2 uger

Ting at købe:

  • Fysisk ramme $ 20
  • Knive $ 0 (leveres med stel)
  • Batteripakke $ 25
  • ESC (elektroniske hastighedsregulatorer) $ 0 (leveres med motorer)
  • Motorer $ 70

Flight Controller

  • Arduino nano $ 20
  • Arduino USB -kabel $ 2
  • Bluetooth-modul (HC-05) $ 8
  • 3 mm LED og 330 Ohm modstande og ledninger $ 13
  • GY-87 (accelerometer, gyroskop) $ 5
  • Prototype Board $ 10
  • Mandlige og kvindelige overskrifter $ 5

Andet

  • Loddesæt $ 10
  • Multimeter $ 20

Jeg ville nyde at bygge dette projekt som ingeniør, så jeg købte nogle andre ting, som jeg ikke behøvede.

I alt: $ 208

Trin 1: Min første erfaring

Efter at have købt alle mine komponenter satte jeg det hele sammen og forsøgte derefter at starte dronen ved hjælp af Multiwii (gå til software, som mange af DIY -dronefællesskaberne bruger), men jeg indså hurtigt, at jeg ikke helt forstod, hvad jeg gjorde, fordi der var mange fejl, og jeg havde ingen idé om, hvordan jeg fikser dem.

Derefter besluttede jeg at tage dronen fra hinanden og forstå hver komponent stykke for stykke og genopbygge den på en måde, så jeg fuldstændig ville forstå alt, hvad der foregik.

I de følgende afsnit vil jeg gennemgå processen med at sammensætte puslespillet. Før det får vi et hurtigt overblik.

Fysisk

Til det fysiske bør vi have: rammen, propellerne, batteriet og eskerne. Disse ville være forholdsvis lette at sammensætte. For at forstå disse dele, og hvilke du skal få, kan du besøge dette link. Han forklarer, hvad du har brug for at vide om at købe hver af de dele, jeg har angivet. Se også denne Youtube -video. Det vil hjælpe dig, hvis du sidder fast ved at dele delene sammen.

Trin 2: Tips til sammenføjning og fejlfinding af de fysiske dele

Tips til opsamling og fejlfinding af de fysiske dele
Tips til opsamling og fejlfinding af de fysiske dele

Propeller og motorer

  • For at kontrollere, om dine propeller er i den rigtige retning (vendt eller ej), når du drejer dem i den retning, motorerne angiver (de fleste motorer har pile, der viser, hvordan de skal dreje), skal du føle en brise under propellerne og ikke over.
  • Skruerne på de modsatte propeller skal have samme farve.
  • Farven på tilstødende propeller skal være den samme.
  • Sørg også for, at du har arrangeret motorerne på en måde, så de drejer ligesom på billedet ovenfor.
  • Hvis du forsøger at vende retningen på en motor, skal du bare skifte ledninger i modsatte ender. Dette vil vende motorens retning.

Batteri og strøm

  • Hvis tingene af en eller anden grund gnister, og du ikke kan finde ud af hvorfor, er det højst sandsynligt, at du har byttet positive og negative.
  • Hvis du ikke er sikker på, hvornår du skal oplade dine batterier, kan du bruge et voltmeter til at kontrollere spændingen. Hvis det er lavere end specifikationerne på batteriet siger, skal det oplades. Tjek dette link om opladning af dine batterier.
  • De fleste LIPO -batterier leveres ikke med batteriopladere. Du køber dem separat.

Trin 3: Arduino -controlleren

Arduino -controlleren
Arduino -controlleren

Dette er uden tvivl den sværeste del af hele dette projekt. Det er meget let at sprænge komponenter, og fejlfinding kan være ekstremt frustrerende, hvis du ikke ved, hvad du laver. Også i dette projekt kontrollerede jeg min drone ved hjælp af bluetooth og en app, som jeg vil vise dig, hvordan du bygger. Dette gjorde projektet særligt vanskeligere, fordi 99% af selvstudierne derude bruger radiokontroller (dette er ikke et faktum lol), men bare rolig, jeg har været igennem frustrationen for dig.

Tips, før du går i gang med denne rejse

  • Brug et brødbræt, før du færdiggør din enhed på et printkort. Dette lader dig nemt foretage ændringer.
  • Hvis du har testet en komponent grundigt, og den ikke virker, virker den sandsynligvis ikke!
  • Se på de spændinger, en enhed kan klare, før du tilslutter den!

    • Arduino kan klare 6 til 20V, men prøv at hætte den til 12V, så du ikke sprænger den. Du kan læse mere om dens specifikationer her.
    • HC-05 kan klare op til 5V, men nogle ben fungerer ved 3.3V, så pas på det. Vi taler om det senere.
    • IMU (GY-521, MPU-6050) fungerer også ved 5V.
  • Vi bruger RemoteXY til at bygge vores app. Hvis du vil bygge det på en iOS-enhed, skal du bruge et andet bluetooth-modul (HM-10). Du kan lære mere om dette på RemoteXY -webstedet.

Forhåbentlig har du læst tipsene. Lad os nu teste hver komponent, der vil være en del af controlleren separat.

Trin 4: MPU-6050

MPU-6050
MPU-6050

Denne enhed har et gyroskop og et accelerometer, så det fortæller dig hovedsageligt accelerationen i en retning (X, Y, Z) og vinkelaccelerationen langs disse retninger.

For at teste dette kan vi bruge selvstudiet om dette, vi kan bruge denne vejledning på Arduino -webstedet. Hvis det virker, bør du få en strøm af accelerometer- og gyroskopværdier, der ændres, når du vipper, roterer og fremskynder opsætningen. Prøv også at justere og manipulere koden, så du ved, hvad der foregår.

Trin 5: HC-05 Bluetooth-modulet

HC-05 Bluetooth-modulet
HC-05 Bluetooth-modulet
HC-05 Bluetooth-modulet
HC-05 Bluetooth-modulet
HC-05 Bluetooth-modulet
HC-05 Bluetooth-modulet

Du behøver ikke at udføre denne del, men det er vigtigt at være i stand til at gå til AT -tilstand (indstillingstilstand), da du sandsynligvis skal ændre en af modulets indstillinger. Dette var en af de mest frustrerende dele ved dette projekt. Jeg gjorde så meget research for at finde ud af, hvordan jeg skulle få mit modul til AT -tilstand, fordi min enhed ikke reagerede på mine kommandoer. Det tog mig 2 dage at konkludere, at mit modul var brudt. Jeg bestilte en anden og det virkede. Tjek denne vejledning om at komme i AT -tilstand.

HC-05 findes i forskellige slags, der er nogle med knapper og nogle uden og alle mulige designvariabler. Den ene er dog konstant, at de alle har en "Pin 34". Tjek denne vejledning.

Ting du bør vide

  • For at gå i AT -tilstand skal du bare holde 5V til pin 34 på bluetooth -modulet, før du slutter strøm til det.
  • Tilslut en potentiel divider til RX -stiften på modulet, da den fungerer på 3,3V. Du kan stadig bruge den ved 5V, men den kan stege den pin, hvis noget går galt.
  • Hvis du bruger Pin 34 (i stedet for knappen eller på en anden måde, du fandt online), sætter modulet bluetooth's baudrate til 38400. Derfor er der i linket til øvelsen ovenfor en linje i koden, der siger:

BTSerial.begin (38400); // HC-05 standardhastighed i AT-kommando mere

Hvis modulet stadig ikke reagerer med "OK", kan du prøve at skifte tx- og rx -benene. Det bør være:

Bluetooth => Arduino

RXD => TX1

TDX => RX0

Hvis det stadig ikke virker, skal du vælge at ændre stifterne i koden til andre Arduino -ben. Test, hvis det ikke virker, skal du skifte tx- og rx -benene, og derefter teste igen

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

Skift linjen ovenfor. Du kan prøve RX = 2, TX = 3 eller andre gyldige kombinationer. Du kan se på Arduino pin -numrene på billedet ovenfor.

Trin 6: Tilslutning af delene

Tilslutning af delene
Tilslutning af delene

Nu hvor vi er sikre på, at alt fungerer, er det tid til at begynde at sammensætte dem. Du kan forbinde delene ligesom vist i kredsløbet. Det fik jeg fra Electronoobs. Han hjalp mig virkelig med dette projekt. Se hans version af projektet her. Hvis du følger denne vejledning, behøver du ikke bekymre dig om modtagerforbindelserne: input_Yaw, input_Pitch osv. Alt, hvad der håndteres med bluetooth. Tilslut også bluetooth, som vi gjorde i det foregående afsnit. Mine tx- og rx -pins gav mig lidt problemer, så jeg brugte Arduino's:

RX som 2, og TX som 3, i stedet for de normale stifter. Dernæst skriver vi en simpel app, som vi vil fortsætte med at forbedre, indtil vi har det endelige produkt.

Trin 7: Skønheden i RemoteXY

Skønheden ved RemoteXY
Skønheden ved RemoteXY

For længst tænkte jeg på en nem måde at bygge en brugbar Remote -app, der ville lade mig styre dronen. De fleste mennesker bruger MIT App Inventor, men brugergrænsefladen er ikke så smuk, som jeg gerne vil, og jeg er heller ikke fan af billedlig programmering. Jeg kunne have designet det ved hjælp af Android Studio, men det ville bare være for meget arbejde. Jeg var ekstremt begejstret, da jeg fandt en tutorial med RemoteXY. Her er linket til hjemmesiden. Det er ekstremt let at bruge, og dokumentationen er meget god. Vi opretter en simpel brugergrænseflade til vores drone. Du kan tilpasse din, som du vil. Bare sørg for at vide, hvad du laver. Følg instruktionerne her.

Når du har gjort det, redigerer vi koden, så vi kan ændre gashåndtaget på vores copter. Føj de linjer, der har de / **** ting, du skal gøre, og hvorfor *** / til din kode.

Hvis det ikke kompilerer, skal du sørge for at have biblioteket downloadet. Åbn også en eksempelskitse og sammenlign hvad den har, som din ikke har.

//////////////////////////////////////////////////////////// bibliotek // ////////////////////////////////////////////////

// RemoteXY vælg forbindelsestilstand og inkluder bibliotek

#define REMOTEXY_MODE_HC05_SOFTSERIAL

#include #include #include

// RemoteXY -forbindelsesindstillinger

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

// Propeller

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

// RemoteXY -konfiguration

#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}; // denne struktur definerer alle variablerne i din kontrolgrænseflade struktur {

// input variabel

int8_t Joystick_x; // -100..100 x -koordinat joystickposition int8_t Joystick_y; // -100..100 y -koordinat joystickposition int8_t ThrottleSlider; // 0..100 skyderposition

// anden variabel

uint8_t connect_flag; // = 1 hvis ledningen er tilsluttet, ellers = 0

} RemoteXY;

#pragma pack (pop)

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

// END RemoteXY inkluderer // ///////////////////////////////////////////////// /

/********** Tilføj denne linje for at holde gasværdien **************/

int input_THROTTLE;

ugyldig opsætning () {

RemoteXY_Init ();

/********** Fastgør motorerne til Pins Skift værdierne, så de passer til dine ***************/

L_F_prop.attach (4); // venstre forreste motor

L_B_prop.attach (5); // venstre back motor R_F_prop.attach (7); // højre forreste motor R_B_prop.attach (6); // højre bagmotor

/************** Forhindre esc i at gå ind i programmeringstilstand ********************/

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

}

void loop () {

RemoteXY_Handler ();

/****** Kortlæg gassværdien, du får fra appen til 1000 og 2000, som er de værdier, som de fleste ESC'er opererer med *********/

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

Trin 8: Test

Hvis du har gjort alt rigtigt, bør du være i stand til at teste din copter ved at skubbe gassen op og ned. Sørg for at gøre dette udenfor. Hold heller ikke propellerne på, for det får copteren til at hoppe. Vi har endnu ikke skrevet koden for at balancere den, så det ville være en DÅRLIG IDE AT TESTE DETTE MED PROPELLERNE TIL! Jeg gjorde dette kun fordi lmao.

Demonstrationen er bare for at vise, at vi skal være i stand til at kontrollere gashåndtaget fra appen. Du vil bemærke, at motorerne stammer. Dette skyldes, at ESC'erne ikke er blevet kalibreret. For at gøre dette skal du se på instruktionerne på denne Github -side. Læs instruktionerne, åbn filen ESC-Calibration.ino, og følg disse instruktioner. Hvis du vil forstå, hvad der foregår, kan du tjekke denne vejledning af Electronoobs.

Mens du kører programmet, skal du sørge for at binde dronen med strenge, da det vil gå for fuld gas. Sørg også for, at propellerne ikke er tændt. Jeg lod kun mit være, fordi jeg er halvt vanvittig. FORLAD IKKE DINE PROPELLERE TIL !!! Denne demonstration vises i den anden video.

Trin 9: Jeg arbejder på koden. Vil afslutte det instruerbare om et par dage

Ville bare tilføje, at hvis du bruger denne vejledning og venter på mig, arbejder jeg stadig på det. Det er bare andre ting i mit liv, der også er dukket op, men bare rolig, jeg sender det snart. Lad os sige senest den 10. august 2019.

10. august -opdatering: Ville ikke lade dig hænge. Desværre har jeg ikke haft tid til at arbejde med projektet i den forløbne uge. Har haft meget travlt med andre ting. Jeg vil ikke føre dig videre. Forhåbentlig vil jeg fuldføre det instruerbare i den nærmeste fremtid. Hvis du har spørgsmål eller har brug for hjælp, kan du tilføje en kommentar herunder, og jeg vender tilbage til dig.

Anbefalede: