Entorno de desarrollo - adrianjmb/Arduino-Drone GitHub Wiki

Todo el hardware que en el que se basa el dron necesita de un software capaz de controlarlo. La base de este proyecto es realizar dicho control en una plataforma accesible a todo el mundo, es decir, ser una plataforma de hardware libre. El software, y por lo tanto el hardware libre se refiere a:

Software/hardware libre: Dotar a los usuarios de la libertad para ejecutar, copiar, distribuir, estudiar, cambiar y mejorar el software o el hardware.

Entre los principales exponentes del hardware/software libre, dada su capacidad de desarrollo se han considerado:

  • Arduino: Arduino es una plataforma electrónica de código abierto con una filosofía de sencillez en el uso. Se caracterizan por estar basados en el control mediante sencillas instrucciones de sus pines, capaces de trabajar como entradas y salidas. Además, incorpora una gran comunidad detrás que desarrollan librerías y guías con el fin de adaptar gran cantidad de dispositivos a la plataforma Arduino. Además de esto, al ser una plataforma madura en cuanto al desarrollo, existen en el mercado gran cantidad de placas de Arduino, con distintas características.

Arduino

  • Raspberry PI: Este microprocesador se considera el "ordenador de bajo coste" dada su capacidad de procesamiento (similar a la de un ordenador de bajas especificaciones) y su pequeño tamaño, equivalente a una tarjeta de crédito. La Raspberry PI dispone de conectores USB, Ethernet, HDMI y jack de audio, haciendo a la misma capaz de actuar como un ordenador de software libre en presencia de un monitor, un ratón y un teclado. Igualmente, dispone de pines accesibles para conectar distintos sensores y actuadores.

RaspberryPI

  • BBC Micro Bit: El Micro Bit es un microcontrolador programable del tamaño menor que la Raspberry PI, dotado de un acelerómetro, magnetómetro, así como tecnología Bluetooth. A su vez, dispone de tres anillos de entrada/salida para conectar dispositivos o sensores usando conectores de cocodrilo o de banana de 4mm.

MicroBit

Comparativa

Placa Ventajas Desventajas
Arduino * Multitud de I/O (hasta 54 digitales y 16 analógicos en el Arduino Mega) * No acepta la multitarea
* Tensiones y corrientes de salida ampliamente usadas en los sensores y actuadores comunes (5 y 3,3V) * Baja memoria (0.002MB)
* Trabaja en tiempo real * Baja velocidad de procesamiento
* Entorno de desarollo intregrado (IDE) disponible en múltiples plataformas
RaspberryPI * Multitud de puertos de I/O (27 pines GPIO) * Mayor dificultad en la programación
* Alta velocidad de procesamiento (1,2 GHz) * No trabaja en tiempo real
* Tensiones y corrientes de salida ampliamente usadas en los sensores y actuadores comunes (5 y 3,3V) * Necesidad de un SO para cualquier cosa
* Acepta la multitarea
Micro Bit * Alta velocidad de procesamiento * Voltaje único de salida de 3V
* Acelerómetro, giróscopo y magentómetro incorporado
* Alta disponibilidad de puertos de I/O (3 analógicos y 20 digitales)
* Programable en varios lenguajes

Entre estas tres opciones, cada una con sus ventajas y desventajas, se ha elegido Arduino, debido a su capacidad de trabajar en tiempo real, así como la funcionalidad de su IDE y la gran cantidad de módulos compatibles en el mercado. Las otras dos placas serían viables para realizar el proyecto, pero se considera que la placa que adecua sus características de una forma más adecuada es la mencionada Arduino.

Arduino

Escogido Arduino como placa electrónica de desarrollo, es necesario escoger uno entre los modelos disponibles en el mercado:

  • Arduino UNO: Modelo con funcionalidades básicas. Parte de un microcontrolador ATmega328, con 32KB de memoria flash y 1KB de memoria EEPROM. Dispone de 14 pines I/O digitales, de los cuales 6 pueden actuar como salidas PWM, y 6 pines de entrada analógica. El voltaje de alimentación está entre 7-12V y sus entradas y salidas tienen un voltaje máximo de 5V e intensidad máxima de 40mA.
  • Arduino Mini: La placa más compacta de Arduino, reduciendo también las prestaciones. Se basa en un ATmega32u4, con 32KB de memoria flash y 1KB de memoria EEPROM. Posee 20 pines I/O digitales, de los cuales 7 pueden usar PWM y 12 entradas analógicas. El voltaje de alimentación está entre 7-12V y sus entradas y salidas tienen un voltaje máximo de 5V e intensidad máxima de 40mA, al igual que en el Arduino UNO.
  • Arduino Mega: Uno de los modelos más potentes de Arduino. Su controlador es un ARmega 2560, con 256KB de memoria flash y 4KB de memoria EEPROM. Incorpora 54 pines I/O digitales, de los cuales 15 permiten PWM y 16 entradas analógicas. Como en todos los modelos, el voltaje de alimentación está entre 7-12V y sus entradas y salidas tienen un voltaje máximo de 5V e intensidad máxima de 40mA.
  • Existen además varios modelos enfocados más hacia el internet de las cosas (IoT según sus siglas en inglés) como el Arduino Leonardo, Arduino Yun, Arduino Ethernet, etc. cuyas funcionalidades se basan más en la comunicación a través de internet con distintos sensores y actuadores.

Por sus capacidades frente al resto, el modelo que se va a utilizar es el Arduino Mega.