Primeiros passos na programação da Raspberry Pi Pico em MicroPython e C/C++

programacao raspberry pi pico

Após algumas semanas desde o lançamento oficial da Raspberry Pi Pico, finalmente os makers brasileiros estão recebendo as suas placas e dando os primeiros passos. Você já garantiu a sua?

Por se tratar de uma plataforma relativamente nova, estamos descobrindo o que poderemos fazer com o RP2040, novo microcontrolador desenvolvido pela própria Fundação Raspberry Pi.

Para ajudar nos primeiros passos para programação da Raspberry Pi Pico, neste artigo exibo como iniciar com MicroPython e com o SDK C/C++.

Se preferir confira o conteúdo em forma de video:

Preparando Hardware

A Raspberry Pi Pico vem sem as barras de pinos. Isso pode ser bom ou ruim, vai depender do objetivo para aplicação da placa. Como ele possui pinos do tipo castellated, é possível soldá-la diretamente em uma placa de expansão. No nosso caso, como vamos estudar o caminho mais fácil é usando um protoboard. Felizmente, a placa possui 20 pinos de cada lado, assim, apenas uma barra de pinos de 40 pinos é suficiente. 

image 83

Você vai precisar de um ferro de solda. recomendo uma estação de solda ou um ferro simples de 30W.

image 84

Pronto, com as barras soldadas, agora é só encaixar no protoboard.

20210223 210940

Incluindo um Botão de Reset

Infelizmente a placa não vem com um botão de Reset. Talvez os projetistas da placa devam ter tirado esse botão para reduzir o custo final, mas pra nós esse botão faz uma falta enorme. Sem ele, precisamos toda vez que for necessário colocar a placa no modo UF2, desconectar e conectar o cabo USB. Esse processo é cansativo e pode danificar o conector USB.

Felizmente eles deixaram o pino RUN disponível no pinout. Quando esse pino ( que tem um Pull up) é colocado para nível zero o microcontrolador é reiniciado.

Dessa forma precisamos de um push button ligado a esse pino e ao GND. Eu achei, nas minhas gavetas de componentes, uma chave táctil de 2 pinos que coube como uma luva para conectar nos pinos 30(RUN) e 28 (GDN).

Programação da Raspberry Pi Pico
Programação da Raspberry Pi Pico

Se você não tiver uma chave táctil desse tipo, pode usar uma convencional de 4 terminais no protoboard. Só vai precisar de alguns cabos jumpers:

Programação da Raspberry Pi Pico

Pronto. Agora temos um setup mínimo para dar os primeiros passos na programação da Raspberry Pi Pico.

Documentação oficial para programação da Raspberry Pi Pico

Apesar de já estar aparecendo diversos materiais da comunidade, a melhor opção para obter informações da placa Raspberry Pi Pico, microcontrolador RP2040 e guias de início é direto na fonte, ou seja, na Fundação Raspberry Pi.

A fundação fez um trabalho maravilhoso no desenvolvimento da documentação para a Raspberry Pi Pico. Os materiais são muito didáticos e bem diagramados, trazendo informações técnicas relevantes e guias detalhados.

Na página Getting Started, nós encontramos toda a documentação do RP2040, da Raspberry Pi Pico e guias de início para microPython e C/C++.

Recomendo que comece pela leitura do datasheet da Raspberry Pi Pico, onde você encontrará informações relevantes sobre o hardware, como por exemplo, o uso do botão de reset externo que mostrei acima. Nesse documento você também encontrará as características mecânicas e elétricas da placa. 

É importante ter sempre esse datasheet acessível e se possível a imagem do pinout separada, para acesso rápido ao mapa de pinos:

image 88

Você também pode acessar o datasheet do RP2040 quando for necessário obter mais informações sobre o microcontrolador. Há também um guideline de hardware muito bacana para desenvolvimento de placas compatíveis e acessórios.

Para os primeiros passos na programação da Raspberry Pi Pico, há dois guias muito bem feitos: uma para Micropython e outro para C/C++. Esses últimos serão nossas referências para iniciar na programação da Raspberry Pi Pico.

Programando a Raspberry Pi Pico com MicroPython

Para quem já trabalhou com Micropython em outras placas, o fluxo de desenvolvimento é o mesmo com a Raspberry Pi Pico. Eu já mostrei alguns artigos e palestras sobre o assunto:

