Programando a Raspberry Pi Pico no Visual Studio Code

Programando a Raspberry Pi Pico no Visual Studio Code Deixe um comentário

O mais recente lançamento da Fundação Raspberry Pi deixou toda a comunidade maker entusiasmada. A Raspberry Pi Pico é uma placa de desenvolvimento que conta com o microcontrolador RP2040 – o qual possui dois núcleos ARM Cortex-M0+ com um clock de até 133 MHz – memória RAM de 256 KB e memória Flash de 2 MB. O mais legal é que ela aceita duas linguagens de programação: Python e C/C++!

Programando a Raspberry Pi Pico no Visual Studio Code
Fonte: TechRepublic

O post de hoje vai te ajudar a dar os primeiros passos com C/C++ na Raspberry Pi Pico utilizando o Visual Studio Code.

O que é o Visual Studio Code?

O VS Code é um editor de código multiplataforma criado pela Microsoft, que está disponível tanto para Windows quanto para Mac OS e Linux. Com o Visual Studio Code você pode construir programas utilizando diferentes linguagens de programação (Python, Ruby, C/C++) e diferentes placas de desenvolvimento, incluindo a Raspberry Pi Pico.

Além de ser um software totalmente gratuito, o VS Code também é open-source. Seu código está disponibilizado no GitHub, permitindo assim que a comunidade técnica possa contribuir com seu desenvolvimento, facilitando a criação de extensões e novas funcionalidades.

Materiais Necessários

Iremos montar um circuito para piscar um LED para assim testar um código C++ na nossa Raspberry Pi Pico. Para isso vamos precisar dos seguintes componentes:

Instalando ferramentas para a Raspberry Pi Pico

Antes de criar seu primeiro programa em C/C++ para a Raspberry Pi Pico, é necessário preparar seu computador. O passo a passo abaixo mostra o procedimento em computadores com sistema operacional Windows.

Primeiramente, faça o download de todos os programas listados abaixo:

Durante a instalação dos programas é importante estar atento às opções do instalador. Certifique-se de que os seguintes itens abaixo sejam selecionados.

Instalação Visual Studio Code

Garanta que a opção “Adicione em PATH (disponível após reiniciar) esteja selecionada”.

Programando a Raspberry Pi Pico no Visual Studio Code

Instalação Python 3

Marque a caixa “Install launcher for all users (recommended)”. Também marque a caixa “Add Python 3.9 to PATH”.

Depois clique em “Customize installation” e selecione “Install for all users”. Por fim clique em “Install”.

Programando a Raspberry Pi Pico no Visual Studio Code

Instalação Compilador ARM GCC

No final da instalação, marque todas as opções.

Programando a Raspberry Pi Pico no Visual Studio Code

Instalação CMake

Durante a instalação, selecione “Add CMake to the system PATH for all users”.

Programando a Raspberry Pi Pico no Visual Studio Code

Instalação Ferramentas de compilação para Visual Studio

Durante a instalação, selecione apenas “Ferramentas de build do C++”.

Programando a Raspberry Pi Pico no Visual Studio Code

Instalação pico-sdk

Descompacte o arquivo em um diretório à sua escolha.

Programando a Raspberry Pi Pico no Visual Studio Code

Configurações do computador para a Raspberry Pi Pico

Assim que o processo de instalação for concluído, precisamos verificar se as variáveis ​​de ambiente do Windows estão definidas corretamente. Para isso, clique na tecla WIN e digite “editar as variáveis ​​de ambiente do sistema”. Clique em “Variáveis de Ambiente…”.

Programando a Raspberry Pi Pico no Visual Studio Code

Em variáveis de usuário, verifique as seguintes informações:

VariávelValor
PathC:\Users\Rosana Guse\AppData\Local\Programs\Microsoft VS Code\bin
PICO_SDK_PATHC:\Users\Rosana Guse\Downloads\pico-sdk

Programando a Raspberry Pi Pico no Visual Studio Code

Em variáveis de sistema, verifique as seguintes informações:

VariávelValor
PathC:\Program Files\Python39\Scripts\
PathC:\Program Files\Python39\
PathC:\Program Files (x86)\GNU Arm Embedded Toolchain\10 2020-q4-major\bin
PathC:\Users\Rosana Guse\AppData\Roaming\Microsoft\Windows\Start Menu\Programs\Visual Studio Code
PathC:\Program Files\CMake\bin

Programando a Raspberry Pi Pico no Visual Studio Code

Configurações do VS Code para a Raspberry Pi Pico

Execute como administrador o “Developer Command Prompt for VS 2019”. Quando o prompt abrir, dê o comando “code”.

Programando a Raspberry Pi Pico no Visual Studio Code

Programando a Raspberry Pi Pico no Visual Studio Code

Em “Extensions” procure procure pela extensão C/C++ e clique em “Install”. Depois procure por CMake Tools e proceda com a instalação.

Programando a Raspberry Pi Pico no Visual Studio Code

Agora em CMake Tools, clique em Settings > Extension Settings.

Programando a Raspberry Pi Pico no Visual Studio Code

Vá até “Cmake Path” e confira se o nome é cmake.

Programando a Raspberry Pi Pico no Visual Studio Code

Depois vá até “Configure Environment”, clique em “Add Item”, em “Item” digite PICO_SDK_PATH e em “Value” digite o caminho da pasta pico-sdk.

Programando a Raspberry Pi Pico no Visual Studio Code

Em “Generator” digite NMake Makefiles.

Programando a Raspberry Pi Pico no Visual Studio Code

Pronto! O VS Code está configurado. Antes de começarmos a construir nosso primeiro programa, feche o Visual Studio e abra novamente.

Construindo o código Blink

Crie uma pasta em seu computador com o nome do projeto. No VS Code vá em File > Open Folder e selecione a pasta recém criada.

Cada projeto para a Raspberry Pi Pico precisa de três arquivos para compilar.

1. O arquivo com o programa

Vamos dar o nome para esse arquivo de blink.c. Preste atenção ao nome, pois você precisará usá-lo em outros arquivos para compilá-lo corretamente. Toda a sua programação está neste arquivo.

#include "pico/stdlib.h"
 
int main() {
const uint LED_PIN = 16;
gpio_init(LED_PIN);
gpio_set_dir(LED_PIN, GPIO_OUT);
while (true) {
gpio_put(LED_PIN, 1);
sleep_ms(250);
gpio_put(LED_PIN, 0);
sleep_ms(250);
}
}

2. O arquivo com instruções de construção Cmake

Vamos dar o nome para esse arquivo de pico_sdk_import.cmake. Ele é um conjunto de instruções para CMake que contém informações sobre onde o SDK está e como compilar o código para você. Não há necessidade de fazer nenhuma modificação.

# This is a copy of /external/pico_sdk_import.cmake
# This can be dropped into an external project to help locate this SDK
# It should be include()ed prior to project()

# todo document

if (DEFINED ENV{PICO_SDK_PATH} AND (NOT PICO_SDK_PATH))
set(PICO_SDK_PATH $ENV{PICO_SDK_PATH})
message("Using PICO_SDK_PATH from environment ('${PICO_SDK_PATH}')")
endif ()

if (DEFINED ENV{PICO_SDK_FETCH_FROM_GIT} AND (NOT PICO_SDK_FETCH_FROM_GIT))
set(PICO_SDK_FETCH_FROM_GIT $ENV{PICO_SDK_FETCH_FROM_GIT})
message("Using PICO_SDK_FETCH_FROM_GIT from environment ('${PICO_SDK_FETCH_FROM_GIT}')")
endif ()

if (DEFINED ENV{PICO_SDK_FETCH_FROM_GIT_PATH} AND (NOT PICO_SDK_FETCH_FROM_GIT_PATH))
set(PICO_SDK_FETCH_FROM_GIT_PATH $ENV{PICO_SDK_FETCH_FROM_GIT_PATH})
message("Using PICO_SDK_FETCH_FROM_GIT_PATH from environment ('${PICO_SDK_FETCH_FROM_GIT_PATH}')")
endif ()

set(PICO_SDK_PATH "${PICO_SDK_PATH}" CACHE PATH "Path to the PICO SDK")
set(PICO_SDK_FETCH_FROM_GIT "${PICO_SDK_FETCH_FROM_GIT}" CACHE BOOL "Set to ON to fetch copy of PICO SDK from git if not otherwise locatable")
set(PICO_SDK_FETCH_FROM_GIT_PATH "${PICO_SDK_FETCH_FROM_GIT_PATH}" CACHE FILEPATH "location to download SDK")

