Robô Controlado por Gestos: Projeto Hands-Free com Arduino UNO
Componentes e Materiais
| Arduino UNO | × | 1 |
| Acelerômetro Triaxial SparkFun ADXL335 | × | 1 |
| Módulo RF 434 MHz | × | 1 |
| HT12D (Decoder) | × | 1 |
| HT12E (Encoder) | × | 1 |
| Driver de Motor Dual H-Bridge SparkFun L298 | × | 1 |
| PCB de Prototipagem (genérica) | × | 1 |
| Regulador Linear 7805 | × | 2 |
| Motor DC (genérico) | × | 1 |
Aplicativos e Serviços Online
- Arduino IDE
Sobre o Projeto
ATUALIZAÇÃO: VERSÃO ATUALIZADA DESTE PROJETO PODE SER ENCONTRADA AQUI
Introdução
Eu queria poder controlar tudo com as mãos! Sentado na minha cadeira e controlando coisas como um CHEFE. Eu adoraria! Então finalmente criei um robô DIY de reconhecimento de gestos de mão, que pode seguir comandos feitos por gestos. Parece louco, mas prometo que é muito simples. Fazer um robô de controle por gestos é realmente muito simples. Este robô é uma melhoria do meu outro projeto DIY de carro RC usando módulo RF.
Aqui também o robô é dividido em duas partes: transmissor e receptor. O circuito receptor é o mesmo do post antigo e há apenas uma pequena mudança no circuito transmissor: aqui precisamos programar o circuito transmissor. Então usarei um Arduino como plataforma de programação. Para reconhecer os gestos feitos, usarei um sensor acelerômetro. Vamos construir!
Veja o Robô em Ação
O que é um Acelerômetro (ADXL335)?

Em resumo, um acelerômetro é um dispositivo de medição de aceleração de três eixos. O acelerômetro usado aqui é o ADXL335 e possui 3 eixos (X Y Z).
Quase todos os smartphones agora têm acelerômetros (embora não vamos tirar de um smartphone). Você definitivamente jogou jogos de movimento no seu celular (ex: Temple Run) onde o personagem no jogo se move para esquerda e direita quando você inclina o telefone para esquerda e direita respectivamente – isso é feito pelo acelerômetro.
Existe outro sensor chamado Giroscópio encontrado no smartphone que não precisamos agora.
Como Funciona e Reconhece os Gestos?
Aqui o cérebro do robô é o Arduino Uno (Atmega32), alimentado com um conjunto de código. Os gestos/movimentos feitos pela mão são reconhecidos por um dispositivo de medição de aceleração chamado acelerômetro (ADXL335).

Aqui o acelerômetro lê as coordenadas X Y Z quando fazemos gestos com a mão e envia as coordenadas X Y Z para o Arduino (aqui não precisamos do eixo Z, precisamos apenas de duas coordenadas X e Y, então ignoramos a coordenada Z). O Arduino verifica os valores das coordenadas e envia um código de 4 bits para o CI Encoder. O Encoder passa os dados para o transmissor e os dados transmitidos são recebidos pelo receptor RF. O receptor envia o código de 4 bits para o CI Decoder e o decoder passa para o CI Driver de Motor. Depois, o driver de motor toma a decisão de girar os dois motores na direção necessária.
Faça a Fonte de Alimentação
Primeiro, começaremos com o circuito de fonte de alimentação. Precisamos de dois circuitos de fonte de alimentação: um para o transmissor e outro para o receptor. O circuito receptor precisa ser alimentado com fonte de 12V (já que estou usando motor de 12V) e o circuito transmissor pode ser alimentado com bateria de 9V.

Você pode ver o circuito para a fonte de alimentação do receptor à direita. Usando este diagrama, monte o circuito de alimentação. Você também pode adicionar um LED via resistor de 1k para indicar o estado da fonte de alimentação.

- CI 7805 que regula a fonte de 12V para 5V (se não conseguir fonte de 12V, pode usar fonte de 9V)
- Capacitores 0,1µF e 470µF
- Resistor 1k para LED de status
NOTA: Use dissipador de calor para o 7805 porque estamos baixando 7V (12-5), então muito calor será produzido e pode queimar o regulador, então o uso de dissipador é recomendado.
Vamos Começar a Fazer o Transmissor (Controle Remoto)
A seção do transmissor consiste em um acelerômetro que detecta o gesto da mão e envia os dados para o Arduino. Depois, o Arduino envia dados para o CI Encoder de acordo com os dados recebidos do acelerômetro e os dados são transmitidos para o receptor. Monte conforme o circuito abaixo:
NOTA: Por favor, esteja ciente de que alguns acelerômetros usam fonte de 3,3V e podem ser danificados por 5V. Verifique a documentação do fornecedor para descobrir qual é a tensão correta.

Esta é apenas uma ilustração do transmissor:

Enviar Código para o Arduino
Aqui está o código atualizado.
Faça o Receptor

O circuito receptor consiste em 2 CIs (decoder HT12D, driver de motor L293D), módulo receptor RF.
Monte o circuito conforme o esquemático do receptor acima. Há 2 LEDs na placa do receptor: um acende quando a fonte de alimentação é dada ao receptor e o outro quando a fonte é dada ao circuito transmissor. O LED próximo ao CI HT12D deve acender e isso fornece uma transmissão válida (VT) quando a energia é dada no transmissor; se não, há algo errado com sua conexão ou seu módulo RF-TX-RX.
Se você quiser saber mais detalhes sobre a seção do receptor, leia este artigo.
Quais Gestos o Robô Reconhecerá?
Este robô é projetado para reconhecer cinco conjuntos de gestos: frente, trás, esquerda, direita e parar. Você terá uma ideia melhor se conferir as fotos dos gestos abaixo.





Divirta-se pilotando seu robô.
Encolha e Torne Permanente
O Arduino Uno será grande e volumoso na sua mão. E se você decidir fazer outro projeto usando Arduino, precisará remover o Arduino e todas as conexões feitas nele, e perderá seu trabalho antigo. Eu não gosto de fazer isso, então criei uma solução para torná-lo permanente. Você pode conferir este artigo para aprender como encolher seu projeto Arduino.

Baixe o layout da PCB para a versão standalone aqui (espelhado).
standalone_etch_copper_top_mirror1.pdf
standalone_etch_copper_top1.pdf
Assista a este vídeo em que transferi o código para o MCU Atmega8. Mostrei apenas as saídas do MCU usando LEDs.
Confira meu blog para meus novos projetos.
Se tiver alguma dúvida, deixe um comentário aqui. É meu blog. Estarei verificando regularmente por feedback lá em vez de aqui.
Processo de manufatura
- Construa um Robô Raspberry Pi Controlado por Bluetooth com Feedback de Áudio
- Robô Controlado por Gestos Alimentado por Raspberry Pi
- Construa um Robô Controlado por Fala com Windows 10 IoT Core no Raspberry Pi 2
- Construa Robô Raspberry Pi Controlado por Wi-Fi com Python – Guia Passo a Passo
- ROObockey: Robô de Hockey de Rua com Assistência de Precisão e Controle Remoto
- Lâmpada de Mesa RGB Controlada por Gestos – Iluminação Interativa e Sem Toque
- Controle USB para Jogos DIY com Arduino – Construa Seu Próprio Gamepad de Alto Desempenho
- Garrafa de Água Inteligente com Arduino – Monitoramento em Tempo Real e Alertas
- Construa um Robô Controlado por Voz com Arduino Nano
- Robôs Colaborativos Guiados à Mão: Padrões de Segurança Explicados