Noticias:

¿Has visto el Mapa de Usuario de HispaLUG? Búscalo en el menú superior y apúntate.

Menú Principal

Acelerometro casero para NXT

Iniciado por 31415926, 28 de Marzo de 2010, 22:05:49 PM

Tema anterior - Siguiente tema

0 Miembros y 1 Visitante están viendo este tema.

31415926

Hace mucho tiempo estuve curioseando sobre la Wii y en WiiBrew leí, sin darle importancia, protocolo I2C. Pasados los años resurgió la afición de lego, empecé a leer sobre el NXT y volvió a aparecer I2C. A partir de ese momento googlear, adquirir un Nunchuk (que se lo cambie a mi hijo por el original de la Wii), esperar al momento oportuno para comprar un NXT y ya puestos, hacerle una casita-lego.

Por supuesto, el trabajo duro ya lo habían realizado
y sólo hay que seguir sus pasos para tener un sensor para el NXT que dispone de joystick con dos botones y acelerómetro, todo ello por muy poquitos €.


Para realizarlo he necesitado:

  • 1 Nunchuk
  • 2 resistencias de 33k
  • 1 diodo 1N4148
  • 1 cable de NTX
  • Unas cuantas piezas, desparejadas y sucias
         

Para desmontar el nunchuk hay que utilizar un destornillador Triwing y quitarle las dos resistencias. La primera prueba la hice con dos resistencias y un diodo sacados de un coche teledirigido de un todo a 100, sobre los cables pelados, sujeto con pinzas (literalmente) y enroscados los cables sobre las patillas. Siguiendo este circuito para unirlo todo.


FUNCIONÓ y no se quemo nada. (No me hago responsable de posibles desastres si se hace mal)

Ya solo queda lo fácil, con un cuter ir rebajando las piezas hasta que la placa del nunchuk encaje. Para esto hay que tener mucha paciencia, tiempo (y que te guste autolesionarte los dedos). Queda suficiente espacio entre el joystick y los botones para que se alojen las resistencias y el diodo, pero como ya he dicho también se puede hacer donde se unan los cables del nunchuk y del NXT.









Para que quede más robusto, pegué las piezas con pegamento de contacto. No tengo fotos de las soldaduras pero mejor, me da vergüenza enseñar los pegotes de estaño que puse, además de ser soldaduras frías.
Nunca más utilizaré un soldador, quema mucho y tiene la manía de apoyarse en los dedos.







Ahora a divertirse, el código está en los ficheros adjuntos:

  • NXT-G
    No pienso usarlo, soy muy mayor para aprender y no me gusta programa a base de ratón. Pero en nxtasy se pueden encontrar bloques para leer y escribir sobre I2C, no se si funcionará.
  • NXC
    *Nunchuk_LIB.nxc   Contiene una funcion para inicializar el puerto, una estructura para almacenar el resultado y otra función para leer y procesar los valores recogidos de Nunchuck. Falta leer y utilizar los datos de calibración.
    *Visor. nxc   Mismo ejemplo que el de los creadores de invento.
    *Velocidad.nxc   Mide el tiempo que tarda en realizar X lecturas. Me arroja un valor de unas 35 lecturas por segundos. Me parecen pocas pero es lo que hay.
    *Oruga.nxc   Ejemplo práctico de un vehiculo dirigido por este sensor, tanto con el joystick como con el acelerómetro.

  • ROBOTC
    Los mismos ejemplos pero para RobotC. Hay una curiosa diferencia, se obtiene una media de 140 LECTURAS!!! por segundo. Esto me ha entretenido bastante ya que la demo caduca y hay que hacer ... para tener otros 30 días extra sin reinstalar el equipo.

  • LeJOS
    En LeJos lo han implementado.

  • nxtOSEK
    Esta en mi punto de mira, nxtOSEK
  • pbLua
    No he encontrado nada pero API para I2C
     
Por último un pequeño video

Todas las críticas constructivas y cualquier mejora que propongáis serán bienvenidas.
3,1415926535897932384626433832795028841971693993751058209749445923078164062862089986280348253421170679821480865132823066470938446095505822317253594081284811174502841027019385211055596446229 . . .             

Jetro

Excelente trabajo de investigación y perfectamente documentado. Casi me da pena tener ya el sensor de HiTechnic...

Blastem

, me parece que que acabas de ahorrar un dinerillo en el sensor, y encima cacharreando y destripando, como más me gusta. No veo el día para probar esto... directo a Favoritos. Una maravilla  :B

Muchas Gracias!
Blog - Colección - Wanted List --- Look down, look down, Don't look 'em in the eye, Look down, look down, You're here until you die

PotaG

¡Que bueno!  :O
Si acaso al joystick haberle colocado una pieza como esta...
Para luego poder integrarlo sin muchos problemas en un robot o adaptarle un volante, por ejemplo.
Pero no me hagas mucho caso, tal y como está queda perfecto.

¡Ups! iba a nominarte, pero al ir a mirar ya estabas secundado, ¡enhorabuena!
Probando firma...1...2...probando...

Minipepito


31415926

Cita de: PotaG en 28 de Marzo de 2010, 23:35:41 PM
¡Si acaso al joystick haberle colocado una pieza como esta…

Muy buena idea, le puede dar mucho juego.
Por cierto, pregunta de novato (18 mensajes),  ¿Nominarme para qué?  ??? Espero que no signifique lo mismo que en 'el gran petardo', prefiero que me metáis en la nevera si he infringido alguna norma.

Tengo que depurar el código, para afinar los tipos de las variables e implementar la lectura de los datos de calibración. Quizás me he precipitado, pero continuaré.
3,1415926535897932384626433832795028841971693993751058209749445923078164062862089986280348253421170679821480865132823066470938446095505822317253594081284811174502841027019385211055596446229 . . .             

PotaG

Probando firma...1...2...probando...

jcaro

Ey tremendo!!! lo maloe s que me veo incapaz de destripar mi pobre nunchuk!!

chasplas

Si señor, menudo invento.  :O  :O

Minipepito

Necesito tu ayuda, señor Pi.

Ya he quitado las resistencias R1 y R2, pero como no sé leer diagramas eléctricos, no tengo claro el siguiente paso.

He intentado simular con gomillas, como he entendido que hay que hacerlo, la derecha sería el nunchaku y la izquierda iría al nxt:


La resistencia de abajo iría al cable de datos.

También me he fijado en que eliminas el cable negro, que creo,  es de blindaje, si lo dejo sin conectar por el lado del nxt, ¿podría darme problemas?

Gracias de antemano por tu ayuda y, con muchas ganas de probar el aparatejo, espero tu respuesta, jejeje...

31415926

... Muuuuuuuuuchas gracias por la nominación, me habéis dejado  :O y :E  durante muchos días.

Tras conseguir leer los datos de calibración (cero y valor de 1G para cada uno de los tres ejes del acelerómetro y máximo, mínimo y cero de los dos ejes del joystick) estuve intentando acceder a los valores sin necesidad de descifrarlos como dicen en WiiBrew.       
Citar
The New Way
The new way to initialize the extension is by writing 0x55 to 0x(4)A400F0, then writing 0x00 to 0x(4)A400FB. It works on all extensions, and makes the extension type bytes unencrypted. This means that you no longer have to decrypt the extension bytes
No lo conseguí, así que hice barridos por todos los registros, sin buenos resultados => veamos lo que dicen los datos de calibra... ???.

16 redondos, grandes y hermosos ceros :_(. Creo que o los he sobrescrito o he encontrado como resetear un nunchuk, pero no se ir hacia atrás en el tiempo.

Espero sacar tiempo este finde para hacer un banco de pruebas para el cacharrito, un péndulo o algo parecido. ¿Tenéis alguna idea para usarlo?

Cita de: Minipepito
no tengo claro el siguiente paso.

He intentado simular con gomillas, como he entendido que hay que hacerlo, ....

Creo que está bien, las resistencias no puedes ponerlas mal, el diodo con la franja negra hacia el nunchuk. Si lo pones al revés lo que conseguirás es que no llegue corriente al nunchuk, un diodo deja pasar la corriente solo en un sentido.                     
Parece que se podría prescindir del diodo pero el nunchuk trabaja a 3,6V y el NXT le da 4,5V. Con el diodo se reduce el voltaje.
Los cables que no se usan los quité. No te confundas con los colores de los cables, NO me hago responsable de daños colaterales. La primera vez que lo conecte me temblaba la mano al pulsar el botón naranja.
Yo de electrónica NPI, pero está muy bien explicado en los enlaces del primer post.
3,1415926535897932384626433832795028841971693993751058209749445923078164062862089986280348253421170679821480865132823066470938446095505822317253594081284811174502841027019385211055596446229 . . .             

pulipuli

Hasta hoy no vi este hilo y me he quedado boquiabierto de las cosas que se pueden llegar a hacer con el NXT. Lástima no haberlo hecho antes del día 8, porque esa nominación hubiera llevado también mi voto ;)

A ver si con un poco de suerte consigues pasar la calibración y seguir sacando resultados. Ideas de que hacer... muchas, anda que no da de sí un acelerómetro... desde un simple coche que cuando choca cambia de dirección, a usar un nunchuc conectado a un NXT y a su vez a un emisor PF para usar el nunchuc como control de un cacharro PF


PD: Me intriga ver que tu nick es 10Pi (supongo que porque el nick no puede llevar signos de puntuación), y el avatar Pi/2 ;)


31415926

Los datos de calibración siguen siendo 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  :_(. Esperemos que minipepito termine el suyo y podamos ver algo de luz.

He probado el sensor en dos situaciones distintas:

Un paseo: curvas, acelerar, frenar, baches, arboles, ... por lo menos curioso. Una pena no haber incluido en el video el grafico del sensor, como en F1.

   


(clic en la imagen para ver el video o la foto completa)


Un péndulo: capturando los datos lo más rápido posible y como podéis ver, se nota hasta que el cable ejerce distinta resistencia cuando va que cuando viene.






Siguiente paso, buscar un modelo y compararlo, invertir el péndulo y  ...


Cita de: pulipuli en 12 de Abril de 2010, 08:49:19 AM
PD: Me intriga ver que tu nick es 10Pi (supongo que porque el nick no puede llevar signos de puntuación), y el avatar Pi/2 ;)
Cuando me registre hice muchos juegos de letras que no me convencían, recordé que hacia unos meses habían logrado un nuevo record: 2.699.999.990.000 decimales. Así que unos cuantos para el nick. He cambiado el avatar si lo identificáis y me decís que los relaciona prometo poner un número muuuuuuuuucho más interesante. B)
3,1415926535897932384626433832795028841971693993751058209749445923078164062862089986280348253421170679821480865132823066470938446095505822317253594081284811174502841027019385211055596446229 . . .             

Blastem

CitarCuando me registre hice muchos juegos de letras que no me convencían, recordé que hacia unos meses habían logrado un nuevo record: 2.699.999.990.000 decimales. Así que unos cuantos para el nick. He cambiado el avatar si lo identificáis y me decís que los relaciona prometo poner un número muuuuuuuuucho más interesante.

Alguna vez he tenido que usar la constante de Napier o más comúnmente conocido como número e  o_o
El quebradero de cabeza de mucho estudiantes de ingeniería  xD  xD


Estupendo el gráfico del coche  :angel:
Blog - Colección - Wanted List --- Look down, look down, Don't look 'em in the eye, Look down, look down, You're here until you die

31415926

Pues si que me ha durado poco el nuevo avatar  :-\, como prometí lo cambio.
3,1415926535897932384626433832795028841971693993751058209749445923078164062862089986280348253421170679821480865132823066470938446095505822317253594081284811174502841027019385211055596446229 . . .