Como obter entrada do mouse USB no Arduino

Como obter entrada do mouse USB no Arduino

Geralmente, as placas Arduino não operam como hosts USB; eles não têm o periférico nem a RAM para fazer isso. No entanto, é possível converter placas Arduino como UNO e Mega2560 em um host USB usando um escudo de host USB Arduino. Com um host shield USB, podemos conectar praticamente qualquer periférico USB ao Arduino – pense em navegar em um robô Arduino com um mouse USB. Conectar um mouse ao Arduino pode ser uma grande vantagem em muitas aplicações.

Neste projeto, ilustraremos a obtenção de entrada de um mouse USB no Arduino usando o escudo host USB. O movimento das aberturas do botão esquerdo e do botão direito do mouse é detectado pelo Arduino e solicitado no Monitor Serial do Arduino IDE. O código apresentado neste projeto pode ser reutilizado e expandido para construir qualquer outra aplicação utilizando um mouse USB como dispositivo de entrada.

Componentes necessários

  1. Arduino UNO/Arduino Mega x1
  2. Escudo de host USB Arduino x1
  3. Rato USB x1
  4. Cabo micro USB (para conectar Arduino e computador) x1

Escudo de host USB Arduino
O Arduino USB Host Shield é um hardware de código aberto que permite a implementação em velocidade total de um periférico USB ou host USB em placas Arduino em conformidade com USB 2.0. O escudo pode ser usado com Arduino UNO e Arduino Mega. A blindagem é baseada em um periférico/controlador host USB, o IC MAX3421E. O Arduino se comunica com o MAX3421E no escudo através do barramento SPI disponível através do cabeçalho ICSP. O barramento SPI no Arduino UNO está presente nos pinos GPIO10, GPIO11, GPIO12 e GPIO13. No Arduino Mega, o barramento SPI está presente nos pinos GPIO 0, GPIO50, GPIO51 e GPIO52. Os pinos GPIO7, GPIO8 e GPIO9 em ambas as placas são usados ​​para GPX, INT e RES, respectivamente.

Exemplo de escudo host USB do Arduino

O escudo pode ser usado para conectar dispositivos HID ao Arduino, como teclados USB, mouse USB e joystick USB. Ele pode ser usado para fazer interface de controladores de jogos com Arduino, como PS4, Xbox360 e Nintendo Wii. Ele pode ser utilizado para conectar câmeras digitais e dispositivos de armazenamento em massa como pen drives, discos rígidos externos ou leitores de cartão de memória com Arduino. Até mesmo dongles Bluetooth podem ser conectados ao Arduino e ao escudo host USB. Smartphones e tablets Android compatíveis com ADK podem ser conectados ao Arduino por meio do escudo. O escudo também pode ser usado para conectar conversores USB para serial com Arduino. O escudo permite conectar, adicionar ou utilizar muitos dispositivos úteis com seu dispositivo Arduino incorporado.

Biblioteca Arduino para escudo host USB
A biblioteca necessária para funcionar com o Arduino USB Host Shield é chamada de “Biblioteca Host USB para Arduino”. O código-fonte desta biblioteca Arduino de código aberto está disponível no GitHub. Para instalar a biblioteca no Arduino IDE, navegue até Ferramentas-> Gerenciar Bibliotecas. Procure por “host USB”. Role para baixo até “USB Host Shield Library 2.0” e clique em instalar. Tente instalar a versão mais recente da biblioteca.

Instalando a biblioteca Arduino para USB Host Shield

Conexões de circuito
Insira o escudo host USB na parte superior do Arduino UNO ou Arduino Mega, conforme mostrado na imagem abaixo.

Conectando mouse USB com Arduino UNO via USB Host Shield

Insira o mouse USB na blindagem e conecte o Arduino ao computador através de um cabo Micro-USB. A configuração do Arduino com escudo host USB e mouse será a seguinte.

Conectando mouse USB com Arduino UNO via USB Host Shield

