Arduino Yun es una placa de depuración basada en el microcontrolador ATmega32u4 y el Atheros AR9331. El procesador Atheros soporta la distribución de Linux basada en OpenWrt y llamada OpenWrt-Yun.
La placa tiene soporte incorporado para Ethernet y WiFi, puerto USB-A, ranura para tarjeta micro-SD, 20 pines de E/S digitales (de los cuales 7 pueden ser usados como salidas PWM y 12 como entradas analógicas), resonador de cuarzo de 16MHz, conexión microUSB, conector ICSP y 3 botones reset.
Arduino Yun se destaca de otras placas Arduino al interactuar con la distribución Linux de la placa, ofreciendo una potente computadora de red con la simplicidad de la Arduino. Además de los comandos de Linux como cURL, puede escribir sus propios scripts de shell y python para interacciones fiables.
Arduino Yun es similar a la placa Arduino Leonardo en que el ATmega32u4 tiene capacidades de comunicación USB incorporadas, eliminando la necesidad de un procesador adicional. Esto permite que el Arduino Yun se conecte a un ordenador como un ratón y un teclado, además del puerto serie COM virtual (CDC).
La librería Bridge facilita la comunicación entre dos procesadores, dando a los bocetos de Arduino la capacidad de ejecutar scripts de shell, interactuar con interfaces de red y recibir información del procesador AR9331. El host USB, los interfaces de red y la tarjeta SD no están conectados al ATmega32U4 sino al AR9331 y la librería Bridge permite a Arduino comunicarse con este periférico.
Indice
CARACTERÍSTICAS Y ESPECIFICACIONES TÉCNICAS DE LA ARDUINO YUN
Las características del Arduino Yun se pueden dividir en dos tipos. La placa Arduino Yun, posee dos procesadores, un microcontrolador AVR y un microprocesador Linux.
Microcontrolador AVR arduino.
Microcontrolador | ATMega32u4 |
Tensión de funcionamiento | 5V |
Voltaje de entrada | 5V |
Pines de E/S digitales | 20 |
Canales PWM | 7 |
Pines de entrada analógica | 12 |
Corriente continua a través de los terminales de entrada/salida | 40 mA |
Corriente continua a través de la salida 3.3V | 50 mA |
Memoria flash | 32 KB, de los cuales 4 KB son usados por el cargador |
RAM y SRAM | 2.5 KB |
EEPROM no volátil | 1 KB |
Frecuencia de reloj | 16 MHz |
Microprocesador de Linux.
Procesador | Atheros AR9331 |
Arquitectura de MIPS | 400 MHz |
Voltaje de funcionamiento | 3,3 V |
Ethernet | IEEE 802.3 10 /100Mbit /s |
WiFi | IEEE 802.11b/g/n |
USB | tipo A 2.0 Host |
Ranura de tarjeta de memoria | Solo microSD |
RAM | 64 Mb DDR2 |
Memoria flash | 16 Mb |
ALIMENTACIÓN DE LA ARDUINO YUN
Para realizar el suministro de energía en el Arduino Yun, es recomendable alimentar la placa a través del conector micro-USB (5V DC).
Si alimentas la placa a través del terminal Vin, necesitarás suministrar un voltaje estabilizado de 5V DC. No hay ningún regulador de voltaje en el tablero para reducir los niveles de alto voltaje que pueden dañar el tablero.
Arduino Yun también es compatible con una fuente de alimentación PoE, pero para usar esta característica necesitará instalar un módulo PoE en la placa o comprar una placa ya ensamblada.
Los pines son los siguientes:
Vin: La entrada de energía de la placa cuando se utiliza una fuente de alimentación externa. A diferencia de otras placas de Arduino, si va a alimentar la placa a través de este cable, debe proporcionar una fuente de tensión estabilizada de 5V.
5V: La fuente de alimentación utilizada para alimentar los microcontroladores y otros componentes de la placa. El voltaje puede provenir de la salida del pin Vin o de la alimentación a través del USB.
3V3: La fuente de alimentación de 3,3 voltios proporcionada por el regulador en la placa. La corriente máxima es de 50 mA.
GND: Salidas a tierra.
IOREF: La tensión con la que funcionan los terminales de entrada/salida de la placa (es decir, VCC para la placa). Este voltaje es de 5V para Arduino Yun.
ENTRADAS/SALIDAS ARDUINO YUN
No hay acceso directo a los pines de entrada/salida del Atheros AR9331. Todas las líneas de entrada/salida están conectadas al ATmega32U4.
Cada una de las 20 salidas digitales de Arduino Yun puede ser usada como entrada y salida usando las funciones pinMode(), digitalWrite() y digitalRead. Funcionan a 5 voltios. Cada salida puede llevar una corriente máxima de 40 mA y tiene una resistencia interna de pull-down (desactivada por defecto) de 20-50 kOhm.
Algunos pines con funciones especiales:
- Serial: Pines (RX) y 1 (TX)
- TWI: 2 (SDA) y 3 (SCL)
- Interrupciones externas: 3 (interrupción 0), 2 (interrupción 1), 0 (interrupción 2), 1 (interrupción 3) y 7 (interrupción 4)
- PWM: pines 3, 5, 6, 9, 10, 11 y 13.
- SPI: a través del conector ICSP.
- LED: 13
- Otros LED
- Entradas analógicas: A0 – A5, A6 – A11 (en las salidas digitales 4, 6, 8, 9, 10 y 12).
- AREF
La Arduino Yun tiene 3 botones de Reset o reinicio.
MEMORIA DE LA ARDUINO YUN
El ATmega32u4 tiene 32 kilobytes de memoria flash para almacenar el código del programa (de los cuales 4 kilobytes son utilizados por el cargador), 2,5 kilobytes de SRAM y 1 kilobyte de EEPROM (que se puede leer y escribir utilizando la biblioteca EEPROM).
La memoria AR9331 no está incorporada en el procesador. La RAM y la memoria no volátil están bloqueadas externamente. Arduino Yun tiene 64 MB de RAM DDR2 y 16 MB de memoria flash. La memoria flash viene cargada de fábrica con la distribución de Linux basada en OpenWrt y llamada OpenWrt-Yun.
Puede cambiar el contenido de la imagen de fábrica si instala el programa o cambia el archivo de configuración. También puedes volver a la configuración de fábrica manteniendo pulsado el botón «WLAN RST» durante 30 segundos.
El OpenWrt-Yun instalado ocupa unos 9MB de la memoria flash interna disponible de 16 MB. Si necesitas más espacio en el disco para instalar aplicaciones, puedes usar una tarjeta microSD.
Comunicaciones en la Arduino YUN
El tablero de Arduino Yun tiene varias opciones para comunicarse con una computadora, otro tablero u otros microcontroladores. El ATmega32U4 proporciona un puerto UART de hardware para la comunicación en serie con niveles TTL (5 voltios).
El ATmega32U4 también permite la comunicación Serial (CDC) a través de USB y se muestra en el ordenador como un puerto COM virtual. El chip también actúa como un dispositivo USB 2.0 de velocidad completa que utiliza controladores COM USB estándar.
El IDE de Arduino incluye un monitor de puerto serie que permite el envío y la recepción de datos de texto simple desde la placa. Los LEDs RX y TX de la placa se encienden cuando se transmiten datos a través de una conexión USB a un ordenador.
Los pines digitales 0 y 1 se utilizan para la comunicación en serie entre el ATmega32U4 y el AR9331. La interacción entre los dos procesadores es manejada por la biblioteca Bridge.
La biblioteca SoftwareSerial permite la comunicación en serie a través de cualquier pin digital de Arduino Yun. Se debe evitar el uso de los pines 0 y 1, ya que son utilizados por la biblioteca del Puente.
El ATmega32U4 también soporta la comunicación a través de I2C (TWI) y SPI. El IDE de Arduino incluye una biblioteca Wire para simplificar el uso del bus I2C. La biblioteca SPI se utiliza para la comunicación a través de SPI.
Arduino Yun se define como un teclado y ratón estándar y puede ser programado para controlar estos dispositivos de entrada utilizando las clases de Keyboard y Mouse.
Las interfaces Ethernet y WiFi de la placa proporcionan un acceso directo al procesador AR9331. Utiliza la biblioteca del puente para enviar y recibir datos a través de estas interfaces. Para configurar los interfaces, puede utilizar el panel de control de la red.
Arduino Yun también tiene capacidad de alojamiento USB a través de OpenWrt-Yun. Puede conectar dispositivos periféricos como memorias USB para almacenamiento adicional, un teclado o una cámara web. Es posible que tenga que descargar e instalar software adicional para trabajar con estos dispositivos.
Programando en Arduino YUN
Arduino Yun puede ser programado usando el IDE de Arduino. Seleccione «Arduino Yun» de la placa de Herramientas → (de acuerdo con el microcontrolador de su placa).
El ATmega32U4 en el Arduino Yun viene con un cargador de arranque ya cosido, que le permite descargar el nuevo código de programa en el microcontrolador sin utilizar un programador de hardware externo. La comunicación es a través del protocolo AVR109.
También puede puentear el cargador y descargar el microcontrolador a través del conector ICSP (Intra-Circuit Sequential Programming) utilizando un ISP o analógico de Arduino.
Reinicio automático y gestor de arranque de la Arduino YUN
En lugar de requerir que se presione un botón de reinicio físico antes de parpadear el nuevo código de programa, Arduino Yun está diseñado para permitir el reinicio con el software que se ejecuta en el ordenador conectado.
Se invoca un reinicio cuando el Arduino Yun tiene un puerto COM serial virtual (CDC) que primero se abre a 1200 baudios y luego se cierra. Cuando esto sucede, el procesador se reinicia rompiendo la conexión USB del ordenador (es decir, el puerto COM serie virtual desaparece).
Después de reiniciar el procesador, el cargador de arranque se inicia y permanece activo durante unos 8 segundos. El cargador de arranque también puede ser iniciado presionando el botón de reinicio en el Arduino Yun.
Tenga en cuenta que cuando se aplica energía a la placa Arduino Yun, ésta ejecutará inmediatamente el programa de usuario (si está cargado) sin iniciar el gestor de arranque.
Debido a esta forma de manejar un reinicio en una placa Arduino Yun, es mejor permitir que el IDE de Arduino intente activar un reinicio antes de que el firmware sea el firmware, especialmente si está acostumbrado a pulsar el botón de reinicio antes de que el firmware sea flasheado en otras placas.
Si el IDE no puede reiniciar la placa, siempre puede iniciar el cargador presionando el botón de reinicio en la placa.