# Control de LED de usuario por medio de script en Shell El objetivo de este script en Shell es controlar uno de los LED's de usuario integrados en la BeagleBone Black por medio de los registros del sistema. ![BeagleBone Black y sus LED's de usuario](bbled.png) ## Header En la primera línea de nuestro script se añade una línea con la dirección de los binarios de bash, al momento en que se lea esta línea, sabrá como debe ejecutar el script sin que lo indiquemos en la terminal. De igual forma, se define la dirección del LED 3 dónde se encuentran los registros a modificar. Al ser bash el lenguaje con el que se interactúa en la terminal, no se necesitan librerías para las entradas y salidas de nuestro script. ```console #!/bin/bash LED3_PATH=/sys/class/leds/beaglebone:green:usr3 ``` ### Trigger Se desarrolla la función que deshabilitará el trigger del LED, utilizando el comando *echo* que nos permite modificar o agregar valores a los archivos ```console function removeTrigger { echo "none" >> "$LED3_PATH/trigger" } ``` ## Main En la parte principal de nuestro código, se inicia un ciclo if que evaluará los argumentos ***on***, ***off*** y ***blink***; al igual que en la función removeTrigger, el estado del LED se controlará modificando el registro *brightness* con el comando *echo*, para el parpadeo del LED se usará el comando *sleep* que definirá el tiempo de inicio y apagado en segundos. ```console echo "The LED3 user is starting" if [ "$1" == "on" ]; then echo "LED on" removeTrigger echo "1" >> "$LED3_PATH/brightness" elif [ "$1" == "off" ]; then echo "LED off" removeTrigger echo "0" >> "$LED3_PATH/brightness" elif [ "$1" == "blink" ]; then "LED blinking" removeTrigger echo "1" >> "$LED3_PATH/brightness" sleep 0.5 echo "0" >> "$LED3_PATH/brightness" sleep 0.5 fi echo "Done" ``` ## Ejecución Se cambian los permisos de nuestro script. ```console sudo chmod u+x blink_LED3.sh ``` Y se ejecuta con cualquiera de los argumentos mencionados anteriormente. ```console ./blink_LED3.sh blink ```