Plano de aula com Raspberry Pi Pico: 6 semanas de MicroPython na sala de aula
Plano de aula com Raspberry Pi Pico: 6 semanas de aulas de MicroPython de 40 minutos com projetos grátis, instalação do Thonny, lista de material para 24 alunos e uma aula de exemplo.
Se você procura um plano de aula com Raspberry Pi Pico, aqui vai a resposta curta: 6 semanas, uma aula de 40 minutos por semana, alunos em duplas e um único conceito novo de MicroPython a cada semana. Na semana 1, os alunos acendem o LED integrado com uma linha no REPL do Thonny; depois vêm variáveis e temporização, funções, botões e condições, som e um sensor de distância com PWM e, na última semana, um piano de cinco botões feito com uma lista e um laço for. O projeto de cada semana é grátis no BlueGrays, com esquema do circuito, lista de peças e código, então os alunos não precisam de Premium. O plano usa o Raspberry Pi Pico ou o Pico W com o Thonny e foi escrito para alunos do ensino fundamental II e do ensino médio que nunca escreveram código.
Primeiro vemos por que o Pico e o MicroPython funcionam tão bem na sala de aula, depois a preparação antes da primeira aula: o arquivo UF2 do MicroPython, o botão BOOTSEL, a escolha do interpretador no Thonny e os cuidados com os computadores da escola. Em seguida vem o plano semana a semana, com o equivalente em Arduino C++ de cada conceito, uma lista de material para uma turma de 24, uma aula de exemplo minuto a minuto, três exemplos curtos de código, uma tabela de avaliação e soluções para os problemas que mais aparecem na aula. Tratamos da versão de 8 semanas dessa abordagem com Arduino e blocos no plano de aula de programação em blocos; este plano não a repete e é para turmas que querem começar direto com código em texto ou passar para o Python depois dos blocos.

Por que o Raspberry Pi Pico e o MicroPython?
O Pico é uma pequena placa microcontroladora feita pela Raspberry Pi em torno do seu próprio chip RP2040. Ele não é um computador; como um Arduino, roda um único programa sem parar. Ele tem três pontos fortes na sala de aula. O primeiro é o MicroPython, uma versão enxuta do Python para microcontroladores. Ele é fácil de ler e não tem ponto e vírgula nem chaves, então alunos que já viram Python na aula de informática usam a mesma linguagem para controlar um LED ou um buzzer. O segundo é que não há compilação: no momento em que você aperta Executar no Thonny, o código roda na placa, e você não espera uma compilação e um carregamento a cada pequena mudança. Em uma aula de 40 minutos, isso significa muito mais tentativas no mesmo tempo. O terceiro é o REPL: digite uma única linha no Shell do Thonny, aperte Enter, e a placa a executa na hora. Quando um aluno digita led.on() e o LED acende, ele entende em cinco minutos que programar é dar comandos à placa. O preço baixo e o fato de a placa encaixar direto na protoboard também tornam as duplas realistas. Quando o Arduino é a escolha mais fácil? Com alunos mais novos, que acabaram de aprender a ler, ou se a maior parte do seu kit for de módulos de 5 V, começar com o Arduino e com blocos traz menos surpresas. Para as especificações da placa e a pinagem, veja o que é o Raspberry Pi Pico.
| Característica | Raspberry Pi Pico + MicroPython | Arduino Uno + C++ |
|---|---|---|
| Tensão dos pinos | 3,3 V (não tolera 5 V) | 5 V |
| Linguagem e editor | MicroPython, Thonny | C++, Arduino IDE |
| Rodando o código | Na hora, ao apertar Executar, sem compilar | Compilar e carregar a cada mudança |
| Teste linha a linha (REPL) | Sim: >>> no Shell do Thonny | Não |
| Entradas analógicas | 3 pinos (GP26–GP28), read_u16() 0–65535 | 6 pinos (A0–A5), analogRead() 0–1023 |
| Porta USB | Micro USB | USB-B (Uno R3) |
| Na protoboard | Pico H / WH vêm com barras de pinos e encaixam direto | A placa fica de fora, ligada com jumpers |
| Preço | Geralmente bem mais barato que um Uno | Mais caro |
Antes da primeira aula: MicroPython e Thonny
- Conheça a sua placa: o Pico, o Pico W, o Pico 2 e o Pico 2 W precisam, cada um, de um arquivo MicroPython diferente. Confira o que está impresso na placa e baixe na página oficial de download do MicroPython o arquivo .uf2 mais recente para exatamente essa placa. Com o arquivo errado, a placa não inicia ou o Wi-Fi não funciona.
- Conecte segurando o BOOTSEL: segure o botão branco BOOTSEL ao lado da porta USB enquanto liga o cabo no computador e depois solte. Aparece no computador uma unidade chamada RPI-RP2 (no Pico 2 ela se chama RP2350).
- Copie o arquivo UF2: arraste o arquivo .uf2 para essa unidade. A placa reinicia em poucos segundos e a unidade some; isso não é erro, significa que o MicroPython foi instalado. O MicroPython fica na placa, então você não o reinstala a cada aula.
- Escolha o interpretador no Thonny: em Ferramentas > Opções > Interpretador, selecione “MicroPython (Raspberry Pi Pico)” e deixe a porta em detecção automática. Você pode fazer a mesma escolha clicando no canto inferior direito da janela do Thonny.
- Teste a conexão: você deve ver o prompt >>> no Shell embaixo. Digite print("hello") e aperte Enter; se vier uma resposta, a placa está pronta para a aula.
Não deixe a instalação nos computadores da escola para a própria aula; converse com a equipe de informática com uma semana de antecedência. O Thonny roda no Windows, no macOS e no Linux e vem com o próprio Python, então não há um Python separado para instalar. Também há uma versão portátil para Windows que não precisa de instalação nenhuma, o que facilita muito a vida em laboratórios bloqueados, em que só a informática pode instalar programas. O Windows 10 e 11 reconhecem o Pico como porta serial (COM) sem driver extra. Algumas escolas bloqueiam pen drives; nesse caso, a unidade RPI-RP2 pode não aparecer nos computadores dos alunos, mas, se você instalou o MicroPython nas placas antes, no seu próprio computador, isso não importa, porque a aula só usa a conexão serial. Por fim, mostre aos alunos as duas opções da janela de salvar do Thonny: “Este computador” salva o arquivo no computador, “Raspberry Pi Pico” salva na placa. Duplas que não sabem qual escolheram não vão achar o código na semana 6.
O plano de aula de 6 semanas com Raspberry Pi Pico
Cada aula foi planejada para 40 minutos, com duplas. Todos os projetos da tabela são grátis no BlueGrays, e os projetos das três primeiras semanas também têm visualização em blocos ao lado do código. A ordem é proposital: primeiro saída (LED), depois variáveis e temporização, funções, depois entrada e condições, som e um sensor com PWM e, por fim, listas e laços. Cada semana acrescenta uma única ideia nova em cima da anterior. A última coluna mostra o mesmo conceito em Arduino C++, o que cria uma ponte para os alunos que vão passar para o Arduino depois; para o lado do C++ em detalhes, veja fundamentos de programação Arduino.
| Semana | Objetivo | Projeto grátis do BlueGrays | Conceito novo de MicroPython | Equivalente em Arduino C++ |
|---|---|---|---|---|
| 1 | Conhecendo o Pico, primeiro programa, saída digital | Piscar o LED integrado do Raspberry Pi Pico (Pico e Pico W), Raspberry Pi Pico: controle de LED externo (GP14 + protoboard) | REPL (>>>), from machine import Pin, Pin(14, Pin.OUT), led.on() / led.off(), time.sleep(0.5), while True:, indentação | pinMode(14, OUTPUT); digitalWrite(14, HIGH); delay(500); void loop() (saída e espera) |
| 2 | Variáveis, temporização, duas saídas | Raspberry Pi Pico: dois LEDs alternados (padrão flip-flop, GP14 + GP13), Raspberry Pi Pico: efeito de luz policial (vermelho + azul, GP11 + GP12) | WAIT_MS = 300 (variável), led.value(1), led.toggle(), sleep_ms(300) | int waitMs = 300; digitalWrite(13, !digitalRead(13)); delay(waitMs); (variável e inversão) |
| 3 | Menos repetição: funções | Raspberry Pi Pico: semáforo (3 LEDs em sequência, GP11/GP12/GP13) | def all_off():, chamar uma função, segundos decimais com sleep(1.5) | void allOff() { … } ; delay(1500); (função e espera) |
| 4 | Entrada, condições e estado | Raspberry Pi Pico: semáforo com 4 modos selecionados por botão (máquina de estados, GP11-13 + GP4) | Pin(4, Pin.IN, Pin.PULL_UP), if / elif / else, mode = (mode + 1) % 4, time.ticks_ms() (entrada, condição e tempo) | pinMode(4, INPUT_PULLUP); if / else if / else; millis() (entrada, condição e tempo) |
| 5 | Sensor e som | Sensor de estacionamento com Raspberry Pi Pico (HC-SR04 + 3 LEDs + buzzer) | PWM(Pin(17)), freq(), duty_u16(), time_pulse_us(), def … return (PWM, pulso e retorno) | tone(17, 1200); pulseIn(); return (som, pulso e retorno) |
| 6 | Listas, laços for, projeto final | Piano de botões com Raspberry Pi Pico (5 botões + buzzer + gravador de melodias) | NOTE_HZ = (523, 587, 659, 698, 784), for … in, cinco botões com o mesmo código | int notes[] = {523, 587, 659, 698, 784}; for (int i = 0; i < 5; i++) (array e laço) |

