¡Acceso ilimitado 24/7 a todos nuestros libros y vídeos! Descubra la Biblioteca Online ENI. Pulse aquí
¡Acceso ilimitado 24/7 a todos nuestros libros y vídeos! Descubra la Biblioteca Online ENI. Pulse aquí
  1. Libros
  2. Raspberry Pi 4
  3. Gestionar el GPIO con Python
Extrait - Raspberry Pi 4 Saque el máximo partido a su microordenador (incluye un proyecto de estación meteorológica)
Extractos del libro
Raspberry Pi 4 Saque el máximo partido a su microordenador (incluye un proyecto de estación meteorológica)
1 opinión
Volver a la página de compra del libro

Gestionar el GPIO con Python

Introducción

Con el lenguaje Python y la biblioteca gpiozero, se puede gestionar de manera simplificada los GPIO de Raspberry Pi. Las funciones de bajo nivel que son usadas para gestionar las E/S du SoC están ocultas por las funciones de la biblioteca que facilitan el desarrollo simplificando la escritura de los scripts.

Para evitar cualquier riesgo de deterioro de las entradas/salidas de la Raspberry Pi 4, apague y desconecte siempre la alimentación de la Raspberry Pi antes de conectar los componentes en el GPIO.

Encender un LED

El LED es el componente básico para el aprendizaje de la programación en Raspberry Pi. Permite ver rápidamente si las líneas de código son eficaces y si el script funciona.

Gestionar un LED es la acción equivalente al "Hello World" de los programadores. Se trata muy a menudo de la primer frase escrita en la pantalla con un lenguaje que el usuario está descubriendo. Adaptada a la electrónica, esta práctica consiste en encender, apagar y hacer parpadear un LED para descubrir los rudimentos del lenguaje.

El principio del funcionamiento del LED se ha visto en el capítulo Material usado - Diodo LED.

1. Conectar el LED al GPIO

images/LF11_001.png

Siguiendo el esquema de arriba:

 Conecte el cátodo del LED (pata corta) en el pin 14 (masa) del conector GPIO de la Raspberry Pi.

 Conecte el ánodo del LED (pata larga) al pin 16 (GPIO 23) del conector GPIO de la Raspberry Pi a través de una resistencia de 220 Ω (150 a 330 Ω).

2. Gestión del LED con Python

a. En shell

 En el IDE Thonny, haga clic en la pestaña Shell y teclee los comandos siguientes:

>>>import gpiozero 

Este comando cargará completamente la biblioteca gpiozero que Python usará para controlar los accesos a los puertos GPIO de la Raspberry Pi.

El hecho de cargar la totalidad de la biblioteca gpiozero obliga a indicar el nombre de esta biblioteca en cada uso. Existe otra posibilidad que simplifica la escritura de scripts, se explicará más adelante.

>>>rojo = gpiozero.LED(23) 

Se indica a gpiozero que tiene que gestionar un LED en el pin 23. Esto implica que este...

Ejecutar un script Python en shell

El uso del IDE Thonny es práctico para programar y depurar scripts Python. Para un uso real de los scripts, estos serán ejecutados a partir de la línea de comandos. Se hará directamente en modo texto o en un terminal con interfaz gráfica.

1. Ejecutar directamente el script

a. El shebang #!

El shebang está representado por los caracteres #! (almohadilla y punto de exclamación) situados en la primera línea de un archivo script Python. Indica al sistema operativo (de tipo Unix-GNU/Linux) que ese archivo no es un archivo binario, sino un script (conjunto de comandos). Después del shebang en esta primera línea, se indica al sistema qué interpretador debe usar para ejecutar el script.

 Para usar un script Python en línea de comandos en una Raspberry Pi 4 que usa Raspberry Pi OS, añada esta línea al principio del script:

#!/usr/bin/python3 

Durante la ejecución del script, el sistema utilizará Python 3 para interpretar este script.

b. Hacer que el script sea ejecutable

