Resumen del contenido
En
la presente entrada se realiza una introducción hacia Intel Galileo de
primera generación, exponiendo las características básicas, formas de
programación, estructura de hardware, sistemas operativos soportados,
entre otros.
1. Sobre Intel Galileo
Intel Galileo es una placa basada en el procesador Intel® Quark SoC
X1000 con una arquitectura de 32-bit. Es la primera placa basada en la
arquitectura Intel® diseñada para ser pin-compatible tanto en hardware
como en software con los shields Arduino UNO. Posee 12 pines digitales
de entrada/salida (numerados del 2 al 13), los pines digitales AREF y
GND, 6 entradas analógicas, pines hembra para proveer alimentación (5V –
3.3V – GND), pines ICSP y los pines 0 y 1 del puerto UART.
La tensión principal en la que opera Galileo es 3.3V sin embargo, un jumper en la placa habilita 5V (ver figura 1, indicador 20). Una de las características más llamativas de la placa es su compatibilidad con Arduino IDE permitiendo combinar la potencia de Galileo con la simpleza de Arduino.
La tensión principal en la que opera Galileo es 3.3V sin embargo, un jumper en la placa habilita 5V (ver figura 1, indicador 20). Una de las características más llamativas de la placa es su compatibilidad con Arduino IDE permitiendo combinar la potencia de Galileo con la simpleza de Arduino.
2. Características de Hardware
En
Fig. 1 se expone la placa Intel® Galileo con una señalización y
explicación (tabla) de sus componentes de hardware, dentro de los cuales
destacan la memoria RAM DDR3 de 256 MB, el puerto ethernet de 10/100,
un slot para micro SD de hasta 32 GB, conexión SPI, un puerto serie
RS-232 (ficha Jack 3.5 mm) y puertos USB Host y USB Client.
Fig. 1: Señalización de elementos de Hardware de Intel Galileo |
Número | Componente | Descripción |
1 | Puerto Ethernet | Conector 10/100 Ethernet |
2 | Puerto serial RS-232 | Jack 3.5 mm de 3 pines (Tx, Rx, GND) |
3 | MAX-3232 |
Transceptor RS-232
|
4 | USB 2.0 Cliente | Conector USB Cliente 2.0 tipo B. Uso típico, programación. |
5 | USB 2.0 Host | Conector USB Host 2.0 tipo AB, soporta hasta 128 nodos. |
6 | SPI Flash | Memoria Flash SPI de 8MB usado para Firmware o bootloader. |
7 | Puerto de programación SPI Flash | Header de 7 pines para la programación por medio de la interface serial (SPI). 4 MHz para los shield de Arduino y soporta hasta 25 MHz. |
8 | Interface Shield | Compatible con Shields de Arduino UNO Rev 3. |
9 | ADC |
Conversor Analógico Digital, AD7298.
|
10 | Intel® Quark SoC X1000 |
Procesador de 32-bit, 400 MHz con el set de instrucciones Pentium, compatible con arquitectura ISA.
· 16 Kbyte L1 cache
· 512 KBytes de SRAM embebida
· RTC integrado (con pila de 3V externa)
|
11 | ICSP | Header de 6 pines para programación serial ICSP. |
12 | RAM DDR3 de 256 MB | 256 Mbyte de RAM, habilitada por default por el Firmware. |
13 | Interface Arduino | Compatible con Arduino UNO R3. |
14 | Puerto de Debug JTAG | Header JTAG de 10 pines. |
15 | Expansor GPIO |
PWM provisto por un expansor I2C.
|
16 | Slot micro SD | Soporta SD de hasta 32 GB. |
17 | 5V - Alimentación | Entrada de 5V y hasta 3ª (continua). Se recomienda utilizar el transformador provisto por el proveedor de la placa. |
18 | Regulador de tensión | Genera 3.3V. Máxima corriente de 800 mA. |
19 | Eth. PHY | Transceptor de la capa física de ethernet. |
20 | 5V-3V Jumper | Jumper para cambiar la tensión de 5V a 3.3V. |
Parte trasera | Conector mini-PCI-Express | En la parte trasera posee un conector mini PCI-Express. |
3. Diagrama de conexión
En
Fig. 2 se expone un diagrama de la interconexión de los bloques más
significativos de la placa Intel® Galileo. Cabe destacar que el diagrama
es a modo informativo e ilustrativo, es decir no se muestra el
esquemático real de la placa, sino un esquema a modo de interpretación
general. Para descargar el esquemático de la placa, haga click aquí.
4. Posibilidades de programación
Hay varios programas y lenguajes con los cuales se puede programar la
placa Galileo, esto va a depender mayormente de la versión del Firmware
así como también de la finalidad que tenga el programa (si está
destinado a páginas y servidores web, a sistemas embebidos, etc). Se
puede programar en Java, Java Script, Node.JS, C, C++, Python, entre
otros.
Existen IDEs que facilitan la compilación de los códigos realizados en el lenguaje de programación elegido. Algunos de los IDEs disponibles son Intel-System-Studio-IOT-Edition, Intel-System-Studio-for-Microcontrollers, Intel XDK y Arduino. A continuación, se explican brevemente las características de cada uno de los IDEs.
Intel-System-Studio-IOT-Edition: Este IDE basado en Eclipse para desarrollar en C, C++ y Java viene con la capacidad incorporada de integrar sensores a través de las bibliotecas UPM y MRAA. Se pueden obtener numerosas plantillas y otras herramientas para iniciar proyectos. Es ideal para proyectos dedicados a sistemas embebidos.
Intel-System-Studio-for-Microcontroller: Para usuarios más avanzados, este IDE está diseñado específicamente para habilitar a los desarrolladores de microcontroladores Intel® a diseñar sistemas inteligentes y rápidos. Tiene la capacidad de optimizar el código fuente para la eficiencia de energía y recursos del sistema.
Intel XDK: IDE desarrollado para la programación en HTML 5, JavaScript, Node.JS. Permite la creación de aplicaciones web y aplicación móviles ya sea para Android, iOS y/o Windows. Ideal para la programación en los lenguajes antes mencionados y para la creación de servidores web así como aplicaciones móviles o web.
Existen IDEs que facilitan la compilación de los códigos realizados en el lenguaje de programación elegido. Algunos de los IDEs disponibles son Intel-System-Studio-IOT-Edition, Intel-System-Studio-for-Microcontrollers, Intel XDK y Arduino. A continuación, se explican brevemente las características de cada uno de los IDEs.
Intel-System-Studio-IOT-Edition: Este IDE basado en Eclipse para desarrollar en C, C++ y Java viene con la capacidad incorporada de integrar sensores a través de las bibliotecas UPM y MRAA. Se pueden obtener numerosas plantillas y otras herramientas para iniciar proyectos. Es ideal para proyectos dedicados a sistemas embebidos.
Intel-System-Studio-for-Microcontroller: Para usuarios más avanzados, este IDE está diseñado específicamente para habilitar a los desarrolladores de microcontroladores Intel® a diseñar sistemas inteligentes y rápidos. Tiene la capacidad de optimizar el código fuente para la eficiencia de energía y recursos del sistema.
Intel XDK: IDE desarrollado para la programación en HTML 5, JavaScript, Node.JS. Permite la creación de aplicaciones web y aplicación móviles ya sea para Android, iOS y/o Windows. Ideal para la programación en los lenguajes antes mencionados y para la creación de servidores web así como aplicaciones móviles o web.
Arduino: IDE basado en el entorno de processing y lenguaje de programación basado en Wiring, ideal para usuarios hobbistas que conocen Arduino pero prefieren la potencia que Galileo brinda y también para usuarios que están comenzando en el mundo de la programación y la creación de sistemas embebidos. No se recomienda para proyectos grandes y/o en los cuáles se requiera una optimización de recursos.
5. Sistemas Operativos soportados
Galileo está diseñada para correr dos sistemas operativos separados. El
primero es una imagen de 8 MB que está situada en la memoria flash
(también referenciada como la versión SPI-flash), que contiene los
elementos básicos para correr programas de Arduino. Si se ejecuta un
Sketch, no es posible bootear un sistema operativo desde la tarjeta SD.
Por otra parte, en la tarjeta SD se pueden montar sistemas operativos diseñados para ser ejecutados por el procesador de Galileo (Quark SoC X1000, con arquitectura x86). Algunos de los sistemas disponibles son los siguientes.
Linux Poky i585: Es una distribución de Linux que pertenece al proyecto YOCTO, de código abierto. La versión que ofrece Intel contiene las librerías UPM y MRAA para la programación a nivel de pines de la placa Galileo, así como también las librerías de Python, entre otras. Es una buena opción para la implementación de sistemas embebidos.
Linux Debian: Es la conocida distribución Debian, adaptada para el procesador de arquitectura x86 que contiene la placa Galileo. Se la suele utilizar con frecuencia para la creación de servidores web debido a su fiabilidad. Esta distribución no contiene las librerías MRAA y UPM, pero pueden ser instaladas.
Tiny Core Linux: No es una distribución oficial de Intel. Tiny Core Linux es un software libre de código abierto, bajo la licencia GNU GPLv2. Es una buena opción ya que posee bastante soporte, acompañado de más de 3200 extensiones (librerías, aplicaciones, etc), detalle que escapa a las distribuciones antes mencionadas ya que Intel está quitando soporte a Galileo primera generación.
Por otra parte, en la tarjeta SD se pueden montar sistemas operativos diseñados para ser ejecutados por el procesador de Galileo (Quark SoC X1000, con arquitectura x86). Algunos de los sistemas disponibles son los siguientes.
Linux Poky i585: Es una distribución de Linux que pertenece al proyecto YOCTO, de código abierto. La versión que ofrece Intel contiene las librerías UPM y MRAA para la programación a nivel de pines de la placa Galileo, así como también las librerías de Python, entre otras. Es una buena opción para la implementación de sistemas embebidos.
Linux Debian: Es la conocida distribución Debian, adaptada para el procesador de arquitectura x86 que contiene la placa Galileo. Se la suele utilizar con frecuencia para la creación de servidores web debido a su fiabilidad. Esta distribución no contiene las librerías MRAA y UPM, pero pueden ser instaladas.
Tiny Core Linux: No es una distribución oficial de Intel. Tiny Core Linux es un software libre de código abierto, bajo la licencia GNU GPLv2. Es una buena opción ya que posee bastante soporte, acompañado de más de 3200 extensiones (librerías, aplicaciones, etc), detalle que escapa a las distribuciones antes mencionadas ya que Intel está quitando soporte a Galileo primera generación.
FreeRTOS: Es posible ejecutar un RTOS en Galileo. Esto brinda independencia de cualquier sistema operativo (como los antes mencionados) y brinda la libertad de ejecutar sólo las acciones que el programador desee. Para más información, hacer click aquí.
gracias por su informacion
ResponderEliminar