Paso 6: Instalación de los servos en el RPi
- Conecte la señal de datos de servos al RPI como se muestra en el diagrama.
- Conectar el + V de ambos servos en un alimentador separado que el IPC (por supuesto, se debe conectar ambas GND). Una vez que se instale el mecanismo Pan/Tilt en el robot, puede utilizar la misma batería (9V) que se utilizó con los motores de corriente continua. En este caso, un regulador de voltaje 6V será necesario.
Para las pruebas de los servos, utilice el Servoblaster comando "echo". Puede utilizar valores de ángulo o porcentaje. Prueba el mejor rango para su mecanismo Pan/Tilt:
Rango de Tilt Servo:
echo P1 - 11 = 20% >/dev/servoblaster (mirando hacia abajo)
echo P1 - 11 = 60% >/dev/servoblaster (mirando de frente)
echo P1 - 11 = 90% >/dev/servoblaster (mirando hacia arriba)
Gama de Servo de pan:
echo P1 - 16 = 30% >/dev/servoblaster (mira bien)
echo P1 - 16 = 62% >/dev/servoblaster (mirando el centro)
echo P1 - 16 = 90% >/dev/servoblaster (mirando de izquierda)
Podemos escribir secuencias de comandos de bash para controlar fácilmente la posición del servo. Antes de empezar, recordemos que es una buena práctica tener 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, crearemos un directorio que contiene todos los scripts ejecutables (o archivos binarios).
Por ejemplo, vamos a pasar por nuestro directorio web:
CD/var/www
y debajo de ella, crear el directorio con scripts, que llamamos cgi-bin:
sudo mkdir httpd www/cgi-bin
Para las secuencias de comandos, utilizaremos ".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. Vamos a crear un directorio en/var/www, donde se guardarán las secuencias de comandos:
sudo mkdir cgi-bin
Como ya comentamos en la primera parte de este proyecto, IoT - controlar un Raspberry Pi Robot por internet con HTML y shell scripts sólo. archivos de secuencia de comandos son esencialmente texto. 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 shell script para posicionar la cámara "mirando al frente", basada en el servo arriba gamas que usted encontró, debemos crear el siguiente archivo (uso el mejor editor para usted. Estoy usando NANO para eso):
sudo nano cam_view_front.cgi
#! / bin/bash
echo P1 - 11 = 60% >/dev/servoblaster
echo P1 - 16 = 62% >/dev/servoblaster
.
Una vez creado el script, lo debemos dar permiso para ser ejecutados:
sudo chmod 755 cam_view_front.cgi
Ahora, para ejecutar el script:
./cam_view_front.cgi
Mover la cámara para cualquier posición usando el comando echo y después de que ejecute el script nuevo. Verás que la cámara será envenenado automáticamente su posición de vista frontal.
Sucediendo, debe aplicarse la misma idea para las otras posibles posiciones de cámara.
Para mi página web, elegir crear 5 posiciones intermediarias para la inclinación y 5 posiciones intermediarias para PAN. También puede elegir usar "deslizadores" para un cambio de posición más continuo. Depende de usted.
Siguiendo el mismo principio descrito para el script "cam_view_front.cgi", vamos a crear 10 nuevas secuencias de comandos:
- leftpan.cgi == > 90%
- leftcenterpan.cgi == > 76%
- centerpan.cgi == > 62%
- rightcenterpan.cgi == > 46%
- rightpan.cgi == > 30%
- downtilt.cgi == > 20%
- downcentertilt.cgi == > 40%
- centertilt.cgi == > 60%
- upcentertilt.cgi == > 75%
- uptilt.cgi == > 90%