Mouse como sensor para controle de posição.

Circuitos eletrônicos, topologias, diagramas elétricos, etc...

Moderadores: 51, Renie, gpenga

Mouse como sensor para controle de posição.

Mensagempor MOR_AL » 29 Jan 2008 14:48

Olá pessoal!

Estou prevendo a possibilidade de usar parte do mouse (o que tem uma esfera revestida de borracha) para fazer um controle de posição em um PIC.
A dúvida é bem simples. Como é possível identificar o SENTIDO do movimento do mouse?

Explico melhor.

Abri o mouse e ví que tem um led apontado para algo parecido com um fotodetetor. Entre eles há um disco com as extremidades com as características de um pente, para, ao se mover o mouse, o disco girar e produzir pulsos na saída do fotodetetor.
O detalhe é que, ao movimentar o mouse, só visualizo a informação da velocidade deste movimento.

Alguém saberia explicar como é feita a identificação do sentido deste movimento? Ou alguém sabe de literatura sobre este assunto?

Grato.
MOR_AL
"Para o triunfo do mal só é preciso que os bons homens não façam nada." Edmund Burke.
"Nunca discutas com pessoas estúpidas. Elas irão te arrastar ao nível delas e vencê-lo por possuir mais experiência em ser ignorante". Mark Twain
Avatar do usuário
MOR_AL
Dword
 
Mensagens: 2936
Registrado em: 19 Out 2006 09:38
Localização: Mangaratiba - RJ

Mensagempor brasilma » 29 Jan 2008 15:42

A identificação se dá pela sequencia de pulsos gerada, explico, há dois sensores em cada disco, defasados de 90 graus, quando gira em um sentido obtem uma sequencia de 0s e 1s, no outro outra.

A leitura deste tipo de sendor geralmente é feita por interrupção, liga um dos pinos (qquer um) na int e qdo for acionada lê o outro.

Monta o mapa que vai entender, ou melhor, faz uma busca no Google que tem tudo pronto...
" A Teoria orienta e a Prática decide" ;-)
Avatar do usuário
brasilma
Dword
 
Mensagens: 3621
Registrado em: 11 Out 2006 15:39
Localização: Planeta Terra

Mensagempor MOR_AL » 29 Jan 2008 20:15

Olá brasilma.

Não me refiro aos dois sensores e sim a apenas um.
Por exemplo.
Se você mover o mouse em uma direção alinhada com um dos sensores, o que é perfeitamente possível, o outro sensor (o disquinho) não se moverá. Fiz esta experiência com o mouse aberto.
Isso recai em algo equivalente a um mouse com apenas um movimento (de apenas um disquinho).
Neste caso, só vejo duas possibilidades e em ambas seria observado o mesmo fenômeno.
Imagine que você comece a fazer o movimento lento do mouse, alinhado com um sensor, e em apenas um sentido.

1 - Imediatamente antes do disquinho se mover ele estaria deixando passar a luz do led. Na saída do osciloscópio haveria um nível '1'. Logo após um dos "dentes" do disquinho bloquearia esta luz, aparecendo o nível '0'. Aí esta sequência de uns e zeros se repetiria, seguindo a velocidade do movimento do mouse.

2 - Imediatamente antes do disquinho se mover ele estaria bloqueando a luz do led. Na saída do osciloscópio haveria um nível '0'. Logo após o "dente" do disquinho sairia da frente e desbloquearia esta luz, aparecendo o nível '1'. Aí esta sequência de uns e zeros se repetiria, seguindo a velocidade do movimento do mouse.

O detalhe é que esta sequência de '1s' e '0s', ou '0s' e '1s' não determina o sentido do movimento. Apenas a velocidade. TEM que haver mais alguma informação de modo a determinar o SENTIDO do movimento.
Esta é a informação que eu estou procurando.

Grato.
MOR_AL
"Para o triunfo do mal só é preciso que os bons homens não façam nada." Edmund Burke.
"Nunca discutas com pessoas estúpidas. Elas irão te arrastar ao nível delas e vencê-lo por possuir mais experiência em ser ignorante". Mark Twain
Avatar do usuário
MOR_AL
Dword
 
Mensagens: 2936
Registrado em: 19 Out 2006 09:38
Localização: Mangaratiba - RJ

Mensagempor brasilma » 29 Jan 2008 20:25

Eu tbem, rs, rs

Qdo digo que os sensores estão defasados de 90 graus, não estou me referindo aos dois disquinhos alinhados em um angulo de 90 graus, um do outro.

Cada um dos dois disquinhos possui DOIS receptores defasados em 90 graus, olhe bem que vai perceber, o resto é como te falei.

A rotina é muito simples de implementar, ao receber a int lê o outro pino e incrementa ou decrementa o contador de posição.
" A Teoria orienta e a Prática decide" ;-)
Avatar do usuário
brasilma
Dword
 
Mensagens: 3621
Registrado em: 11 Out 2006 15:39
Localização: Planeta Terra

Mensagempor MOR_AL » 30 Jan 2008 18:16

Olá brasilma.

Agora entendi o que você quiz dizer anteriormente.

Acontece que, no meu caso, cada conjunto (dos dois existentes, X e Y) é composto por um led, com a respectiva lente de plástico em seu próprio invólucro, um disquinho e apenas UM foto-detetor. Inclusive este foto-detetor possui uma capinha emborrachada, com um furo para passar a luz apenas naquela área.
Tirei a capinha e não pude ver nada no interior do foto-detetor. A face que recebe a luz do led deve ter um filtro apropriado para aquela frequência.

Estive pensando como poderia ser uma possível solução e imaginei que se em cada foto-detetor houverem tres sensores alinhados com as raias do disquinho, de modo que cada raia possua uma largura igual a dois foto-sensores, aí se poderia ter a informação do sentido do movimento.


III
O O O

Os I's são os tres sensores dentro do foto-detetor, e os O's são as partes em que a luz passa. O espaço bloqueia a luz do led.
No exemplo acima o primeiro "furo" (a primeira letra "O") deixa passar a luz do led apenas nos dois primeiros sensores I's. O terceiro sensor não recebe luz.
Um movimento para a direita (das letras "O", simulando o movimento dos disquinhos) faria com que o primeiro sensor não mais recebesse luz, enquanto o segundo e o terceiro passariam a receber luz.
Monitorando-se continuamente os tres sensores pode-se detetar, além da mudança de estado sobre eles, o sentido do movimento.
Esta seria uma forma de detetar o sentido do movimento, porém não faço idéia se funciona assim.

Não estou (ainda) preocupado com a programação. Acredito que seja simples. Minha preocupação é em entender "Como Funciona". O resto é "resto". Tendo-se o conhecimento do conceito, a programação é consequência.

Confesso que mesmo no seu caso dos dois sensores, defasados de 90 graus em cada disquinho, ainda não pude entender sua explicação.
Ficaria grato se você tentasse explicar com maiores detalhes.
Por favor não se atenha à programação e sim como identificar o sentido do movimento, em função das condições dos dois sensores defasados de 90 graus no disquinho.

Grato
MOR_AL
"Para o triunfo do mal só é preciso que os bons homens não façam nada." Edmund Burke.
"Nunca discutas com pessoas estúpidas. Elas irão te arrastar ao nível delas e vencê-lo por possuir mais experiência em ser ignorante". Mark Twain
Avatar do usuário
MOR_AL
Dword
 
Mensagens: 2936
Registrado em: 19 Out 2006 09:38
Localização: Mangaratiba - RJ

Mensagempor brasilma » 30 Jan 2008 19:31

Mor,

Não precisa reinventar a roda não, se fizer uma tabelinha com os sinais dos dois sensores e acompanhar linha a linha, capta rapidinho.

Veja este link para ajudar: http://claymore.engineer.gvsu.edu/~jack ... l-182.html

Abraços,
MArcos.
" A Teoria orienta e a Prática decide" ;-)
Avatar do usuário
brasilma
Dword
 
Mensagens: 3621
Registrado em: 11 Out 2006 15:39
Localização: Planeta Terra

Mensagempor fabim » 30 Jan 2008 20:04

num sei dondé que vi.
Mais o cara usava um flipflop duplo JK para ler o sensor do mouse..

pra esquerda apenas um pulsava, pra direita o outro..

fabim
Mano, ve só.
Sou responsável pelo que escrevo!!! E não pelo que você entende !!!
fabim
Dword
 
Mensagens: 5001
Registrado em: 16 Out 2006 10:18
Localização: aqui uái!!!?

Mensagempor brasilma » 30 Jan 2008 20:16

Sim Fabim, existem muitos desses circuitos, vc os acha como "encoder quadrature circuit", eram usados em circuitos sem microcontrolador com contadores.
" A Teoria orienta e a Prática decide" ;-)
Avatar do usuário
brasilma
Dword
 
Mensagens: 3621
Registrado em: 11 Out 2006 15:39
Localização: Planeta Terra

Mensagempor LeandroPIC » 31 Jan 2008 11:45

esquece os sensores, le o que ele manda para o PC e trate isso!

Quando ele movimenta para cima ele manda um binario, para baixo outro, para esquerda outro e para direita outro.
Avatar do usuário
LeandroPIC
Byte
 
Mensagens: 163
Registrado em: 06 Jul 2007 12:19

Mensagempor brasilma » 31 Jan 2008 12:20

Legal Leandro, ótima ideia, como eu não tinha pensado nisso antes, conecta o mouse em um PC, pega a informação e manda pro PIC do amigo, fantástico!!!
" A Teoria orienta e a Prática decide" ;-)
Avatar do usuário
brasilma
Dword
 
Mensagens: 3621
Registrado em: 11 Out 2006 15:39
Localização: Planeta Terra

Mensagempor renatokodaira » 31 Jan 2008 12:25

renatokodaira
Byte
 
Mensagens: 402
Registrado em: 11 Out 2006 15:15

Mensagempor brasilma » 31 Jan 2008 13:25

Renato, infelizmente ai não há a informação que o colega precisa...
" A Teoria orienta e a Prática decide" ;-)
Avatar do usuário
brasilma
Dword
 
Mensagens: 3621
Registrado em: 11 Out 2006 15:39
Localização: Planeta Terra

Mensagempor MOR_AL » 31 Jan 2008 14:31

Olá Pessoal.

Comentando as suas respostas na ordem cronológica:

1 - Marcos.
Você se refere àqueles mouses que possuiam dois sensores em cada disquinho. Neste caso eu concordo contigo. Porém, como lhe havia dito antes, meu mouse possui apenas um dispositivo receptor. Pode ser até que dentro dele hajam dois sensores.
Não quero reinventar a roda, apenas quero saber como ela funciona, para poder utilizar os seus princípios em outros projetos.
O link informado possui dois casos:
a) Disquinho com duas fileiras de raias, o que recai na condição de dois sensores por direção (X ou Y).
b) Disco com raias que permitem identificar a posição. Este tipo de disco permite saber o sentido do movimento. Basta apenas comparar duas observações adjacentes. O detalhe é que este disco possui as raias apropriadas para tal, que não é o meu caso.

2 - Fabim.
O circuito com o JK faz exatamante o que eu disse para o Marcos. Ele monitora dois estados adjacentes e fornece a resposta. É um circuito seqüencial. Vou pesquisar sobre isso. Veja a figura dos estados lógicos abaixo.

3 - Marcos.
Vou pesquisar sobre "encoder quadrature circuit".

4 - LeandroPIC.
Ok! Se eu ler o que o mouse enviar para o PC, acho que teria que incluir o chip que vem junto, uma vez que ele faz alguma coisa. Só preciso da parte mecânica (LED, disquinho e fotodetetor) para implementar um sensor de posição (e é claro de como isso funciona). Quero pegar o "sinal" na saída do fotodetetor.

5 - Marcos.

Talvez seja isso que você se refere. Em vez de ler entre o mouse e o PC, manter a conexão com o PC, porém ler na saída do fotodetetor.
É uma idéia!

6 - renatokodaira.

Vi o site. Na verdade este site já havia sido sugerido, ou vi através de pesquisa na net. Não me lembro mais. O caso é que cada disquinho possui dois sensores. Meu mouse possui apenas um por disquinho.


Pessoal. Grato pelas respostas. Todas serviram para me inteirar mais sobre o assunto.

Como a evolução da eletrônica é colocar o máximo de circuitos no mesmo chip, acho que:

a) Os mouses mais recentes, ainda com esta tecnologia, possuem o chip com dois fotodetetores. Assim fica mais barato e pode-se identificar a posição.
b) O meu fotodetetor possui apenas tres pinos. Um deve ser para a alimentação, o outro para o terra e o outro para o sinal. O que me leva a pensar em um dispositivo com comunicação do tipo "One-Wire".
c) A identificação com apenas dois fotodetetores (ao invés de tres) é perfeitamente possível. Após analisar o problema, fiz um diagrama de estados de dois fotodetetores encontrados em um invólucro.

A figura de estados lógicos ajuda a compreender como identificar o sentido do movimento
Imagem

Para movimentos laterais:
D - Direita
E - Esquerda
P - Parado ou muito lento.
NE - Não existe esta condição. Basta que o feixe de luz seja mais largo que os dois fotos. Assim, nunca haverá mudança nos dois fotos ao mesmo tempo.
Faltaram os loops de cada estado lógico para ele mesmo, o que significa que o mouse está parado.

Grato a todos.

MOR_AL
Editado pela última vez por MOR_AL em 31 Jan 2008 18:39, em um total de 3 vezes.
"Para o triunfo do mal só é preciso que os bons homens não façam nada." Edmund Burke.
"Nunca discutas com pessoas estúpidas. Elas irão te arrastar ao nível delas e vencê-lo por possuir mais experiência em ser ignorante". Mark Twain
Avatar do usuário
MOR_AL
Dword
 
Mensagens: 2936
Registrado em: 19 Out 2006 09:38
Localização: Mangaratiba - RJ

Mensagempor renatokodaira » 31 Jan 2008 14:51

Já que o receptor tem 3 pinos, pode ser que seu sensor optico (fototransistor) seja duplo como a parte do receptor desse aqui:

http://www.ortodoxism.ro/datasheets/vishay/83755.pdf
renatokodaira
Byte
 
Mensagens: 402
Registrado em: 11 Out 2006 15:15

Mensagempor brasilma » 31 Jan 2008 15:28

Para quem ainda pensa em aproveitar este tipo de encoder do mouse, é bom correr e guardar alguns, pois nem sei mais se estão sendo fabricados...
" A Teoria orienta e a Prática decide" ;-)
Avatar do usuário
brasilma
Dword
 
Mensagens: 3621
Registrado em: 11 Out 2006 15:39
Localização: Planeta Terra

Próximo

Voltar para Circuitos Diversos

Quem está online

Usuários navegando neste fórum: Nenhum usuário registrado e 0 visitantes

cron

x