Skip to content

About

Código atual em funcionamento no otto

Resources

Stars

4 stars

Watchers

2 watching

Forks

Latest commit

 

History

64 Commits

Folders and files

Repository files navigation

🤖 Robô Otto - Repositório Oficial

Arduino C++ Version License

Robô educacional interativo com reconhecimento RFID, controle remoto IR, teclado matricial e matriz de LEDs

📖 Documentação • ⚙️ Instalação • 🎯 Funcionalidades • 🚀 Roadmap


📋 Índice


🎯 Sobre o Projeto

O Otto é um robô educacional open-source desenvolvido para ensinar programação, eletrônica e robótica de forma interativa e divertida. Este repositório contém a versão atual do código, completamente refatorada e documentada, além dos arquivos de modelagem 3D para impressão.

✨ Características Principais

  • 🎵 Sistema de Áudio: Reprodução de músicas e efeitos sonoros via DFPlayer Mini
  • 😊 Expressões Faciais: Matriz LED 8x8 com 10+ emoções diferentes
  • 🎮 Controle Remoto: Interface via controle infravermelho
  • 💳 Leitor RFID: Reconhecimento de cartões para comandos personalizados
  • ⌨️ Teclado Matricial: 10 teclas para interação direta
  • 🕺 Movimentos: 4 servos para braços e pernas com coreografias
  • 🧠 Sistema Inteligente: Respostas emocionais e comportamentos interativos

📖 Documentação

📂 Estrutura do Projeto

OTTO_v1_v2/
├──Hardware
│  ├── Bateria.png                #Esquematico da Bateria 
│  ├── Componentes.png            #Esquematico dos Componentes 
│  └── Hardware_2025.pdf          #Esquematicos com melhor resolução 
├──Modelagem_3d
│   ├── amarelo                   #Arquivos para impressão 3D
│   ├── azul                      #Arquivos para impressão 3D
│   └── preto                     #Arquivos para impressão 3D
├──Software
│  └── Programacao_2025.ino       #Código
├──old_versions                   #Arquivos pré 2025
└── README.md                     #Este arquivo

🔧 Linguagem e Plataforma

  • Linguagem: C++ (Arduino Framework)
  • Plataforma: Arduino Mega 2560
  • IDE: Arduino IDE 1.8.19 ou superior
  • Compilador: AVR-GCC

💻 Pré-requisitos

Antes de começar, certifique-se de ter:

Software

  • ✅ Visual Studio - Redistributable C++ (necessário para Arduino IDE)
  • ✅ Java JRE 8 ou superior - Runtime para Arduino IDE
  • ✅ Arduino IDE 1.8.19 - Ambiente de desenvolvimento

Hardware Necessário

Componente Quantidade Especificação
Arduino Mega 2560 pro mini 1x Microcontrolador principal
Servo Motor SG90 4x Movimentação de braços e pernas
DFPlayer Mini 1x Módulo de áudio MP3
Alto-falante 1x 3W, 8Ω
MFRC522 1x Leitor RFID 13.56MHz
Matriz LED 8x8 1x MAX7219
Receptor IR 1x VS1838B ou similar
Teclado Matricial 1x 2x5 (10 teclas)
Regulador de Tensão 1x LM2596 ou similar (5V, 3A)
Bateria 1x 7.4V LiPo 2S ou 6x AA
Resistores Diversos 1kΩ, 10kΩ

⚙️ Instalação

1️⃣ Preparar o Ambiente

# 1. Instale Visual Studio Redistributable C++
# Baixe em: https://visualstudio.microsoft.com/pt-br/downloads/

# 2. Instale Java JRE
# Baixe em: https://www.java.com/pt-BR/download/

# 3. Instale Arduino IDE 1.8.19
# Baixe em: https://www.arduino.cc/en/software/OldSoftwareReleases

2️⃣ Instalar Bibliotecas

Abra o Arduino IDE e instale as bibliotecas via Sketch → Include Library → Manage Libraries:

