ESP32 + RoboEyes: Como Criar Olhos Animados para seu Robô com Display OLED
- Gerar link
- X
- Outros aplicativos
Os olhos são um dos elementos que mais dão personalidade a um robô. Mesmo um projeto simples se torna muito mais interessante quando parece olhar ao redor, piscar e demonstrar emoções.
Nos vídeos anteriores do RodRobot, utilizamos o driver DRV8833, os motores N20 e um display OLED SSD1306 para construir nosso robô. Agora chegou a hora de dar vida a ele.
Neste artigo vamos conhecer a biblioteca RoboEyes, desenvolvida pela FluxGarage, que permite criar olhos animados de forma simples e com poucas linhas de código.
O que é a RoboEyes?
A RoboEyes é uma biblioteca para Arduino e ESP32 que desenha olhos animados em displays OLED.
Com ela é possível criar diversas animações automaticamente, como:
- 👀 Movimento dos olhos
- 😉 Piscadas automáticas
- 😀 Expressão feliz
- 😴 Expressão cansada
- 😠 Expressão brava
- 😐 Expressão normal
Tudo isso praticamente sem precisar programar animações manualmente.
Hardware utilizado
- ESP32
- Display OLED SSD1306 128×64 I2C
Ligações
| OLED | ESP32 |
|---|---|
| VCC | 3,3 V |
| GND | GND |
| SDA | GPIO 21 |
| SCL | GPIO 22 |
Instalando a biblioteca
A instalação é muito simples.
Acesse o GitHub da biblioteca:
https://github.com/FluxGarage/RoboEyes
Clique em:
Code → Download ZIP
Será baixado o arquivo:
RoboEyes-main.zip
Depois abra a Arduino IDE e escolha:
Rascunho ↓ Incluir Biblioteca ↓ Adicionar Biblioteca .ZIP
Selecione o arquivo RoboEyes-main.zip e aguarde alguns segundos até a instalação ser concluída.
Abrindo o exemplo
Após instalar a biblioteca, abra:
Arquivo ↓ Exemplos ↓ FluxGarage RoboEyes ↓ I2C_SSD1306_Basics
Esse exemplo já funciona muito bem, mas fiz algumas modificações e acrescentei comentários para facilitar o entendimento.
Entendendo o código
Primeiro incluímos todas as bibliotecas necessárias.
#include <Wire.h> #include <Adafruit_GFX.h> #include <Adafruit_SSD1306.h> #include <FluxGarage_RoboEyes.h>
Cada uma possui uma função específica.
- Wire realiza a comunicação I2C.
- Adafruit GFX fornece as funções gráficas.
- Adafruit SSD1306 controla o display OLED.
- FluxGarage RoboEyes cria as animações dos olhos.
Depois configuramos nosso display OLED.
#define SCREEN_WIDTH 128 #define SCREEN_HEIGHT 64 #define OLED_RESET -1
Aqui informamos que o display possui resolução de 128 × 64 pixels.
Agora criamos o display.
Adafruit_SSD1306 display( SCREEN_WIDTH, SCREEN_HEIGHT, &Wire, OLED_RESET );
Em seguida criamos o objeto da biblioteca RoboEyes.
RoboEyes<Adafruit_SSD1306> roboEyes(display);
É através desse objeto que controlaremos todas as animações.
Escolhendo a expressão
Uma das grandes vantagens da biblioteca é poder alterar a expressão do robô modificando apenas uma linha.
//#define EXPRESSAO HAPPY // 😀 Feliz // #define EXPRESSAO DEFAULT // 😐 Normal // #define EXPRESSAO TIRED // 😴 Cansado #define EXPRESSAO ANGRY // 😠 Bravo
Basta comentar as demais linhas e deixar ativa apenas a expressão desejada.
As expressões disponíveis são:
| Expressão | Resultado |
|---|---|
| DEFAULT | 😐 Normal |
| HAPPY | 😀 Feliz |
| TIRED | 😴 Cansado |
| ANGRY | 😠 Bravo |
Inicialização
No setup() iniciamos a comunicação I2C.
Wire.begin(21,22);
Depois inicializamos o display OLED.
display.begin(SSD1306_SWITCHCAPVCC,0x3C);
Em seguida iniciamos a biblioteca.
roboEyes.begin(128,64,100);
O último parâmetro representa a taxa máxima de atualização da animação.
Quanto maior esse valor, mais suave será o movimento.
Abrindo os olhos
Esta linha faz o robô acordar.
roboEyes.open();
Definindo a emoção
Depois aplicamos a expressão escolhida.
roboEyes.setMood(EXPRESSAO);
Piscadas automáticas
Esta função faz o robô piscar sozinho.
roboEyes.setAutoblinker(true);
Não é necessário criar temporizadores ou utilizar delay().
Movimento automático
Outra função interessante é:
roboEyes.setIdleMode(true);
Ela faz os olhos olharem para diferentes direções de maneira automática, deixando o robô muito mais natural.
Loop principal
O loop possui apenas uma função.
roboEyes.update();
Ela atualiza continuamente todas as animações.
Por isso ela deve permanecer sendo executada durante todo o programa.
Código completo
Como o código é pequeno, você pode copiá-lo diretamente daqui.
Conclusão
A biblioteca RoboEyes facilita muito a criação de robôs mais expressivos. Em poucos minutos é possível transformar um simples display OLED em um rosto animado, capaz de piscar, olhar para diferentes direções e demonstrar emoções como felicidade, cansaço ou bravura.
Este foi apenas o primeiro contato com a biblioteca. Nos próximos projetos do RodRobot, vamos explorar outros recursos, como novas animações, integração com sensores e reações em tempo real, tornando o robô ainda mais interativo.
Se este artigo foi útil para você, compartilhe com outros makers e acompanhe o canal RodRobot para não perder os próximos projetos com ESP32, robótica e eletrônica prática. 🚀
🔧 Acompanhe o RodRobot
Projetos maker com ESP32, Arduino, eletrônica e programação.
RodRobot – Projetos maker, eletrônica e programação na prática.


Comentários
Postar um comentário