LusoRobótica - Robótica em Português

Sistemas específicos => Arduino / AVR => Tópico iniciado por: jamexcb em 05 de Outubro de 2010, 05:39

Título: Arduino a controlar aplicações do windows
Enviado por: jamexcb em 05 de Outubro de 2010, 05:39
Olá
Alguém alguma vez viu pela net algum exemplo de um arduino a controlar uma aplicação qualquer do windows?
Tipo carregar num botão e o firefox abria ou aumentava o som, algo do genero.
A unica coisa que encontrei foi isto http://www.mikmo.dk/gobetwino.html (http://www.mikmo.dk/gobetwino.html)
Obrigado

Ps:Entretanto vou encomendar o novo arduino :D
Título: Re: Arduino a controlar aplicações do windows
Enviado por: senso em 05 de Outubro de 2010, 13:09
Um arduino é dificil, com o novo arduino podes programar o atmega8u2 para funcionar como um teclado, e ai configuras atalhos no computador e no arduino programas para carregar num botão e esse botão equivaler a uma combinação de teclas, ou então usar um teensy que é tipo um arduino mas o chip que ele usa permite tal como o atmega8u2, fazer de teclado ou rato usb.
Título: Re: Arduino a controlar aplicações do windows
Enviado por: Cynary em 05 de Outubro de 2010, 14:04
Tens também outra opção: criar uma aplicação que ficará a correr no background do PC, que recebe input do arduino por serial e de acordo com esse input, pode abrir certas aplicações, ou fazer certas acções.
Título: Re: Arduino a controlar aplicações do windows
Enviado por: jamexcb em 06 de Outubro de 2010, 04:18
Acho que a solução passa mesmo pelo que indiquei acima.
A tal aplicação Gobetwino que faz a ponte entre o arduino e o windows.
http://www.arduino.cc/cgi-bin/yabb2/YaBB.pl?num=1259868986 (http://www.arduino.cc/cgi-bin/yabb2/YaBB.pl?num=1259868986)
Alguém alguma vez já testou?
Obrigado pela ajuda
Título: Re: Arduino a controlar aplicações do windows
Enviado por: jamexcb em 06 de Outubro de 2010, 04:20
Tens também outra opção: criar uma aplicação que ficará a correr no background do PC, que recebe input do arduino por serial e de acordo com esse input, pode abrir certas aplicações, ou fazer certas acções.
Tens algum exemplo ou é alguma biblioteca especifica?
Obrigado
Título: Re: Arduino a controlar aplicações do windows
Enviado por: Cynary em 06 de Outubro de 2010, 04:25
Tens também outra opção: criar uma aplicação que ficará a correr no background do PC, que recebe input do arduino por serial e de acordo com esse input, pode abrir certas aplicações, ou fazer certas acções.
Tens algum exemplo ou é alguma biblioteca especifica?
Obrigado

Exemplos não tenho, e mesmo se tivesse, não sei se funcionavam, pois não tenho windows para testar ...
No entanto, consegues de certeza encontrar bastantes exemplos de comunicação serial na internet (windows e linux).
Quanto a abrir um programa, em C/C++, tens a função system(), que abre um programa, e está na biblioteca <stdlib.h>.
Quanto a mudar o volume, e fazer outras acções, não sei como se faz, mas de certeza que encontras na internet bastantes exemplos de como fazê-lo.
Título: Re: Arduino a controlar aplicações do windows
Enviado por: Ricardo em 06 de Outubro de 2010, 15:40
Já fiz em tempos umas coisas com vb.net para ler a informação de um receptor ir usb, e lançar algumas acções no windows (volume, abrir e fechar aplicações, etc...)
Não era 100% eficiente, mas já dava para fazer umas coisas.
Assim que encontrar o código ponho-o aqui.
Título: Re: Arduino a controlar aplicações do windows
Enviado por: Ricardo em 06 de Outubro de 2010, 21:49
Encontrei o código que tinha feito há muito tempo atrás, mas está tão dependente da biblioteca usbuirt (receptor ir) que não me parece que sirva para exemplo.

De qualquer forma, um dos truques que utilizei foi o comando sendkeys.sendwait("9"), que simula o input no teclado da tecla correspondente. Como podemos combinar as teclas alt e ctrl, já é possivel algumas acções no windows.
ex: SendKeys.SendWait("^{UP}")

Para além disso existem já algumas bibliotecas feitas para controlar o rato, ou mesmo o volume.

Não são soluções muito elegantes, mas funcionam...
Título: Re: Arduino a controlar aplicações do windows
Enviado por: jamexcb em 08 de Outubro de 2010, 00:57
Hoje já recebi o arduino e já resolvi o problema
O trabalho que estou a fazer é para um pc windows mas eu na verdade uso um Mac, só tenho o windows numa VM.

No mac foi a maneira mais rápida e trolha que arranjei foi fazer um pequeno programa em C a ler da porta serial que é USB e depois consoante os valores aumentar ou diminuir o volume.

O unico problema é que o meu mac está a 64bit e ele não gostou lá muito então usei assim:

system("arch -i386 osascript -e 'set volume 7'");

Ver: http://todbot.com/blog/2006/12/06/arduino-serial-c-code-to-talk-to-arduino/ (http://todbot.com/blog/2006/12/06/arduino-serial-c-code-to-talk-to-arduino/)

O volume varia de 0 a 7.

Antes de ir para o C andei a perder tempo em java, mas isso precisava de uma biblioteca a parte a RXTX e apesar de começar a funcionar depois vi-me grego para passar os comandos para o OSX, desisti e fui para o C :P.
http://www.arduino.cc/playground/Interfacing/Java (http://www.arduino.cc/playground/Interfacing/Java)


No windows usei o Gobetwino
Uma pessoa escreve o programa no arduino com os dados que tem de retornar pela porta serial.
E depois o programa interpreta e abre tudo e manda mails, etc...
Bastante completo o programa, ainda não tive mais tempo mas acho que vai dar para o que eu quero.
Achei interessante como é que o programa interagem com o arduino.
Depois de se arranjar um programa qualquer, ex:VLC ele retorna o PID do programa e depois com PID do programa podemos enviar teclas ou comandos para esse programa.
Mesmo fixe :D
http://www.mikmo.dk/gobetwino.html (http://www.mikmo.dk/gobetwino.html)

Obrigado pelas dicas