Apr 2
PyS60 Console Bluetooth no Linux
Posted by Flávio Ribeiro in Programação, Python on 04 2nd, 2009| icon32 Comments »

O desenvolvimento de aplicações em Python para celulares Symbian - além de ser muito divertido - pode ser a forma mais ágil de se fazer algo útil em pouco tempo.

O port do interpretador possibilita você a usar a camera, GPS, SMS e outros componentes do seu celular com algo em torno de 2~4 linhas.

Mas existe um problema. Pra você testar suas aplicações no ciclo de desenvolvimento precisa ter um MS Windows pra instalar o SDK. Uma outra solução muito adotada entre o pessoal que usa linux é usar o interpretador python do celular no computador, via bluetooth.

Assim, mesmo que você não teste sua apliação toda de uma vez, dá pra criar funções dentro do interpretador e testar pedaços do seu código.

Já existem dezenas de posts explicando como fazer essa façanha, mas aqui vou tentar fazer de uma forma mais simples.

Criei um arquivo chamado bluetooth.sh com o seguinte conteúdo:

#!/bin/sh

/etc/init.d/bluetooth start
sdptool add –channel=2 SP
sudo rfcomm listen /dev/rfcomm0 2

Agora, com o dongle bluetooth espetado no seu computador e devidamente registrado, apenas execute o script de root:

root@doritos:/home/flavio# chmod a+x bluetooth.sh; sh bluetooth.sh
* Starting Bluetooth                                            [ OK ]
Serial Port service registered
Waiting for connection on channel 2

Pronto, agora no seu celular, ative o bluetooth e abra o interpretador. Ao apertar Select\Opções vai aparecer:

Selecione o Bluetooth Console e procure pelo seu computador. Depois da primeira vez que seu celular tiver conectado ao computador ele vai gravar seu PC como ‘Default Host’, e a partir da segunda vez ele vai perguntar se você quer conectar ao Default Host ou se é a outro.

Eu, particularmente, sempre busco por outros, mesmo querendo conectar ao meu PC, porque vinha notando erros quando tentava conectar com o Default Host. Buscando por outros, de alguma forma a conexão estabiliza mais rapidamente quando seleciono o meu PC já achado pelo PyS60.

Quando o celular achar o seu computador e você selecionar ele, o terminal que estava aguardando por conexões depois da execução do nosso bluetooth.sh vai mostrar o seguinte:

root@doritos:/home/flavio# chmod a+x bluetooth.sh; sh bluetooth.sh
* Starting Bluetooth                                            [ OK ]
Serial Port service registered
Waiting for connection on channel 2

Connection from 00:18:42:9B:8D:65 to /dev/rfcomm0
Press CTRL-C for hangup

Olhe pra tela do seu celular, o PyS60 deve dizer que a conexão está OK.

Agora, com o minicom instalado no seu computador, abra um outro terminal e digite:

minicom -s

Vá em configuração da Porta Serial e sete o Dispositivo Serial para /dev/rfcomm0. Verifique se o Bps/Paridade/Bits está 9600 8N1, e se não tiver configure pra ficar dessa forma.

Pronto, agora quando você apertar em Sair no menu de configurações do minicom ele vai inicializar a leitura do dispositivo registrado em rfcomm0.

Agora é só testar seus códigos. Aqui tem alguns exemplos de testes a serem feitos no seu celular.

Com um dongle bluetooth desses genéricos (pra não dizer do mais barato) e um Ubuntu Linux 8.04 aqui no meu computador, foi preciso reinstalar o libbluetooth com o pacote do Debian Puro. Então se você estiver tendo problemas ao final desse post sem conseguir conectar seu celular ao seu linux, tente reinstalar seu bluetooth com essa biblioteca.