Diferencia entre revisiones de «Wiimote windows»
(→Introducción) |
(→Moviendo un robot con el mando de la Wii) |
||
(No se muestran 16 ediciones intermedias de 2 usuarios) | |||
Línea 28: | Línea 28: | ||
= Probando el Wiimote = | = Probando el Wiimote = | ||
− | He probado dos programas, el primero la versión 1.13 del [http://www.wiili.org/index.php/WiinRemote Wiinremote], soy capaz de usar las capacidades implementadas y me he hecho un puntero infrarrojo para localizarlo en el espacio, pero como este software está programado en Delphi, y yo no tengo ni idea de usarlo, he preferido buscar otra librería. Pero he dedir que como programa de prueba para comprobar que el mando funciona es muy bueno.<BR> | + | He probado dos programas, el primero la versión 1.13 del [http://www.wiili.org/index.php/WiinRemote Wiinremote], soy capaz de usar las capacidades implementadas y me he hecho un puntero infrarrojo para localizarlo en el espacio, pero como este software está programado en Delphi, y yo no tengo ni idea de usarlo, he preferido buscar otra librería. Pero he de dedir que como programa de prueba para comprobar que el mando funciona es muy bueno.<BR> |
El otro entorno es el software desarrollado por [http://www.cs.cmu.edu/~johnny/projects/wii/ Jonny Chung Lee] que usa la librería [http://blogs.msdn.com/coding4fun/archive/2007/03/14/1879033.aspx Wiimote por Brian Peek's] para acceder al mando. Esta programada en C# y aunque estoy más familiarizado con el C++ he decidido utilizar este último junto con el Visual Studio 2005.<BR> | El otro entorno es el software desarrollado por [http://www.cs.cmu.edu/~johnny/projects/wii/ Jonny Chung Lee] que usa la librería [http://blogs.msdn.com/coding4fun/archive/2007/03/14/1879033.aspx Wiimote por Brian Peek's] para acceder al mando. Esta programada en C# y aunque estoy más familiarizado con el C++ he decidido utilizar este último junto con el Visual Studio 2005.<BR> | ||
Para probar la librería y sus fuentes estoy usando directamente el código de ejemplo que viene con la propia librería, es muy fácil y en muy poco tiempo he empezado a desarrollar mis propios ejemplos.<BR> | Para probar la librería y sus fuentes estoy usando directamente el código de ejemplo que viene con la propia librería, es muy fácil y en muy poco tiempo he empezado a desarrollar mis propios ejemplos.<BR> | ||
Línea 38: | Línea 38: | ||
El código del programa está en C# y como entorno de compilación he usado el Visual Studio 2005<br> | El código del programa está en C# y como entorno de compilación he usado el Visual Studio 2005<br> | ||
+ | La librería que he usado es la que he mencionado arriba:<br> | ||
+ | [http://blogs.msdn.com/coding4fun/archive/2007/03/14/1879033.aspx Wiimote.lib]<br> | ||
+ | |||
+ | <br>'''Descarga'''<br> | ||
+ | [http://www.iearobotics.com/wiki/images/2/25/Wii_leds.zip Ejemplo básico]<br> | ||
+ | |||
+ | = Moviendo un robot con el mando de la Wii = | ||
+ | |||
+ | Ahora hemos metido un poco más de complejidad al programa. Hemos configurado la Wiimotelib.dll para enviar reportes de aceleración y botones, y según su valor mandamos al robot una orden determinada de movimiento.<br> | ||
+ | <br> | ||
+ | Para activar la conexión con el Wiimote hay que activar el check que pone ''Wiimote''.<br> | ||
+ | Si queremos usar los acelerómetros (Y,X) en lugar del Pad hay que activar el check que pone ''analógico''.<br> | ||
+ | El programa es el siguiente: | ||
+ | [http://www.iearobotics.com/wiki/images/8/84/Wii_PCBot.zip Ejemplo Avanzado]<br> | ||
+ | |||
+ | |||
+ | Según el robot que tengamos, tendremo que tener un firmware u otro. En concreto: <br> | ||
+ | * Para el [[Skybot]] el [http://www.iearobotics.com/talleres/generico-v14/sesion-4/ejemplos/download/sci-menu.hex sci-menu.hex] | ||
+ | * Para el [[Robot_FlatBot]] con la [[SkyControl]] el [http://www.iearobotics.com/wiki/images/e/ea/Sci-menu-skycontrol.hex sci-menu-skycontrol.hex]<br> | ||
+ | |||
+ | = Documentación = | ||
+ | |||
+ | * [http://www.iearobotics.com/wiki/images/6/6e/Frikadas_con_el_Wii_Remote.pdf Conferencia sobre "Frikadas con la Wii"] | ||
= Enlaces = | = Enlaces = |
Revisión actual del 18:15 30 jul 2008
Contenido
Introducción
Hace tiempo se publicó en esta web Pywii como leer el mando de la Wii desde el PC usando Linux.
Ahora quiero continuar ese trabajo para hacer lo mismo pero en Windows.
En internet hay mucha información, por lo que he tenido que probar diferentes aplicaciones hasta que me he quedado con un conjunto de ellas. Las seleccionadas me han permitido programar el mando tanto en C++, C# y Visual Basic, en el entorno de Visual Studio 2005.
En estos últimos meses han sido muchas las personas que han ido publicando su código y que gracias a ellas he conseguido tener mi entorno funcionando. Gracias a Johnny C. Lee que ha hecho unas aplicaciones tan divertidas que me han motivado lo suficiente para poder hacer mis proyectos. Gracias a Brian Peek por la librería para Windows y a Glitter por el porting a C++.
Más información la he sacado a partir de la página:
http://www.wiili.org/index.php/Main_Page
http://www.wiili.org/index.php/Wiimote_driver#Windows_XP_Notes
y la librería que he decidido usar es:
Conectando el mando de la Wii al XP
Antes tenía un portátil sin Bluetooth, por lo que me compré un USB-Bluetooth con BlueSoleil y me funcionó a la primera. Es decir, le dí a busar dispositivos, encontró el "NINTENDO RVL-CNT-01" y luego ejecuté el WiinRemote y/o el GlovePie y ya estaba usando el mando.
Ahora tengo un DELL Inspiron 6400 con Bluetooth integrado y lo que he buscado es descubrir el mando sin necesidad de tocar el software de Windows. Me ha dado un poco de guerra pero en "google" me han dado la respuesta. Para conectarme al mando sigo las primero he seguido las siguientes instrucciones:
- Pulsar botón derecho sobre el icono Bluetooth en la barra de tareas y sobre "Asistente de configuración Bluetooth".
- Escoger la opción "Sé que servicio deseo utilizar y quiero encontrar un dispositivo Bluetooth que lo ofrezca".
- De los dispositivos disponibles escoger "Dispositivo de interfaz humana" y "Siguiente" al tiempo que pulsamos los botones 1+2 del Wiimote.
- Escoger"Finalizar" y el Wiimote estará ahora conectado.
- Para comprobarlo mira el iconito Bluetooth de la barra de tareas. Si está de color verde es que el Wiimote se ha conectado, si está de color blanco es que no.
Para que me funcione correctamente, además, he tenido que hacer lo siguiente: Ir al administrador de dispositivos hardware, y en dispositivos HID he tenido que quitar el "Virtual Bluetooth device". Luego he escaneado nuevos dispositivos, windows me ha sacado la típica pantalla de que ha encontrado algo nuevo, y tras aceptar en todos los pasos me ha vuelto a detectar el "Virtual Bluetooth device".
Ahora sí. Con el Wiinremote he podido probar el mando de nuevo.
Probando el Wiimote
He probado dos programas, el primero la versión 1.13 del Wiinremote, soy capaz de usar las capacidades implementadas y me he hecho un puntero infrarrojo para localizarlo en el espacio, pero como este software está programado en Delphi, y yo no tengo ni idea de usarlo, he preferido buscar otra librería. Pero he de dedir que como programa de prueba para comprobar que el mando funciona es muy bueno.
El otro entorno es el software desarrollado por Jonny Chung Lee que usa la librería Wiimote por Brian Peek's para acceder al mando. Esta programada en C# y aunque estoy más familiarizado con el C++ he decidido utilizar este último junto con el Visual Studio 2005.
Para probar la librería y sus fuentes estoy usando directamente el código de ejemplo que viene con la propia librería, es muy fácil y en muy poco tiempo he empezado a desarrollar mis propios ejemplos.
También he probado la librería WiiYourself, que es un porting de la anterior pero para C++. Viene un programa de ejemplo para consola que demuestra las funcionalidades de sonido del mando de la Wii. Al paquete software anterior he tenido que añadir los archivos "hidsdi.h, hid.lib, hidusage.h, hidpi.h" para poder compilar.
Mi primer programa
El primer programa es muy simple, se trata de una pantalla con 4 checkbox de manera que en función del PAD del mando se activen o desactiven. ¿Para qué sirve un programa tan simple? Pues para ver que soy capaz de tener el entorno en marcha sin código en exceso.
El código del programa está en C# y como entorno de compilación he usado el Visual Studio 2005
La librería que he usado es la que he mencionado arriba:
Wiimote.lib
Descarga
Ejemplo básico
Moviendo un robot con el mando de la Wii
Ahora hemos metido un poco más de complejidad al programa. Hemos configurado la Wiimotelib.dll para enviar reportes de aceleración y botones, y según su valor mandamos al robot una orden determinada de movimiento.
Para activar la conexión con el Wiimote hay que activar el check que pone Wiimote.
Si queremos usar los acelerómetros (Y,X) en lugar del Pad hay que activar el check que pone analógico.
El programa es el siguiente:
Ejemplo Avanzado
Según el robot que tengamos, tendremo que tener un firmware u otro. En concreto:
- Para el Skybot el sci-menu.hex
- Para el Robot_FlatBot con la SkyControl el sci-menu-skycontrol.hex
Documentación
Enlaces
- Descarga del Wiinremote 1.13 Programa en Delphi para probar el mando de la Wii. Representa las aceleraciones de forma gráfica.
- WiiLi.org
- Notas software para windows
- Johnny Chung Lee Creador de aplicaciones divertidas para C#