Primeiros passos com MicroPython no ESP8266

Programe a BBC micro:bit com MicroPython – Hello World!

[Palestra gravada] – MicroPython: Python para microcontroladores

O projeto MicroPython já tem alguns anos de estrada e vem ganhando espaço na programação de microcontroladores. Desde 2014 já foram feitos ports para diversos microcontroladores e ultimamente para o RP2040.

Para programar a Raspberry Pi Pico com o MicroPython (assim como as outras placas compatíveis) é necessário atualizar o firmware da placa para o binário já compilado pela fundação MicroPython. Você encontra as últimas versões do binário na página do MicroPyhton para a Raspberry Pi Pico.

Feito o download do binário uf2 em seu computador, o próximo passo é colocar a placa em modo UF2. Para isso, faça o seguinte procedimento( considerando que você colocou o botão de reset):

  1. Ligue a placa a USB do seu PC
  2. Pressione e segure o botão BOOTSEL
  3. Pressione e solte o botão de RESET
  4. Solte o botão BOOTSEL
  5. Será aberta um dispositivo Mass Storage Device (como um pen drive) chamado RPI-RP2
Programação da Raspberry Pi Pico

6 – Arraste o binário do MicroPyhton para dentro de RPI-RP2

Programação da Raspberry Pi Pico

7 – Aguarde alguns  segundos e a sua placa estará pronta para ser programada em MicroPython.

Para começar com o MicroPython, tudo que você precisará é de um monitor serial para acessar o REPL. Seja lá qual for o seu Sistema Operacional e aplicativo monitor serial, basta acessar a porta serial gerada para a placa.

No meu caso, a porta gerada foi a ttyACM0 e usei o screen para acessar o REPL:

Programação da Raspberry Pi Pico

Dentro do REPL podemos já fazer um teste com o LED presente na placa. Basta digitar:

Programação da Raspberry Pi Pico

O LED irá acender instantaneamente. Essa é a magia do MicroPython, você está manipulando a aplicação em uma linha de comandos e não precisa compilar o código e depois gravar o binário da placa.

Porém, para desenvolver aplicações maiores é importante ter um bom editor de texto. No meu caso eu uso o Visual Studio Code.  Achei uma extensão bem interessante que auxilia nas tarefas de Run, Upload e gerenciamento de arquivos. A extensão chama-se PICO-GO:

Programação da Raspberry Pi Pico

Assim é possível criar programas mais elaborados e em seguida fazer o upload do script para a placa. Veja o exemplo de um Blink LED:

image 94
Programação da Raspberry Pi Pico

Se preferir, confira o processo em video:

Você também pode usar a Thonny IDE como indicado na documentação oficial: https://thonny.org/. Confira também a apresentação do Leandro Santos sobre a Raspberry Pi Pico e os primeiros passos com MicroPyhton usando o Thonny:

Agora que já tem o MicroPython na sua placa, explore os periféricos e recursos da programação Python. Siga os exemplos exibidos na documentação e crie suas próprias aplicações.

Para quem não tem o Raspberry Pi Pico e quer testar o MicroPython, recomendo que veja os artigos que publiquei e teste em alguma placa compatível.

Programando a Raspberry Pi Pico  com o SDK C/C++

Se você deseja explorar mais a fundo o RP2040, criar aplicações mais complexas e até mesmo bibliotecas, é muito importante explorar o SDK C/C++.

Para quem já programa microcontroladores ARM sabe que fazer a configuração inicial da toolchain pode ser um pouco trabalhoso. A plataforma Arduino solucionou bem essa dor inicial dos makers para configuração dos toochains para microcontroladores. Porém, isso acaba mascarando e muitas pessoas nem sabem o que tem embaixo do “capô”. 

A documentação da Raspberry Pi Pico para o SDK C/C++ está muito bem feita, deixando o processo de instalação bem tranquilo. As ferramentas usadas para compilação são ferramentas usadas no fluxo de desenvolvimento de projetos embarcados com microcontroladores ARM. Portanto, entrar nessa jornada de exploração do SDK C/C++ para programação da Raspberry Pi Pico o deixará mais capacitado para trabalhar com microcontroladores. Então, bora instalar as ferramentas.

Instalação do SDK C/C++

Na documentação oficial eles exibem primeiramente a instalação das ferramentas para as SBCs Raspberry Pi. Nesse tutorial vamos considerar a instalação para uma máquina Linux com Debian/Ubuntu. Para quem usa Windows ou Mac, o capítulo 9 da documentação exibe como instalar os pré requisitos e toolchain nesses SOs.

Antes de instalar o SDK vamos instalar as ferramentas necessárias para compilação. Vamos precisar do Cmake e do gcc para ARM:

Abra o terminal e digite:

Agora crie uma pasta para fazer o clone do SDK:

O próximo passo é fazer o clone do repositório do SDK dentro desse diretório:

Agora entre no diretório pico-sdk e atualize os submódulos:

Em seguida saia do diretório e faça o clone dos exemplos dentro de pico:

Você também pode atualizar os submódulos:

Pronto, agora exporte as variáveis de ambiente: 

Para não precisar exportar toda vez que abre o terminal, você pode incluir o export dentro de .bashrc. Para isso, abra o arquivo e inclua:

Maravilha, agora entre no repositório de exemplos e crie um diretório chamado build:

Entre nesse diretório e rode o cmake:

Agora vamos compilar o exemplo, blink. Dentro de build entre em blink e faça o make:

Será feita a compilação é gerado o arquivo blink.uf2. Esse arquivo será gravado na placa. 

Você deve colocar a placa no modo uf2, assim como fizemos para atualizar o micropython. Para isso faça o seguinte procedimento ( considero que você colocou o botão de reset externo):

  1. Ligue a placa a USB do seu PC
  2. Pressione e segure o botão BOOTSEL
  3. Pressione e solte o botão de RESET
  4. Solte o botão BOOTSEL
  5. Será aberta um dispositivo Mass Storage Device (como um pen drive) chamado RPI-RP2

Agora é só copiar o blink.uf2 para esse dispositivo. Você pode fazer manualmente ou por linha de comando (que é mais fácil):

Pronto a sua placa começará a piscar o LED.

ezgif 2 c95b85c4fa8d

Você pode alterar o exemplo blink.c, que está em pico-examples/blink:

image 95

Salve, compile novamente e copie o blink.uf2 para a placa, conforme exibido acima.

ezgif 2 721da130b313

Se você abrir a pasta exemplos no VSCODE, tudo já estará configurado para você. Você pode instalar a extensão cmake que lhe ajudará no processo de compilação:

Programação da Raspberry Pi Pico

Se preferir assista o video com o processo de instalação e uso do SDK:

Próximos passos na programação da Raspberry Pi Pico

Agora que já tem os ambientes configurados, o próximo passo é fazer aplicações com a placa. Aproveite os exemplos exibidos na documentação oficial e crie seus próprios projetos.

Se tiver qualquer dúvida, deixe seu comentário aqui. Bom divertimento!

Licença Creative Commons Esta obra está licenciada com uma Licença Creative Commons Atribuição-CompartilhaIgual 4.0 Internacional.

Receba os melhores conteúdos sobre sistemas eletrônicos embarcados, dicas, tutoriais e promoções.

Comentários:
Notificações
Notificar
guest
8 Comentários
recentes
antigos mais votados
Inline Feedbacks
View all comments
Danilo Costa
Danilo Costa
20/04/2021 21:15

Olá. Gostaria de tirar uma duvida com relação ao cmake-3.20.1
Estou na duvida de qual dos app contidos no zip devo instalar para programa-lo em c++.
consultando o tutorial não me ficou muito claro. Ah… meu MS é Windows10.
obrigado

Edmar
Edmar
18/03/2021 17:48

Olá Fábio, minha placa PI Pico não retorna depois de colado o python. Ela fecha e não volta., o que pode ser?

Daniel Quadros
Daniel Quadros
03/03/2021 21:00

Duas observações sobre a instalação do SDK C/C++:
1) No meu recém instalado Linux Mint não tinha o git… Sugestão: acrescente o git no sudo apt install
2) Eu preferi colocar um path absoluto no PICO_SDK_PATH (~/pico/pico-sdk)
Excelente guia, já estou preparado para fazer programas em C!

Fabiano Fruett
Fabiano Fruett
24/02/2021 19:25

Muito bacana. Parabéns pelo artigo! Esta placa vai ser um sucesso.

Talvez você goste:

Nenhum resultado encontrado.

Séries

Menu