O Raspberry Pi revolucionou, sem dúvida, a maneira como usamos computadores de placa única (SBCs), tornando plataformas de desenvolvimento poderosas, porém acessíveis, disponíveis para hobbistas, educadores e engenheiros. Alguns podem argumentar que o Arduino teve um papel tão importante quanto, mas, realisticamente, ele opera em um nível muito mais baixo, sendo construído para projetos baseados em microcontroladores em vez de computação completa.
É aí que entra o Raspberry Pi Pico 2 W. Ele se situa exatamente entre esses dois mundos — um microcontrolador com poder de fogo, conectividade sem fio integrada e periféricos suficientes para deixar um engenheiro extremamente satisfeito. Ele não vai rodar um sistema operacional Linux completo como um Pi 5, mas com processadores dual-core Cortex-M33 e RISC-V, Bluetooth 5.2, e significativamente mais RAM e armazenamento flash do que seu Arduino típico, ele oferece um nível de flexibilidade que o torna uma escolha atraente para sistemas embarcados, aplicações de IoT e além.
Neste artigo, vamos ver como começar com o Raspberry Pi Pico 2 W e passar por um exemplo que destaca as novas capacidades de Bluetooth integrado.
Para começar, vamos usar o MicroPython no Raspberry Pi Pico 2 W. Você precisará primeiro baixar o UF2 Bootloader do site do Micropython. Agora, segure o botão BOOTSEL no dispositivo Raspberry Pi Pico 2 W enquanto o conecta ao seu computador (via porta/cabo MicroUSB). Isso transformará seu dispositivo em um dispositivo de armazenamento (assim como um pen drive ou cartão MicroSD aparece no seu computador). Agora copie o arquivo UF2 para o dispositivo de “armazenamento” do seu Raspberry Pi Pico 2 W, desconecte o cabo USB e conecte-o novamente. Usando seu dispositivo de terminal serial favorito, como o PuTTY ou TeraTerm, conecte-se à porta COM que aparece para o seu dispositivo, e você deverá ser recebido com o interpretador de shell do MicroPython:
Em Introdução ao MicroPython e ao Raspberry Pi Pico, utilizamos o Thonny IDE como editor para escrever código e carregar o dispositivo Raspberry Pi Pico 2 W. Com a introdução de IA embutida em editores de código e extensões aos montes, decidi padronizar meu ambiente com o VSCode em vez do Thonny. A coisa mais importante a fazer primeiro (além de instalar o VSCode) é instalar a extensão oficial do Raspberry Pi Pico (publicada pela Raspberry Pi).
Uma vez que a extensão tenha sido instalada, você verá um pequeno ícone de placa Raspberry Pi Pico no lado esquerdo da sua janela do VSCode (justamente onde as demais extensões ficam). Clique nisso e depois navegue até “Novo Projeto MicroPython” em “Geral”. Dê um nome e um caminho para o seu projeto e clique em “Criar”.
Um novo editor será aberto com apenas alguns arquivos e um shell MicroPython. Um desses arquivos é um exemplo de arquivo Python para piscar um LED. Abra esse blink.py. Neste ponto, você vai querer garantir que seu dispositivo Raspberry Pi Pico 2 W esteja conectado. Na parte inferior do seu editor VSCode, você verá um pequeno botão de play.
Isso executará blink.py diretamente no dispositivo (carregando-o no dispositivo primeiro). Neste ponto, você deve ver uma instrução de impressão e seu LED piscando:
O botão Executar se transforma em um botão Parar, que interrompe a execução do código. Uma vez que você confirme que o LED pisca, estamos agora prontos para passar para um exemplo mais sofisticado.
Agora que confirmamos que nosso Raspberry Pi Pico 2 W está funcionando com MicroPython, vamos explorar uma de suas características mais empolgantes — Bluetooth 5.2. Este exemplo transforma seu dispositivo Pico em um scanner de proximidade Bluetooth capaz de detectar dispositivos bluetooth próximos (como smartphones) e determinar a força do sinal deles (RSSI). O script, bluetooth_scan.py, opera em dois modos: Modo de Descoberta, que escaneia todos os dispositivos próximos e imprime seus endereços MAC, e Modo de Rastreamento, onde o Pico monitora continuamente um dispositivo específico, acendendo um LED quando está em proximidade. Este modo de rastreamento é útil para detectar dispositivos Bluetooth específicos próximos em tempo real, embora alguns, como dispositivos da Apple, randomizem seus endereços MAC por razões de privacidade.
Para alcançar isso, usamos a API Bluetooth do MicroPython, especificamente bluetooth.BLE(), para inicializar a interface Bluetooth do Pico. O script fica ouvindo os pacotes de propaganda Bluetooth Low Energy (BLE) usando gap_scan(), que escaneia repetidamente por uma duração determinada e processa os resultados por meio de um manipulador de eventos (bt_irq). Essa abordagem baseada em eventos permite que o Pico reaja instantaneamente quando um novo dispositivo é detectado (pense em “interrupções” em abordagens mais diretas ao hardware). Os dispositivos são filtrados com base em seu RSSI (Indicador de Força do Sinal Recebido), que ajuda a estimar a proximidade. Dispositivos mais próximos geralmente têm sinais mais fortes (valores de RSSI mais altos, o que se traduz em valores de db menos negativos), e dispositivos mais distantes têm sinais mais fracos (ou seja, um valor de db mais negativo). O Modo de Rastreamento compara os endereços MAC detectados contra um alvo pré-definido e aciona o LED embutido quando uma correspondência é encontrada. Os parâmetros de varredura são cuidadosamente selecionados para equilibrar a capacidade de resposta em tempo real com a eficiência da CPU, evitando que o Pico fique sobrecarregado enquanto monitora continuamente os sinais Bluetooth.
Para executar o script, basta abrir bluetooth_scan.py e clicar no botão Executar (como vimos no exemplo do piscar acima) para recuperar os endereços MAC dos dispositivos próximos.
Em seguida, atualize o script com um endereço MAC específico e mude para o Modo de Rastreamento para detectar quando esse dispositivo se move dentro do alcance. Isso pode ser encontrado na função principal no final do script:
# Para rastrear um dispositivo específico (substitua pelo endereço MAC descoberto)
# scanner = BLEScanner(mode="track", target_mac="aa:bb:cc:dd:ee:ff")
Os parâmetros de varredura foram otimizados para garantir uma detecção responsiva sem bloquear outras operações, tornando isso uma ótima introdução à varredura Bluetooth e ao manuseio de eventos no Raspberry Pi Pico 2 W.
O Raspberry Pi Pico 2 W é uma adição empolgante ao mundo do desenvolvimento embarcado, alcançando um equilíbrio perfeito entre a flexibilidade de um microcontrolador e o poder da conectividade sem fio integrada. Com MicroPython, vimos como é fácil começar, desde piscar um LED até aproveitar o módulo Bluetooth 5.2 embarcado para detecção de proximidade em tempo real. O scanner de proximidade Bluetooth que implementamos introduz conceitos fundamentais como varredura BLE, programação orientada a eventos e análise de intensidade de sinal, demonstrando o quanto pode ser realizado com um código tão mínimo.
Embora este tenha sido apenas um exemplo básico, o Pico 2 W abre um novo leque de possibilidades para aplicações IoT, rastreamento em tempo real e automação sem fio. Seja você um hobbyista experimentando com periféricos BLE ou um engenheiro desenvolvendo sistemas embarcados de próxima geração, este pequeno dispositivo prova ser uma potência em um pacote minúsculo. E isso é apenas o começo—ainda há Wi-Fi, otimizações de baixo consumo e interações BLE mais avançadas para explorar. O Raspberry Pi Pico 2 W é pequeno, mas tem um impacto significativo.
Para visualizar o repositório contendo todo o código para começar, visite https://gitlab.com/embedded-designs/micropython-bluetooth-example.