Construyendo un Multicóptero con Arduino. Parte 1: Preparativos

En estos posts haremos seguimiento del montaje de un multicóptero que me estoy haciendo siguiendo las indicaciones de Alex in Paris y su proyecto MultiWii.

MultiWii es un multicóptero de 3 a 6 rotores controlado con Arduino y utilizando como giróscopos y acelérometros el Wii Motion Plus y el Nunchuk (mandos opcionales de la Consola Nintendo Wii). Como hemos visto en un post anterior, el Arduino es un pequeño autómata programable, que en este caso usaremos para controlar los motores del multicóptero y estabilizarlo en función de la información que nos proporcionan los sensores utilizados.

El Wii Motion Plus es una extensión del mando original de la Wii (en las últimas versiones de la Wii ya viene incluido en el propio mando, tendremos que adquirir el que viene por separado) que utiliza 3 giróscopos para determinar la cantidad de movimiento que se realiza en cada uno de los 3 ejes. Por otro lado, el Nunchuk, está compuesto por acelerómetros, que nos permiten conocer exactamente la velocidad con la que se producen esos movimientos. La Nintendo Wii utiliza ambos mandos para conocer los movimientos del jugador y la velocidad de los mismos; nosotros utilizaremos estos mismos sensores para conocer los movimientos del multicóptero y controlarlos a nuestro antojo.

MultiWii está pensado para utilizar desde 3 hasta 6 rotores. Yo he elegido la versión con 4 (quadcóptero). La versión de 3 rotores es algo compleja de montar, pues lleva un servo que controla la inclinación de uno de los motores. El quadcóptero es más fácil de montar  y hay bastante información por la red. Una vez este funcione bien, lo mismo me atrevo con un hexa.

La lista de la compra

Además de disponer de una emisora de RC de al menos 5 canales, receptor, y todos los elementos necesarios para montar el circuito, necesitaremos lo siguiente:

Elemento Cantidad Características Modelo utilizado en este montaje
Motor 4 Outrunner de unas 1000KV FC 28-22 Brushless Outrunner 1200kv
Variador 4 Depende del consumo del motor utilizado, aproximadamente 15A TURNIGY Plush 18amp Speed Controller
Hélices 2 Hélices de sentido de giro normal. Dimensiones de 10×4.7 GWS HD8040 3 Blade Prop
Hélices 2 Hélices de sentido de giro contrario. Dimensiones de 10×4.7 GWS HD8040 3 Blade Prop Counter Rotate
Wii Motion Plus 1 Adaptador WMP para la Nintendo Wii
Nunchuk 1 Adaptador Nunchuk para la Nintendo Wii. Este componente es opcional, sólo necesario si queremos activar la autonivelación del multicóptero

El diseño original del MultiWii utiliza hélices normales, pero como no las encontraba, probaré con las de 3 palas que indico en la tabla anterior. En principio no debería haber ningún problema. Todos estos elementos se pueden adquirir en cualquier tienda de material RC. Yo los he adquirido en una tienda china, HobbyKing.

Conectando los elementos y programando el Arduino

Lo primero que debemos hacer es conectar el WMP al Arduino, y el Nunchuk al WMP. Para ello, simplemente desmontamos el WMP/Nunchuk y extraemos las placas que contienen en su interior. Podemos utilizar los propios cables que ya vienen soldados (cortando y empalmando) o bien, desoldarlos todos y soldar directamente nuestros cables, para que quede una conexión más limpia.

La conexión de WMP al Arduino se realiza siguiendo el esquema siguiente:

El Nunchuk va conectado directamente al WMP, según la imagen a continuación:

Y ya tenemos todo listo para cargar el programa en el Arduino y probar si todo esto funciona. A continuación os muestro como queda todo conectado al Arduino (ya tendremos tiempo de poner más «bonito» el esquema cuando comprobemos que todo funciona correctamente).

Cargando el programa en el Arduino

El programa necesario para controlar el quadcóptero lo podemos bajar de la siguiente dirección: http://code.google.com/p/multiwii/source/browse/#svn%2Ftags. Aquí está el repositorio con todas las versiones del programa a cargar en el Arduino, así como un pequeño interfaz de usuario que nos servirá para comprobar que todo funciona correctamente y ajustar los parámetros de vuelo. Yo he probado con las versiones 1.6 y pre1.7 y ambas funcionan correctamente. Al descomprimir el archivo nos encontraremos con dos directorios, el «Multiwii_1_6» y el «Multiwii_Conf_1_6». En el primero se encuentra el programa que deberemos cargar en el Arduino y en el segundo el GUI que utilizaremos para configurarlo.

Una vez cargado el programa y arrancado el GUI podemos ver una pantalla como la que sigue:

El programa no siempre detecta el Arduino. Conectarlo de la siguiente manera ayuda bastante a que el GUI detecte el Arduino.

  • Conectar el cable USB al ordenador
  • Conectar el USB al Arduino
  • Esperar unos segundos
  • Arrancar el GUI
  • Seleccionar el puerto al que está conectado el USB del Arduino
  • Esperar unos segundos y pulsar sobre el botón «Start»

Si todo ha ido bien, veremos una gráfica como la de la imagen cuyos valores irán cambiando a medida que vamos moviendo el WMP y el Nunchuk. A partir de la versión 1.7 del GUI se muestra un gráfico que representa al quadcóptero; a medida que vamos moviendo el WMP veremos como dicho gráfico se actualiza indicando la posición que tendría el quadcóptero en el espacio.

Algunos cosas a tener en cuenta

Aunque pueda parecer que todo ha sido coser y cantar, cierto es que me ha dado bastantes quebraderos de cabeza conectar todo y hacerlo funcionar correctamente. A continuación indico algunas cosas a tener en cuenta por si lo queréis intentar, que os sea lo más fácil posible:

Clónicos del WMP y Nunchuk. No es necesario que compremos los mandos originales de la Wii, podemos hacernos con unos clónicos que son mucho más baratos y funcionan prácticamente igual. Pero es cierto que, depende del clónico que utilicemos puede haber algunas pequeñas diferencias que nos pueden hacer volvernos locos y cuando nos encontremos errores no sabremos a ciencia cierta si es por utilizar un clónico o por cualquier otro error. Aparte de la diferencia de precisión que pueda haber entre unos y otros, algunos clónicos no funcionan correctamente a 5v que es lo que sale del Arduino, por lo que tendremos que poner un par de diodos en serie para bajar el voltaje hasta 3.3v aproximadamente. Actualmente yo estoy probando con un WMP y Nunchuk clónicos comprados en Game y todo parece funcionar correctamente, aunque he leído bastante gente con problemas. Utilizar los originales nos asegura eliminar una variable de fallo de la ecuación, aunque cuestan algo más.

No conectar todo a la vez. Para poder arrancar el GUI sólo es necesario que esté conectado el Arduino y el WMP. Para comprobar que todo va funcionando correctamente es mejor conectar sólo el WMP y cuando veamos que su funcionamiento es correcto, conectamos el Nunchuk.

Cuidado al realizar las conexiones al Arduino. Aunque la placa del Arduino está bastante bien hecha, debemos tener cuidado al hacer las soldaduras, para no unir ninguna pista o dañar las mismas al desoldar algo (yo despegué una al desoldar un conector de pines…).

Conectarlo todo de manera simple. Yo empecé a conectarlo todo mediante una placa de matriz de puntos, dónde puse un zócalo para el Arduino e iba conectando los demás componentes. De esta manera quedan mucho mejor las conexiones (no hay tantos cables sueltos) pero es verdad que puede también causarnos problemas. Después de mucho tiempo investigando porqué no me funcionaba, decidí desoldarlo todo y volverlo a conectar pero directamente, como aparece en la imagen. Así funcionaba todo. Creo que alguno de los conectores de pines que había soldado no hacía buen contacto. Resumiendo, vamos a hacer algo simple y cuando comprobemos que funciona lo mejoramos.

Arrancar el GUI siguiendo los pasos descritos. No se porqué pero es verdad que el GUI no siempre detecta correctamente el Arduino; hay mucha gente a la que le ocurre esto, pero con paciencia y realizando los pasos descritos anteriormente nos aseguraremos que funciona la mayoría de las veces.

Y eso es todo. Ya tengo encargados los motores, variadores y demás; mientras llegan a casa montaré el cuerpo del quadcopter, dónde después incluiremos la electrónica y demás. Esto lo veremos en breve en otro post.

¿Y tú? ¿Te has aventurado también ya a montar un multicóptero? ¡Deja un comentario y me comentas!

 

18 comentarios sobre “Construyendo un Multicóptero con Arduino. Parte 1: Preparativos”

  1. Yo también voy a empezar con uno con esta misma config, con una emisora de 6 canales es suficiente? o debería irme a 7 o mas? estoy pensando en la dx6i un saludo y gracias por compartir tu experiencia

    1. Hola Sergio. Para controlar el quadcóptero necesitaras al menos 5 canales: THROTTLE, ROLL, PITCH, YAW y MODE. De esta manera, con una emisora de 6 canales tendrás suficiente. Si es verdad que si pretendes en un futuro ponerle una cámara o cualquier otro artefacto, necesitarás más canales, y 6 se te pueden quedar cortos. Todo depende del uso que le vayas a dar a la emisora.

      Saludos y ánimo con la construcción del quadcóptero!

  2. gracias por contestar, si que pretendo después usar cámaras de video, y si me dices que voy a necesitar mas canales, es posible que entonces tire a por la turnigy 9x barata pero con 3 canales a mayores, como lo ves? por lo demás gracias por los ánimos, estaré atento a ver que tal queda también tu proyecto, un saludo

    1. Pues la Turnigy 9x no la he probado personalmente, pero he leído de gente en los foros que la tiene y va fenomenal. Una emisora económica, y con 9 canales tendrás de sobra para manejar el quadcóptero, así como una cámara si le quieres poner en el futuro. Además te valdrá para volar otros aromodelos si ya los tienes o te vas a hacer con ellos en un futuro. En el foro de «miliamperios» hay un hilo con información para aburrir de esta emisora. Mira este hilo.
      Saludos,

  3. ya esta pedida, así que no hay vuelta atrás, yo también empiezo la aventura, tengo entendido que lo mas difícil son los pid una vez montado todo, nos daréis alguna pista sobre ello? un saludo

  4. Pufff…. Pues yo me estoy volviendo loco intentando calibrarlo. Lo tengo todo bien configurado, va izquierda, derecha, arriba, abajo, etc etc y lo veo en la gráfica de la multiwiiconf, pero no tengo forma de encontrar el equilibrio perfecto del raw, en cuanto lo levanto un palmo del suelo empieza a oscilar de los laterales y no hay forma. He probado a aislarlo mejor de las vibraciones poniendo varios tipos de espuma, pero no hay forma. ¿algun consejo?

  5. Por cierto, se me olvidava, antes de compraros la turnigy 9x compraros la fly-sky que es la misma pero con la ventaja que se le puede sacar el módulo de 2.4 de atras por otro. Yo tengo la fly-sky y por ahora todo bien.

  6. Hola Juan,

    cuando has probado la electrónica con el MultiwiiConf, ¿se te mueve correctamente la gráfica del yaw o hace «cosas raras»? Es decir, coge la electrónica con una mano y muévela suavemente, debes ver en la gráfica dicho movimiento sin perturbaciones. Si ya aquí te aparecen perturbaciones no creo que sean de las vibraciones (pues no tienes los motores conectados). He leído por los foros que ciertos WMP clones tienen una sensibilidad muy alta y hay que conectarlos de diferente manera para que las señales que recibas sean correctas.
    Si por el contrario, cuando lo pruebas electrónica en mano funciona bien y después no, puede ser debido a las vibraciones (algunas pala no equilibrada o problema con el motor) o también por los ajustes del PID. ¿Las oscilaciones que notas son como la típica «cola de pez» de un heli o simplemente son movimientos erráticos?

    Ah! Otra cosa, si tienes el Nunchuck conectado desactivalo, para asegurarte que no es de eso.

    Bueno, a ver si consigues montarlo. Yo no consigo echarlo andar con el Nunchuck, y eso que he comprado el original…. Creo que voy a desistir! jejeje

    Chao.

  7. Hola,
    Perdón por tardan tanto en contestar, pero creía que esta web estaba un poco abandonada y buscando de nuevo información he vuelto a toparme con ella.

    Lo único que me faltaba por probar era calibrar las palas que para eso estaba esperando un pedido de hobbyking, pero mientras tanto me compré esta placa: http://www.multiwiicopter.com/collections/all/products/paris-quad-tricopter-sirius-600-mp-v4-0-llc-plug-n-play Ahora estoy hablando con ellos a ver que se le ha podido rompor, tampoco dió un porrazo tan fuerte.

    Me la he cargado en el segundo golpe, no me ha dado tiempo ni a probarla, pero eso sí, los dos minutos de vuelo que duró iba perfecta sin tocarle ningún parámetro de configuración.

    http://www.youtube.com/watch?v=pyksKkXuDsA

  8. Hola. Estoy interesado con el tema… pero para adaptarlo a un helicoptero que puede ser un HK450 o un Nexus30… La pregunta es… se puede? Da lo mismo que sea un quad, un tricoptero, un exacoptero o un heli? digo… por el hardware y el software… Saludos

    1. Hola Alejandro,

      el programa lo tendrás que modificar ligeramente para configurar los parámetros de tu electrónica, tipo de multicóptero, etc. Sin el wii motion plus no puedes volar, pues esa electrónica es necesaria para estabilizar el multicóptero en vuelo. Sin el NunChuck si que puedes volar, pues con éste con lo que consigue es estabilización adicional.

      Chao!

  9. Cordial saludo te felicito por el gran proyecto ya que hace rato busco informacion sobre este tema y es imposible encontar algo asi de completo..soy nuevo en el tema manejo algo los arduinos queria saber si me podrias ayudar con el tema…
    en los archivos de descarga hay varias versiones..1_7 y la 1_6 del arduino no la encontre tu dices que la 1_7 funciona la descague pero a la hora de compilar el arduino salen varios errores..no si es la version del compilador o hace falta alguna libreria. me podrias decir que version del compilador usas y dondepodemos encontrar 1_6 gracias por tu tiempo….

    1. Hola Oscar!

      hace tiempo que monté el quad, pero creo recordar que usaba la versión 1.0 del compilador. La versión 1.6 del programa es muy antigua, utiliza alguna más moderna que seguro que tendrá nuevas funcionalidades y habrán corregido errores. Yo la última que probé y funcionaba OK era la 1.8 que la puedes descargar de http://code.google.com/p/multiwii.

      Pero como te digo, yo me bajaría la última y miraría la página de Alex in Paris que ahí viene muchísima info. Si tienes dudas dime el error que te da compilando e intento echarte un cable.

      Chao!

  10. Hola buenas, impresionante proyecto, estoy construyendo el cuatricoptero, ya he unido el WiiMotionPlus al Arduino Uno por los 4 Pins pero al compilar la version 1.8 del programa multiwii me salen dos errores:

    ·core.a(HardwareSerial.cpp.o): In function `__vector_19′:
    /Users/»*********»/Downloads/Arduino.app/Contents/Resources/Java/hardware/arduino/cores/arduino/HardwareSerial.cpp:218: multiple definition of `__vector_19′

    ·MultiWii_1_8_patch2.cpp.o:/Users/»*********»/Downloads/Serial.pde:12: first defined here

    Podrias ayudarme a solucionarlos.

    Muchas Gracias!!!

  11. Te agradezco la completa información que proporcionas sobre la construcción del quad. Me esta siendo muy útil para comprender como funcionan estos aparatos.

    No se si finalmente construiré uno porque aun me resulta un proyecto demasiado complejo pero si lo hago será por tu información.

    Muchas gracias!

Deja un comentario

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *

Este sitio usa Akismet para reducir el spam. Aprende cómo se procesan los datos de tus comentarios.