terça-feira, março 09, 2021

A Primeira Semana com o Raspberry Pi Pico

Enquanto eu estava falando aqui no blog sobre o veterano 8051, no mundo futurístico de 2021 o assunto (para os amantes de "plaquinhas") tem sido o Raspberry Pi Pico (que eu vou chamar de PiPico). Já fiz dois vídeos sobre ele (um antes e um depois de receber a placa).

Este post deve ser o primeiro de uma longa série, à medida em que eu estudo o PiPico e faço alguns projetos com ele.

My precious!


O Que é O PiPico?

Para quem ainda não sabe, o Raspberry Pi Pico é uma placa com o microcontrolador RP2040 (projetado pela própria Raspberry Foundation). O RP2040 tem as seguintes características:

  • Dois núcleos ARM Cortex M0+, com clock de até 133MHz
  • 264K de Ram (interna, organizada em 4 bancos de 64K mais dois bancos de 4K)
  • Suporte a até 16M de Flash (externa)
  • DMA
  • 30 pinos de GPIO
  • 16 canais de PWM 16 bits
  • ADC de 12 bits, com 5 entradas (sensor de temperatura interno + quatro externas)
  • 1 UARTs, 2 SPIs, 2 I2C
  • Controlador USB 1.1 com suporte para host e device
  • 8 "PIO State Machines" (permite programar operações simples com os pinos de e/s que executam independente do processador)
É, portanto, um microcontrolador bastante poderoso. Os destaques são o "dual core" e as "PIO State Machines", existe grande curiosidade sobre projetos usando isto.

O Raspberry Pi Pico contém, além do RP2040:
  • Uma memória Flash de 2M
  • Conector USB micro B (para alimentação e comunicação)
  • Porta de depuração com três pinos
  • Um botão (BOOTSEL)
  • Regulador "buck-boost" para gerar a alimentação de 3,3V do RP2040. Normalmente a placa é alimentada pelos 5V do conector USB, mas o regulador aceita tensões de 1,8 a 5,5V.
  • Um oscilador de 12MHz, usado pelos PLLs do RP2040 para gerar o clock
  • Um LED
A conexão da placa a periféricos e etc é feita através de 40 pinos dispostos no padrão DIP:
  • 26 E/S digital genérica, 3 dos quais podem ser usados com o ADC
  • 8 pinos ligados a terra
  • 6 pinos de alimentação e controle
Fonte: Datasheet oficial da Raspberry Pi Pico

Quando Custa e Onde Comprar?

Lá fora custa a partir de US$4 nos distribuidores oficiais. Aqui, os distribuidores oficiais (FilipeFlop e Robocore) estão vendendo (hoje) a R$49,90. Como o RP2040 não está (ainda?) disponível para qualquer um, não existe previsão de clones (mas tem parceiros da Raspberry Pi Foundation oferecendo placas com o RP2040).

Roda Linux?

Não. Ou pelo menos não é o objetivo (mas não vamos subestimar os hackers). O PiPico não é um SBC (Single Board Computer), é uma placa com microcontrolador.

O que nos leva à infelicidade do nome (na minha opinião, é claro). Muita gente pensa que é um produto semelhante aos demais Raspberry Pi (que são SBCs e rodam Linux). Outra desvantagem é quando você vai procurar algo sobre o PiPico na internet: a maioria do que você vai achar é sobre as outras placas Raspberry.

Programação

Existem duas formas oficiais de programação:
  • Micro Python: um interpretador que roda dentro do PiPico. É a forma mais fácil de programar, tanto em preparação do ambiente como escrita e execução dos programas. Mas é claro que isto custa um pouco de desempenho.
  • C/C++, usando um SDK. A montagem do ambiente é um pouco trabalhosa (mas basta seguir um guia, como este aqui). Criar um projeto e programar é também um pouco trabalhoso, mas você vai ter um controle maior sobre o microcontrolador.
Um dos parceiros que vai lançar uma placa com o RP2040 é a Arduino, que já anunciou suporte na IDE Arduino. Com isso a programação C/C++ deve ficar mais simples.

O Que Deu Para Fazer na Primeira Semana?
  • Soldar as barras de pino (que não vem com a placa)
  • Soldar um botão de reset (mancada não ter na placa)
  • Instalar os ambientes de programação micro python e C/C++
  • Piscar um LED com o Micro Python:




2 comentários:

Anônimo disse...

Poderia postar o codigo do seu teste, facilitaria o aprendizado.

Daniel Quadros disse...

O "Pisca LED" foi uma brincadeira feita de forma rápida, acho que não guardei o código. Mas está nos planos um artigo sobre o uso de servo motor com o PiPico.