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 smartphone

Componentes e suprimentos

Arduino UNO
× 1
Módulo Bluetooth HC-05
× 1
Fios de jumpers (genérico)
× 1

Aplicativos e serviços online

Arduino IDE
IDLE (Python GUI)
Controle de mouse Bluetooth do MIT App Inventor

Sobre este projeto


Este projeto é semelhante ao meu trabalho anterior, em que usei um joystick para controlar um cursor de PC. A principal diferença é que criei um aplicativo para smartphone que contém 2 joysticks virtuais para mover o cursor, bem como rolar a tela e também clicar com o botão esquerdo e direito como um trackpad normal.





Trabalhando


O projeto envolve um aplicativo de smartphone que envia os dados dos eixos xey do joystick, status de rolagem, status do clique esquerdo e direito usando bluetooth para o Arduino Uno conectado ao módulo bluetooth HC-05. Esses dados na recepção ao Arduino são manipulados para fazer alterações na posição atual do cursor para obter uma nova posição. Os dados resultantes junto com a rolagem e o status do botão são impressos como a saída que é reconhecida para ser lida pelo esboço do Python. O esboço Python é feito para executar ações do mouse usando o módulo do mouse.





Sobre o aplicativo


O aplicativo do smartphone é criado usando o MIT-App Inventor. Criar o aplicativo é simples, pois você só precisa adicionar os blocos desejados para construir seu aplicativo necessário. Eu me referi ao tutorial de robótica de mesa para fazê-los. A tela principal do aplicativo é a seguinte-

Antes de enviar as informações principais para o módulo HC-05, o aplicativo primeiro envia um número de um byte (255) para denotar o início das informações. A sequência de transferência de dados é a seguinte-

1. Envie '255' para denotar o início

2. Envie o valor do eixo x do joystick de 1 byte

3. Envie o valor do eixo y do joystick de 1 byte

4. Enviar status de clique esquerdo, botão direito e status de rolagem (1 byte).

Os dados do aplicativo são enviados a cada 20 milissegundos para o Arduino UNO.





Lado do Arduino


Os bytes de dados do Aplicativo são recebidos pelo Arduino com a ajuda do módulo HC-05 Bluetooth. O Arduino contém as coordenadas atuais do cursor onde as coordenadas x variam de 0 a 1279 e as coordenadas y variam de 0 a 799. Obtive essas coordenadas extremas da função python mouse.get_position () que retorna as coordenadas quando o cursor é movido (não usado no esboço principal).

Com base nos dados recebidos ao mover o joystick, a posição atual do cursor (coordenadas xey) é então adicionada / subtraída com os dados recebidos pelo aplicativo para mover o cursor para a nova coordenada desejada. Os dados finais são então impressos no monitor serial na seqüência fornecida abaixo.

A sequência de dados a seguir é finalmente lida pelo programa python para executá-la. Para isso, precisaremos baixar módulos adicionais, ou seja, mouse e pyserial nas etapas fornecidas a seguir.





Programação Python


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

(Para Windows)

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





Execução


Instale o aplicativo Bluetooth Mouse Control em seu smartphone.

Faça upload do esboço do Arduino para o seu Arduino UNO e siga o circuito conforme mostrado no esquema.

Lado Python -

1. Copie e cole o código python em um arquivo do bloco de notas. Mude a porta COM para a porta COM do seu Arduino UNO e salve-a como '.py'.

2. Abra o python IDLE e abra o arquivo notepad dele.

3. Execute o Sketch.

Você será direcionado de volta à tela da fig 2.2.

Abra o aplicativo do smartphone e conecte-se ao módulo bluetooth e você notará o movimento do cursor ao mudar a direção do joystick.


Código

  • Código Arduino
  • Código Python
Código Arduino Arduino
 int datar recebido [5] {0,0,0,0}; // Para armazenar byte de phoneint in_byte =0; int array_index =0; int l_prev =0, r_prev =0; // status anterior do clique esquerdo e direito do mouse void setup () {Serial.begin (9600); // inicia o monitor serial} int height =0, width =0; void loop () {int clicks =0; sensibilidade interna =20; // você pode ajustar a sensibilidade int xpos =0, ypos =0; if (Serial.available ()> 0) {// receber byte do telefone in_byte =Serial.read (); // armazena um byte em uma variável if (in_byte ==(255)) {// se a variável é 0 redefina o array aumentado para 0. array_index =0; } dados recebidos [índice_matriz] =in_byte; // armazena o número na matriz array_index =array_index +1; if (datarecebido [1]> =110) xpos =mapa (datarecebido [1], 110,172,0, sensibilidade); // Quando movido para a direitaif (datarecebido [1] <=70) xpos =map (datarecebido [1], 60,1,0, -sensibilidade); // Quando movido para a esquerdaif (datareceived [2]> =110) ypos =map (datareceived [2], 110,255,0, sensibilidade); // Quando movido para baixoif (datareceived [2] <=60) ypos =map (datareceived [2], 70,1,0, -sensibilidade); // Quando movido para cimaif (datareceived [3] ==1 &&l_prev ==0) // PARA reconhecer cliques de um único botão pressionado =1; else if (datareceived [3] ==2 &&r_prev ==0) cliques =2; senão se (datarecebido [3] ==3 || datarecebido [3] ==4) cliques =datarecebido [3]; // scrolll_prev =datareceived [3]; r_prev =datareceived [3]; if (xpos! =0 ou ypos! =0 ou clica! =0) // quando qualquer um dos joysticks é movido ou o botão é pressionado ou rolado { altura =altura + ypos; largura =largura + xpos; se (altura> =799) altura =799; se (altura <=0) altura =0; se (largura> =1279) largura =1279; se (largura <=0) largura =0; Serial.print (largura); Serial.print (":"); Serial.print (altura); Serial.print (":"); Serial.println (cliques); cliques =0;} }} 
Código Python Python
 import mouse, sysimport time import serialmouse.FAILSAFE =FalseArduinoSerial =serial.Serial ('com3', 9600) #Especifique o COM porttime.sleep (1) #delay of 1 secondwhile 1:data =str (ArduinoSerial.readline () .decode ('ascii')) (x, y, z) =data.split (":") # leia os dados do eixo xey (x, y) =(int (x), int (y) ) # converter para int mouse.move (x, y) # mover o cursor para as coordenadas desejadas se '1' em z:mouse.click (botão ="esquerdo") #clicks botão do mouse elif '2' em z:mouse. click (button ="right") elif '3' em z:mouse.wheel (delta =-1) # Scroll down elif '4' in z:mouse.wheel (delta =1) # Scroll up 

Esquemas


Processo de manufatura

  1. Robô Raspberry Pi controlado por Bluetooth
  2. Luz da mesa interativa controlada por gestos
  3. Faça você mesmo voltímetro usando Arduino e Smartphone
  4. LEDs controlados por Alexa através do Raspberry Pi
  5. Carro RC controlado por joystick
  6. Arduino com Bluetooth para controlar um LED!
  7. Braço robótico controlado por Nunchuk (com Arduino)
  8. Robô controlado por fala
  9. MobBob:DIY Arduino Robot Controlado por Smartphone Android
  10. Dispositivos Bluetooth controlados por voz com OK Google