Practicas Raspberry Pi 2-7

12
Universidad Tecnológica de Chihuahua Raspberry Pi TSU en Mecatronica Practica #2 Instalación de Repositorios para el uso del puerto GPIO Ing. Sergio González Duarte Ing. Joel Calderón Flores Instalación de Repositorios para el uso del puerto GPIO Objetivo de la práctica: Adquisición de repositorios para el correcto funcionamiento del Raspberry Pi. Al terminar esta práctica el alumno será capaz de: Comprender el concepto de repositorios y paquetes. Demostrar el funcionamiento del puerto GPIO del Raspberry Pi Material y equipo Raspberry Pi Cable de alimentación Raspberry Introducción Puerto GPIO de Raspberry Pi El puerto GPIO (General Purpose Input/Output = Entrada/Salida de Propósito General) es un pin genérico en un chip, cuyo comportamiento se puede controlar por el usuario en tiempo de ejecución. Se clasifican en dos tipos, los de entrada (IN), que responden ante la presencia de un voltaje en la misma; y los de salida (OUT), que funcionan como interruptores normalmente abiertos. La tarjeta Raspberry Pi puede comunicarse con dispositivos externos mediante el conector GPIO incorporado. En dicho conector se integran patillas de alimentación (+5 y +3.3 V) , masa, y entradas/salidas capaces de implementar diferentes protocolos. Las especificaciones de las entradas/salidas GPIO se detallan a continuación en las siguientes imágenes: Figura 2.1 Puertos GPIO revisiones 1 y 2. PRACTICA 2

Transcript of Practicas Raspberry Pi 2-7

Page 1: Practicas Raspberry Pi 2-7

Universidad Tecnológica de Chihuahua

Raspberry Pi

TSU en Mecatronica

Practica #2 Instalación de Repositorios para el uso del puerto GPIO

Ing. Sergio González Duarte

Ing. Joel Calderón Flores

Instalación de Repositorios para el uso del puerto GPIO

Objetivo de la práctica: Adquisición de repositorios para el correcto funcionamiento del Raspberry Pi.

Al terminar esta práctica el alumno será capaz de:

Comprender el concepto de repositorios y paquetes.

Demostrar el funcionamiento del puerto GPIO del Raspberry Pi

Material y equipo

Raspberry Pi Cable de alimentación Raspberry

Introducción Puerto GPIO de Raspberry Pi

El puerto GPIO (General Purpose Input/Output = Entrada/Salida de Propósito General) es un pin genérico en un chip, cuyo comportamiento se puede controlar por el usuario en tiempo de ejecución. Se clasifican en dos tipos, los de entrada (IN), que responden ante la presencia de un voltaje en la misma; y los de salida (OUT), que funcionan como interruptores normalmente abiertos. La tarjeta Raspberry Pi puede comunicarse con dispositivos externos mediante el conector GPIO incorporado. En dicho conector se integran patillas de alimentación (+5 y +3.3 V) , masa, y entradas/salidas capaces de implementar diferentes protocolos. Las especificaciones de las entradas/salidas GPIO se detallan a continuación en las siguientes imágenes:

Figura 2.1 Puertos GPIO revisiones 1 y 2.

PRACTICA 2

Page 2: Practicas Raspberry Pi 2-7

Universidad Tecnológica de Chihuahua

Raspberry Pi

TSU en Mecatronica

Practica #2 Instalación de Repositorios para el uso del puerto GPIO

Ing. Sergio González Duarte

Ing. Joel Calderón Flores

Algo de teoría sobre entradas y salidas.

Cuando un ordenador, un microprocesador o cualquier dispositivo microcontrolador efectúa un control vía I/O el software se comunica con un dispositivo hardware externo, y las posibilidades de hacerlo son, típicamente, dos: OUTPUT: Genera una salida lógica (escribe) en una patilla configurada como SALIDA. INPUT: Obtiene un entrada lógica (lee) en una patilla configurada como ENTRADA. En esta entrada vamos a tomar un par de patillas para efectuar las correspondientes lecturas/escrituras y conseguir así controlar un dispositivo externo, es decir, activar o desactivar mediante la patilla de salida y recibir una señal lógica mediante la patilla de entrada.

Repositorio Cuando se usa un sistema basado en Windows y quieres instalar algún programa, es muy común que vayas a una página a descargarlo, esto en muchas ocasiones te genera virus o algunos problemas en tu OS (Sistema Operativo) ya que al descargarlo te arriesgas a que el programa no sea genuino. Pero una de las grandes ventajas en Linux son los llamados repositorios, pero ¿Qué son los repositorios? Básicamente un repositorio es un servidor en donde se encuentras los programas específicos para tu OS Linux, la mayoría de distribuciones de Linux tiene su lista de repositorios, los programas que se encuentran en estos repositorios están verificados por la gente detrás de la administración de tu distribución por lo que no tendrás ningún problema al momento de instalar estos programas.

Desarrollo

Instalación de repositorios GPIO Para comenzar debemos de asegurar que nuestro dispositivo cuente con la librería GPIO para poder dar uso de los pines del mismo, de no ser así, se tiene que instalar dicha librería; eso se realiza de la siguiente manera: En la terminal del Raspberry Pi se pondrá la siguiente línea:

pi@raspberrypi ~ $: sudo apt-get python-rpi.gpio

Después de la instalación de la librería Python-rpi.gpio se puede dar uso de la misma ejecutando el siguiente código en la terminal

pi@raspberrypi ~ $: sudo idle3

Page 3: Practicas Raspberry Pi 2-7

Universidad Tecnológica de Chihuahua

Raspberry Pi

TSU en Mecatronica

Practica #2 Instalación de Repositorios para el uso del puerto GPIO

Ing. Sergio González Duarte

Ing. Joel Calderón Flores

Realice lo siguiente:

Describa que es un repositorio (con sus propias palabras). Explique qué es GPIO. ¿Cuál es la diferencia entre descargar un programa de internet y descargarlo desde un

repositorio? Con sus propias palabras describa a que se refiere ENTRADA y SALIDA.

De acuerdo con la información recabada durante la práctica, redacte una conclusión de los que obtuvo en la misma, ¿para qué le puede servir el puerto GPIO del Raspberry Pi?

Page 4: Practicas Raspberry Pi 2-7

Universidad Tecnológica de Chihuahua

Raspberry Pi

TSU en Mecatrónica

Practica #3 Instalación de VNC Server Ing. Sergio González Duarte Ing. Joel Calderón Flores

Instalación de VNC server

Objetivo de la práctica: Instalación de escritorio remoto para el Raspberry con VNC Server.

Al terminar esta práctica el alumno será capaz de:

Comprender el concepto de escritorio remoto.

Demostrar el funcionamiento del Raspberry con escritorio remoto gracias al software VNC

Material y equipo

Raspberry Pi Cable de alimentación Raspberry Pantalla

Introducción

Escritorio Remoto VNC

VNC (Virtual Network Computing) es un programa de software libre basado en la estructura cliente servidor el cual permite tomar el control del ordenador servidor remotamente a través de un ordenador cliente

Figura 3.1 Logo del escritorio remoto VNC

Algo de teoría sobre VNC.

VNC fue creado en el Olivetti & Oracle Research Lab., que entonces era propiedad

de Olivetti y Oracle Corporation. En 1999 AT&T compró el laboratorio, y en 2002 cerró los

esfuerzos del laboratorio de investigación.

Los desarrolladores que trabajaron en VNC cuando aún estaba en el Laboratorio de Investigación

de AT&T son:

Tristan Richardson (inventor)

Andy Harter (director del proyecto)

Quentin Stafford-Fraser

James Weatherall

PRACTICA 3

Page 5: Practicas Raspberry Pi 2-7

Universidad Tecnológica de Chihuahua

Raspberry Pi

TSU en Mecatrónica

Practica #3 Instalación de VNC Server Ing. Sergio González Duarte Ing. Joel Calderón Flores

Funcionamiento de VNC Un sistema de VNC se compone de un cliente, un servidor, y un protocolo de comunicación.

El VNC servidor es el programa en el equipo que comparte su pantalla. El servidor de

forma pasiva permite al cliente tomar el control de la misma.

El VNC cliente (o espectador) es el programa que vigila, controla e interactúa con el

servidor. El cliente controla al servidor.

El VNC protocolo (RFB) es muy simple, basado en una primitiva gráfica del servidor al

cliente y mensajes de eventos desde el cliente al servidor.

Téngase en cuenta que la máquina donde se ejecuta el servidor VNC no necesita tener una

pantalla física.

Desarrollo

Instalación de VNC Server para Raspberry Pi Para poder utilizar el Raspberry Pi a distancia es necesario contar con el repositorio de VNC server instalado dentro de nuestro sistema operativo; primero debemos de ver si hay algo nuevo por instalaren los repositorios y paquetes: En la terminal de nuestro Raspberry Pi pondremos la siguiente línea:

pi@raspberrypi ~ $: sudo apt-get update

Después de nuestro update, procedemos a la instalación de nuestro repositorio

pi@raspberrypi ~ $: sudo apt-get install tightvncserver

Después de la instalación del VNC Server solo queda ejecutar el programa con la siguiente instrucción dentro de nuestra terminal. pi@raspberrypi ~ $: vncserver :1

Nos pedirá que coloquemos una contraseña para poder acceder remotamente la cual debemos dar una confirmación.

VNC server AUTORUN Si queremos que nuestro programa VNC server inicie al conectar nuestro Raspberry Pi, se debe editar un archivo de configuración, eso se realizará de la siguiente manera, primero cerciórese que se encuentre dentro del directorio “/home/pi” con el siguiente comando desde la terminal del Raspberry pi: pi@raspberrypi ~ $: pwd

Page 6: Practicas Raspberry Pi 2-7

Universidad Tecnológica de Chihuahua

Raspberry Pi

TSU en Mecatrónica

Practica #3 Instalación de VNC Server Ing. Sergio González Duarte Ing. Joel Calderón Flores

Ya que esté dentro del directorio /home/pi se dirigirá hacia otro directorio denominado .config para crear el directorio que contendrá el archivo de configuración para inicio automático: pi@raspberrypi ~ $: cd .config

Cuando esté dentro del directorio .config, se creará un directorio el cual llevara el nombre de autostart. pi@raspberrypi ~ /.config $: mkdir autostart

Cuando el directorio se haya creado se procede a ingresar a él. pi@raspberrypi ~ /.config $: cd autostart

Todo lo que queda es editar un archivo de configuración, se escribirá el siguiente comando para poder editar: pi@raspberrypi ~ /.config/autostart $: sudo nano tightvnc.desktop

Y procedemos a editar el contenido del archivo agregando el siguiente texto: [Desktop Entry]

Type=Application

Name=TightVNC

EXec=vncserver :1

StartupNotify=false

Después de escribir el texto tal y como se mostró en la parte de arriba damos Ctrl+O para guardar y Ctrl+X para salir

Realice lo siguiente:

¿Qué es un escritorio remoto? ¿Qué utilidad tiene tener un escritorio remoto instalado en el Raspberry Pi?

De acuerdo con la información recabada durante la práctica, redacte una conclusión de los que obtuvo en la misma.

Page 7: Practicas Raspberry Pi 2-7

Universidad Tecnológica de Chihuahua

Raspberry Pi

TSU en Mecatrónica

Practica #4 Blink de LED por puerto GPIO Ing. Sergio González Duarte Ing. Joel Calderón Flores

Blink de LED por puerto GPIO

Objetivo de la práctica: Conocer el funcionamiento del puerto GPIO.

Al terminar esta práctica el alumno será capaz de:

Conocer el software de programación Python IDLE.

Realizar el parpadeo de un LED a través del puerto GPIO.

Material y equipo

Raspberry Pi

Resistencias

LED´s

Protoboard

PC

Introducción

Puerto GPIO

En este punto ya se tiene suficiente información para una pequeña prueba. Lo que se hará es

conectar al puerto GPIO del Raspberry a un LED que encenderemos y apagaremos usando IDLE

que se encuentra instalado dentro del OS (Sistema Operativo).

A partir de este punto se requiere la conexión física de un par de cables al dispositivo. El puerto

GPIO no proporciona ningún tipo de protección, como por ejemplo Arduino, por lo que si nos

equivocamos y metemos corriente por el sitio equivocado puedes dañar el puerto. Por lo tanto se

debe de tener mucho cuidado sobre que revisión de GPIO se está utilizando.

Figura 4.1 Puerto GPIO con Flex de conexión externo.

PRACTICA 4

Page 8: Practicas Raspberry Pi 2-7

Universidad Tecnológica de Chihuahua

Raspberry Pi

TSU en Mecatrónica

Practica #4 Blink de LED por puerto GPIO Ing. Sergio González Duarte Ing. Joel Calderón Flores

Lenguaje de programación Python

Python es un lenguaje de programación interpretado cuya filosofía hace hincapié en una sintaxis

muy limpia y que favorezca un código legible.

Se trata de un lenguaje de programación multiparadigma (fuerza a los programadores a adoptar

un estilo particular de programación), ya que soporta orientación a objetos, programación

imperativa y, en menor medida, programación funcional. Es un lenguaje interpretado, usa tipado

dinámico y es multiplataforma.

Figura 4.2 Logotipo de software Python.

Desarrollo

1. Ingresar a IDLE Python y abrir una nueva ventana.

2. Colocar el código para el Blink de LED (Tabla 1).

Tabla 4.1 Programa para Blink de LED por puerto GPIO

3. Guardar el programa en una carpeta.

import RPi.GPIO as GPIO ##importamos la librería del GPIO

from time import sleep ##importamos la librería de retardo

#Configuración de Pines

GPIO.setmode (GPIO.BOARD)##Usamos la numeración de la tablilla

LED = 7 ##Asignamos nombre al pin.

GPIO.setup (LED, GPIO.OUT)##Pin 7 del GPIO como salida

while True: ##Bucle Infinito

GPIO.output(LED, True) ##Activamos el pin 7 del GPIO

Sleep(1) ##Esperamos 1 segundo

GPIO.output(LED, False)##Desactivamos el pin 7 del GPIO

Sleep(1) ##Esperamos 1 segundo

GPIO.cleanup() ##Para evitar algún corto

Page 9: Practicas Raspberry Pi 2-7

Universidad Tecnológica de Chihuahua

Raspberry Pi

TSU en Mecatrónica

Practica #4 Blink de LED por puerto GPIO Ing. Sergio González Duarte Ing. Joel Calderón Flores

4. Realizar las conexiones pertinentes para el LED (Revisar la conexión con el instructor antes

de energizar).

Figura 4.3 Diagrama de conexión en Puerto GPIO

5. De acuerdo con la información recabada durante la práctica, redacte una conclusión de los que obtuvo en la misma.

Page 10: Practicas Raspberry Pi 2-7

Universidad Tecnológica de Chihuahua

Raspberry Pi

TSU en Mecatrónica

Practica #5 Secuencia de LED´s por puerto GPIO Ing. Sergio González Duarte Ing. Joel Calderón Flores

Secuencia de LED´s por puerto GPIO

Objetivo de la práctica: Conocer el funcionamiento del puerto GPIO.

Al terminar esta práctica el alumno será capaz de:

Conocer el software de programación Python IDLE.

Realizar una secuencia de 5 LED´s conectados al puerto GPIO del Raspberry Pi.

Material y equipo

Raspberry Pi

Resistencias

LED´s

Protoboard

PC

Desarrollo

1. Ingresar a IDLE Python y abrir una nueva ventana.

2. De acuerdo con la práctica anterior, realizar el código para la activación de 5 LED’s en

secuencia y con un retardo de 500 ms entre cada LED, coloque el código en la siguiente

tabla.

Tabla 5.1 Código para la secuencia de 5 LED’s

3. Realice el esquemático que implementará para el programa.

4. De acuerdo con la información recabada durante la práctica, redacte una conclusión de los que obtuvo en la misma.

PRACTICA 5

Page 11: Practicas Raspberry Pi 2-7

Universidad Tecnológica de Chihuahua

Raspberry Pi

TSU en Mecatrónica

Practica #6 Manejo de entradas y salidas en puerto GPIO Ing. Sergio González Duarte Ing. Joel Calderón Flores

Manejo de entradas y salidas en puerto GPIO

Objetivo de la práctica: Comprender la estructura para el manejo de entradas del puerto GPIO.

Al terminar esta práctica el alumno será capaz de:

Implementar botones en el puerto GPIO.

Usar de manera correcta las sentencias de control.

Material y equipo

Raspberry Pi

Resistencias

LED´s

Protoboard

PC

Desarrollo

1. Ingresar a IDLE Python y abrir una nueva ventana.

2. Colocar el código para el Blink de LED (Tabla 1).

Tabla 6.1 Programa de manejo de entradas por puerto GPIO

3. Realizar el esquemático que se implementara para el programa.

4. De acuerdo con la información recabada durante la práctica, redacte una conclusión de los que obtuvo en la misma.

PRACTICA 6

import RPi.GPIO as GPIO

GPIO.setmode (GPIO.BOARD)

LED = 7

PUSH = 10

GPIO.setup (LED, GPIO.OUT)

GPIO.setup (PUSH, GPIO.IN)

while True:

if GPIO.input(PUSH):

GPIO.output(LED, True)

else:

GPIO.output(LED, False)

GPIO.cleanup()

Page 12: Practicas Raspberry Pi 2-7

Universidad Tecnológica de Chihuahua

Raspberry Pi

TSU en Mecatrónica

Practica #7 Manejo de sentencias de control Ing. Sergio González Duarte Ing. Joel Calderón Flores

Manejo de sentencias de control

Objetivo de la práctica: Conocer el funcionamiento de sentencias de control .

Al terminar esta práctica el alumno será capaz de:

Conocer el software de programación Python IDLE.

Realizar programas capaces de comparar información ingresada por el usuario.

Material y equipo

Raspberry Pi

Resistencias

LED´s

Protoboard

PC

Desarrollo

1. Ingresar a IDLE Python y abrir una nueva ventana.

2. De acuerdo con la práctica anterior, realizar el código de una comparación de dos

variables (X, Y, botón 1 y botón 2 respectivamente), cada vez que presione botón 1 se

incrementará X, y si presiona el botón 2 se incrementara Y, el resultado se mostrará en

dos LED’s (LED1, LED2), para cuando X>Y prende LED1, X<Y prende LED2 y X=Y parpadeo

alternado de LED1 y LED2, coloque el código en la siguiente tabla.

Tabla 7.1 Código para la secuencia de 5 LED’s

3. Realice el esquemático que implementará para el programa. 4. De acuerdo con la información recabada durante la práctica, redacte una conclusión de los

que obtuvo en la misma.

PRACTICA 7