You are on page 1of 5

mais cleudiney10@gmail.

com Painel Sair

Eletrônicos
Domingo, 16 de junho de 2013 Arquivo do blog

► 2018 (1)
Projetos de mouse e optimouse Arduino PS2
► 2017 (1)
Uma vez que eu tinha a carruagem Frankenprinter funcionando, eu me interessei em fazê-la se
mover de acordo com alguma outra forma que não a emissão de passos ou comandos de ► 2016 (2)
aceleração. E, como eu estava interessado em saber como a impressora HP usava um mecanismo ► 2015 (1)
de estilo de código de barras para feedback de movimento, segui o caminho de obter um mouse para
entrada.
► 2014 (1)
▼ 2013 (26)
Aqui estão algumas fotos da faixa de código de barras da HP que inspiraram este mini-projeto. Esta
► novembro (3)
é uma tira de plástico mantida sob tensão e montada paralelamente à haste do carro da impressora.
O sensor do chip de código de barras é montado no suporte do cartucho de tinta, e seu sensor óptico ► julho (2)
brilha através da tira para um sensor em seu lado oposto. ▼ junho (21)
Aventuras Polulu A4988
Frankenplotter - conjunto
de parafuso de avanço
Frankenplotter - curvas de
Bezier cúbico em SVG
e Ja ...
Frankenplotter - um pouco
A banda parece uma barra cinza a olho nu ...
de chuva deve cair -
mas o ...
Frankenplotter - caneta
para cima / baixo
Mini-projeto de bandeja de
CD mini
Frankenplotter - desenho
mais do que apenas
círculos ...
Estrela e círculo de
Frankenplotter - para
provar x = menor, ...
Transporte de substituição
Frankenplotter, ste ...
Começos do
Frankenplotter
Rasgando a impressora
Brother, inicial XY axi ...
Projetos de mouse e
optimouse Arduino PS2
Movimento linear do eixo
Movimento da posição do
clipe e detecção de
posição
E / S serial do Arduino e o
Big Bug
Codificação Arduino
Modular
Bomba WBMD, spinner e
dumper - controle de
motor DC
Sensor de proximidade
ultra-sônico
Motores de passo
De volta ao começo
Estou começando meus
novos hackers
eletrônicos e fazendo ...

Sobre mim

David Yee
Follow 7

Visualizar meu perfil


completo
Mas sob ampliação, você pode ver as faixas individuais que o sensor de leitura de código

Optosensor de cartão "código de barras" para cartuchos de tinta para impressoras HP com tira plástica de posicionamento

18/06/13 update: encontrei este link


http://www.iceinspace.com.au/forum/archive/index.php/t-74481.html
como resultado de destruir uma antiga impressora a jato de tinta HP 720. O chip na imagem acima
parece ser um 9866, onde o que recebi do 720 é um Q9863. Muito intrigante. Essa página tem links
para isso:
http://www.mindspring.com/~tom2000/Delphi/Codewheel.html#Optical%20Encoders,
que também é muito legal. Adicione isso de volta à lista de projetos futuros!
Considerando a parte do Jameco 1991475, todos de US $ 0,25, para a porta NAND Schmitt
(Schmidt?) Obter ondas quadradas, então amarre a saída aos gatilhos no Arduino e veja o que
acontece. Mas assim que chegar lá, também terei que ter em mente a abordagem digitalFastWrite /
Read
http://www.hessmer.org/blog/2011/01/30/quadrature-encoder-too-fast-for-arduino/

Eu peguei dois ratos velhos. Um era um mouse de bola old school em uma porta serial PS / 2 e o
outro era um mouse óptico USB. Eu também tenho algumas coisas no Weird Stuff que facilitam a
conexão. Eles eram as portas de interface das caixas de PC que me permitiam conectar cada mouse
e usar as saídas de fio na outra extremidade.

Mouse tipo bola com conveniente conector PS / 2 que me dá acesso a pinos

Rato tipo bola com tampa removida.

O mouse serial PS / 2 foi fácil de configurar. Havia várias implementações de exemplo disponíveis
on-line que equivaliam a enviar sinais para as linhas de dados e clock com atrasos apropriados e,
mais ou menos, obedecer às sequências de ACK e NACK. Para o código on-line que vi, ele
realmente não obedeceu à sequência completa do protocolo serial PS / 2, mas foi bom o suficiente
para eu mexer com os dados. Uma vez que eu estava indo, eu tinha uma base para acumular as
posições X e Y, e se eu quisesse, pressione o botão e os valores do eixo Z (roda).
Ref: http://playground.arduino.cc/componentLib/Ps2mouse
Ref: http://www.computer-engineering.org/ps2mouse/

As entranhas do mouse PS / 2 foram muito legais. Eles usam rodas de fiar com ranhuras recortadas -
então parece meio que um girassol preto - e então a borda da roda está passando por um
optosensor de algum tipo. A bola do rato, através da fricção, gira o fuso, que é a haste do girassol
preto. O optosensor é mais sofisticado do que um optosensor antigo simples, porque deve ser capaz
de detectar movimentos para frente e para trás.

Nervuras de rato tipo bola. As peças pretas e claras são o optosensor e o diodo.

Mas o que é hostil é que o sistema de sensor óptico e de bloqueio de luz requer um posicionamento
preciso das peças para funcionar. Você pode fingir a função colocando outra coisa além de um
pedaço de plástico preto de girassol, deslizando através da abertura do sensor óptico, mas ela deve
ser mantida no local correto (distância acima da base do sensor óptico, distância do LED e / ou foto
detectores) para o trabalho. Além disso, o sistema pode ter detecção de bloqueio duplo, portanto,
uma faixa de bloco do tipo barra pode não funcionar. Pode depender da forma do dispositivo que
bloqueia a luz.

Uma coisa que eu encontrei ao longo do caminho como inspiração foi um vídeo no YouTube de um
cara que conectou um braço robótico, e configurou combinações de gestos do mouse para definir o
que o braço deveria fazer.
Ref: http://www.circuitsathome.com/mcu/controlling-robotic-arm-with-arduino-and-usb-mouse
E você pode obter alguns kits de braço robótico por cerca de US $ 50 agora. Ainda outro item para a
futura lista de projetos. Eu acho que seria realmente bom gravar os gestos de movimento de um ser
humano, e também registrar o rastreamento ocular, de modo que um computador pudesse reproduzi-
lo e entender o que um ser humano está olhando para saber por que certos movimentos estão sendo
feitos.

Eu então codifiquei o Arduino para mover a cabeça do carro de acordo com os movimentos do
mouse. Mas havia um problema geral: coletar informações de movimento do mouse via PS / 2
usando bibliotecas existentes não era orientado a interrupções e dependia de pesquisas repetidas.
Então, enquanto o motor estava em movimento, era fácil perder a informação de movimento do
mouse. E, eu acho, fazê-lo interrompido iria consumir os poucos pinos de interrupção disponíveis no
Arduino Uno R3.

A estrutura de código inicial pegaria um movimento feito pelo mouse e, em seguida, imediatamente
tentaria mover os motores com base nesses dados. Foi um tipo de operação de movimentação de
amostra-movimento-amostra frequente. Mas, isso resultou em muitos movimentos muito pequenos
do mouse, e com pesquisas mais freqüentes, obteria passos menores. Distâncias curtas significam
baixa probabilidade de executar a seqüência de aceleração completa, resultando em movimento
muito brusco pelo motor. Não havia olhar em frente.

Eu tentei uma implementação alternativa que combinava com o código "suave" do Arduino,
calculando a média dos últimos n movimentos do mouse, e combinando isso com uma detecção
"parada" (as últimas posições do mouse são as mesmas). Isso foi um pouco melhor, porque
esperaria um pouco até que eu parasse de mover o mouse, e então movesse a cabeça do carro uma
distância maior. Mas, do ponto de vista da usabilidade, parecia menos satisfatório ao lidar com
reversões rápidas de direção, porque elas acabavam sendo calculadas.

Para uma segunda tentativa, eu separei o mouse óptico que tinha uma conexão USB. Antes de ir
para lá, eu esperava ler o USB diretamente, mas isso exigia a execução do Arduino Uno R3 como
um host USB virtual, e eu não tinha a motivação para fazer tudo isso. Se eu tivesse um Arduino
posterior, eu poderia ter feito isso,

Eu segui os exemplos on-line para reconectar o otimizador.


Ref: http://www.martijnthe.nl/2009/07/interfacing-an-optical-mouse-sensor-to-your-arduino/
Achei que foi um pouco complicado na parte em que você está removendo a peça preta que cobria o
chip, e eu queria fazer isso para tentar identificar o chip. Ele foi conectado ao LED que ilumina a área
que está sendo visualizada pelo chip, portanto, retirar a peça preta do chip do sensor exigiu alguma
dobra dos condutores de LED.

Depois disso, descobri que o chip não se parecia exatamente com aquele mencionado na página,
mas alguns chegaram perto. Eu fiz um trabalho bastante pobre em soldar diretamente no chip, mas
acabei descobrindo. O bom é que as entranhas do mouse para uma câmera otimizada são muito
mais espaçosas, porque o formato físico não é recheado com a bola do mouse e os girassóis pretos.
Então, peguei os fios soldados, conectei-os aos quatro fios do fio USB original e enfiei tudo de volta
na carcaça original do mouse. Eu efetivamente contornei o circuito USB, o que também significava
que eu acabei sem nenhum botão ou dados do eixo Z. (Observe na figura abaixo como os fios
soldados por chip vão para o conector branco e saem para o cabo USB, e o conector branco não
está mais conectado à sua carcaça na placa.)

Innards de mouse óptico, com fio, conectado via porta USB a pinos separados de 0,1 "para conexão direta da placa de
montagem

Então, neste ponto, eu tinha um mouse óptico não-realmente-USB enviando dados através de um
cabo USB, depois aquele conectado às portas USB de um gabinete de PC, produzindo quatro fios no
interior que eu poderia usar. Eu então liguei e codifiquei de acordo com o site Martijn The, e através
de algumas experiências, determinei que eu poderia usar as especificações PAN3101 ou ADNS2051.
Acabei por ter um segundo mouse que eu poderia usar para controlar os movimentos da impressora.
Eu não tentei usar o conjunto completo de registradores ADNS2051 para ver se conseguia obter
dados de imagem da câmera 16x16 embutida, e não tenho certeza se eles obedeceriam a esse
conjunto de comandos, então é outro projeto para o futuro.

Mais recentemente, eu peguei um mouse óptico que roda através de uma interface serial PS / 2,
então se eu quiser usá-lo, eu deveria ser capaz de usar o código de mouse serial PS / 2 e usá-lo. A
idéia original era que eu seria capaz de prender o mouse a algo impulsionado pelo motor e usar os
dados do mouse para me dizer onde estão as coisas, mas isso não é necessário agora que eu tenho
um movimento preciso no Frankenplotter.

Eu tive alguns pensamentos de projeto ao longo do caminho com isso. O que pareceria divertido
seria fazer o rato agir como uma cauda para algum tipo de robô com rodas, proporcionando assim
um feedback de posição para o robô - como uma carruagem, onde o camundongo é aquela
carruagem atrás de alguns cavalos. Mas o mouse não transmite movimento de rotação ao redor do
eixo Z (guinada), então, a menos que eu pudesse sentir isso, não funcionaria realmente. Mas, tendo
dois ratos ortogonais entre si e tendo isso no final de uma cauda rígida ... agora isso pode ser
interessante.

[Edit 7/3/13]
Eu senti que é importante referenciar este artigo daqui. Sem alguém ter inventado o mouse, não
consegui hackear um mouse.
http://blog.sfgate.com/techchron/2013/07/03/doug-englebart-a-computing-giant-passes-away/

Postado por David Yee às 23:15

Sem comentários:

Publicar um comentário

Enter your comment...

Comment as: mundotecnico ( Sign out

Publish Preview Notify me

Postagemrecente Postagem Início mais antigamais

Inscrever-se para: Postar comentários (Atom)


Awesome Inc. tema. Desenvolvido pelo Blogger .