Biblioteca Versão Instalação
DFRobotDFPlayerMini 1.0.5 Gerenciador de Bibliotecas
LedControl 1.0.6 Gerenciador de Bibliotecas
MFRC522 1.4.10 Gerenciador de Bibliotecas
IRremote 4.0.0+ GitHub
Keypad 3.1.1 Gerenciador de Bibliotecas

Bibliotecas Nativas (já incluídas no Arduino):

  • Servo.h
  • SPI.h
  • SoftwareSerial.h
  • avr/wdt.h

3️⃣ Preparar Cartão SD

  1. Formate o cartão SD em FAT32
  2. Crie uma pasta chamada mp3 na raiz
  3. Adicione arquivos de áudio nomeados como:
    • 0001.mp3 - Som de ligar
    • 0002.mp3 - Som de desligar
    • 0084.mp3 - Emoção: Triste
    • 0085.mp3 - Emoção: Feliz
    • (Continue conforme a tabela de áudios)

4️⃣ Upload do Código

# 1. Conecte o Arduino Mega via USB
# 2. Selecione a placa: Tools → Board → Arduino Mega 2560
# 3. Selecione a porta: Tools → Port → COMx (Windows) ou /dev/ttyUSBx (Linux)
# 4. Clique em Upload (→)

🔌 Componentes de Hardware

Pinagem Detalhada

Servos Motores

Pino 2  → Perna Esquerda (Left Foot)
Pino 3  → Perna Direita (Right Foot)
Pino 6  → Braço Esquerdo (Left Arm)
Pino 7  → Braço Direito (Right Arm)

DFPlayer Mini (Áudio)

Pino 11 → RX (DFPlayer)
Pino 10 → TX (DFPlayer)
        → VCC → 5V (regulado)
        → GND → GND
        → SPK+ → Alto-falante +
        → SPK- → Alto-falante -

MFRC522 (RFID)

Pino 5  → RST
Pino 53 → SDA/SS
Pino 51 → MOSI
Pino 50 → MISO
Pino 52 → SCK
        → 3.3V → 3.3V
        → GND → GND

Matriz LED 8x8 (MAX7219)

Pino 22 → DIN (Data In)
Pino 24 → CLK (Clock)
Pino 26 → CS (Chip Select)
        → VCC → 5V
        → GND → GND

Receptor IR

Pino 13 → Signal
        → VCC → 5V
        → GND → GND

Teclado Matricial 2x5

Linhas:  Pino 40, 38
Colunas: Pino 42, 44, 46, 48, 47

📚 Bibliotecas e Versões

Biblioteca Versão Descrição Download
Arduino IDE 1.8.19 / 1.8.57.0 Ambiente de desenvolvimento Link
DFRobotDFPlayerMini 1.0.5 Controle do módulo MP3 GitHub
LedControl 1.0.6 Controle de matriz LED MAX7219 Arduino Lib
MFRC522 1.4.10 Biblioteca para leitor RFID GitHub
IRremote 4.0.0+ Recepção de sinais infravermelhos GitHub
Keypad 3.1.1 Leitura de teclado matricial Playground
Servo Nativa Controle de servos motores Incluída no Arduino
SPI Nativa Comunicação SPI Incluída no Arduino
SoftwareSerial Nativa Serial por software Incluída no Arduino
avr/wdt Nativa Watchdog Timer Incluída no Arduino

🎯 Funcionalidades Atuais

🎵 Sistema de Áudio

  • ✅ Reprodução de 100+ arquivos MP3
  • ✅ Controle de volume (0-30)
  • ✅ Sons de emoções sincronizados
  • ✅ Efeitos sonoros para movimentos

😊 Expressões Faciais (LED Matrix)

Emoção Código Descrição
😊 Feliz 85 Sorriso + comemoração
😢 Triste 84 Face triste + braços caídos
😠 Raiva 89 Face brava + braços tremendo
😨 Medo 87 Face assustada
😳 Vergonha 86 Face tímida
🤢 Enjoado 91 Face nauseada
😴 Cansado 108 Face sonolenta
😲 Surpreso 90 Face de susto
❤️ Amor 95 Coração nos olhos
😐 Neutro - Face padrão

🎮 Controle Remoto IR

