You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

103 lines
3.0 KiB

  1. # Control de LED de usuario por medio de script en Bash
  2. El objetivo de este script en Bash es controlar uno de los LED's de usuario
  3. integrados en la BeagleBone Black por medio de los registros del sistema.
  4. ![BeagleBone Black y sus LED's de usuario](bbled.png)
  5. ## Header
  6. En la primera línea de nuestro script se añade una línea con la dirección de los binarios
  7. de bash, al momento en que se lea esta línea, sabrá como debe ejecutar el script
  8. sin que lo indiquemos en la terminal. De igual forma, se define la dirección del LED 3
  9. dónde se encuentran los registros a modificar.
  10. Al ser Bash el lenguaje con el que se interactúa en la terminal, no se necesitan librerías
  11. para las entradas y salidas de nuestro script.
  12. ```bash
  13. #!/bin/bash
  14. LED3_PATH=/sys/class/leds/beaglebone:green:usr3
  15. ```
  16. ### Trigger
  17. Se desarrolla la función que deshabilitará el trigger del LED, utilizando el comando *echo*
  18. que nos permite modificar o agregar valores a los archivos
  19. ```console
  20. function removeTrigger
  21. {
  22. echo "none" >> "$LED3_PATH/trigger"
  23. }
  24. ```
  25. ## Main
  26. En la parte principal de nuestro código, se inicia un ciclo if que evaluará los argumentos
  27. ***on***, ***off*** y ***blink***; al igual que en la función removeTrigger, el estado del LED se
  28. controlará modificando el registro *brightness* con el comando *echo*, para el parpadeo del
  29. LED se usará el comando *sleep* que definirá el tiempo de inicio y apagado en segundos.
  30. Si el usuario no conoce los comandos, puede usar ***help*** para desplegar la lista de los comandos anteriormente
  31. mencionados, o bien al ingresar un comando erróneo saldrá una alerta que indicará que el comando es incorrecto y
  32. mostrará todos los comandos a usar.
  33. ```console
  34. echo "The LED3 user is starting"
  35. if [ "$1" == "on" ]; then
  36. echo "LED on"
  37. removeTrigger
  38. echo "1" >> "$LED3_PATH/brightness"
  39. elif [ "$1" == "off" ]; then
  40. echo "LED off"
  41. removeTrigger
  42. echo "0" >> "$LED3_PATH/brightness"
  43. elif [ "$1" == "blink" ]; then
  44. "LED blinking"
  45. removeTrigger
  46. echo "1" >> "$LED3_PATH/brightness"
  47. sleep 0.5
  48. echo "0" >> "$LED3_PATH/brightness"
  49. sleep 0.5
  50. elif [ "$1" == "help" ]; then
  51. echo "This is an application to control User LED 3"
  52. echo "List of commands: "
  53. echo "on - Powers on the LED"
  54. echo "off - Powers off the LED"
  55. echo "blink - Makes the LED blink"
  56. else
  57. echo "Error: This is not a command for this application"
  58. echo "These are the commands you can use: "
  59. echo "on - Powers on the LED"
  60. echo "off - Powers off the LED"
  61. echo "blink - Makes the LED blink"
  62. fi
  63. echo "Done"
  64. ```
  65. ## Ejecución
  66. Para poder ejecutar nuestra aplicación se asigna los permisos necesarios
  67. con el siguiente comando:
  68. ```console
  69. sudo chmod u+x blink_LED3.sh
  70. ```
  71. Y se ejecuta con cualquiera de los argumentos disponibles.
  72. Encender el LED
  73. ```console
  74. ./blink_LED3.sh on
  75. ```
  76. Apagar el LED
  77. ```console
  78. ./blink_LED3.sh off
  79. ```
  80. Parpadear el LED
  81. ```console
  82. ./blink_LED3.sh blink
  83. ```