Vous êtes sur la page 1sur 16

UNIVERSIDAD NACIONAL DE INGENIERÍA

FACULTAD DE ELECTROTECNIA Y COMPUTACIÓN


MICROPROCESADORES
DEPARTAMENTO SISTEMAS DIGITALES Y TELECOMUNICACIONES

Laboratorio #1: Introducción a la Intel Galileo y controlarla por


línea de comandos
Carrera INGENIERÍA ELECTRÓNICA
Semestre Grupo
Tipo de Práctica Laboratorio Simulación Fecha
Asignatura Maquinas Computadora I
Unidad Temática
Nº Alumnos por práctica 3 Nº Alumnos por reporte 3
Nombre del Profesor
Nombre(s) de Alumno(s) 1.
2.
3.
Tiempo estimado Vo. Bo. Profesor
Comentarios

1. Objetivos

Familiarizar al usuario en el uso de la tarjeta de desarrollo Intel Galileo


Gen 1, el entorno de desarrollo del software de Arduino, que el usuario
aprenda a crear una imagen en una microSD para que la tarjeta arranque
utilizando el sistema operativo que se encuentra almacenado en esta y así
aprovechar la funcionalidades extras que esta tarjeta de desarrollo ofrece.

Que el usuario logre conectar la placa intel galileo gen 1 por medio de telnet
a su computadora y por medio de comandos enviar instrucciones a esta.

2. Medios a utilizar

 Intel Galileo Gen 1


 Computadora
 Memoria MicroSD (2Gb o mas)
 Software arduino-1.6.5+Intel
 Router
 Cable Ethernet
 Led
UNIVERSIDAD NACIONAL DE INGENIERÍA
FACULTAD DE ELECTROTECNIA Y COMPUTACIÓN
MICROPROCESADORES
DEPARTAMENTO SISTEMAS DIGITALES Y TELECOMUNICACIONES

3. Introducción
¿Por qué Galileo?
Proyectos como Raspberry Pi y Arduino se han hecho muy populares entre los
aficionados a la electrónica y la computación. Ambos proyectos, además de ser
la base de muchos proyectos creativos, son también los pilares sobre los que
se apoyan muchos docentes para introducir a los estudiantes en el mundo de
la programación y la computación; dos proyectos que permiten crear aulas de
informática sin que el coste sea ya una barrera de entrada. Siguiendo esta
senda, y con el objetivo de llevar también la computación a las aulas, Intel ha
presentado en Roma el Proyecto Galileo, una placa de desarrollo que nace
gracias a un acuerdo de colaboración con Arduino LLC. Un sistema de
desarrollo que se convierte en la primera placa de arquitectura Intel que es
compatible con Arduino.

Esta nueva línea de placas de desarrollo es como una pizarra en blanco que
permitirá a los desarrolladores crear infinitos proyectos. Gracias a su
gran conectividad, potencia de proceso, y el uso de SDK muy sencillos, permite
crear software que, por ejemplo, conecte a Internet cualquier dispositivo, un
dispositivo que se ilumine cada vez que recibimos un mensaje en Twitter.

Características de Intel Galileo


 Procesador Pentium de 400 Mhz con 16 KB de memoria caché
 512 KBytes de memoria embebida SRAM
 Simple de programar, un solo núcleo, un sólo hilo de ejecución,
velocidad constante
 Soporte para el modo sleep ACPI
 Reloj de tiempo real con una batería opcional de 3V (batería de moneda)
 Conector Ethernet 10/100
 Botón de rearranque (reboot)
 Botón de reset para poner los shields en estados conocidos
 8 MB de almacenamiento para poner el bootloader o firmware y el
último programa que se quiera ejecutar. De 256 KB a 512 KB para
guardar el programa (sketch).
 Para más información consulte el datasheet
UNIVERSIDAD NACIONAL DE INGENIERÍA
FACULTAD DE ELECTROTECNIA Y COMPUTACIÓN
MICROPROCESADORES
DEPARTAMENTO SISTEMAS DIGITALES Y TELECOMUNICACIONES

Partes de Intel Galileo

