Como um monitor multitouch envia os toques para um PC?

3

Sou relativamente novo em telas sensíveis ao toque. Eu estou dando uma olhada na Amazon em monitores multi-touch como um HP 2310ti e parece que todo mundo só aceita que o Windows 7 pode lidar com isso da caixa.

Como isso funciona? Não consigo encontrar recursos explicando como o PC recebe a entrada da tela sensível ao toque.

Preciso conectar o PC ao monitor via USB, ou há tecnologia sem fio / bluetooth embutida no monitor, como em um teclado / mouse sem fio? Como o Linux lida com esse monitor fora da caixa? Ele reconhece algo como dois dispositivos de mouse conectados? Eu li sobre alguns projetos tentando implementar essas coisas no Xorg / GTK, mas parece ser bastante experimental no estado atual (porque há pouca informação, se houver, sobre esse tópico).

EDITAR: agora comprei um Acer T231 em combinação com o nettop nT330i da Foxconn. A primeira coisa a mencionar é que o monitor é conectado via USB ao PC, o "dispositivo de toque" (por exemplo, o monitor via USB) é detectado como um dispositivo HID-USB pelo kernel. Para Linux, acho que o kernel detecta o dispositivo de toque e o Xorg / Gnome é capaz de usá-lo.

Eu tentei o Ubuntu Lucid executando um kernel 2.6.32 que detectou um dispositivo HID, mas o gnome não reagiu aos toques. Agora estou usando o Ubuntu Natty Narwhal que fora da caixa funciona com toques únicos. Para obter gestos em execução, também sai da caixa um daemon chamado 'Ginn', cuja configuração está localizada em /etc/ginn/wishes.xml - dê uma olhada em 'man ginn'. Depois de me acostumar com todas as coisas, eu sugiro que você tenha que fazer as seguintes coisas para executar um multi touch:

  1. obtenha pelo menos um kernel 2.6.33 - natty narwhal usa 2.6.38, o que funciona muito bem
  2. adicione / usr / bin / ginn como um aplicativo de inicialização do gnome - além disso, estou usando o gnome não unidade, talvez a unidade funcione fora da caixa para getures complexas
  3. modifique o /etc/ginn/wishes.xml para que ele atenda às suas necessidades - eu acho que modifico as configurações porque meu monitor tem problemas com mais de 2 dedos, então nem todos os gestos funcionam e eu também tive alguns problemas de compiz que Eu também tento correr com gestos

interessting recursos:

link

link

    
por John Doe 22.07.2011 / 20:57

4 respostas

3

Vou dar uma resposta rápida porque não tenho muito tempo hoje, mas basicamente os monitores de toque se comunicam com a área de trabalho com diferentes protocolos de comunicação. O usado pelo windows 7 é chamado WM_TOUCH, que é então interpretado pelo sistema operacional: ou o aplicativo pode usar o gesto multitoque, caso em que a ação é transmitida diretamente para a janela ativa ou o aplicativo não pode manipular o evento touch, no qual caso o sistema operacional o traduza automaticamente em uma linguagem de mouse (beliscar zoom seria traduzido em ctrl + rolagem por exemplo). Existem outras linguagens como o TUIO (mais comumente usado por cross plateform) ou mensagens baseadas em XML ...

Do ponto de vista do hardware, esses monitores costumam usar USB para se comunicar com a base ...

    
por 23.07.2011 / 14:40
3

Sua pergunta é sobre o sistema de visão, ou seja, o hardware / software subjacente que gera e "vê" um ponto de contato. Na minha experiência, existem três abordagens básicas para o hardware de toque: Capacitivo, Reativo e Infravermelho.

  1. O capacitivo depende de impulsos elétricos que criam uma distorção muito pequena na tela. Como o corpo humano age como um condutor, quando tocamos essa tela, podemos criar a distorção. O iPhone é um exemplo de tela sensível ao toque capacitiva. Você também pode comprar sobreposições multitouch que são protegidas em seu monitor normal. Essas sobreposições são conectadas ao seu computador via USB e vêm com o próprio driver.

  2. As telas
  3. resistivas consistem em várias camadas separadas por um espaço estreito. Quando o usuário pressiona um ponto de contato é criado onde as telas se tocam.

  4. Os sistemas
  5. IR multitouch não precisam necessariamente de nenhum tipo especial de tela para funcionar. Ele usa uma combinação de emissores IR e câmeras IR para ver pontos de contato. Os emissores IR são configurados para fornecer uma distribuição uniforme da luz infravermelha na parte inferior da tela. Quando o usuário toca na tela, a luz infravermelha é refletida de volta para baixo, onde é "vista" pela câmera infravermelha. A câmera envia para um software especial (como o CCV) que registra o toque. Um driver é então necessário para obter as informações de ponto de contato do software e convertê-las em um evento de toque / mouse para o sistema operacional.

Cada solução requer um componente de hardware e um software.

    
por 27.07.2011 / 15:01
2

Eu não tenho idéia de como o Linux lida com isso, então darei uma perspectiva do Windows.

O Multitouch é simplesmente outro conjunto de APIs ou um novo conjunto de comandos para os quais os drivers do Monitor enviam e os aplicativos respondem. Assim como o mouse envia uma mensagem KeyPressDown na qual os aplicativos respondem, o monitor envia mensagens que o Windows interpreta como TOUCH, GESTURE, etc. O Windows MultiTouch SDK e o Microsoft Surface SDK são bons locais para começar a ler. Realmente não é tão diferente de como o mouse interage com o sistema operacional.

A parte difícil vem escrevendo o aplicativo. Os aplicativos multitoque que eu vi tendem a ser muito ambiciosos, tentando fazer muito. Os melhores aplicativos multitoque que vi são no Microsoft Surface. A companhia de um amigo tem um e eles escrevem todo tipo de coisa para ele.

Quando a empresa faz tours, eles sempre ativam esse jogo na superfície da Microsoft. Você pode ter 12 jogadores jogando essa coisa. Todo mundo tem uma cor diferente e você recebe balas de canhão que estão na fila para você com cores diferentes. Você usa um golpe rápido para disparar o canhão no jogador correspondente.

Foi emocionante ver doze pessoas reunidas em torno desta mesa de vidro passando e gritando.

Também divertida foi a câmera Kinect que eles tinham. Enquanto as pessoas passavam, davam a sua altura e adivinhavam se você era homem ou mulher, com alguns resultados divertidos !! Para mim, o Kinect tem mais potencial. . .

    
por 23.07.2011 / 01:04
1

Até recentemente, trabalhei para um fabricante de telas sensíveis ao toque. Alguns de nossos produtos cortam custos no hardware com um processador menor que acabou de enviar os dados brutos do USB para o PC, depois um driver do Win7 interpretou os dados e enviou eventos multitouch para o Windows.

Como o código do driver contém IP proprietário, não há uma versão de código aberto disponível para que essas telas de toque não funcionem no Linux.

    
por 28.09.2012 / 03:50

Tags