Es esta entrada os vamos a contar cómo hemos realizado un aerodeslizador (hovercraft) con Arduino.
Si quieres comprar el kit, o algunos de sus componentes, lo puedes hacer desde el siguiente enlace: Kit aerodeslizador
Los aerodeslizadores son vehículos que generan un colchón de aire que les permite desplazarse sobre múltiples superfícies sin apenas rozamiento. Son capaces de moverse sobre casi cualquier superfície plana (tierra, agua, nieve, zonas pantanosas, arena, hielo…).
Así, un aerodeslizador necesita dos motores: uno para generar el colchón de aire, otro para impulsarse. Necesita también un timón que permita dirigir el chorro de aire de impulsión y poder, así, cambiar de dirección.
En nuestro diseño vamos a intentar usar materiales fácilmente accesibles y de bajo coste.
¿Te animas a hacer el tuyo? En ese caso, por favor, envíanos fotos/videos, nos encantaría ver cómo lo mejoras y lo disfrutas. ¡A por ello!
1. Chasis
El chasis lo realizamos con una caja de corcho blanco (poliestireno expandido, porexpan, poliexpan…), material ligero, con resistencia suficiente para nuestro proyecto y, sobretodo, fácil de trabajar. Aquí el peso es importante, cuanto más peso más potencia y consumo.
Además, hemos aprovechado trozos sobrantes del corcho para hacer el anclaje de los motores y la estructura posterior de soporte del motor de propulsion y timón.
Las distintas piezas de corcho blanco se pegan bien entre ellas usando una pistola de pegamento caliente, siempre que tengamos la precaución de esperar a que se enfríe, lo que en el caso del corcho tarda un poco, pues es aislante térmico.
2. Motores y hélices
Los motores escogidos han sido Brushless (BLDC) A2212 1000kV, el de sustentación con una hélice 1045, el de propulsión con una T5046 (sobretodo por cuestión de tamaño, la 1045 era excesiva). Estos motores necesitan un ESC para su control, que añadimos al sistema.
Los motores se han atornillado sobre el corcho blanco usado para la estrcutura. No es un anclaje muy rígido, pero se revela suficiente, barato y sencillo para esta aplicación. En el caso del motor de impulsión fue necesario incluir un refuerzo de cartón para el atornillado del motor. Esta placa de cartón fue pegada con pegamento caliente a la estructura de corcho blanco.
Por seguridad siempre que trabajemos con hélices debemos intentar que estén protegidas (más bien que nuestros dedos estén protegidos de elllas). En caso de este diseño hemos protegido la hélice de sustentación (de gran tamaño) con una rejilla, por el riesgo que supone tanto si alguien mete un dedo como por proyección de fragmentos si choca con algún objeto del suelo y rompe.
3. Timón
El timón se ha realizado con cartón y un servo SG90 (ligero y de bajo coste). La lámina de cartón que hace de timón se ha pegado con pegamento caliente a la estructura principal. Se ha usado una lámina de cartón ondulado doble, por lo que tiene en su sección 3 láminas de papel (que cubren las ondulaciones). Para generar la «articulación» se han cortado las láminas exteriores, dejando la interior intacta, a la altura del eje de giro del servo.
El servo se ha unido con pegamento caliente a la estructura y al timón.
4. Faldón
Aunque en suelos muy lisos no es estrictamente necesario, hemos decidido dotar al aerodeslizador de un faldón de goma. Por dos motivos:
- Mejora el funcionamiento sobre suelos con rugosidad (por ejemplo la acera, el asfalto…)
- Porque mola, ¿dónde se ha visto un aerodeslizador sin faldón?
El faldón que confina el colchón de aire lo hemos hecho con una cámara de bicicleta pegada en el contorno de nuestro chasis. Para ello recurrimos de nuevo a la pistola de pegamento caliente. Al pegarla dejaremos 1-2 cm de goma sobresaliendo por debajo, que serán nuestro faldón de goma.
Truco: en los primeros pilotajes ajusta la potencia del motor de sustentación a valores reducidos, de manera que el faldón te proporcione cierto rozamiento con el suelo, incluso en suelos muy lisos. Será más fácil de pilotar. A medida que cojas práctica ves aumentando la potencia de sustentación y disfruta de velocidades realmente elevadas.
5. Controlador
Hemos usado lo que, a nuestro juicio, es uno de los mejores mandos de la historia: el mando inalámbrico de la PS2. Lo conectamos a nuestro Arduino y podemos disfrutar de una ergonomía genial, al tiempo que tenemos joysticks analógicos y un montón de botones.
En exteriores el alcance que hemos experimentado sin problemas ha sido de 13m. ¡Más que suficiente!
6. Arduino y otra electrónica
Puedes usar el Arduino que desees, aunque nosotros hemos elegido el UNO, por ser el más extendido.
Adicionalmente al UNO, usamos un sensor shield (facilita el conexionado) y un level-shifter para la conexión del receptor del mando (pues funciona a 3,3V, en vez de la 5V).
7. Conexionado
El conexionado deberá realizarse como en la figura siguiente. Destacar que la alimentación del Arduino se realiza a través del convertidor de 5V interno de los ESC, por lo que no se requiere conexión alguna adicional para ello.
8. Código Arduino
El código que se muestra a continuación realiza las siguientes funciones:
- Potencia del motor de sustentación: se aumenta con la flecha superior, se reduce con la inferior. Ajuste manual en el arranque al nivel deseado. La potencia de este motor se ha limitado desde una constante en el código, para impedir que «vuele».
- Joystick izquierdo: Potencia del motor de propulsión. El ESC usado no tiene marcha atrás, así que 0-100%.
- Joystick derecho: Timón. Los valores máximo y mínimo han sido calibrados en función del montaje realizado.
- Botón X: apaga los motores, para que el aerodeslizador se detenga rápidamente.
#include<Servo.h> #include <PS2X_lib.h> #include "Wire.h" #include "I2Cdev.h" #define ESC_MIN 1000 #define ESC_MAX 2000 #define ESC_LIM_1 1800 // Límite para el motor de suspensión (colchón de aire) #define TIMON_IZQ 1600 #define TIMON_DCH 900 #define TIMON_CTR 1250 #define ERROR_MAX 5 PS2X ps2x; Servo ESC1; //Crear un objeto de clase servo Servo ESC2; Servo TIMON; int vel = 1000; //amplitud del pulso ESC int power_esc1 = 1000; int power_esc2 = 1000; int posic_timon = 1500; int incremento = 0; void setup() { //Iniciar puerto serial Serial.begin(9600); Serial.setTimeout(10); //Asignar un pin al ESC ESC1.attach(3); ESC2.attach(6); TIMON.attach(5) TIMON.write(TIMON_CTR); //Activar el ESC Serial.println("Iniciando ESC"); ESC1.writeMicroseconds(1000); //1000 = 1ms ESC2.writeMicroseconds(1000); delay(1000); ESC2.writeMicroseconds(2000); delay(1000); ESC2.writeMicroseconds(1000); Serial.println("Iniciado"); delay(2000); ps2x.config_gamepad(13,12,10,11, true, true); //setup pins and settings: GamePad(clock, command, attention, data, Pressures?, Rumble?) check for error ESC1.writeMicroseconds(1000); //1000 = 1ms ESC2.writeMicroseconds(1000); } void loop() { ps2x.read_gamepad(false, 0); //Lectura del estado // ESC propulsion power_esc2 = ps2x.Analog(PSS_LY); power_esc2 = map(power_esc2, 127, 0, ESC_MIN, ESC_MAX); if (power_esc2 < ESC_MIN) power_esc2 = ESC_MIN; if (power_esc2 > ESC_MAX) power_esc2 = ESC_MAX; ESC2.write(power_esc2); posic_timon = ps2x.Analog(PSS_RX); posic_timon = map(posic_timon, 0, 255, TIMON_IZQ, TIMON_DCH); TIMON.write(posic_timon); // ESC Colchón aire if(ps2x.Button(PSB_PAD_UP)) power_esc1+=5; if(ps2x.Button(PSB_PAD_DOWN)) power_esc1-=5; if (power_esc1 < ESC_MIN) power_esc1 = ESC_MIN; if (power_esc1 > ESC_LIM_1) power_esc1 = ESC_LIM_1; ESC1.write(power_esc1); // Aerodeslizador al suelo (Emergencia y parada) if(ps2x.Button(PSB_BLUE)) { power_esc1 = ESC_MIN; ESC1.write(power_esc1); power_esc2 = ESC_MIN; ESC2.write(power_esc2); TIMON.write(TIMON_CTR); } delay(50); }
9. Video de funcionamiento
Con especial agradecimiento a la persona que graba, de 6 añitos, que se lo curra un montón.
10. Más fotos
Si quieres comprar el kit, o algunos de sus componentes, lo puedes hacer desde el siguiente enlace: Kit aerodeslizador
Hola
Me gusta mucho el proyecto del aerodeslizador y me gustaría animarme para construir uno, pero soy muy novato y con muchas dudas. Por ejemplo, ¿Qué fuente de alimentación se usa?
Gracias
Hola Jordi,
todo el aerodeslizador se alimenta desde la batería 3S principal. La alimentación de 5V del Arduino se obtiene en este caso a partir del regulador de tensión integrado en los propios ESCs que controlan los motores. Es decir, con que alimentes los ESC y los conectes al Arduino ya lo tendrás alimentado.
Nos encanta que este proyecto te haya motivado. ¡A por él!