Robô Controlado por Gestos Alimentado por Raspberry Pi
Cansado de controles baseados em botões? Imagine pilotar um robô com simples gestos de mão enquanto relaxa no sofá. Este tutorial mostra como construir um robô de dois motores que responde a movimentos da mão usando um Raspberry Pi, acelerômetro e comunicação RF.
Visão Geral
Usamos um Raspberry Pi 3 no transmissor para ler dados do acelerômetro, codificá-los com um módulo HT12E e transmitir o sinal via par RF de 434 MHz. No lado do robô, uma bateria de 12 V alimenta um decodificador HT12D e um driver de motor L293D, que aciona dois motores DC com base nos comandos de gesto recebidos.
Componentes
| Componente | Especificação | Qtd |
|---|---|---|
| Raspberry Pi | Modelo 3 | 1 |
| Cartão MicroSD | ≥ 8 GB | 1 |
| Acelerômetro | ADXL345 ou MPU6050 | 1 |
| Módulo RF | TX & RX 434 MHz | 1 |
| Fonte de Alimentação | 5 V USB para Pi; bateria 12 V para robô | 1 |
| Fios | Fêmea-macho & macho-fêmea | 10 cada |
| Codificador | HT12E (módulo preferido) | 1 |
| Decodificador | HT12D (módulo preferido) | 1 |
| Driver de Motor | L293D (módulo preferido) | 1 |
Diagrama de Blocos
Lado Transmissor
O acelerômetro alimenta dados de movimento brutos para o Pi. Python processa as leituras, mapeia para comandos de movimento e envia um código de 4 bits para o codificador HT12E via GPIO. O codificador serializa o código, e o transmissor RF o transmite.
Lado Receptor
O receptor RF captura o sinal e o encaminha para o decodificador HT12D. O código de 4 bits decodificado aciona o driver de motor L293D, que controla os motores esquerdo e direito do robô para alcançar movimentos frente, ré, esquerda, direita ou parada.
Fundamentos do Acelerômetro
Um acelerômetro mede aceleração ao longo de três eixos. Aceleração estática (gravidade) revela inclinação; aceleração dinâmica detecta movimento. Modelos digitais como ADXL345 ou MPU6050 comunicam via I²C, fornecendo dados de baixo ruído e confiáveis. O MPU6050 também inclui giroscópio, útil para detecção de movimento mais complexa.
Conectando o Acelerômetro ao Raspberry Pi
Use o barramento I²C: conecte pinos SDA e SCL no Pi aos SDA e SCL do sensor, e alimente o sensor com 3,3 V e GND. Habilite I²C no Raspbian: sudo raspi-config → Interface Options → I²C. Instale utilitários SMBus:
sudo apt-get install python-smbus i2c-toolsDetecte o dispositivo:
sudo i2c-detect -y 1 – ADXL345 aparece em 0x53; MPU6050 em 0x68 ou 0x69.
Clone a biblioteca e execute o exemplo:
git clone https://github.com/pimoroni/adxl345-python cd adxl345-python sudo python example.pyPara MPU6050, use
pip install mpu6050-raspberrypi e teste com: from mpu6050 import mpu6050 sensor = mpu6050(0x69) print(sensor.get_accel_data())
Calibrando Limiares de Gestos
Coloque o sensor em cada pose desejada (frente, esquerda, direita, trás, parada) e registre os valores brutos X, Y, Z. Calcule a média e defina uma banda de tolerância; quando leituras ao vivo caírem dentro de uma banda, acione o comando de motor correspondente. Armazene esses limiares no seu script Python para tomada de decisão em tempo real.
Com esta configuração, você terá um robô robusto, controlado por gestos sem fio, alimentado por Raspberry Pi.
Recursos Adicionais
Processo de manufatura
- Perfilamento de Temperatura Preciso no Raspberry Pi com Python, SQLite e LabVIEW
- Sistema de Aquaponia Controlado por Raspberry Pi: Guia de Construção e Código
- Construindo um Registrador de Dados Multicanal com Raspberry Pi – Parte 1: Requisitos e Arquitetura
- Construa um Sensor de Temperatura Remoto com Raspberry Pi e Python – Guia Passo a Passo
- Monitoramento Remoto do Tempo com Raspberry Pi 3 e PubNub
- Integre TI SensorTag ao Blynk via Node‑RED no Raspberry Pi Zero
- Controle um LED com Sensor de Movimento PIR no Raspberry Pi
- Construa um Robô Inteligente com a Bridge Shield – Integração Raspberry Pi e Arduino
- Robô DIY Inspirado no Wall‑E com Caixa de CD e Raspberry Pi
- Construa um Robô Raspberry Pi Controlado por Bluetooth com Feedback de Áudio