Práctica 3 - Corrimiento de bits

 

INTRODUCCIÓN

 

En esta práctica se implementa un corrimiento de bits, el cual se despliega a través de LEDs. Esta práctica utiliza el módulo XENSE de XIDE para facilitar componentes y conexiones.

 

Selecciona el entorno de programación.

 

 

PYTHON
PROCESSING
PYTHON

Descripción

Esta práctica implementa un corrimiento de bits usando los GPIOS de la tarjeta Raspberry Pi, para visualizar el resultado se conectan 8 LEDs del módulo XENSE, a la vez se implementa una interfaz donde se despliega una etiqueta con un mensaje del valor inicial del corrimiento en forma binaria.

 

Inició de corrimiento de bits en forma binaria. 

 

Materiales:

1 x Raspberry Pi. Comprar

1 x Módulo XENSE. Comprar

1 x Juego de cable Dupont. Comprar

1 x Protoboard de 830 puntos. Comprar

 

Software:

Raspbian. Descargar

Python. Descargar

 

Procedimiento

1.Instala la librería RPi.GPIO-0.7.0.tar.gz, para poder utilizar los GPIOs de la tarjeta Raspberry Pi. En el siguiente link encontrarás un manual para poder instalarla.

2.En el apartado de "Diagrama esquemático" que se encuentra a continuación selecciona tu Raspberry Pi y realiza las conexiones que se muestran en la imagen.

3.Descarga el código fuente al final de esta práctica en el apartado de "Descargas".

4.En el siguiente link encontrarás un manual para poder ejecutar el programa de Python desde la terminal de Raspberry Pi.

Diagrama esquemático

 

Raspberry Pi Zero W
Raspberry Pi 3 A+
Raspberry Pi 3 B+
Raspberry Pi Zero W

Raspberry Pi 3 A+

Raspberry Pi 3 B+

 

Código

Código

#AUTOR: MICROSIDE TECHNOLOGY S.A. DE C.V.

#FECHA: AGOSTO 2019

 

#Implementar corrimiento de 8 bits y desplegar el valor en 8 LEDs

 

import sys
from Tkinter import *                                                                   #librería para poder realizar interfaz grafica
import RPi.GPIO as GPIO                                                          # librería para poder utilizar los GPIO de la raspberry pi
import threading                                                                           #librería para poder utilizar timers
import time                                                                                   # libreria que permite dar tiempo de espera

RAIZ = Tk()                                                                                # Definimos el nombre de la interfaz

RAIZ.title("Corrimiento de 8 bits")                                              # Definimos el nombre de la interfaz
RAIZ.geometry('180x60')                                                             # Definimos el tamaño de la interfaz

GPIO.setmode(GPIO.BOARD)                                                   #Definimos la manera en que utilizaremos los pines ya sea por numeración de pines o GPIO


PIN_LEDS = [40, 38, 36, 32, 22, 18, 16, 12]                                 # definimos los GPIO a utilizar

for i in PIN_LEDS:                                                                          #definimos los GPIO como salidas
                  GPIO.setup(i, GPIO.OUT, initial=GPIO.LOW)


def nose():                                                                           # función que nos permite hacer el corrimiento y observarlo en los LEDS
         valor = 26
         n = valor5

         ciclo = 0


          while ciclo == 0:
                 resultado = []
                 for i in range(8):
 
                      resultado.append(n&1)
                      n =(n << 1)|(n >>8)

                 for pin in range (8):
                      GPIO.output(PIN_LEDS[pin],resultado[pin]==GPIO.HIGH)
                 time.sleep(1)

etiqueta = Label(RAIZ, text=" corrimiento de 8 bits ")                                #Etiqueta de tipo label
etiqueta.grid(column=4, row=5)                                                                   # Definimos la posición de la etiqueta en nuestras interfaz

etiqueta1 = Label(RAIZ, text="1111011010")                                             #Etiqueta de tipo label que nos muestra el valor inicial del corrimiento en binario
etiqueta1.grid(column=5, row=5)

timer = threading.Timer(1.1,nose)                                                                 # Activa la función led en un tiempo de 0.5 segundos
timer.start()

RAIZ.mainloop()

 

 

Descargas

R3-PYTHON

Descargar código en Python de la práctica 3.

PROCESSING

Descripción

En esta práctica se implementa un corrimiento de bits usando los GPIOS de la tarjeta Raspberry Pi, Para visualizar el resultado se conectan 8 LEDs del módulo XENSE, a la vez se implementa una interfaz gráfica la cual despliega 8 elipses que simulan los 8 LEDs.

 

Simulación de LEDs físicos.

 

Materiales:

1 x Raspberry Pi. Comprar

1 x Módulo XENSE. Comprar

1 x Juego de cable Dupont. Comprar

1 x Protoboard de 830 puntos. Comprar

 

Software:

Raspbian. Descargar

Processing. Descargar

 

Procedimiento

1.En el apartado de "Diagrama esquemático" que se encuentra a continuación selecciona tu Raspberry Pi y realiza las conexiones que se muestran en la imagen.

2.Al final de esta práctica en el apartado de “Descargas", puedes encontrar los archivos del código fuente o bien cópielo del apartado de "código”, que se encuentra más abajo.

3.Sí descargaste el archivo del paso 2, omite este paso. Si copiaste el código abrir el software Processing pega el código en un nuevo proyecto.

4.En el siguiente link encontrarás un manual para poder ejecutar el programa en Processing.

 

 

Diagrama esquemático

 

Raspberry Pi Zero W
Raspberry Pi 3 A+
Raspberry Pi 3 B+
Raspberry Pi Zero W

Raspberry Pi 3 A+

Raspberry Pi 3 B+

 

Código

Código

/*

AUTOR: MICROSIDE TECHNOLOGY S.A. DE C.V.

FECHA: AGOSTO 2019

*/

/**************************************************************************

Implementar corrimiento de 8 bits y desplegar el valor en 8 LEDs

**************************************************************************/

import processing.io.*;                                               // importamos la librería para poder utilizar los GPIO de la raspberry pi
int Aleds[]={21, 20, 16, 12, 25, 24, 23, 18};                 //Declaramos los GPIO a utilizar
int n=26, k, j;                        


void setup() {
size(200, 200);                                                                     // declaramos el tamaño de la interfaz
for (int i=0; i<8; i++) {                                                           //inicializamos los GPIO como salida
GPIO.pinMode(Aleds[i], GPIO.OUTPUT);
}
}
void draw() {
n=((n<<1)|(n>>8))5;                                                      //operación que nos permite hacer el corrimiento
k=n;
for ( j=0; j<8; j++) {                                                                //ciclo que permite ver que led esta prendido
GPIO.digitalWrite(Aleds[j], k%2);
LED();                                                                               //ejecución de la función LED
k=k/2;                                                                                //división del cociente entre 2 por cada ciclo
}
delay(250);
}
void LED() {                                                                     //función que nos muestra un elipses con diferente color
if (k%2==1) {
fill(0, 245, 0);
} else {
fill(0, 4, 0);
}

ellipse((j*25)+10, 90, 20, 20);
}

Descargas

R3-PROCESSING

Descargar código en Processing de la práctica 3.

Fecha

agosto 3, 2019

Categoría

Prácticas Raspberry Pi

× WhatsApp