Para que un script sea ejecutable por el sistema, tiene que poseer el derecho de ejecución. El comando ls -al le permitirá conocer los derechos de un archivo (ver Usar la línea de comandos - Administración del sistema).

-rw-r--r-- 1 pi pi  116 mar   26 10:04 LED_03.py 

Por ejemplo, el archivo LED_03.py no tiene...

Usar un botón pulsador

1. Conectar el botón pulsador al GPIO

 Cablee el LED siguiendo el esquema de aquí de abajo para las siguientes manipulaciones. Conecte el botón pulsador como se indica aquí debajo.

images/LF11_002.png

Los contactos del botón pulsador están conectados a los pines 18 (GPIO 24) y 20 (masa).

Con respecto al cableado recomendado en el capítulo Material usado, fíjese que no hay ninguna resistencia en el circuito del botón pulsador.

Esto se explica porque gpiozero activa una resistencia pull-up interna en el SoC (R1) que conecta el GPIO 24 con +3,3 V.

images/LF11_003.png

Cuando se suelta el botón pulsador, el pin 24 está en 1 (3,3 V). Cuando se pulsa el botón pulsador, el pin 24 se conecta a la masa (0 V). Respecto al esquema del capítulo anterior, el peligro es que si el pin 24 está programado como salida, podría ser destruido en caso de pulsar el botón pulsador cuando la salida está a 1 (3,3 V).

images/LF11_004.png

Si las manipulaciones las hacen principiantes sin experiencia, puede ser tranquilizador prever una resistencia R2 del orden de 1 k (no crítica) para proteger el GPIO 24 en caso de error.

images/LF11_005.png

El cableado tomará esta forma. No se modificará el funcionamiento, pero la tarjeta estará protegida.

A partir de este momento, el cableado se efectuará como se ha recomendado en la documentación de gpiozero: sin resistencia de protección. El lector tendrá que tomar las precauciones necesarias para proteger los GPIO.

2. Leer la posición del botón pulsador

a. Mostrar la posición del botón pulsador

Objetivo

Mostrar permanentemente en la pantalla el estado del botón pulsador.

 En la pestaña script del IDE Thonny, escriba el script siguiente (disponible para descargar en Cap11\boton_01.py):

1  from gpiozero import Button 
2 
3  posicion = Button(24) 
4 
5  while True: 
6      if posicion.is_pressed: 
7          print("Se pulsa el botón") 
8      else: 
9          print("Se suelta el botón") 

Línea 1: importar Button desde la librería gpiozero para que Python pueda...

Encender un LED con el botón pulsador

1. Método "clásico"

La etapa siguiente consiste en encender un LED cuando el usuario pulsa el botón pulsador. Con las instrucciones que se han visto anteriormente, será sencillo realizar esta función. Esta es la manera " clásica" de realizar el script con gpiozero.

 Escriba este script en la zona de script de Thonny (disponible para descargar en LF10/LED_04.py): 

1  from gpiozero import LED, Button 
2  from signal import pause 
3 
4  rojo = LED(23) 
5  boton = Button(24) 
6 
7  print ("Pulse El botón para encender el LED") 
8  boton.when_pressed = rojo.on 
9  boton.when_released = rojo.off 
10 
11 pause() 

Después de haber importado las bibliotecas necesarias para el proyecto (líneas 1 y 2), informamos a gpiozero de que un LED está conectado en el GPIO 23 y un botón pulsador en el GPIO 24.

El script informa al usuario de la acción que se va a realizar (línea 7).

La acción en el botón pulsador provoca la ejecución de rojo.on o rojo.off, según el botón que haya sido pulsado o soltado (líneas 8 y 9).

La línea 11 pause() mantiene el script activo.

 Ejecute el script y pulse/suelte el botón pulsador.

Cuando se pulsa...

Proyecto 1: Hacer un semáforo de tres colores

