Mi rincón de RIS

Está sección es una especie de histórico de las cosas que voy descubriendo sobre el RIS. Espero que tenga tantas cosas que tenga que reorganizarla..
Si quieres hacer alguna sugerencia, estoy en [email protected]
Ya hay Countervisitas

¿Dónde lo compro?

Suele estar en ToysRus y El Corte Inglés, me parece en FNAC lo han descatalogado. Si lo buscáis en la sección de Juguetes estará en la de Informática y viceversa, Murphy no descansa. Si no vives en una gran ciudad lo puedes pedir a www.ludotecnic.com.
Te costará unas 40000 ptas en todos los sitios, duro arriba, duro abajo.

¡Qué bonito!, pero ¿cómo conecto el cable?

El cable de LEGO que se conecta a la torre de IR tiene 9 pines en los dos extremos, lo más probable es que nuestro PC tenga un conector de libre de 25 pines por lo que necesitaremos un adaptador de DB25 a DB9. Lo puedes comprar o lo que es más interesante (pero no mucho más barato) construirlo TÚ MISMO.

Necesitarás:
1 conector DB9 macho (130 pts aprox)
1 conector DB25 hembra (130 pts aprox)
No compres fundas para los conectores, no es necesario y te acabará costando casi como uno original. Puedes enrollarlo en cinta aislante.
9 trozos de cable (de unos 5 o 6 cm bastará, yo los cogí de un cable de impresora viejo, pero en cualquier tienda de electrónica venden)
1 soldador (cuidado no te quemes) y estaño.

Numeración de los pines de puerto SERIE

DB25 Hembra
  13              <------- 1
 _____________________________
 \ o o o o o o o o o o o o o /
 \ o o o o o o o o o o o o /
 -------------------------
    25             <----- 14
DB9 Macho
1 2 3 4 5
 _____________
 \ . . . . . /
 \ . . . . /
 ---------
    6 7 8 9    
NOTA: Cuando sueldes estarán en orden inverso, mira el número que viene al lado de cada patilla.

Descripción de pines del puerto serie para DB25 y DB9, o lo que es lo mismo para el adaptador 25-9

DB-25 Descripción DB-9 Conectado con el cable LEGO
2 TD Transmit Data 3 SI
3 RD Receive Data 2 SI
4 RTS Request to send 7 SI
5 CTS Clear to send 8 SI
6 DSR Data Set Ready 6 NO
7 SG Signal Ground 5 SI
8 DCD Data Carrier Detect 1 NO
20 DTR Data Terminal Ready 4 NO (Conectado pero no usado)
22 Ring Ring Indicator 9 NO

NOTA: Los pins 1, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 21, 23, 24, 25 no son usados en DB25 serie.

Vamos allá.

Para que veas como quedaría el experimento he usado un escáner, sí eso he dicho para hacer unas fotos.
TRUCO: pon estaño (con muy poco basta) a las puntas de los cables primero y luego sólo con tocarlos con el soldador se adherirán a las patillas (pins).

Detalle de las soldaduras (algo traperillas pero son conductoras, nunca había tocado un soldador y tampoco ha sido muy difícil, así que no tengáis miedo):
Toma general
:
Nota: el mío tiene un cable adicional (blanco) que conecta el metal de conector, esto lo suelen tener los cables de impresora de calidad.

Y ahora ponemos guapo al conector
:

Bueno pues ahora sólo queda probarlo, puedes comprobar las conexiones con un polímetro.

El cable de Lego sólo usa 5 pines que son el 2,3,5,7,8, el pin 4 está conectado aunque no se usa (¿se podría usar para llevar la alimentación y reemplazar la pila de 9V?). Así que si sólo lo quieres usar para tu RCX sólo haría falta que conectases las filas que ponen SI.

Soy un cotilla, quiero saber que se dicen el PC y el RCX

A nivel de paquete el formato es el siguiente
Cabecera 0x55 0xff 0x00 Código de operación Parámetros Checksum

El checksum es el byte menos significativo de la suma de bytes del paquete.
Realmente cada byte no perteneciente a la cabecera es se seguido de su complementario, de esta forma el paquete contiene el mismo número de 0's que de 1's, por lo que es más estable a variaciones de las condiciones de iluminación.

Como respuesta se devuelve un paquete con el COP inverso. Si se repite un COP se opera con XOR 0x08.

Vamos a ver un ejemplo, queremos saber si el RCX está vivo y la versión de la ROM y firmware del ladrillo.

Operación Código de operación Datos Código de respuesta Datos de respuesta
Alive 10/18 nada ef/e7 nada
GetVersion 15/1d 1 3 5 7 b ea/e2 VersiónROM, VersiónFirm

[root@localhost rcx]# xend 10
-> 55 ff 00 10  ef 10 ef            55 ff 00 // 10 // 10
<- 55 ff 00 ef 10  ef 10            55 ff 00 // ef // ef
Como nos ha dicho ef es que está bien
[root@localhost rcx]# xend 15 1 3 5 7 b
-> 55 ff 00 15 ea 01 fe 03  fc 05 fa 07  f8 0b f4 30 cf
55 ff 00 // 15 // 01  03  05  07  0b // 30
<- 55 ff 00 ea 15 00 ff  03 fc 00 ff  01 fe 00 ff 00 ff 00 ff  00 ff ee 11
55 ff 00 // ea // 00 03 00 01 00 00 00 00 // ee
La versíón ROM son 8 bytes 3.1 y la de firmware 0.0 (no había ninguno cargado).

Para aprender más Kekoa Proudfoot se lo ha currado y tiene una lista de códigos de operación (www.graphics.stanford.edu/~kekoa/rcx/#Opcodes), parte de esta información ha sido obtenida de
www.daimi.au.dk/dArkOS/Vaerktoejer.dir/RCX.vejledning.dir/Vejledning.html

Quiero que mi robot camine.

En la excelente página de Jin Sato podemos encontrar un hexápodo (seis patas) y un bípedo. Os aseguro que todas se pueden hacer con el RIS, eso sí, adaptándolas.

Bípedo: es uno de los más sencillos y eficientes que he visto aunque arrastre los pies, por lo menos no se cae.
El fichero bipedo.zip contiene "planos" en formato Ldraw, de todas formas con estas instrucciones queda más claro
Las piezas planas largas (Plate 2x16) se pueden sustituir por 2, los ladrillos de 6x2 se sustituyen por 2x2 + 4x2 y/o 2 de 1x6 con agujeros.

Aspecto final de la base:

Eje de balanceo

El extraño triángulo se puede hacer con dos "L"

la pieza horizontal que sostiene las patas por arriba se puede sustituir por una más grande (Brick 16 with Holes).
la base de los pies se puede acortar un poco.

Las dobles presillas de los ejes no son necesarias, poniendo sólo 1 (que son las que tiene el RIS) queda seguro.

Deportes de riesgo para tu robot

El otro día ví un vendedor ambulante que tenía un cochecito que se movía rápidamente sobre un azulejo y giraba cuando llegaba a un borde. Cáspitas, repámpanos, czxmRCXnbfdsakfj#@!!, eso también lo puedo hacer yo.
// Programa: Detector de bordes
// Autor: Ismael Salvador Igual
// Fecha: 9/1/01
// Lenguaje: NQC 2.2
// Descripción: Detector de bordes, detecta un borde y gira
// se supone que no se caería de una mesa pero por si acaso
// supongo una mesa de altura 0, tachán un folio
task trinca_borde()
{
while(true)
{
//como siempre pon tu umbral
if(SENSOR_2 < 45)
{
//giramos respecto al centro del eje las
//dos ruedas
OnRev(OUT_C);
OnFwd(OUT_A);
}
else
{
//ahora vamos p'alante
OnFwd(OUT_A+OUT_C);
}
}
}
task main()
{
//Vamos a amortizar el sensor de luz
SetSensorType(SENSOR_2, SENSOR_TYPE_LIGHT);
OnFwd(OUT_A+OUT_C);
//despacito que nos vamos a tomar por saco
SetPower(OUT_A+OUT_C,3);
start trinca_borde;
}
Simple, ¿no?, eso sí, prueba primero con un folio en blanco en el suelo y ajusta el umbral, por que si no se puede pegar una piña. Además pon el sensor de luz lo más lejos posible (con un par de ladrillos de 12 p. ej.) para que dé tiempo a girar.

Cómo hago que hable mi RCX

Todavía no he conseguido reproducir un wav,como ando un poco liado dejo un link con la información que he conseguido rcxsonido.html

Construye una LAN con tu RCX

Pues eso, aquí tenemos como hacer una LAN con nuestro querido RCX http://news.lugnet.com/robotics/rcx/nqc/?n=1033
Yo sólo tengo un RCX, pero me lo he imaginado, en la imagen se muestra una topología en anillo. Con el infrarrojos se conecta al PC y tachán, conexión a Internet.
Hosted by www.Geocities.ws

1