Esboço do Arduino

Como funciona o projeto
As bibliotecas hidboot.h e usbhub.h são necessárias ao trabalhar com um mouse USB. O hidboot.h é responsável por analisar dispositivos USB HID, como teclados e mouse. A biblioteca é utilizada para detectar eventos de mouse no Arduino UNO ou Arduino Mega. O esboço carregado no Arduino detecta movimento do mouse, pressionamento do botão esquerdo, pressionamento do botão direito, liberação do botão esquerdo e liberação do botão direito. Os eventos do mouse são registrados no Serial Monitor. Ao detectar o movimento do mouse, a mudança em suas coordenadas xey é registrada no Monitor Serial.

O código
O esboço começa com a importação das bibliotecas hidboot.h e usbhub.h. A biblioteca hidboot.h é usada para analisar a entrada de dispositivos USB HID, como teclados e mouse. A biblioteca usbhub.h é útil se o mouse estiver conectado ao escudo através de algum hub USB. A seguir, a biblioteca SPI é importada enquanto o escudo se comunica com o Arduino através da porta SPI.

Algumas variáveis ​​globais são declaradas LeftBtn, RightBtn, LeftBtnRls, RightBtnRls, MouseMoved, xey para o status do botão esquerdo pressionado, botão direito pressionado, botão esquerdo liberado, botão direito liberado, movimento do mouse, mudança na posição do mouse ao longo de x -eixo e mudança na posição do mouse ao longo do eixo y.

Uma classe MouseRptParser é definida como filha da classe MouseReportParser de hidboot.h. Os métodos OnMouseMove, OnLeftButtonUp, OnLeftButto Down, OnRightButtonUp e OnRightButtonDown são importados da superclasse MouseReportParser. Esses métodos são substituídos no esboço. O método OnMouseMove é substituído para armazenar a alteração nas posições xy do mouse nas variáveis ​​globais x e y, respectivamente. O método também define o booleano MouseMoved como verdadeiro. O método OnLeftButtonUp é substituído para definir o booleano MouseMoved LeftBtn como verdadeiro quando o botão esquerdo do mouse é pressionado. O método OnLeftButtonDown é substituído para definir o booleano LeftBtnRls como true quando o botão esquerdo do mouse é liberado. O método OnRightButtonUp é substituído para definir o booleano RightBtn como true quando o botão direito do mouse é pressionado. O método OnRightButtonDown é substituído para definir bo lean RightBtnRls como true quando o botão direito do mouse é liberado.

Um objeto da classe USB é definido junto com os objetos do HIDBoot e a classe definida pelo usuário MouseRptParser. Na função setup , a taxa de transmissão para comunicação serial com o Serial Monitor do Arduino IDE é definida como 115200, e se a comunicação serial for estabelecida entre o Arduino e o computador, uma mensagem “start” é impressa no Serial Monitor.

Em seguida, o código verifica a detecção do dispositivo USB por meio do escudo host USB. Caso não seja detectado, imprime uma mensagem “OSC não fez o art. ”Para o Monitor Serial. O método SetReportParser( é chamado no objeto HidMouse com o objeto da classe MouseRptParser passado como argumento.

Na função loop , o método task é chamado no objeto USB. As variáveis ​​booleanas que indicam o status de cada evento do mouse são verificadas usando instruções if e as variáveis ​​são redefinidas para falsas.

Deve-se observar que a sensibilidade do mouse pode ser ajustada aumentando ou diminuindo o atraso na instrução if verificando o status do booleano MouseMoved.

Resultado
Neste projeto, detectamos eventos de mouse usando Arduino. O movimento do botão esquerdo do mouse e do clique do botão direito é detectado e registrado. Os eventos podem ser utilizados para controlar um robô, rolar uma tela ou controlar outras tarefas incorporadas.

Zurück zum Blog

Hinterlasse einen Kommentar

Bitte beachte, dass Kommentare vor der Veröffentlichung freigegeben werden müssen.