Ichabot

From Asociación de Robótica UC3M
Jump to: navigation, search

IchabotMix.png

El Ichabot es un robot minimalista (miniservos, dos ruedas + apoyo trasero) que usa Wifi con Arduino FIO. Fue parte del desarrollo del PFC de Jorge Kazacos (ENLACE al PFC), donde podéis encontrar toda la información del proyecto, en el cual también hay desarrollo Android/Java.

Resumen

Se parte de la idea de hacer un robot susceptible de ser manipulado desde Android. Para ello se va a utilizar una placa Arduino FIO, por varias razones:

  1. Dimensiones reducidas
  2. Integra la posibilidad de acoplar un modulo XBee (comunicacion wifi y Bluetooth).
  3. Puede ser alimentado por una batería, y dispone de un puerto mini-USB para cargarla.

El robot cuenta con tres puntos de apoyo: Dos ruedas y un tercero trasero formado por una canica que sirve de pivote.

Para el movimiento de las ruedas se van a utilizar dos servos TowerPro sg90.

Todas las piezas se ensamblan en torno a los servos, que sirven de nucleo del robot. Todas ellas son imprimibles y se montan por medio de tornillos de metrica 2 sin necesidad de tuercas.

Software en Repo

https://svn.code.sf.net/p/asrob/svn/ecro/software/fio/
https://svn.code.sf.net/p/asrob/svn/ecro/software/contrib/misc/java/
https://svn.code.sf.net/p/asrob/svn/ecro/software/android/

Diseño

El diseño es minimalista, dado que este robot se trata de un modelo prototipo centrado en la funcionalidad, creado para servir como modelo de trabajo en el proyecto Robot Devastation. El robot montado permite la conexión y desconexión de la bateróa y módulos de comunicacion (cable FTDI y XBee), por lo tanto no seria necesario desmontar ninguna pieza para realizar cambios en el software.

La tarjeta FIO se monta por presión en unos slots dedicados a tal fin ya que no dispone de otro método de sujeción.

A continuación se muestran los códigos para OpenSCAD de las distintas piezas que componen el robot:

Nota: Para un diseño mas simple que no utilice canica se recomienda este modelo. El modelo con canica requiere limar algunas partes, por lo tanto ese otro modelo requiere menos trabajo, y tiene menos piezas.

  • Scad
Modelo abierto
Modelo Ensamblado
Parámetros Lista de parámetros para todas las piezas.
Abierto Todas las partes separadas para mejor visualizacion.
Batería Modelo de la batería a usar.
Arduino FIO Modelo de Arduino FIO.
Parte trasera La parte trasera contiene, ademas, el acople necesario para la FIO.
Acople la FIO va insertada en estos brazos.
Parte delantera
Rueda
Servo Modelo del servo TowerPro SG90.
Soporte bola superior Soporte superior para la bola en la que se apoya el robot.
Soporte bola inferior Idem para inferior.
Ensamblado Todas las partes unidas y ensambladas, como seria el robot ensamblado.



En diferentes tonos de gris se observan los dos servos y debajo la batería que ira adherida mediante velcro. En amarillo, las partes trasera y delantera que mantienen juntos los servos. En azul claro, el soporte para la canica, y en azul oscuro la FIO. Se muestra una sola rueda por motivos de visualización.





Hardware

Como ya se ha mencionado antes, se usa como hardware principal la tarjeta arduino FIO y como módulo de comunicaciones una tarjeta Wifly RN-XV.

ARDUINO

La tarjeta FIO consta de un microprocesador ATmega328P de 8 bits. La tarjeta proporciona 3,3V y tiene 14 pines I/O digitales (de los cuales 8 pueden servir como PWM) y 8 entradas analógicas. Es posible programarla usando un cable FTDI 3,3V o inalámbricamente mediante el XBEE. En la imagen de la derecha se observa la la colocación del cable en la tarjeta.
Nota: no es posible comunicarse con la tarjeta mediante un cable FTDI 5V, el IDE mostrara un error al intentar subir el sketch a la tarjeta.

conexion FTDI


  • Links de interes
[Esquematico]
[Pagina principal]
[Programar la tarjeta]
[Mas informacion sobre FIO] Pagina de Funnel.




WiFly RN171XV

Este módulo incorpora la tarjeta RN 171 de Roving Networks adaptada a proyectos que precisen migrar desde una configuración 802.15.4 (Radio) a un sistema de transmisión de datos TCP/IP. La diferencia entre esta tarjeta y la RN 171 es simplemente que esta dispone de una configuración de pines idéntica a la que usa DIGI con sus XBEE, usando el mismo socket.

WiFly 171 RN XV

También se le conoce como WiFly y es de gran utilidad por su gran versatilidad: Tiene capacidad para conexiones AdHoc (sin punto de acceso), para mantener una conexión con otros dispositivos, así como para conectarse mediante un punto de acceso (AP, "access point"), por ejemplo un router.

Se ha querido escribir un tutorial para empezar a trabajar con ella y poder configurarla disponiendo del minimo material posible. Es posiible comandarla desde un modulo USB especialmente diseñado para tal fin, pero se ha optado por una configuracion minimalista.


  • Links de interes
[Pagina web del modulo]
[Datasheet]
[Manual de usuario]. Este manual se encuentra en otra pagina.

El datasheet nos proporciona la información de hardware, pines y el significado del código de parpadeo de los 3 LED. En el manual de usuario se encuentran todas las instrucciones de configuración y algunos ejemplos (AdHoc, HTML, FTP, etc).

Presupuesto

Teniendo en cuenta un IVA del 21% el presupuesto para construir el Icha-bot a día de hoy se detalla a continuación:

  • Batería LiPo 850 mAh = 7.90 * 1.21 = 9.569 EUR
  • Arduino FIO = 19.90 * 1.21 = 24.079 EUR
  • WiFly = 29.157 * 1.21 = 35.28 EUR
  • Gastos envío tourline express España = 7.96 * 1.21 = 9.6316 EUR
Subtotal bricogeek/epulse = 64.917 * 1.21 = 78.55 EUR
  • sg90-mini-servo = 3 * 2uds = 6 EUR
Subtotal Deal Extreme = 6 EUR

Gran total = 84.55 EUR

El robot en acción

Aquí se mostrarán algunos vídeos en los que se ve el robot en funcionamiento.

Telnet

En el primer vídeo se controla mediante Telnet:
Control Telnet
Aquí simplemente tenemos las opciones de avanzar, avanzar rápido, retroceder y parar. Primera fase de pruebas.

Java

En el siguiente vídeo el robot se mueve mediante una interfaz java con la que se puede controlar todo el rango de velocidades de cada rueda en ambos sentidos mediante dos Sliders de java (clase Javax JSlider). En el vídeo se mantienen los dos motores a una velocidad constante.
Control Java

Android

El robot está programado en Android y funciona correctamente