La biblioteca gpiozero incluye la gestión de un semáforo, llamada TrafficLights. El primer proyecto consistirá en hacer un semáforo de tres colores.

1. Especificaciones

El funcionamiento es idéntico al del semáforo real de tres colores. La secuencia de alumbrado es:

  • rojo (la circulación se para)

  • verde (la circulación puede continuar)

  • naranja (la circulación se debe parar y anuncia el rojo)

  • rojo

  • etc.

2. Cableado del semáforo de tres colores

images/LF11_006.png

Siguiendo el esquema de arriba:

 Conecte los tres LED del semáforo como se indica en el esquema de arriba. La línea de masa es común a todos los cátodos de los LED. El ánodo de cada LED está conectado a un GPIO diferente que controlará el alumbrado del LED.

3. Script del semáforo de tres colores

Antes de continuar, piense en la creación del script que le permitirá animar el semáforo, partiendo de las instrucciones utilizadas previamente. Escriba y compruebe su script. El script siguiente: SEM_01.py propone una manera de realizar un semáforo de tres colores.

a. Semáforo de tres colores - versión 1

gpiozero ofrece un conjunto de herramientas para gestionar los conjuntos de LED: LEDBoard, LEDBarGraph y TrafficLights. Esta última simplificará la escritura del programa.

 Escriba este script en la zona de script de Thonny (disponible para descargar en Cap11\SEM_01.py):

1  from gpiozero import TrafficLights 
2  from time import sleep 
3  from signal import pause 
4 
5  semaforo = TrafficLights(16, 20, 21) 
6  # En el orden GPIO de los LED rojo, naranja, verde 
7  # En inglés red, amber, green 
8 
9  while True: 
10     semaforo.red.on() 
11     sleep(5) 
12     semaforo.red.off() 
13     semaforo.green.on() 
14     sleep(5) 
15     semaforo.green.off() ...

Variación de la luminosidad del LED

gpiozero ofrece la posibilidad de hacer variar la luminosidad del LED. Se puede hacer que parpadee (blink en inglés) o que varíe su luminosidad de manera continua.

images/LF11_008.png

 Conecte el LED cómo se le indica aquí arriba para realizar las modificaciones de luminosidad.

1. Parpadeo

a. Por defecto

gpiozero propone una gestión simplificada del LED.

 Escriba este script en la zona de script de Thonny (disponible para descargar en Cap11\BlinkLED_01.py):

1  from gpiozero import LED 
2  from signal import pause 
3  led = LED(23) 
4 
5  led.blink() 
6  pause() 
7  pause() 

Línea 1: importación de la biblioteca de gestión del LED.

Línea 2: importación de la biblioteca de gestión de la pausa.

Línea 3: declaración del LED conectado a GPIO 23. El GPIO 23 está configurado como salida.

Línea 5: activación del parpadeo del LED con blink(). Por defecto, el tiempo de encendido y el de apagado están configurados a 1 segundo.

El LED se queda encendido durante 1 segundo y después se apaga durante 1 segundo.

b. Modificación del parpadeo

Pasando parámetros a blink(), se puede hacer variar los tiempos de encendido y de apagado del LED.

 Escriba este script en la zona de script de Thonny (disponible para descargar en Cap11\BlinkLED_02.py):...

Proyecto 2: Variación de luminosidad

1. Especificaciones

Hacer variar la luminosidad de un LED gracias a dos botones pulsadores. Uno de los botones hace aumentar la luminosidad y el otro la hace disminuir.

Cuando la luminosidad es igual al 0% o al 100%, ya no varía más.

El valor de la luminosidad se muestra en la pantalla.

2. Cableado del variador de luminosidad

 Cablee el LED y los dos botones pulsadores siguiendo el esquema de aquí debajo:

images/LF11_010.png

El LED está conectado al GPIO 23 (pin 16) y los botones pulsadores a los GPIO 24 y 25 (respectivamente pin 18 y 22).

3. Análisis del desarrollo del script