Ao aplicar o plano, faça uma regra: os alunos mudam um único valor no fim de cada semana. Na semana 1, o projeto do LED integrado chama o LED pelo nome “LED”, então funciona igual no Pico e no Pico W; o LED externo vai ao GP14, que é o pino físico 19, e o pino 18, logo ao lado, é o GND. Na semana 2, baixar o WAIT_MS do efeito de luz policial de 300 para 80 mostra que uma variável muda o ritmo dos dois LEDs de uma vez. Na semana 3, o semáforo chama all_off() três vezes no laço; peça aos alunos que apaguem a função e escrevam a mesma coisa à mão e, quando virem nove linhas se acumulando, eles mesmos vão dizer por que as funções existem. A semana 4 é um projeto intermediário: o botão é ligado com PULL_UP, então ele lê 0 quando apertado, e cada toque alterna o modo entre normal, só vermelho, amarelo piscante e desligado. O código é longo, então leia-o primeiro com os passos da aba Entenda o código. Na semana 5, o HC-SR04 funciona com 5 V, então não esqueça de ligar o ECHO pelo divisor; brincar com os valores GREEN_CM 100, YELLOW_CM 50, RED_CM 25 e STOP_CM 10 dá aos alunos a ideia de limite. Você encontra como o sensor funciona no post sobre o sensor de distância HC-SR04 e como fazer som com PWM em o que é um buzzer; use um buzzer passivo, porque o projeto muda a frequência. Na semana 6, o piano toca cinco notas, de DÓ a SOL, entre 523 e 784 Hz, e segurar a tecla DÓ por um segundo começa a gravar uma melodia. O código completo é longo para esse nível; em vez de pedir que os alunos o digitem inteiro, peça que mudem as frequências da lista NOTE_HZ e montem a própria escala.
Perguntas de saída de cada semana
- Semana 1: o que acontece se você trocar as linhas led.on() e time.sleep(0.5) de lugar? Por que as linhas embaixo de while True: começam mais para dentro?
- Semana 2: como o efeito policial muda quando você sobe o WAIT_MS de 300 para 1000? Quais duas linhas o toggle() substitui sozinho?
- Semana 3: quantas linhas a mais você escreveria sem a função all_off()? Qual é a diferença entre definir uma função e chamá-la?
- Semana 4: por que button.value() retorna 0 quando você aperta um botão que usa PULL_UP? Se mode é 3 e você aperta o botão, quanto vale mode agora?
- Semana 5: por que não ligamos o pino ECHO do HC-SR04 direto no Pico? O que a linha duty_u16(0) faz o buzzer fazer?
- Semana 6: quais listas do código você precisa mudar para acrescentar uma sexta tecla ao piano?
Lista de material para uma turma de 24
Divida 24 alunos em duplas e você terá 12 grupos; com um de reserva, prepare 13 conjuntos. Como o Pico é barato, duplas em vez de trios são possíveis na maioria das escolas e cada aluno ganha mais tempo no teclado; se você optar por trios, reduza para 9 conjuntos. Cada grupo precisa de um computador, porque o Thonny fala com o Pico pelo USB. Um celular ou tablet é usado para manter aberto no BlueGrays o projeto da semana, o esquema do circuito e a aba Entenda o código. Nada precisa de solda; tudo encaixa na protoboard.
| Item | Por grupo | Para a turma (12 grupos + 1 reserva) | Semana de uso |
|---|---|---|---|
| Raspberry Pi Pico H ou Pico WH (barras de pinos soldadas) | 1 | 13 | Todas |
| Cabo micro USB de dados | 1 | 13 | Todas |
| Protoboard (400 ou 830 furos) | 1 | 13 | Todas |
| Jumpers macho-macho | 20 | cerca de 260 | Todas |
| LEDs de 5 mm (vermelho, amarelo, verde, azul) | 4 | cerca de 60 | 1–5 |
| Resistor de 220 Ω | 4 | cerca de 60 | 1–5 |
| Botão de pressão (4 pernas) | 5 | cerca de 70 | 4, 6 |
| Buzzer passivo | 1 | 13 | 5, 6 |
| Sensor de distância ultrassônico HC-SR04 | 1 | 13 | 5 |
| Resistores de 1 kΩ e 2 kΩ (divisor do ECHO) | 1 + 1 | 13 + 13 | 5 |
| Computador com o Thonny | 1 | 12 | Todas |
| Potenciômetro de 10 kΩ (opcional, para o ADC) | 1 | 13 | Grupos rápidos |
Aula de exemplo: semana 1, o primeiro programa
O plano abaixo é para a semana 1. A primeira aula é a mais arriscada, porque é nela que aparecem os problemas de instalação. Partimos do princípio de que você instalou o MicroPython nas placas antes e de que o Thonny está instalado nos computadores. Você pode usar o mesmo esqueleto nas outras semanas: aquecimento, leitura em conjunto, previsão, circuito, rodar o código, mudar um valor e uma pergunta de saída. Se você tem uma aula dupla de 80 minutos, estique a etapa de “mudar um valor” e deixe as duplas apresentarem as respostas de saída.
| Tempo | Etapa | O que acontece |
|---|---|---|
| 0–5 min | Aquecimento | Pergunta: o que você precisa dizer a uma placa para ela “acender o LED”? As respostas vão para a lousa. As placas são distribuídas, e o botão BOOTSEL e a porta USB são apontados. |
| 5–12 min | Primeiro comando no REPL | Shell do Thonny no projetor: from machine import Pin, led = Pin("LED", Pin.OUT), led.on(). As duplas digitam as mesmas três linhas no próprio computador e depois apagam com led.off(). |
| 12–18 min | Leitura do projeto em conjunto | Abra o projeto Piscar o LED integrado no BlueGrays. Leia primeiro os blocos, com o Ver em blocos ligado, e depois o código; converse sobre while True e indentação. |
| 18–22 min | Rodando | Cole o código no Thonny e aperte Executar (F5). O LED pisca a cada 0,5 segundo. Mostre o botão Parar para interrompê-lo. |
| 22–32 min | Circuito do LED externo | Desconecte o USB. GP14 (pino 19) → 220 Ω → perna longa do LED, perna curta → GND (pino 18). Rode o código do projeto do LED externo. Papéis: montador e conferente. |
| 32–37 min | Mudar um valor | Mude time.sleep(0.5) para 0.1 e depois para 2. As duplas que quiserem podem passar o LED para o GP15 e trocar 14 por 15 no código. |
| 37–40 min | Pergunta de saída | Uma pergunta no papel: o que aconteceria se as linhas embaixo de while True: não começassem mais para dentro? As placas são desconectadas e voltam para as caixas numeradas. |
Três exemplos curtos de MicroPython para a aula
O LED integrado é o que mais causa confusão entre o Pico e o Pico W. No Pico clássico, o LED está ligado ao GP25, e é por isso que exemplos antigos usam Pin(25). No Pico W, o LED está ligado ao chip de Wi-Fi e não tem pino GP numerado, então Pin(25) não o acende ali. O jeito que funciona nos dois é chamar o LED pelo nome: Pin("LED"). As versões atuais do MicroPython definem esse nome para o Pico, o Pico W e o Pico 2, e é por isso que o projeto do LED integrado no BlueGrays o usa. Se a sua turma tem placas misturadas, você pode distribuir o mesmo código para todos. Se um firmware antigo não conhecer o nome “LED”, a solução é atualizar o arquivo UF2.
1from machine import Pin
2import time
3
4# "LED" adı Pico, Pico W ve Pico 2'de karttaki LED'i bulur / The name "LED" finds the onboard LED on Pico, Pico W and Pico 2
5led = Pin("LED", Pin.OUT)
6# Eski firmware'li klasik Pico'da: Pin(25, Pin.OUT) / Classic Pico with old firmware: Pin(25, Pin.OUT)
7# Pico W'de Pin(25) LED'i yakmaz / On the Pico W, Pin(25) does not light the LED
8
9while True:
10 led.toggle() # Durumu tersine çevir / Flip the state
11 time.sleep(0.5) # 0,5 saniye bekle / Wait 0.5 seconds
12O código do LED externo usa o mesmo esqueleto; só muda o número do pino. Aqui passamos o tempo de espera para uma variável chamada WAIT, que vira a primeira linha que os alunos mudam na semana 2. A variável count e a linha print() escrevem um número no Shell do Thonny toda vez que o LED acende, então os alunos veem na tela que o laço está mesmo rodando. O 14 do código é um número GP, não um número de pino físico; é o ponto que os alunos mais confundem.
1from machine import Pin
2import time
3
4LED_PIN = 14 # LED'in bağlı olduğu GP pini (fiziksel pin 19) / GP pin the LED is wired to (physical pin 19)
5WAIT = 0.5 # Bekleme süresi, saniye / Wait time in seconds
6
7led = Pin(LED_PIN, Pin.OUT) # Pini çıkış yap / Make the pin an output
8count = 0 # Kaç kez yandığını say / Count how many times it lit
9
10while True:
11 led.on() # LED'i yak / Turn the LED on
12 count = count + 1
13 print("LED", count) # Thonny Shell'e yaz / Print to the Thonny Shell
14 time.sleep(WAIT)
15 led.off() # LED'i söndür / Turn the LED off
16 time.sleep(WAIT)
17Há dois jeitos de ligar um botão, e vale mostrar os dois. Com PULL_UP, uma perna do botão vai ao GP15 e a perna oposta ao GND; um resistor dentro do Pico puxa o pino para 3,3 V, apertar o botão liga o pino ao GND e ele lê 0. Todos os projetos de botão com Pico no BlueGrays usam essa abordagem, porque ela não precisa de fio extra. Com PULL_DOWN, a perna oposta vai ao pino 3V3(OUT) (pino 36) e o botão lê 1 quando apertado; a lógica parece mais natural, mas é fácil encaixar o fio no VBUS (pino 40, 5 V) por engano. Explicamos quais das quatro pernas do botão são ligadas entre si no post sobre como ligar um botão. Você pode começar a semana 4 com o código curto abaixo e depois passar para o seletor de modos.
1from machine import Pin
2import time
3
4led = Pin(14, Pin.OUT) # GP14 -> 220 ohm -> LED -> GND / GP14 -> 220 ohm -> LED -> GND
5button = Pin(15, Pin.IN, Pin.PULL_UP) # Buton GP15 ile GND arasında / Button between GP15 and GND
6# PULL_DOWN: Pin(15, Pin.IN, Pin.PULL_DOWN), buton GP15 ile 3V3(OUT) arasında / button between GP15 and 3V3(OUT)
7# PULL_DOWN ile koşul == 1 olur / With PULL_DOWN the condition becomes == 1
8
9while True:
10 if button.value() == 0: # PULL_UP: basınca 0 okunur / PULL_UP: reads 0 when pressed
11 led.on()
12 else:
13 led.off()
14 time.sleep_ms(10) # Döngüyü biraz yavaşlat / Slow the loop down a little
15Como usar o BlueGrays em uma aula com o Pico
- Guia de código, trilha de MicroPython: o Guia de código da seção Aprender oferece uma trilha de MicroPython com 18 cartões ao lado da trilha de Arduino C++: import, print, saída de pino, entrada de pino (PULL_UP, PULL_DOWN), time.sleep, while True, indentação, variáveis, if / elif / else, for e range, listas, def e return, ADC, PWM, ticks_ms, Pin.irq, try / except e I2C. Cada cartão tem O que faz?, Sintaxe, um exemplo com as abas Blocos · Arduino · MicroPython, Erro comum e um miniteste. Sugira os cartões do conceito da semana para os alunos lerem entre as aulas; cada aluno vê o próprio progresso de MicroPython x/18 na tela Meu nível.
- Ver nos projetos: esse link no fim de cada cartão lista, do mais fácil ao mais difícil, os projetos cujo código usa o comando. Um aluno que leu sobre um comando em um cartão vai dali para encontrá-lo no código de um projeto de verdade.
- Perguntas do dia: a configuração “Linguagem do código nas perguntas” oferece Ambas, Arduino e MicroPython. Se você dá aula com o Pico, peça aos alunos que escolham MicroPython; perguntas gerais sem código vêm com qualquer escolha. Há uma série de uns 3 minutos todo dia, um teste de nivelamento de 15 perguntas e 6 níveis, de A1 a C2, o que cria um bom hábito de revisão diária entre as aulas.
- Ver em blocos: cinco dos projetos grátis do Pico (LED integrado, LED externo, dois LEDs alternados, semáforo e efeito de luz policial) têm visualização em blocos ao lado do código. Mostrar a um aluno que vê Python pela primeira vez os blocos primeiro e depois o código do mesmo programa constrói a ideia de “mesma lógica, escrita diferente”; tratamos desse passo em detalhes em dos blocos ao MicroPython. Os blocos são para leitura; não podem ser editados no app, e o que vai para a placa é sempre o código MicroPython.
- Entenda o código e Solução de problemas: todo projeto grátis do Pico tem os dois. A aba Entenda o código começa com um resumo O que este código faz?, continua com uma explicação Passo a passo e termina com Se precisar de ajuda e uma tarefa Experimente você mesmo. Com os códigos longos das semanas 4 e 6, é a sua maior ajuda para duplas que ainda não leem rápido.
- Vamos montar juntos e Copiar link: o modo guiado passa por quatro passos e, no passo do código, lembra os alunos de escolher o interpretador MicroPython no Thonny. O Copiar link da seção de código-fonte gera um link para abrir o código no computador, então os alunos não precisam redigitar no Thonny o código do celular.
Avaliação e diferenciação
| Critério | 1 – Iniciando | 2 – Em desenvolvimento | 3 – Consolidado |
|---|---|---|---|
| Montar circuitos | Monta com ajuda, esquece o GND | Monta pelo esquema, relaciona o número GP com o código | Distingue pinos físicos de números GP, acha o erro de um colega |
| Ler código | Lê as linhas, não consegue explicar o que fazem | Explica de modo geral o que o programa faz | Explica cada linha e o que a indentação significa |
| Mudar e testar | Muda um valor, não consegue explicar o efeito | Prevê o resultado antes de testar | Acha a causa pela mensagem de erro no Shell quando a previsão falha |
| Relacionar com o C++ | Não consegue relacionar | Relaciona Pin, sleep e while True | Relaciona também if, for e funções |
- Grupos rápidos, leitura analógica: o plano não tem semana de ADC; duplas que terminam antes ligam a perna do meio de um potenciômetro de 10 kΩ ao GP26, leem um valor de 0 a 65535 com ADC(26).read_u16() e o usam para ajustar a velocidade do efeito policial da semana 2. Para um desafio maior, o projeto grátis Fogueira de LEDs com Raspberry Pi Pico (matriz NeoPixel 8x8 + potenciômetro + buzzer) controla uma matriz NeoPixel 8x8 com o mesmo potenciômetro.
- Grupos rápidos, combinando: acrescentar o botão da semana 4 ao sensor de estacionamento da semana 5 para escrever um “modo silencioso” que liga e desliga o som é o primeiro passo de verdade para escrever o próprio código.
- Grupos mais lentos: entregue o circuito já montado ou ponha na mesa uma cópia impressa grande do esquema do circuito. Deixe-os avançar passo a passo com a aba Entenda o código e tenha como meta mudar só um valor naquele dia; isso já é um resultado que vale a pena.
Problemas comuns e soluções rápidas
| Problema | Causa provável | Solução |
|---|---|---|
| O computador não vê o Pico de jeito nenhum | Cabo que só carrega, mau contato, hub USB | Teste um cabo de dados conhecido, ligue a placa direto no computador, tente outra porta USB. |
| A unidade RPI-RP2 abre toda vez que você conecta | Não há MicroPython na placa, ou o BOOTSEL está preso | Copie o arquivo UF2 para a unidade; conecte de novo sem apertar o botão. |
| A RPI-RP2 nunca aparece | O BOOTSEL foi apertado depois de conectar | Desconecte, segure o BOOTSEL enquanto conecta de novo e depois solte. |
| O Thonny não conecta, “Device is busy” ou erro de porta | Interpretador ou porta errados, porta aberta em outro programa, código em execução ocupado | Escolha “MicroPython (Raspberry Pi Pico)” no canto inferior direito, aperte Parar/Reiniciar, feche uma segunda janela do Thonny, tire e ponha o USB de novo. |
| No module named 'machine' (módulo machine não encontrado) | O código está rodando no Python do computador | Ponha o interpretador em MicroPython (Raspberry Pi Pico). |
| IndentationError ou SyntaxError (erro de indentação ou de sintaxe) | Indentação misturada, falta de dois-pontos | Vá até o número da linha do erro; as linhas com while, if e def precisam de dois-pontos no fim e de 4 espaços nas linhas de baixo. |
| O código roda, mas o LED fica apagado | LED invertido, sem GND, número GP do código diferente do circuito, Pin(25) em um Pico W | Perna longa para o lado do resistor (lado do GP), confira o fio do GND, use Pin("LED") para o LED integrado. |
| O código para de funcionar quando a placa é desconectada do computador | Arquivo salvo no computador, ou sem o nome main.py | No Thonny, escolha salvar > Raspberry Pi Pico e dê o nome main.py; o código começa sozinho sempre que a placa recebe alimentação. |
| O main.py roda um laço infinito e o Thonny não consegue entrar | O código começa logo na inicialização | Aperte Parar algumas vezes ou Ctrl+C no Shell; se não der certo, apague a flash com o flash_nuke.uf2 oficial e reinstale o MicroPython (todos os arquivos da placa são apagados). |
Checklist antes da aula
- O MicroPython está instalado em todas as placas, e placas e cabos estão numerados de 1 a 13.
- O Thonny abre em todos os computadores com “MicroPython (Raspberry Pi Pico)” escolhido como interpretador.
- Toda dupla de placa e cabo foi testada e mostra >>> no Shell.
- Os resistores estão em caixas separadas por valor: 220 Ω, 1 kΩ, 2 kΩ.
- O projeto da semana está aberto no BlueGrays no projetor; o Ver em blocos está pronto para as três primeiras semanas.
- Os papeizinhos das perguntas de saída estão impressos e os papéis (montador, conferente) foram dados às duplas.
- Antes da semana 5, os resistores do divisor do HC-SR04 foram separados para todos os grupos.
- No fim da aula, os cabos USB são desconectados e as peças são contadas de volta nas caixas numeradas.
Você pode abrir de graça no app BlueGrays todos os projetos que vai usar nessas seis semanas, com esquema do circuito, lista de peças, código MicroPython e a aba Entenda o código, o que facilita conduzir a aula pelo projetor enquanto os alunos acompanham no próprio celular. Se depois das seis semanas você quiser passar para projetos Premium do Pico com brilho de LED por PWM, servos, display OLED ou teclado matricial, pode distribuir códigos de educador no lugar de assinaturas individuais; eles são uma compra única e não se renovam automaticamente.
Perguntas frequentes
Como dar aula com o Raspberry Pi Pico?
Ponha um único conceito novo em cada aula e ordene-os como saída, variáveis, funções, entrada e condições, PWM e sensores, e por fim listas e laços. Deixe toda aula seguir o mesmo esqueleto: aquecimento, leitura em conjunto, previsão, circuito, rodar o código, mudar um valor e uma pergunta de saída. O plano de 6 semanas deste post foi montado assim, com projetos grátis.
Como instalo o MicroPython em um Raspberry Pi Pico?
Segure o botão BOOTSEL enquanto liga o Pico ao computador pelo USB; aparece uma unidade chamada RPI-RP2. Copie para essa unidade o arquivo .uf2 do MicroPython da sua placa e ela reinicia. Você também pode instalar pela opção “Instalar ou atualizar o MicroPython” nas configurações de interpretador do Thonny.
O Thonny não vê o meu Raspberry Pi Pico. O que faço?
Primeiro confira se você está usando um cabo USB que transmite dados, porque o computador não vê a placa por um cabo que só carrega. Depois ponha o interpretador do Thonny em “MicroPython (Raspberry Pi Pico)” e aperte Parar/Reiniciar. Se a unidade RPI-RP2 abrir toda vez que você conecta, a placa ainda não tem MicroPython, então instale o arquivo UF2.
Raspberry Pi Pico ou Arduino para a escola?
Os dois são bons pontos de partida; a escolha depende da linguagem e dos alunos. Se você ensina Python ou quer experimentos rápidos sem esperar a compilação, o Pico com MicroPython é confortável. Com alunos mais novos, se quiser começar com blocos, ou se o seu kit for de módulos de 5 V, o Arduino traz menos surpresas.
Como rodo o código no Pico sem computador?
No Thonny, salve o código na placa com a opção “Raspberry Pi Pico” e dê o nome main.py. O Pico roda o main.py sozinho toda vez que recebe alimentação, então um carregador USB ou um power bank bastam. Para parar o código, ligue a placa ao Thonny de novo e aperte Parar.
Há diferença entre o Pico e o Pico W na sala de aula?
Todos os projetos deste plano funcionam nos dois com os mesmos pinos; a única diferença é o LED integrado. No Pico clássico ele está ligado ao GP25, e no Pico W ao chip de Wi-Fi, então use Pin("LED"), que funciona nos dois. O Pico W também tem Wi-Fi e Bluetooth, mas você não vai precisar deles nas seis primeiras semanas.
Projetos para montar depois desta leitura
Ver todos os projetos
Piscar o LED integrado do Raspberry Pi Pico (Pico e Pico W)
O primeiro projeto da série Raspberry Pi Pico! Fazemos o LED verde integrado piscar para verificar se a placa funciona — um primeiro experimento no estilo clássico "Hello World". SEM componentes externos, apenas o Pico e um cabo USB. O código foi escrito em MicroPython (a linguagem com suporte oficial da Raspberry Pi Foundation). Aprenda a usar a classe machine.Pin, o modo Pin.OUT, os métodos led.on()/off() e time.sleep() no Thonny IDE.

Raspberry Pi Pico: controle de LED externo (protoboard)
O próximo passo após o LED integrado do Pico: conectar um LED externo à protoboard e controlá-lo pelo pino GP14. Neste projeto, você aprende a usar qualquer pino GPIO de uso geral do Pico como saída, a polaridade do LED (terminal longo = ânodo/+, terminal curto = cátodo/–) e por que um resistor limitador de corrente (220Ω) é necessário. Sem o resistor, uma corrente excessiva passa pelo LED e pode queimá-lo. O circuito é muito simples: Pico GP14 → resistor de 220Ω → LE

Raspberry Pi Pico: dois LEDs alternados (padrão flip-flop)
O próximo passo após um único LED no Pico: dois LEDs piscam alternadamente no clássico padrão flip-flop. Quando um apaga, o outro acende — o exemplo mais básico de coordenação entre vários GPIOs. Neste projeto, dois LEDs de cores diferentes (vermelho no GP14, verde no GP13) trocam de estado a cada 500ms. O método Pin.toggle() do MicroPython deixa o código curto e claro. Essa mesma lógica é a base de semáforos, luzes policiais, LEDs sequenciais e todas as animações com vários LEDs.

Raspberry Pi Pico: semáforo (3 LEDs em sequência)
Simulamos um semáforo real com LEDs vermelho, amarelo e verde — o primeiro projeto com 3 LEDs da série Pico! Verde por 4 segundos: "siga"; amarelo por 1,5 segundo: "prepare-se"; vermelho por 3 segundos: "pare"; e vermelho+amarelo por 1 segundo: "saída" (padrão de semáforo europeu). Aprenda definição de funções (def all_off()), lógica de máquina de estados (sequência) e sincronização de vários GPIOs.

Raspberry Pi Pico: efeito de luz policial (vermelho + azul)
Simulamos a barra de luzes de uma viatura com um Raspberry Pi Pico da forma mais simples! Os LEDs vermelho e azul acendem alternadamente (flip-flop): enquanto o vermelho está aceso, o azul fica apagado, e eles trocam de estado a cada 0,3 segundo, para sempre. O código escreve as duas etapas diretamente em um único laço while True; a velocidade é definida pela constante WAIT_MS.

Raspberry Pi Pico: semáforo com 4 modos selecionados por botão (máquina de estados)
4 modos de semáforo com apenas 1 botão! O modo muda a cada acionamento: Ciclo normal (vermelho → amarelo → verde em sequência), Só vermelho (sinal de parada), Amarelo piscante (atenção/modo noturno), Desligado (manutenção). Conceitos: máquina de estados (a variável mode determina qual comportamento executar), alternância cíclica de modos com módulo ((mode + 1) % 4 → ciclo infinito 0→1→2→3→0), temporização sem bloqueio (as fases dos LEDs são temporizadas…

Raspberry Pi Pico: LED controlado por botão (enquanto pressionado)
Primeiro projeto de entrada com o Pico — leitura de botão! O LED acende enquanto o botão está pressionado e apaga ao soltá-lo. O grande passo depois das animações com LEDs: entrada de sinais do mundo para o Pico. Aprenda a usar Pin.IN (modo de entrada), Pin.PULL_UP (pull-up interno — padrão para botões) e a leitura com button.value(). LED no GP14, botão no GP2. Pressionado = LOW (0), solto = HIGH (1) — essa lógica invertida confunde no início, mas é padrão da indústria.

Raspberry Pi Pico: variação de brilho do LED com PWM (efeito de respiração)
O LED não só pisca — ele respira! Com o PWM (modulação por largura de pulso) do Raspberry Pi Pico, o brilho do LED aumenta e diminui lentamente, como a luz de um MacBook em repouso. Aprenda a usar a classe machine.PWM, duty_u16() (brilho de 16 bits, de 0–65535), frequência PWM (freq(1000) — 1.000 ciclos de ligar/desligar por segundo, sem cintilação visível), laços com passos usando range() (crescentes e decrescentes) e saída semelhante à analógica em um pino digital.
Mais artigos
- O que é Raspberry Pi Pico? Instalação do MicroPython, pinagem e primeiros projetos
- Plano de aula de programação em blocos: curso de robótica com Arduino em 8 semanas
- Da programação em blocos ao MicroPython: sensores e Raspberry Pi Pico
- Como resgatar um código de educador: ative o Premium com um código BG
App BlueGrays
Monte este circuito passo a passo pelo celular
Esquema do circuito, código e lista de componentes em uma só tela. Mais de 200 projetos com Arduino, ESP32 e Pico prontos para montar.
Escaneie com seu celular
Aponte a câmera para o código para abrir a loja de aplicativos do seu celular.
ou abrir a loja

