¿Cómo controlar pines gpio en su pi frambuesa

Con el fin de tener la Frambuesa Pi a tener acceso a los pines GPIO, debe instalar un módulo de Python que actúa como una interfaz entre el lenguaje y los pasadores. Esto permite que un programa para leer en lo que está sucediendo a las señales en las líneas GPIO.

Existen unas pocas opciones diferentes, pero quizás el más fácil de instalar es RPi.GPIO. Tal vez la forma más fácil de instalar que es de una ventana de terminal con el comando

 sudo apt-get install-python3 rpi.gpio

Si tiene una versión anterior de este módulo, tendrá que desinstalar primero el viejo eliminando manualmente los archivos. Encontrarlos con este comando en una ventana de línea de comandos

find / usr | pitón grep | GPIO grep -i

y eliminar las que se encuentran.

Video: Raspberry Pi Robotics #1: GPIO Control

Cualquier programa de Python que necesita acceder a los pines GPIO deben realizar las siguientes operaciones:

  1. Importar el módulo de hablar con los pasadores.

  2. Configurar la forma en que desea hacer referencia a los pines.

  3. Inicializar los pines GPIO que desea utilizar.

  4. Leer o escribir en los pasadores.

Esto simplemente establece que todos los pines GPIO ser entradas y luego los lee constantemente de nuevo en la Raspberry Pi. Se imprime el nuevo estado cuando cualquiera de las entradas cambian.

#! / Usr env pitón monitor de / bin / # GPIO estado de entrada en el estado Frambuesa Pi # GPIO - muestra el estado de todas las entradas GPIO en P1 # pines GPIO no se muestra como ximport RPi.GPIO como GPIOprint "Mostrar los estados pin de entrada GPIO"impresión "Ctrl C para detener"boardRevision = GPIO.RPI_REVISION # definen los pasadores a useif boardRevision == 1: pinout = [-1, -1,0, -1,1, -1,4,14, -1,15,17,18,21, -1,22,23, -1,24,10, -1,9,25,11,8, -1,7] si boardRevision == 2: pinout = [-1, -1,2, -1, 3, -1,4,14, -1,15,17,18,27, -1,22,23, -1,24,10, -1,9,25,11,8, -1,7] GPIO.setmode (GPIO.BCM) # reales de uso GPIO numberinginputState = [5 para temp en el rango de (0,26)] # lista en blanco para la entrada levelsfor pin en el rango de (0,26): # establece todos los pines a inputsif pinout [pin ] = -1: GPIO.setup (pinout [pIN], GPIO.IN, pull_up_down = GPIO.PUD_UP) # cambiar la línea por encima de la línea de abajo para ver el efecto de las entradas flotante # GPIO.setup (pinout [pIN], GPIO.IN, pull_up_down = GPIO.PUD_OFF) while True: # hacer foreverneedUpdate = Falsefor comprobar in range (0,26): #! vistazo a cada entrada en turnif pinout [cheque] = -1: si GPIO.input (pinout [ comprobar]): latestState = 1else: latestState = 0 si (latestState = inputState [cheque]): needUpdate = TruePrint "GPIO ", Pinout [de verificación], "cambiado a una lógica", LatestStateinputState [cheque] = latestStateif needUpdate: # pantalla toda statesprint pin "Estado actual"para la fila en el rango de (1, -1, -1): para la demostración en el rango (fila, 26,2): si inputState [mostrar] = 5: imprimir inputState [mostrar], else: print "x",impresión " "#end de bucle principal

Tome un vistazo al código y ver lo que está sucediendo. Después de importar el módulo de RPi.GPIO, el código se encuentra la revisión de la placa e inicializa una lista basada en lo que la revisión de la placa es. La lista tiene un valor de -1 en las posiciones de bandera donde no hay pin GPIO (es decir, donde hay una clavija de alimentación o tierra).

De lo contrario, tiene el número GPIO deja en la posición correspondiente de la lista. A continuación, el código crea una lista que contiene los valores de entrada para cada pin.

Este código se rellena con un valor arbitrario de 5, sabiendo que cualquier valor real de entrada será sólo un cero o uno. A continuación, todos los pines están configurados para ser entradas con las resistencias de pull-up internas habilitadas. Con esto termina la parte de configuración del programa.

El resto del código es un bucle que se ejecuta siempre. Se comprueba cada entrada mirando el pinout y llamar a la lista GPIOinput (pin) para devolver el valor de cada entrada. Esto se compara con el valor de la última vez. Si es diferente, imprime el estado actual de esa entrada, junto con todos los valores de entrada dispuestas en el mismo orden que los terminales del conector P1.

Para ejecutar el programa, abre una ventana de terminal, vaya al directorio que contiene el programa, y ​​el tipo

sudo python GPIOstate.py

Es necesario el sudo prefijo porque el sistema operativo restringe el acceso a los pines GPIO y que necesita privilegios de root para poder utilizarlos.

Video: Recibir información mediante los pines GPIO de la Raspberry Pi

Para probar esto, sólo tiene que conectar un extremo de un cable a una de las conexiones a tierra y dar la vuelta, a su vez, conecta el otro extremo del cable a cada entrada. Todas las entradas muestran inicialmente como unos lógicos en la pantalla y cambiar a ceros lógicos cuando se conecte a tierra la entrada.

Tenga cuidado de no conectar el cable de tierra a cualquiera de las salidas de potencia: esto cortocircuito de alimentación de su Frambuesa Pi. Para evitar esto, se puso un pequeño trozo de plastilina (Play-Doh, arcilla de modelado, o tack azul) en las tapas de rosca de los conectores de alimentación.

Artículos Relacionados