Uma ponte didática entre a programação em blocos e o mundo físico da robótica, projetada para o Ensino Fundamental.
Nas aulas de programação, robótica e pensamento computacional, a introdução ao hardware é um momento mágico para os alunos. Ver um LED piscar ou um motor girar por um comando criado por eles é extremamente motivador. Ferramentas como o Scratch são perfeitas para ensinar a lógica de programação de forma visual e intuitiva.
No entanto, há um grande abismo pedagógico quando tentamos aplicar essa lógica ao mundo físico com a Raspberry Pi:
-
Scratch 3 e suas Limitações: A versão padrão do Scratch, embora excelente, não possui blocos nativos para controlar diretamente as portas GPIO da Raspberry Pi de forma simples e estável. As soluções existentes são muitas vezes complexas, desatualizadas ou pouco confiáveis.
-
A Complexidade do Python: A alternativa natural é usar a linguagem Python, que é extremamente poderosa para o controle de hardware. Contudo, para alunos do Ensino Fundamental, a transição de blocos para um código baseado em texto, com sua sintaxe rígida, bibliotecas, e conceitos como
import
,while True:
eGPIO.output()
, é muito abrupta e pode causar frustração e desinteresse.
Este projeto nasceu para resolver exatamente este problema, criando uma experiência de aprendizado fluida, poderosa e divertida.
O TurboWarp é uma versão modificada ("mod") do Scratch que mantém toda a simplicidade e o poder da programação em blocos, mas adiciona funcionalidades cruciais para projetos avançados. Para este projeto, ele é a ferramenta ideal por duas razões principais:
-
Suporte a Extensões Personalizadas: O TurboWarp nos permite carregar extensões de blocos criadas por nós. Criamos uma extensão que se comunica com um servidor local rodando na Raspberry Pi, traduzindo comandos simples em blocos (ex: "ligar pino 17") em ações de hardware reais.
-
Alto Desempenho: O TurboWarp compila os projetos para JavaScript, tornando-os muito mais rápidos que o Scratch tradicional, o que é ideal para projetos de robótica que exigem respostas rápidas.
Com esta abordagem, os alunos continuam em um ambiente familiar de blocos, mas com um novo conjunto de "superpoderes" para controlar LEDs, motores, sensores e muito mais.
A arquitetura do projeto é dividida em duas partes principais que se comunicam entre si:
-
Backend (O Cérebro na Raspberry Pi):
gpio_server.py
: Um servidor web leve, escrito em Python com a biblioteca Flask. Ele fica rodando na Raspberry Pi, recebendo comandos simples (via HTTP) e os traduzindo para a bibliotecagpiozero
, que controla o hardware.
-
Frontend (Os Blocos no TurboWarp):
rpi_gpio_extension.js
: Um arquivo Javascript que define a aparência e o funcionamento de todos os nossos blocos personalizados (Pinos Digitais, PWM, Motores L298N, LCD, Serial). É este arquivo que carregamos no TurboWarp.
Este guia assume que você está começando com uma Raspberry Pi com o sistema operacional Raspberry Pi OS (64-bit) recém-instalado e conectado à internet.
Primeiro, vamos garantir que o sistema esteja totalmente atualizado. Abra um terminal e execute os seguintes comandos:
sudo apt update
sudo apt upgrade -y
Este projeto funciona com a versão "Desktop" do TurboWarp, que é instalada diretamente na Raspberry Pi.
- Baixe o arquivo de instalação
.deb
para Linux (ARM64) do site oficial do TurboWarp. - Após o download, navegue até a pasta
Downloads
pelo terminal:cd /home/pi/Downloads
- Execute o comando de instalação (substitua o nome do arquivo pela versão que você baixou):
sudo apt install ./TurboWarp-linux-arm64-1.14.5.deb
Este é o passo principal, onde um único script fará toda a mágica: instalará as bibliotecas, configurará o hardware, criará os arquivos e o atalho na área de trabalho.
-
Crie o Script de Instalação:
- Abra o editor de texto Mousepad (Menu > Acessórios > Mousepad).
- Copie o conteúdo completo do script de instalação fornecido neste repositório (
instalar_ambiente_final.sh
). - Cole o conteúdo no Mousepad.
- Salve o arquivo na sua pasta pessoal (
/home/pi
) com o nomeinstalar_ambiente_final.sh
.
-
Execute o Script de Instalação:
- Abra um terminal.
- Torne o script executável:
chmod +x /home/pi/instalar_ambiente_final.sh
- Execute o script com permissões de administrador:
sudo /home/pi/instalar_ambiente_final.sh
- Aguarde a conclusão do processo.
-
Reinicie a Raspberry Pi: Ao final, o script pedirá para reiniciar. Faça isso para que todas as configurações sejam aplicadas:
sudo reboot
Após a reinicialização, o uso no dia a dia é extremamente simples:
- Dê um duplo-clique no ícone "Ambiente TurboWarp GPIO" na sua área de trabalho.
- Uma janela de terminal se abrirá, os servidores iniciarão em segundo plano e, em seguida, o aplicativo TurboWarp será aberto automaticamente.
- Dentro do TurboWarp, crie um novo projeto.
- Clique no botão de extensões (canto inferior esquerdo).
- Role para baixo e clique em "Load custom extension".
- Na aba "URL", digite o endereço da nossa extensão:
http://localhost:8000/rpi_gpio_extension.js
- Uma nova categoria de blocos verdes, "Raspberry Pi PRO", aparecerá, pronta para ser usada!
- Quando terminar, simplesmente feche a janela do TurboWarp. Os servidores e o terminal serão encerrados automaticamente.
A beleza deste projeto está na progressão didática. Você pode começar com projetos simples e evoluir para desafios mais complexos, tudo dentro do mesmo ambiente de blocos.
- Projeto 1: Pisca-Pisca: Use os blocos "definir pino digital" e "espere" para fazer um LED piscar. É o "Hello, World!" do hardware.
- Projeto 2: Semáforo: Controle três LEDs (vermelho, amarelo, verde) com tempos diferentes para simular um semáforo.
- Projeto 3: Controle de Luminosidade: Use o bloco "definir PWM" para controlar a intensidade do brilho de um LED.
- Projeto 4: Robô Básico: Use os blocos da "Ponte H L298N" para controlar dois motores DC e construir um robô simples que anda para frente e para trás.
Este é um projeto de código aberto voltado para a educação. Sinta-se à vontade para abrir issues com sugestões de novos blocos, melhorias ou correções de bugs. Pull requests são muito bem-vindos!
Este projeto está sob a licença MIT. Veja o arquivo LICENSE
para mais detalhes.