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
-
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)
-
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.
-
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.
-
Também já tinha testado o Mobile Processing e realmente está muito bom assim como o teu projecto :)
-
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...
-
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.
-
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..
-
Tenho mais uma duvida, onde escolho ou como escolho o Wireless Tollkit location??
Cumprimentos...
-
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...
-
Brutal microbyte!
Só agora vi este teu projecto e gostei bastante. Os meus parabéns ;)
-
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...
-
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)
-
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..
-
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...
-
A unica coisa que tenho ligado é emparelhado o telemovel com o pc e da perfeitamente...
a firewall ja desliguei...mas ta mau :( >:( >:(
Cumprimentos...
-
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.
-
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...
-
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.
-
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...
-
Antes de continuarmos, já verificaste se o teu telemóvel é suportado pelo Mobile Processing?
-
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..
-
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.
-
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...
-
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
-
lool pois eu logo imaginei isso.. :D.
Eu ando aqui a tentar martelar nisto... ;) ;)
Cumprimentos...
-
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:
bt = new Bluetooth(this, 0x0003); // RFCOMM
Perhaps you wanted the overloaded version "Bluetooth();" instead
Processing:
bt = new Bluetooth(this, Bluetooth.UUID_RFCOMM); // RFCOMM
Cannot find anything named "Bluetooth.UUID_RFCOMM"
Como os posso solucionar?
Tenho muito pouca experiência em processing... :-[
-
Boas, obrigado pelo feedback!
Instalaste as bibliotecas Bluetooth, respectivas, correctamente?
-
Correctamente não devo ter instalado...
Como se faz?
-
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)...
-
Obrigado, Já fiz isso mas continuo a ter os mesmos erros :(
Estou a usar o Windows XP...
-
Experimenta a tirar o segundo argumento nos construtores, assim:
bt = new Bluetooth(this);
-
bt = new Bluetooth(this); // RFCOMM
The constructor Bluetooth(Bluetooth) is undefined
Não dá também...
-
Há aí coisa com a biblioteca Bluetooth...
Isso em que programa? Mobile Processing ou Processing?
-
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)
-
Eu disse para mudares o nome do ficheiro para "avetanaBT.jar" para "avetanaBT.jar_", ou outra coisa qualquer... Muda-lhe o nome.
-
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?
-
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?
-
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)
-
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)
-
Não, Esse funciona... :)
(https://lusorobotica.com/proxy.php?request=http%3A%2F%2Fimg693.imageshack.us%2Fimg693%2F2108%2Fprtscprocessingbluetoot.png&hash=c1ddfa7e9f7df6e09ffdc82dcb3b49c673957c5d)
-
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.
-
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?
-
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...
-
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?
-
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.
-
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.
-
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?
-
Sim, e aquele programa que me deste para experimentar detecta o meu telemóvel.
-
Agora experimenta esse programa que te passei detecta o telemóvel quando tens o servidor ligado (aplicação java a correr).
-
Sim, detecta :)
Nunca aparece nada é por baixo de "Services" e "Clients" :-\
-
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?
-
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?
-
Anexo o ficheiro compilado de Mobile Processing, para o telemóvel.
Dá notícias.
-
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...
-
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?
-
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.
-
Ok, claro.
Obrigado :)