Manufaturação industrial
Internet das coisas industrial | Materiais industriais | Manutenção e reparo de equipamentos | Programação industrial |
home  MfgRobots >> Manufaturação industrial >  >> Manufacturing Technology >> Processo de manufatura

Mouse controlado por joystick

Componentes e suprimentos

Arduino UNO
× 1
Joystick de eixo duplo
× 1

Aplicativos e serviços online

Arduino IDE
IDLE (Python GUI)

Sobre este projeto


Como alternativa para rastrear o cursor do computador usando um mouse ou trackpad, fiz esse mesmo aplicativo com a ajuda de um joystick. O joystick pode mover o cursor em qualquer direção (eixos xe Y) e também executa a função de clique com o botão do joystick integrado.





Básico-


Um joystick consiste simplesmente em 2 potenciômetros alinhados nas direções xey. O arduino lê valores analógicos do joystick na faixa de 0 a 1023. Assim, quando o joystick está em sua posição padrão (centro), o valor analógico também fica próximo a 500 (entre 0 e 1023).

O esboço do Arduino é programado de forma que, quando o joystick é movido para longe do centro, imprima valores na faixa de -sensibilidade a + valor de sensibilidade (valor padrão definido é 10) dependendo da posição. Portanto, quando o joystick é movido em uma posição extrema, o arduino imprime o valor 10 e se o joystick é movido em outra posição extrema, -10 é impresso.

Para imprimir valores separados para as direções xey, usaremos ":" entre os valores das direções xey. Exemplo:

O status do botão do joystick (SW) é impresso (1/0) no monitor serial após os valores xey.

Para que o laptop / computador reconheça os valores, precisaremos do módulo pyautogui do python.





Programação Python


(editado em 11/12/2020 - mudou a biblioteca de 'pyautogui' para 'mouse')

O usuário deve ter o python 3 instalado em seu laptop / computador. Ele pode ser baixado aqui.

Após a instalação, copie o caminho do local do arquivo python.

As etapas a seguir devem ser executadas no prompt de comando. Abra o prompt de comando e digite o seguinte-

1. cd

2. py –m pip install –- atualizar pip

3. py –m pip install mouse

4. py -m pip install pyserial

O mouse módulo é usado para realizar ações do mouse e pyserial módulo é usado para enviar / receber dados do arduino. Eu já tinha instalado os módulos necessários, então peguei este

O programa python é feito para ler os dados impressos pelo Arduino e reconhecer o x e y valores de direção, bem como o status do switch (SW).

As coordenadas atuais do cursor são obtidas a partir da função do mouse mouse.get_position () que fornece as coordenadas X e Y do cursor na forma de pixels.

Quando o joystick é movido, os valores analógicos fornecidos pelo arduino são adicionados com a posição atual do cursor para mover o cursor na direção desejada.

Para mover o cursor na direção dada, a função mouse.move (X + x, Y + y) satisfaz esse propósito.

onde X e Y são a posição atual do cursor e x e y são as posições de incremento / decremento fornecidas pelo arduino.

exemplo: mouse.moveTo (100,150) move o cursor para 100 pixels no eixo xe 150 pixels no eixo y.

Para executar a operação de clique com base no status do SW, mouse.click (button ="left") é usado.





Execução Final


Carregue o esboço do arduino (fornecido abaixo) para o seu arduino UNO e conecte o joystick aos pinos do arduino conforme mostrado no esquema.

Depois de verificar se o mouse e o pyserial estão instalados em seu computador / laptop, execute as seguintes etapas.

1. Copie o esboço do python em um arquivo do bloco de notas. Especifique a porta COM correta do arduino. No gerenciador de dispositivos, você pode obter a porta COM à qual a placa arduino está conectada. Salve o arquivo como ".py" após fazer as alterações.

2. Abra o IDLE do python (GUI do python) e abra o arquivo do bloco de notas a partir dele.

3. execute o módulo.

Você será direcionado de volta para a tela da Fig 4

Caso veja algum erro, reinicie o IDLE e verifique se mencionou a porta COM correta do arduino.

Se não houver erros, mova o joystick e você verá o movimento do cursor.


Código

  • Código Arduino
  • Código Python
Código Arduino Arduino
 //////////////////////////////////// Mouse controlado por joystick ////// por Shubham Santosh / //////////////////////////////////////// void setup () {Serial.begin (9600); pinMode (9, INPUT); // SW pin digitalWrite (9, HIGH);} int prev_state =0; // estado anterior do loop switchvoid () {int z =0, xpos =0, ypos =0; int x =analogRead (A0); int y =analogRead (A1); sensibilidade interna =10; // você pode ajustar a sensibilidade com base no seu conforto if (x> =550) // quando movido para cima xpos =map (x, 550,1023,0, sensibilidade); if (x <=450) // quando movido para baixo xpos =map (x, 450,0,0, -sensibilidade); if (y> =550) // quando movido para a direita ypos =map (y, 550,1023,0, sensibilidade); if (y <=450) // quando movido para a esquerda ypos =map (y, 450,0,0, -sensibilidade); int curr_state =digitalRead (9); if (curr_state ==1 &&prev_state ==0) // quando SW é pressionado z =1; senão z =0; if (xpos! =0 ou ypos! =0 ou z ==1) // imprime somente quando o joystick é movido {Serial.print (xpos); // imprime os dados separando por ":" Serial.print (":"); Serial.print (ypos); Serial.print (":"); Serial.println (z); } prev_state =curr_state; atraso (10); // para operação normal} 
Código Python Python
 # Mouse controlado por joystick # Por Shubham Santosh # última edição 12/11/2020import mouse, sysimport time import serialmouse.FAILSAFE =FalseArduinoSerial =serial.Serial ('com3', 9600) #Especifique o COM porttime.sleep (1 ) # atraso de 1 segundo enquanto 1:data =str (ArduinoSerial.readline (). decode ('ascii')) #read the data (x, y, z) =data.split (":") # assigns to x, y e z (X, Y) =mouse.get_position () #ler a posição atual do cursor (x, y) =(int (x), int (y)) #converter para int mouse.move (X + x, Yy ) #mova o cursor para a posição desejada se '1' em z:# lê o status de SW mouse.click (button ="left") # clica no botão esquerdo 

Esquemas


Processo de manufatura

  1. Mouse do computador
  2. Ventilador com temperatura controlada
  3. Aquaponia controlada com Raspberry Pi
  4. Botão AWS IoT controlado por movimento
  5. Robô Raspberry Pi controlado por Bluetooth
  6. Robô controlado por Wi-Fi usando Raspberry Pi
  7. MajorTom:Alexa Voice Controlled ARDrone 2.0
  8. Carro RC controlado por joystick
  9. Joystick Game
  10. Liga de Expansão Controlada Liga 42