# Control de LED de usuario por medio de script en Bash El objetivo de este script en Bash 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. ```bash #!/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. Si el usuario no conoce los comandos, puede usar ***help*** para desplegar la lista de los comandos anteriormente mencionados, o bien al ingresar un comando erróneo saldrá una alerta que indicará que el comando es incorrecto y mostrará todos los comandos a usar. ```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 elif [ "$1" == "help" ]; then echo "This is an application to control User LED 3" echo "List of commands: " echo "on - Powers on the LED" echo "off - Powers off the LED" echo "blink - Makes the LED blink" else echo "Error: This is not a command for this application" echo "These are the commands you can use: " echo "on - Powers on the LED" echo "off - Powers off the LED" echo "blink - Makes the LED blink" fi echo "Done" ``` ## Ejecución Para poder ejecutar nuestra aplicación se asigna los permisos necesarios con el siguiente comando: ```console sudo chmod u+x blink_LED3.sh ``` Y se ejecuta con cualquiera de los argumentos disponibles. Encender el LED ```console ./blink_LED3.sh on ``` Apagar el LED ```console ./blink_LED3.sh off ``` Parpadear el LED ```console ./blink_LED3.sh blink ```