3.2 Dispositivos de E/S

A seguir apresentamos uma visão geral de conceitos e tecnologias relacionadas a dispositivos de entrada e saída utilizados em sistemas gráficos.

Dispositivos de entrada

Um sistema gráfico possui um ou mais dispositivos de entrada que permitem ao usuário interagir com os modelos de dados gráficos.

O dispositivo de teclado inclui o tradicional teclado físico dos computadores de mesa e laptops (figura 3.12). O teclado produz um código (scancode) composto por um byte ou sequência de bytes que identifica cada tecla pressionada e liberada.


Teclado de teclas mecânicas ([fonte](https://en.wikipedia.org/wiki/Computer_keyboard#/media/File:2018_Bay_Area_Mechanical_Keyboard_Meetup_(44130528080).jpg)).

Figura 3.12: Teclado de teclas mecânicas (fonte).


O teclado virtual de um smartphone ou tablet é também um dispositivo de teclado. Embora não possua teclas físicas, o resultado dos toques na tela e o resultado da conversão de uma anotação manuscrita em texto é um conjunto de scancodes que corresponde aos mesmos caracteres de teclas de um teclado físico (figura 3.13).


Teclado virtual de um smartphone ([fonte](https://androidwikihow.com/2014/07/how-to-disable-touch-screen-keyboard-html)).

Figura 3.13: Teclado virtual de um smartphone (fonte).


Os códigos de um dispositivo de teclado podem ser interpretados como direções de movimentação de um cursor de desenho para permitir a interação com dados gráficos. Uma forma de utilizar o teclado para a interação com cenas virtuais 3D é mapear as setas (esquerda, direita, para cima, para baixo) ou as teclas WASD a transformações de translação de uma câmera em primeira pessoa, e usar outro conjunto de teclas para alterar a orientação da câmera.

Além do teclado, é comum que um sistema gráfico tenha também pelo menos um dispositivo apontador, como o mouse (figura 3.14), capaz de fornecer dados de movimentação ou posicionamento sobre uma superfície, geralmente mapeados para uma posição na tela.


Mouse com dois botões e botão de rolagem. ([fonte](https://pt.wikipedia.org/wiki/Rato_(inform%C3%A1tica)#/media/Ficheiro:3-Tasten-Maus_Microsoft.jpg)).

Figura 3.14: Mouse com dois botões e botão de rolagem. (fonte).


O mouse produz dados de deslocamento em duas direções ortogonais que correspondem ao movimento horizontal (\(x\)) e vertical (\(y\)) do dispositivo10. Como os dados produzidos são apenas deslocamentos, e não posições, o mouse é considerado um dispositivo de posicionamento relativo. Entretanto, os deslocamentos em \(x\) e \(y\) podem ser interpretados como velocidades e acumulados ao longo do tempo para determinar a posição de um cursor na tela. Outros dispositivos populares de posicionamento relativo são os touch pads, trackballs, joysticks e gamepads (figura 3.15). Tais dispositivos também possuem botões que podem ser configurados da mesma forma que as teclas de um teclado.


Dispositivos apontadores de posicionamento relativo. Da esquerda para a direita: trackball ([fonte](https://commons.wikimedia.org/wiki/File:Kensington_Expert_Mouse_Wired_Trackball_64325.jpg)), joystick ([fonte](https://commons.wikimedia.org/wiki/File:Atari-2600-Joystick.jpg)), gamepad ([fonte](https://commons.wikimedia.org/wiki/File:Logitech_F310_Gamepad.jpg)).

Figura 3.15: Dispositivos apontadores de posicionamento relativo. Da esquerda para a direita: trackball (fonte), joystick (fonte), gamepad (fonte).


Dispositivos apontadores como a tela sensível ao toque (touch screen) e a mesa digitalizadora (graphics tablet) são capazes de fornecer dados de posicionamento absoluto (figura 3.16). Os toques produzidos com o dedo ou com uma caneta de toque (stylus pen) produzem dados que correspondem a um par de coordenadas sobre a superfície de desenho, além de um valor que corresponde à pressão aplicada. Esses dispositivos também podem ser configurados para gerar dados de posicionamento relativo e detecção de gestos de arrasto (swipe e drag and drop) através do rastreamento dos pontos de pressão. Telas sensíveis ao toque frequentemente também são capazes de detectar múltiplos toques simultâneos, permitindo a detecção de gestos mais complexos como pinça (pinch) e rotação (rotate).


Mesa digitalizadora com caneta ([fonte](https://commons.wikimedia.org/wiki/File:Wacom_graphics_tablet_and_pen.png)).

Figura 3.16: Mesa digitalizadora com caneta (fonte).


Dispositivos de saída

Um sistema gráfico possui pelo menos um dispositivo de saída para exibição de gráficos. Esses dispositivos podem ser do tipo vetorial ou matricial.

Dispositivos vetoriais

O primeiro dispositivo de exibição utilizado em computador foi o CRT vetorial, que é o mesmo tipo de tecnologia utilizada nos osciloscópios analógicos (figura 3.17).


Osciloscópio analógico com CRT vetorial ([fonte](https://commons.wikimedia.org/wiki/File:Oscilloscope_sine_square.jpg)).

Figura 3.17: Osciloscópio analógico com CRT vetorial (fonte).


No CRT vetorial, um canhão de elétrons emite um feixe de elétrons que incide sobre uma tela revestida por um material fotoluminescente (fósforo). Um conjunto de placas defletoras permite alterar a posição horizontal (\(x\)) e vertical (\(y\)) de incidência do feixe, de modo que gráficos de linhas e curvas podem ser traçados na tela. Em um sistema gráfico, a posição de incidência do feixe pode ser descrita por comandos do tipo MoveTo e LineTo (figuras 3.18 e 3.19). Como o brilho do fósforo tem persistência baixa, na ordem de milissegundos, é preciso redesenhar o traço continuamente.


Desenhando um triângulo em um CRT vetorial. A sequência de passos de 1 a 4 precisa ser repetida continuamente para manter a imagem na tela.

Figura 3.18: Desenhando um triângulo em um CRT vetorial. A sequência de passos de 1 a 4 precisa ser repetida continuamente para manter a imagem na tela.


Jogo estilo "Asteroides" (["Space Rocks"](https://trmm.net/Space_Rocks/)) sendo exibido em um CRT vetorial de um antigo osciloscópio ([fonte](https://en.wikipedia.org/wiki/Vector_monitor#/media/File:Space_Rocks_(game).jpg)).

Figura 3.19: Jogo estilo “Asteroides” (“Space Rocks”) sendo exibido em um CRT vetorial de um antigo osciloscópio (fonte).


Dispositivos de exibição vetorial não conseguem desenhar de forma adequada áreas preenchidas. Além disso, a velocidade de geração do desenho é proporcional à quantidade de primitivas e ao comprimento dos caminhos, impondo um limite à complexidade do desenho. Por essas desvantagens, CRTs vetoriais tornaram-se obsoletos e foram substituídos inteiramente pelos dispositivos matriciais.

Dispositivos matriciais

O primeiro dispositivo de exibição matricial utilizado em computadores também foi o CRT (Noll 1971). No CRT matricial, o feixe de elétrons é direcionado por deflexão eletromagnética e varre continuamente a tela de cima para baixo, da esquerda para direita. A cada linha percorrida, o canhão de elétrons é desligado momentaneamente e religado no início da próxima linha (retraço horizontal). Ao completar a varredura no canto inferior direito, o canhão de elétrons é desligado e direcionado para o ponto inicial, no canto superior esquerdo (retraço vertical). O feixe de elétrons é então religado e uma nova varredura é feita, iniciando uma nova imagem ou quadro de exibição. Esse processo é feito continuamente, a uma taxa que, nos televisores antigos, era sincronizada com a frequência da rede elétrica: 50 Hz ou 60 Hz11. Durante a varredura, a intensidade do feixe é controlada por um sinal analógico de vídeo. Esse sinal pode ser produzido por um conversor digital-analógico a partir de uma imagem digital, reproduzindo na tela os pontos que formam a imagem (figura 3.20).


Varredura de um quadro em um CRT matricial.

Figura 3.20: Varredura de um quadro em um CRT matricial.


CRTs coloridos utilizam três canhões de elétrons, um para cada componente de cor RGB. A tela é coberta por um padrão de fósforos nessas cores, em grupos de três. Uma máscara ou grelha metálica próxima da tela (shadow mask, slot mask ou apperture grille, dependendo da tecnologia utilizada) assegura que cada tipo de fósforo recebe elétrons apenas do canhão correspondente. A figura 3.21 mostra o detalhe ampliado da tela de um CRT de TV e um CRT de computador, mostrando o padrão das tríades RGB formadas pelo slot mask (no CRT de TV) e shadow mask (no CRT de computador). Uma vez que os padrões são muito pequenos e cobrem a tela por completo, o usuário percebe a combinação das cores primárias que resultam na cor da imagem. A figura 3.22 mostra o detalhe ampliado de uma letra “e” exibida em um CRT de TV que usa a tecnologia de apperture grille (tecnologia Trinitron, da Sony), e o detalhe ampliado de um cursor em um CRT de computador.


Padrões de fósforos RGB em CRTs. Esquerda: slot mask em um CRT de TV. Direita: shadow mask em um CRT de PC. ([fonte](https://en.wikipedia.org/wiki/File:CRT_pixel_array.jpg))

Figura 3.21: Padrões de fósforos RGB em CRTs. Esquerda: slot mask em um CRT de TV. Direita: shadow mask em um CRT de PC. (fonte)


Detalhes ampliados de telas de CRT. Esquerda: letra 'e' em um CRT de TV Sony Trinitron ([fonte](https://en.wikipedia.org/wiki/File:Aperture_grille_closeup_teletext.jpg)). Direita: cursor na tela de um CRT de computador ([fonte](https://en.wikipedia.org/wiki/Shadow_mask#/media/File:Shadow_mask_closeup_cursor.jpg)).

Figura 3.22: Detalhes ampliados de telas de CRT. Esquerda: letra ‘e’ em um CRT de TV Sony Trinitron (fonte). Direita: cursor na tela de um CRT de computador (fonte).


Os CRTs não são mais utilizados desde meados de 2000 e foram substituídos pelos monitores LCD (liquid-crystal display). Até a metade de 2010 eram também comuns os monitores de tela de plasma. Nessa tecnologia, tensões aplicadas em eletrodos de endereçamento de linhas e colunas energizam um gás (geralmente néon e xenônio) contido em minúsculas células envoltas em painéis de vidro. O fundo das células é coberto por fósforo nas cores RGB, de modo que cada grupo de 3 cores forma um pixel. Como em uma lâmpada fluorescente, o gás ionizado se torna um plasma emissor de luz ultravioleta que faz com que os fósforos emitam a luz visível que forma as cores da imagem (figura 3.23).

Estrutura de uma tela de plasma ([fonte](https://en.wikipedia.org/wiki/Plasma_display#/media/File:Plasma-display-composition.svg)).

Figura 3.23: Estrutura de uma tela de plasma (fonte).


A tecnologia LCD é a mais utilizada nos dispositivos de exibição atuais. Uma tela de LCD é composta por um sanduíche de vários painéis (figura 3.24). Na parte de trás dos painéis, lâmpadas fluorescentes ou LEDs emitem uma luz branca que é espalhada uniformemente por um painel difusor. Essa luz incide sobre um filtro que só permite passar luz polarizada em uma direção. Na frente dos painéis há uma outra camada que só permite passar a luz polarizada na direção ortogonal ao primeiro filtro, de modo que o resultado é o bloqueio total da luz. Para controlar eletronicamente a passagem da luz, entre os dois filtros é colocado um substrato de vidro contendo uma camada de cristais líquidos e eletrodos e/ou transistores que alteram a orientação dos cristais – e com isso a polarização da luz – através de campos elétricos. Uma camada de filtros de cor divide a tela em pixels compostos de três subpixels, um para cada componente RGB, coincidentes com a camada de eletrodos. Desse modo, a passagem de luz em cada subpixel é controlada individualmente para formar a imagem final. O conteúdo da tela LCD é atualizado continuamente, geralmente a uma taxa de 60 Hz, mas em monitores mais recentes essa taxa pode chegar a 240 Hz.


Estrutura de uma tela de LCD ([fonte](https://pid.samsungdisplay.com/en/learning-center/blog/lcd-structure)).

Figura 3.24: Estrutura de uma tela de LCD (fonte).


A tecnologia OLED (organic light-emitting diodes) tem se popularizado em telas de smart TVs e smartphones e tem a promessa de substituir a tecnologia de LCD. Telas OLED não utilizam luz de fundo, pois cada subpixel emite sua própria luz: cada subpixel é um LED no qual a camada eletroluminescente é um filme de compostos orgânicos. A figura 3.25 mostra o detalhe ampliado de uma tela com tecnologia AMOLED (active-matrix organic light-emitting diode) que utiliza transistores de filme fino para manter o fluxo de corrente em cada subpixel.


Detalhe da tela AMOLED de um smartphone Google Nexus One. Foto por Matthew Rollings ([fonte](https://en.wikipedia.org/wiki/OLED#/media/File:Nexus_one_screen_microscope.jpg)).

Figura 3.25: Detalhe da tela AMOLED de um smartphone Google Nexus One. Foto por Matthew Rollings (fonte).


Telas OLED conseguem obter níveis mais profundos de preto e melhor contraste em ambientes escuros quando comparadas com as telas de LCD. A tecnologia tem ainda outras vantagens, como a possibilidade de ser utilizada em telas mais finas, flexíveis e transparentes (figura 3.26).


Demonstração de uma tela OLED flexível ([fonte](https://commons.wikimedia.org/wiki/File:Ecran_oled_flexible.jpg)).

Figura 3.26: Demonstração de uma tela OLED flexível (fonte).


Referências

Noll, A. Michael. 1971. “Scanned-Display Computer Graphics.” Commun. ACM 14 (3): 143–50. https://doi.org/10.1145/362566.362567.

  1. Os dados produzidos pelo botão de rolagem (mouse wheel) podem ser mapeados para uma terceira direção.↩︎

  2. Essa varredura era frequentemente feita de forma entrelaçada, varrendo alternadamente as linhas ímpares e pares, de modo que cada quadro era preenchido apenas 30 vezes por segundo.↩︎