Paso 3: Control de motores con frambuesa Pi y WiringPi
En este punto, la biblioteca de WiringPi está instalada y usted puede controlar cualquier GPIO directamente desde la línea de comandos en su monitor de RPi. El siguiente paso es crear una lógica para controlar los motores. Para ello, utilizamos un puente en forma de H, L-293-D. Este puente H puede controlar 2 motores. Tiene para cada uno, los motores, 3 entradas:
- Motor izquierda: "permitir"; "motor +" y "motor-"
- Motor derecha: "permitir"; "motor +" y "motor-"
Ambos entrada "motores permite" conectar juntos y será controlados por GPIO.18. Este pin se encargará para el control de velocidad. Si no desea que controlan la velocidad, dejar los pernos en alto, por ejemplo. vamos a discutir esto más en este paso.
Vamos a hacer un Convenio si queremos que el motor izquierdo para correr hacia adelante, que debemos configurar motor + como alta y motor-como baja. Para ejecutar en un sentido inverso, debemos hacer lo contrario: motor-como alta y motor + tan bajo.
La mejor manera de definir realmente las entradas correctas para controlar la dirección del motor, es a prueba cuando es el verdadero motor.
Vamos a asignar los GPIOs para entradas de puentes de H:
- Motor izquierda +: GPIO.5
- Motor izquierda -: GPIO.6
- Motor derecha +: GPIO.13
- Derecha - motor: GPIO.19
Partiendo de los supuestos anteriores, se puede construir una tabla lógica con los niveles que se asignará a los GPIOs (ver tabla imagen). El siguiente paso es crear scripts de shell para ejecutar los motores
Cada archivo de script es esencialmente el texto sin formato. Cuando un archivo de texto se intenta ejecutarse, conchas analizará a través de ellos para pistas en cuanto a si son secuencias de comandos o no y cómo manejar todo correctamente. Debido a esto, hay algunas pautas que necesita saber.
- Cada script debe ser con "#! / bin/bash" (el Hash-Bang Hack}
- Cada nueva línea es un nuevo comando
- Las líneas de comentario comienzan con un #
- Comandos están rodeados por)
Cuando un shell analiza a través de un archivo de texto, el más directo camino para identificar el archivo como un script está haciendo su primera línea: #! / bin/bash (el Hash-Bang Hack). Si usas otro shell, sustituir su camino aquí. Las líneas de comentario comienzan con hash (#), pero añadiendo el bang (!) y la ruta del shell después de que sea una especie de hack que se omitir esta regla comentario y obligará a la secuencia de comandos a ejecutar con la concha que esta línea apunta a.
Por ejemplo, para crear un script de shell para ejecutar los motores "Forward", basado en la tabla anterior, debemos crear el siguiente archivo (uso el mejor editor para usted. Estoy usando NANO para eso):
sudo nano forward.cgi
#! / bin/bash
GPIO -g escribir 5 1
GPIO -g escribir 6 0
GPIO -g escritura 13 1
GPIO -g escribir 19 0
.
Una vez creado el script, lo debemos dar permiso para ser ejecutados:
sudo chmod 755 forward.cgi
Ahora, para ejecutar el script:
sudo./forward.cgi
4 LEDs fueron utilizados para probar los scripts, los reales motores se añadirán en un paso más. Si funciona, debe estar en el correspondiente LED (ver foto).
Tenga en cuenta que usar cgi como la extensión de archivo. CGI significa "Common Gateway Interface". Es una forma estándar para servidores web para interfaz con programas ejecutables instalados en un servidor que generan dinámicamente páginas web. Estos programas son conocidos como scripts CGI o simplemente CGIs; generalmente están escritas en un lenguaje de scripts, pero pueden escribirse en cualquier lenguaje de programación.
Sucediendo, debe aplicarse la misma idea para las otras posibilidades de la tabla anterior:
sudo nano stop.cgi
#! / bin/bash
GPIO -g escribir 5 0
GPIO -g escribir 6 0
GPIO -g escribir 13 0
GPIO -g escribir 19 0
.
sudo nano reverse.cgi
#! / bin/bash
GPIO -g escribir 5 0
GPIO -g escribir 6 1
GPIO -g escribir 13 0
GPIO -g escribir 19 1
.
sudo nano left.cgi
#! / bin/bash
GPIO -g escribir 5 0
GPIO -g escribir 6 1
GPIO -g escritura 13 1
GPIO -g escribir 19 0
.
sudo nano right.cgi
#! / bin/bash
GPIO -g escribir 5 1
GPIO -g escribir 6 0
GPIO -g escribir 13 0
GPIO -g escribir 19 1
.
Una vez creados los scripts deben darles permisos para ser ejecutado, al igual como se hizo con forward.cgi
sudo chmod 755 stop.cgi
sudo chmod 755 reverse.cgi
sudo chmod 755 left.cgi
sudo chmod 755 right.cgi
Ahora, ejecutar algunas pruebas para confirmar que todo está funcionando:
./forward.cgi
./Left.cgi
./Reverse.cgi
./Right.cgi
./STOP.cgi
Es una buena práctica que tenemos un directorio específico para los programas que utilizan y lo llaman "bin". Por lo tanto, para guardar las secuencias de comandos que vamos a utilizar en el proyecto, debemos crear un directorio como cgi-bin que contiene todos los scripts ejecutables (o archivos binarios). Por ejemplo, httpd www/cgi-bin.
Por lo tanto, vamos a crear el directorio www debajo de var, donde se ubicará la página web y debajo de ella, el directorio cgi-bin con las secuencias de comandos:
sudo mkdir/var/www
sudo mkdir httpd www/cgi-bin
Ahora, vamos a pasar todos los archivos a este nuevo directorio:
sudo mv /*.sgi httpd www/cgi-bin
CD httpd www/cgi-bin
Utilizando el línea comando ls, puede ver los archivos creados (ver foto).
LS
Una última cosa antes de que procedamos a otro paso. Si reinicia el IPC, los GPIOs volverá a su estado por defecto que es la entrada. Por lo tanto, tenemos que cambiar el script /etc/rc.local que se ejecuta al inicio de cualquier frambuesa. Justo antes del último comando en el script == > exit 0, debemos incluir los comandos de modo de GPIOs:
sudo nano /etc/rc.local
…
modo de GPIO -g 5 a
modo de GPIO -g 6 a
modo de GPIO -g 13 a
modo de GPIO -g 19 a
...
exit 0
Ahora, en cualquier momento que el IPC comienza, estará listo para controlar las salidas diseñadas.