Procesador (1)
Este procesador Intel particular es Quark SoC X1000 procesador de
aplicaciones, que está diseñado para aplicaciones de baja potencia y de
pequeño tamaño. No es tan potente como la CPU de su computadora portátil,
pero es mucho más potente que el chip en un Arduino Uno.

Memoria de acceso aleatorio (RAM) (2)


Memoria de acceso aleatorio, o RAM, es donde Galileo mantiene programas
en ejecución y realiza un seguimiento de los datos que están siendo utilizados
por esos programas. El Galileo tiene 512 kilobytes de memoria RAM integrados
en el procesador y un adicional de 256 megabytes de RAM en estos chips.
Cuando la tarjeta se apague, los datos almacenados en la RAM se pierden.
Cualquier dato que se debe almacenar (como su código) debe ser almacenado
en la tarjeta microSD.

La memoria flash (3)


La memoria flash actúa como el disco duro de Galileo. Los datos almacenados
aquí se guardan incluso después de que la tarjeta se apaga y se desconecta la
UNIVERSIDAD NACIONAL DE INGENIERÍA
FACULTAD DE ELECTROTECNIA Y COMPUTACIÓN
MICROPROCESADORES
DEPARTAMENTO SISTEMAS DIGITALES Y TELECOMUNICACIONES

alimentación. Por esta razón, es donde se almacenan los programas de la


tarjeta y el sistema operativo. Tiene una capacidad de 8 megabytes, la mayoría
de los cuales está ocupado por el sistema operativo de Galileo.

Ranura para tarjetas MicroSD (4)


Si necesita más espacio para programas más grandes o almacenar datos,
puede insertar una tarjeta microSD en esta ranura. Las tarjetas MicroSD.
Incluso puede cargar un sistema operativo en la tarjeta y arrancar de él en lugar
de la memoria flash incorporada. Se tendrá que hacer esto si desea la
funcionalidad adicional como WiFi y el acceso a la cámara web porque los
controladores no caben en los 8 megabytes de memoria flash instalada.
Galileo puede utilizar una tarjeta MicroSD hasta 32 gigabytes de tamaño.

Pines de expansión de Arduino (5)


Con el uso de estos pines podrás conectar entradas y salidas a la Galileo. Ya sea
que utilices cables de puente para conectar los pines a una tabla de nodos para
la creación de prototipos, o que va a utilizar un Arduino shield para agregar
funcionalidad a su tarjeta.

Puerto de cliente USB (6)


Vamos a usar este puerto para conectar el Galileo al puerto USB del ordenador.
Una vez conectado, puede subir su código y comunicarse con él. Siempre
conecte la fuente de alimentación antes de conectar el Galileo en su ordenador
a través de USB.

Puerto host USB (7)


Este puerto le permite conectar periféricos USB a su Galileo. Podría ser
accesorios como cámaras web, dispositivos de sonido, almacenamiento, y
mucho más.

Puerto serie (8)


Esto puede parecer una salida de auriculares, pero no está destinado para el
audio. En realidad es un puerto serie, que se utiliza para interactuar con el
sistema operativo Linux de la Galileo a través de un entorno de línea de
comandos basada en texto.
UNIVERSIDAD NACIONAL DE INGENIERÍA
FACULTAD DE ELECTROTECNIA Y COMPUTACIÓN
MICROPROCESADORES
DEPARTAMENTO SISTEMAS DIGITALES Y TELECOMUNICACIONES

Entrada de energía (9)


Esto es donde se conecta el adaptador de corriente de Galileo. Debe enchufar
el adaptador de CA cuando utilice Galileo. Siempre hay que alimentar la tarjeta
a través de su fuente de alimentación antes de conectarlo vía USB al ordenador.
De lo contrario, puede dañar la placa.

Puerto Ethernet (10)


El puerto Ethernet en la tarjeta permitirá conectarlo a una red por cable para
que pueda comunicarse con otros equipos y dispositivos de la red, o acceder a
Internet.

Mini ranura PCI Express (no se muestra)


