Indholdsfortegnelse:

Oprettelse af et Rc -fly med 2 Arduino'er: 5 trin
Oprettelse af et Rc -fly med 2 Arduino'er: 5 trin

Video: Oprettelse af et Rc -fly med 2 Arduino'er: 5 trin

Video: Oprettelse af et Rc -fly med 2 Arduino'er: 5 trin
Video: Multiple Servo Motor Control with Joystick and Arduino 2024, Juli
Anonim
Oprettelse af et Rc -fly med 2 Arduino'er
Oprettelse af et Rc -fly med 2 Arduino'er

At lave et fly er en sjov udfordring. Det bliver især udfordrende, når du bruger arduinoer i stedet for en forudbygget controller og modtager.

I denne tutorail vil jeg vise dig, hvordan jeg gik til at lave et radiostyret fly med to arduinoer.

Trin 1: Hvad du får brug for

Du får brug for:

- En børsteløs motor

- En esc til motoren

- 2 servoer

- 1 arduino uno

- 1 arduino nano

- En propel

- 2 nrf24l01 moduler

- 2 10uf kondensatorer

- Skumplade

- Et potentiometer

- Et joystick -modul

- Et 3 amp 7,2 volt niMH batteri

Trin 2: Radiostyringen

Radiostyringen
Radiostyringen
Radiostyringen
Radiostyringen

Jeg brugte en nrf24l01 til at styre flyet. Dette modul har en rækkevidde på 1 km. Du kan se, hvordan du forbinder nrf24l01 i ovenstående skema. Du skal også lodde kondensatoren mellem jorden og 3,3 volt for at finde frem til potentielle spændingsfald.

Det næste trin er at få input fra din controller. Jeg brugte et joystick til roret og elevatoren og et potentiometer til motorstyringen. Du skal forbinde potentiometeret til pin A0, jeg tilsluttede joysticket til pin A1 og A2.

Nu skal vi lave modtageren. Jeg brugte en arduino nano til modtageren, fordi den er mindre. Du skal også forbinde nrf24l01 til denne adruino. Derefter skal du slutte servoer og esc (elektronisk hastighedsregulator til motoren) til arduinoen. Jeg sluttede til servoer til pin D4 og D5, escen var forbundet til pin D9.

Dette er den kode, jeg brugte til senderen:

#include #include #include

RF24 radio (7, 8);

const byte adresse [6] = "00001";

ugyldig opsætning () {

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 = String (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 til modtageren:

#include #include #include #include

Servo esc;

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

const byte adresse [6] = "00001";

ugyldig opsætning () {

// sæt din opsætningskode her for at køre en gang: radio.begin (); radio.openReadingPipe (0, adresse); radio.setPALevel (RF24_PA_MAX); radio.setDataRate (RF24_250KBPS); esc.attach (9); sx. vedhæftning (4); sy.attach (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 = kort (s, 0, 1023, 1000, 2000); // mapping val til minimum og maksimum (Ændr om nødvendigt) Serial.println (transData); esc.writeMicroseconds (s); // ved hjælp af val som signal til esc int sxVal = getValue (transData, '|', 1).toInt (); int syVal = getValue (transData, '|', 2).toInt ();

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

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

}

}

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

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

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

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

}

Trin 3: Fusualage og Stabalizers

Fusualage og Stabalizers
Fusualage og Stabalizers

Nu hvor du har sat din elektronik op, skal du have et fly til at sætte elektronikken i. Jeg brugte skumplader, fordi det er let og relativt stærkt. Fusualgen er bare en rektang, der bliver tyndere mod halen. Fusualgen er ikke så vigtig for aerodynamik. Det vigtigste er, at alt vil passe ind i det og samtidig holde det så lille og let som muligt.

Den vandrette og lodrette stabilisator er let at lave. Det eneste vigtige er, at dine stabilisatorer er helt lige. Stabilisatorerne er ansvarlige for at holde flyet stabilt. Når dine stabilisatorer ikke er lige, vil dit fly være ustabilt.

Trin 4: Vingerne

Vingerne
Vingerne

Vingerne er sandsynligvis den mest vigtige ting, du skal oprette en profil for at generere løft. På billedet ovenfor kan du se, hvordan jeg lavede min airfoil.

Det vigtigste er, at flyets tyngdepunkt er omkring det højeste punkt på flyvepladen. på denne måde vil flyet være stabilt.

Trin 5: Sætte alt sammen

Sætter alt sammen
Sætter alt sammen
Sætter alt sammen
Sætter alt sammen
Sætter alt sammen
Sætter alt sammen

Nu hvor vi har alle dele udført, skal vi sætte det hele sammen.

Servoen skal forbindes til stablaizerne. dette kan gøres med kontrolstænger (se billedet ovenfor)

Motoren skal sættes på et stykke skum og limes foran flyet (eller brug elestikbånd, så du kan fjerne det, når du har brug for det).

du har brug for en propel til at sætte motoren på, størrelsen på denne propel afhænger af motoren. Det er meget kompliceret at beregne den optimale størrelse. Men en generel regel er, at jo stærkere motoren er, desto større kan propellen være.

Til batteriet anbefales det at bruge lipo batterier. disse batterier har dog brug for en speciel oplader, hvis du ikke vil have dem til at eksplodere. Derfor brugte jeg nimh batterier, disse er tungere, men lettere og billigere at bruge.

Anbefalede: