LusoRobótica - Robótica em Português

Discussão Geral => Ideias => Tópico iniciado por: XicoMBD em 26 de Novembro de 2010, 23:23

Título: Wiimote
Enviado por: XicoMBD em 26 de Novembro de 2010, 23:23
Boas,
Recentemente encontrei uns videos de projectos engraçados com o Wiimote, o comando de consola wii, nomeadamente uns realizados por Johnny Lee Chung (http://johnnylee.net/projects/wii/ (http://johnnylee.net/projects/wii/)).
Tracking fingers with the Wii Remote (http://www.youtube.com/watch?v=0awjPUkBXOU&feature=player_embedded#ws)
Low-Cost Multi-touch Whiteboard using the Wiimote (http://www.youtube.com/watch?v=5s5EvhHy7eQ&feature=channel#)
Head Tracking for Desktop VR Displays using the WiiRemote (http://www.youtube.com/watch?v=Jd3-eiid-Uw&feature=channel#)


Estava a pensar aproveitar os decontos dos dias fnac (hoje e amanhã) para comprar um, mas gostava de saber a vossa opinião  ::)


Já experimentaram usá-lo para este tipo de fins? É fácil?
O que acharam, vale a pena?


Título: Re: Wiimote
Enviado por: andre_f_carvalho em 27 de Novembro de 2010, 00:19
com uma exemplificação destas, vale a pena experimentar, tem e de ser arranjar todos os softwares que o Lee tem:P
Título: Re: Wiimote
Enviado por: senso em 27 de Novembro de 2010, 00:23
Preferia arrancar dentes a usar outra vez a porcaria do Visual Studio, mas de resto isso é giro, ah lembra-te que nenhum dos exemplos dele vai funcionar no teu pc pelo simples facto de que o teu computador não é o dele, a Microsoft é muito boa a fazer código que nem sequer é portavel entre as mesmas versões do Visual Studio para windows diferentes(por exemplo entre windows vista e 7) o que é fantastico pois ler um tutorial na internet regra geral só serve para ficar com ideas, porque até meter isso a compilar é uma desgraça, esta é a minha experiência, quem me der geany/Gvim e gcc dá-me tudo.
Título: Re: Wiimote
Enviado por: amando96 em 27 de Novembro de 2010, 00:31
Está escelente  8)

mas senso, arranquei agora um dente do ciso, e posso dizer que faria o sacrifício de usar o visual studio se isso significasse não ter de arrancar os outros três :P
Título: Re: Wiimote
Enviado por: andre_f_carvalho em 27 de Novembro de 2010, 00:46
Está escelente  8)

mas senso, arranquei agora um dente do ciso, e posso dizer que faria o sacrifício de usar o visual studio se isso significasse não ter de arrancar os outros três :P

3?
Título: Re: Wiimote
Enviado por: zordlyon em 27 de Novembro de 2010, 00:56
Está escelente  8)

mas senso, arranquei agora um dente do ciso, e posso dizer que faria o sacrifício de usar o visual studio se isso significasse não ter de arrancar os outros três :P

3?

Lol ya...eu tb ja arranquei 2 e tenho la outros 2...

e garanto vos que não é nada doce arrancar dentes do sizo...

Fico me pelo visual studio...

Cumprimentos..
Título: Re: Wiimote
Enviado por: XicoMBD em 27 de Novembro de 2010, 23:53
Malta, só para dizer que já comprei o wiimote, já o emparelhei com o computador (windows), e do que experimentei, 1º video e uma aplicação de teste deste site(http://blogs.msdn.com/b/coding4fun/archive/2007/03/14/1879033.aspx (http://blogs.msdn.com/b/coding4fun/archive/2007/03/14/1879033.aspx)), tudo pareceu funcionar bem.


Agora é esperar para ver o que consigo fazer de jeito com ele... Ideias?
Título: Re: Wiimote
Enviado por: Cynary em 28 de Novembro de 2010, 00:35
Lembro-me de uma vez ver um vídeo a usar o ubuntu, com multitouch, em que para efectuar o multitouch, haviam vários ratos e ponteiros de ratos.
Não sei se será possível com o windows,
mas se sim, seria interessante colocar um sistema de rato multitouch, em que os dedos são os fios, e para os botões do rato, um comando com dois ou três botões a comunicar com o PC, por exemplo, através do arduino, ou algum movimento com o dedo.
Título: Re: Wiimote
Enviado por: XicoMBD em 05 de Dezembro de 2010, 21:07
Aqui está a minha primeira experiência utilizando o wiimote com o processing:


P6290019 (http://www.youtube.com/watch?v=6Nk1R4SPbfk#)


Para instalar as bibliotecas segui este tutorial: http://www.instructables.com/id/virtual-graffiti/step6/computer-setup-processing-and-the-wiimote/ (http://www.instructables.com/id/virtual-graffiti/step6/computer-setup-processing-and-the-wiimote/)


Se quiserem mais informações perguntem ou então consultem o post no meu blog, ainda só em inglês: http://xicombd.blogspot.com/2010/12/using-wiimote-with-processing.html (http://xicombd.blogspot.com/2010/12/using-wiimote-with-processing.html).
Título: Re: Wiimote
Enviado por: fre_deri_co em 05 de Dezembro de 2010, 21:48
espectáculo, um brinquedo porreiro  ;D
por acaso comprei um comando wii so mesmo para brincar com o vídeo projector mas agora anda a ganhar pó  :o
haverá a possibilidade de comandar directo para um receptor Bluetooth sem ter de usar como auxilio um computador?!
Título: Re: Wiimote
Enviado por: XicoMBD em 05 de Dezembro de 2010, 22:00
Não sei mas deve ser mais complicado e acho que não há tanta informação, não encontrei nada de especial no youtube...
Mas experimenta pesquisar, seria muito fixe se desse  ::)
Título: Tutorial sobre como utilizar o wiimote com o processing
Enviado por: XicoMBD em 06 de Dezembro de 2010, 15:39
Malta, aqui fica um tutorial sobre como utilizar o wiimote com o processing que fiz no meu blog, aqui (http://xicombd-pt.blogspot.com/2010/12/utilizar-o-wiimote-com-processing.html). Espero que gostem :)

(https://lusorobotica.com/proxy.php?request=http%3A%2F%2Fletsmakerobots.com%2Ffiles%2Fimagecache%2Frobot_fullpage_header%2Ffield_primary_image%2Fwiimote-762302.jpg&hash=a0841f9f17a0ce519b25f2424967cb61609bc104)

O wiimote é um controlador muito bom para usar com processing e com robots. Tem vários botões, acelerómetros  e até uma câmara que dá as coordenadas das quatro maiores fontes de radiação infravermelha detectadas.

Existem vários exemplos de aplicações que o usam, sendo que umas das mais populares são do Johnny Chung Lee (http://johnnylee.net/projects/wii/). Mas existem muitas mais, basta pesquisar por "wiimote" ou "wiimote robot" no youtube ou no google.
Mas o que eu quis fazer foi utilizar o comando, sem ter de o modificar para controlar o meu robot TheBox (http://xicombd-pt.blogspot.com/2010/11/box.html), comunicando com o processing por bluetooth.

O software que tenho instalado no computador é o WIDCOMM bluetooth software que pode ser encontrado aqui (http://www.broadcom.com/support/bluetooth/update.php).
Para instalar as bibliotecas no porcessing segui este tutorial (http://www.instructables.com/id/virtual-graffiti/step6/computer-setup-processing-and-the-wiimote/) (em Inglês).
Como tive alguns problemas a colocar as pastas aqui fica um esquema simples:
Citar

+ Prossessing
    + libraries
        + Loc
            + library
                - Loc.jar
            + lll
                + Loc
                     - ...
        + wrj4P5
            + library
                - bluecove-2.1.0.jar
                - bluecove-gpl-2.1.0.jar
                - WiiRemoteJ.jar
                - wrj4P5.jar
                - Loc.jar (optional)
            + lll
                + wrj4P5     
                    - ...

Para testar se tudo está a funcionar bem podem se utilizar estas aplicações encontradas aqui (http://www.geocities.jp/classiclll_newweb/):Se funcionarem bem pode-se passar para o próximo passo, a parte da comunicação serial com o robot.

A aplicação MyFirstWii (http://www.geocities.jp/classiclll_newweb/MyFirstWii/applet/index.html) é muito fácil de adaptar. 

Tudo o que se tem de fazer é importar a biblioteca serial, criar um objecto serial, definir a porta COM e o baude adicionar o envio da informação para o robot na zonas onde a informação dos botões é analisada. Aqui fica um exemplo.
Código: [Seleccione]
import processing.serial.*;
import lll.wrj4P5.*;
Wrj4P5 wii;
Serial TheBox;
void setup() {
  size(300,300,P3D);
  wii=new Wrj4P5(this);
  wii.connect();
  TheBox = new Serial(this, "COM5", 4800);
}
void draw() {
  background(0);
  stroke(255);
  translate(300/2,300/2,0);
  lights();
  rotateX((int) (wii.rimokon.senced.x*30+300));
  rotateY((int) (wii.rimokon.senced.y*30+300));
  rotateZ((int) (wii.rimokon.senced.z*30+300));
  box(100,100,100);
}

void buttonPressed(RimokonEvent evt, int rid) {
   if (evt.wasPressed(RimokonEvent.TWO)) println("2");
   if (evt.wasPressed(RimokonEvent.ONE)) println("1");
   if (evt.wasPressed(RimokonEvent.B)) {
     println("B");
     TheBox.write('g');
    }
   if (evt.wasPressed(RimokonEvent.A)) println("A");
   if (evt.wasPressed(RimokonEvent.MINUS)) println("Minus");
   if (evt.wasPressed(RimokonEvent.HOME)) println("Home");
   if (evt.wasPressed(RimokonEvent.LEFT)){
     println("Left");
     TheBox.write('a');
    }
   if (evt.wasPressed(RimokonEvent.RIGHT)){
     println("Right");
     TheBox.write('d');     
    }
   if (evt.wasPressed(RimokonEvent.DOWN)){
     println("Down");
     TheBox.write('s');
    }
   if (evt.wasPressed(RimokonEvent.UP)){
     println("Up");
     TheBox.write('w');
    }
   if (evt.wasPressed(RimokonEvent.PLUS)) println("Plus");
}