| @ -0,0 +1,74 @@ | |||||
| # 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. | |||||
|  | |||||
| ## 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 | |||||
| ``` | |||||