LusoRobótica - Robótica em Português

Robótica => Projectos de robótica => Projectos Concluídos => Tópico iniciado por: microbyte em 07 de Abril de 2010, 11:37

Título: Bluetooth Servos
Enviado por: microbyte em 07 de Abril de 2010, 11:37
Olá a todos.  ;)
Gostaria de partilhar convosco o meu mais recente projecto.  :)

Eu queria controlar um sistema de Pan e Tilt do meu telemóvel, usando:
- 2 Servos (Pan & Tilt)
- 1 Arduino Duemilanove
- 1 Aplicação em Processing (no computador)
- 1 Aplicação em Mobile Processing (no telemóvel)

Foi isto que saiu:
Bluetooth Servos (Mobile to Arduino) (http://www.youtube.com/watch?v=zmVmW40ZSQU#ws)

Código
Não tenho problema nenhum em dar o código todo deste mini-projecto.
Para verem na íntegra todos os códigos usados: http://ricardo-dias.com/pt-pt/node/127 (http://ricardo-dias.com/pt-pt/node/127)
Título: Re: Bluetooth Servos
Enviado por: TigPT em 07 de Abril de 2010, 12:14
Vídeo de grande qualidade... excelentes explicações, ideia bem descriminada, código de todo o projecto...

Só te posso perguntar... quantas propostas de trabalho já recebeste?

Obrigado por partilhares. É um projecto muito interessante e aplicável em diversas situações.
Título: Re: Bluetooth Servos
Enviado por: microbyte em 07 de Abril de 2010, 12:42
Vídeo de grande qualidade... excelentes explicações, ideia bem descriminada, código de todo o projecto...

Só te posso perguntar... quantas propostas de trabalho já recebeste?

Obrigado por partilhares. É um projecto muito interessante e aplicável em diversas situações.
Obrigado Tiago.

Em relação a propostas, nenhuma... Mas ainda é cedo. :) Estou no primeiro ano da faculdade...  :D

O fórum serve mesmo é para partilhar.
Título: Re: Bluetooth Servos
Enviado por: metRo_ em 07 de Abril de 2010, 15:21
Também já tinha testado o Mobile Processing e realmente está muito bom assim como o teu projecto :)
Título: Re: Bluetooth Servos
Enviado por: zordlyon em 26 de Abril de 2010, 12:24
Caro MicroByte, a aplicaçao que desenvolveu, eu gostava de saber qual o programa que usa para abrir a aplicaçao no telemovel??

E o mobileprocessing?? se usar por exemplo o NetBeans (da SUN) e converter para .jar nao funciona??

Cumprimentos...
Título: Re: Bluetooth Servos
Enviado por: microbyte em 26 de Abril de 2010, 12:47
A aplicação que corre no telemóvel foi desenvolvida em Mobile Processing.
No fundo, depois de compilada, o que segue para o telemóvel é um ficheiro *.jar, de JAVA.

Pode tentar fazer usando as bilbiotecas nativas do JavaME, mas penso que será muito mais fácil usar o Mobile Processing.
Título: Re: Bluetooth Servos
Enviado por: zordlyon em 26 de Abril de 2010, 16:13
Muito Obrigado, nao conhecia a aplicação, andava a tentar desenvolver em Netbeans, mas tinha excepçoes e nunca consegui por isto a 100% assim vou ver o que se arranja... :D :D

Cumprimentos..
Título: Re: Bluetooth Servos
Enviado por: zordlyon em 26 de Abril de 2010, 16:31
Tenho mais uma duvida, onde escolho ou como escolho o Wireless Tollkit location??

Cumprimentos...
Título: Re: Bluetooth Servos
Enviado por: microbyte em 26 de Abril de 2010, 18:42
http://mobile.processing.org/download/index.php (http://mobile.processing.org/download/index.php)

Tens aqui tudo passo-a-passo... Até tens links para download do WTK...
A selecção encontra-se nas preferências do programa, tudo depende do OS onde estás...
Título: Re: Bluetooth Servos
Enviado por: msr em 26 de Abril de 2010, 20:07
Brutal microbyte!
Só agora vi este teu projecto e gostei bastante. Os meus parabéns ;)
Título: Re: Bluetooth Servos
Enviado por: zordlyon em 26 de Abril de 2010, 20:25
A ligaçao dos servos e uma ligaçao normal?? ligas o preto ao GND e o vermelho aos pin's certo? e depois o amarelo vai para as pwm??

Desculpa ser tao chato mas tenho grande interesse nisto pois ando em Engenharia Informatica e estudo java, e apos ter tudo operacional, da me um erro na conexao, diz me "error. is your bluetooth on?" eu tenho emparelhado com o pc o meu telemovel, e no telemovel fica em "waiting for data base..." e no pc aparece me essa msg, poderia me dizer como faz a conexao com o telemovel ao computador?


cumprimentos...
Título: Re: Bluetooth Servos
Enviado por: microbyte em 26 de Abril de 2010, 21:13
Quanto à ligação dos servos:
preto -> GND
vermelho -> 5v
amarelo -> PWM

Em relação ao erro... Tens de activar o dispositivo/adaptador bluetooth do teu PC. (ou talvez dar permissão na Firewall para a aplicação aceder ao dispositivo)
Título: Re: Bluetooth Servos
Enviado por: zordlyon em 26 de Abril de 2010, 21:30
Muito obrigado mais uma vez,

em relaçao a ligaçao com o pc nao tou a conseguir infelizmente  :-[ :-[

ps: tnh o Windows 7

cumprimentos..
Título: Re: Bluetooth Servos
Enviado por: microbyte em 26 de Abril de 2010, 21:35
Eu no Windows não testei...

1. Tens algum dispositivo bluetooth no PC que estás a usar?
2. Se sim, está activado?
3. Se sim, verifica se está ligado a algum dispositivo, podes não estar a conseguir por já estar em uso...

Se passares nestes testes todos, experimenta desligar a firewall...
Título: Re: Bluetooth Servos
Enviado por: zordlyon em 26 de Abril de 2010, 22:12
A unica coisa que tenho ligado é emparelhado o telemovel com o pc e da perfeitamente...

a firewall ja desliguei...mas ta mau  :( >:( >:(

Cumprimentos...
Título: Re: Bluetooth Servos
Enviado por: microbyte em 26 de Abril de 2010, 22:34
Não pode estar emparelhado, senão quando a aplicação java for tentar usar, não vai conseguir.
Essa aplicação serve mesmo para emparelhar o telemovel com o computador.

Deixa o bluetooth ligado, mas sem estar emparelhado.
Título: Re: Bluetooth Servos
Enviado por: zordlyon em 27 de Abril de 2010, 00:35
Depois de muito tentar e desativar tudo e mais alguma coisa nem assim deu...

da me a msma mensagem...o telemovel fica a espera e quando ponho a correr o Processing no telemovel aparece me uma msg a perguntar se desejo aceitar que o pc faça alteraçoes e nao sei que clico em sim e aparece me a msg no computador a dar erro...

Cumprimentos...
Título: Re: Bluetooth Servos
Enviado por: microbyte em 27 de Abril de 2010, 11:11
O meu telemóvel também pergunta uma coisa quando ligo o Bluetooth.
Se eu clicar em "Sim", basicamente, fico com o controlo do rato no telemóvel (até me sai da aplicação), ou seja, fica o telemóvel sincronizado com o PC... Experimenta carregar em não.
Título: Re: Bluetooth Servos
Enviado por: zordlyon em 27 de Abril de 2010, 14:18
No meu pergunta me "Deseja aceitar a ligaçao de ACC?" em que ACC e o nome do meu computador, e eu tenho que obrigatoriamente clicar em sim porque se nao da me erro no programa do telemovel.

Infelizmente ta dificil isto  >:(

Cumprimentos...
Título: Re: Bluetooth Servos
Enviado por: microbyte em 27 de Abril de 2010, 18:36
Antes de continuarmos, já verificaste se o teu telemóvel é suportado pelo Mobile Processing?
Título: Re: Bluetooth Servos
Enviado por: zordlyon em 27 de Abril de 2010, 19:52
sim é, tem o software do nokia N95, e um E71.

Usa o CLDC - 1.1
e o  MIDP - 2.0

ja fiz algumas aplicaçoes em java para ele atraves do netbeans e nunca tive problemas a nao ser bugs de programaçao.

Agora o que me esta aqui a deixar tolo das "antenas" e ele emparelhar perfeitamente com o computador, mas em vez de emparelhar uso o seu programa e diz me que o bluetooth esta desligado...

Cumprimentos..
Título: Re: Bluetooth Servos
Enviado por: microbyte em 27 de Abril de 2010, 23:48
Trata-me por tu... ;)

Se no telemóvel diz "Waiting for base...", em princípio desse lado está tudo bem...

Tens de tentar experimentar outras coisas... Já não sei o que hei-de sugerir...
Comigo funcionou tudo 5*, não foi preciso partir muita pedra. Contudo estou no OSX, não sei como se comportaria o programa no Windows.
Título: Re: Bluetooth Servos
Enviado por: zordlyon em 28 de Abril de 2010, 00:01
lol ok  ;D

Pois la esta, disses te tudo, tens um Mac, e a minha proxima aquiziçao quando juntar umas croas  ;D ;D

Assim que souber ponho aqui, ate la vou partir pedra pois, não ha de ser nada, simplesmente sao pequenas partidas da Microsoft  ;) ;)

Cumprimentos...
Título: Re: Bluetooth Servos
Enviado por: senso em 28 de Abril de 2010, 09:26
Isso deves precisar de instalar 15 tonaledas de drivers, eu tentei simplesmente emparalhar um n78 com o vista e é para esquecer, nem com tudo quanto é driver aquilo quer trabalhar, linux é só fazer ligar e pronto, podes sempre usar linux, que é o que um mac te dá, mas o mac tem mais bling bling e qualquer coisa tens de ligar ao steve jobs lol
Título: Re: Bluetooth Servos
Enviado por: zordlyon em 28 de Abril de 2010, 11:19
lool pois eu logo imaginei isso.. :D.

Eu ando aqui a tentar martelar  nisto... ;) ;)

Cumprimentos...
Título: Re: Bluetooth Servos
Enviado por: XicoMBD em 01 de Junho de 2010, 22:43
Parabéns pelo projecto Ricardo.  :)
Já o tinha visto à algum tempo mas só agora o estou a tentar replicar.

Mas quando corro os programas dão-me os seguintes erros:
Mobile Processing:
Código: [Seleccione]
  bt = new Bluetooth(this, 0x0003); // RFCOMM
Citar
Perhaps you wanted the overloaded version "Bluetooth();" instead

Processing:
Código: [Seleccione]
    bt = new Bluetooth(this, Bluetooth.UUID_RFCOMM); // RFCOMM
Citar
Cannot find anything named "Bluetooth.UUID_RFCOMM"

Como os posso solucionar?

Tenho muito pouca experiência em processing...  :-[
Título: Re: Bluetooth Servos
Enviado por: microbyte em 01 de Junho de 2010, 23:11
Boas, obrigado pelo feedback!

Instalaste as bibliotecas Bluetooth, respectivas, correctamente?
Título: Re: Bluetooth Servos
Enviado por: XicoMBD em 01 de Junho de 2010, 23:13
Correctamente não devo ter instalado...

Como se faz?
Título: Re: Bluetooth Servos
Enviado por: microbyte em 01 de Junho de 2010, 23:53
Bem, tudo depende do sistema operativo que estás a usar...
Eu também já não me lembro muito bem do que fiz, mas lembro-me que ainda precisei de fazer uns truques...

Para o processing, precisas desta biblioteca:
http://www.extrapixel.ch/processing/bluetoothDesktop/ (http://www.extrapixel.ch/processing/bluetoothDesktop/)

Metes na pasta "libraries" do programa.

A do mobile processing já vem nativa, logo não precisas de a instalar...
http://mobile.processing.org/reference/libraries/bluetooth/ (http://mobile.processing.org/reference/libraries/bluetooth/)

Penso que o truque que fiz foi apenas no lado do Processing:
Portanto tu metes a pasta "bluetoothDesktop" dentro da pasta libraries do processing...
Dentro dessa pasta "bluetoothDesktop" tens uma pasta chamada "library". Renomeei o ficheiro "avetanaBT.jar" para "avetanaBT.jar_", para o processing não usar este ficheiro e usar o bluecove ("bluecove-2.0.2-snapshot" que está na mesma pasta)...
Título: Re: Bluetooth Servos
Enviado por: XicoMBD em 02 de Junho de 2010, 00:02
Obrigado, Já fiz isso mas continuo a ter os mesmos erros  :(

Estou a usar o Windows XP...
Título: Re: Bluetooth Servos
Enviado por: microbyte em 02 de Junho de 2010, 00:12
Experimenta a tirar o segundo argumento nos construtores, assim:
Código: [Seleccione]
bt = new Bluetooth(this);
Título: Re: Bluetooth Servos
Enviado por: XicoMBD em 02 de Junho de 2010, 00:16
Código: [Seleccione]
    bt = new Bluetooth(this); // RFCOMM
Citar
The constructor Bluetooth(Bluetooth) is undefined

Não dá também...
Título: Re: Bluetooth Servos
Enviado por: microbyte em 02 de Junho de 2010, 00:23
Há aí coisa com a biblioteca Bluetooth...
Isso em que programa? Mobile Processing ou Processing?
Título: Re: Bluetooth Servos
Enviado por: XicoMBD em 02 de Junho de 2010, 14:14
Processing:
(https://lusorobotica.com/proxy.php?request=http%3A%2F%2Fimg268.imageshack.us%2Fimg268%2F5897%2Fprtscprocessing.png&hash=8d4dc2620612abf66a97b8f398dc66f77d1d60d0)

A biblioteca está assim:
(https://lusorobotica.com/proxy.php?request=http%3A%2F%2Fimg210.imageshack.us%2Fimg210%2F1390%2Fprtscprocessing1.png&hash=12f46781e4d91dd927210fcb9f1b1baef7dcdc9b)
Título: Re: Bluetooth Servos
Enviado por: microbyte em 02 de Junho de 2010, 14:21
Eu disse para mudares o nome do ficheiro para "avetanaBT.jar" para "avetanaBT.jar_", ou outra coisa qualquer... Muda-lhe o nome.
Título: Re: Bluetooth Servos
Enviado por: XicoMBD em 02 de Junho de 2010, 14:33
Eu sei, mas apenas tinha conseguido trocar o nome para avetanaBT_.jar, o que não fez nada. :-\
Para o que querias servia assim, ou é mesmo necessário trocar a terminação? Como o posso fazer?
Título: Re: Bluetooth Servos
Enviado por: microbyte em 02 de Junho de 2010, 14:44
penso que servia assim, não sei o que poderá ser mesmo...

A mim parece-me que ele não está a detectar a biblioteca bluetooth.
Fizeste o import?
import bluetoothDesktop.*;

Não dá erro no import?
Título: Re: Bluetooth Servos
Enviado por: XicoMBD em 02 de Junho de 2010, 14:53
Fiz um programa só com isso e correu bem...
(https://lusorobotica.com/proxy.php?request=http%3A%2F%2Fimg441.imageshack.us%2Fimg441%2F2108%2Fprtscprocessingbluetoot.png&hash=a093ce6b97e9031dcb0c5b0dc1b6b012f840c585)
Título: Re: Bluetooth Servos
Enviado por: microbyte em 02 de Junho de 2010, 14:56
Aparentemente ele não reconhece o construtor Bluetooth().

Experimenta este código e vê se dá o mesmo erro:
http://www.extrapixel.ch/processing/bluetoothDesktop/examples/simpleBluetooth/simpleBluetooth.pde (http://www.extrapixel.ch/processing/bluetoothDesktop/examples/simpleBluetooth/simpleBluetooth.pde)
Título: Re: Bluetooth Servos
Enviado por: XicoMBD em 02 de Junho de 2010, 15:00
Não, Esse funciona...  :)
(https://lusorobotica.com/proxy.php?request=http%3A%2F%2Fimg693.imageshack.us%2Fimg693%2F2108%2Fprtscprocessingbluetoot.png&hash=c1ddfa7e9f7df6e09ffdc82dcb3b49c673957c5d)
Título: Re: Bluetooth Servos
Enviado por: microbyte em 02 de Junho de 2010, 15:06
Então está tudo bem com a bilbioteca...

Volta a copiar o código. E CERTIFICA-TE que estás a copiar o código para o processing.
Título: Re: Bluetooth Servos
Enviado por: XicoMBD em 02 de Junho de 2010, 15:25
Copiei para um novo ficheiro

Inicialmente dá um erro que já corrigi das outras vezes:
Na linha 57 tens "recibido" em vez de "recebido".

Mas sem ser isso funcionou  :)

Continuo e sem perceber porque é quando copio o mesmo código para o programa onde estava chamado Bluetooth não funciona.  :o

Aparece é o mesmo que aparecia ao zordlyon. "error. is your bluetooth on?"

O meu bluetooth vem incorporado no PC e acho que está ligado, pelo menos o telemóvel detecta-o.


Tiveste de ligar alguma coisa?
Título: Re: Bluetooth Servos
Enviado por: microbyte em 02 de Junho de 2010, 15:28
Obrigado pela correcção.  ;)

É capaz de ser mesmo por causa do nome. Estás a usar um constructor com o mesmo nome do programa, é capaz de se baralhar.

Eu estou a usar Mac OS X, apenas tenho de activar o bluetooth e tudo funciona... ("It just works!" :P )
Não emparelhes o Telemóvel com o PC, pois o programa é que trata disso...
Título: Re: Bluetooth Servos
Enviado por: XicoMBD em 02 de Junho de 2010, 15:51
Não tinha emparelhado.
E o problema que também tinha com o Mobile Processing também tinha sido relacionado com o facto de ter chamado "Bluetooth" ao programa.  ::)
No telemóvel a aplicação já corre mas apenas aparece "Waiting for base..."

No PC exportei a aplicação mas deu um erro relacionado com o ficheiro que tinhas mandado trocar o nome. Voltei a por o original e já apareceu "searching..." mas passado algum tempo aparece "Service simple service not found". Já tentei isso com o telemóvel com a aplicação ligada, claro.


PS: Pode o facto de não ter nenhum arduino ligado ao PC influenciar o emparelhamento entre este e o telemóvel?
Título: Re: Bluetooth Servos
Enviado por: microbyte em 02 de Junho de 2010, 17:27
Tu crias o servidor no telemóvel, logo esse tem de ser o primeiro a ser ligado.

1. Ligas o bluetooth no telemóvel
2. Executas a aplicação java no telemóvel até aparecer "waiting for base..." (o servidor fica criado, à espera de um cliente)
3. Executas a aplicação no PC (vai ser o cliente), e este é que vai à procura do servidor que criaste no telemóvel.

Testa isto desta forma e depois diz alguma coisa.

Respondendo à outra questão, não, a ligação com o Arduino é algo "paralelo" à aplicação, de qualquer forma, como estas a iniciar a comunicação Serial, pode haver problema.
Liga um Arduino só, mesmo sem estar preparado para receber estes dados.
Título: Re: Bluetooth Servos
Enviado por: XicoMBD em 02 de Junho de 2010, 19:29
Foi assim que tinha feito, seguindo o teu video.

O problema é que não tenho nenhum arduino...  :-[
Será uma das minhas próximas aquisições, mas por agora so tenho picaxes.

Título: Re: Bluetooth Servos
Enviado por: microbyte em 02 de Junho de 2010, 21:32
Foi assim que tinha feito, seguindo o teu video.

O problema é que não tenho nenhum arduino...  :-[
Será uma das minhas próximas aquisições, mas por agora so tenho picaxes.

Em princípio qualquer porta Série servirá. Até o PICAXE, se este tiver porta série.
Mas sinceramente não creio que seja disso.

No telemóvel tens a opção de deixar os outros ver-te activada?
Título: Re: Bluetooth Servos
Enviado por: XicoMBD em 02 de Junho de 2010, 22:01
Sim,  e aquele programa que me deste para experimentar detecta o meu telemóvel.
Título: Re: Bluetooth Servos
Enviado por: microbyte em 02 de Junho de 2010, 22:09
Agora experimenta esse programa que te passei detecta o telemóvel quando tens o servidor ligado (aplicação java a correr).
Título: Re: Bluetooth Servos
Enviado por: XicoMBD em 02 de Junho de 2010, 22:11
Sim, detecta  :)

Nunca aparece nada é por baixo de "Services" e "Clients"  :-\
Título: Re: Bluetooth Servos
Enviado por: microbyte em 02 de Junho de 2010, 22:13
Mas devia era detectar como "Service", pois o que está a correr no telemóvel é um "Service", logo agora deve passar-se algo com o código do telemóvel.

Tens a certeza que deste as permissões necessárias para a aplicação usar o Bluetooth do telemóvel?
Título: Re: Bluetooth Servos
Enviado por: XicoMBD em 02 de Junho de 2010, 22:25
Que eu saiba sim, até lhe dei permissão para utilizar a conectividade local sem ter de perguntar.

O telemóvel é que já é velhinho, já tem uns 3 anos e meio, mas está na lista do mobile processing. É um SonyEricsson k600i.


Dá para anexares o programa já compilado só para experimentar?
Título: Re: Bluetooth Servos
Enviado por: microbyte em 07 de Junho de 2010, 20:15
Anexo o ficheiro compilado de Mobile Processing, para o telemóvel.

Dá notícias.
Título: Re: Bluetooth Servos
Enviado por: XicoMBD em 07 de Junho de 2010, 21:35
O problema parece ser mesmo do Windows  :-\
Já tentei com essa aplicação no meu e noutro telemóvel e continua a não acontecer nada...
Título: Re: Bluetooth Servos
Enviado por: XicoMBD em 08 de Junho de 2010, 21:57
No teu computador o simpleBluetooth detecta mesmo os services?


Outra Coisa:
O melhor mesmo é criares uma aplicação para comunicares entre os dois pc's em processing ou em python...

quem é bom para te explicar isso é o microbyte :P

Já fizeste alguma coisa desse género? Utilizar outro computador em vez do telemóvel?
Título: Re: Bluetooth Servos
Enviado por: microbyte em 08 de Junho de 2010, 23:08
Não testei o dito programa... Mas em princípio listará o serviço. Quando tiver tempo, eu testo, ok?

Não misturemos os tópicos.
Título: Re: Bluetooth Servos
Enviado por: XicoMBD em 08 de Junho de 2010, 23:25
Ok, claro.

Obrigado  :)