|
@ -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. |
|
|
|
|
|
|
|
|
|
|
|
![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 |
|
|
|
|
|
``` |