Botão Código Função
POWER 0xBA45FF00 Liga/Desliga robô
1 0xF30CFF00 Resposta positiva (acertou)
3 0xA15EFF00 Resposta negativa (errou)
5 0xE31CFF00 Modo dança
VERDE 0xB847FF00 Liga/Desliga teclado

💳 Cartões RFID

  • Emoções: Cartões 84-91, 106-108
  • Músicas: Qualquer outro número
  • Comandos especiais: Parabéns (107)

⌨️ Teclado Matricial

  • Teclas 0-9 tocam áudios 97-106
  • Habilitação via controle remoto
  • Feedback sonoro imediato

🕺 Movimentos

  • Acenar: Cumprimento com braço direito
  • Comemorar: Braços para cima e baixo (4 ciclos)
  • Tristeza: Braços caem desanimados
  • Raiva: Braços tremendo rapidamente
  • Dança: Coreografia completa (pernas + braços)

🔗 Esquema de Conexões

Diagrama de Componentes

Componentes

Circuito Elétrico do Sistema de Alimentação do Otto

Bateria

Para saber as especificações técnicas da bateria, basta acessar a pasta correspondente, lá consta o seu datasheet, sobre o mostrador de bateria, bem como ligações elétricas.

Componentes Principais

┌─────────────────────────────────────────┐
│         Arduino Mega 2560 pro           │
│                                         │
│  [Servos] [DFPlayer] [RFID] [IR] [LED]  │
│     │         │         │      │     │  │
└─────┼─────────┼─────────┼──────┼─────┼──┘
      │         │         │      │     │
    Braços   Alto-    Cartões  Controle LEDs
    Pernas   Falante           Remoto   Matriz

🚀 Como Usar

Inicialização

  1. Ligue o robô: Pressione o botão POWER do controle
  2. Aguarde: Otto mostra coração ❤️ e acena 👋
  3. Pronto: Face neutra indica que está pronto

Interações Básicas

Via Controle Remoto

POWER → Liga/Desliga
  1   → Elogio (acertou) → Otto comemora 🎉
  3   → Feedback negativo (errou) → Otto fica triste 😢
  5   → Inicia dança 🕺
VERDE → Habilita/desabilita teclado

Via Teclado Matricial

1. Pressione VERDE no controle para habilitar
2. Pressione qualquer tecla (0-9)
3. Otto reproduz áudio correspondente

Via Cartões RFID

1. Aproxime cartão do leitor
2. Otto identifica o número gravado
3. Executa ação correspondente:
   - Emoções (84-91): Som + expressão + movimento
   - Músicas (outros): Som + animação de fala

Desligamento

1. Pressione POWER no controle
2. Otto acena tchau 👋
3. Toca som de despedida
4. Display apaga e sistema desliga

🚀 Próximas Funcionalidades

📋 Roadmap v3.0

🔧 Hardware

  • Teclado Touch Capacitivo: Substituir teclado mecânico por touch
  • Orelhas Móveis: Adicionar servos para movimento de orelhas
  • Corpo Articulado: Movimento de torção do corpo
  • Olhos RGB: LEDs coloridos nos olhos com efeitos
  • Cabos Blindados: Substituir jumpers por cabos blindados para reduzir interferência
  • PCB Personalizada: Board com conectores parafusados para regulador de tensão
  • Proteção Elétrica: Fusível de proteção para bateria

🎨 Melhorias

  • Mais Emoções: Expandir biblioteca de expressões
  • Coreografias: Novas danças e movimentos
  • Jogos Interativos: Mini-games educativos

🎨 Modelagem 3D

📐 Arquivos para Impressão

Todos os arquivos STL estão na pasta Hardware/

Requisitos de Impressão

Especificação Valor
Impressora Mesa mínima 25x25cm
Resolução 0.2mm (camada)
Preenchimento 20-30%
Suporte Necessário em algumas peças
Material PLA ou PETG
Temperatura Bico 200-210°C (PLA)
Temperatura Mesa 60°C

Software Recomendado

Peças para Imprimir

📦 otto_1.0-stl/
├── 🦴 corpo.stl           (1x) - 4-5 horas
├── 🦿 perna_esquerda.stl  (1x) - 2 horas
├── 🦿 perna_direita.stl   (1x) - 2 horas
├── 💪 braco_esquerdo.stl  (1x) - 1 hora
├── 💪 braco_direito.stl   (1x) - 1 hora
├── 🤖 cabeca_frente.stl   (1x) - 3 horas
└── 🤖 cabeca_tras.stl     (1x) - 2 horas

⏱️ Tempo total estimado: 15-20 horas

🐛 Troubleshooting

Problemas Comuns

1. DFPlayer não inicializa

Erro: "Nao inicializado: Cheque as conexoes"

Soluções:
✅ Verifique conexões TX/RX (pinos 11 e 10)
✅ Use resistor de 1kΩ no RX do DFPlayer
✅ Formate cartão SD em FAT32
✅ Renomeie arquivos: 0001.mp3, 0002.mp3...
✅ Teste cartão em outro dispositivo

2. RFID não lê cartões

Erro: Cartão não é detectado

Soluções:
✅ Verifique alimentação 3.3V (não use 5V!)
✅ Confirme conexões SPI (MOSI, MISO, SCK)
✅ Aproxime cartão a menos de 3cm
✅ Teste com diferentes cartões
✅ Verifique se biblioteca MFRC522 está instalada

3. Servos tremem ou não respondem

Problema: Movimento irregular

Soluções:
✅ Use fonte externa de 5V, 3A mínimo
✅ Adicione capacitor de 1000µF na alimentação
✅ Verifique se fios não estão soltos
✅ Calibre posição inicial dos servos (90°)
✅ Reduza carga (remova peso extra)

4. IR não responde

Problema: Controle remoto não funciona

Soluções:
✅ Troque baterias do controle
✅ Aponte diretamente para o receptor
✅ Verifique pino 30 do receptor IR
✅ Teste com Serial Monitor para ver códigos
✅ Troque receptor se necessário

5. Matriz LED não acende

Problema: Display não mostra nada

Soluções:
✅ Verifique pinos DIN (22), CLK (24), CS (26)
✅ Confirme alimentação 5V estável
✅ Teste com código de exemplo do LedControl
✅ Verifique orientação do módulo MAX7219

🤝 Contribuindo

Contribuições são sempre bem-vindas! Siga os passos:

Como Contribuir

  1. Fork o projeto
  2. Clone seu fork
    git clone https://github.com/seu-usuario/OTTO_v1_v2.git
  3. Crie uma branch para sua feature
    git checkout -b feature/MinhaFeature
  4. Commit suas mudanças
    git commit -m "Adiciona: Minha nova feature"
  5. Push para a branch
    git push origin feature/MinhaFeature
  6. Abra um Pull Request

Diretrizes

  • 📝 Comente seu código adequadamente
  • ✅ Teste antes de enviar
  • 📚 Atualize documentação se necessário
  • 🎯 Mantenha código limpo e organizado
  • 🐛 Reporte bugs com detalhes

👥 Autores

💻 Desenvolvimento de Software

Foto Dayanni
Dayanni
Programação & Eletrônica
Foto da Débora
Débora Mateus
Programação & Eletrônica
Sua Foto do Luiz
Luiz Guilherme
Programação & Eletrônica

🎨 Modelagem 3D

Foto do Gabriel Rebouças
Gabriel Rebouças
Modelagem & Impressão 3D

📚 Referências

Documentação Oficial

Bibliotecas

Ferramentas

Projetos Relacionados


📄 Licença

Este projeto está sob a licença MIT. Veja o arquivo LICENSE para mais detalhes.

MIT License

Copyright (c) 2024 Otto UFMT

Permission is hereby granted, free of charge, to any person obtaining a copy
of this software and associated documentation files (the "Software"), to deal
in the Software without restriction, including without limitation the rights
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
copies of the Software...

💙 Se este projeto foi útil, considere dar uma ⭐!

⬆ Voltar ao topo


Desenvolvido com ❤️ pela equipe Otto UFMT

GitHub

About

Código atual em funcionamento no otto

Resources

Stars

4 stars

Watchers

2 watching

Forks

Releases

Packages

Contributors

Languages