Introduction: Robot Controlado Por Wifi Con Detector De Intensidad De Señal

Este es un Robot controlado desde una computadora, ambos conectados a una misma red local vía Wifi, cuyo propósito es que él mismo pueda detectar la intensidad de la red en un lugar determinado, emitiendo un sonido lento en caso de que la intensidad de la red Wifi sea estable, o en su defecto emitirá un sonido cada vez mas rápido conforme la señal sea mas débil. Esto con la idea de poder ubicar los puntos en los que la red sea inestable y allí colocar un repetidor de la señal para fortalecer la misma.

Componentes necesarios para este proyecto:

  • 1x Raspberry Pi con una SD con Raspbian
  • 1x Protoboard
  • 1x Circuito integrado L293 o SN755410 para controlar los motores (en este Instructable vamos a usar el L293)
  • Cables ( jumpers ) de distintos tamaños para las conexiones
  • 2x motores DC de 9 voltios.
  • 1x batería de 9 voltios recargable y su conector (para los motores)
  • 1x batería de 5 voltios y 2 amperios (para el Raspberry Pi), funcionan muy bien los bancos de poder para celulares de 2 amperios
  • 1x Adaptador para wifi por usb
  • 1x Parlante pequeño recargable con conector macho de 3.5mm
  • 1x GPIO-Breadboard Interface con su GPIO Ribbon Cable
  • 1x Chasis para robots o mucho Lego ( en este Instructable usaremos Lego para crear el robot)

A continuación, la explicación...

Step 1: Armar El Chasis Del Robot

Para este proyecto se utilizó partes de Lego para construir el chasis del Robot.
En este paso puedes utilizar tu creatividad para armarlo a tu gusto.

*O bien, si no puedes conseguir las partes de Lego, puedes conseguir el chasis listo y seguir la instrucciones

Step 2: Conexiones

Ensamblando el circuito

Para estas conexiones nos basamos en el siguiente tutorial: Conexiones para Motores DC

- Agregar la alimentación y la tierra

Es importante hacer esto mientras el Raspberry Pi está apagado o desconectado, para evitar errores por un cortocircuito.

Lo primero que hay que hacer es conectar los cables de alimentación y tierra. Como se acostumbra por lo general todas las conexiones recibirá una tierra en común. Esto se muestra con los cables negros. (Ver figura 1)

La tierra en el Raspberry Pi esta fisicamente en Pin 6.
La lectura de los números del pin en el Circuito Integrado se hace fácilmente por tener el punto a la izquierda y luego a partir de la parte inferior izquierda nos da el Pin 1.

Agregar los cables de datos
- Agregue tres cables de los pines GPIO al L293D

  • GPIO 25–Pin 22 > L293D–Pin 1
  • GPIO 24–Pin 18 > L293D–Pin 2
  • GPIO 23–Pin 16 > L293D–Pin 7

Agregue el motor

Motor–wire 1 > L293D–pin 3

Motor–wire 2 > L293D–pin 6

Nota:

Es muy importante que usted revise muy bien todas las conexiones antes de poner las baterías. Una vez revisado, coloque los cables de la bateria a la alimentación de la placa.


Agregue el segundo motor

Una de las grandes características del L293D es que puede manejar dos motores de forma independiente y cada motor puede funcionar a diferentes velocidades y/o direcciones. El uso de este circuito integrado hace que sea posible crear un robot de dos ruedas siendo capaz de ir hacia adelante o hacia atrás fácilmente.

- Agregar un segundo motor implica colocar solamente tres cables más y el motor:

  • GPIO 11–Pin 23 > L293D–Pin 9
  • GPIO 9–Pin 21 > L293D–Pin 10
  • GPIO 10–Pin 19 > L293D–Pin 15

Una vez que ha realizado todas las conexiones deberá colocar su Raspberry Pi, la protoboard con las conexiones y las baterías sobre el chasis del Robot. Lo mejor será colocar los motores y las baterías antes de realizar las conexiones.

Step 3: Código Fuente

Instalación del Programa

Para poder ejecutar el programa para controlar el robot debe descargar la carpeta comprimida adjunta.

En ella se encuentran dos carpetas: la carpeta Cliente que debe guardarla en su computadora con sistema operativo Linux, y la carpeta Servidor que debe guardarla en el Raspberry Pi.

Instalación del Servidor Llamaremos Servidor al programa que estará en el Raspberry Pi esperando una conexión para empezar a ejecutar comandos. Guardamos la carpeta Servidor en nuestro Raspberry Pi. Para instalar el Servidor en el Raspberry Pi primero tenemos que instalar algunas librerías con los siguientes comandos:

Comandos:

- Actualizar administrador de paquetes

sudo apt-get update

sudo apt-get upgrade

- Instalar Compilador de C

sudo apt-get install gcc

- Instalar WiringPi:

sudo apt-get install git-core

git clone git://git.drogon.net/wiringPi

cd wiringPi

git pull origin

./build

- Instalar vlc:

sudo apt-get install vlc libvlccore-dev libvlc-dev

Una vez terminados las instalaciones nos dirigimos por medio de una terminal a la carpeta Servidor. Ahi encontrara diferentes archivos.

Simplemente ejecutaremos el siguiente comando:

make

Se generará un ejecutable llamado server


Instalación del cliente

El cliente es el programa que vamos a ejecutar en nuestra computadora para poder controlar el robot remotamente. Esta computadora deberá tener sistema operativo Linux.

Antes de instalarlo asegúrese de tener instalado el compilador de C con el siguiente comando:

sudo apt-get update

sudo apt-get install gcc

Luego nos dirigimos a la carpeta Cliente por medio de la terminal y simplemente ejecutaremos el siguiente comando:

make

Se generará un ejecutable llamado client


Nota:

Todo el código necesario se encuentra en la capeta comprimida adjunta

Step 4: Ejecución

Ejecución

Para hacer que nuestro robot funcione primero debemos conectar nuestra computadora y el Raspberry Pi a la misma red inalámbrica.

Cuando estamos seguros de esto, ejecutamos en nuestro Raspberry Pi el siguiente comando:

ifconfig

Se desplegará diferente información. Buscamos la sección que empieza con “wlan0”. Ahí buscaremos la dirección IP del Raspberry Pi. Buscamos donde dice “inet addr:”, el siguiente número es la dirección IP. Ejemplo: “192.168.2.33”. Apuntamos esta dirección en un papel. Luego nos dirigimos a la carpeta Server por medio de la consola, donde tenemos nuestro programa “server” que creamos en el paso anterior. Ejecutamos el programa con el siguiente comando:

sudo ./server

Se mostrará en la terminal información de que el Servidor está esperando conexiones. Esto significa que nuestro Raspberry Pi Está listo! Lo desconectamos del monitor, teclado y mouse y ponemos el robot en el suelo.

Ahora vamos con la parte del Cliente. Nos dirigimos a la carpeta Cliente donde anteriormente generamos nuestro programa “cliente”. Para ejecutamos el programa tenemos que tener a mano la dirección IP del Raspberry Pi, ya que debemos especificarle al cliente cual es la dirección del Servidor. Esto lo haremos con el siguiente comando:

sudo ./client -a 192.168.2.33

Donde “192.168.2.33” es la direccion IP del Raspberry Pi.

Si todo sale bien se nos indicará que la conexión fue exitosa, por lo que podemos proceder a controlar el robot. Primero estiramos la tecla “s” para iniciar la transmisión. Y Listo!!! Con “w” nuestro robot irá hacia adelante, con “a” haca la izquierda, con “d” hacia la derecha y con “s” ira en reversa. Para terminar la transmisión presionamos “Esc” y para salir del cliente presionamos “q”. Para terminar el Servidor también presionamos “q”.