Tabla de contenido:

Robot espía frambuesa: 8 pasos (con imágenes)
Robot espía frambuesa: 8 pasos (con imágenes)

Video: Robot espía frambuesa: 8 pasos (con imágenes)

Video: Robot espía frambuesa: 8 pasos (con imágenes)
Video: 10 útiles robots que te harán feliz 2024, Mes de julio
Anonim
Image
Image
Robot espía frambuesa
Robot espía frambuesa

Este proyecto le permite conducir un robot a través de una página web y ver una transmisión en vivo. Se puede usar para espiar mascotas, asegurarse de que no se esté quemando nada en el horno e incluso para observar aves. DFRobot proporcionó la Raspberry Pi 3 y el módulo de cámara Raspberry Pi.

Paso 1: La electrónica del robot

La electrónica del robot
La electrónica del robot

Comencé armando el kit de chasis 2WD MiniQ de DFRobot. Deslicé las ruedas en los ejes del motor, luego las inserté en soportes y las até al chasis. Finalmente, agregué los soportes metálicos. Ahora era el momento de construir la placa principal. El controlador del motor L293d se soldó en su lugar, junto con los cables que van a los pines GPIO de la Raspberry Pi. A continuación, soldé un conector para la batería, ya que proporcionará la energía principal. Después de agregar la fuente de energía, instalé un regulador de 5V.

Paso 2: Configurar el Pi

Configurando el Pi
Configurando el Pi

DFRobot se acercó a mí y me envió su módulo de cámara Raspberry Pi 3 y Raspberry Pi. Entonces, después de abrir las cajas, me puse manos a la obra configurando la tarjeta SD. Primero fui a la página de descargas de Raspberry Pi y descargué la versión más reciente de Raspbian. Luego extraje el archivo y lo puse en un directorio conveniente. No puede simplemente copiar / pegar un archivo.img en una tarjeta SD, tiene que "grabarlo" en la tarjeta. Puede descargar una utilidad de grabación como Etcher.io para transferir fácilmente la imagen del sistema operativo. Después de que el archivo.img estuvo en mi tarjeta SD, lo inserté en la Raspberry Pi y le di energía. Después de unos 50 segundos, desconecté el cable y extraje la tarjeta SD. A continuación, volví a poner la tarjeta SD en mi PC y fui al directorio de "arranque". Abrí el bloc de notas y lo guardé como un archivo en blanco llamado "ssh" sin extensión. También había un archivo que agregué llamado "wpa_supplicant.conf" y puse este texto en él:

network = {ssid = psk =}

Luego guardé y expulsé la tarjeta y la volví a colocar en la Raspberry Pi 3. Esto ahora debería permitir el uso de SSH y la conexión a WiFi.

Paso 3: preparación de la cámara

Preparar la cámara
Preparar la cámara

De forma predeterminada, la cámara está deshabilitada en la Pi, por lo que debe abrir el tipo de terminal sudo raspi-config para que aparezca el menú. Vaya a "opciones de interfaz" y luego habilite la cámara. Ahora simplemente seleccione "Finalizar" e inserte el cable plano del módulo de la cámara en el área correcta de la Pi.

Paso 4: instalación del software

Hay varios softwares diferentes que pueden transmitir video, como vlc y motion, pero decidí usar mjpeg-streamer debido a su baja latencia y fácil instalación. De acuerdo con las instrucciones del sitio, haga un clon de git https://github.com/jacksonliam/mjpg-streamer.git en una carpeta, luego escriba sudo apt-get install cmake libjpeg8-dev para instalar las bibliotecas necesarias. Cambie su directorio a la carpeta que descargó y luego escriba make seguido de sudo make install para compilar el software. Finalmente ingrese export LD_LIBRARY_PATH =. y para ejecutarlo, escriba./mjpg_streamer -o "output_http.so -w./www" -i "input_raspicam.so" Puede acceder a la transmisión dirigiéndose a https://: 8080 / stream.html para ver la transmisión.

Paso 5: controlador

Controlador
Controlador
Controlador
Controlador

Luego vino la parte de cómo controlar una Raspberry Pi a través de WiFi, porque Bluetooth tiene muy poco alcance. Decidí usar un servidor Flask que se ejecuta en Raspberry PI y un módulo ESP8266 ESP12E para enviarle datos. El ESP8266 solo tiene una entrada analógica, lo que significa que no podría usar el joystick directamente, ya que necesita dos entradas analógicas. La mejor opción fue el ADS1115, que es un dispositivo I2C que lee señales analógicas a 16 bits de resolución. Simplemente conecté SDA a 4 y SCL a 5, junto con VCC y GND. El eje X del joystick se conecta a A0 en el ADS1115 y el eje Y se conecta a A1. PERO, accidentalmente quemé el ADS1115, así que tuve que recurrir a la siguiente mejor opción: ¡botones! Así que ahora mi configuración es una placa de desarrollo ESP8266 Sparkfun Thing con 3 botones: adelante, derecha e izquierda. Ahora, cada vez que se presiona uno, envía datos para girar las ruedas en esa dirección.

Paso 6: el código del robot

El código del robot
El código del robot

Hice un proyecto anterior que utilizaba la biblioteca GPIO PWM de Pi para controlar motores a través de json, así que simplemente rediseñé el código para aceptar datos a través de una aplicación Flask. Flask es una biblioteca de Python que esencialmente convierte su Pi en un servidor web capaz de enviar y recibir datos. Al usar PWM, los motores se pueden controlar con mayor precisión en comparación con el accionamiento por tanque. Esto también significa que el robot puede ir a velocidades variables en lugar de fijas. Mi aplicación de matraz está configurada para cambiar el PWM de los motores una vez que recibe datos de una solicitud GET a través de http del ESP12e. También utiliza la biblioteca subprocess. Popen para ejecutar el script de transmisión web en segundo plano. He adjuntado el código a la página del proyecto, por lo que todo lo que se necesita es una descarga.

Paso 7: Código del controlador

El código era bastante simple, simplemente tome lecturas de los 3 pines, ejecútelas a través de algunas declaraciones if para determinar la dirección de la rueda y finalmente envíe esos valores a la Raspberry Pi. La adición de la placa ESP8266 para Arduino IDE viene con la biblioteca HTTPClient, que maneja los encabezados y envía datos. El servidor Flask necesita recibir datos a través de una llamada POST, por lo que el código inicia una conexión con el servidor web Raspberry Pi, luego agrega un encabezado a los datos que indica que están codificados en JSON y, finalmente, envía los datos en forma de un objeto JSON.. Agregué un retraso de 40 ms para evitar que la Raspberry Pi se sobrecargue con datos.

Paso 8: Ejecución de Raspberry SPy

Ejecutando el Raspberry SPy
Ejecutando el Raspberry SPy
Ejecutando el Raspberry SPy
Ejecutando el Raspberry SPy

¡Todo lo que se requiere es escribir sudo python.py! Debería ver que la cámara se ilumina y, al ir a la dirección web del pi con el puerto 8080, la transmisión debería ser visible. Ahora puede usar el controlador en cualquier lugar de la casa y también tener una transmisión en vivo.

Recomendado: