Robótica e Lógica
sem barreiras de idioma.
A jacarEV3 é uma biblioteca Python gratuita e de código aberto com sintaxe 100% em português para kits LEGO EV3. Desenvolvida para escolas públicas, elimina a barreira do inglês e simplifica o ensino de programação e pensamento computacional.
from jacarev3.robo import RoboEV3
# Conexão amigável e direta
with RoboEV3(mac='00:16:53:12:34:56') as robo:
# Início com acessibilidade nativa
robo.executar_com_acessibilidade(
"Avançando 50cm e desviando",
lambda: robo.mover_base(40, 1500)
)
# Leitura direta do sensor
if robo.ler_sensor_ultrassonico(1) < 20:
robo.apitar(880, 400)
robo.girar_motor('B', -30, 800)
Simulador Web 3D em Tempo Real
Demo interativa com roteiros prontos (código bloqueado para edição). O cubo vermelho tem física simples de colisão. Para programar de verdade — campanha, sandbox e biblioteca completa — use a IDE jacarEV3.
Por que a jacarEV3 foi criada?
No Ensino Fundamental II das escolas públicas brasileiras, o aprendizado de robótica é frequentemente interrompido pela complexidade do idioma inglês nos ambientes de programação tradicionais.
O Desafio Tradicional
Bibliotecas de robótica convencionais em Python utilizam nomes como run_timed(), on_for_degrees() e brake().
- O aluno foca em traduzir inglês em vez da lógica.
- Licenças restritivas e instalação burocrática.
- Sem feedback de acessibilidade nativo para inclusão.
A Solução jacarEV3
Comandos em português natural (girar_motor, ler_sensor, apitar) projetados para o aprendizado direto e prático.
- Foco 100% no raciocínio lógico e resolução de problemas.
- Licença MIT aberta, sem dependências proprietárias.
- Execução física ou via simulador web sem computador parrudo.
Módulos de Aula por Matéria
Roteiros práticos estruturados e alinhados para otimizar o aproveitamento em sala de aula.
Matemática
Geometria de rotação, ângulos internos e externos de polígonos e razões de proporcionalidade no deslocamento do robô.
Física
Estudo prático da velocidade média, tempo de aceleração e gráficos de movimento uniforme e variado.
Computação
Algoritmos sequenciais, estruturas condicionais (`se/senão`), laços de repetição (`enquanto`) e robôs autônomos.
Português
Análise de textos instrucionais, coesão textual, clareza verbal e estruturação de rotinas em linguagem formal.
Guia da API jacarEV3
Todos os comandos principais da biblioteca, no mesmo estilo desta página — com busca e cópia rápida. Rode dentro de with RoboEV3(...) as robo:.
-
RoboEV3(mac, timeout=10, base=('B','C'))
Abre a conexão Bluetooth com o brick. Use sempre com
withpara fechar sozinho. -
robo.definir_base(esq, dir)
Define quais portas são esquerda/direita da base motriz.
-
robo.fechar()
Encerra a conexão (o
withjá faz isso ao sair).
-
girar_motor(porta, vel, tempo_ms)
Gira por tempo. Velocidade −100…100; o EV3 controla a duração.
-
mover_continuo(porta, velocidade)
Liga e deixa rodando — ideal em loops (linha, desvio). Pare com
parar_motor. -
parar_motor(porta, frear=True)
Para na hora.
frear=Truetrava;Falsedeixa rodar livre. -
girar_motor_graus(porta, graus, vel=30)
Gira graus exatos via encoder. Sinal da velocidade define o sentido.
-
girar_motor_voltas(porta, voltas, **kw)
Como graus, mas em voltas (aceita fração, ex.: 0.5).
-
ler_graus_motor / zerar_graus_motor
Lê ou zera a contagem do encoder da porta.
-
motor_ocupado / esperar_motor
Consulta se o motor ainda executa, ou espera terminar.
-
mover_base(vel, direcao=0, duracao_ms)
Move os dois motores da base.
direcaocurva (negativo/positivo). -
mover_base_graus(...)
Deslocamento da base por graus sincronizados nos dois motores.
-
parar_base(frear=True)
Para os dois motores da base de uma vez.
-
ler_sensor(porta, modo)
Leitura genérica. Modos em
jacarev3.protocolo(refletida, ultrassônico, toque…). -
espera_mudar(porta, modo, …)
Bloqueia até a leitura do sensor mudar (útil em testes e demos).
-
apitar(freq=440, duracao_ms=500, volume=1)
Tom no brick. Frequência em Hz, duração em ms.
-
led(cor)
LED dos botões: VERDE, VERMELHO, LARANJA, DESLIGADO (e variantes).
-
testar_motor / testar_motores
Gira portas para frente/trás e imprime status no console.
-
testar_ultrassonico / toque / cor
Pede interação (mão, botão, cor) e confirma a leitura.
-
testar_sensores / testar_tudo
Varredura completa de motores e sensores ativos.
-
seguir_linha(...)
Seguidor bang-bang de linha preta (
jacarev3.topicos.circuito). -
calibrar(robo, porta_sensor, …)
Calibra limiar claro/escuro amostrando o sensor.
-
desviar_obstaculo(...)
Anda até o ultrassônico ver obstáculo, gira e segue.
-
controle_remoto(robo, fonte=…)
Loop de teleop com fonte de teclado, gamepad ou UDP.
-
ConexaoFalsa(...)
EV3 simulado para aula sem hardware (
jacarev3.falso). -
Teclado (with)
Leitura de teclas sem bloquear, só biblioteca padrão.
-
executar_com_acessibilidade(desc, fn)
Anuncia no console (leitor de tela), bipe curto e executa a ação.
-
AcessibilidadeRobo
Helper de anúncios e execução guiada para inclusão.
Documentação em Markdown detalhada também em docs/ do repositório
(·
pip install jacarev3
Arquitetura de Conexão Transparente
Como a biblioteca jacarEV3 traduz comandos simples em ações físicas no robô ou no navegador.
1. Código do Aluno (PT-BR)
O estudante escreve rotinas simples usando Python sem termos em inglês.
2. Camada jacarEV3
Abstração de comunicação via WebSockets, Bluetooth (ev3dev) ou WebAssembly (Pyodide).
3. Robô EV3 ou Simulador 3D
Execução física nos motores e sensores ou renderização gráfica em tempo real no browser.
Atividades Práticas e Desafios
Exemplos práticos de sala de aula. Clique em "Rodar no Simulador" para carregar direto no ambiente 3D!
Desenhando um Quadrado Perfeito
Aplica a regra dos ângulos externos (360° total) fazendo o robô avançar e rotacionar 90° repetidamente.
for lado in range(4):
robo.mover_base(30, 1000)
robo.girar_motor('B', 30, 480)
Cálculo de Velocidade Média
Mede o tempo gasto para percorrer uma pista de 1 metro e calcula a velocidade do robô.
tempo_inicial = 0
robo.mover_base(40, 2500)
robo.apitar(523, 300)
Robô Desviador de Obstáculos
Uso de tomada de decisão (se/senão) associada ao sensor de distância.
if robo.ler_sensor_ultrassonico(1) < 25:
robo.apitar(440, 300)
robo.girar_motor('B', -30, 800)
Roteiro Instrucional e Sinais
Escrita de sequências de ordenação e feedback multimodal com beeps e cores LED.
robo.led('VERDE')
robo.apitar(523, 200)
robo.apitar(659, 200)
Acessibilidade Integrada na Biblioteca
A jacarEV3 possui métodos projetados especificamente para alunos com deficiências visuais ou de aprendizado. O método executar_com_acessibilidade() sintetiza voz, gera beeps de frequência proporcional e exibe textos compatíveis com leitores de tela em tempo real.
Demonstração Audível de Acessibilidade
Clique para ouvir como o sintetizador e beeps comunicam a ação do robô.
Central do Educador
Recursos prontos para aplicação imediata nos laboratórios de informática escolares.
Planos de Aula Estruturados
Roteiros passo a passo com duração estimada de 50min para turmas do 6º ao 9º ano.
Fichas de Atividades Impressas
Atividades "mão na massa" desplugadas e desvinculadas de computadores individuais.
Guia de Instalação para Labs
Passo a passo rápido para instalar a jacarEV3 e drivers Bluetooth em computadores antigos ou Chromebooks.
Alinhamento BNCC Computação
Elaborar algoritmos que envolvam instruções sequenciais, de repetição e de seleção usando uma linguagem de programação estruturada em Português.
Descrever com precisão a solução de um problema, construindo o programa que implementa a solução de forma autônoma.
Compreender o funcionamento básico de sistemas físicos e virtuais de comunicação aplicados a dispositivos robóticos conectados.
Objetivos de Desenvolvimento Sustentável
Perguntas Frequentes
Respostas para as principais dúvidas de educadores e gestores escolares.
pip install jacarev3 no computador do laboratório, a execução dos programas com o robô físico LEGO EV3 via Bluetooth ou cabo USB funciona totalmente offline.