Paso 6: Frambuesa Pi (el código)
Nos estamos acercando ahora, tu hámster está casi listo para entrar en el mundo de las redes sociales. Tenemos sensores, servos y cámaras todo listas, sólo tenemos que enganchar hasta el Raspberry Pi y decirles qué hacer. He vuelto a través de todos los archivos involucrados en el proyecto y los llenó con comentarios explicando lo que hace cada parte del código para cualquiera de ustedes que están interesados.
Hay un poco de código necesario para que este proyecto funcione, así que lo he puesto todo en un repositorio (repo) en GitHub. Puede instalar la herramienta de línea de comandos para GitHub (llamado git) en su pi ejecutando el comando:
sudo apt-get install git
Ahora podemos utilizar git para clonar el repositorio en el pi (básicamente nos va estar descargando todos los archivos en el pi junto con la estructura de carpeta correcta a todos ellos que funcione (ver foto)). Los siguientes comandos deben recibir configurar:
# cd al directorio home
CD ~ /
# clonar el repositorio
git clone git
Ahora tienes todo el código que necesitarás. Sólo tendremos que comprobar un par de variables son correctas y set up los tokens de acceso para sus bots de Twitter.
Creación de fichas de acceso de twitter
Necesitamos un nuevo directorio dentro del proyecto el cajón
mkdir ~/IsMartinRunning/.secrets
El nombre de directorio con un punto es oculto (no podrás ver con 'ls' debe usar 'ls - a'). Dentro de este directorio hacer dos archivos (uno por cada uno de sus bots de Twitter):
CD ~/IsMartinRuning/.secrets
toque martinBot.access mentions.access
Ahora en cada uno de estos archivos tenemos que poner las credenciales de acceso de uno de los bots de Twitter. Utilizando las cuatro primeras líneas de la escritura del archivo de:
- La clave del consumidor
- El secreto de consumidor
- El token de acceso de
- El secreto de token de acceso
Puede encontrar estos valores va a apps.twitter.com y yendo a la pestaña 'Claves y Tokens de acceso' para tu bot. Hacemos esto por razones de seguridad, es totalmente posible sólo escribir estas teclas en los scripts propios, pero entonces si usted los recibe en un repositorio público (como yo) todos de repente tienen acceso a sus bots de twitter (que no es deseables).
Ahora vamos a ir a través de los archivos, mira en lo que hacen y si necesitan personalización.
MartinBot/MartinBot.py
Se trata de un script en Python que toma datos de la rueda sensor dween como argumento. Toma una foto utilizando la cámara web, comprueba si este nuevo funcionamiento supera cualquiera de las anteriores marcas personales, construye un tweet apropiado y utiliza la librería python Twython para enviarlo.
Este archivo es necesario un poco de trabajo. En primer lugar tendremos que instalar la biblioteca de Twython. Esto puede hacerse mediante el pip de Gerente de paquete de python. Así que en realidad en primer lugar tendremos que instalar pip :)
# instalar pip
sudo apt-get install python-pip
# instalar Twython con pip
sudo pip install twython
A continuación necesitaremos para asegurarse de que las rutas de archivo son correctas. Líneas 27, 40, 60 y 65 tienen rutas de archivo que deben ser los correctos para tu pi (es decir, puede que necesite cambiar el nombre de usuario en la ruta).
Finalmente necesitaremos para asegurarse de que el puerto serie para la cámara web es correcta (línea 24'/ dev /video0'). Puede comprobarlo desenchufando la webcam de la pi, el correr el comando:
LS/dev
Luego enchufar la webcam de nuevo en y ejecutar el mismo comando de nuevo. Este tiempo debe aparecer un puerto nuevo y este es el que quieras. Utilizaremos esta misma técnica para comprobar también los puertos de los Arduinos.
MartinBot/image.png
Esta es la imagen de que la webcam toma, listo para ser subido a Twitter.
MartinBot/personal_bests
Este archivo contiene los valores más altos registrados para el promedio de velocidad y distancia. Se utiliza y actualiza el script MartinBot.py para buscar nuevos registros.
MartinBot/wheel_listener.sh
Se trata de un script de Bash que se bucle continuamente escuchando la rueda dween para obtener datos sobre una nueva prueba de detección. Cuando los datos correrá el script de MartinBot.py pasar los datos para que utilice.
El puerto serie en línea 15 ('/dev/ttyACM0') debe establecerse en cualquier puerto de su dween sensor de rueda es en (como la webcam).
La ruta del archivo en línea de 19 tiene que ser correcta.
circuit_diagrams / *
Estos son los esquemas de la dweens así como los archivos de .fzz permite crear con un programa llamado Fritzing (es muy útil).
Estos no son utilizados realmente por lo que no necesitará preocuparse de ellos. Sólo quiero mantener todas estas cosas juntas en GitHub.
get_mentions/get_mentions.py
Este script en Python es más compleja que la anterior. Golpea a la API de Twitter buscando cualquier tweets que mencionan 'aIsMartinRunning' (tuyo buscará automáticamente el mango del Twitter de cualquier cuenta posee el bot de twitter). A continuación comprueba para ver si estos son más nuevos que el más reciente respondieron a estos nuevos tweets y haz búsquedas para palabras claves como 'tiempo', 'temperatura' y 'tratar'. Si encuentra alguna de estas palabras un tweet de respuesta debe ser creado. Si menciona alguna de la temperatura de palabras clave de la humedad, el script envía una señal a la hdt_with_servo dween pidiendo los datos de temperatura y humedad, si el tweet contiene la palabra clave tratar, el script envía una señal a la dween diciéndole que activa el servo dispensador de tratar. El script viene con una respuesta apropiada, lo tweets y luego actualiza el último respondió a un tweet.
La variable 'serial_path' en la línea 55 debe estar refiriéndose al puerto serial correcto para el dween hdt_with_servo.
Las rutas de archivo en las líneas 58, 92 y 145 deban ser correcto.
get_mentions/mention_listener.sh
Este script de Bash ejecuta el script de get_mentions.py cada minuto (esto es con la frecuencia que permite la API de Twitter).
El fie path en la línea 13 tiene que ser correcta.
get_mentions/most_recent
Este archivo contiene el tweet id del tweet más reciente respondió a la secuencia de comandos get_mentions.py . Esto es así sólo responder a tweets una vez.
bocetos / ** / *
Estos archivos son los bocetos de Arduino para hacer los sensores y servos trabajan.
Ufff, sé que es mucho que pensar sobre todo en una sola vez, pero nosotros debemos hacer ahora. Siguiente vamos a conseguir estas secuencias de comandos ejecutar.