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.
O aplicativo serve a interface do usuário desenhada para fornecer acesso instantâneo às câmeras, sensores e motores do robô:
Exemplo da interface que o robô hospeda, permitindo o controle de movimentação, visão da câmera e status geral.
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.
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
MotionControllerpara mecânica, oRobotControllerpara luzes e emoções, além de módulos para processar imagens brutas e descodificar áudio ativamente.
- Compile e instale este projeto Kotlin/Java diretamente no Sanbot Elf, usando o Android Studio ou Gradle.
- 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.).
- Ao abrir o aplicativo pela primeira vez, ele registrará o serviço que permanecerá em background.
- 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>. - Autentique e ganhe controle em tempo real do seu assistente!