Si usted desea hacer su conexión de red inalámbrica, puede conectar una
tarjeta WiFi a la ranura mini PCI Express en la parte inferior de la tarjeta. Esta
ranura también puede instalar las tarjetas que ofrecen funcionalidad adicional,
como más espacio de almacenamiento, el acceso GSM para conectarse a redes
celulares, Bluetooth para conectividad de dispositivos inalámbricos, y mucho
más.

Energía de la batería de reloj (11)


Este conector te permitirá cablear una pequeña batería de 3 voltios al galileo
de modo que el procesador puede continuar registrando la hora y fecha
incluso cuando la tarjeta no esté conectada a 5 voltios

Botón de reinicio (12)


Este botón reiniciará la tarjeta, incluyendo el sistema operativo Linux de
Galileo.

Botón de reinicio (13)


Este botón reiniciará el código y enviará la señal de reposición a cualquier
escudo unido a la cabecera de expansión. El sistema operativo Linux de Galileo
permanecerá funcionando con normalidad y no se reiniciará.
UNIVERSIDAD NACIONAL DE INGENIERÍA
FACULTAD DE ELECTROTECNIA Y COMPUTACIÓN
MICROPROCESADORES
DEPARTAMENTO SISTEMAS DIGITALES Y TELECOMUNICACIONES

Encabezado JTAG (14)


Este conector de 10 pines es utilizado principalmente por los ingenieros
eléctricos o aficionados avanzados para probar y depurar las tarjetas.

Jumper instrucción IOREF (x3) (15)


Este puente permite cambiar el nivel lógico de voltaje de la tarjeta de 5 voltios
a 3,3 voltios para la compatibilidad con pantallas y componentes de 3,3 voltios.

Jumper VIN (16)


Tirando de este jumper fuera desconectará el pin VIN del regulador de 5 voltios
de Galileo. Si está utilizando un escudo que requiere más de 5 voltios en el pin
VIN, debe retirarse este jumper para proteger la tarjeta contra daños.

Jumper I2C (17)


Este puente permite cambiar la dirección I2C de un par de componentes
integrados. Es posible que tenga que hacer esto si usted está utilizando
componentes I2C que entran en conflicto con los componentes de la placa. Con
toda probabilidad, usted no tendrá que usar esto.

Actividad previa

Mencione las principales diferencias y ventajas que presenta la placa de


desarrollo Intel galileo ante los arduinos.
UNIVERSIDAD NACIONAL DE INGENIERÍA
FACULTAD DE ELECTROTECNIA Y COMPUTACIÓN
MICROPROCESADORES
DEPARTAMENTO SISTEMAS DIGITALES Y TELECOMUNICACIONES

3. Desarrollo
Parte 1:
Pasos para conectar y configurar la placa Intel Galileo

1. Instale el software de Intel-galileo


proporcionado por el instructor del
laboratorio, este instalara los controladores
de la placa Intel galileo, el Software arduino-
1.6.5+Intel y por ultimo contiene la
construcción yocto Intel’s IoT devkit basada
en la implementacion eglibc para sistemas
embebidos.

2. Con nada más conectado a su Galileo, conecte la fuente de alimentación


de 5 voltios en su pared y conecte la toma de CC a la toma de
alimentación de la placa. Debería ver que un par de Leds se iluminan.

3. A continuación, conecte Galileo al ordenador. El cable se conectará con


el puerto de cliente USB de la placa, que está justo al lado del puerto
Ethernet.

4. Ingrese en el IDE de Arduino, vaya al menú Herramientas desplegable en


la parte superior, seleccione Tarjeta, y asegúrese de que "Intel Galileo"
está marcada.

5. A continuación, despliegue el menú Herramientas de nuevo y seleccione


Puerto Serie correspondiente a su placa Intel galileo para poder cargar
el programa.

Actividad #1 Led blinking

Encender un led es comúnmente la primera actividad a realizar con una nueva


tarjeta de desarrollo pues de esta manera se podrá verificar fácilmente que la
tarjeta funciona correctamente. Esta es la manera de decir “Hola mundo” en
una tarjeta de desarrollo de hardware.
UNIVERSIDAD NACIONAL DE INGENIERÍA
FACULTAD DE ELECTROTECNIA Y COMPUTACIÓN
MICROPROCESADORES
DEPARTAMENTO SISTEMAS DIGITALES Y TELECOMUNICACIONES

 Abra el IDE de arduino y cree un nuevo Sketch


 Copie el siguiente código
 De click en verificar y luego en subir

void setup() {
// initialize digital pin 13 as an output.
pinMode(13, OUTPUT);
}
void loop() {
digitalWrite(13, HIGH);
delay(1000);
digitalWrite(13, LOW);
delay(1000);
}

 Solo hay que esperar que el IDE de arduino convierta el código a


instrucciones que el procesador de galileo pueda entender.
 Cuando el código este cargado debería ver el led en la tarjeta parpadear.
UNIVERSIDAD NACIONAL DE INGENIERÍA
FACULTAD DE ELECTROTECNIA Y COMPUTACIÓN
MICROPROCESADORES
DEPARTAMENTO SISTEMAS DIGITALES Y TELECOMUNICACIONES

Actividad #2 crear una imagen en microSD

Como se mencionó anteriormente la Intel galileo cuenta con un pequeño


sistema operativo en su memoria flash. Este sistema operativo es basado en
Linux pero debido al poco tamaño de la memoria, solo cuenta con funciones
muy básicas, para poder aprovechar el potencial de esta placa es necesario
instalar una construcción yocto en una memoria microSD y hacer que la tarjeta
arranque desde esta en lugar de la memoria flash.

Las construcciones yocto son creadas en Linux utilizando las implementaciones


glibc (uglibc y eglibc), pero el instalador de Intel-galileo ya nos proporciona la
construcción yocto Intel’s IoT devkit la cual se basa en implementación eglibc,
entre las funciones que contiene se encuentran:
 Drivers para cámara
 OpenCV
 Phyton
 Node.js
 Controlador de tarjeta wifi
 Copilador de archivos C++

La idea de crear esta imagen es para poder sacar todo el provecho a estas
placas de desarrollo y no quedarse estancados en aquellos proyectos que solo
utilice las librerías de arduino como por ejemplo mover un servo. Si no crear
sistemas personalizados basados en Linux para sistemas embebidos.

 Los archivos fueron instalados en nuestro disco local C: ingresamos en el


y buscamos la carpeta llamada Intel ingresamos luego a la carpeta galileo
por ultimo ingresamos a la carpeta Win32DiskImager. Es decir la
siguiente dirección C:\Intel\Galileo\Win32DiskImager
 Ingresamos nuestra microSD a la computadora, y se formatea.
 Ejecutamos la aplicación llamada Win32DiskImager
UNIVERSIDAD NACIONAL DE INGENIERÍA
FACULTAD DE ELECTROTECNIA Y COMPUTACIÓN
MICROPROCESADORES
DEPARTAMENTO SISTEMAS DIGITALES Y TELECOMUNICACIONES

 Se selecciona la unidad en la que se encuentra la microSD y se carga la


imagen que se encuentra en la siguiente dirección
C:\Intel\Galileo\Image.

 Luego solo se da click en write y se espera a que la imagen se escriba en


la tarjeta microSD.

 Cuando esté finalizado se inserta la tarjeta microSD en la ranura de la


Intel galileo. Al alimentar la placa Intel galileo el led cerca de la ranura
SD debería de parpadear indicando que la placa esta arrancando de la
microSD y no de la memoria flash.

Actividades de aprendizaje:
Responda las siguientes preguntas.
1. ¿Qué son las construcciones yocto?
2. ¿Cuál ventaja cree usted proporciona esta placa de desarrollo al ser
compatible con los arduinos?
3. ¿mencione la importancia de que esta placa funcione con un sistema
operativo basado en Linux para el desarrollo de proyectos?

Realice el siguiente ejercicio

Utilizando un potenciómetro variar la luminosidad de una led e imprimir en


un display lcd “El brillo de la led es…. %”. En una escala de 0% a 100% como
se muestra en la imagen:
UNIVERSIDAD NACIONAL DE INGENIERÍA
FACULTAD DE ELECTROTECNIA Y COMPUTACIÓN
MICROPROCESADORES
DEPARTAMENTO SISTEMAS DIGITALES Y TELECOMUNICACIONES

