Innholdsfortegnelse:

Lage et Rc -fly med 2 Arduinoer: 5 trinn
Lage et Rc -fly med 2 Arduinoer: 5 trinn

Video: Lage et Rc -fly med 2 Arduinoer: 5 trinn

Video: Lage et Rc -fly med 2 Arduinoer: 5 trinn
Video: Урок 95: Использование щита двигателей постоянного тока L293D 4 для Arduino UNO и Mega | Пошаговый курс Arduino 2024, November
Anonim
Opprette et RC -fly med 2 Arduino -er
Opprette et RC -fly med 2 Arduino -er

Å lage et fly er en morsom utfordring. Det blir spesielt utfordrende når du bruker arduinoer i stedet for en forhåndsbygd kontroller og mottaker.

I denne veiledningen vil jeg vise deg hvordan jeg gjorde for å lage et radiostyrt fly med to arduinoer.

Trinn 1: Hva du trenger

Du vil trenge:

- En børsteløs motor

- En esc for motoren

- 2 servoer

- 1 arduino uno

- 1 arduino nano

- En propell

- 2 nrf24l01 moduler

- 2 10uf kondensatorer

- Skumplater

- Et potensiometer

- En joystick -modul

- Et 3 amp 7,2 volt niMH -batteri

Trinn 2: Radiokontrollene

Radiokontrollene
Radiokontrollene
Radiokontrollene
Radiokontrollene

Jeg brukte en nrf24l01 for å kontrollere flyet. Denne modulen har en rekkevidde på 1 km. Du kan se hvordan du kobler til nrf24l01 i opplegget vist ovenfor. Du må også lodde kondensatoren mellom bakken og 3,3 volt for å finne potensielle spenningsfall.

Det neste trinnet er å få innspill fra kontrolleren. Jeg brukte en joystick for ror- og heiskontrollene og et potensiometer for motorstyringen. Du må koble potensiometeret til pin A0, jeg koblet joysticken til pin A1 og A2.

Nå må vi lage mottakeren. Jeg brukte en arduino nano for mottakeren fordi den er mindre. Du må også koble nrf24l01 til denne adruinoen. Etter det må du koble servoene og esc (elektronisk hastighetskontroll for motoren) til arduinoen. Jeg koblet til servo til pin D4 og D5, esc var koblet til pin D9.

Dette er koden jeg brukte for senderen:

#include #include #include

RF24 radio (7, 8);

const byte adresse [6] = "00001";

ugyldig oppsett () {

radio.begin (); radio.openWritingPipe (adresse); radio.setPALevel (RF24_PA_MAX); radio.setDataRate (RF24_250KBPS); radio.stopListening (); Serial.begin (9600); }

void loop () {

int s = analogRead (0); int x = analogRead (1); int y = analogRead (2); String str = Streng (er); str += '|' + String (x) + '|' + Streng (y); Serial.println (str); const char tekst [20]; str.toCharArray (tekst, 20); Serial.println (tekst); radio.write (& tekst, sizeof (tekst)); forsinkelse (10);

}

og her er koden for mottakeren:

#include #include #include #include

Servo esc;

Servo sx; Servo sy; RF24 radio (7, 8);

const byte adresse [6] = "00001";

ugyldig oppsett () {

// legg oppsettskoden her for å kjøre en gang: radio.begin (); radio.openReadingPipe (0, adresse); radio.setPALevel (RF24_PA_MAX); radio.setDataRate (RF24_250KBPS); esc.attach (9); sx. fest (4); sy. fest (5); esc.writeMicroseconds (1000); // initialiser signalet til 1000 radio.startListening (); Serial.begin (9600); }

void loop () {

char text [32] = ""; if (radio.available ()) {radio.read (& text, sizeof (text)); String transData = String (tekst); //Serial.println(getValue(transData, '|', 1));

int s = getValue (transData, '|', 0).toInt ();

s = kart (s, 0, 1023, 1000, 2000); // mapping val til minimum og maksimum (Endre om nødvendig) Serial.println (transData); esc.writeMicroseconds (s); // ved å bruke val som signal til esc int sxVal = getValue (transData, '|', 1).toInt (); int syVal = getValue (transData, '|', 2).toInt ();

sx.write (kart (sxVal, 0, 1023, 0, 180));

sy.write (kart (syVal, 0, 1023, 0, 180));

}

}

String getValue (String data, char separator, int index)

{int funnet = 0; int strIndex = {0, -1}; int maxIndex = data.length ()-1;

for (int i = 0; i <= maxIndex && funnet <= index; i ++) {if (data.charAt (i) == separator || i == maxIndex) {funnet ++; strIndex [0] = strIndex [1] +1; strIndex [1] = (i == maxIndex)? i+1: i; }}

tilbake funnet> indeks? data.substring (strIndex [0], strIndex [1]): "";

}

Trinn 3: Fusualage og Stabalizers

Fusualage og Stabalizers
Fusualage og Stabalizers

Nå som du har satt opp elektronikken din, trenger du et fly for å sette elektronikken i. Jeg brukte skumplater fordi den er lett og relativt sterk. Fusualgen er bare en rektangel som blir tynnere mot halen. Fusualgen er ikke så viktig for aerodynamikk. Det viktigste er at alt vil passe inn i det samtidig som det holder det så lite og lett som mulig.

Den horisontale og vertikale stabilisatoren er lett å lage. Det eneste viktige er at stabilisatorene dine er helt rette. Stabilisatorene er ansvarlige for å holde flyet stabilt. Når stabilisatorene dine ikke er rette, vil flyet ditt være ustabilt.

Trinn 4: Vingene

Vingene
Vingene

Vingene er sannsynligvis den viktigste tingen, du må lage en profil for å generere løft. På bildet ovenfor kan du se hvordan jeg laget flybladet mitt.

Det viktigste er at tyngdepunktet til flyet er rundt det høyeste punktet på profilen. på denne måten blir flyet stabilt.

Trinn 5: Sette alt sammen

Å sette alt sammen
Å sette alt sammen
Å sette alt sammen
Å sette alt sammen
Å sette alt sammen
Å sette alt sammen

Nå som vi har gjort alle delene, må vi sette alt sammen.

Servoen må kobles til stablaizerne. dette kan gjøres med kontrollstenger (se bildet ovenfor)

Motoren må settes på et stykke skum og limes foran flyet (eller bruk elestiske bånd slik at du kan fjerne det når du trenger det).

du trenger en propell for å sette på motoren, størrelsen på denne propellen avhenger av motoren. Det er veldig komplisert å beregne den optimale størrelsen. Men en generell regel er at jo sterkere motoren er, desto større kan propellen være.

For batteriet anbefales det å bruke lipo -batterier. Disse batteriene trenger imidlertid en spesiell lader hvis du ikke vil at de skal eksplodere. Derfor brukte jeg nimh -batterier, disse er tyngre, men enklere og billigere å bruke.

Anbefalt: