Cuprins:
- Pasul 1: De ce veți avea nevoie
- Pasul 2: comenzile radio
- Pasul 3: Obișnuitul și Stabalizerele
- Pasul 4: Aripile
- Pasul 5: Puneți totul laolaltă
Video: Crearea unui plan Rc cu 2 Arduino: 5 pași
2024 Autor: John Day | [email protected]. Modificat ultima dată: 2024-01-30 11:46
A face un avion este o provocare distractivă. Devine deosebit de dificil când folosești arduino în loc de un controler și un receptor pre-construiți.
În acest tutorial vă voi arăta cum am făcut un avion controlat radio cu două arduino.
Pasul 1: De ce veți avea nevoie
Vei avea nevoie:
- Un motor fără perii
- Un esc pentru motor
- 2 servome
- 1 arduino uno
- 1 arduino nano
- O elice
- 2 module nrf24l01
- 2 condensatori 10uf
- Placa de spuma
- Un potențiometru
- Un modul joystick
- O baterie NiMH de 3 amp 7,2 volți
Pasul 2: comenzile radio
Am folosit un nrf24l01 pentru a controla avionul. Acest modul are o autonomie de 1 km. Puteți vedea cum să conectați nrf24l01 în schema de mai sus. De asemenea, trebuie să lipiți condensatorul între pământ și 3,3 volți pentru a acumula potențiale căderi de tensiune.
Următorul pas este să obțineți intrări de la controler. Am folosit un joystick pentru comenzile cârmei și liftului și un potențiometru pentru controlul motorului. Trebuie să conectați potențiometrul la pinul A0, eu am conectat joystick-ul la pinul A1 și A2.
Acum trebuie să facem receptorul. Am folosit un nano arduino pentru receptor, deoarece este mai mic. Trebuie să conectați nrf24l01 și la acest adruino. După aceea, trebuie să conectați servo-urile și esc (regulatorul electronic de viteză pentru motor) la arduino. M-am conectat la servo la pinul D4 și D5, esc a fost conectat la pinul D9.
Acesta este codul pe care l-am folosit pentru transmițător:
#include #include #include
Radio RF24 (7, 8);
adresa de octet const [6] = "00001";
configurare nulă () {
radio.begin (); radio.openWritingPipe (adresa); radio.setPALevel (RF24_PA_MAX); radio.setDataRate (RF24_250KBPS); radio.stopListening (); Serial.begin (9600); }
bucla nulă () {
int s = analogRead (0); int x = analogRead (1); int y = analogRead (2); String str = String (s); str + = '|' + Șir (x) + '|' + Șir (y); Serial.println (str); text const char [20]; str.toCharArray (text, 20); Serial.println (text); radio.write (& text, sizeof (text)); întârziere (10);
}
și iată codul receptorului:
#include #include #include #include
Servo esc;
Servo sx; Servo sy; Radio RF24 (7, 8);
adresa de octet const [6] = "00001";
configurare nulă () {
// puneți codul de configurare aici, pentru a rula o dată: radio.begin (); radio.openReadingPipe (0, adresa); radio.setPALevel (RF24_PA_MAX); radio.setDataRate (RF24_250KBPS); esc.attach (9); sx.attach (4); sy.attach (5); esc.writeMicroseconds (1000); // inițializați semnalul la 1000 radio.startListening (); Serial.begin (9600); }
bucla nulă () {
text char [32] = ""; if (radio.available ()) {radio.read (& text, sizeof (text)); Șir transData = Șir (text); //Serial.println(getValue(transData, '|', 1));
int s = getValue (transData, '|', 0).toInt ();
s = hartă (s, 0, 1023, 1000, 2000); // mapare val la minim și maxim (Schimbați dacă este necesar) Serial.println (transData); esc.writeMicroseconds (s); // folosind val ca semnal pentru esc int sxVal = getValue (transData, '|', 1).toInt (); int syVal = getValue (transData, '|', 2).toInt ();
sx.write (hartă (sxVal, 0, 1023, 0, 180));
sy.write (hartă (syVal, 0, 1023, 0, 180));
}
}
String getValue (Date șir, separator de caractere, index int)
{int găsit = 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; }}
returnare găsită> index? data.substring (strIndex [0], strIndex [1]): "";
}
Pasul 3: Obișnuitul și Stabalizerele
Acum că ați configurat electronica, aveți nevoie de un avion pentru a pune electronica. Am folosit foamboard, deoarece este ușor și relativ puternic. Fuzualul este doar un dreptunghi care se subțiază spre coadă. Fuzualul nu este atât de important pentru aerodinamică. Cel mai important lucru este că totul se va potrivi în el, păstrându-l, de asemenea, cât mai mic și mai ușor posibil.
Stabalizorul orizontal și vertical sunt ușor de realizat. Singurul lucru important este că balansierele dvs. sunt perfect drepte. Stabalizatorii sunt responsabili pentru menținerea avionului stabil. Când balansierele dvs. nu sunt drepte, avionul dvs. va fi instabil.
Pasul 4: Aripile
Aripile sunt probabil cel mai important lucru, trebuie să creați un profil aerian pentru a genera ridicarea. În imaginea de mai sus puteți vedea cum mi-am făcut volanul.
Cel mai important lucru este că centrul de greutate al avionului este în jurul celui mai înalt punct al planului aerian. în acest fel avionul va fi stabil.
Pasul 5: Puneți totul laolaltă
Acum că am făcut toate părțile, trebuie să le punem pe toate.
Servo-ul trebuie conectat la stablaizer. acest lucru se poate face cu tije de control (a se vedea imaginea de mai sus)
Motorul trebuie pus pe o bucată de spumă și lipit în fața avionului (sau folosiți benzi elastice, astfel încât să îl puteți scoate atunci când este necesar).
aveți nevoie de o elice pentru a pune motorul, dimensiunea acestei elice depinde de motor. Este foarte complicat pentru a calcula dimensiunea optimă. Dar o regulă generală este că cu cât motorul este mai puternic, cu atât elicea poate fi mai mare.
Pentru baterie se recomandă utilizarea bateriilor lipo. cu toate acestea, aceste baterii au nevoie de un încărcător special dacă nu doriți să explodeze. De aceea am folosit bateriile nimh, acestea sunt mai grele, dar mai ușor și mai ieftine de utilizat.
Recomandat:
Crearea unui controler MIDI alternativ folosind Makey-Makey și apă: 6 pași
Crearea unui controler MIDI alternativ folosind Makey-Makey și apă: Utilizarea Makey-Makey pentru a crea intrări personalizate și creative este incredibil de ușoară! În timp ce mulți oameni care folosesc hardware-ul își creează propriul instrument folosind intrările de pe Makey-Makey pentru a declanșa sunete sau note, am decis că putem face și mai mult
Crearea unui temporizator digital folosind Blynk: 5 pași
Crearea unui temporizator digital folosind Blynk: În această postare, învățăm cum să începem cu Blynk - O platformă IoT care este concepută pentru a simplifica întregul proces pentru noi și care funcționează și cu mai multe plăci cu internet
Crearea unui server local Blynk: 5 pași
Crearea unui server local Blynk: În această postare, învățăm cum să creăm un server local Blynk, care va reduce foarte mult latența generală care este uneori prezentă atunci când se utilizează serverul implicit, la distanță. L-am configurat folosind un Pi Zero W și, de asemenea, creăm un proiect demonstrativ pentru a ne asigura că
Crearea unui contor de kilometraj Arduino - Partea I: 4 pași
Crearea unui contor de kilometraj Arduino - Partea I: Este destul de obișnuit ca bicicliștii și utilizatorii de biciclete de exerciții să aibă nevoie să-și măsoare viteza și distanța parcursă. Pentru aceasta, avem nevoie de un dispozitiv cunoscut sub numele de contorometru. Contorometrul este responsabil pentru măsurarea acestor variabile și transmiterea acestor informații
Crearea unui robot de echilibrare Arduino controlat de la distanță: B-robot EVO: 8 pași
Crearea unui robot de echilibrare Arduino controlat de la distanță: robot B EVO: ------------------------------------ -------------- ACTUALIZARE: aici există o versiune nouă și îmbunătățită a acestui robot: B-robot EVO, cu funcții noi! ------------ -------------------------------------- Cum funcționează? B-ROBOT EVO este un dispozitiv de la distanță Control