Innehållsförteckning:

Guiden jag önskade att jag hade om att bygga en Arduino Drone: 9 steg
Guiden jag önskade att jag hade om att bygga en Arduino Drone: 9 steg

Video: Guiden jag önskade att jag hade om att bygga en Arduino Drone: 9 steg

Video: Guiden jag önskade att jag hade om att bygga en Arduino Drone: 9 steg
Video: Lesson 98: Arduino 10 LED Push button Projects, Potentiometer LED Voltmeter and Traffic Light 2024, Juli
Anonim
Guiden jag önskade att jag hade om att bygga en Arduino Drone
Guiden jag önskade att jag hade om att bygga en Arduino Drone

Detta är dokument är en slags "How to guide" snedstreckad dokumentation som går igenom processen. Det tog mig att förstå begreppen för att uppnå mitt mål att bygga en enkel quadcopter som jag kunde styra från min mobiltelefon.

För att göra det här projektet ville jag få en uppfattning om vad en drönare egentligen är, i mitt fall en quadcopter, så jag började göra lite research. Jag tittade på många YouTube -videor, läste ett gäng artiklar och oförstörbara sidor och det här är vad jag fick.

I huvudsak kan du dela en drönare i två delar. Jag kallade det "Fysiskt" och "Controller". The Physical är i princip allt som har att göra med mekaniken som får drönaren att flyga. Det här är saker som motorn, ramen, batteriet, propellrar och allt annat som fysiskt ger drönaren möjlighet att flyga.

Controllern är i huvudsak flygkontrollen. Vad styr det fysiska så att drönaren kan flyga som en hel enhet utan att falla. I huvudsak mikrokontrollern, programvaran på den och sensorerna som hjälper den att triangulera dess lager. Så för att ha en drönare behövde jag en kontroller och ett gäng fysiska delar för kontrollen att "styra".

Tillbehör

Budget för projektet: $ 250

Tidsram: 2 veckor

Saker att köpa:

  • Fysisk ram $ 20
  • Blad $ 0 (levereras med ram)
  • Batteri 25 $
  • ESC (elektroniska hastighetsregulatorer) $ 0 (levereras med motorer)
  • Motorer $ 70

Flight Controller

  • Arduino nano $ 20
  • Arduino USB -kabel $ 2
  • Bluetooth-modul (HC-05) $ 8
  • 3 mm LED och 330 Ohm motstånd och ledningar $ 13
  • GY-87 (accelerometer, gyroskop) $ 5
  • Prototypbräda $ 10
  • Manliga och kvinnliga rubriker $ 5

Övrig

  • Lödkit $ 10
  • Multimeter $ 20

Jag ville njuta av att bygga detta projekt som ingenjör, så jag köpte några andra saker som jag inte behövde.

Totalt: $ 208

Steg 1: Min första erfarenhet

Efter att ha köpt alla mina komponenter satte jag ihop allt och försökte sedan starta drönaren med Multiwii (gå till programvara som en hel del DIY -drönarsamhället använder), men jag insåg snabbt att jag inte helt förstod vad jag gjorde för att det var många fel och jag hade ingen aning om hur jag skulle fixa dem.

Efter det bestämde jag mig för att ta isär drönaren och förstå varje komponent bit för bit och bygga om den på ett sätt så att jag helt skulle förstå allt som pågick.

I de följande avsnitten kommer jag att gå igenom processen att pussla ihop pusslet. Innan det får vi en snabb överblick.

Fysisk

För det fysiska bör vi ha: ramen, propellrarna, batteriet och escs. Dessa skulle vara ganska enkla att sätta ihop. För att förstå dessa delar och vilka du bör få kan du besöka denna länk. Han förklarar vad du behöver veta om att köpa var och en av delarna som jag har listat. Titta också på denna Youtube -video. Det kommer att hjälpa dig om du fastnar i att sätta ihop delarna.

Steg 2: Tips om hur du delar och felsöker de fysiska delarna

Tips om hur du delar och felsöker de fysiska delarna
Tips om hur du delar och felsöker de fysiska delarna

Propellrar och motorer

  • För att kontrollera om dina propellrar är i rätt riktning (vänd eller inte), när du snurrar dem i den riktning som motorerna indikerar (de flesta motorer har pilar som visar hur de ska snurra), ska du känna en vind under propellerna och inte över.
  • Skruvarna på motsatta propellrar ska ha samma färg.
  • Färgen på angränsande propellrar ska vara densamma.
  • Se också till att du har ordnat motorerna så att de snurrar precis som på bilden ovan.
  • Om du försöker vända motorn är det bara att byta trådar i motsatta ändar. Detta kommer att vända motorns riktning.

Batteri och ström

  • Om saker av någon anledning gnistrar och du inte kan förstå varför, är det troligtvis för att du har bytt positivt och negativt.
  • Om du inte är säker på när du ska ladda batterierna kan du använda en voltmeter för att kontrollera spänningen. Om det är lägre än vad specifikationerna på batteriet säger måste det laddas. Kolla in den här länken när du laddar dina batterier.
  • De flesta LIPO -batterier levereras inte med batteriladdare. Du köper dem separat.