Utilizando el IDE de Arduino.

Parte 2:

Hasta este punto esta guía se ha concentrado en la compatibilidad de la placa


Intel Galileo tiene con Arduino, pero como se mencionó anteriormente una de
las principales características de la Intel Galileo tiene un sistema operativo de
Linux.

En esta sección se dará un pequeño vistazo al mundo de Linux en Galileo, para


poder enviar instrucciones desde la computadora, lo primero es conectarse a
la línea de comandos de Linux, para ello se tienen dos opciones:
 Conectando por comunicación Serie
 Vía Telnet

En esta sección se ha decidido trabajar usando la conexión vía telnet sobre la


red.

Conectando la Intel galileo vía telnet:

Para este caso la computadora debe estar conectada a la misma LAN (red de
área local) a la que se encuentra la Intel Galileo, de este modo se podrá acceder
rápidamente a la línea de comando de Linux a través de la red.

 Usando un cable de Ethernet, conectar la placa a la misma red local que


la computadora.
 Con la Intel galileo encendida y conectada a la computadora, vía USB se
cargara, utilizando el IDE de Arduino el siguiente código el cual habilitara
la función de telnet en la placa.
UNIVERSIDAD NACIONAL DE INGENIERÍA
FACULTAD DE ELECTROTECNIA Y COMPUTACIÓN
MICROPROCESADORES
DEPARTAMENTO SISTEMAS DIGITALES Y TELECOMUNICACIONES

void setup() {
system("telnetd -l /bin/sh"); //
}

void loop() {
system("ifconfig eth0 > /dev/ttyGS0"); //
delay(5000);
}

 Note que la función system() es únicamente para Intel galileo, la cual es


diseñada para correr comandos de Linux dentro de un código de Arduino.
 Para obtener la dirección ip, es necesario abrir el monitor serie, dicha
dirección ip se encuentra indicada por la palabra inet. Como se muestra en
la siguiente imagen.

 Para conectarse a la galileo, hay dirigirse y luego presionar ejecutar, en la


caja de texto escribir, telnet 192.168.1.4( reemplazar por la dirección ip de
la Intel galileo).
 Una vez ya conectado deberá aparece una ventana indicando que ya se
está en la línea de comandos:
UNIVERSIDAD NACIONAL DE INGENIERÍA
FACULTAD DE ELECTROTECNIA Y COMPUTACIÓN
MICROPROCESADORES
DEPARTAMENTO SISTEMAS DIGITALES Y TELECOMUNICACIONES

Trabajando con los pines

Desde la línea de comando, se puede ejecutar órdenes de Linux sobre Galileo.


Se pueden usar comandos para leer o escribir archivos, conseguir la
información sobre el sistema, hacer conexiones de red, leer , escribir los pines,
incluso generar un pwm y mucho más. Usando algunos comandos de Linux se
logra convertir un pin en una salida y luego ponerlo en alto.

Desde la línea de comando, primero se registra como root (esto no es necesario


si estás conectado vía serial):

/ # login root
root@clanton:~#

Después use el mando cd para cambiarse al directorio /sys/class/gpio:

root@clanton:~# cd /sys/class/gpio/

Ahora catalogue el contenido del directorio con el mando ls:

root@clanton:/sys/class/gpio# ls
export gpio19 gpio27 gpio38 gpio46 gpiochip0
gpio0 gpio20 gpio28 gpio4 gpio47 gpiochip16
gpio1 gpio21 gpio29 gpio40 gpio48 gpiochip2
gpio14 gpio22 gpio30 gpio41 gpio49 gpiochip8
gpio15 gpio23 gpio31 gpio42 gpio50 unexport
gpio16 gpio24 gpio32 gpio43 gpio51
gpio17 gpio25 gpio36 gpio44 gpio54
gpio18 gpio26 gpio37 gpio45 gpio55

