Lab1 Intel Final_2.docx

  • Uploaded by: Ricardo Jarquin Anduray
  • 0
  • 0
  • December 2019
  • PDF

This document was uploaded by user and they confirmed that they have the permission to share it. If you are author or own the copyright of this book, please report to us by using this DMCA report form. Report DMCA


Overview

Download & View Lab1 Intel Final_2.docx as PDF for free.

More details

  • Words: 3,329
  • Pages: 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 Semestre Tipo de Práctica Asignatura Unidad Temática Nº Alumnos por práctica Nombre del Profesor Nombre(s) de Alumno(s)

Tiempo estimado Comentarios

INGENIERÍA ELECTRÓNICA Grupo Laboratorio Simulación Fecha Maquinas Computadora I 3

Nº Alumnos por reporte

3

1. 2. 3. Vo. Bo. Profesor

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 arduino1.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/intelgalileoprogramminggpiofromlinux

Related Documents

Lab1 Intel Final_2.docx
December 2019 7
Lab1
November 2019 26
Lab1`
November 2019 20
Lab1
August 2019 20
Lab1
May 2020 12
Lab1
May 2020 11

More Documents from ""

Lab1 Intel Final_2.docx
December 2019 7
Resumen.docx
December 2019 6
Lab#2.docx
December 2019 13
Dsp.pptx
December 2019 7
December 2019 12
December 2019 3