Indholdsfortegnelse:
- Forbrugsvarer
- Trin 1: Min første erfaring
- Trin 2: Tips til sammenføjning og fejlfinding af de fysiske dele
- Trin 3: Arduino -controlleren
- Trin 4: MPU-6050
- Trin 5: HC-05 Bluetooth-modulet
- Trin 6: Tilslutning af delene
- Trin 7: Skønheden i RemoteXY
- Trin 8: Test
- Trin 9: Jeg arbejder på koden. Vil afslutte det instruerbare om et par dage
Video: Vejledningen, jeg ville ønske, jeg havde om at bygge en Arduino Drone: 9 trin
2024 Forfatter: John Day | [email protected]. Sidst ændret: 2024-01-30 08:27
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
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
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
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
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
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
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:
Hvordan lavede jeg min egen boksemaskine ?: 11 trin (med billeder)
Hvordan lavede jeg min egen boksemaskine ?: Der er ingen fantastisk historie bag dette projekt - jeg kunne bare altid lide boksemaskinerne, der var placeret forskellige populære steder. Jeg besluttede at bygge min
Lad os bygge en SN76489 USB MIDI Synth med Arduino Nano: 7 trin
Lad os bygge en SN76489 USB MIDI Synth med Arduino Nano: Har du nogensinde ønsket at bygge din egen synthesizer baseret på gamle chip-melodier fra 80'erne? Spil enkle polyfoniske melodier, der lyder ligesom disse gamle Sega Master System og Megadrive videospil lød som? Jeg har, så jeg bestilte et par SN76489 chips fra eb
Alt hvad du behøver at vide for at bygge en DRONE med FPV: 13 trin
Alt, hvad du har brug for at vide for at bygge en DRONE med FPV: Så … at bygge en drone kan være både let og hårdt, meget dyrt eller legitimt, det er en rejse, du går ind og udvikler undervejs … jeg er vil lære dig, hvad du har brug for, jeg kommer ikke til at dække alt, hvad der er på markedet, men kun dem
Arduino Word Clock - Kan tilpasses og er let at bygge: 15 trin (med billeder)
Arduino Word Clock - Kan tilpasses og er let at bygge: Min partner så et ur i en butik, der fortalte dig tidspunktet ved at tænde ord for at skrive en fuldskrevet sætning fra det, der virkede som et virvar af tilfældige bogstaver. Vi kunne godt lide uret, men ikke prisen - så vi besluttede at lave et af vores eget design Ansigtet på
En fan til alt, hvad du måtte ønske: 4 trin
En fan til hvad end du måtte ønske: Ok, tid til at lave en fan, du kan gøre det, uanset hvad du ønsker. de dele, du muligvis har brug for, er Den mest kraftfulde motor, du kan få …. Nå … Inden for ventilatorgrænser selvfølgelig …. (og ventilatorgrænser er ikke bilmotorer, de store kæmpe blæs-væk-motorer bagefter