Hola:
Acá les voy a compartir la receta de cocina para poder controlar un led desde uno de los pines de la GPIO. Tengo una Cubieboard A10 con Armbian 23.11.1 bookworm. Vamos a necesitar:
- Una resistencia de 220 (rojo, rojo, café) o 330 (naranja, naranja, café) ohms.
- Un diodo led de preferencia de bajo consumo (no ultrabrillante).
- Una protoboard
- Algunos cables dupont para conectar de header macho a protoboard (Dupont macho-hembra).
Para empezar, seleccionamos un pin de la GPIO. Para eso buscamos el diagrama pinout de la placa.
En nuestro caso vamos a seleccionar el pin 11 del puerto del lado derecho del diagrama. Es el pin margado como CSI1-D0. Y para aterrizar el circuito usaremos el pin 19 o 20 marcados como GND o Ground del mismo puerto. El circuito nos quedaría de la siguiente forma:
Actualizar sistema
sudo apt update sudo apt upgrade
Instalar dependencias de python
sudo apt install python3-libgpiod
Revisar pines disponibles
dtc -I dtb -O dts -o sun4i-a10-cubieboard.dts /boot/dtb/sun4i-a10-cubieboard.dtb
Script python
Acá estaría el script que debes de copiar y pegar en un archivo. Yo le puse de nombre sos.py.
#!/usr/bin/python import gpiod import time def morse_code_signal(line, symbol): if symbol == ".": line.set_value(1) time.sleep(0.2) # Duración del punto line.set_value(0) time.sleep(0.2) # Espacio entre partes de la misma letra elif symbol == "-": line.set_value(1) time.sleep(0.6) # Duración de la raya line.set_value(0) time.sleep(0.2) # Espacio entre partes de la misma letra def morse_code_sos(line): # Representación de SOS en Morse: ... --- ... for symbol in "... --- ...": morse_code_signal(line, symbol) if symbol == " ": time.sleep(0.6) # Espacio entre letras chip = gpiod.Chip('gpiochip0') line_number = 196 led = chip.get_line(line_number) led.request(consumer='gpio_led_morse', type=gpiod.LINE_REQ_DIR_OUT) try: while True: morse_code_sos(led) time.sleep(5) # Espera 5 segundos antes de repetir finally: led.release()
Ahora podemos darle permisos de escritura
chmod 755 sos.py
Ejecutamos como superusuario
sudo ./sos.py
¡Y listo! ¡Ya podemos controlar un LED con un script python en linux!
Happy coding!