Outro dia desses, passeando com o Vinícius Senger da Elétron Livre pela Santa Efigênia em São Paulo, ele me mostrou o Amarino, uma aplicação Android para enviar os eventos do smartphone (acelerômetro, bússola, sensor de iluminação, sms recebidos, etc) para a Arduino via Bluetooth.
Uma semana depois de nossa conversa chegou aqui em casa o BlueSRiRF Gold, modem Bluetooth que comprei na Sparkfun. Saiu bem carinho (U$D 64,00), mas ele promete um alcance de 106m!!! Não perdi tempo e instalei o Amarino e o pacote de plugins no meu Samsung Galaxy S.
Confira o resultado:
Por incrível que pareça, foi simples montar esse projeto. Tudo que você precisa é:
- Arduino
- Modem Bluetooth (usei o BlueSRiRF Gold)
- Smartphone Android equipado com um acelerômetro
Configurando o modem:
Para configurar o modem no MacOS X usei esse tutorial, mas tive que improvisar um pouco, pois está desatualizado.
Segue um complemento da primeira parte do tutorial, para parear o modem com o Mac:
- Ligue o modem nos 5v da Arduino
- Nas opções de Bluetooth, selecione “Set up Bluetooth Device” e selecione o modem (o meu apareceu como FireFly-alguma-coisa).
- Quando pedir a senha, vá em “Passcode options”, selecione a opção “Use a specific passcode” e informe “1234″ (em alguns modelos o PID pode ser “default”)
- Nas opções de Bluetooth, selecione “Open Bluetooth Preferences…”
- Selecione o modem BlueSMiRF e abra a opção “Edit Serial Ports…” nas configurações (ícone da engrenagem)
- Adicione uma nova porta, selecione o protocolo “modem” e marque a opção “Require pairing for security
- Agora é só seguir o tutorial acima para o restante
Código Fonte
O código é bastante simples. Me baseei nos exemplos da biblioteca do Amarino.
Basta baixar a biblioteca do Amarino e jogá-la na pasta da Arduino IDE.
No Mac, a Arduino IDE vem num pacote “.app”, então siga os passos:
- Com o botão direito no arquivo Arduino.app, selecione a opção “Show Package Contents”
- Jogue a pasta do Amarino descompactada no seguinte diretório: “Contents > Resources > Java > libraries”
O código que desenvolvi está disponível no github: http://github.com/lucasfragomeni/arduino
Massa Frago,
Assim que tiver a minha arduíno em mão, vamos ver se deixo ela brinca com meu Nexus One =P
Extremely Cool!
FragoMonstro da ArduinoLand!!!!
Estamos desenvolvendo um TCC, que tem a ideia de controlar um carrinho via bluetooth, e ao fazermos pesquisas acabamos nos deparando com sua pesquisa.
Nos interessamos pela sua ideia, e gostaríamos de saber se teria como entrarmos em contato para saber um pouco mais deste seu trabalho.
Muito interessante seu projeto, estou tentando receber dados pelo Amarino, mas estou com algumas dificuldades, gostaria da saber se você utilizou algum evento para o controle do carrinho!? Abraços.
Muito interessante seu projeto, estou tentando receber dados pelo Amarino, mas estou com algumas dificuldades, gostaria da saber se você utilizou algum evento para o controle do carrinho!? Se puder me ajudar. Abraços.
HI..
Can we use any other bluetooth device for interfacing?(Cheaper one).
I figure… As long as it is compatible with Arduino (Serial TTL). I bought that in Sparkfun…
Muito interessante, vou comprar um Amarino, mas pq. vc não usou o Shield Bluetooth, além de ser mais barato vc pode enviar para qualquer mobile (não precisa ser android).
Legal pra caramba! Mas tenho uma dúvida: A interface do App no Android foi desenvolvida na própria linguagem do Android?
Cara, ja trabalhei com bluetooth um tempo, e se vc conectar uma antena de roteador da pra ampliar MTO o sinal. Lí d+ sobre o assunto, principalmente no ponto de resposta do aparelho não amplificado, e todos meus testes funcionaram. Se animar, pega uma anteninha mais fuleira e testa o alcance com o arduino. Fritar uma de 64USD ia doer no bolso.
Desireè, usei esse módulo por ter um alcance muito bom (100m!). Quanto à poder usar com qualquer mobile, esse também pode.
Gabriel, Android usa uma versão mais leve do Java. O Amarino é composto de duas partes: uma biblioteca para o Arduino e um App para o Android.
Boa dia, gostei imenso do robot e gostaria de saber se programou android.
Obrigado
Bom dia Gonçalo. Usei um aplicativo chamado ‘Amarino’. No meu outro blog tem mais instruções: http://bebop.cc/blog/2011/05/30/arduino-bluetooth-android/
Muito obrigado por ter respondido. Mais alguma dúvida pergunto-lhe
Boa tarde, gostaria de saber se este projeto também dá para fazer com o telemóvel Samsung Galaxy S II?
Obrigado
Gonçalo,
Acredito que sim. Eu usei o Galaxy S I.
Ok, obrigado mais uma vez
Boa tarde novamente, será possivel ter o seu e-mail sff?
Obrigado
ArduinoCommander application to control your arduino board for free – https://market.android.com/details?id=name.antonsmirnov.android.arduinocommander
Lucas…acha que é possivel implementar comandos de voz.
a um projeto como esse.
estou desenvolvendo um projeto.
onde gostaria de controlar um motor por voz.
mas encontrei alguns problemas quanto a gerar as bibliotecas para reconhecimento de voz.
com o android seria possivel?
grato…
parabens pelo projeto.
Felipe, a Arduino não tem processamento para fazer reconhecimento de voz, mas é possível fazê-lo usando um shield de reconhecimento de voz (na Sparkfun tem um: http://www.sparkfun.com/products/10963). Com certeza dá para implementar com algo assim.
Olá!! Projeto muito interessante. Gostaria de saber uma coisa.Você modifica também os programas no Eclipse? Pois estou tentando fazer uma aplicação bluetooth com arduino só que sem usar o amarino, mas estou encontrando muitas dificudades, então, pensei que fosse possível mudar alguns projetos jah prontos para o amarino, criando outra interface e usar apenas a parte de configuração da comunicação e envio do bluetooth…Até mais cara, valew!
Ueslei, acho que uma boa abordagem é pegar o código do Amarino (que é open-source) e adaptá-lo ao seu projeto. Já tentou isso?
Boas a todos, alguem já fez este projeto arduino + bluetooth + android? Se sim, no código do arduino temos que mudar “register Function” para o ID ID atribuído ao sensor no Amarino, como é que sei qual é o meu ID e como colocar na linha de código? Obrigado