Skip to content

Rafafaaa-FIAP/IOT-sem1-checkpoint2

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

2 Commits
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Controlador de LEDs por Posição da Mão 🖐️💡

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.


🎯 Objetivo

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).

🛠️ Tecnologias Utilizadas

  • 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)).

⚙️ Funcionamento do Sistema

  1. O Python captura a imagem da câmera em tempo real.
  2. O MediaPipe Hands rastreia a posição da mão.
  3. 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'.
  4. O Arduino recebe o caractere pela porta serial.
  5. Com base no caractere:
    • 'E' → Acende o LED vermelho.
    • 'C' → Acende o LED amarelo.
    • 'D' → Acende o LED verde.
  6. Apenas um LED permanece aceso por vez.

🔌 Circuito

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Ω.

📂 Estrutura do Projeto

/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


▶️ Como Executar

1. Configuração do Arduino

  1. Abra o código controlador_leds.ino na IDE do Arduino.
  2. Selecione a placa correta (Arduino UNO, Nano, etc).
  3. Selecione a porta COM correspondente.
  4. Faça o upload para a placa.

2. Configuração do Python

  1. Instale as dependências:

    pip install opencv-python mediapipe pyserial
    
  2. Verifique a porta serial do Arduino (exemplo: COM8 no Windows ou /dev/ttyUSB0 no Linux).

  3. Altere no código Python, se necessário:

 arduino = serial.Serial('COM8', 9600, timeout=1)

About

No description or website provided.

Topics

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors