Mais recentemente, os caras da Raspberry Foundation apresentaram uma nova placa, cujo principal elemento é seu próprio SoC, o RP2040. A placa é excelente, você não vai falar nada, mas, claro, faltam alguns recursos.
Desenvolvedores terceirizados resolveram este problema: - com base no mesmo sistema em um chip, eles criam suas próprias placas com novas funções. Um deles é o Adafruit Feather RP2040. O que há de novo lá?
Pegamos o touro pelos chifres
Sim, vamos começar com as especificações técnicas imediatamente. E eles são assim:
- 21 pinos GPIO multifuncionais em 3,3V.
- 2 portas SPI.
- 2 I2C.
- 2 UART.
- 4 ADCs de 12 bits.
- 16 canais PWM controlados.
- 8 máquinas de estado de E / S programável (PIO) para oferecer suporte a periféricos personalizados.
- Possibilidade de dessoldar na placa de suporte.
- Conector WS2812 Neopixel STEMMA QT integrado.
- Carregamento de bateria integrado e suporte para baterias LiPo e Lilon, USB tipo C. hot swap
Quanto ao chip system-on-a-chip, é um chip ARM Cortex M0 + dual-core com uma frequência de núcleo de até 133 MHz, 264 KB SRAM e 8 MB de memória flash.
Adafruit Feather RP2040: - como é feito
Se você está familiarizado com a família Adafruit Feather, então, à primeira vista na nova placa, você encontrará as características de design comuns ao Feather. Pertencer a este ecossistema é outra vantagem da placa, pois é compatível com toda uma gama de sistemas deste desenvolvedor, incluindo o FeatherWings.
O tamanho da placa é 50,8x22,8 mm, que é apenas um pouco maior que o original "framboesa", cujas dimensões são 51x21 mm.
A propósito, há menos pinos GPIO aqui do que no Raspberry - 21 em vez de 40. A pinagem é típica do Feather. Em ambos os lados da placa, cada um dos pinos é registrado, portanto, não deve haver problemas de compreensão.
Os pinos incluem 4 ADCs de 12 bits, um a mais que o Pico. Mais - dois conjuntos de 12C, dois SPI e dois UARTs. 16 pinos podem ser usados para PWM (modulação por largura de pulso), LED e saída de áudio.
Há um único LED vermelho na placa para monitorar o modo de operação do sistema. A memória flash é quatro vezes maior que a do Raspberry Pi Pico - 8 MB em vez de 2 MB. Se você usar o CircuitPython, terá 7 MB de espaço no arquivo para salvar o código e as bibliotecas.
As pranchas de penas sempre têm recursos extras, e essa prancha não é exceção. À esquerda está o conector JST para conectar baterias de íon de lítio e polímero de lítio compatíveis. Quando conectado via USB, a corrente de carregamento é de 200mA.
As baterias podem ser trocadas sem desligar, no modo "quente", o que é importante para muitos projetos. Em um teste realizado pelo Hardware de Tom durante o processamento do código, a alimentação USB foi desligada, mas a placa continuou a executar o código.
Outra possibilidade é a presença do conector STEMMA QT, que serve para conectar rapidamente componentes compatíveis. Esta é uma ótima opção para facilitar o trabalho com a placa.
E então existem dois botões adicionais. BOOTSEL, que é usado para configurar a placa ou atualizar o novo software. E RESET, que, logicamente, permite reiniciar o sistema sem ter que desligar a energia.
Programação com Adafruit Feather RP2040
Como a placa faz parte do ecossistema Adafruit, é natural que os desenvolvedores sugiram o uso do CircuitPython, sua própria versão do MicroPython, para trabalhar com ela. Você pode baixar e atualizar o software sem muita dificuldade.
CircuitPython tem vantagens sobre MycroPython, incluindo suporte a USB HID. Da mesma forma, a placa é exibida como um stick USB quando conectada. Você pode usar code.py para gerar código. Mas é melhor trabalhar com editores como Visual Studio Code, Thonny ou Mu. As bibliotecas estão disponíveis para download no site da empresa e valem a pena serem utilizadas porque facilitam muito as coisas.
O código do Visual Studio foi usado para o teste. Com a ajuda dele, os testadores escreveram um script para controlar o LED embutido para monitorar o modo de operação da placa. Projetos muito mais complexos também podem ser implementados. Os mesmos testadores escreveram um script para controlar os LEDs Neopixel conectados.
Conexões STEMMA QT e I2C
O conector integrado STEMMA QT da placa também foi testado. Uma placa de sensor capacitivo MPR121 foi conectada a ele ao Feather RP2040. Em seguida, a biblioteca CircuitPython foi instalada na placa. Em seguida, os testadores escreveram um código para detectar quando o contato foi tocado. Tudo funcionou na hora e sem problemas.
Então, uma nova etapa começou - conectando o display LCD I2C HD44780 com uma resolução de 16 x 2 caracteres. E aqui os problemas já apareceram: a tela não poderia ser conectada sem resistores pull-up em ambos os pinos l2C. A placa não possui resistores próprios, portanto você precisa instalá-los adicionalmente ou usar a placa STEMMA QT com eles.
Em geral, tudo acabou bem. Houve alguns problemas, mas tudo isso pode ser resolvido. By the way, um ponto importante - agora a placa não funciona com C ou MicroPython. No entanto, o CircuitPython é executado sem problemas, portanto, recursos adicionais podem não ser necessários.
Há muitas coisas que você pode conectar na placa: o ecossistema Adafruit inclui uma tela OLED, coprocessador Wi-Fi, matriz RGB LED, joystick e um teclado LCD QWERTY.
Para que pode ser usada a placa?
Para tudo, desde pequenos projetos domésticos a sistemas IoT de maior ou menor escala, dispositivos externos, etc. O formato da placa é conveniente, o sistema pode ser facilmente soldado em uma placa transportadora.
No resíduo seco
Se você tiver a sorte de ver esta prancha à venda, certifique-se de comprá-la. É uma excelente alternativa ao "malinka" oficial, mas com várias vantagens.
A única desvantagem do tabuleiro é que ele funciona com elementos de seu próprio ecossistema. O sistema não funciona com a maioria dos acessórios Pico. Não funcionará, por exemplo, para conectá-lo ao Pico Explorer da Pimoroni com 40 pinos.
Mas há muito mais vantagens do que desvantagens. É uma placa versátil com muitos casos de uso.