Este projeto transforma a sua mão em um controlador de mouse virtual, utilizando a sua webcam. Com o VisionAuto, você pode mover o cursor pela tela com o movimento do seu dedo indicador e realizar cliques e arrastar (hold) com o movimento do seu dedão.
O projeto utiliza as bibliotecas de visão computacional OpenCV e MediaPipe para detectar os marcos (landmarks) da mão em tempo real.
- Posicionamento do cursor: A ponta do seu dedo indicador (ponto
8) é mapeada para a posição do cursor na tela. O movimento da sua mão na frente da câmera controla o movimento do mouse. - Clique e Hold: O clique do mouse é acionado quando a ponta do seu dedão se aproxima da base do dedão, simulando um movimento de pinça.
- Um clique rápido (movimento de pinça e solta) executa um
pyautogui.click(). - Um movimento de pinça prolongado por mais de 1 segundo inicia um
pyautogui.mouseDown()para arrastar objetos. Soltar o dedão executa opyautogui.mouseUp().
- Um clique rápido (movimento de pinça e solta) executa um
Certifique-se de que você tem o Python instalado em seu sistema. Este projeto foi testado com Python 3.11.
Instale as bibliotecas necessárias usando pip:
pip install opencv-python mediapipe pyautogui-
Clone o repositório:
git clone [https://github.com/seu-usuario/seu-repositorio.git](https://github.com/seu-usuario/seu-repositorio.git) cd seu-repositorio -
Execute o script Python:
python main.py
Ao executar o script, uma janela da sua webcam será aberta. Coloque sua mão na frente da câmera e veja a mágica acontecer!
O código inclui um sistema de calibração visual que ajuda a ajustar a sensibilidade do clique. Ao iniciar o programa, observe as informações no canto superior esquerdo da janela da webcam.
Distancia: Este valor mostra a distância, em pixels, entre a ponta e a base do seu dedão.Estado: Indica o estado atual da sua mão (IDLE,POTENTIAL CLICK,HOLDING,RELEASE,CLICK).
- Aproxime a ponta do seu dedão da palma da mão, como se fosse fazer um clique.
- Anote o valor de
Distanciaexibido na tela no momento em que a pinça está fechada. - Abra o arquivo
main.pye ajuste o valor da variávelclick_threshold_distancepara um número um pouco maior do que o que você anotou. Por exemplo, se o valor for45, ajuste para50ou55.
A variável hold_time_threshold define o tempo (em segundos) que a sua mão precisa ficar na posição de clique para que o hold seja ativado. O valor padrão é 1 segundo, mas você pode ajustá-lo para ser mais rápido (ex: 0.5) ou mais lento (ex: 1.5) conforme sua preferência.
# Valor a ser ajustado para a calibração do clique
click_threshold_distance = 50
# Valor a ser ajustado para a calibração do hold
hold_time_threshold = 1Se o programa não abrir ou fechar imediatamente, pode haver um problema com o acesso à sua webcam.
- Erro
Camera index out of range: Verifique se sua câmera está conectada e tente alterar o valor do índice de captura de vídeo:cap = cv2.VideoCapture(0) # Tente 0, 1, 2...
- Erro
Não foi possível ler um quadro...: A sua câmera pode precisar de mais tempo para iniciar. Tente aumentar o valor detime.sleep().
Contribuições são bem-vindas! Se você encontrar um bug ou tiver uma ideia para uma nova funcionalidade, sinta-se à vontade para abrir uma issue ou enviar um pull request.
Este projeto está sob a licença MIT License.