Skip to content

pucpcaldas-robos/Elf_Controle

Repository files navigation

🤖 Sanbot Elf Controle

A ideia desse projeto foi criar um controle para o sanbot elf para testar seus movimentos e interagir com ele de forma remota. O aplicativo é simples, apenas hospeda uma pagina utilizando a blibioteca okhttp e usa o websocket para uma conexao mais rapida.

No site voce verá uma interface podendo visualizar a camera hd do robo (foi realizado muitas otimizações e cache/chunks para tentar simular a visualização em tempo real, mas ainda assim não é perfeito), tem um botão para ouvir o audio do microfone.

Tambem tem uma caixa de texto onde voce pode escrever algo e o robo fala utilizando o googleTTS, nessa caixa de texto se enviar um link ele ira tentar abrir com o webview do android. (sendo util para carregar o google slides)

Tem outros comandos como ligar e desligar os leds, ligar e desligar a lanterna, ligar e desligar o projetor, etc.

A funcionalidade mais legal foi ter adicionado sons para poder fazer pegadinhas.

A documentação abaixo foi gerado por IA e pode conter erros.

Este repositório contém o aplicativo Android para controle remoto do robô Sanbot Elf. O aplicativo opera em segundo plano estabelecendo um servidor web local e conexões WebSocket, permitindo o controle em tempo real de todas as funções do robô através de qualquer navegador web na mesma rede.

🖥️ Painel de Controle Web

O aplicativo serve a interface do usuário desenhada para fornecer acesso instantâneo às câmeras, sensores e motores do robô:

Painel de Controle Web

Exemplo da interface que o robô hospeda, permitindo o controle de movimentação, visão da câmera e status geral.

🚀 Funcionalidades Principais

Aqui estão as capacidades fundamentais disponibilizadas pelo painel de controle web:

  • 📸 Streaming em Tempo Real: Captura de vídeo com conversão H.264 para JPEG via WebSocket, garantindo baixa latência na visualização da câmera e a transmissão do áudio do microfone interno.
  • 🎮 Controle de Movimento Completo: Comando das rodas (frente, trás, esquerda, direita, parar), cabeça e os "braços" (asas), suportando ajuste de velocidades diretamente pela interface.
  • 💡 Sistemas de Hardware: Gerenciamento dos LEDs, lanterna, emoções faciais demonstradas na tela do robô, e do projetor integrado (incluindo espelhamento e funções nativas).
  • 🗣️ Interação de Áudio e Fala: Envio de textos (TTS - Text to Speech) para o robô performar, e controle global de volume do robozinho.
  • 🌐 WebView Integrado: Capacidade de enviar um comando para que o robô abra e exiba URLs da web diretamente na sua tela grande nativa, util para apresentações de conteúdo como vídeos e websites.

⚙️ Arquitetura e Comunicação

A aplicação trabalha orquestrando tudo em um único Service de alto nível do Android (RobotService), que cuida dos componentes essenciais:

  • HttpServer: Servidor interno rodando a porta configurada para gerenciar as páginas em HTML, CSS e JavaScript do painel de controle, mais quatro rotas de WebSockets responsáveis por manter o vídeo (/ws/video), áudio (/ws/audio), movimentação de emergência/constante (/ws/control) e status (/ws/status).
  • Controladores (Controllers): Módulos dedicados como o MotionController para mecânica, o RobotController para luzes e emoções, além de módulos para processar imagens brutas e descodificar áudio ativamente.

🛠️ Instalação e Uso

  1. Compile e instale este projeto Kotlin/Java diretamente no Sanbot Elf, usando o Android Studio ou Gradle.
  2. Certifique-se de que o robô tenha acesso à rede Wi-Fi local e conceda as permissões necessárias (câmera, microfone, hardware customizado, etc.).
  3. Ao abrir o aplicativo pela primeira vez, ele registrará o serviço que permanecerá em background.
  4. O endereço IP do robô aparecerá na tela do próprio dispositivo. Digite na barra de busca de seu navegador web preferido http://<IP-DO-ROBO>:<PORTA>.
  5. Autentique e ganhe controle em tempo real do seu assistente!

About

Controle para o robo elf.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors