Difference between revisions of "Ichabot"
Jgvictores (talk | contribs) |
|||
(39 intermediate revisions by 3 users not shown) | |||
Line 1: | Line 1: | ||
− | + | [[File: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 ([http://asrob.uc3m.es/images/1/1d/PFC_-_Jorge_Kazacos.pdf ENLACE al PFC]), donde podéis encontrar toda la información del proyecto, en el cual también hay desarrollo Android/Java. | ||
== Resumen == | == Resumen == | ||
Line 7: | Line 9: | ||
# Dimensiones reducidas | # Dimensiones reducidas | ||
# Integra la posibilidad de acoplar un modulo XBee (comunicacion wifi y Bluetooth). | # Integra la posibilidad de acoplar un modulo XBee (comunicacion wifi y Bluetooth). | ||
− | # Puede ser alimentado por una | + | # 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. | El robot cuenta con tres puntos de apoyo: Dos ruedas y un tercero trasero formado por una canica que sirve de pivote. | ||
Line 14: | Line 16: | ||
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. | 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 == | == 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 | Robot Devastation]]. El robot montado permite la | + | 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 | 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 [[Modelo Simple | este modelo]]. El modelo con canica requiere limar algunas partes, por lo tanto ese otro modelo requiere menos trabajo, y tiene menos piezas. | |
* Scad | * Scad | ||
Line 28: | Line 38: | ||
[[File:Ichabot_Ensamblado.png | 300px |thumb|right| Modelo Ensamblado]] | [[File:Ichabot_Ensamblado.png | 300px |thumb|right| Modelo Ensamblado]] | ||
− | :[http://asrob.uc3m.es/images/b/b9/Parametros.txt | + | :[http://asrob.uc3m.es/images/b/b9/Parametros.txt Parámetros] Lista de parámetros para todas las piezas. |
− | : | + | :[http://asrob.uc3m.es/images/c/c4/Abierto.txt Abierto] Todas las partes separadas para mejor visualizacion. |
− | : | + | :[http://asrob.uc3m.es/images/7/71/Bateria.txt Batería] Modelo de la batería a usar. |
− | : | + | :[http://asrob.uc3m.es/images/8/88/FIO.txt Arduino FIO] Modelo de Arduino FIO. |
− | : | + | :[http://asrob.uc3m.es/images/7/7a/Trasera.txt Parte trasera] La parte trasera contiene, ademas, el acople necesario para la FIO. |
− | :: | + | ::[http://asrob.uc3m.es/images/2/29/Acople.txt Acople] la FIO va insertada en estos brazos. |
− | : | + | :[http://asrob.uc3m.es/images/7/71/Delantera.txt Parte delantera] |
− | : | + | :[http://asrob.uc3m.es/images/c/c2/Rueda.txt Rueda] |
− | : | + | :[http://asrob.uc3m.es/images/8/8d/Servo.txt Servo] Modelo del servo TowerPro SG90. |
− | : | + | :[http://asrob.uc3m.es/images/b/b6/Soporte_bola_sup.txt Soporte bola superior] Soporte superior para la bola en la que se apoya el robot. |
− | : | + | :[http://asrob.uc3m.es/images/a/a5/Soporte_bola_inf.txt Soporte bola inferior] Idem para inferior. |
− | : | + | :[http://asrob.uc3m.es/images/8/80/Ensamblado.txt 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 | + | 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 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. | En azul claro, el soporte para la canica, y en azul oscuro la FIO. | ||
− | Se muestra una sola rueda por motivos de | + | Se muestra una sola rueda por motivos de visualización. |
Line 58: | Line 68: | ||
== Hardware == | == Hardware == | ||
− | Como ya se ha mencionado antes, se usa como hardware principal la tarjeta arduino FIO y como | + | 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 ==== | ==== 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 | + | 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 | + | 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.<br/> |
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. | 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. | ||
Line 86: | Line 96: | ||
− | Este | + | 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. |
[[File:150_RN-XV-W-top-med-res.jpg | thumb | right | WiFly 171 RN XV]] | [[File:150_RN-XV-W-top-med-res.jpg | thumb | right | 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. | + | Se ha querido escribir un [[Tutorial Wifly | '''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. |
Line 99: | Line 109: | ||
:[[http://www.rovingnetworks.com/products/RN171XV Pagina web del modulo]] | :[[http://www.rovingnetworks.com/products/RN171XV Pagina web del modulo]] | ||
:[[http://www.rovingnetworks.com/resources/download/16/RN_XV Datasheet]] | :[[http://www.rovingnetworks.com/resources/download/16/RN_XV Datasheet]] | ||
− | :[[http://www.rovingnetworks.com/resources/download/93/WiFly_User_Manual Manual de usuario]]. Este manual se encuentra en otra pagina | + | :[[http://www.rovingnetworks.com/resources/download/93/WiFly_User_Manual 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: | ||
+ | <br/> | ||
+ | * 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: | ||
+ | <br/> | ||
+ | [http://www.youtube.com/watch?v=61YwWbIN0bM Control Telnet] | ||
+ | <br/> | ||
+ | Aquí simplemente tenemos las opciones de avanzar, avanzar rápido, retroceder y parar. Primera fase de pruebas. | ||
+ | <br/> | ||
+ | === 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 [http://docs.oracle.com/javase/7/docs/api/ Sliders] de java (clase Javax JSlider). En el vídeo se mantienen los dos motores a una velocidad constante. | ||
+ | <br/> | ||
+ | [http://www.youtube.com/watch?v=qu_ecMEGA5c Control Java] | ||
+ | |||
+ | === Android === | ||
− | El | + | El robot está programado en Android y funciona correctamente |
− |
Latest revision as of 16:18, 17 September 2014
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:
- Dimensiones reducidas
- Integra la posibilidad de acoplar un modulo XBee (comunicacion wifi y Bluetooth).
- 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
- 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.
- 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.
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