Բովանդակություն:

2 Arduino- ով Rc ինքնաթիռի ստեղծում. 5 քայլ
2 Arduino- ով Rc ինքնաթիռի ստեղծում. 5 քայլ

Video: 2 Arduino- ով Rc ինքնաթիռի ստեղծում. 5 քայլ

Video: 2 Arduino- ով Rc ինքնաթիռի ստեղծում. 5 քայլ
Video: ESP32 Tutorial 17 - Controlling Servo Motor using ESP32 and Potentiometer -ESP32 IoT Learnig kit 2024, Հուլիսի
Anonim
2 Arduino- ով RC ինքնաթիռի ստեղծում
2 Arduino- ով RC ինքնաթիռի ստեղծում

Ինքնաթիռ պատրաստելը զվարճալի մարտահրավեր է: Հատկապես դժվար է դառնում, երբ փոխարենը օգտագործում եք arduino- ի նախնական կառուցման վերահսկիչ և ընդունիչ:

Այս ձեռնարկում ես ձեզ ցույց կտամ, թե ինչպես ես աշխատեցի ռադիոյի միջոցով կառավարվող ինքնաթիռ պատրաստել երկու arduino- ով:

Քայլ 1: Այն, ինչ ձեզ հարկավոր կլինի:

Ձեզ հարկավոր կլինի.

- Անխոզանակ շարժիչ

- Շարժիչի համար անհրաժեշտ է

- 2 հատ

- 1 arduino uno

- 1 arduino nano

- Պտուտակ

- 2 nrf24l01 մոդուլ

- 2 10uf կոնդենսատոր

- փրփուր տախտակ

- պոտենցիոմետր

- joyոյստիկ մոդուլ

- 3 ամպ 7,2 վոլտ niMH մարտկոց

Քայլ 2: Ռադիոկառավարիչներ

Ռադիոկառավարիչներ
Ռադիոկառավարիչներ
Ռադիոկառավարիչներ
Ռադիոկառավարիչներ

Ինքնաթիռը կառավարելու համար օգտագործեցի nrf24l01: Այս մոդուլի հեռահարությունը 1 կմ է: Դուք կարող եք տեսնել, թե ինչպես միացնել nrf24l01- ը վերը նշված սխեմայում: Անհրաժեշտ է նաև կոնդենսատորը միացնել գետնի և 3.3 վոլտի միջև ՝ լարման պոտենցիալ անկումներ առաջացնելու համար:

Հաջորդ քայլը ձեր վերահսկիչից մուտքագրումն է: Ես օգտագործել եմ ջոյսթիկ ղեկի և վերելակի կառավարման համար և պոտենցիոմետր ՝ շարժիչի կառավարման համար: Պոտենցիոմետրը պետք է միացնել A0 կապին, ես ջոյսթիկը միացրել եմ A1 և A2 կապումներին:

Այժմ մենք պետք է պատրաստենք ընդունիչը: Ես ընդունիչի համար օգտագործեցի arduino nano, քանի որ այն ավելի փոքր է: Դուք նույնպես պետք է nrf24l01- ը միացնեք այս adruino- ին: Դրանից հետո դուք պետք է միացնեք սերվերը և esc- ը (շարժիչի արագության էլեկտրոնային կարգավորիչ) arduino- ին: Ես միացա servo- ին D4 և D5 կապին, իսկ esc- ը ՝ D9 կապին:

Ահա այն կոդը, որն օգտագործել եմ հաղորդիչի համար

#ներառել #ներառել #ներառել

RF24 ռադիո (7, 8);

const բայթ հասցե [6] = "00001";

void setup () {

radio.begin (); radio.openWritingPipe (հասցե); radio.setPALevel (RF24_PA_MAX); radio.setDataRate (RF24_250KBPS); radio.stopListening (); Serial.begin (9600); }

դատարկ շրջան () {

int s = analogRead (0); int x = analogRead (1); int y = analogRead (2); String str = Լար (ներ); փող += '|' + Լար (x) + '|' + Լար (y); Serial.println (փող); const char տեքստ [20]; str.toCharArray (տեքստ, 20); Serial.println (տեքստ); radio.write (& text, sizeof (text)); ուշացում (10);

}

և ահա ստացողի կոդը

#ներառել #ներառել #ներառել #ներառել

Servo esc;

Servo sx; Servo sy; RF24 ռադիո (7, 8);

const բայթ հասցե [6] = "00001";

