Taula de continguts:

Creació d'un pla Rc amb 2 Arduino: 5 passos
Creació d'un pla Rc amb 2 Arduino: 5 passos

Vídeo: Creació d'un pla Rc amb 2 Arduino: 5 passos

Vídeo: Creació d'un pla Rc amb 2 Arduino: 5 passos
Vídeo: How to Build Sim Racing Cockpit Works with Any Game/Console 2024, Juliol
Anonim
Creació d'un pla Rc amb 2 Arduino
Creació d'un pla Rc amb 2 Arduino

Fer un avió és un repte divertit. Es fa especialment desafiant quan s'utilitzen arduino's en lloc d'un controlador i receptor de preconstrucció.

En aquest tutorial us mostraré com he anat fent un avió radiocontrolat amb dos arduino.

Pas 1: què necessiteu

Necessitarà:

- Un motor sense escombretes

- Un esc per al motor

- 2 servos

- 1 arduino uno

- 1 arduino nano

- Una hèlix

- 2 mòduls nrf24l01

- 2 condensadors de 10uf

- Foamboard

- Un potenciòmetre

- Un mòdul de joystick

- Una bateria NiMH de 3 amp i 7,2 volts

Pas 2: els controls de ràdio

Els controls de ràdio
Els controls de ràdio
Els controls de ràdio
Els controls de ràdio

Vaig utilitzar un nrf24l01 per controlar l’avió. Aquest mòdul té un abast d’1 km. Podeu veure com connectar el nrf24l01 a l’esquema que es mostra més amunt. També haureu de soldar el condensador entre la terra i els 3,3 volts per acumular possibles caigudes de tensió.

El següent pas és obtenir informació del controlador. Vaig utilitzar un joystick per al comandament del timó i l’ascensor i un potenciòmetre per al control del motor. Heu de connectar el potenciòmetre al pin A0, jo he connectat el joystick al pin A1 i A2.

Ara hem de fer el receptor. He utilitzat un arduino nano per al receptor perquè és més petit. També heu de connectar el nrf24l01 a aquest adruino. Després, heu de connectar els servos i l'esc (controlador electrònic de velocitat del motor) a l'arduino. Em vaig connectar als servos als pins D4 i D5, l’esc estava connectat al pin D9.

Aquest és el codi que he utilitzat per al transmissor:

#include #include #include

Ràdio RF24 (7, 8);

const byte address [6] = "00001";

configuració nul·la () {

radio.begin (); radio.openWritingPipe (adreça); radio.setPALevel (RF24_PA_MAX); radio.setDataRate (RF24_250KBPS); radio.stopListening (); Serial.begin (9600); }

bucle buit () {

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

}

i aquí teniu el codi del receptor:

#include #include #include #include

Servo esc;

Servo sx; Servo sy; Ràdio RF24 (7, 8);

const byte address [6] = "00001";

configuració nul·la () {

// posa aquí el teu codi de configuració per executar-lo una vegada: radio.begin (); radio.openReadingPipe (0, adreça); radio.setPALevel (RF24_PA_MAX); radio.setDataRate (RF24_250KBPS); esc.attach (9); sx.attach (4); sy.attach (5); esc.writeMicroseconds (1000); // inicialitzar el senyal a 1000 radio.startListening (); Serial.begin (9600); }

bucle buit () {

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

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

s = mapa (s, 0, 1023, 1000, 2000); // assignar val al mínim i al màxim (canvieu si cal) Serial.println (transData); esc.writeMicrosegons (s); // utilitzant val com a senyal per esc int sxVal = getValue (transData, '|', 1).toInt (); int syVal = getValue (transData, '|', 2).toInt ();

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

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

}

}

String getValue (dades de cadenes, separador de caràcters, índex int)

{int trobat = 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; }}

retorn trobat> índex? data.substring (strIndex [0], strIndex [1]): "";

}

Pas 3: la insòlita i els estabaladors

The Fusualage and Stabalizers
The Fusualage and Stabalizers

Ara que ja heu configurat l'electrònica, necessiteu un avió per posar-hi l'electrònica. Vaig utilitzar foamboard perquè és lleuger i relativament fort. El fusualge és només una recta que es fa més prima cap a la cua. El fusualge no és tan important per a l’aerodinàmica. El més important és que hi cabrà tot, alhora que el mantindrà el més petit i lleuger possible.

Els estabilitzadors horitzontals i verticals són fàcils de fabricar. L'únic important és que els vostres estabaladors siguin perfectament rectes. Els estabaladors s’encarreguen de mantenir estable l’avió. Quan els estabaladors no siguin rectes, el vostre avió serà inestable.

Pas 4: Les ales

Les ales
Les ales

Les ales són probablement el més important, cal crear un perfil aerodinàmic per generar elevació. A la imatge superior podeu veure com he fet el meu perfil aerodinàmic.

El més important és que el centre de gravetat de l’avió es troba al voltant del punt més alt del perfil aerodinàmic. d'aquesta manera l'avió serà estable.

Pas 5: ajuntar tot

Posant tot junt
Posant tot junt
Posant tot junt
Posant tot junt
Posant tot junt
Posant tot junt

Ara que hem fet totes les parts, hem de reunir-ho tot.

Cal que el servo estigui connectat als estabilitzadors. això es pot fer amb barres de control (veure imatge superior)

Cal posar el motor sobre un tros d’escuma i enganxar-lo davant de l’avió (o utilitzar bandes elàstiques perquè el pugueu treure quan ho necessiteu).

necessiteu una hèlix per posar el motor, la mida d'aquesta hèlix depèn del motor. És molt complicat calcular la mida òptima. Però una regla general és que com més fort sigui el motor, més gran pot ser l’hèlix.

Per a la bateria es recomana utilitzar bateries lipo. tanmateix, aquestes bateries necessiten un carregador especial si no voleu que exploti. És per això que he utilitzat bateries nimh, que són més pesades, però més fàcils i econòmiques d’utilitzar.

Recomanat: