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 Bluetooth Controlado por Smartphone: Construa Seu Próprio Joystick Virtual

Componentes e Materiais

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

Aplicativos e Serviços Online

Sobre o Projeto

Este projeto é semelhante ao meu trabalho anterior onde usei um joystick físico para controlar o cursor do PC. A diferença principal é que criei um aplicativo para smartphone contendo dois joysticks virtuais para mover o cursor, rolar a tela e realizar cliques esquerdo e direito, como um trackpad comum.

Funcionamento

O aplicativo no smartphone envia os dados dos eixos X e Y dos joysticks, status de rolagem, clique esquerdo e direito via Bluetooth para o Arduino Uno conectado ao módulo HC-05. O Arduino manipula esses dados para calcular a nova posição do cursor. O resultado, junto com status de rolagem e botões, é enviado via Serial para ser lido por um script Python que executa as ações do mouse usando a biblioteca mouse.

Mouse Bluetooth Controlado por Smartphone: Construa Seu Próprio Joystick Virtual

Sobre o Aplicativo

O aplicativo foi criado com o MIT App Inventor. A tela principal mostra dois joysticks virtuais.

Mouse Bluetooth Controlado por Smartphone: Construa Seu Próprio Joystick Virtual

Antes de enviar os dados principais, o app envia um byte de início (255). A sequência de transmissão é:

  1. Envia '255' (início)
  2. Envia 1 byte: valor do eixo X do joystick
  3. Envia 1 byte: valor do eixo Y do joystick
  4. Envia 1 byte: status de clique esquerdo, direito e rolagem

Os dados são enviados a cada 20 milissegundos.

Lado do Arduino

O Arduino recebe os bytes via HC-05. Mantém as coordenadas atuais do cursor (X: 0–1279, Y: 0–799), obtidas via mouse.get_position() no Python. Com base nos dados do joystick, atualiza as coordenadas somando/subtraindo os valores recebidos. O resultado é impresso no Serial no formato:

X:Y:CLICKS

Mouse Bluetooth Controlado por Smartphone: Construa Seu Próprio Joystick Virtual

Essa sequência é lida pelo programa Python. Será necessário instalar os módulos mouse e pyserial.

Programação em Python

O usuário deve ter o Python 3 instalado (download aqui).

Windows:

  1. Após instalar, copie o caminho do executável do Python.
  2. Abra o Prompt de Comando e execute:
    cd <caminho_do_python>
    py -m pip install --upgrade pip
    py -m pip install mouse
    py -m pip install pyserial
    

O módulo mouse executa ações do mouse; pyserial comunica com o Arduino.

Mouse Bluetooth Controlado por Smartphone: Construa Seu Próprio Joystick Virtual Mouse Bluetooth Controlado por Smartphone: Construa Seu Próprio Joystick Virtual Mouse Bluetooth Controlado por Smartphone: Construa Seu Próprio Joystick Virtual

Execução

  1. Instale o app Bluetooth Mouse Control no smartphone.
  2. Carregue o sketch no Arduino Uno e monte o circuito conforme o esquemático.
  3. Lado Python:
    1. Copie o código Python para um arquivo .py. Altere a porta COM para a do seu Arduino e salve.
    2. Abra no IDLE do Python e execute.
  4. Conecte o app ao módulo Bluetooth. O cursor moverá conforme os joysticks virtuais.

Mouse Bluetooth Controlado por Smartphone: Construa Seu Próprio Joystick Virtual Mouse Bluetooth Controlado por Smartphone: Construa Seu Próprio Joystick Virtual Mouse Bluetooth Controlado por Smartphone: Construa Seu Próprio Joystick Virtual Mouse Bluetooth Controlado por Smartphone: Construa Seu Próprio Joystick Virtual Mouse Bluetooth Controlado por Smartphone: Construa Seu Próprio Joystick Virtual Mouse Bluetooth Controlado por Smartphone: Construa Seu Próprio Joystick Virtual

Código

Código Arduino

int datareceived[5] = {0,0,0,0};
int in_byte = 0;
int array_index = 0;
int l_prev=0, r_prev=0;

void setup() {
  Serial.begin(9600);
}

int height=0, width=0;

void loop() {
  int clicks=0;
  int sensitivity=20;
  int xpos=0, ypos=0;

  if (Serial.available() > 0) {
    in_byte = Serial.read();
    if (in_byte == 255) array_index = 0;
    datareceived[array_index] = in_byte;
    array_index++;

    if (datareceived[1] >= 110) xpos = map(datareceived[1], 110, 172, 0, sensitivity);
    if (datareceived[1] <= 70) xpos = map(datareceived[1], 60, 1, 0, -sensitivity);
    if (datareceived[2] >= 110) ypos = map(datareceived[2], 110, 255, 0, sensitivity);
    if (datareceived[2] <= 60) ypos = map(datareceived[2], 70, 1, 0, -sensitivity);

    if (datareceived[3]==1 && l_prev==0) clicks=1;
    else if (datareceived[3]==2 && r_prev==0) clicks=2;
    else if (datareceived[3]==3 || datareceived[3]==4) clicks=datareceived[3];

    l_prev = datareceived[3];
    r_prev = datareceived[3];

    if (xpos!=0 || ypos!=0 || clicks!=0) {
      height += ypos;
      width += xpos;
      height = constrain(height, 0, 799);
      width = constrain(width, 0, 1279);
      Serial.print(width); Serial.print(":");
      Serial.print(height); Serial.print(":");
      Serial.println(clicks);
      clicks=0;
    }
  }
}

Código Python

import mouse, sys
import time
import serial

mouse.FAILSAFE = False
ArduinoSerial = serial.Serial('COM3', 9600)  # Ajuste a porta COM
time.sleep(1)

while True:
    data = str(ArduinoSerial.readline().decode('ascii'))
    x, y, z = data.split(":")
    x, y = int(x), int(y)
    mouse.move(x, y)
    if '1' in z: mouse.click(button="left")
    elif '2' in z: mouse.click(button="right")
    elif '3' in z: mouse.wheel(delta=-1)
    elif '4' in z: mouse.wheel(delta=1)

Esquemático

Mouse Bluetooth Controlado por Smartphone: Construa Seu Próprio Joystick Virtual

Processo de manufatura

  1. Construa um Robô Raspberry Pi Controlado por Bluetooth com Feedback de Áudio
  2. Lâmpada de Mesa RGB Controlada por Gestos – Iluminação Interativa e Sem Toque
  3. Construa um Voltímetro Inteligente com Arduino e Smartphone – Projeto DIY Fácil
  4. Controlar LEDs com Alexa via Raspberry Pi – Guia Passo a Passo Fácil
  5. Transforme um Carro RC Antigo em Veículo Controlado por Joystick com Arduino
  6. Controlar um LED via Bluetooth com Arduino – Guia DIY Simples
  7. Braço Robótico 6 GDL Controlado por Nunchuk com Arduino Mega
  8. Construa um Robô Controlado por Voz com Arduino Nano
  9. MobBob: Construa Seu Próprio Robô Arduino, Controlado via Smartphone Android
  10. Eletrodomésticos Ativados por Voz: Controle Bluetooth com Google Assistant