Turinys:

Rc lėktuvo sukūrimas naudojant 2 „Arduino“: 5 žingsniai
Rc lėktuvo sukūrimas naudojant 2 „Arduino“: 5 žingsniai

Video: Rc lėktuvo sukūrimas naudojant 2 „Arduino“: 5 žingsniai

Video: Rc lėktuvo sukūrimas naudojant 2 „Arduino“: 5 žingsniai
Video: RC Smilgos Aurora su Gopro Hero 2 2024, Liepa
Anonim
Rc lėktuvo kūrimas naudojant 2 „Arduino“
Rc lėktuvo kūrimas naudojant 2 „Arduino“

Lėktuvo gamyba yra įdomus iššūkis. Tai tampa ypač sudėtinga, kai vietoj išankstinio valdymo valdiklio ir imtuvo naudojate arduino.

Šioje pamokoje aš jums parodysiu, kaip sukūriau radijo bangomis valdomą lėktuvą su dviem arduino.

1 žingsnis: ko jums reikės

Jums reikės:

- Variklis be šepetėlių

- Esc varikliui

- 2 servai

- 1 arduino uno

- 1 arduino nano

- Sraigtas

- 2 nrf24l01 moduliai

- 2 10uf kondensatoriai

- Putų lenta

- potenciometras

- vairasvirtės modulis

- 3 amperų 7,2 voltų niMH baterija

2 žingsnis: radijo valdymas

Radijo valdikliai
Radijo valdikliai
Radijo valdikliai
Radijo valdikliai

Lėktuvui valdyti naudoju nrf24l01. Šio modulio nuotolis yra 1 km. Galite pamatyti, kaip prijungti nrf24l01 aukščiau pateiktoje schemoje. Taip pat turite lituoti kondensatorių tarp žemės ir 3,3 volto, kad sumažintumėte galimus įtampos kritimus.

Kitas žingsnis yra gauti įvestį iš valdiklio. Aš naudoju vairasvirtę vairo ir lifto valdikliams, o potenciometrą - variklio valdymui. Jūs turite prijungti potenciometrą prie kaiščio A0, aš prijungiau vairasvirtę prie A1 ir A2 kaiščių.

Dabar turime pagaminti imtuvą. Imtuvui naudojau arduino nano, nes jis yra mažesnis. Prie šio „Adruino“taip pat turite prijungti nrf24l01. Po to prie arduino reikia prijungti servos ir esc (variklio elektroninis greičio reguliatorius). Aš prijungiau prie servo prie D4 ir D5 kaiščių, esc buvo prijungtas prie D9 kaiščio.

Šį kodą naudojau siųstuvui:

#įtraukti #įtraukti #įtraukti

Radijas RF24 (7, 8);

const baitų adresas [6] = "00001";

void setup () {

radio.begin (); radio.openWritingPipe (adresas); 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); Eilutė str = Styga (-os); str += '|' + Eilutė (x) + '|' + Eilutė (y); Serial.println (str); const char tekstas [20]; str.toCharArray (tekstas, 20); Serial.println (tekstas); radio.write (& tekstas, dydis (tekstas)); vėlavimas (10);

}

ir čia yra imtuvo kodas:

#įtraukimas #įtraukimas #įtraukimas #įtraukimas

Servo esc;

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

const baitų adresas [6] = "00001";

void setup () {

// įdėkite čia savo sąrankos kodą, kad paleistumėte vieną kartą: radio.begin (); radio.openReadingPipe (0, adresas); radio.setPALevel (RF24_PA_MAX); radio.setDataRate (RF24_250KBPS); esc. priedas (9); sx.attach (4); sy.attach (5); esc.writeMikrosekundės (1000); // inicijuoti signalą iki 1000 radijo.startListening (); Serial.begin (9600); }

void loop () {

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

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

s = žemėlapis (s, 0, 1023, 1000, 2000); // kartografavimas val iki minimumo ir maksimumo (jei reikia, pakeiskite) Serial.println (transData); esc.writeMikrosekundės; // naudojant val kaip signalą į esc int sxVal = getValue (transData, '|', 1).toInt (); int syVal = getValue (transData, '|', 2). toInt ();

sx.write (žemėlapis (sxVal, 0, 1023, 0, 180));

sy.write (žemėlapis (syVal, 0, 1023, 0, 180));

}

}

Styga „getValue“(eilutės duomenys, simbolių skyriklis, int indeksas)

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

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

grąžinimas rastas> indeksas? data.substring (strIndex [0], strIndex [1]): "";

}

3 žingsnis: fuzualas ir stabilizatoriai

Fusualage ir stabilizatoriai
Fusualage ir stabilizatoriai

Dabar, kai jau turite elektroniką, jums reikia lėktuvo, kad galėtumėte įdėti elektroniką. Aš naudoju putų plokštę, nes ji yra lengva ir gana tvirta. Fusualge yra tik stačiakampis, kuris plonėja link uodegos. Sujungimas nėra toks svarbus aerodinamikai. Svarbiausia, kad viskas tilptų, tuo pačiu išlaikant kuo mažesnį ir lengvesnį.

Horizontalus ir vertikalus stabilizatorius yra lengvai pagamintas. Svarbu tik tai, kad jūsų stabilizatoriai yra visiškai tiesūs. Stabilizatoriai yra atsakingi už tai, kad lėktuvas būtų stabilus. Kai jūsų stabilizatoriai nėra tiesūs, jūsų lėktuvas bus nestabilus.

4 žingsnis: sparnai

Sparnai
Sparnai

Sparnai tikriausiai yra svarbiausias dalykas, jums reikia sukurti sklendę, kad būtų sukurtas pakėlimas. Aukščiau esančioje nuotraukoje galite pamatyti, kaip aš padariau savo aerodromą.

Svarbiausia, kad lėktuvo svorio centras būtų aplink aukščiausią aerodinaminio sluoksnio tašką. tokiu būdu lėktuvas bus stabilus.

5 žingsnis: Sujunkite viską

Viską sujungti
Viską sujungti
Viską sujungti
Viską sujungti
Viską sujungti
Viską sujungti

Dabar, kai visos dalys jau padarytos, turime viską sujungti.

Servo reikia prijungti prie stabilizatorių. tai galima padaryti naudojant valdymo strypus (žr. paveikslėlį aukščiau)

Variklį reikia uždėti ant putplasčio gabalo ir priklijuoti prieš plokštumą (arba naudokite elestines juostas, kad prireikus galėtumėte jį pašalinti).

variklį reikia uždėti sraigtu, šio sraigto dydis priklauso nuo variklio. Apskaičiuoti optimalų dydį yra labai sudėtinga. Tačiau bendra taisyklė yra ta, kad kuo stipresnis variklis, tuo didesnis gali būti sraigtas.

Baterijoms rekomenduojama naudoti lipo baterijas. tačiau šioms baterijoms reikia specialaus įkroviklio, jei nenorite, kad jos sprogtų. Štai kodėl aš naudoju nimh baterijas, jos yra sunkesnės, tačiau lengviau ir pigiau naudojamos.

Rekomenduojamas: