Seguro que más de uno de vosotros habéis oído hablar a algún colega y/o en los foros de Drones De Carreras sobre Arduino: Pues yo lo programé con un Arduino y me funcionó DPM!! Pero realmente… ¿Que aplicaciones tiene un arduino en nuestro hobby? ¿Como lo configuro en mi ordenador? ¿Como lo conectamos a nuestros dispositivos? En este articulo vamos a desvelar más de una incógnita gracias a las famosas LiloNews!!  😯

Antes de entrar en materia vamos a repasar un poco sobre que es un Arduino en cuestión:

Mediante un Arduino es posible automatizar cualquier cosa para hacer agentes autónomos, controlar luces, reproducir mp3, jugar al ajedrez, controlar robots, maquinas, impresoras 3D, CNC o mil cosas que se nos pueda ocurrir.

Arduino es una plataforma de electrónica “open-source o de código abierto cuyos principios son contar con software y hardware fáciles de usar. Es decir, que promete ser una forma sencilla de realizar proyectos interactivos para cualquier persona.

Arduino es tanto software como hardware, y aquí viene la primera diferencia con otras placas y microcontroladores. Los entornos de desarrollo y lenguaje de programación de Arduino y las placas en las que se ejecutan han sido desarrollados de la mano, por lo que tenemos asegurada tanto la compatibilidad como la sencillez de desarrollo sobre ellas.

Las placas Arduino

Hay infinidad de placas basadas en Arduino, ya que tambien es hardware “Open-source“, así que cualquiera que quiera hacer una placa puede hacerlo. Y por ello tenemos Arduino de todos los colores, tamaños y con funciones propietarias de lo más diverso, y también productos que sin ningún pudor están basados en Arduino para controlar a su vez distintos dispositivos, integrados en el producto o no.

¿Porque Arduino Nano?

Es mucho más pequeño que el Arduino Mega. Esta basado en el microcontrolador ATmega328 y tiene una entrada mini-usb a través de la cual se puede subir el código fuente para la ejecución de los comandos. Viene con 14 puertos digitales de entrada/salida, 8 puertos analógicos, una memoria de 16 KB, 1 KB de SRAM y 512 bytes de EPROM. Su ClockSpeed es 16 MHz. Funciona con un voltaje que puede estar en el rango de 7 a 12 voltios. Entrega una corriente de 40 mA. Aparte de algunas desventajas como un número menor de puertos de entrada/salida o un menor espacio en la memoria, es prácticamente idéntico al Arduino Mega. Se carga el código desde Arduino IDE, utilizando el mismo proceso que con el Arduino Mega. Los códigos son perfectamente compatibles de una placa a otra.

PINOUT del Arduino Nano

¿Para qué sirve un FTDI o un USB to serial?

Sirve para conectar al pc dispositivos que se comunican por puerto serie y que no tienen usb.

Los dispositivos que se comunican por puerto serie se identifican porqué tienen un TX y un RX. En general son 4 cables: TX, RX, VCC y GND o lo que es lo mismo envío de datos, recepción de datos y para alimentar con corriente el voltaje y masa.

Por ejemplo, las utilidades de un FTDI o un USB to serial más empleadas en nuestro hobby son:

  • Un GPS.
  • Un minimOSD.
  • Un arduino sin usb.
  • Las controladoras micro que van sin usb.
  • Flashear y configurar nuestra controladora si se nos estropeara el microUSB.
  • Flashear restaurando o quitando el bootloader de OP en una CC3D o Sparky2.0, etc…
  • Algunas emisoras como por ejemplo la Flysky FS-i6 para flashearla.
  • Y un largo etcétera….

Como veis un USB to serial es una herramienta muy versátil en los Drones De Carreras y es casi una herramienta imprescindible.

Tipos de USB to serial

Suele llamársele por muchos nombres distintos pero son todos lo mismo, que no os confundan:

Usb to serial, USB to TTL, USB to uart, USB to RS232, etc…

En el título se ha llamado FTDI por ser la marca del chip mas famoso y se ha convertido en sinónimo y practicamente en un standard, pero la verdad es que hay mas chips a parte del FTDI que hacen la misma función:

  • FTDI FT232
  • Silabs CP2102
  • CH340
  • PL2303

Conexión del Arduino nano en modo USB to serial

Para usar la función de USB to serial con un Arduino Nano, no se usa el chip principal (Atmel ATMEGA328P) como muchos podiamos llegar a pensar, si no que emplea un chip que podemos localizar por abajo del Arduino, normalmente incorporan un CH340. Para usarlo sin problemas deberemos de descargar e instalar los drivers correspondientes a su chip:

CH340:http://www.wch.cn/download/CH341SER_ZIP.html (No os asustéis de la web de descarga 😆 )

arduino ftdi

Para usarlo nohace falta cargar ningún programa en el Arduino, aprovecharemos que él ya lleva un chip de éstos, por lo que el chip principal lo vamos a usar de forma transparente y tendremos que crear un puente para anularlo:

El pin RST va puenteado a GND para que esté permanentemente reseteado y no se inicialice el chip Atmel del Arduino y así funcione de forma transparente.

MUY IMPORTANTE: El pin RX0 va a RX del destino y el pin TX1 va al pin TX del destino. NO VAN CRUZADOS como solemos usarlo normalmente. Tener esto claro ya que típicamente en las conexiones serie se cruzan, pero en éste caso en concreto es una excepción a la norma.

A modo resumen:

RST puente con GND en el arduino

RX0 arduino —–> RX dispositivo
TX1 arduino —–> TX dispositivo
GND arduino —–> GND dispositivo
5V arduino —–> VCC o 5V dispositivo (o 3V3 del arduino si el dispositivo se alimentara a 3.3v)

Información adicional

También funciona en un Arduino UNO clásico. En el Arduino UNO hay la opción de quitar el chip en vez de hacer el puente, encontramos más práctico el puente.

Hay una tercera manera de hacer el arduino transparente a parte del puente o quitar el chip que es cargando éste código en el arduino:

void setup(){
pinMode(0,INPUT);
pinMode(1,INPUT);
}
void loop(){
}

Fotos de ejemplo:

Éste ejemplo es de un Arduino Nano conectado a una emisora Flysky FS-i6 para su flasheo. Puede apreciarse el puente entre RST y GND, el no-cruzado de RX y TX y en este caso no hace falta alimentar la emisora, ya que dispone de batería propia:

En este otro ejemplo vemos un jumper entre el RST y GND, vemos el cable azul de 5V alimentando la Afronimi, el negro GND al GND de la Afromini, el amarillo RX0 al RX de la Afromini y el lila TX1 hacia el TX de la Afromini:

Y en el ultimo ejemplo, volvemos a ver el puente entre el RST y GND. Está conectado a un módulo bluetooth y éste requiere los 5V y los 3.3V por eso hay ese cable lila de más, pero lo habitual es solo alimentar a 5V:

Aquí conectado a una CC3D para flashearla:

Fotos de Sgeorgiev

 

¿Para qué sirve un USBasp?

También es conocido como ICSP programmer o AVR programmer que es lo mismo.

Básicamente y resumiendo: sirve para flashear chips Atmel, esto es posible accediendo directamente a él, por ejemplo con herramientas de flasheo que conectan directamente a las patas del chip o mediante pines en en la placa electrónica, también llamados pads. Tambien es posible flashear su bootloader si fuera necesario.

Vas a identificar cuando necesites uno de estos por el uso de los pines MISO, MOSI, SCK, RES, etc…

Por ejemplo con el USBasp podemos flashear:

  • ESC Atmel y además flashear su bootloader con blheli.
  • Emisoras, por ejemplo la Turnigy 9X o la FlySky FS-TH9X y sus variantes.
  • Bootloader del Arduino si éste se nos borrara.
  • Y otro largo etc…

Cómo preparar un Arduino Nano a USBasp

Ya se explicó en un anterior post sobre ESC’s, pero lo citamos de nuevo para que quede reunido todo y para los despistados 😐 :

Estando en posesión de nuestro Arduino Nano:

  • Instalamos sus drivers USB del chip CH340G para que windows lo reconozca como un puerto serie. Podemos fijarnos en administrador de dispositivos a ver que número de COM le ha sido asignado. Si ya se hubieran instalado antes no hace falta. Si ese arduino usa otro chip, descargar los que correspondan.
  • Descargamos el software BlHeli Suite de su página oficial, descomprimimos el zip en una carpeta donde queramos y ejecutamos la aplicación.
  • Vamos a la pestaña “Make Interfaces”, seleccionamos “Nano w/ ATmega328, seleccionamos abajo de todo el puerto COM de nuestro arduino y apretamos el botón de “ArduinoISP Programmer”.

  • El arduino ya esta preparado!!

Conexión del Arduino nano en modo USBasp

En la foto de abajo podemos ver pintados de azul los 6 pines ISP que vamos a utilizar en el arduino Nano:

Podéis ver marcados de Azul los pins que se van a emplear para conectar el dispositivo a flashear:

  • D10 = SS —> RST (ojo con éste pin D10, no confundir con los otros llamados reset en la foto, solo puede ser el D10)
  • D11 —> MOSI
  • D12 —> MISO
  • D13 —> SCK
  • 5V —> 5V
  • GND —> GND

Para facilitar la conexión podemos adquirir cables dupont hembra hembra:

carrito_ddcComprar

También podemos ayudarnos de las famosas protoboard usadas en proyectos de electrónica:

carrito_ddcComprar

Conclusiones

En nuestro Hobby, si quieres evolucionar tus aparatos y el software que los controla, personalizar las funciones de nuestros dispositivos o simplemente actualizar a una nueva versión, es necesario emplear distintos programadores, estos a su vez cuestan su dinero y muchas veces suelen ser exclusivos para un tipo de uso. Por lo que mediante el uso de Arduino podemos realizar la mayoría de configuraciones con un solo dispositivo, y quien sabe, puede que el día de mañana gracias a este post, te inmersas en el maravilloso mundo de la electrónica para crear tus propias abominaciones robóticas, pero recuerda, primero lo leíste en www.dronesdecarreras.com.

Arduino: la placa que todo lo controla!!

Fuente: Post Original extraído del Foro de Drones De Carreras (Gracias Lilo 😎 )