if (NOT PICO_SDK_PATH)
if (PICO_SDK_FETCH_FROM_GIT)
include(FetchContent)
set(FETCHCONTENT_BASE_DIR_SAVE ${FETCHCONTENT_BASE_DIR})
if (PICO_SDK_FETCH_FROM_GIT_PATH)
get_filename_component(FETCHCONTENT_BASE_DIR "${PICO_SDK_FETCH_FROM_GIT_PATH}" REALPATH BASE_DIR "${CMAKE_SOURCE_DIR}")
endif ()
FetchContent_Declare(
pico_sdk
GIT_REPOSITORY https://github.com/raspberrypi/pico-sdk
GIT_TAG master
)
if (NOT pico_sdk)
message("Downloading PICO SDK")
FetchContent_Populate(pico_sdk)
set(PICO_SDK_PATH ${pico_sdk_SOURCE_DIR})
endif ()
set(FETCHCONTENT_BASE_DIR ${FETCHCONTENT_BASE_DIR_SAVE})
else ()
message(FATAL_ERROR
"PICO SDK location was not specified. Please set PICO_SDK_PATH or set PICO_SDK_FETCH_FROM_GIT to on to fetch from git."
)
endif ()
endif ()

get_filename_component(PICO_SDK_PATH "${PICO_SDK_PATH}" REALPATH BASE_DIR "${CMAKE_BINARY_DIR}")
if (NOT EXISTS ${PICO_SDK_PATH})
message(FATAL_ERROR "Directory '${PICO_SDK_PATH}' not found")
endif ()

set(PICO_SDK_INIT_CMAKE_FILE ${PICO_SDK_PATH}/pico_sdk_init.cmake)
if (NOT EXISTS ${PICO_SDK_INIT_CMAKE_FILE})
message(FATAL_ERROR "Directory '${PICO_SDK_PATH}' does not appear to contain the PICO SDK")
endif ()

set(PICO_SDK_PATH ${PICO_SDK_PATH} CACHE PATH "Path to the PICO SDK" FORCE)
include(${PICO_SDK_INIT_CMAKE_FILE})

3. Lista de arquivos para compilação

Vamos dar o nome para esse arquivo de CMakeList.txt. Você precisa modificar esse arquivo de acordo com seu projeto. O CMake precisa saber quais arquivos compilar e essa lista diz isso, portanto, altere as linhas com o nome do arquivo que contém o programa.

cmake_minimum_required(VERSION 3.12)
include(pico_sdk_import.cmake)

set(CMAKE_C_STANDARD 11)
set(CMAKE_CXX_STANDARD 17)

pico_sdk_init()
project(blink)
add_executable(blink blink.c)

# Pull in our pico_stdlib which pulls in commonly used features
target_link_libraries(blink pico_stdlib)
 
# create map/bin/hex file etc.
pico_add_extra_outputs(blink)

Por fim, vá na parte inferior da janela do VS Code e selecione o compilador GCC para arm-none-eabi.

Programando a Raspberry Pi Pico no Visual Studio Code

Pronto! Agora você só precisa compilar o programa.

Circuito Pisca LED para Raspberry Pi Pico

Como visto no código acima, iremos conectar um LED na GPIO 16 da Raspberry Pi Pico. O circuito que deve ser montado para testar o código é o abaixo:

Programando a Raspberry Pi Pico no Visual Studio Code

Carregando o arquivo UF2 para a Raspberry Pi Pico

Depois de compilado, um arquivo UF2 estará disponível. É esse arquivo que você deverá carregar para sua Raspberry Pi Pico.

Segure o botão BOOTSEL na sua Pico, conecte-a ao seu computador e depois solte o botão BOOTSEL. Uma unidade de armazenamento chamada de RPI-RP2 será criada. Arraste o arquivo UF2 para a unidade de armazenamento recém criada.

Programando a Raspberry Pi Pico no Visual Studio Code

Sua Raspberry Pi Pico irá reiniciar e o programa começará a rodar.

Programando a Raspberry Pi Pico no Visual Studio Code

Conclusão

Como você pode ver acima, preparar o computador e o Visual Studio Code para programar a Raspberry Pi Pico na linguagem C++ não é uma tarefa tão simples. No entanto, uma vez que o processo é concluído, é relativamente simples criar um programa nessa linguagem e carregá-lo para a placa.

E então, gostou de aprender como programar a Raspberry Pi Pico em C++ usando o VSCode? Conte pra gente o que achou!

Deixe uma resposta

O seu endereço de e-mail não será publicado. Campos obrigatórios são marcados com *