Este projeto implementa um sistema de controle de múltiplos LEDs utilizando visão computacional.
A posição da mão do usuário é rastreada pela câmera usando a biblioteca MediaPipe Hands, e dependendo da região em que a mão aparece (Esquerda, Centro ou Direita), um comando é enviado via porta serial para o Arduino, que acende o LED correspondente.
Demonstrar a integração entre Visão Computacional (Python + MediaPipe) e Sistemas Embarcados (Arduino), aplicando conceitos de:
- Zoneamento de espaço em tela (divisão em regiões).
- Comunicação serial entre Python ↔ Arduino.
- Controle de hardware físico (LEDs).
-
Python 3.x
opencv-python(captura e exibição de vídeo).mediapipe(detecção e rastreamento da mão).pyserial(comunicação serial com Arduino).
-
Arduino UNO (ou compatível)
- LEDs RGB (pinos digitais 11, 12 e 13).
- Comunicação Serial (
Serial.begin(9600)).
- O Python captura a imagem da câmera em tempo real.
- O MediaPipe Hands rastreia a posição da mão.
- O ponto central da mão (landmark 9) é utilizado para determinar a região da tela:
- Esquerda → envia comando
'E'. - Centro → envia comando
'C'. - Direita → envia comando
'D'.
- Esquerda → envia comando
- O Arduino recebe o caractere pela porta serial.
- Com base no caractere:
'E'→ Acende o LED vermelho.'C'→ Acende o LED amarelo.'D'→ Acende o LED verde.
- Apenas um LED permanece aceso por vez.
| LED | Cor | Pino Arduino |
|---|---|---|
| LED 1 | Vermelho | 13 |
| LED 2 | Amarelo | 12 |
| LED 3 | Verde | 11 |
Esquema básico:
- O ânodo (perna longa) de cada LED vai para o pino correspondente.
- O cátodo (perna curta) de cada LED vai para o GND através de um resistor de 220Ω.
/projeto-controlador-leds │── controlador_leds.py # Código Python (Visão + Comunicação Serial) │── controlador_leds.ino # Código Arduino (Recepção + Acionamento LEDs) │── README.md # Este arquivo
- Abra o código
controlador_leds.inona IDE do Arduino. - Selecione a placa correta (Arduino UNO, Nano, etc).
- Selecione a porta COM correspondente.
- Faça o upload para a placa.
-
Instale as dependências:
pip install opencv-python mediapipe pyserial
-
Verifique a porta serial do Arduino (exemplo: COM8 no Windows ou /dev/ttyUSB0 no Linux).
-
Altere no código Python, se necessário:
arduino = serial.Serial('COM8', 9600, timeout=1)