gpiotools_blink.sh
Sin Python: gpiotools exporta el pin y alterna su nivel, util en cron, scripts de instalacion o unidades systemd. GPIO17 es el pin 11 del conector J8 (40 pines). El trap libera el pin al salir.
Hardware
Una Raspberry Pi 5 (BCM2712 quad-core a 2,4 GHz, chip de E/S RP1, GPIO de 40 pines, alimentación USB-C de 5 V/5 A recomendada, dos puertos CSI de cámara). Un LED, una resistencia de 330 ohmios, ningun paquete Python (solo gpiotools).
Cableado
LED + resistencia entre GPIO17 (pin 11) y GND, el montaje clasico del conector J8.
Funcionamiento
gpio-export crea /sys/class/gpio/gpio17; el script escribe 1/0 en value con gpio-set/gpio-clear, direccion fijada al exportar.
Ejecución
Copia el script en la placa (scp) y ejecútalo con python3. En Bookworm, gpiozero 2.x controla los pines mediante el chip RP1; mantén gpiozero y python3-rpi.gpio actualizados (sudo apt full-upgrade). Se recomienda fuente de 5 V/5 A.
Variantes
gpio-get lee un boton; gpiomon (libgpiod) espera flancos. Se recomienda una fuente de 27 W (5 V/5 A); sin ella, USB se limita a 600 mA en total.
gpiotools_blink.sh
#!/usr/bin/env bash
set -u
# gpiotools_blink.sh — LED clignotante sans Python, via gpiotools.
# Deps: sudo apt install gpiotools
# GPIO17 = broche 11 sur le connecteur 40 broches (J8).
# Alternative sans paquet : echo 17 > /sys/class/gpio/export a la main.
# Relancez si la broche est deja occupee par un autre service.
PIN=17
gpio-export $PIN out
trap 'gpio-unexport $PIN' EXIT
echo "LED sur GPIO$PIN, Ctrl+C pour sortir"
while true; do
gpio-set $PIN
echo "ON"
sleep 0.5
gpio-clear $PIN
echo "off"
sleep 0.5
done