Esta es una lista de archivos y directorios (o carpetas) para trabajar con los
diferentes pines de Galileo. Dentro del entorno Linux, se puede escribir a un
archivo particular para controlar un pin y leer de un archivo para obtener el
estado del pin.
UNIVERSIDAD NACIONAL DE INGENIERÍA
FACULTAD DE ELECTROTECNIA Y COMPUTACIÓN
MICROPROCESADORES
DEPARTAMENTO SISTEMAS DIGITALES Y TELECOMUNICACIONES

Las letras GPIO como las mostradas arriba representan entradas/salidas de


propósito general, quiere decir que los pines pueden ser configurados para
hacer muchas funciones diferentes como salida digital, entrada digital, salida
análoga, y entrada análoga, para nombrar unas cuantas.

La lista de los números de pin en / sys / class / GPIO no coincide con el número

de pines que utiliza dentro de su código de Arduino o los números impresos en


el tablero. La siguiente tabla muestra lo el número pin de Arduino que coincide
con el número de señales GPIO Linux.

Actividad

Conecte un LED al pin 13 de Intel galileo. Debido a que el pin13 como se


muestra en la tabla se encuentra relacionado con la señal número 39 de Linux,
se utiliza el directorio gpio39 en la lista de contenidos, para esto utilizamos las
siguientes líneas de comando:

root@clanton:/sys/class/gpio# cd gpio39
root@clanton:/sys/devices/virtual/gpio/gpio39# ls
active_low direction edge power subsystem uevent value

El siguiente comando que se va a utilizar es “cat”, que imprime el contenido de


UNIVERSIDAD NACIONAL DE INGENIERÍA
FACULTAD DE ELECTROTECNIA Y COMPUTACIÓN
MICROPROCESADORES
DEPARTAMENTO SISTEMAS DIGITALES Y TELECOMUNICACIONES

un archivo en el terminal. Primera salida de los contenidos del archivo de


dirección.
root@clanton:/sys/devices/virtual/gpio/gpio39# cat direction
in

Esto indica que el pin está configurado como una entrada. Para cambiarlo a
salida se usa los comando echo para escribir "fuera" de la dirección del archivo
gpio39. Este es el equivalente del código Arduino pinMode(13, OUTPUT);:

root@clanton:/sys/devices/virtual/gpio/gpio39# echo out > direction


Para configurar el pin 13 en alto, solamente escriba el valor 1 al archivo de
valor. Esto es el equivalente del código de Arduino digitalWrite(13, HIGH);:
root@clanton:/sys/devices/virtual/gpio/gpio39# echo 1 > value
Si se ha hecho bien, ¡el LED debería haber encendido! Ahora apáguelo:
root@clanton:/sys/devices/virtual/gpio/gpio39# echo 0 > value

Cuando se conmuta el pin 13 con el código de Arduino, que también controlaba


el LED de la tarjeta. ¿Por qué no se enciende y apaga ahora? , Esto se debe a
que la LED de la tarjeta de Intel Galileo está conectado al pin 13 de Arduino a
través de software solamente. En realidad tiene su propia señal de Linux GPIO.
Si quieres se probar el parpadeo, este controlado con el nombre de la señal de
Linux GPIO3.

Debido a que se puede leer y controlar los pines de Intel Galileo por los
archivos de lectura y escritura en el entorno Linux, se abre un nuevo mundo de
potencia y flexibilidad, que las placas Arduino no tienen. A medida que el
software Galileo madure, lo más probable es que vaya a tomar ventaja de esta
capacidad y dar más potencia a los usuarios.
UNIVERSIDAD NACIONAL DE INGENIERÍA
FACULTAD DE ELECTROTECNIA Y COMPUTACIÓN
MICROPROCESADORES
DEPARTAMENTO SISTEMAS DIGITALES Y TELECOMUNICACIONES

Investigación complementaria:

Investigue como configurar los pines como entrada y leer el valor del pin
utilizando las líneas de comandos.

Para obtener información más detallada sobre la programación GPIO visite el


siguiente enlace:

http://www.malinov.com/Home/sergey-s-blog/intelgalileo-
programminggpiofromlinux

Vous aimerez peut-être aussi