Práctica 2 – Push Button

 

INTRODUCCIÓN

 

En esta práctica se configura una salida y entrada digital para controlar el encendido y apagado de un LED a través de un push button, el LED se ilumina si el push button es presionado, de lo contrario se encuentra apagado.

 

Selecciona el entorno de programación.

 

 

PYTHON
PROCESSING
PYTHON

Descripción

En esta práctica implementa una interfaz donde se despliega una etiqueta con un mensaje del estado actual del botón, el cual se encuentra conectado al PIN10 de la tarjeta Raspberry Pi como entrada digital, al mismo tiempo se observa un botón que controla un LED incluido en el módulo XENSE, conectado al PIN8  de la tarjeta Raspberry Pi como salida, este enciende y apaga el LED cada vez que sea presionado.

 

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

1x Push button. Comprar

 

Software:

Raspbian. Descargar

Python. Descargar

 

Procedimiento

1. En el apartado de "Diagrama esquemático", que se encuentra a continuación, selecciona tu Raspberry 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 para ejecutarlo directamente, o bien copiarlo del apartado de "Código", que se encuentra más abajo.

3. Si descargaste el archivo del paso 2, omite este paso. Si copiaste el código, abre el software Python, pega el código en un nuevo proyecto, realiza la ejecución. 

4. Al terminar de ejecutar, el programa de esta práctica comenzará.

 

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

 

#El LED  enciende y se apaga cada vez que el botón sea presionado 

 

import RPi.GPIO as GPIO                                                      # librería para poder utilizar los GPIO de la Raspberry Pi
from Tkinter import *                                                           #librería para poder realizar interfaz gráfica
import tkFont                                                                        # librería para poder dar formato a los textos
import threading                                                                     #librería para poder utilizar los timers

GPIO.setmode(GPIO.BOARD)                                                             #Definimos la manera en utilizar los pines ya sea por numeración de pines o GPIO
GPIO.setup(8,GPIO.OUT)                                                                      # Se declara los GPIO de salida
GPIO.setup(10,GPIO.IN, pull_up_down=GPIO.PUD_UP)                                          # Se declara  GPIO de entrada

win = Tk()                                                                                                            #Se crea una variable como raíz para toda la interfaz y se llama la clase TK
myFont = tkFont.Font(family = ‘Agency FB’, size = 6, weight = ‘bold’)                         # diseño de texto

def ledON():                                                                                                            #Función que nos permite encender o apagar el LED físicamente 
           if GPIO.input(8) :                 
                GPIO.output(8,GPIO.LOW)
                ledButton[«text»] = «LED ON»

else:
       GPIO.output(8,GPIO.HIGH)
        ledButton[«text»] = «LED OFF»

def boton():                                                                                                                      #Función que muestra el estatus del button físico
         while True:
                 input_state=GPIO.input(10)
                  if input_state==False:
                  etiqueta.config(text=»BUTTON PUSH»)

else:
          etiqueta.config(text=»BUTT0N NOT PUSH»)

 

ledButton = Button(win, text = «ON», font = myFont, command = ledON, height = 1, width =4 )     # Declaración del botón que nos permitirá la función de encender y apagar el LED

ledButton.pack()                                                                                                                    # Adapta el contenido a las dimensiones del botón
timer = threading.Timer(1.0,boton)                                                                                           #Activa la función botón en un tiempo de 1.0 segundo**
timer.start()
etiqueta = Label(win, text=» «, height = 2, width =4 )
etiqueta.pack()                                                                                                                          # Adapta el contenido a las dimensiones del label

mainloop()                                                                                                                                 #Método infinito de ejecución


 

Descargas

R2-PYTHON

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

PROCESSING

Descripción
Esta práctica implementa una interfaz donde se muestra un gráfico en forma de botón que consulta el estado actual del botón, el cual está conectado al GPIO15 de la tarjeta Raspberry Pi como entrada digital, al mismo tiempo se observa una elipse que al momento de presionarlo controla un LED incluido en el módulo XENSE, usando el GPIO14  de la tarjeta Raspberry Pi como salida, este enciende y apaga el LED.

 

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

1 x Push button. Comprar

 

Software:

Raspbian. Descargar

Processing. Descargar

 

Procedimiento

1. En el apartado de "Diagrama esquemático", que se encuentra a continuación, selecciona tu Raspberry 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 para ejecutarlo directamente, o bien copiarlo del apartado de "Código", que se encuentra más abajo.

3. Si descargaste el archivo del paso 2, omite este paso. Si copiaste el código, abre el software Processing, pega el código en un nuevo proyecto, realiza la ejecución. 

4. Al terminar de ejecutar, el programa de esta práctica comenzará.

 

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

*/

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

El LED  enciende y se apaga cada vez que el botón sea presionado 

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

import processing.io.*;                                            // importamos la librería para poder utilizar los GPIO de la Raspberry Pi
boolean ledOn = false;
int led=14;
int boton=15;
void setup() {
size (250,250);                                                                              // Declaramos el tamaño de la interfaz
background(130,194,60);
GPIO.pinMode(led, GPIO.OUTPUT);                                        // Declaramos la variable LED como variable de salida 
GPIO.pinMode(boton, GPIO.INPUT_PULLUP);                      // Declaramos la variable botón como variable de entrada
botonEllipse(); // ejecutamos la función botonEllipse
}
void draw() {
if(GPIO.digitalRead(boton)==GPIO.HIGH){                             //si la variable de entrada es alto que se ejecute la fucion botonEllipse
botonEllipse();
}else                                                                                             //De lo contrario si es bajo que se ejecute la función rectángulo
if(GPIO.digitalRead(boton)==GPIO.LOW){
rectangulo();
}
if (ledOn == true) {                                                                       //Si ledOn e verdadero se enciende el LED
          GPIO.digitalWrite(led, GPIO.HIGH);
          ellipseTXT();
}else {                                                                                         // De lo contrario se apaga
        GPIO.digitalWrite(led, GPIO.LOW);
         ellipseTXT2();
}
}
void mouseClicked() {                                                                    //Permite la interacción de la interfaz con el mouse
l    edOn = !ledOn;
}

                                                                                                 //Funciones que nos permiten dibujar los gráficos en la interfaz
void ellipseTXT2(){
      stroke(0,245,0);
      rect(136,85,30,30,90,0,0,90);

       stroke(0,0,0);
       fill(0,0,0);
       text(«ON»,140,105);
}
void ellipseTXT(){
       stroke(0,245,0);
      rect(178,85,30,30,0,90,90,0);
      fill(0,0,0);
      text(«OFF»,180,105);
}
void botonEllipse(){
        stroke(130,194,60);
        fill(76,153,0);
        rect(50,60,40,80);
        rect(30,100,80,40);
        fill(47,53,49);
        ellipse(170,100,95,70);
}
void rectangulo(){
     stroke(130,194,60);
     fill(130,194,60);
    rect(50,60,40,20);
}

 

Descargas

R2-PROCESSING

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

Fecha

agosto 2, 2019

Categoría

Prácticas Raspberry Pi

× WhatsApp