Pesquisa personalizada

2010/03/05

Gym4Us 1.0 - O Que Você Precisa Para Fazê-lo

Se quer já começar a correr atrás dos componentes necessários para o projeto, segue uma lista parcial:

  • Osciloscópio
    Pode ser qualquer.
    Eu mesmo uso um equipamento de baixo custo que funciona via USB. Trata-se do DSO-2150 USB que me custou USD$ 150,00 no eBay.
  • Multímetro
    Novamente pode ser qualquer aparelho - até mesmo aqueles de R$ 15,00 que se encontra nos camelôs.
  • Cinta transmissora de monitoramento cardíaco compatível com o padrão de 5KHz ou 5.4KHz
    Eu uso a Polar T31 non-coded
  • Opcional: Relógio ou equipamento receptor para a cinta transmissora de modo que você possa conferir a recepção e transmissão
    Estou sem relógio para a cinta Polar T31. Inicialmente tinha a cinta e o relógio do Polar RS300X, mas foi vendido e não tenho mais.
    O que sobrou foi um sistema de monitoramento Timex com o relógio e a cinta, mas a cinta é incompatível com o Gym4Us, pois transmite seus dados num sistema RF digital que é totalmente diferente do que foi utilizado no projeto do Gym4Us 1.0. Dessa forma, só utilzei o Timex para conferir se o batimento cardíaco que calculei estava correto (e está!). Obviamente usei as duas cintas simultâneamente para poder conferir o resultado. Mas se você já tiver o relógio para sua cinta, com certeza será melhor até mesmo para o uso prático/diário, pois poderá olhar no relógio quando precisar, sem ter que ficar dependendo unicamente do celular para conferir seus batimentos.
  • Módulo Bluetooth para Perfil de Porta Serial com UART
    Eu desativei o módulo GPS de um GPS Bluetooth e estou usando somente o módulo Bluetooth dele para transmitir os dados
  • Opcional: Dongle USB Bluetooth
    Se seu desktop ou notebook já tiver suporte a Bluetooth, não é necessário. Qualquer adaptador serve. De qualquer forma, é opcional se você não for depurar pelo PC. Se você for comprar um adaptador Bluetooth, compre algum que tenha o gerenciado da BlueSoleil ou Widcomm/Broadcomm, pois o gerenciador do Windows é quase inútil!
    No meu caso foi extremamente útil no desenvolvimento do Gym4Us, desde a fase de testes, até a fase de descoberta do protocolo aceito pelo Nokia Sports Tracker.
  • Microcontrolador PIC16F628A
    Futuramente irei usar outro microcontrolador. Provavelmente um ARM7 da família LPC2000 da NXP que consome pouca energia, é barato e pequeno.
  • Programador para o PIC16F628A
    Eu tenho um ICD2 da Labtools. Você pode até mesmo fazer o seu, há vários projetos na Internet que ensinam a montar programadores para PIC. No Mercado Livre também pode-se encontrar soluções prontas de baixo custo.

Reaproveitando Componentes de Sucata para o Projeto Gym4Us

Durante toda a pesquisa e desenvolvimento do que me levou ao Gym4Us, tive em mente minha atual falta de grana e por isso evitei ao máximo adquirir qualquer componente eletrônico. Me limitei aos que já possuo em meu laboratório - que também é meu escritório e quarto de visitas. Tenho 99.9% de coisas entulhadas em meu laboratório que nunca utilizo e dessa vez quis dar uso a algumas delas.

Do Monitor CRT: Fios Esmaltados

Como exemplo, cito o monitor CRT que não funcionava mais e que já estava sem uso há mais de um ano e que o desmontei para retirar os fios esmaltados que necessitava. Preferi retirar os fios do monitor, do que de transformadores velhos que tenho de montes - dá muito trabalho retirar estes fios de transformadores velhos e corre-se sempre o risco de machucar-se com as placas de ferro de seu núcleo e carcaça; eu sempre acabo por me cortar quando tento retirá-las.

Do MODEM: Indutores

Além do monitor e dos transformadores, também ao longo de duas décadas, acumulei uma série de outros aparelhos que já não funcionam mais, mas que acabo guardando para que justamente possa reaproveitar seus componentes e assim, mesmo a custa de tempo, tentar economizar algum dinheiro.

Tinha alguns MODEMs e switches velhos e vi que eles tinham indutores que poderiam ser úteis posteriormente no projeto.

Do Rádio AM/FM: Bobina com Núcleo de Ferrite para Ondas Curtas

Do rádio velho que não funcionava, tirei a bobina com núcleo de ferrite. Ela poderia ser útil no caso de eu desenvolver uma bobina para a captação a distância (uns 30cm a 1m) do campo magnético oscilatório gerado pelo transmissor da cinta de monitoramento cardíaco.

GPS Bluetooth: Energia e Módulo Bluetooth

Há alguns anos atrás, por meados de 2006/2007, ao notar que naquela época havia um nicho - que já não há mais - de mercado, comecei a vender GPSs Bluetooth. Naquela época a qualidade dos equipamentos era outra, bem como as marcas que comercializava e o preço era coisa importante em tempos de dólar alto e tecnologia nova. Dessa forma, naquela época, optei por equipamentos que fossem mais baratos para que pudesse vendê-los - diferentemente de hoje que a marca dos equipamentos que vendo são de qualidade e os produtos também o são e apesar do preço ser superior, a qualidade também o é e não tenho problema. Como resultado da tecnologia ser nova e o equipamento ser de baixo custo, acabei por receber um ou outro equipamento com defeito. Ao longo do tempo, conforme ia identificado os equipamentos defeituosos, após providenciar outro equipamento ao cliente ou a devolução do valor pago, os separava de modo a devolvé-los ao fabricante numa futura oportunidade. A questão é que devolver equipamentos que não são fabricados no Brasil para o fabricante no exterior, é coisa complicada, cara e burocrática. Dessa forma, tive que assumir o prejuízo e ficar com as unidades defeituosas. Não as joguei fora, simplesmente anotei o problema e as deixei separadas para que pudesse usá-los como sucata. Devo ter uma dúzia de GPS Bluetooth com problemas.

A cinta de monitoramento utilizada pelo Nokia Sports Tracker transmite seus dados via Bluetooth e logo de início imaginei que o protocolo utilizado era o SPP (SPP - Serial Port Profile). Para ter certeza, fiz alguns testes utilizando um adaptador Bluetooth plugado ao meu computador e realizei o pareamento com o Nokia Sports Tracker. O NST buscava justamente pelo serviço de porta serial. Após eu indicar ao NST que ele deveria se conectar ao computador, ele o fazia conectando-se ao serviço de SPP que havia habilitado no computador. O gerenciador WidComm me indicava a conexão e o NST ficava aguardando dados do dispositivo Bluetooth, no caso, o computador. Dessa forma, tive certeza que realmente era necessário um módulo Bluetooth com o perfil de porta serial.

Como sabia que iria precisar de um módulo bluetooth para poder transmitir a informação do batimento cardíaco ao celular, logo após desconsiderar o gasto de dinheiro com aquisição de um módulo bluetooth no exterior, acabei por me lembrar deste monte de GPS Bluetooth com problema. Para quem não sabe, os GPS Bluetooth utilizam o perfil de porta serial. O próprio protocolo NMEA 0183 foi criado pensando-se numa comunicação serial e geralmente os GPS Bluetooth trabalham com o protocolo NMEA 0183. Dessa forma, tem-se um módulo Bluetooth com suporte ao perfil de porta serial em cada um dos GPS Bluetooth. Pensei que a chance conseguir reaproveitar algum módulo bluetooth dos GPS Bluetooth seria pequena, mas mesmo assim, devia tentar.

Como justamente iria usar um GPS Bluetooth com problemas, tinha que ter certeza que o problema não estaria na parte bluetooth, ou do contrário, não me teria utilidade. Comecei escolhendo algum GPS Bluetooth que eu tivesse certeza que o bluetooth funcionava. Para tanto, liguei o GPS Bluetooth e realizei o pareamento do GPS Bluetooth com o computador e capturei as sentenças NMEA utilizando um programa de comunicação serial. Se você não tem experiência com dispositivos seriais com os GPS Bluetooth, saiba que qualquer programa de comunicação serial serve. Incluindo: Hyperterminal, Putty, screen, gtkterm e outros. Então usando o programa de comunicação serial, vi que as sentenças estavam sendo recebidas corretamente. O problema do GPS Bluetooth parecia estar no próprio módulo GPS que nunca conseguia estabelecer sua posição, mesmo quando em condições de recepção excelentes. Ótimo! Consegui um módulo Bluetooth.

Identificado um aparelho que tivesse o módulo Bluetooth funcionando, após abri-lo, podia-se ver claramente o que era o módulo GPS e o que era o módulo Bluetooth. O próximo trabalho seria identificar qual o pino onde se encontra a saída UART (TX - saída da porta serial) do módulo GPS. O conceito é simples: o GPS envia os dados de suas sentenças utilizando-se de uma saída serial; esta saída serial deve estar ligada a uma porta serial de entrada (RX - recepção) da UART do módulo Bluetooth. Assim, o GPS transmite os dados das sentenças para o módulo Bluetooth e o módulo Bluetooth as recebe. Então bastava-se encontrar o pino de saída do GPS ou o pino de recepção do módulo Bluetooth. Para isso, sabia previamente de algumas características do sinal que deveria identificar, sendo:

  • A comunicação típica de qualquer GPS é 4800 bauds, nenhuma paridade, um bit de parada e sem controle de fluxo.
    As vezes o baudrate é outro, mas isto é incomum. Tenho visto módulos GPS com baud rates de 4800, 9600 e 38400.
  • O nível do sinal da UART seria LVTTL. No caso, poderia estar entre 1,8V a 3,6V quando em nível alto e abaixo de 0,6V quando em nível baixo;
  • As sentenças NMEA são enviadas todas de uma vez e após serem enviadas, há uma pequena pausa na transmissão do GPS, ou seja, após uma atividade, há um pequno período onde não há atividade alguma na UART do GPS. Este padrão se repete a cada segundo.
  • Por fim, tendo sorte, haveria um pino do lado do módulo GPS que teria um pino com os mesmos sinais do lado do módulo Bluetooth, ou seja, um pino com a TX do GPS e do lado do Bluetooth, haveria uma RX.

Com o GPS Bluetooth ligado e transmitindo para o bluetooth do computador (se não estiver transmitindo, geralmente o GPS é desligado para economizar energia e seria impossível identificar atividade), após inspecionar, com ajuda de um multímetro (não cheguei a usar o oscilóscopio até aqui) vários pinos do lado do GPS e do lado Bluetooth, encontrei um padrão de sinal que parecia ser o característico de uma UART transmitindo dados típicos de GPS (sentenças NMEA). Para ter certeza, aí então, usei o oscilóscopio para "ver" se realmente o sinal estava dentro do que seria uma UART. Pelo oscilóscopio, mesmo sem fazer uma análise dos dados à nível digital, vi que realmente era uma UART e que a transmissão estava se dando no que parecia ser 4800 bauds.

Identificado os pinos de transmissão do GPS e recepção do Bluetooth, o próximo passo foi desativar o pino de transmissão do GPS. Isto deu um pouquinho de trabalho pois se trata de componentes muito pequenos e com alta densidade de integração. Tentei simplesmente queimar com o ferro de solda o pino TX do módulo GPS, mas ainda assim, mesmo sem o pino RX do Bluetooth apresentar atividade aparente, todas as vezes que ligava o GPS Bluetooth, era transmitido alguns dados contendo a identificação da firmware do módulo GPS e após isso, nada mais era transmitido - naturalmente via isso com o programação de comunicação serial no computador. Então, presumi que talvez houvesse alguma outra saída que ainda estivesse se comunicando com o módulo Bluetooth, derrepente alguma saída de depuração ou mesmo algum outro tipo de saída, como: SPI ou I2C. Num ato de loucura, resolvi ir queimando pino-a-pino do módulo GPS até que nada fosse apresentado no programa de comunicação serial que usava no computador ao ligar o GPS Bluetooth. Após queimar alguns pinos, como eram muitos, já estava um tanto entediado com aquilo. Então, resolvi mesmo foi tentar remover na base da força bruta o módulo GPS do circuito. Peguei um alicate e tentei remover o módulo GPS, sem sucesso - estava muito bem preso ao resto do circuito. Insanamente, com o próprio alicate, comecei a "raspar" aquele monte de capacitores e resistores SMD em miniatura que haviam no módulo GPS (e somente no módulo GPS). Após isso, vi que ao ligar o GPS Bluetooth, nada mais era transmitido ao computador, apesar do Bluetooth ainda estar funcionando. Restava então saber, se seria capaz de transmitir dados para o módulo Bluetooth usando daquele pino de recepção que havia identificado previamente.

A continuar.... (estou escrevendo)

Labels: , , , , , ,

3 Comments:

Blogger Guillermo Salazar said...

Gym4Us FTW!! please post some images!

07 March, 2010 20:02  
Blogger Guillermo Salazar said...

Gym4Us FTW!! please post some images!!

07 March, 2010 20:02  
Blogger Unknown said...

To receive the HRM signal from up to 1m away from the transmitter this circuit might do the trick: http://rick.mollprojects.com/hrm/index.html

My friend built it according to those instructions and it seemed to work fine! Btw, could you post the protocol/source code where you send the data to the bluetooth module. I have a course in my university where I should build something around Arduino processor based Teensy board, and I was thinking if I could build this Gym4us :)

12 May, 2010 09:19  

Post a Comment

<< Home