Desde 1994 en la Red. La pagina de los aficionados a la electronica, informatica y otras curiosidades de la vida. No dudes en visitarnos.
Ahora 1 visitas.| 3489773 Visitas (desde Dic. 2011), hoy: 352 Visitas 1143 Pag. Vistas , ultimos 36 dias: 12581 Visitas. 37161 Pag. Vistas. Tu IP: 18.97.9.175
Que ando curioseando:
AutosuficienciaCosas de casaElectronicaEn InternetInformáticaMundo MisticoSin categoríaSociedadTe lo recomiendo

Cotrol IR Robosapien. Hackeando un Robosapiens Version 1

robosapiesnIRv1

Después de haberme pillado mi primer juguete robot para estudiarlo, un Robosapiens de segunda mano por wallapop. Este me llegó con un defecto inesperado. el mando no funcionaba!.

La idea inicial era pasárselo a peque de la casa y estudiarlo para preparar un clon o similar. Al final, se ha convertido en un reto para  “devolverle vida”.

Tras visitar cientos de webs sobre el robot robosapiens, en donde apenas había contenido, y los  artículos estaban a medio terminar en su explicación de como hackear Robosapiens. He recopilado información suficiente para lograr el primer objetivo: Controlar el robot sin entrar a tocar la electrónica.

Esto pasa por entender el funcionamiento del mando IR e intentar reproducir su funcionamiento.

Hay un truco brillante para controlar estos modelos (V1)  http://playground.arduino.cc/Main/RoboSapienIR  pero también significa que tienes que arruinar tu soldador haciendo un agujero en el cuerpo del robot para colgarle una mochila.

Como referencia ha de tomarse el trabajo de  Ken Shirriff http://www.righto.com/2009/08/multi-protocol-infrared-remote-library.html pero este está pensado para la transmisión de códigos IR para televisores no para los robots, aún que las ultimas librerías ya incluyen el nombre “RobotIrRemote”.

Modificando los ficheros de las librerías de la versión 1.0.0 del IRRemote en cuestión, en la página https://cae2100.wordpress.com/2014/01/15/robosapienwowwee-ir-arduino-library/ consiguieron crear un comando específico (irsend.sendRSV1) para el control del robot a través del Arduino (Version 1, 2 y resto de robots sapiens).

Este comando aparece en algunas páginas, pero el código suministrado siempre estaba incompleto, no funcionaba o simplemente no explicaban que debía convertirse el código hexadecimal a decimal, antes de transmitirlo.

En su primera versión (modificación) solo podían manejar el envío de códigos de 8 bits (un byte) (irsend.sendRSV1), pero los productos V2 y otros wowwee usan códigos de 12 bits, por lo que desarrollaron el comando para manejo de las siguientes versiones (irsend.sendRSV2).  Los códigos nuevos robots wowwee IR (infrarrojos) utilizan el mismo tipo de datos que se enviaban antes, los mismos códigos de 8 bits, pero utilizan un código identificador de 4 bits que hace que ese control remoto específico solo funcione en ese robot.

Aquí hay una lista de todos los comandos para un grupo de robots wowwee:

Códigos de Robosapien V1:

http://www.aibohack.com/robosap/ir_codes.htm

Robosapien V2 y otros robots wowwee:

http://www.aibohack.com/robosap/ir_codes_v2.htm

En la página V2, el 3xx es el 0011, también conocido como el código de identificación del robot. Para cambiar a otro robot, simplemente cambia el 3 a cualquier robot que esté tratando de controlar.

Para reproducir el proyecto, puedes descargar ya la librería modificada aquí:

https://drive.google.com/file/d/0BwYG1PFb3ZByaTAxMlJZS2pIM1E/edit?usp=sharing

Enlace recogido  de la página https://cae2100.wordpress.com/2014/01/15/robosapienwowwee-ir-arduino-library/

También tienes una copia en el repositorio: https://github.com/pesadillo/robosapiensv1/

Una vez instalada en las librerías, es momento del código (Probado en Arduino 1.8  con Arduino UNO):

/*
 * CONTROL REMOTO DESDE PC PARA ROBOSAPIENS V1
 * Version  del codigo 1.0
 *
 * Based on IRSend demo from ken Shirriffs library - this sends simple commands to a RoboSapien V1 using and IR Transmitter with Arduino
 * Based on https://daverobertson63.wordpress.com/2013/05/05/updated-robosapien-ir-control-arduino/
 *
 * La historia:
 * Despues de haber conseguido por wallapop un Robosapiens v 1.0, me encontre que su mando estaba estropeado. Trasteando por Internet, me he encontrado
 * cientos de ejemplos con códigos a medias, o sin explicar completamente. Me decidí a entrar de lleno en la programación y control de este robot
 * tan facil a asequible de conseguir ahora y facilitar el acceso a la documentación a todos los seguidores de la web www.pesadillo.com
 *
 *
 * De interés:
 * La libreria a utilizar es IRRemote V 1.0.0 (modificada) que he incluido desde el apartado Programa/Incluir Libreria/Añadir libreria ZIP
 * Esta libreria puedes descargarla desde https://drive.google.com/file/d/0BwYG1PFb3ZByaTAxMlJZS2pIM1E/edit?usp=sharing
 * que he encontrado en la pagina https://cae2100.wordpress.com/2014/01/15/robosapienwowwee-ir-arduino-library/ y dedonde he conseguido parte del codigo
 * Si ya tienes una libreria mas actualizada instalada, puedes escoger la version activa en el apartado Programa/Incluir Libreria/Gestionar Libreria/IRRemote
 * Selecciona la version 1.0.0 y funcionará a la primera
 *
 * The circuit:
 * IR LED - LED emisor en pin 3 controlado por 2n2222A con sus respectivas resistencias.
 *
 * Revisa el articulo publicado en http://www.pesadillo.com/pesadillo/?p=11092
 *
 * created 09/05/2019
 * by pesadillo <http://www.pesadillo.com>
 * This example code is in the public domain.
*/

/*
 * Lista de comandos disponibles:
 * Fuente : https://daverobertson63.wordpress.com/2013/05/05/updated-robosapien-ir-control-arduino/
 * Botón   Color mando   Función                             Pinzas   Codigo arduino
 * 12      rojo          Girar a la derecha                    1           128
 * 1       rojo          Brazo derecho arriba                  2           129
 * 4       rojo          Brazo derecho hacia fuera             2           130
 * 5       rojo          Inclinar cuerpo derecho               1           131
 * 2       rojo          Brazo derecho abajo                   2           132
 * 3       rojo          Brazo derecho encogido                2           133
 * 11      rojo          Caminar hacia adelante                2           134
 * 15      rojo          Caminar hacia atrás                   2           135
 * 14      rojo          Girar a la izquierda                  1           136
 * 6       rojo          Brazo izquierdo arriba                2           137
 * 9       rojo          Brazo izquierdo hacia fuera           2           138
 * 10      rojo          Inclinar cuerpo derecho               1           139
 * 7       rojo          Brazo izquierdo hacia abajo           2           140
 * 8       rojo          Brazo izquierdo encogido              2           141
 * 13      rojo          Detener                               1           142
 * 19      rojo          Programa de Comando Maestro           1           144
 * 20      rojo          Programa de juego                     1           145
 * 16      rojo          Programa de sensor derecho            1           146
 * 18      rojo          Programa de sensor izquierdo          1           147
 * 17      rojo          Programa de sensor sonoro             1           148
 * 12      Verde         Paso a la derecha                     1           160
 * 1       Verde         Golpe derecho                         1           161
 * 4       Verde         Lanzamiento diestro                   1           162
 * 5       Verde         Dormir                                1           163
 * 2       Verde         Recolección de la mano derecha        1           164
 * 3       Verde         Inclinarse hacia atrás                1           165
 * 11      Verde         Paso adelante                         1           166
 * 15      Verde         Paso hacia atras                      1           167
 * 14      Verde         Paso a la izquierda                   1           168
 * 6       Verde         Golpe izquierdo                       1           169
 * 9       Verde         Tiro de la mano izquierda             1           170
 * 10      Verde         Escucha                               1           171
 * 7       Verde         Recogida de la mano izquierda         1           172
 * 8       Verde         Inclinación hacia delante             1           173
 * 13      Verde         Reiniciar                             1           174
 * 19      Verde         Programa de Comando Maestro           1           176
 * 20      Verde         Despierta                             1           177
 * 16      Verde         Programa de sensor derecho Ejecutar   1           178
 * 18      Verde         Programa de Sensor Izquierdo Ejecutar 1           179
 * 17      Verde         Programa de sensor sonoro ejecutado   1           180
 * 12      Naranja       Golpe de mano derecha 3               1           192
 * 1       Naranja       Barrido de la mano derecha            1           193
 * 4       Naranja       Eructar                               1           194
 * 5       Naranja       LLave de la mano derecha              1           195
 * 2       Naranja       Alta 5                                1           196
 * 3       Naranja       LLave de la mano derecha              1           197
 * 11      Naranja       Excavadora                            1           198
 * 15      Naranja       Ups                                   1           199
 * 14      Naranja       Golpe de mano izquierda 3             1           200
 * 6       Naranja       Barrido de la mano izquierda          1           201
 * 9       Naranja       Silbar                                1           202
 * 10      Naranja       LLave de la mano izquierda            1           203
 * 7       Naranja       Replicar                              1           204
 * 8       Naranja       LLave de la mano izquierda            1           205
 * 13      Naranja       Rugido                                1           206
 * 19      Naranja       Todo demo                             1           208
 * 20      Naranja       Apagado                               1           209
 * 16      Naranja       Demo 1                                1           210
 * 18      Naranja       Demo 2                                1           211
 * 17      Naranja       Demostración de baile                 1           212
*/

#include
IRsend irsend;        // pin 3 es IR LED salida
int data;             // Variable de almace de datos de la lectura serie
void setup()
{
Serial.begin(9600);
irsend.sendRSV1(142);// Envio sonido test de inicio
}
void loop() {
  while (Serial.available()> 0) {
    data = Serial.parseFloat(); //Capturo valor DECIMAL introducido
    Serial.println(data); // Veo datos enviados en monitor serie
    irsend.sendRSV1(data); //Envio datos al pin 3

}
}

Un detalle tonto que me hizo perder algo de tiempo en la puesta en marcha. Acuérdate de que el infrarrojo, esté siempre por encima de la altura de la cabeza del robot, si no, el receptor no recibirá la orden.

El circuito:

LEDir1led

Que hace el código?

Los comandos enviados a través del terminal serie del software Arduino, son enviados al Robosapiens a través del diodo IR que tiene una resistencia de 100 Ohm como medida de protección.

Más detalles:

Como se conectan diodos IR emisores y receptores:

ir_sensor_schematic

Como identificar ánodo y cátodo del diodo:

IR_LED_Set_small

Fijarse en la musca del encapsulado o que el ánodo tiene la patilla mas larga (en componentes nuevos).

Como ganar mas potencia con más leds:LEDir2leds

En este caso, para aumentar la potencia de luz del diodo, en lugar de conectar directamente el diodo a la patilla 3, alimentamos a u transistor 2N2222A que es el que controlará, aplicando tensión directamente al diodo a través de su resistencia.

Escribe un comentario

Tu comentario