🇧🇷 Português | 🇺🇸 English
Simulador 3D web de um robô seguidor de linha com Arduino: escreva código C++, veja o robô seguir a pista em tempo real — sem hardware.
skeelrobot é um simulador 3D, no navegador, de um robô seguidor de linha controlado por código Arduino. O robô tem 3 sensores infravermelhos (TCRT5000 simulados: esquerda/centro/direita) e 2 motores DC com controle diferencial. Você escreve o sketch em C++ no editor embutido, e ele é transpilado para JavaScript e executado a cada frame — permitindo testar a lógica de seguir linha sem nenhum hardware físico.
- Física — cinemática diferencial: cada motor tem velocidade independente (máx. 0,20 m/s); a pose integra por
x += v·cos(θ)·dt, comω = (vR − vL) / wheelBase(base de 0,10 m). Passos de até 5 ms para estabilidade. - Sensores — cada sensor amostra o brilho da pista dentro de um footprint (raio 8 mm) e mapeia para
analogRead(0–1023; preto≈900, branco≈200) edigitalRead(HIGH/LOW por limiar). - Arena — gera proceduralmente uma pista (curva fechada entre 9–12 waypoints) ou um labirinto 6×6, texturizada em canvas 1536×1536.
- Runtime Arduino — transpila um subconjunto de C++ (tipos básicos, if/for/while,
Serial,analogRead,digitalWrite,pinMode,analogWrite);setup()roda uma vez,loop()repete dentro de um orçamento de tempo por frame;delay(ms)avança a física.
Vite · TypeScript · Three.js (WebGL, sombras, câmera orbital) · CodeMirror 6 (C++ highlight) · lucide-icons. Tudo vanilla TS/JS, persistência em localStorage.
npm install
npm run dev # http://localhost:5173
npm run build
npm run preview- Editor de código Arduino com syntax highlight C++ e múltiplos sketches (salvos automaticamente).
- Câmera dos sensores — vista top-down mostrando os footprints e leituras analógicas ao vivo.
- Monitor Serial capturando
Serial.println(). - 3 modos de câmera (perspectiva/ortográfica/presets) + gizmo de orientação 3D.
- Controle de velocidade da simulação (0,5×–16×) e layout redimensionável.
Protótipo educacional polido e funcional (v0.0.0). Não implementa edição visual da pista, física dinâmica (inércia/atrito), nem exportação de projeto.
Este projeto ainda não declara uma licença; até que uma seja adicionada, todos os direitos são reservados ao autor.