O controle-O é um mouse virtual movido pelo movimento da mão. A câmera (capturada pela biblioteca OpenCV) vai analisar a posição da mão utilizando Mediapipe e traduzir o movimento em tempo real utilizando EvDev. O projeto utiliza threading e queue pro sistema não pesar enquanto renderiza a interface e os pontos da mão.
A interface escolhida para esse projeto foi o dearpygui (DPG). O DPG foi escolhido por ser leve e de rápido aprendizado, com a estrutura se assemelhando até mesmo com HMTL.
Cada etapa do projeto foi separada em um arquivo distinto e depois mesclado no arquivo main para uma melhor navegação e reutilização. Mapa dos arquivos:
- Interface e Inicialização: main.py
- Mapeamento das mãos: maos.py
- Processamento da câmera: camera.py
- Movimento do mouse: mouse_virtual.py
O controle-O deve funcionar apenas nos sistemas Linux, pois utiliza a biblioteca EvDev para realizar o movimento do mouse, já que o meu sistema Linux utiliza um gerenciador de janelas Wayland, que barra a utilização do pyautogui para mover o mouse. (Não pretendo portar para Windows)
- IDE: VSCode
- Linguagem: Python 3.10.19
- DearPyGui (DPG)
- EvDev
- Threading e Queue
- Meadiapipe
- OpenCV
- Numpy
- Gerenciador de pacotes UV
Caso não tenha UV, use: pip install uv
- Clonando o Repositório:
git clone https://github.com/Zeuxsf/Controle-O.git - Abra o repositório na sua IDE favorita e use:
uv sync - Inicie o Venv:
uv venve depoissource .venv/bin/activate - Instale as dependências do código: Use
uv pip install -r requirements.txt
Criado por: Alexandre S. de França