LusoRobótica - Robótica em Português

Robótica => Projectos de robótica => Tópico iniciado por: mocoto em 28 de Julho de 2013, 20:28

Título: Projecto Arduino
Enviado por: mocoto em 28 de Julho de 2013, 20:28
Boas pessoal,

Tenho em mãos um projecto que quero desenvolver, contudo preciso de uma ajuda vossa. (não sei se este é o local correcto para fazer esta questão)

tenho um equipamento que preciso ligar ao Arduino, para que o Arduino posso analisar os dados.

Estes dados podem ser recolhidos através de uma porta USB. E já andei a pesquisar e para que esse equipamento comece a enviar os dados precisa de receber um código em ASCII.

Então eu já adquiri uma porta USB fêmea para poder ligar o cabo USB que vem do equipamento ao Arduino.

Agora só não sei como faço para ligar a porta USB fêmea ao Arduino e programar o Arduino para que este envie o código ASCII por essa porta USB fêmea e fique à "escuta" dos dados que o equipamento vai enviar e que os guarde num array.


Espero mesmo que me consigam ajudar!
Obrigado a todos os que tem ajudarme
Título: Re: Projecto Arduino
Enviado por: tarquinio em 28 de Julho de 2013, 20:35
Qual é o dispositivo que queres ligar? Se for um dispositivo feito para ser ligado a um PC por USB, isso vai complicar logo a coisa...
Título: Re: Projecto Arduino
Enviado por: mocoto em 28 de Julho de 2013, 20:45
o equipamento que quero ligar ao arduino é um medidor de Glicemia

(http://www.libertymedical.com/uploadedimages/products/diabetes/THS70804SPNC/abbott-freestyle-lite-blood-glucose-monitoring-system-VIDEO.jpg (http://www.libertymedical.com/uploadedimages/products/diabetes/THS70804SPNC/abbott-freestyle-lite-blood-glucose-monitoring-system-VIDEO.jpg))

como podes ver na imagem isso tem uma ligação Jack 2,5

e aqui podes ver o cabo que vem para ligar ao pc (é semelhante a esse so que em vez de ter essa ponta esquisita tem um jack 2.5)
(http://www.diabeticcareservices.com/images/10-42t.jpg (http://www.diabeticcareservices.com/images/10-42t.jpg))
Título: Re: Projecto Arduino
Enviado por: tarquinio em 28 de Julho de 2013, 21:07
Não tens mesmo um link do manual ou da página do produto?
Com alguma sorte o dispositivo até usa um protocolo mais simples que usb, e esse cabo especial faz a conversão para usb... (na foto vejo 3 contactos, se fosse usb teria pelo menos 4. pode é haver mais contactos do lado de trás... De qualquer modo, só vendo mesmo o manual/pagina do produto).
Título: Re: Projecto Arduino
Enviado por: tarquinio em 28 de Julho de 2013, 21:12
Estes dados podem ser recolhidos através de uma porta USB. E já andei a pesquisar e para que esse equipamento comece a enviar os dados precisa de receber um código em ASCII.

E já agora, onde é que descobriste esta informação?
Título: Re: Projecto Arduino
Enviado por: senso em 28 de Julho de 2013, 23:09
Se tem um jack desses, apostava mais numa simples ligação serial que qualquer outra coisa..
Se for USB, o arduino não faz host de usb.
Título: Re: Projecto Arduino
Enviado por: mocoto em 28 de Julho de 2013, 23:31
Antes de mais muito obrigado tarquinio por mostrares interesse em me ajudares.

O que te posso mostrar é o site do equipamento
https://www.abbottdiabetescare.pt/?idc=220&idi=6556 (https://www.abbottdiabetescare.pt/?idc=220&idi=6556)

o site do programa/drivers para poder transferir os dados do equipamento para o computador
https://www.abbottdiabetescare.com/products/patient/data-management/copilot-health-mgmt-system.html (https://www.abbottdiabetescare.com/products/patient/data-management/copilot-health-mgmt-system.html)

Em relação a precisar de receber um código ASCII, posso te dizer que depois de ligar o cabo ao equipamento é necessário executar o programa e por sua fez clicar no botão de transferência de dados.

Através de procedimento cheguei a conclusão que o programa tem que enviar "algo" para equipamento para que este comece a transferir os dados que tem arquivados. Para comprovar isso usei um programa de snifer USB, que me comprovou isso que acabei de dizer.

Mais uma vez obrigado pela ajuda
Título: Re: Projecto Arduino
Enviado por: mocoto em 29 de Julho de 2013, 00:12
Se tem um jack desses, apostava mais numa simples ligação serial que qualquer outra coisa..
Se for USB, o arduino não faz host de usb.

E será que é possível?
Como é que eu posso experimentar, que tenho que fazer?
(tarquinio tem me estado a ajudar, mas mais uma possível hipótese não faz mal! ahah)
Título: Re: Projecto Arduino
Enviado por: tarquinio em 29 de Julho de 2013, 00:54
Pois no site assim de repente não vi informação nenhuma relevante sobre a comunicação...
A minha aposta tambem seria a mesma do Senso, é provável que o device use serial que depois é convertido para usb a partir do cabo.
A questão agora é como descobrir qual é o protocolo e quais sao os pinos utilizados... Tens alguma maneira de usar um osciloscopio/analisador de sinal para tentar descobrir isso? Se não for uma opção, podes sempre inventar um bocado e tentar identificar os pinos usando um LED  e uma resistencia de 10K (se ligares o led e a resistencia entre o gnd e o pino de TX, quando envias dados deves conseguir ver a intensidade do led a alterar ligeiramente.)
Depois de descobrires os pinos, podes ligá-los ao arduino e tentar fazer leituras a velocidades diferentes e ver se recebes alguma leitura consistente quando dás a ordem do PC.
Título: Re: Projecto Arduino
Enviado por: mocoto em 29 de Julho de 2013, 12:28
Não tenho como usar um osciloscopio/analisador de sinal, por isso vou ter que seguir a tua sugestão.

Vamos la ver se percebi:

Tenho que ligar o equipamento ao computador com o cabo normal só que no meio tenho que interceptar a informação? certo?
Ficando algo do género (equipamento -> analisador artesanal -> cabo do equipamento -> PC)

o gnd e o pino de TX referes-te a 2 das ligações que o cabo tem certo? eu tenho é que descobrir quais são elas?

(Desculpa tantas perguntas mas eu tirei Eng Informática e de electrónica percebo muito pouco ahah )
Título: Re: Projecto Arduino
Enviado por: tarquinio em 29 de Julho de 2013, 17:21
Hehe sim a parte da electronica tambem não é a minha especialidade, estou a  dar esta sugestão baseada num broblema parecido que tive, e desenrasquei-me assim. Mas no meu caso era mais simples, porque eu sabia onde estava o ground, por isso só tive de ligar o led e a resistencia entre o ground e os vários pinos para descobrir onde estava o tx (se não me engano, o normal é o led estar ligado, e quando se transmite dados perde um pouco a força.
A idéia era exactamente isso que tu percebeste. Inicialmente podes até ligar só o arduino directo aos dois pinos do cabo do PC (depois de os descobrires), e experimentar com um skech simples ir fazendo serial.reads() com várias velocidades diferentes, a ver se consegues apanhar os mesmos bytes que descobriste com o sniffer usb.
A única parte em que estou mais hesitante é em relação ao facto de não saberes onde está o ground (por exemplo se ligares o led entre os pinos Tx e Rx não estou certo do que aconteceria. Se conseguisses saber à partida onde estava o ground seria mais seguro. Se tiveres um multimetro, podes tentar descobrir onde está o ground à partida. É só veres na net qual o pino de ground de uma ficha USB, e depois veres qual das saídas do cabo é que tem uma resistencia muito proxima de 0 em relação ao ground.