|
|
- # 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
-
-
- 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
- ```
|