Programação da Raspberry Pi Pico em Python

Introdução
A família Raspberry Pi Pico é composta por placas microcontroladas que podem ser programadas em Python através do interpretador MicroPython. Neste tutorial, utilizaremos a Raspberry Pi Pico como referência para os passos de programação, porém o mesmo procedimento também pode ser utilizado com a Raspberry Pi Pico W, Raspberry Pi Pico 2 e Raspberry Pi Pico 2 W. Sempre que houver alguma diferença importante entre os modelos, ela será indicada ao longo do tutorial.
Neste tutorial veremos como instalar e configurar corretamente a Thonny IDE, gravar o firmware MicroPython correspondente ao modelo da placa e executar o primeiro código. Como exemplo inicial, iremos utilizar o código "Blink" para fazer o LED interno piscar de 1 em 1 segundo. Algumas imagens da Thonny IDE foram atualizadas utilizando uma Raspberry Pi Pico 2 como exemplo de seleção de modelo, mas o procedimento é o mesmo para os demais modelos compatíveis.
Lista de Materiais
Configurações Iniciais
Para programar uma placa da família Raspberry Pi Pico, precisamos realizar duas configurações iniciais: configurar a Thonny IDE e gravar o firmware MicroPython correspondente ao modelo da placa.
Configurações da IDE
O primeiro passo para a programação da placa é instalar a Thonny IDE, que será o ambiente utilizado para desenvolver e executar os códigos em MicroPython. Para isso, acesse a página de download da IDE pelo botão abaixo e escolha a versão correspondente ao seu sistema operacional. Em computadores Linux, siga as instruções apresentadas no site da Thonny para realizar a instalação pelo terminal.
Download da Thonny IDE
Com o arquivo baixado em computadores Windows ou macOS, instale a Thonny IDE seguindo os passos do instalador. Em computadores Linux, conclua a instalação conforme as instruções apresentadas no site. Assim que a instalação for finalizada, abra a IDE.
A configuração que precisa ser feita na Thonny IDE para a programação das placas da família Raspberry Pi Pico é alterar o interpretador que será usado para a execução do código. Para isso, acesse as configurações da IDE, seguindo o caminho a seguir (Tools > Options). A aparência e a posição de algumas opções podem variar conforme a versão da Thonny instalada.
Ao selecionar essa opção, será aberta uma janela com as configurações da IDE, como a da imagem a seguir. Não é necessária nenhuma configuração na seção "geral" ("General"), portanto apenas acesse a seção "Interpreter", como demarcado na imagem.
Ao acessar a seção "Interpreter", você verá que a opção selecionada é a padrão ("The same interpreter which runs Thonny (default)"), como na imagem abaixo.
Para alterar essa opção, expanda as opções clicando sobre o campo do interpretador e então selecione a opção "MicroPython (Raspberry Pi Pico)", como na próxima imagem. Essa opção é utilizada para trabalhar com as placas da família Raspberry Pi Pico; o firmware específico de cada modelo será definido na etapa seguinte.
Com essa opção selecionada, pressione o botão "OK" para que essa configuração seja salva.
Gravação do Firmware
Com essa configuração finalizada, está na hora de gravar o firmware do interpretador MicroPython na placa. Para isso, pressione o botão "BOOTSEL" da placa enquanto ela ainda está desconectada. Então conecte-a ao computador usando o cabo Micro USB, mantendo o botão pressionado. Depois que o cabo for completamente inserido no conector da placa, você já pode soltar o botão, como no GIF a seguir. Esse procedimento é o mesmo para Raspberry Pi Pico, Pico W, Pico 2 e Pico 2 W.
Fonte: Raspberry Pi
Esse procedimento faz com que a placa entre em modo de gravação de firmware e seja reconhecida como um disco removível. O nome da unidade pode variar de acordo com o modelo utilizado. O mais importante é confirmar que uma nova unidade correspondente à placa foi reconhecida pelo sistema antes de continuar.
Neste momento, abra novamente a seção "Interpreter" das configurações da Thonny IDE. Com a placa em modo BOOTSEL, a opção para instalar ou atualizar o MicroPython ficará disponível, como mostrado na imagem abaixo.
A porta serial da placa é por padrão selecionada automaticamente pela IDE (opção "Try to detect port automatically" no campo "Port"), porém é possível realizar essa configuração manualmente se você estiver trabalhando com mais de uma placa ao mesmo tempo. Para isso, basta clicar sobre o campo "Port" para expandir as portas seriais disponíveis, e então selecionar a porta correspondente da sua placa no seu computador (o "Gerenciador de Dispositivos" do seu computador pode ajudar nesta seleção).
Com esta janela aberta, clique sobre a opção de instalação ou atualização do MicroPython, como demarcado na imagem acima. Será aberta uma nova janela com as opções de dispositivo, família, variante e versão do firmware, como na imagem a seguir.
A seleção do disco que será gravado é feita automaticamente pela Thonny. Certifique-se de que o dispositivo exibido corresponde à placa conectada. Em "MicroPython family", selecione "RP2" e, em "variant", escolha o modelo exato da sua placa: Raspberry Pi Pico, Pico W, Pico 2 ou Pico 2 W. Na imagem acima, a Raspberry Pi Pico 2 foi selecionada apenas como exemplo.
Em "version", selecione a versão do MicroPython que deseja instalar. Para novos projetos, é recomendável utilizar uma versão estável recente, a menos que o seu projeto exija uma versão específica. Com tudo configurado, pressione o botão "Install" e aguarde a conclusão da gravação. Ao final, a Thonny indicará que o processo foi concluído, como na próxima imagem.
Assim que a gravação estiver finalizada, você pode fechar essa janela de gravação e fechar a janela de configuração da Thonny IDE. Para que a placa saia do modo de gravação de firmware, é necessário desconectar e reconectar a placa, porém, desta vez, sem pressionar o botão "BOOTSEL".
Agora a sua placa da família Raspberry Pi Pico já está pronta para receber códigos em MicroPython!
Código "Blink"
Com a configuração finalizada e com a gravação de firmware concluída, digite o código a seguir na Thonny IDE.
Entendendo o Código
O código inicia importando a classe "Pin" do módulo "machine" e a função "sleep" do módulo "time",
ambos disponíveis no MicroPython. Em seguida, é criado o objeto led através do comando
led = Pin("LED", Pin.OUT). O identificador "LED" faz com que o MicroPython utilize
o LED interno da placa sem que seja necessário informar manualmente o GPIO ao qual ele está conectado.
Essa forma de acesso permite utilizar o mesmo código na Raspberry Pi Pico, Pico W, Pico 2 e Pico 2 W, desde
que o firmware MicroPython correspondente ao modelo esteja instalado. Nas Pico e Pico 2, o LED
interno é conectado diretamente ao GPIO 25. Já nas versões Pico W e Pico 2 W, ele é controlado através do
chip responsável pela conectividade sem fio. O identificador LED abstrai essa diferença. Na
repetição do código while True, acendemos o LED com led.on() e
o apagamos com led.off(), aguardando 1 segundo sleep(1) entre cada mudança de
estado.
O Que Deve Acontecer
Após digitar o código na Thonny IDE, pressione o botão "Run" para executá-lo. A posição e o visual do botão podem variar conforme a versão da Thonny utilizada.
Ao pressionar esse botão, poderá ser aberta uma janela pedindo para que seja escolhido o local em que o arquivo será salvo, como na próxima imagem. Para gravar o código diretamente na placa, selecione a opção referente ao dispositivo MicroPython conectado. Na versão da Thonny utilizada neste tutorial, essa opção aparece como "Raspberry Pi Pico", como demarcado abaixo.
Após selecionar essa opção, será aberta uma segunda janela requisitando o nome do arquivo, como na imagem a seguir.
Neste momento, digite um nome para o arquivo com a extensão ".py" (como feito na imagem acima), e então pressione o botão "OK". Assim que o arquivo for salvo na placa, ela já começará a executá-lo, piscando o LED de 1 em 1 segundo, como no GIF a seguir.
Indo Além
Quando o código é salvo na placa com um nome comum, como "blink.py", ele não é executado automaticamente ao ligar ou reiniciar a placa. Para que o programa seja iniciado automaticamente sempre que a placa for alimentada, mesmo sem estar conectada ao computador, basta salvá-lo na placa com o nome "main.py". O MicroPython executa esse arquivo automaticamente durante a inicialização.
Outro ponto importante é que as placas da família Raspberry Pi Pico possuem interfaces de comunicação como SPI, I2C e UART, podendo ser utilizadas para ler sensores e se comunicar com diversos módulos. O MicroPython também possui diversas bibliotecas que facilitam a integração com esses dispositivos. Entretanto, vale lembrar que os GPIOs das placas Raspberry Pi Pico trabalham com níveis lógicos de 3,3 V, enquanto algumas plataformas e módulos podem utilizar 5 V. Dependendo do circuito utilizado, pode ser necessário o uso de um conversor de nível lógico para compatibilizar os sinais.
Conclusão
Neste tutorial vimos como programar placas da família Raspberry Pi Pico utilizando MicroPython, configurando corretamente a Thonny IDE, gravando o firmware correspondente ao modelo da placa e executando o primeiro código com o LED interno. Embora os passos e imagens tenham utilizado a Raspberry Pi Pico original como referência, o procedimento também é compatível com Raspberry Pi Pico W, Pico 2 e Pico 2 W, considerando as diferenças indicadas ao longo do tutorial.
Solução de Problemas
Disco Removível não é Apresentado na Janela de Gravação de Firmware
Se, ao tentar gravar o firmware, nenhum disco removível correspondente à placa for apresentado, é possível que ela não tenha entrado corretamente no modo de gravação. Desconecte-a e conecte-a novamente ao computador, lembrando-se de pressionar e manter pressionado o botão "BOOTSEL" antes e durante a conexão do cabo USB. Além disso, verifique se o cabo Micro USB utilizado permite transmissão de dados e não apenas alimentação.
Thonny IDE Retorna a Mensagem "Couldn't find the device automatically"
Quando essa mensagem é retornada, significa que a placa não foi encontrada automaticamente pela IDE. Certifique-se de que o firmware MicroPython correto para o modelo da sua placa foi gravado e de que ela está sendo reconhecida pelo computador (o "Gerenciador de Dispositivos" pode ajudar). Se for necessário, altere manualmente a seleção da porta serial na seção "Interpreter" das configurações da IDE, escolhendo a porta correspondente à placa.
Execução do Código não Apresentou a Janela para Seleção do Local do Arquivo
Caso a Thonny IDE não apresente a janela de seleção do local em que o arquivo será salvo, verifique a configuração do interpretador e se a placa está corretamente conectada. O interpretador deve estar selecionado como "MicroPython (Raspberry Pi Pico)". Dependendo da versão da Thonny, a forma de selecionar o dispositivo e a aparência dessa janela podem ser diferentes das imagens deste tutorial.