Steg 3: Arduino -kontrollen

Arduino -kontrollen
Arduino -kontrollen

Detta är utan tvekan den svåraste delen av hela projektet. Det är väldigt lätt att spränga komponenter och felsökning kan vara extremt frustrerande om du inte vet vad du gör. Även i detta projekt kontrollerade jag min drönare med bluetooth och en app som jag visar dig hur du bygger. Detta gjorde projektet särskilt svårare eftersom 99% av självstudierna där ute använder radiokontroller (det här är inte ett faktum lol), men oroa dig inte, jag har gått igenom frustrationen för dig.

Tips innan du ger dig ut på denna resa

  • Använd en brödbräda innan du slutför din enhet på ett kretskort. Detta gör att du enkelt kan göra ändringar.
  • Om du har testat en komponent utförligt och det inte fungerar, fungerar det förmodligen inte!
  • Titta på spänningarna en enhet kan hantera innan du ansluter den!

    • Arduino kan hantera 6 till 20V, men försök att täcka den till 12V så att du inte spränger den. Du kan läsa mer om dess specifikationer här.
    • HC-05 klarar upp till 5V men vissa stift fungerar vid 3.3V så se upp för det. Vi pratar om det senare.
    • IMU (GY-521, MPU-6050) fungerar också på 5V.
  • Vi kommer att använda RemoteXY för att bygga vår app. Om du vill bygga den på en iOS-enhet måste du använda en annan Bluetooth-modul (HM-10). Du kan lära dig mer om detta på RemoteXY -webbplatsen.

Förhoppningsvis har du läst tipsen. Låt oss nu testa varje komponent som kommer att vara en del av styrenheten separat.

Steg 4: MPU-6050

MPU-6050
MPU-6050

Denna enhet har ett gyroskop och en accelerometer, så det berättar i huvudsak accelerationen i en riktning (X, Y, Z) och vinkelaccelerationen längs dessa riktningar.

För att testa detta kan vi använda självstudien om detta, vi kan använda den här självstudien på Arduino -webbplatsen. Om det fungerar bör du få en ström av accelerometer- och gyroskopvärden som ändras när du lutar, roterar och påskyndar installationen. Försök också att justera och manipulera koden så att du vet vad som händer.

Steg 5: HC-05 Bluetooth-modulen

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

Du behöver inte göra den här delen men det är viktigt för att kunna gå till AT -läge (inställningsläge) eftersom du med största sannolikhet kommer att behöva ändra en av modulens inställningar. Detta var en av de mest frustrerande delarna med detta projekt. Jag gjorde så mycket forskning för att ta reda på hur jag skulle få min modul till AT -läge, eftersom min enhet inte svarade på mina kommandon. Det tog mig 2 dagar att dra slutsatsen att min modul var trasig. Jag beställde en till och det fungerade. Kolla in den här självstudien om att komma in i AT -läge.

HC-05 finns i olika slag, det finns några med knappar och några utan och alla möjliga designvariabler. En som är konstant är dock att de alla har en "Pin 34". Kolla in denna handledning.

Saker du borde veta

  • För att gå till AT -läge, håll bara 5V till stift 34 på Bluetooth -modulen innan du ansluter ström till den.
  • Anslut en potentiell avdelare till RX -stiftet på modulen eftersom den fungerar på 3.3V. Du kan fortfarande använda den på 5V men den kan steka den där nålen om något går fel.
  • Om du använder Pin 34 (i stället för knappen eller på något annat sätt som du hittade online), kommer modulen att ställa in Bluetooth: s överföringshastighet till 38400. Det är därför i länken till självstudien ovan finns en rad i koden som säger:

BTSerial.begin (38400); // HC-05 standardhastighet i AT-kommandot mer

Om modulen fortfarande inte svarar med "OK", försök byta tx- och rx -stiften. Det borde vara:

Bluetooth => Arduino

RXD => TX1

TDX => RX0

Om det fortfarande inte fungerar väljer du att ändra stiften i koden till andra Arduino -stift. Testa, om det inte fungerar, byt tx- och rx -stiften, testa sedan igen

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

Ändra raden ovan. Du kan prova RX = 2, TX = 3 eller andra giltiga kombinationer. Du kan titta på Arduino -stiftnumren i bilden ovan.

Steg 6: Ansluta delarna

Ansluta delarna
Ansluta delarna

Nu när vi är säkra på att allt fungerar, är det dags att börja sätta ihop dem. Du kan ansluta delarna precis som visas i kretsen. Jag fick det från Electronoobs. Han hjälpte mig verkligen med det här projektet. Kolla in hans version av projektet här. Om du följer denna handledning behöver du inte oroa dig för mottagaranslutningarna: input_Yaw, input_Pitch, etc. Allt som hanteras med bluetooth. Anslut också bluetooth så som vi gjorde i föregående avsnitt. Mina tx- och rx -stift gav mig lite problem, så jag använde Arduinos:

RX som 2, och TX som 3, istället för de normala stiften. Därefter skriver vi en enkel app som vi kommer att fortsätta att förbättra tills vi har slutprodukten.

Steg 7: Skönheten i RemoteXY

Skönheten i RemoteXY
Skönheten i RemoteXY

Länge tänkte jag på ett enkelt sätt att bygga en användbar Remote -app som skulle låta mig styra drönaren. De flesta använder MIT App Inventor, men användargränssnittet är inte så vackert som jag skulle vilja och jag är inte heller ett fan av bildprogrammering. Jag kunde ha designat den med Android Studio men det skulle bara bli för mycket arbete. Jag blev väldigt glad när jag hittade en handledning med RemoteXY. Här är länken till webbplatsen. Det är extremt lätt att använda och dokumentationen är mycket bra. Vi kommer att skapa ett enkelt användargränssnitt för vår drönare. Du kan anpassa din som du vill. Se bara till att du vet vad du gör. Följ instruktionerna här.

När du har gjort det kommer vi att redigera koden så att vi kan ändra gasreglaget på vår copter. Lägg till raderna som har / **** saker du bör göra och varför *** / till din kod.

Om det inte kompilerar, se till att du har laddat ner biblioteket. Öppna också en exempelskiss och jämför vad den har som din inte har.

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

// RemoteXY välj anslutningsläge och inkludera bibliotek

#define REMOTEXY_MODE_HC05_SOFTSERIAL

#include #include #include

// RemoteXY -anslutningsinställningar

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

// Propellrar

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}; // denna struktur definierar alla variabler i din kontrollgränssnittsstruktur {

// inmatningsvariabel

int8_t joystick_x; // -100..100 x -koordinat joystickposition int8_t Joystick_y; // -100..100 y -koordinat joystickposition int8_t ThrottleSlider; // 0..100 skjutreglage

// annan variabel

uint8_t connect_flag; // = 1 om kabel är ansluten, annars = 0

} RemoteXY;

#pragma pack (pop)

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

// END RemoteXY inkluderar // ///////////////////////////////////////////// /

/********** Lägg till den här raden för att hålla gasvärdet **************/

int input_THROTTLE;

void setup () {

RemoteXY_Init ();

/********** Fäst motorerna på Pins Ändra värdena så att de passar dina ***************/

L_F_prop.attach (4); // vänster frammotor

L_B_prop.attach (5); // vänster bakmotor R_F_prop.attach (7); // höger frammotor R_B_prop.attach (6); // höger bakmotor

/************** Förhindra att esc går in i programmeringsläget ********************/

L_F_prop.writeMicroseconds (1000); L_B_prop.writeMicroseconds (1000); R_F_prop.writeMicroseconds (1000); R_B_prop.writeMicroseconds (1000); fördröjning (1000);

}

void loop () {

RemoteXY_Handler ();

/****** Kartlägg gasreglaget du får från appen till 1000 och 2000 som är de värden som de flesta ESC: er använder vid *********/

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

Steg 8: Testning

Om du har gjort allt rätt ska du kunna testa din copter genom att skjuta gasen upp och ner. Se till att du gör det här ute. Håll inte heller propellrarna på för det kommer att få copteren att hoppa. Vi har ännu inte skrivit koden för att balansera den, så det vore en DÅLIG IDÉ att testa detta med propellrarna på! Jag gjorde det bara för att lmao.

Demonstrationen är bara för att visa att vi ska kunna styra gasen från appen. Du kommer att märka att motorerna stammar. Detta beror på att ESC inte har kalibrerats. För att göra detta, ta en titt på instruktionerna på denna Github -sida. Läs instruktionerna, öppna filen ESC-Calibration.ino och följ dessa instruktioner. Om du vill förstå vad som händer, kolla in denna handledning av Electronoobs.

Medan du kör programmet, se till att du binder ner drönaren med strängar eftersom det kommer att gå för full gas. Se också till att propellrarna inte är på. Jag lämnade bara mitt för att jag är halvt galen. LÄMNA INTE DINA PROPELLÖRER !!! Denna demonstration visas i den andra videon.

Steg 9: Jag arbetar med koden. Kommer att avsluta instruktionen på några dagar

Ville bara tillägga att om du använder den här självstudien och väntar på mig, arbetar jag fortfarande på den. Det är bara andra saker i mitt liv som har kommit fram som jag också arbetar med, men oroa dig inte, jag lägger upp det snart. Låt oss säga senast den 10 augusti 2019.

10 augusti uppdatering: Ville inte låta dig hänga. Tyvärr har jag inte haft tid att arbeta med projektet den senaste veckan. Har varit väldigt upptagen med andra saker. Jag vill inte leda dig vidare. Förhoppningsvis kommer jag att slutföra det instruerbara inom en snar framtid. Om du har några frågor eller behöver hjälp kan du lägga till en kommentar nedan så återkommer jag till dig.

Rekommenderad: