mousecam -...

23
Júlio César Nardelli Borges MouseCAM Curitiba, Dezembro de 2008

Upload: duongdung

Post on 19-Jan-2019

220 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: MouseCAM - paginapessoal.utfpr.edu.brpaginapessoal.utfpr.edu.br/msergio/portuguese/ensino-de-fisica/... · do movimento. Outra característica desse CI é que ele possibilita

Júlio César Nardelli Borges

MouseCAM

Curitiba, Dezembro de 2008

Page 2: MouseCAM - paginapessoal.utfpr.edu.brpaginapessoal.utfpr.edu.br/msergio/portuguese/ensino-de-fisica/... · do movimento. Outra característica desse CI é que ele possibilita

Júlio César Nardelli Borges

MouseCAM

Monografia apresentada à disciplina

de Oficina de Integraçao 2 do 4o

período do curso de Engenharia da

Computação da Universidade

Tecnológica Federal do Paraná.

Orientador:

Hugo Vieira

Curitiba, Dezembro de 2008

Page 3: MouseCAM - paginapessoal.utfpr.edu.brpaginapessoal.utfpr.edu.br/msergio/portuguese/ensino-de-fisica/... · do movimento. Outra característica desse CI é que ele possibilita

ii

SUMÁRIO

Lista de figuras...................................................................................................iii

Lista de tabelas...................................................................................................iv

1 Introdução.......................................................................................................5

2 Objetivo...........................................................................................................6

3 Metodologia.....................................................................................................6

3.1 Construção do dispositivo.........................................................................6

3.2 Comunicação: dispositivo e computador................................................11

3.2.1 Porta paralela e ppdev.....................................................................11

3.2.2 Lógica de controle............................................................................14

3.2.3 Ligação sensor x porta paralela.......................................................16

3.2.4 Software de comunicação................................................................17

4 Resultados.....................................................................................................19

4.1 Operação do dispositivo.........................................................................19

4.2 Leitura da imagem..................................................................................20

4.3 PCB.........................................................................................................20

5 Conclusão......................................................................................................21

6 Referência Bibliográfica.................................................................................22

Page 4: MouseCAM - paginapessoal.utfpr.edu.brpaginapessoal.utfpr.edu.br/msergio/portuguese/ensino-de-fisica/... · do movimento. Outra característica desse CI é que ele possibilita

iii

LISTA DE FIGURAS

Mouse óptico MS3202..........................................................................................6

PCB do mouse.....................................................................................................7

Sensor óptico OM02.............................................................................................7

Pinagem do CI......................................................................................................8

Ligação do OM02 para interfaceamento serial....................................................9

Conector DB25..................................................................................................11

Operação de leitura...........................................................................................14

Montagem do dispositivo em protoboard..........................................................18

Layout da PCB do dispositivo............................................................................20

Page 5: MouseCAM - paginapessoal.utfpr.edu.brpaginapessoal.utfpr.edu.br/msergio/portuguese/ensino-de-fisica/... · do movimento. Outra característica desse CI é que ele possibilita

iv

LISTA DE TABELAS

Ligações internas da porta paralela em um computador..................................12

Registradores do Agilent(R) ANDS-2051............................................................15

Registradores do Agilent(R) ADNS-2610............................................................17

Page 6: MouseCAM - paginapessoal.utfpr.edu.brpaginapessoal.utfpr.edu.br/msergio/portuguese/ensino-de-fisica/... · do movimento. Outra característica desse CI é que ele possibilita

5

1 INTRODUÇÃO

Visão Computacional compreende métodos e técnicas através dos

quais sistemas computacionais podem interpretar imagens. É uma área

que ainda se encontra em seus primórdios, sendo tratada muitas vezes

como objeto de pesquisa [1].

O presente trabalho parte da motivação do estudante de se iniciar

na área de visão computacional, em que será proposta a construção de

um dispositivo de aquisição de imagens de baixa resolução, adaptando-se

um mouse óptico para funcionar como câmera digital.

Preferiu-se construir o próprio dispositivo ao invés de utilizar uma

câmera digital ou webcam devido ao interesse do estudante por eletrônica

e hardware. Desse modo, ele pretende se familiarizar também com essas

áreas ao longo das atividades.

O trabalho consistirá na descrição de procedimentos e materiais

necessários, incluindo a montagem do dispositivo até o teste para verificar

o seu funcionamento.

Page 7: MouseCAM - paginapessoal.utfpr.edu.brpaginapessoal.utfpr.edu.br/msergio/portuguese/ensino-de-fisica/... · do movimento. Outra característica desse CI é que ele possibilita

6

2 OBJETIVO

O objetivo do presente trabalho é construir um dispositivo de

aquisição de imagens utilizando um sensor de mouse óptico, indicando

materiais e procedimentos necessários; ao final da montagem o

dispositivo será testado.

3 METODOLOGIA

3.1 Construção do dispositivo

O dispositivo foi construído a partir de um mouse óptico da marca

Coletek e modelo MS3202 (Figura 1).

Figura 1: Mouse óptico MS3202

Fonte:<http://www.coletek.com.br/>.

Acessado em 17/12/2208.

Page 8: MouseCAM - paginapessoal.utfpr.edu.brpaginapessoal.utfpr.edu.br/msergio/portuguese/ensino-de-fisica/... · do movimento. Outra característica desse CI é que ele possibilita

7

Procedeu-se com a desmontagem do mouse, retirando-se o sensor

óptico da PCB1, um CI2 de 16 pinos OM02, como mostram as Figuras 2 e 3:

Figura 2: PCB do mouse

1 Placa de circuito impresso.

2 Circuito integrado.

Page 9: MouseCAM - paginapessoal.utfpr.edu.brpaginapessoal.utfpr.edu.br/msergio/portuguese/ensino-de-fisica/... · do movimento. Outra característica desse CI é que ele possibilita

8

Figura 3: Sensor óptico OM02

O OM02 é um sensor óptico CMOS3 que oferece funcionalidades para

implementação de um mouse para computador [4]. No seu interior,

imagens são capturadas, digitalizadas e processadas. O sensor usa uma

tecnologia de navegação óptica, em que é possível medir a mudança de

posição através da aquisição de uma seqüência de imagens da superfície.

A partir disso, é determinada matematicamente a direção e a amplitude

do movimento. Outra característica desse CI é que ele possibilita

implementar uma interface serial com um microcontrolador. O datasheet

do sensor informa um modo de operação (“testing mode”, ver Figura 4) no

qual é possível acessar diretamente os dados do sensor via serial. Com

isso, partiu-se da hipótese de que seria possível adequar esse modo de

operação para extrair a imagem do sensor.

3 CMOS é uma série de CIs baseados na tecnologia MOS para confecção de circuitos

integrados. A tecnologia MOS (semicondutor de óxido metálico – metal-oxide-

semiconductor) é derivada de uma estrutura básica MOS, que consiste de um eletrodo

de metal sobre um óxido isolante, que está sobre um substrato de semicondutor [2].

Page 10: MouseCAM - paginapessoal.utfpr.edu.brpaginapessoal.utfpr.edu.br/msergio/portuguese/ensino-de-fisica/... · do movimento. Outra característica desse CI é que ele possibilita

9

Montou-se o CI segundo uma configuração que permitisse seu

interfaceamento via serial com um computador (Figura 5). Com essa

finalidade, o CI foi ligado a um circuito de alimentação apropriado e os

pinos TCLK e TIO foram habilitados para uso. O diagrama esquemático

representado na Figura 5 foi feito usando o gschem, que é parte

integrante do gEDA Suite4.

4 O projeto está disponível no sítio <http://www.geda.seul.org/>.

Figura 4: Pinagem do CI

Fonte: Datasheet do OM02.

Page 11: MouseCAM - paginapessoal.utfpr.edu.brpaginapessoal.utfpr.edu.br/msergio/portuguese/ensino-de-fisica/... · do movimento. Outra característica desse CI é que ele possibilita

10

O circuito está de acordo com [4], o qual determina duas

configurações possíveis para o CI: uma compatível com o chip Agilent(R)

HDNS-2000 e outra compatível com o chip Agilent(R) ADNS-2050. Foi

aplicada a segunda configuração por razões que serão explicadas adiante.

O circuito ficou montado com 3 capacitores eletrolíticos (dois de

100uF e um de 47uF), 2 capacitores cerâmicos de 0.1uF, 3 resistores de

1/8W (58, 8.2k e 51k ohms), um LED de alto brilho e 2 conectores de 1x4 e

1x2 pinos.

O conector “CONN2” indicado na Figura 5 é ligado diretamente à

fonte de alimentação do circuito. O conector “CONN1” serve para ligar o

sensor ao computador e será explicado em detalhes mais adiante.

Figura 5: Ligação do OM02 para interfaceamento serial

Page 12: MouseCAM - paginapessoal.utfpr.edu.brpaginapessoal.utfpr.edu.br/msergio/portuguese/ensino-de-fisica/... · do movimento. Outra característica desse CI é que ele possibilita

11

3.2 Comunicação: dispositivo e computador

A comunicação entre o sensor e o computador foi implementada

através da porta paralela do computador. Para melhorar o entendimento,

faz-se uma breve descrição desse recurso e de como é possível usá-lo em

plataformas Linux.

3.2.1 Porta paralela5 e ppdev

A porta paralela é um recurso simples e barato para construir

dispositivos controlados pelo computador. A facilidade na programação a

torna popular no mundo da eletrônica, sendo freqüentemente usada em

robôs controlados por computador, programação PIC, automação, etc.

A norma IEEE 1284, publicada em 1994, estabelece padrões para

transmissão de dados via porta paralela, entretanto, não é necessário citá-

los visto que o OM02 apresenta um padrão proprietário de comunicação,

que será esclarecido adiante.

Usa-se o conector DB25 para ligar periféricos ao computador através

da porta paralela. Os pinos desse conector são mostrados na Figura 6:

5 Todas as informações sobre esse assunto foram extraídas de [3].

Page 13: MouseCAM - paginapessoal.utfpr.edu.brpaginapessoal.utfpr.edu.br/msergio/portuguese/ensino-de-fisica/... · do movimento. Outra característica desse CI é que ele possibilita

12

Figura 6: Conector DB25

Fonte:<http://logix4u.net/Legacy_Ports/Parall

el_Port/A_tutorial_on_Parallel_port_Interfacing

.html>. Acessado em 17/12/2008.

Internamente, esses pinos são ligados aos respectivos registradores

do computador, conforme indicado pela Tabela 1:

Page 14: MouseCAM - paginapessoal.utfpr.edu.brpaginapessoal.utfpr.edu.br/msergio/portuguese/ensino-de-fisica/... · do movimento. Outra característica desse CI é que ele possibilita

13

Pino

num.Sinal Direção6 Registrador

Polaridade invertida

(S/N)

1 nStrobe E Control-0 S

2 Data0 E/S Data-0 N

3 Data1 E/S Data-1 N

4 Data2 E/S Data-2 N

5 Data3 E/S Data-3 N

6 Data4 E/S Data-4 N

7 Data5 E/S Data-5 N

8 Data6 E/S Data-6 N

9 Data7 E/S Data-7 N

10 nAck E Status-6 N

11 Busy E Status-7 S

12 Paper-S E Status-5 N

13 Select E Status-4 N

14 Linefeed S Control-1 S

15 nError E Status-3 N

16 nInitialize S Control-2 N

17nSelect-

Printer S Control-3 S

18-25 Ground - - -

Tabela 1: Ligações internas da porta paralela em um computador

Fonte:<http://logix4u.net/Legacy_Ports/Parallel_Port/A_tutorial_on_Parallel_po

rt_Interfacing.html>.Acessado em 17/12/2008.

Dessa forma, utilizando esses registradores adequadamente, através

de um software é possível enviar e/ou receber sinais via porta paralela e,

desse modo, controlar um periférico.

Os sistemas Linux oferecem suporte ao desenvolvimento de

aplicações que acessam periféricos através da porta paralela

6 Entrada (E) e saída (S).

Page 15: MouseCAM - paginapessoal.utfpr.edu.brpaginapessoal.utfpr.edu.br/msergio/portuguese/ensino-de-fisica/... · do movimento. Outra característica desse CI é que ele possibilita

14

disponibilizando um driver específico para isso chamado ppdev7, o qual

vem acompanhado de uma API de programação de alto nível.

Tendo em vista o conhecimento dessas ferramentas, apresentam-se

a seguir os procedimentos para implementação da lógica de controle

necessários para comunicação do sensor com o computador.

3.2.2 Lógica de controle

Como foi mencionado na seção anterior, o OM02 implementa um

padrão de comunicação proprietário e requer que seja feita uma aplicação

específica capaz de implementar esse padrão.

O datasheet do OM02 não fornece detalhes sobre esse padrão.

Contudo, ele informa que o sensor é compatível com o sensor Agilent(R)

ADNS-2051 quando montado segundo uma configuração apropriada. Na

Seção 3.1 foi citado que o sensor estaria montado segundo essa

configuração e por isso, de agora em diante, o sensor OM02 será tratado

como se fosse um sensor ADNS-2051.

O diagrama de tempos a seguir (Figura 7) mostra o padrão de

comunicação implementado pelo sensor durante a operação de leitura de

dados. Para os fins deste trabalho, apenas a operação de leitura foi

implementada.

Essa operação corresponde a duas etapas: 1) envio do endereço do

registrador cujos dados se desejam ler; 2) recebimento dos dados. O

endereço é enviado “bit por bit” (serialmente), equivalendo aos bits

7 Para maiores informações consulte

<http://people.redhat.com/twaugh/parport/html/ppdev.html>.

Page 16: MouseCAM - paginapessoal.utfpr.edu.brpaginapessoal.utfpr.edu.br/msergio/portuguese/ensino-de-fisica/... · do movimento. Outra característica desse CI é que ele possibilita

15

A6~A0, sendo que o primeiro bit enviado é 0, o qual sinaliza que a

operação requerida é de leitura. A primeira etapa leva, portanto, 8 ciclos

de clock, equivalendo aos 8 bits enviados para o sensor. Após isso, há um

atraso de clock tHOLD de no mínimo 100us e, a seguir, inicia-se a segunda

etapa do processo com a leitura serial dos bits de retorno D7~D0, que

correspondem ao valor do registrador. São 8 bits lidos serialmente e,

portanto, a segunda etapa leva 8 ciclos de clock. Com isso, a operação

inteira leva 16 ciclos de clock.

Figura 7: Operação de leitura no ADNS-2051.

Fonte: Datasheet do Agilent(R) ADNS-2051.

Page 17: MouseCAM - paginapessoal.utfpr.edu.brpaginapessoal.utfpr.edu.br/msergio/portuguese/ensino-de-fisica/... · do movimento. Outra característica desse CI é que ele possibilita

16

A especificação de cada ciclo de clock pode ser vista na Figura 7, na

parte “Detail B”. O pulso tem duração de no mínimo 120ns. Os bits são

monitorados através do pino 16 e os sinais de clock são enviados ao pino

1 do sensor, TIO e TCLK na Figura 6, respectivamente.

Usando esse processo de baixo nível, é possível ler diretamente os

registradores do sensor. A Tabela 2 exibe o endereço desses registradores:

De acordo com o datasheet do ADNS-2051, é possível extrair a

imagem do sensor usando os registradores “Data_Out_Lower” e

“Data_Out_Upper”.

3.2.3 Ligação sensor x porta paralela

Para ligar o sensor à porta paralela do computador, foi utilizado um

metro de cabo de 7 núcleos e um conector DB25. Na Figura 5, o conector

“CONN1” indicado foi ligado diretamente a quatro pinos do DB25.

Utilizaram-se os pinos 5, 9, 12 e 25. Observando a Tabela 1, esses pinos

corresponderiam aos sinais “Data-3”, “Data-7”, “Status-5” e “GND”8.

8 Ground, massa do circuito.

Tabela 2: Registradores do Agilent(R) ANDS-2051.

Fonte: Datasheet do Agilent(R) ADNS-2051.

Page 18: MouseCAM - paginapessoal.utfpr.edu.brpaginapessoal.utfpr.edu.br/msergio/portuguese/ensino-de-fisica/... · do movimento. Outra característica desse CI é que ele possibilita

17

3.2.4 Software de comunicação

O programa utilizado foi escrito em C e usa a API do ppdev para

implementar as operações de acesso à porta-paralela. Ele foi compilado

com o GCC 49 sobre uma plataforma Linux Kernel 2.6. O código-fonte é de

autoria de Joshua Wise10, em que o autor realiza montagem semelhante

usando um sensor Agilent(R) ADNS-2051 ligado à porta porta paralela do

computador. O programa original foi adaptado por Carsten Gross11 para

funcionar também com sensores Agilent(R) ADNS-2610.

Os aplicativos são capazes de implementar a lógica de controle

descritas anteriormente com a finalidade de extrair as imagens

capturadas e digitalizadas pelos sensores. A diferença entre eles é apenas

o endereço utilizado para acessar os registradores de cada tipo de sensor.

Para extrair a imagem do sensor ADNS-2610 usa-se o registrador

“Pixel_Data”, conforme é mostrado na Tabela 3:

9 Consulte <http://gcc.gnu.org> para mais detalhes.

10Contato com <[email protected]>.

11Contato com <[email protected]>.

Page 19: MouseCAM - paginapessoal.utfpr.edu.brpaginapessoal.utfpr.edu.br/msergio/portuguese/ensino-de-fisica/... · do movimento. Outra característica desse CI é que ele possibilita

18

Finalmente, procedeu-se com a montagem em protoboard para

testar o dispositivo, mostrado na Figura 8:

Tabela 3: Registradores do Agilent(R) ADNS-2610.

Fonte: Datasheet do Agilent(R) ADNS-2610.

Page 20: MouseCAM - paginapessoal.utfpr.edu.brpaginapessoal.utfpr.edu.br/msergio/portuguese/ensino-de-fisica/... · do movimento. Outra característica desse CI é que ele possibilita

19

4 RESULTADOS

4.1 Operação do dispositivo

Ao alimentar o circuito com entrada VDD de 5V DC, este operou

como esperado. O circuito de alimentação forneceu as condições

adequadas para o sensor funcionar. Embora o chip tenha sido projetado

para operar juntamente com um controlador de mouse, através do qual é

feito interfaceamento PS2 ou USB com o computador, o OM02 não

demonstrou anormalidades na operação.

Figura 8: Montagem do dispositivo em protoboard.

Page 21: MouseCAM - paginapessoal.utfpr.edu.brpaginapessoal.utfpr.edu.br/msergio/portuguese/ensino-de-fisica/... · do movimento. Outra característica desse CI é que ele possibilita

20

4.2 Leitura da imagem

A primeira tentativa de ler a imagem do sensor através do

computador falhou. Foi utilizado o código-fonte original, escrito para

acessar sensores ADNS-2051. Ao executar o aplicativo, este não detectou

o dispositivo ligado e não iniciou a comunicação com o mesmo.

A lógica de verificação para determinar se o sensor está ativo é feita

acessando o registrador Product_ID (ver Tabela 2) cujo endereço é 0x00.

Os dados desse registrador não podem ser determinados, possivelmente

porque não há um registrador com esse endereço no OM02, ou se houver,

os valores esperados não são os mesmos. Há, portanto, incompatibilidade

entre os dois chips, que gera inconsistência de dados quando se referir

aos registradores do OM02 pelos mesmos endereços dos registradores do

ADNS-2051.

Em seguida, foi usado um programa similar ao anterior, adaptado

pera ler sensores da série ADNS-2610. Não se obteve êxito e

possivelmente pelos mesmos motivos.

4.3 PCB

Foi desenhado o layout da PCB que deveria portar os componentes

do dispositivo, caso este funcionasse devidamente:

Page 22: MouseCAM - paginapessoal.utfpr.edu.brpaginapessoal.utfpr.edu.br/msergio/portuguese/ensino-de-fisica/... · do movimento. Outra característica desse CI é que ele possibilita

21

Figura 9: Layout da PCB do

dispositivo

O desenho foi feito a partir do diagrama esquemático (Figura 5)

usando o aplicativo PCB Design, que é parte integrante do gEDA Suite.

5 CONCLUSÃO

Apesar de os resultados não serem satisfatórios, este trabalho

informa materiais, procedimentos e informações necessárias para

execução de montagens similares. A falta de documentação do sensor

OM02 aliada à dificuldade em se encontrarem sensores de mouse que

permitam interfaceamento serial foram fatores relevantes para o fracasso

dessa primeira montagem.

Para os próximos trabalhos, sugere-se que sejam utilizados os

sensores da Agilent(R) ADNS-2051 e ADNS-2610.

Page 23: MouseCAM - paginapessoal.utfpr.edu.brpaginapessoal.utfpr.edu.br/msergio/portuguese/ensino-de-fisica/... · do movimento. Outra característica desse CI é que ele possibilita

22

Por fim, considera-se este trabalho como o primeiro contado do

estudante com o campo da eletrônica digital. Os conhecimentos técnicos

adquiridos durante o projeto, como programação sobre porta paralela,

leitura de datasheets, projeto de circuitos usando gEDA Suite, entre

outros, serão de grande valia para os próximos trabalhos.

6 REFERÊNCIA BIBLIOGRÁFICA

[1] UFSC. Material do Prof. Aldo von Wangenheim. Visão Computacional.

Disponível em <http://www.inf.ufsc.br/~visao/#Introdução>.

Acessado em 17/12/2008.

[2] TOCCI, Ronald J.; WIDMER, S. Neal. Sistemas Digitais: Princípios e

Aplicações. 8a Edição – São Paulo: Prentice Hall, 2003. p. 381.

[3] LOGIX4U.NET. A tutorial on Parallel port Interfacing.

Disponível em

<http://logix4u.net/Legacy_Ports/Parallel_Port/A_tutorial_on_Parallel_port_Interfacing.html>

Acessado em 17/12/2008.

[4] OM02. Optical Mouse Sensor. Datasheet. Revisão de 10/02/2004.