Proyectos!

Robot Espía

Tiempo de desarrollo: 3 Horas
Juguetes | 2017

¿Quieres sentirte como un científico de la NASA y manejar un robot explorador? ¿Te gustaría espiar cada rincón de tu casa sin salir de tu cuarto? En este proyecto te enseñaremos a fabricar un robot que puedes controlar gracias a una cámara en su interior.

Descripción:


Este proyecto utiliza una Raspberry Pi 3 para controlar los motores que mueven las llantas de un carro. La Raspberry Pi se comunica con tu computador, celular o Tablet a través de internet para que puedas manejarlo y ver por una cámara frontal que tiene el carro. Puedes manejarlo por toda la casa, y sin necesidad de estar cerca. Solo necesitas estar siempre conectado a la red.


Ingredientes:


- Puedes adquirir el kit completo que llegará a la puerta de tu casa:

  • 1 x kit Robot espía

  • - O puedes adquirir cada uno de los componentes, que llegarán a la puerta de tu casa:

  • 1 x Cable HDMI
  • 1 x Raspberry Pi 3
  • 1 x Tarjeta SD de 8 GB
  • 1 x Cámara de Raspberry
  • 1 x Power Bank
  • 1 x Paquete de jumpers hembra-hembra
  • 1 x Controlador de motores, chasís, llantas con motores

  • Herramientas:


  • Televisor o monitor con entrada HDMI
  • Computador con puerto USB y tarjeta SD
  • Teclado USB de computador
  • Cinta doble faz

  • Prepara tu Smoothie:


    1

    Consideraciones de seguridad


    Recuerda leer las consideraciones de seguridad antes de empezar cualquier proyecto: (leer)

    2

    Poner el sistema operativo en la Raspberry Pi


    Antes de empezar, pon a cargar el power bank que viene en tu kit, pues lo necesitarás en los siguientes pasos. Para poder configurar la Raspberry Pi que controlará tu carro, es necesario que cargues un sistema operativo en la misma. Para ello, es necesario que realices una imagen del sistema operativo Raspbian Jessie Lite en la tarjeta SD. Si no sabes cómo hacerlo, puedes consultar nuestro tutorial de instalación de Raspbian en el siguiente link. Si sigues el tutorial, ten en cuenta que debes descargar Raspbian Jessie Lite en lugar de Raspbian Jessie with pixel en el paso de “Descargar el sistema operativo”.

    Una vez hayas realizado la imagen del sistema operativo en la tarjeta SD, debes insertarla en el puerto disponible de la Raspberry Pi como se muestra en la siguiente imagen:


    3

    Conexión de los elementos


    Tu kit del carro a control remoto ya viene con el controlador de motores conectado a los motores del carro. Conecta el controlador de motores con la tarjeta Raspberry Pi como se muestra en la siguiente imagen. Ten en cuenta que los colores de los cables son solo un ejemplo. Puedes hacer las conexiones con los colores que desees. Los cables jumpers vienen unidos en grupos de 10, pero puedes separarlos entre ellos para que la conexión sea más sencilla. No te asustes si te sobran cables jumpers, ya que algunas veces se incluyen repuestos.


    Revisa que las conexiones entre el controlador de motores y la tarjeta Raspberry Pi sean las correctas. Utiliza los puertos indicados en la imagen para conectar el teclado, el cable HDMI y la cámara. Haz la conexión de la cámara a la Raspberry Pi como se muestra en el siguiente video, pero antes levanta los agarres plásticos de la "conexión cámara" para luego bajarlos y ajustar la cinta:

    Conecta el cable HDMI a la pantalla del televisor y enciende el televisor. Por último, conecta el power bank a tu tarjeta Raspberry Pi.

    4

    Conectar la tarjeta Raspberry Pi 3 a la red Wifi


    Una vez conectas el power bank a la tarjeta Raspberry Pi, ésta se encenderá automáticamente y aparecerá algo similar a lo que se muestra en la siguiente imagen. Deberás ingresar un login y contraseña para poder acceder a tu tarjeta Raspberry Pi. Por defecto, el login que debes ingresar es “pi” y la contraseña “raspberry”.


    Ingresa el usuario y presiona enter. Al ingresar la contraseña, no verás letras o caracteres aparecer en la pantalla. ¡No te preocupes! Ingresa la contraseña y presiona enter. Si ingresaste a la tarjeta Raspberry Pi, deberá aparecer un mensaje similar al siguiente al final de la pantalla:


    Una vez ingresas a la tarjeta Raspberry Pi, es necesario que configures el archivo que te permitirá conectarte a tu red Wifi. Asegúrate de saber el nombre y la contraseña de tu red pues deberás escribirlas en el archivo. Escribe la línea "sudo nano /etc/wpa_supplicant/wpa_supplicant.conf" como se muestra en la siguiente imagen y presiona la tecla enter (NOTA: si es la primera vez que prendes tu Raspberry Pi, la imagen de abajo va a tener pi@raspberry en lugar de pi@raspsmoothie).

    pi@raspsmoothie:~ $ sudo nano /etc/wpa_supplicant/wpa_supplicant.conf

    En la pantalla que aparece, deberás escribir los datos de la red a la que deseas conectarte. Utiliza las flechas de tu teclado para ubicarte debajo del texto que ya se encuentra escrito y escribe lo que se muestra en el rectángulo rojo de la siguiente imagen. Ten en cuenta que debes escribir el nombre y la contraseña de tu red cuidando incluir las mayúsculas y minúsculas que correspondan.


    Una vez los hayas escrito, presiona las teclas “Ctrl” y “X” en simultánea. Deberá aparecer el siguiente mensaje en la parte inferior de la pantalla:


    Presiona la tecla "Y" seguido de la tecla "enter" para guardar los cambios en el archivo de configuración. Para que tu tarjeta Raspberry Pi se conecte de forma automática con la red Wifi, es necesario reiniciar la tarjeta. Para esto, escribe la línea “sudo reboot” como se muestra en la siguiente imagen, y presiona la tecla enter.

    pi@raspsmoothie:~ $ sudo reboot

    Cada vez que reinicies la tarjeta Raspberry Pi es necesario que vuelvas a ingresar el usuario y la contraseña para poder ingresar a la misma. El usuario que debes utilizar es “pi” y la contraseña “raspberry”. Además, recuerda que, mientras escribes la contraseña, no verás caracteres aparecer en tu pantalla.

    Para verificar que tu tarjeta Raspberry Pi se conectó correctamente a tu red Wi-Fi, escribe la linea "ping 8.8.8.8" y presiona enter como se muestra a continuación:

    pi@raspsmoothie:~ $ ping 8.8.8.8

    Si todo quedó bien, te debe salir algo similar a lo siguiente: (los tiempos que aparecen en "time=" pueden ser distintos)

    PING 8.8.8.8 (8.8.8.8) 56(84) bytes of data.
    64 bytes from 8.8.8.8: icmp_seq=1 ttl=59 time=8.99 ms
    64 bytes from 8.8.8.8: icmp_seq=2 ttl=59 time=4.93 ms
    64 bytes from 8.8.8.8: icmp_seq=3 ttl=59 time=5.56 ms
    64 bytes from 8.8.8.8: icmp_seq=4 ttl=59 time=17.9 ms
    64 bytes from 8.8.8.8: icmp_seq=5 ttl=59 time=5.77 ms
    64 bytes from 8.8.8.8: icmp_seq=6 ttl=59 time=5.22 ms
    64 bytes from 8.8.8.8: icmp_seq=7 ttl=59 time=162 ms
    64 bytes from 8.8.8.8: icmp_seq=8 ttl=59 time=58.9 ms

    De ser así, presiona las teclas "CTRL+C" para terminar el proceso y sigue con el siguiente paso. De lo contrario, repite este paso desde el principio, pero revisa muy bien el nombre y contraseña que introdujiste en el archivo de configuración.

    5

    Configuración de la tarjeta y actualización del sistema operativo


    Antes de configurar la cámara y el control de los motores, es importante terminar las configuraciones de la tarjeta Raspberry Pi. Para esto, escribe la línea “sudo raspi-config” como se muestra en la siguiente imagen y presiona la tecla enter.

    pi@raspsmoothie:~ $ sudo raspi-config

    Al escribir esto, se abrirá la pantalla de configuraciones de tu tarjeta Raspberry Pi. Utilizando las flechas de tu teclado, selecciona la segunda opción que aparece en la lista haciendo uso de las teclas del teclado y presiona la tecla enter dos veces. La opción que debes seleccionar se muestra en la siguiente imagen:


    Después de presionar "enter" dos veces, aparecerá la pantalla que se muestra en la siguiente imagen. Borra el nombre que aparece por defecto y escribe “raspsmoothie” en su lugar. Una vez hayas terminado, ubícate sobre el “Ok” y presiona "enter".


    En el menú principal de configuraciones, ubícate sobre la opción “Finish” en la parte inferior a la derecha de la pantalla y presiona la tecla enter. Antes de salir del menú, aparecerá una pantalla como la que se muestra en la siguiente imagen. Ubícate sobre la palabra “Yes” y presiona la tecla enter.


    Recuerda que después de reiniciar deberás ingresar el usuario y contraseña de tu Raspberry Pi (usuario: pi, contraseña: raspberry).

    6

    Habilitar la cámara


    Antes de configurar la cámara, es necesario actualizar los archivos de los repositorios del sistema operativo de tu Raspberry Pi (algo similar a una lista de ubicaciones de dónde bajar programas). Para ello, escribe la línea “sudo apt update” como se muestra en la siguiente imagen y presiona la tecla enter. Sabrás que la actualización ha terminado cuando vuelvan a aparecer las letras “pi@raspsmoothie” en la parte inferior de la pantalla.

    pi@raspsmoothie:~ $ sudo apt update

    Para realizar un correcto control de la cámara desde tu Raspberry Pi, es necesario cambiar alguna de las configuraciones. Para esto, ingresa al menú de configuraciones escribiendo la línea “sudo raspi-config” como hiciste anteriormente y presiona la tecla enter.

    pi@raspsmoothie:~ $ sudo raspi-config

    En el menú de configuraciones, selecciona la quinta opción que aparece en la lista utilizando las flechas del teclado y presiona la tecla enter. La opción que debes seleccionar se muestra en la siguiente imagen:


    En el menú que aparece, debes habilitar tanto la cámara como la comunicación SSH. Para ello, selecciona primero la primera opción, la cual te permitirá habilitar la cámara, como se muestra en la siguiente imagen y presiona la tecla enter.


    Aparecerá la pantalla que se muestra en la siguiente imagen. Ubícate sobre la pablara “Yes” y presiona la tecla enter dos veces.


    Cuando regreses al menú de configuraciones, vuelve a seleccionar la quinta opción (“Interfacing options”). Esta vez, selecciona la opción para habilitar la comunicación SSH como se muestra en la siguiente imagen, y presiona la tecla enter.


    Aparecerá la misma pantalla que anteriormente. Ubícate sobre la palabra “Yes” y presiona la tecla enter dos veces nuevamente. Ahora hace falta realizar una última configuración dentro de la Raspberry Pi antes de poder instalar los archivos necesarios para controlar tu carro. Cuando hiciste la imagen del sistema operativo en la memoria SD, el espacio total es limitado. Por esta razón, es necesario expandir la memoria para que puedas contar con más espacio. En el menú principal de configuraciones ubícate en la opción número siete como se muestra en la siguiente imagen y presiona la tecla enter.


    En el menú que aparece, selecciona la primera opción para expandir la memoria como se muestra en la siguiente imagen. Presiona la tecla enter dos veces.


    Al regresar al menú principal de configuraciones, utiliza las flechas de tu teclado para ubicarte sobre la palabra “Finish” en la parte inferior derecha de la pantalla, y presiona la tecla enter. Antes de salir del menú, aparecerá una pantalla como la que se muestra en la siguiente imagen. Ubícate sobre la palabra “Yes” y presiona la tecla enter.


    Esto reiniciará tu Raspberry Pi para que todos los cambios se implementen. Recuerda que después de reiniciar deberás ingresar el usuario y contraseña para acceder a la tarjeta (usuario: pi, contraseña: raspberry).

    7

    Configuración para la transmisión de video


    Tu carro a control remoto funcionará a través de una página web que puedes abrir en tu computador, celular o tablet. Desde ésta, podrás ver a través de la cámara del carro al igual que podrás indicarle al carro en qué dirección debe ir. Para poder realizar la comunicación entre la página web y el carro, es necesario que instales un servidor web en tu Raspberry Pi.

    Escribe la línea “sudo apt install lighttpd” como se muestra en la siguiente imagen y presiona la tecla enter.

    pi@raspsmoothie:~ $ sudo apt install lighttpd

    Es posible que aparezca un mensaje de confirmación en la pantalla. De ser así, presiona la tecla "enter" y espera a que se termine la instalación.

    Una vez termine la instalación, escribe la línea “sudo apt install nodejs node-express node-ws” como se muestra en la siguiente imagen y presiona la tecla enter.

    pi@raspsmoothie:~ $ sudo apt install nodejs node-express node-ws

    Es posible que aparezca un mensaje de confirmación en la pantalla. De ser así, presiona la tecla "enter" y espera a que se termine la instalación.

    Una vez haya terminado la instalación, es necesario instalar una aplicación que te permita acceder a los códigos de programación que han desarrollado otras personas. Para esto, escribe la línea “sudo apt install git” como se muestra en la siguiente imagen y presiona la tecla enter.

    pi@raspsmoothie:~ $ sudo apt install git

    Es posible que aparezca un mensaje de confirmación en la pantalla. De ser así, presiona la tecla "enter" y espera a que se termine la instalación.

    Con git instalado, es posible descargar el código que te permitirá hacer la trasmisión de video entre la cámara de tu carro y la página web desde la cual lo controlarás. Escribe la línea “git clone https://github.com/phoboslab/jsmpeg.git” como se muestra en la siguiente imagen y presiona la tecla enter.

    pi@raspsmoothie:~ $ git clone https://github.com/phoboslab/jsmpeg.git

    Para poder hacer la transmisión de video, es necesario también hacer la codificación del mismo. Para eso, escribe la línea “wget https://smoothie.com.co/downloads/ffmpeg_3.1.1-1_armhf.deb” como se muestra en la siguiente imagen y presiona la tecla enter.

    pi@raspsmoothie:~ $ wget https://smoothie.com.co/downloads/ffmpeg_3.1.1-1_armhf.deb

    Una vez se haya terminado la instalación, escribe la línea “sudo dpkg -i ffmpeg_3.1.1-1_armhf.deb” como se muestra en la siguiente imagen y presiona la tecla enter.

    pi@raspsmoothie:~ $ sudo dpkg -i ffmpeg_3.1.1-1_armhf.deb

    Por último, escribe la línea “sudo apt install libav-tools” como se muestra en la siguiente imagen y presiona la tecla enter.

    pi@raspsmoothie:~ $ sudo apt install libav-tools

    Es posible que aparezca un mensaje de confirmación en la pantalla. De ser así, presiona la tecla "enter" y espera a que se termine la instalación.

    Finalmente, para que la transmisión de video funcione automáticamente cuando prendas el carro, es necesario agregar una instrucción dentro del archivo que se ejecuta cada vez que se inicia la Raspberry Pi. Para eso, escribe la línea “sudo nano /etc/modules” como se muestra en la siguiente imagen y presiona la tecla enter.

    pi@raspsmoothie:~ $ sudo nano /etc/modules

    En la pantalla que aparece, agrega la línea “bcm2835-v4l2” (Nota: entre el 4 y el 2 hay una letra “L” minúscula y no el número 1) como se muestra en la siguiente imagen:


    Una vez los hayas escrito, presiona las teclas “Ctrl” y “X” en simultánea. Deberá aparecer el siguiente mensaje en la parte inferior de la pantalla:


    Presiona la tecla "Y" seguida de la tecla "enter" para guardar los cambios en el archivo.

    8

    Configuración del control del carro


    Para poder controlar tu carro, es necesario habilitar la comunicación entre la Raspberry Pi y el controlador de motores. Para esto, escribe la línea “sudo apt install raspi-gpio” como se muestra en la siguiente imagen y presiona la tecla enter.

    pi@raspsmoothie:~ $ sudo apt install raspi-gpio

    Ahora, es necesario que instales los archivos que decidirán cómo deberían moverse los motores de tu carro de acuerdo a los botones que presiones en la página web. Para esto, escribe la línea “wget https://smoothie.com.co/downloads/scriptsControlRemoto.tar.gz” como se muestra en la siguiente imagen y presiona la tecla enter.

    pi@raspsmoothie:~ $ wget https://smoothie.com.co/downloads/scriptsControlRemoto.tar.gz

    Una vez haya terminado la descarga, escribe la línea “wget https://smoothie.com.co/downloads/webControlRemoto.tar.gz” como se muestra en la siguiente imagen y presiona la tecla enter.

    pi@raspsmoothie:~ $ wget https://smoothie.com.co/downloads/webControlRemoto.tar.gz

    Una vez descargados ambos archivos, es necesario descomprimirlo. Para esto escribe la línea “tar xvzf scriptsControlRemoto.tar.gz” como se muestra en la siguiente imagen y presiona la tecla enter.

    pi@raspsmoothie:~ $ tar xvzf scriptsControlRemoto.tar.gz

    De forma similar, escribe la línea “sudo tar xvzf webControlRemoto.tar.gz -C /var/www/html/” como se muestra en la siguiente imagen y presiona la tecla enter.

    pi@raspsmoothie:~ $ sudo tar xvzf webControlRemoto.tar.gz -C /var/www/html/

    Para que la velocidad de tu carro dependa de cuanto inclinas tu celular o Tablet, es necesario modificar uno de los archivos de configuración. Escribe la línea “sudo nano /boot/config.txt” como se muestra en la siguiente imagen y presiona la tecla enter.

    pi@raspsmoothie:~ $ sudo nano /boot/config.txt

    En el archivo que aparece, utiliza la flecha hacia abajo del teclado para moverte hasta el final del archivo. Deberás encontrar el siguiente texto:


    Ubica la línea que dice “dtparam=audio=on” y escribe un “#” al inicio de la línea como se muestra en la siguiente imagen. Esto deshabilita la tarjeta de audio de la Raspberry Pi para poder usar los puertos de pwm para el control de los motores del carro. Además, al final del archivo, escribe la línea “dtoverlay=pwm-2chan,pin=12,func=4,pin2=13,func2=4” como se muestra en la siguiente imagen:


    Una vez los hayas escrito, presiona las teclas “Ctrl” y “X” en simultánea. Deberá aparecer el siguiente mensaje en la parte inferior de la pantalla:


    Presiona la tecla "Y" seguida de la tecla "enter" para guardar los cambios en el archivo. Por último, es necesario que los archivos que reciben los comandos para mover tu carro se inicien automáticamente cuando prendes la Raspberry Pi. Para eso, escribe la línea “sudo nano /etc/rc.local” como se muestra en la siguiente imagen y presiona la tecla enter.

    pi@raspsmoothie:~ $ sudo nano /etc/rc.local

    En la pantalla que aparece, agrega la línea “/bin/bash /home/pi/script_carrito.sh” antes de la línea que dice “exit 0” como se muestra en la siguiente imagen:


    Una vez los hayas escrito, presiona las teclas “Ctrl” y “X” en simultánea. Deberá aparecer el siguiente mensaje en la parte inferior de la pantalla:


    Presiona la tecla "Y" seguida de la tecla "enter" para guardar los cambios en el archivo. Para aplicar los cambios, es necesario que vuelvas a reiniciar la tarjeta. Escribe la línea “sudo reboot” como has hecho anteriormente y presiona la tecla enter. Recuerda que después de reiniciar deberás ingresar el usuario y contraseña de tu Raspberry Pi (usuario: pi, contraseña: raspberry).

    9

    Prueba tu robot


    Desconecta tu Raspberry Pi del powerbank, el cable HDMI y el teclado. Ubica la Raspberry Pi y el powerbank sobre la carcasa de acrílico en la que viene el controlador de motores y adhiérelos haciendo uso de un poco de cinta doble faz. Utiliza el agujero que se encuentra en el frente de tu carro para poner la cámara como se muestra en la siguiente imagen:


    Por último, conecta la Raspberry Pi al powerbank para que se prenda. Para poder conectarte al carro a través de internet, es necesario conocer la dirección IP de tu Raspberry Pi. Para eso, ingresa al siguiente link (http://angryip.org/download/#windows) y haz click en “32-bit Executable” como se muestra en la siguiente imagen:


    Selecciona la opción de “Guardar Archivo” y guarda el ejecutable en la carpeta que desees. Abre la carpeta donde guardaste el programa y haz doble click sobre el archivo para ejecutarlo. Deberá aparecer una pantalla similar a la de la siguiente imagen:


    Presiona el botón que dice “Close” para cerrar esa ventana. Asegúrate de que tu computador se encuentra conectado a la misma red Wifi a la que conectaste tu Raspberry Pi. En la ventana que aparece, haz click en el botón que dice “Start” como se muestra en la siguiente imagen:


    Sabrás que el proceso ha terminado cuando aparezca la ventana que se muestra en la siguiente imagen. Haz click en el botón que dice “Close” para cerrarla.


    En la ventana que aparece, busca la línea en la que aparece “raspsmoothie” en la tercera columna como se muestra en la siguiente imagen. Anota el número que corresponde a la IP de esa fila. Este será el número que utilizaremos para acceder al control del carro.


    En tu computador, celular o Tablet, abre una ventana en tu explorador de internet favorito. Escribe el número que anotaste en la barra de direcciones y presiona enter. Verifica que la página se vea similar a la siguiente imagen:


    En el rectángulo negro, deberás ver lo que ve la cámara de tu carro. Pon tu carro sobre una superficie plana y prueba que los botones de la página funcionen correctamente. Si estás usando un celular o Tablet, los botones no aparecen en la página web, pero puedes mover el carro cambiando la inclinación de tu dispositivo. Si todo funciona bien, ¡estás listo para jugar con tu carro! De lo contrario, revisa nuestra sección de preguntas frecuentes o contacta a nuestro servicio técnico con tu número de orden y te ayudaremos con tu problema.

    Preguntas Frecuentes:
    Cometí un error en alguna configuración diferente y ahora no sé qué hacer:

    Para evitar problemas en el futuro, te recomendamos iniciar el proceso nuevamente desde que haces la imagen de Jessie en la tarjeta SD. Desconecta la Raspberry Pi del Power Bank y retira la tarjeta SD. Conecta la tarjeta SD a tu computador y borra todo su contenido. Repite el proceso para cargar la imagen de Jessie en tu tarjeta y sigue los pasos nuevamente.

    ¡Disfruta con el robot explorador que acabas de crear!