Crie um Robô Humanóide Falante Inteligente com Arduino UNO
Componentes e Materiais
| Arduino UNO (ou Pro Mini 5V 16MHz) | 1 |
| Sensor de Proximidade IR | 3 |
| Módulo leitor de cartão SD/TF | 1 |
| Servos Tower Pro MG996R (ou micro servo SG90) | 3 |
| Cartão micro SD (≤ 2 GB) | 1 |
| Placa de ensaio (vero board) + headers | 1 |
| Papelão para o corpo | 1 |
Aplicativos e Serviços Online
- Arduino IDE
Sobre o Projeto
Este robô – Mofiza (nome estranho) – consegue VER, FALAR e REAGIR ao ambiente. Assista ao vídeo antes de prosseguir.
Sempre vi robôs falantes feitos com outras placas, mas é totalmente possível fazer um humanóide com Arduino que fala e move vários servos. Vamos começar:
Passo 1: Peças Necessárias
- Arduino Pro Mini 5V 16MHz (qualquer placa serve, usei esta para ficar compacto)
- Headers fêmea e macho para conexão na PCB
- Placa de ensaio (vero board)
- Módulo leitor SD/TF (para reproduzir áudio)
- Cartão micro SD (máx. 2 GB)
- 3x Sensor IR de proximidade
- 3x Servomotor (usei micro servo SG90)
- Papelão para o corpo

Passo 2: Conectando Sensores IR e o Corpo
Faça o corpo com o material que quiser; usei papelão. É simples.
Soldei os sensores IR com cabo flat, com header fêmea em uma extremidade, e coloquei dois nos "olhos" e um no "peito".
O robô dirá a mensagem de boas-vindas se detectar algo no sensor do peito, e dirá "aaaah... não toque meu olho" se algum sensor dos olhos for acionado, movendo o servo daquela área para cima.

Passo 3: O Circuito
O circuito parece complicado, mas é simples. Tudo pode ser alimentado por uma única bateria. Solde o circuito e demais componentes na vero board e adicione os servos na cabeça e mãos.

Passo 4: Código
Antes do código, precisei de duas bibliotecas:
- TMRpcm.h – para reproduzir áudio do cartão SD: GitHub
- ServoTimer2.h – evita conflito com TMRpcm (usa Timer1) e controla servos pelo Timer2: Tutorial
Este código faz o robô dizer "bem-vindo". Você pode criar seu próprio ambiente e código. Adicione a biblioteca ServoTimer2 antes de compilar.
#include "ServoTimer2.h"
#define SD_ChipSelectPin 10
#include "TMRpcm.h"
TMRpcm tmrpcm;
ServoTimer2 matha; // cabeça
ServoTimer2 lhand; // mão esquerda
ServoTimer2 rhand; // mão direita
int in1 = 6, in2 = 7, in3 = 8;
void setup() {
matha.attach(2);
lhand.attach(3);
rhand.attach(4);
tmrpcm.speakerPin = 9;
Serial.begin(9600);
if (!SD.begin(SD_ChipSelectPin)) {
Serial.println("SD FAIL");
return;
}
}
void loop() {
if (!(digitalRead(in3))) { // sensor peito
tmrpcm.play("welcome.wav");
lhand.write(2500);
delay(2000);
lhand.write(1200); // posição de aperto de mão
delay(9000);
} else {
lhand.write(300);
rhand.write(1700);
matha.write(1500);
}
}
Passo 5: Finalização
Agora é só ligar e pronto. Um robô inteligente está feito. [Enviarei mais fotos e detalhes em breve]
Se eu tivesse mais pinos, faria o robô andar. Mas sobraram apenas 3 pinos digitais, menos do que preciso.
Apoie-me inscrevendo-se no meu canal do YouTube.
Código
mofiza.welcome.code
#include "ServoTimer2.h"
#define SD_ChipSelectPin 10
#include "TMRpcm.h"
TMRpcm tmrpcm;
ServoTimer2 matha;
ServoTimer2 lhand;
ServoTimer2 rhand;
int in1=6, in2=7, in3=8;
void setup() {
matha.attach(2); lhand.attach(3); rhand.attach(4);
tmrpcm.speakerPin=9; Serial.begin(9600);
if(!SD.begin(SD_ChipSelectPin)) { Serial.println("SD FAIL"); return; }
}
void loop() {
if(!(digitalRead(in3))) {
tmrpcm.play("welcome.wav");
lhand.write(2500); delay(2000);
lhand.write(1200); delay(9000);
} else {
lhand.write(300); rhand.write(1700); matha.write(1500);
}
}
mofiza.fullCode.v1.1
Esquemático

Processo de manufatura
- Construa um Robô de Streaming de Vídeo Controlado por Internet com Arduino e Raspberry Pi
- Persianas Inteligentes: Controle Automático de Luz com Arduino e Energia Solar
- Mealheiro Inteligente: Controlar Aceitador de Moedas com Arduino Nano
- Robô Desviador de Obstáculos com Servo: Construa com Arduino e HC-SR04
- Controlar um LED via Bluetooth com Arduino – Guia DIY Simples
- Criar Robô Seguidor de Linha Autônomo com Arduino UNO
- Controlar Roomba Create 2 com Arduino e Android: Guia Passo a Passo
- Construa um Robô Controlado por Voz com Arduino Nano
- Controle Braço Robótico Arduino via App Android Dedicado
- Carregador Inteligente Avançado de Baterias com Multiplexação e Display Digital