void setup () {

// տեղադրեք ձեր տեղադրման կոդը այստեղ ՝ մեկ անգամ գործարկելու համար. radio.begin (); radio.openReadingPipe (0, հասցե); radio.setPALevel (RF24_PA_MAX); radio.setDataRate (RF24_250KBPS); esc. կցել (9); sx. կցել (4); sy.attach (5); esc.writeMicroseconds (1000); // սկզբնականացնել ազդանշանը 1000 radio.startListening (); Serial.begin (9600); }

դատարկ շրջան () {

char տեքստ [32] = ""; եթե (radio.available ()) {radio.read (& text, sizeof (text))); Լար transData = Լար (տեքստ); //Serial.println(getValue(transData, '|', 1));

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

s = քարտեզ (s, 0, 1023, 1000, 2000); // քարտեզագրման արժեքը նվազագույնին և առավելագույնին (Փոխել անհրաժեշտության դեպքում) Serial.println (transData); esc.writeMicroseconds (ներ); // օգտագործելով val որպես ազդանշան esc int sxVal = getValue (transData, '|', 1).toInt (); int syVal = getValue (transData, '|', 2).toInt ();

sx.write (քարտեզ (sxVal, 0, 1023, 0, 180));

sy.write (քարտեզ (syVal, 0, 1023, 0, 180));

}

}

String getValue (Լարային տվյալներ, char անջատիչ, int ինդեքս)

{int գտնվեց = 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) {found ++; strIndex [0] = strIndex [1] +1; strIndex [1] = (i == maxIndex)? i+1: i; }}

վերադարձը գտնվեց> ինդեքս? data.substring (strIndex [0], strIndex [1]) ՝ "";

}

Քայլ 3. Ֆուսուլյաժը և կայունացուցիչները

Ֆուսուալաժը և կայունացուցիչները
Ֆուսուալաժը և կայունացուցիչները

Այժմ, երբ դուք սարքավորել եք ձեր էլեկտրոնիկան, ձեզ անհրաժեշտ է ինքնաթիռ ՝ էլեկտրոնիկան տեղադրելու համար: Ես օգտագործել եմ փրփուրը, քանի որ այն թեթև է և համեմատաբար ամուր: Միաձուլումը պարզապես ուղղանկյուն է, որը բարականում է դեպի պոչը: Միակցումն այնքան էլ կարևոր չէ աերոդինամիկայի համար: Ամենակարևորն այն է, որ ամեն ինչ տեղավորվի դրա մեջ, միևնույն ժամանակ այն հնարավորինս փոքր և թեթև պահելով:

Հորիզոնական և ուղղահայաց կայունացուցիչը հեշտությամբ կարելի է պատրաստել: Միակ կարևորն այն է, որ ձեր ստաբիլիզատորները կատարյալ ուղիղ լինեն: Կայունացուցիչները պատասխանատու են ինքնաթիռը կայուն պահելու համար: Երբ ձեր ստաբիլիզատորները ուղիղ չեն, ձեր ինքնաթիռը անկայուն կլինի:

Քայլ 4: The Wings

The Wings
The Wings

Թևերը, ամենայն հավանականությամբ, ամենակարևորն են, վերելակ ստեղծելու համար հարկավոր է ստեղծել օդափոխիչ: Վերևի նկարում դուք կարող եք տեսնել, թե ինչպես եմ պատրաստել իմ թռիչքը:

Ամենակարևորն այն է, որ ինքնաթիռի ծանրության կենտրոնը գտնվում է թռիչքի ամենաբարձր կետի շուրջը: այս կերպ ինքնաթիռը կայուն կլինի:

Քայլ 5: Ամեն ինչ միասին դնելը:

Ամեն ինչ միասին դնելը
Ամեն ինչ միասին դնելը
Ամեն ինչ միասին դնելը
Ամեն ինչ միասին դնելը
Ամեն ինչ միասին դնելը
Ամեն ինչ միասին դնելը

Այժմ, երբ մենք ավարտել ենք բոլոր մասերը, մենք պետք է բոլորը միասին հավաքենք:

Սերվոյի անհրաժեշտությունը միացված է ստաբլայզերներին: դա կարելի է անել կառավարման ձողերով (տե՛ս վերը նկարը)

Շարժիչը պետք է դրվի փրփուրի կտորի վրա և սոսնձվի ինքնաթիռի դիմաց (կամ օգտագործեք էլաստիկ ժապավեններ, որպեսզի անհրաժեշտության դեպքում հեռացնեք այն):

շարժիչի վրա դնելու համար անհրաժեշտ է պտուտակ, այս պտուտակի չափը կախված է շարժիչից: Շատ բարդ է հաշվարկել օպտիմալ չափը: Բայց ընդհանուր կանոնն այն է, որ որքան հզոր է շարժիչը, այնքան մեծ է պտուտակը:

Մարտկոցի համար խորհուրդ է տրվում օգտագործել լիպո մարտկոցներ: սակայն, այս մարտկոցներին անհրաժեշտ է հատուկ լիցքավորիչ, եթե չեք ցանկանում, որ դրանք պայթեն: Ահա թե ինչու ես օգտագործեցի nimh մարտկոցներ, դրանք ավելի ծանր են, բայց ավելի հեշտ և էժան:

Խորհուրդ ենք տալիս: