Manufactura industrial
Internet industrial de las cosas | Materiales industriales | Mantenimiento y reparación de equipos | Programación industrial |
home  MfgRobots >> Manufactura industrial >  >> Manufacturing Technology >> Proceso de manufactura

Avión RC Arduino | 100% bricolaje

En este tutorial, le mostraré cómo construyo un avión RC basado en Arduino y también le mostraré cómo controlarlo usando el transmisor Arduino personalizado que construí en uno de mis videos anteriores.

Puede ver el siguiente video o leer el tutorial escrito a continuación.

Resumen

Entonces, el avión está hecho completamente de espuma de poliestireno. Para hacer las formas utilicé mi máquina de corte de espuma CNC Arduino, que ya les mostré cómo la construí en un video anterior. Aunque estoy usando una máquina CNC para construir este avión Arduino RC, todavía puedo decir que es 100% DIY porque la máquina CNC también es una construcción DIY.

Además, el control del avión también es 100% DIY, basado en Arduino y el módulo NRF24L01 para la comunicación por radio.

Usando el joystick derecho del transmisor, podemos controlar los alerones y el elevador del avión, y usando el joystick izquierdo podemos controlar el timón y el acelerador.

Además de eso, con el potenciómetro derecho podemos ajustar la capacidad de respuesta de los controles o reducir la cantidad de recorrido del servo, y con el joystick izquierdo podemos ajustar el timón o ajustar la posición neutral del brazo del servo.

Ah, y casi olvido la mención, la característica principal de este avión Arduino RC es volar, así que sí, puede volar.

Diseñando el RC Airplane – Modelo 3D

Empecé diseñando el avión usando un software de modelado 3D, Fusion 360 en este caso. Hice el diseño observando algunos aviones RC comerciales y siguiendo algunas pautas básicas o reglas empíricas para los parámetros del modelo de avión.

El punto de partida es la envergadura, y elegí que fuera de 80 cm. De ahí obtenemos la longitud del fuselaje, que generalmente es el 75% de la envergadura. En cuanto al perfil aerodinámico, o la sección transversal del ala, elegí el perfil aerodinámico CLARK Y, que es una opción popular para los aviones RC.

Descargué la forma del perfil aerodinámico de airfoiltools.com como un archivo .SVG y luego lo importé a Fusion 360. Ajusté el tamaño adecuadamente, de modo que la cuerda del ala o la longitud del ala en la dirección de la corriente sea de alrededor de 1/5. de la envergadura.

El estabilizador horizontal y vertical también se dimensionan de acuerdo con esas pautas básicas. Estos son algunos de los parámetros básicos de diseño de aeromodelos RC:

El fuselaje del avión estará hecho de dos lados de 10 mm y un núcleo de 50 mm que será hueco para acomodar la electrónica.

Puede descargar el modelo 3D desde los enlaces anteriores. Hay dos versiones del avión. La versión 1 es la que se muestra aquí en las imágenes, y la versión dos tiene una nariz un poco más pequeña y el motor se puede colocar más al frente para mejorar el flujo de aire.

Generación de códigos G para mi cortadora de espuma CNC DIY

Ahora, como el área de trabajo de mi máquina de corte de espuma CNC Arduino está limitada a 45 cm y el fuselaje tiene una longitud de 60 cm, tuve que hacer el fuselaje en dos partes.

Entonces, corté el fuselaje a 34 cm desde el punto frontal e hice un nuevo boceto en el que proyecté la forma y agregué un punto cerca de ella. Luego, en la pestaña de fabricación de Fusion 360, puedo generar el código G para cortar las formas.

Aquí, primero hice una nueva configuración en la que seleccioné el boceto como modelo, seleccioné el punto que agregué anteriormente como origen para la configuración y ajusté los ejes X e Y de manera adecuada.

Luego elegí la operación de contorno 2D y seleccioné o generé una nueva herramienta, con un diámetro de 3 mm, porque ese es el tamaño aproximado de los cortes que hace el alambre caliente al atravesar la espuma de poliestireno. Aquí también podemos establecer el avance de corte que depende del propio hilo caliente y de la dureza del Styrofoam. Lo configuré a 150 mm/m.

Luego, en el toque de geometría, podemos seleccionar el contorno o la forma que se debe cortar. En cuanto a las alturas, las configuré todas en 1 mm ya que no hay ningún movimiento del eje Z en mi máquina cortadora de espuma. Por último, en el toque Vinculación, seleccioné la posición de entrada para que fuera el borde ubicado cerca del punto de origen.

Con esto se genera la trayectoria y podemos echarle un vistazo haciendo clic en el botón Simulación. La trayectoria debe ser un solo paso de ciclo cerrado, y si ese es el caso, finalmente podemos generar el código G. Para eso podemos ir a Post Procesos, seleccionar el firmware GRBL, seleccionar la carpeta de salida, nombrar el archivo y hacer clic en el botón de publicar.

Luego podemos guardar el archivo y podemos ver el código G en el editor de WordPad o algo similar.

Entonces, una vez que tenemos el archivo de código G, podemos cargarlo en el remitente de código G universal y enviar el código G a la máquina CNC para hacer la forma.

Podemos notar que el proceso que acabo de mostrarle probablemente no sea el mejor o no sea profesional en absoluto, pero aun así hace el trabajo para que los códigos G funcionen con mi máquina cortadora de espuma CNC DIY. Por supuesto, para obtener más detalles sobre esta máquina CNC de bricolaje, puede consultar mi tutorial particular, el enlace está en la descripción del video.

Puede descargar los archivos de código G aquí:

Como dije, para los lados usé poliestireno de 1 cm y para el centro usé poliestireno de 5 cm.

En cuanto al ala, usé espuma de poliestireno de 10 cm que corté alrededor de 30 cm de ancho porque ese es el tramo máximo que mi máquina de alambre caliente puede cortar. Coloqué dos perfiles de ala en un solo archivo de código G y corté un par de ellos.

Para conseguir los 80cm de envergadura pegaré 3 piezas de 27cm, y para que queden rectas, cortaré manualmente los extremos de las piezas para que queden perpendiculares.

Ensamblaje del Avión RC

Así que aquí están todas las piezas de espuma de poliestireno que corté con una máquina CNC. Tres piezas para el frente, tres piezas para la espalda y tres piezas para el ala. Ahora puedo empezar a ensamblarlos.

Voy a empezar con la parte delantera. Estoy usando una pistola de pegamento para pegar las piezas. El pegamento caliente estaba derritiendo un poco la espuma de poliestireno, pero aun así pude pegarlos usando este método.

Otra buena forma de pegar espuma de poliestireno es con epoxi de 5 minutos. Antes de pegar el otro lado, haré el soporte para el motor. Para ese propósito, estoy usando un perfil de aluminio de 30 mm de ancho que es bastante liviano. Corté el perfil a unos 18 cm, marqué los agujeros para montar el motor y los perforé con una broca de 3 mm. Luego doblé el perfil a 90 grados. Aseguré el motor al soporte con unos tornillos M3.

Usando este ensamblaje, hice un agujero en la parte delantera de la espuma de poliestireno. Luego, usando una navaja multiusos, amplié el orificio a 30 mm de diámetro, igual que el diámetro del motor.

A continuación, en el otro lado del soporte del motor hice 4 agujeros que servirán para asegurar el soporte en su lugar y también para sujetar el tren de aterrizaje. Marqué la ubicación de estos agujeros en el fuselaje y con una broca de 4 mm hice agujeros a través de la espuma de poliestireno manualmente. Hice otra pieza de aluminio de unos 7 cm de largo con los mismos agujeros, y ahora puedo usarla para asegurar el soporte del motor.

Usando pernos M4, podemos asegurar fácilmente el soporte del motor en su lugar sin dañar la espuma de poliestireno. Sin embargo, eso lo haré más tarde, así que los retiré y continué pegando el otro lado. Usando el mismo método, también pegué las piezas traseras.

El siguiente paso es el matrimonio, o conectar la parte delantera y trasera del fuselaje. Para hacer la conexión más fuerte, agregaré palitos de barbacoa simples entre ellos.

Sugeriría incluso usar algunos palos más grandes porque cuando el avión se estrelle, podría romperse fácilmente aquí. Agregué una cantidad decente de pegamento caliente al sitio de conexión y los apreté. Así que aquí está, el fuselaje está listo y creo que se ve muy bien.

A continuación, con un cuchillo multiusos, estoy cortando dos piezas de poliestireno extruido de 10 mm que serán los estabilizadores horizontales y verticales. Biselé los bordes para que se vean mejor y también sean un poco más aerodinámicos. Los estabilizadores se pegarán directamente a la parte trasera del fuselaje, pero antes de hacerlo, primero haré las superficies del controlador.

Para ello les corto alrededor de 1/3 de su longitud, y esa será su superficie de control o el elevador para el estabilizador horizontal y el timón para el estabilizador vertical. Para poder articular las superficies de control sobre los estabilizadores, necesitaba biselar su superficie de contacto. Una vez más, lo hice con un cuchillo multiusos y, de hecho, necesitamos uno bastante afilado para limpiar estos cortes.

Continué haciendo los estabilizadores un poco más aerodinámicos. Para ello, utilicé una lija y redondeé sus bordes de ataque. También lijé un poco los bordes posteriores.

Ahora, como la espuma de poliestireno es bastante frágil, voy a envolver toda el área de los estabilizadores y sus superficies de control con una simple cinta de embalaje. Esto no solo hará que las piezas sean más fuertes, sino que también aumentará la aerodinámica, ya que la cinta es mucho más suave que la propia espuma de poliestireno.

Después de envolverlo, corté la parte inferior del timón a 45 grados, para dejar espacio para que el elevador pudiera moverse libremente.

Ahora, finalmente, puedo hacer la bisagra, y lo estoy haciendo usando la cinta de embalaje nuevamente. Entonces, acabo de conectar las dos partes con la cinta, y eso hace que la bisagra sea bastante fuerte.

Repetí este proceso también para el estabilizador horizontal. Para hacer que la bisagra sea aún más fuerte, también podemos agregar cinta en el otro lado. Usando la misma cinta, envolví los lados y con eso los dos estabilizadores están hechos.

Seguí pegando el estabilizador horizontal al fuselaje con cola caliente. Para asegurar el estabilizador vertical, primero inserté y pegué 3 palitos de barbacoa a través del estabilizador horizontal y el fuselaje. Luego puse un poco de pegamento caliente sobre ellos y la superficie de contacto y empujé el estabilizador hacia abajo con firmeza.

Con esto hemos terminado con los estabilizadores y podemos continuar con la fabricación del ala.

Entonces, como ya dije, el ala estará hecha de 3 piezas debido al área de trabajo limitada de mi máquina cortadora de espuma CNC DIY. De nuevo, estoy usando palitos de barbacoa para dar fuerza adicional al pegar las piezas. Para unirlos en línea con precisión, estoy usando una tira de madera recta en la que puedo deslizar las piezas.

Una vez hecho esto, el ala es bastante frágil, ya que es larga y de hojalata. Por lo tanto, lo reforzaré añadiéndole un palo de madera. Corté el palo a la medida y marqué el ala donde necesito hacer un bolsillo para poder colocar el palo en él. Usando la navaja, lentamente y con cuidado hice el bolsillo. Le agregué un poco de pegamento caliente y lo aseguré en su lugar sin alterar demasiado la forma aerodinámica.

Ahora el ala es mucho más fuerte con el palo de madera en su lugar. Aunque es más fuerte, se rompería fácilmente si golpea el suelo, así que lo envolveré todo con la cinta de embalaje como hice con los estabilizadores. Empecé añadiendo la cinta desde la parte trasera o el borde de fuga del ala, hasta la parte delantera o el borde de ataque.

De esta forma el aire que entra por delante no tenderá a despegar la cinta. Aunque este proceso parece bastante fácil, puede ser un poco molesto si no tienes las manos firmes y la paciencia suficiente. Creo que el ala salió perfecta. Ahora es mucho más fuerte, más aerodinámico y se ve bastante bien.

Muy bien, el siguiente paso es hacer las superficies de control de las alas o los alerones. Voy a hacerlos de 22 cm de ancho y aproximadamente 1/4 de la cuerda del ala de largo. Para poder moverme libremente corté como medio centímetro.

Y por supuesto, envolví todos los bordes expuestos con el corte. A continuación, biselé la parte inferior del alerón a 45 grados y, de la misma manera que se mostró anteriormente, ahora puedo articularlo al ala. Para encajar en el fuselaje y poder unir fácilmente el ala al fuselaje, tuve que hacer un hueco más en el medio del ala.

A continuación, es hora de instalar los servomotores para controlar los alerones. Estoy usando los micro servos 9g. Marqué la ubicación donde se colocarán y usando el cuchillo utilitario, hice con cuidado una abertura en el ala para que el servo pueda encajar. Mientras tanto, quité los soportes de montaje de los servos para que su forma sea más simple. Puse un poco de pegamento en el servo y lo inserté en la abertura.

Usando el cuchillo utilitario, hice una pequeña ranura desde el servo hasta el centro del ala para poder colocar el cableado de los servos en él. Finalmente, cubrí todo con un trozo de cinta adhesiva. Repetí el mismo proceso para el otro lado también.

Continué con la fabricación de los cuernos de control. Los voy a hacer con el perfil de aluminio que usé antes para hacer el portamotor. Dibujo la forma a mano para que coincida aproximadamente con la altura de la bocina del servomotor y cuelgue sobre el punto de la bisagra. Corté la forma con una sierra para metales.

Usaré alambre de acero de 2 mm como barra de control, así que hice una abertura en la bocina con un taladro de 2,5 mm. Hice un pequeño surco en el alerón y pegué la bocina en su lugar. Luego medí el largo que debería tener la barra de control y la hice con alambre de acero de 2 mm con la ayuda de unos alicates. Debemos tener en cuenta que al medir e insertar las barras de control, los servomotores deben estar en posición neutral.

Podemos hacerlo colocándolo manualmente en el medio de su rango de movimiento, o conectándolo a un probador de servo o hacerlo con un Arduino. Repetí el proceso para el otro lado y con eso el ala ahora está completamente lista.

A continuación, necesito instalar los servos para controlar el timón y el elevador. Aquí también estoy usando los mismos micro servos 9g, y el proceso de instalación es prácticamente el mismo que acabo de explicar. Primero, marqué la ubicación, hice la abertura con una navaja y pegué los dos motores en su lugar. Aquí, están uno al lado del otro pero con sus ejes de salida en el lado opuesto.

Nuevamente, hice una pequeña ranura en el fuselaje para conducir el cableado de los servos al compartimiento de la electrónica. Cubrí los servos con un trozo de cinta e hice aberturas para las bocinas de los servos. De la misma manera que se mostró anteriormente, hice los cuernos de control y los pegué en su lugar con una pistola de pegamento. Por último, hice la barra de control adecuada y las instalé en consecuencia.

Bien, a continuación voy a instalar dos varillas de madera de 8 mm que servirán para asegurar el ala al fuselaje. Hice los agujeros manualmente con una broca de 6 mm. Las varillas deben colgar alrededor de 1 cm en ambos lados. También los aseguré al fuselaje con un poco de pegamento caliente y así es como funcionan.

Usamos bandas de goma para asegurar el ala al fuselaje. De esa manera, el ala se puede quitar fácilmente y, en caso de aplastamiento, las bandas de goma reducirán significativamente el impacto en el ala. Al mismo tiempo, el montaje es bastante fuerte.

A continuación, voy a hacer el tren de aterrizaje. Para ese propósito, nuevamente, usaré el perfil de aluminio y las ruedas hechas de espuma de poliestireno. Los hice usando la máquina CNC como se muestra anteriormente. Hice pequeños surcos en el perfil de aluminio para poder doblarlo fácilmente. Así es como debería verse realmente el tren de aterrizaje.

Para la fijación de las ruedas al perfil utilizaré tornillos M5 y un tubo de aluminio de 6mm de diámetro interior. El tubo se asegura al soporte usando el perno y la tuerca M5, y en los lados, agregué arandelas M5 para que la rueda pueda girar alrededor del tubo libremente. Con el mismo método hice la rueda para la parte trasera del avión.

Bien, ahora todos los componentes están listos y antes de ensamblarlos, echemos un vistazo a la electrónica de este proyecto.

Arduino RC Airplane Electronics – Diagrama de circuito

Entonces, como ya dije, este avión RC se basa completamente en Arduino, tanto el transmisor como el receptor son construcciones personalizadas basadas en la placa Arduino Pro Mini.

Ya tengo tutoriales detallados sobre cómo construir y cómo funcionan el transmisor y el receptor, así que puedes consultarlos para obtener más detalles. Aquí explicaré el diagrama del circuito y el principio de funcionamiento de este avión Arduino RC y cómo se debe conectar todo.

Puede obtener los componentes necesarios para este proyecto en los siguientes enlaces:

  • NRF24L01 + PA + LNA …………..…..…….
  • Arduino Pro Mini………………..………….…..
  • Servomotor ……………………………………
  • Motor sin escobillas ………………………..……
  • ESC 30A ……………………………….…………
  • Batería Li-Po ……………………..………………

Entonces, la comunicación por radio se basa en los módulos NRF24L01. Aunque puede parecer un poco complicado, este transmisor Arduino DIY es bastante simple. Tiene varios controladores, los joysticks, los potenciómetros y algunos botones, y constantemente envía sus datos al receptor. El receptor acepta estos datos de forma inalámbrica a través del módulo NRF24L01 y envía los comandos apropiados a los servos y al motor sin escobillas para controlar el avión.

Controlar servos y motores sin escobillas con Arduino también es bastante simple, por lo que creo que todo este concepto de avión Arduino RC no es tan difícil de entender. El motor sin escobillas que estoy usando en este proyecto tiene una clasificación de 1000KV y requiere 30A ESC. El ESC impulsa el motor y también proporciona energía al Arduino y los servos a través de su función de circuito eliminador de batería que emite 5V. Y la energía para el ESC y el motor sin escobillas proviene de una batería Li-Po 3S.

Agregué una característica más a este avión, y es un LED simple que indicará si la batería está vacía. Usando un divisor de voltaje simple, bajamos los 12V provenientes de la batería Li-Po a alrededor de 5V para que podamos leerlos con la entrada analógica de Arduino y así saber cuándo la batería caerá por debajo de 11V. El receptor aún tiene varios canales libres, por lo que podemos agregar más funciones a este avión si queremos, como luces estroboscópicas, flaps, mecanismos de caída, etc.

Terminando el Montaje

Sin embargo, terminemos el montaje ahora. Entonces, conecté todo como se explica en el diagrama del circuito. En el canal 1 está el timón, el canal 2 el elevador, los canales 3 y 4 los alerones, y en el canal 6 el LED. Pegué el LED por un lado y el interruptor de encendido por el otro.

Podemos observar aquí cómo el tren de aterrizaje se fija al avión mediante los dos tornillos del soporte del motor. En pocas palabras, simplemente inserté el motor con el soporte desde esta abertura superior, lo atornillé en su lugar como se muestra anteriormente y también coloqué el tren de aterrizaje. Al insertar el soporte, también agregué algunas bandas elásticas para que puedan sostener la batería en su lugar.

Entonces, una vez que conecté la batería al ESC, apreté todo. Finalmente, usando los cables de extensión, puedo conectar fácilmente los alerones del ala al receptor y luego asegurar el ala al fuselaje.

En la parte delantera, coloqué la hélice en el motor y lo que queda ahora es verificar el CG o el centro de gravedad del avión.

El CG es probablemente el factor más importante para determinar si el avión volará bien o no volará.

Inicialmente, el avión tenía una cola pesada, así que moví la batería hacia el frente y agregué algo de peso (algunos pernos y tuercas) y se equilibró.

Eso es todo, nuestro avión RC basado en Arduino ya está listo y podemos salir a probarlo.

Probando el Arduino RC Airplane

Bueno, el primer intento o el vuelo inaugural no fue tan bueno. Sobre todo después de ver el resultado del flechazo.

Mi conclusión aquí fue que el avión todavía tenía la cola pesada y parecía que el motor no tenía suficiente potencia. Como no tenía otro motor o hélice para probar, modifiqué el morro del avión para que fuera un poco más pequeño, moví el motor más hacia el frente para que tuviera mejor flujo de aire y también redondeé los bordes en el frente. En cuanto a la estructura la reforcé con unos palos de madera y perfiles de aluminio que pegué en la zona interior del fuselaje.

En la parte inferior del compartimiento de la electrónica hice dos agujeros, uno para que salga el aire que sale por la abertura frontal, y el otro para sacar la antena NRF24L01 al exterior para tener mayor alcance.

Ok, aquí está el intento número dos. De nuevo, casi lo mismo, aunque parecía que ahora tenía mejor flujo de aire o potencia.

El fuselaje se rompió nuevamente, lo que indica que este poliestireno es bastante débil para este propósito. Hice un nuevo fuselaje, y esta vez usé un poco de cinta adhesiva para reforzarlo.

Prueba el número tres. Parecía prometedor, pero el terreno que tengo para el despegue en realidad no es nada bueno. El avión comenzó a moverse hacia la derecha, golpeó el borde de la carretera y volvió a romperse.

Lo reparé y esta vez envolví casi todo el fuselaje con cinta adhesiva y de embalaje. Debería haberlo hecho mucho antes, ya que esto le dio la fuerza adecuada al fuselaje y no se rompió incluso después de varios aplastamientos más.

El problema ahora fue que después de varios aplastamientos rompí las 4 hélices que tenía, así que en este intento estoy usando una hélice pegada. Por supuesto, la hélice se rompió en el despegue.

Probé con otra hélice pegada hecha de dos hélices ya rotas y esta vez tuve suerte y el avión finalmente despegó correctamente.

Bueno, la suerte no duró mucho ya que la hélice se rompió nuevamente en el aire.

Sin embargo, como esta fue mi primera experiencia con volar un avión RC, supongo que puedo considerar este proyecto exitoso, ya que logré probar el concepto de hacer un sistema completamente basado en Arduino para controlar aviones RC.

Aparte de eso, podemos notar en el vuelo que los controles provenientes del transmisor son en realidad demasiado duros. Eso es porque los joysticks no son nada buenos para este propósito, tienen poco rango de movimiento y mala respuesta.

Para solucionar esto, agregué una función al programa a través de la cual podemos controlar la capacidad de respuesta de los controles usando el potenciómetro derecho en el transmisor. Además, agregué una función a través de la cual podemos ajustar el timón usando el potenciómetro izquierdo.

Código de avión Arduino RC

Finalmente, echemos un vistazo al código Arduino de este avión RC basado en Arduino y concluyamos este proyecto. El código es exactamente el mismo que el explicado en el tutorial anterior, para controlar servos y motores sin escobillas usando los módulos transceptores NRF24L01.

Aquí está el código completo para este proyecto de avión Arduino RC:

/*
   Arduino RC Airplane
   == Receiver Code =
  by Dejan, www.HowToMechatronics.com
  Library: TMRh20/RF24, https://github.com/tmrh20/RF24/
*/
#include <SPI.h>
#include <nRF24L01.h>
#include <RF24.h>
#include <Servo.h>

#define led 9

RF24 radio(3, 2);   // nRF24L01 (CE, CSN)
const byte address[6] = "00001";
unsigned long lastReceiveTime = 0;
unsigned long currentTime = 0;

Servo throttle;  // create servo object to control the ESC
Servo rudderServo;
Servo elevatorServo;
Servo aileron1Servo;
Servo aileron2Servo;


int throttleValue, rudderValue, elevatorValue, aileron1Value, aileron2Value, travelAdjust;
// Max size of this struct is 32 bytes - NRF24L01 buffer limit
struct Data_Package {
  byte j1PotX;
  byte j1PotY;
  byte j1Button;
  byte j2PotX;
  byte j2PotY;
  byte j2Button;
  byte pot1;
  byte pot2;
  byte tSwitch1;
  byte tSwitch2;
  byte button1;
  byte button2;
  byte button3;
  byte button4;
};
Data_Package data; //Create a variable with the above structure
void setup() {
  Serial.begin(9600);
  radio.begin();
  radio.openReadingPipe(0, address);
  radio.setAutoAck(false);
  radio.setDataRate(RF24_250KBPS);
  radio.setPALevel(RF24_PA_MAX);
  radio.startListening(); //  Set the module as receiver
  resetData();
  throttle.attach(10);
  rudderServo.attach(4);   // CH1
  elevatorServo.attach(5); // CH2
  aileron1Servo.attach(6); // CH3
  aileron2Servo.attach(7); // CH4
  pinMode(led, OUTPUT);    // CH6
}
void loop() {
  // Check whether we keep receving data, or we have a connection between the two modules
  currentTime = millis();
  if ( currentTime - lastReceiveTime > 1000 ) { // If current time is more then 1 second since we have recived the last data, that means we have lost connection
    resetData(); // If connection is lost, reset the data. It prevents unwanted behavior, for example if a drone jas a throttle up, if we lose connection it can keep flying away if we dont reset the function
  }
  // Check whether there is data to be received
  if (radio.available()) {
    radio.read(&data, sizeof(Data_Package)); // Read the whole data and store it into the 'data' structure
    lastReceiveTime = millis(); // At this moment we have received the data
  }

  // Controlling throttle - brushless motor with ESC
  throttleValue = constrain(data.j1PotY, 80, 255); // Joysticks stays in middle. So we only need values the upper values from 130 to 255
  throttleValue = map(throttleValue, 80, 255, 1000, 2000);
  throttle.writeMicroseconds(throttleValue);

  // Adjusting the servos responsiveness
  travelAdjust = map(data.pot2, 0, 255, 0, 25);  
  
  // Elevator control
  elevatorValue = map(data.j2PotY, 0, 255, (85 - travelAdjust), (35 + travelAdjust));
  elevatorServo.write(elevatorValue);
  
  // Ailerons control
  aileron1Value = map(data.j2PotX, 0, 255, (10 + travelAdjust), (80 - travelAdjust));
  aileron1Servo.write(aileron1Value);
  aileron2Servo.write(aileron1Value);

  // Rudder trimming function
  if (data.j1PotX > 127) {
    rudderValue = data.pot1 + (data.j1PotX - 127);
  }
  if (data.j1PotX < 127) {
    rudderValue = data.pot1 - (127 - data.j1PotX);
  }
  // Rudder control
  rudderValue = map(rudderValue, 0, 255, (10 + travelAdjust), (90 - travelAdjust));
  rudderServo.write(rudderValue);

  // Monitor the battery voltage
  int sensorValue = analogRead(A3);
  float voltage = sensorValue * (5.00 / 1023.00) * 3; // Convert the reading values from 5v to suitable 12V i
  // If voltage is below 11V turn on the LED
  if (voltage < 11) {
    digitalWrite(led, HIGH);
  }
  else {
    digitalWrite(led, LOW);
  }
}
void resetData() {
  // Reset the values when there is no radio connection - Set initial default values
  data.j1PotX = 127;
  data.j1PotY = 80; // Motors stops // the central point of the joystick is not starting point for the throttle, its at value of 80 instead of 127
  data.j2PotX = 127;
  data.j2PotY = 127;
  data.j1Button = 1;
  data.j2Button = 1;
  data.pot1 = 1;
  data.pot2 = 1;
  data.tSwitch1 = 1;
  data.tSwitch2 = 1;
  data.button1 = 1;
  data.button2 = 1;
  data.button3 = 1;
  data.button4 = 1;
}Code language: Arduino (arduino)

Description: I will just quickly explain the main functions of the code and for all other details you can check the previous tutorial. So, after receiving the data coming from the transmitter, we use the Joystick1 Y axis value for controlling the throttle of the airplane. We convert the values from 80 to 255 coming from the transmitter into values from 1000 to 2000 which are used for controlling the brushless motor.

For controlling the elevator, we use the Joystick2 Y axis value which we convert to values from 85 to 35. These values directly set the position of the servo motor in degrees. Right next to them we can note that we have the travelAdjust variables, which value depends on the position of the right potentiometer. We actually use that value to decrease the position or the movement of the servos although the joysticks will go to their maximum position.

The same principle is applied for controlling the ailerons and the rudder.  Additionally, we use the data from the left potentiometer to adjust the neutral point of the rudder.

Lastly, using the analogRead() function and some math we control the battery voltage indicator LED.

So that’s it. I would like to hear your thoughts about this project in the comments section below, especially from you who have experience with building and flying RC airplanes. For those who are beginners and thinking of getting into this, I would suggest to check the FliteTest YouTube channel because it’s an amazing resource for learning about this RC world. I will put a link to it in the description.

I hope you enjoyed this project and learned something new. Feel free to ask any question in the comments section below and don’t forget to check my Arduino Projects Collection.


Proceso de manufactura

  1. Visualizador de música DIY LUMAZOID Arduino
  2. Haga una máquina de escribir para hacer tareas caseras en casa
  3. Consola de edición de Photoshop DIY con Arduino Nano RP 2040
  4. Voltímetro de bricolaje con Arduino y un teléfono inteligente
  5. Patineta de realidad virtual DIY
  6. Osciloscopio DIY de 10Hz-50kHz en pantalla LCD de 128x64
  7. Máquina de tratamiento DIY Arduino RADIONICS
  8. Simulador de carreras de movimiento 2D DIY
  9. Brazo robótico programable local y remoto
  10. Idea de bricolaje con RFID
  11. DIY CNC VMC de 3 ejes