Cuando un proyecto es más complejo, a menudo es útil plasmar las ideas en papel antes de lanzarse a la escritura del script. Esto permite imaginar el desarrollo del script, optimizarlo y ayudar a la comprensión de los posibles fallos.

El organigrama de programación, también llamado diagrama de flujo u ordinograma, es una de las posibilidades gráficas para analizar un problema. Contiene una serie de formas estándar. Para obtener más información visite: https://es.wikipedia.org/wiki/Diagrama_de_flujo

images/LF11_011.png

El organigrama de arriba utiliza un conjunto reducido y simplificado de símbolos, lo que es suficiente para describir la tarea que se va a realizar. Los rectángulos simbolizan las acciones y los rombos simbolizan las elecciones en las que se puede responder SÍ...

Proyecto 3: Juego de reflejos

Con el mismo circuito que el que acaba de ser usado por el control de luminosidad del LED, es posible crear un juego de reflejos para dos jugadores.

1. Especificaciones

Cuando se lanza el programa, el LED se enciende y después se apaga después de un tiempo aleatorio, comprendido entre 1 y 5 segundos.

Cuando el LED se apaga, los dos jugadores pulsan cada uno su botón pulsador. El script determina cuál de los dos jugadores ha pulsado primero y muestra el vencedor en pantalla.

2. Cableado del juego de reflejos

El cableado comprende un LED y dos botones pulsadores. Es idéntico al montaje usado para hacer variar la luminosidad del LED.

Este ejemplo muestra que la misma configuración de hardware puede tener diferentes usos en función del programa ejecutado.

3. Escritura del script

 Escriba este script en la zona de script de Thonny (disponible para descargar en Cap11\LEDreflejos_01.py): 

# Importar las bibliotecas usadas por el script 
from gpiozero import LED, Button 
from time import sleep 
# uniform ofrece un número aleatorio redondeado entre 2 valores 
# los límites del intervalo están incluidos 
from random import uniform 
from signal import pause 
 
# Declarar el LED y los 2 botones 
led = LED(23) 
boton_B1 = Button(24) 
boton_B2 = Button(25) 
 
# Encender el LED durante un tiempo aleatorio entre...

LED tricolor RGB

Los LED RGB fueron presentados en el capítulo Material usado - LED RGB. Son los LED que agrupan en una sola carcasa tres LED de color rojo, verde y azul. Su gestión es idéntica a la del semáforo tricolores. Simplemente están integrados en la misma carcasa.

1. Pines del LED RGB

images/R_007.png

Los LED RGB tienen patas de longitudes diferentes, lo que permite identificarlos. La pata más larga es la pata común. Para este proyecto, el LED RGB elegido es un modelo de cátodo común.

2. Cableado del LED RGB

images/LF11_013.png

Siguiendo el esquema de arriba:

 Conecte el cátodo del LED (pata más larga) a la línea vertical de Masa. Conecte las 3 patas que corresponden a los diodos como está indicado, sin olvidar las resistencias de protección.

3. Script Python para comprobar el LED RGB

 Escriba este script en la zona de script de Thonny (disponible para descargar en Cap11\RGBLED_01.py): 

# Importación de las bibliotecas 
from gpiozero import RGBLED 
from time import sleep 
 
# Declaración de los GPIO que controlan los LED 
# En el orden: rojo - verde - azul 
led = RGBLED(16, 20, 21) 
 
# Encender el LED azul 
led.color = (0,0,1) 
#Esperar 0.5 segundos 
sleep(0.5) 
# Encender el LED verde 
led.color = (0,1,0) 
sleep(0.5) 
# Encender el LED rojo 
led.color = (1,0,0) 
sleep(0.5) 
# Encender los LED azul + verde = cian 
led.color = (0,1,1) 
sleep(0.5) 
# Encender los LED rojo + verde = amarillo ...

LED RGB direccionable

images/LF11_014.png

Como se vio en el capítulo Material usado - LED direccionable, cada WS2812 contiene un circuito que recoge en la trama de datos los 3 primeros bytes (24 bits). Los bytes restantes se envían a la salida para controlar los LED siguientes.

La alimentación de 5 voltios de la Raspberry Pi 4 es capaz de alimentar una docena de LED (anillo de 12 LED o cinta de LED). Más allá, será imperativo prever la alimentación de los leds con una alimentación externa de 5V bastante potente (alrededor de 60 mA por WS2812 cuando los 3 LED RGB están encendidos).

1. Biblioteca WS2812

La biblioteca gpiozero no gestiona los LED RGB de tipo WS2812. Se ha propuesto la integración de este componente en la biblioteca, pero todavía no ha sido implementado. La biblioteca está disponible en pypi y se instala de manera sencilla (https://pypi.org/project/rpi-ws281x/).

Por lo tanto, hay que usar una biblioteca adicional para gestionar los LED WS2812.

 Para instalar la biblioteca, escriba la línea siguiente en un terminal:

L    sudo pip3 install rpi_ws281x 

2. Conexión de los LED RGB

images/LF11_015.png

 Conecte el anillo o la cinta de LED WS2812 (no más de 12 LED) siguiendo el esquema de arriba. La conexión solamente necesita 3 cables: el +5 V y la masa para la alimentación y el GPIO 18 (pin 12) conectado a la entrada Din (Data in: Entrada de datos) de la cinta o del anillo.

Las características de los LED WS2812 indican que la tensión en Din tiene que estar comprendida entre 0 y 5 V. La experiencia demuestra que la tensión de 3,3 V presente en el GPIO 18 es suficiente para gestionar los LED. Esto evita el uso de un convertidor de tensión entre la Raspberry Pi y la cinta de LED.

3. Comprobación de los LED WS2812

 Obtenga el programa de pruebas de los LED WS2812 disponible en el GitHub del proyecto:

wget https://github.com/rpi-ws281x/rpi-ws281x-python/blob/master/examples/strandtest.py 

El programa también se encuentra disponible en los archivos descargados como complemento del libro (Cap11\strandtest.py). Para comprobar los LED, el script va a tener que acceder al hardware. Hay que ejecutar el script con los derechos de superusuario.

 Lance el IDE ThonnySudo y cargue el programa strandtest.py.

 Modifique la línea 13 para indicar...

Gestión de una matriz de LED

La gestión de una matriz de LED requiere la instalación de una nueva biblioteca llamada LUMA. Esta biblioteca gestiona uno o varios visualizadores 7219, diferentes fuentes de caracteres así como las configuraciones de las matrices. Las matrices pueden estar dispuestas de manera lineal (pantalla luminosa) o como un cartel. Habrá que darle la información a la biblioteca sobre la configuración elegida para que gestione la visualización.

Para controlar las matrices de LED, el bus SPI tiene que estar activado en el menú Configuración de la Raspberry Pi, pestaña Interfaces.

1. Instalación de la biblioteca

La gestión en Python de la matriz con el circuito 7219 y el bus SPI es más fácil gracias a la biblioteca LUMA.

Su instalación pasa por pip3, que es el sistema de gestión de paquetes utilizado para instalar y gestionar librerías escritas en Python. Es el equivalente de apt-get para el sistema. Las librerías encuentran en PyPi (Python Package Index).

 Vaya a la carpeta del usuario pi.

cd 

 Añada el usuario pi a los grupos spi y gpio para que los pueda usar:

sudo usermod -a -G spi,gpio pi 

 Instale los paquetes necesarios para el uso de Luma:

sudo apt-get install build-essential python3-dev python3-pip libfreetype6-dev  
libjpeg-dev 

 Actualice las versiones de pip y setuptools desde pypi, por que las versiones disponibles en Raspberry Pi OS a veces son versiones antiguas.

sudo pip3 install --upgrade --force-reinstall  pip setuptools 

Es posible que aparezcan WARNING durante la instalación. La mayoría desaparecerán con las actualizaciones siguientes. No los tenga en cuenta.

 Instale la librería Luma desde pypi:

sudo pip3 install --upgrade luma.led_matrix...

Proyecto 4: Pantalla luminosa

1. Especificaciones

Mostrar un texto que pasa por un bloque de 3 matrices LED de 8x8 utilizando la biblioteca LUMA. Vuelva al retomar el programa de demostración matrix_demo.py proporcionado con la biblioteca LUMA para extraer la parte interesante para este proyecto. Esta parte se sitúa al principio de la función demo.

No dude en consultar la documentación de la biblioteca LUMA para comprender el funcionamiento de las instrucciones usadas. Es una de las maneras de dominar un lenguaje y progresar.

2. Cableado de la pantalla luminosa

El cableado es idéntico al que ya se ha visto en la sección anterior Gestión de una matriz de LED.

3. Script de la pantalla luminosa

 Escriba este script en la zona de script de ThonnySudo (disponible para descargar en Cap11\matriz_01.py):

#!/usr/bin/env python3 
# -*- coding: utf-8 -*- 
 
# Importación de las bibliotecas utilizadas para el script 
import time 
# Gestión del circuito 7219 
from luma.led_matrix.device import max7219 
# Gestión del bus SPI 
from luma.core.interface.serial import spi, noop 
# Visualización de los mensajes 
from luma.core.legacy import show_message 
# Fuentes usadas por el script 
from luma.core.legacy.font import proportional, CP437_FONT 
 
# Función de gestión de las matrices 
# Recibe como parámetros el número...

Controlar un servomotor

El servomotor acepta un comando PWM. gpiozero ofrece la posibilidad de forzar el motor en tres posiciones predeterminadas: mínimo, máximo y medio. También podemos definir con más precisión la posición del motor entre -1 (mínimo) y +1 (máximo). En ese caso, 0 representa la posición media y todos los valores entre -1 y +1 son posibles.

Todos los servomotores no son idénticos. En función del modelo del que disponga, es posible que tenga que adaptar el programa para obtener una rotación de 180°. Algunos servomotores solo ofrecen 90° de rotación como máximo.

1. Cableado

images/LF11_019.png

El servomotor necesita una alimentación de 5 V. Estará conectado en el pin 5 V del conector (pin 2).

El hilo de control está conectado al pin 40 del conector (GPIO 21).

2. Script de control del servomotor

a. Posiciones predeterminadas

 Escriba este script en la zona de script de Thonny (disponible para descargar en Cap11\servo_01.py):

# Programa de pruebas del servomotor SG90 
# Posiciona el servomotor en 3 posiciones fijas 
 
# Importación de las bibliotecas utilizadas por el script 
 
from gpiozero import Servo 
from time import sleep 
 
# Conecte el servomotor al GPIO21 
servo = Servo(21) 
 
# Bucle infinito del programa 
while True: 
   # Posicionar el servo...

Encoder rotativo incremental

1. Especificaciones

El objetivo es mostrar el sentido de giro del encoder incremental en la pantalla. Después, se podrá usar esta información para controlar el volumen de salida de un amplificador, la luminosidad o el color de un LED o de una cinta de LED…

2. Conexiones con el GPIO

images/LF11_020.png

El encoder rotativo está conectado a +3,3 V y a la masa, y los dos hilos S1 y S2 están conectados con los GPIO 24 y 25. El pin no conectado en el encoder corresponde al botón pulsador que se acciona pulsando verticalmente en el eje del encoder. No lo usamos aquí.

3. Programa

 Escriba este script en la zona de script de Thonny (disponible para descargar en Cap11\incremental_01.py):

#!/usr/bin/python3  
# Uso de un codificador rotativo incremental  
  
# Importación las bibliotecas utilizadas para el script  
from gpiozero import Button  
from signal import pause  
from time import sleep  
  
# Declarar las entradas del codificador como las de los botones  
S2 = Button(24)  
S1 = Button(25)  
  
def S1_pressed():  
   print ('S1 pulsado')  
   sleep(0.15)  
  
def S2_pressed():  
   print ('S2 pulsado')  
   sleep(0.15)  
  
# Espera de eventos durante la rotación del botón  ...

Proyecto 5: Desfile de colores

1. Especificaciones

Un LED RGB emite una luz de color. Los 8 colores básicos (negro, blanco, rojo, verde, azul, amarillo, magenta y cian) se muestran sucesivamente gracias a la rotación de un encoder rotativo. El desfile de los colores depende del sentido de giro del encoder.

2. Cableado

El cableado del encoder incremental rotativo es idéntico al de la sección anterior. El LED RGB está conectado como en la sección Cableado del LED RGB y el encoder incremental reemplaza al botón pulsador de este esquema.

images/LF11_022.png

3. Script de desfile de colores

 Escriba este script en la zona de script de Thonny (disponible para descargar en Cap11\incremental_03.py):

#!/usr/bin/env python3 
# -*- coding: utf-8 -*- 
 
# Importación de las bibliotecas utilizadas para el script 
from gpiozero import RGBLED, Button 
from colorzero import Color 
from time import sleep 
from signal import pause 
 
# Esta Biblioteca permite la creación de una fila de espera para ordenar 
los eventos 
# La fila utilizada aquí es de tipo FIFO = First In First Out = primero en entrar, 
primero en salir 
import queue 
 
# Crear la fila de espera FIFO 
eventq = queue.Queue() 
 
# Declarar las entradas del codificador como de los botones 
pin_S2 = Button(24) 
pin_S1 = Button(25) 
 
# Declaración del LED RGB 
led = RGBLED(16...

Tarjeta de adquisición de datos

Uno de los reproches que se hacen a menudo a la Raspberry Pi es la ausencia de una entrada analógica. Este tipo de entrada permite transformar una tensión analógica que varía continuamente en valor numérico.

1. Elección de la tarjeta

Existen numerosas soluciones y hay que elegir la tarjeta que sea más apropiada en función del proyecto.

images/01LF11_v2.png

Para la estación meteorológica, existe una tarjeta basada en el convertidor Analógico/Digital MCP3008 diseñada por Alex Eames para RasPiO. Permite convertir 8 valores analógicos y da acceso a los puertos GPIO que son llevados a encapsulados de la tarjeta. La tarjeta viene en un kit que contiene el circuito impreso y el conjunto de los componentes.

La tarjeta RasPiO Analog Zero utiliza el bus SPI. Hay que activar este bus a través del menú Configuración de Raspberry Pi - Interfaces.

La tarjeta se conecta a los puertos GPIO de la Raspberry Pi 4 (conector en la parte superior de la foto de arriba). Debajo de ese conector, una fila de encapsulados identificados por serigrafía da acceso a cada puerto del GPIO. Se encuentra después U6, el convertidor analógico/digital (CAN o ADC). Las ocho entradas analógicas de A0 a A7 recibirán las tensiones para medir (de 0 a 3,3 V máximo). En la parte de la derecha, una serie de encapsulados ofrece la posibilidad...

Conclusión

Los programas y proyectos de este capítulo muestran que con pocos de medios y una programación básica, se pueden controlar de manera relativamente fácil componentes electrónicos.

Los programas Python propuestos en este capítulo utilizan voluntariamente instrucciones fáciles de implementar para un principiante. Después la de la prueba de los programas y de la comprensión de las instrucciones, se aconseja reforzar los conocimientos adquiridos combinando las posibilidades.

Por ejemplo, hacer variar la luminosidad de un LED con el encoder incremental, desplazar un LED encendido por una cinta de LED RGB con botones pulsadores, desplazar un LED encendido por un anillo de LED con el encoder incremental…