Introdução
Agora que conhecemos os conceitos básicos do Python, estamos prontos para trabalhar com periféricos da placa. Vamos utilizar a linguagem para interagir com dispositivos externos, iniciando com a exploração dos pinos de saída da placa.
Ao trabalhar com periféricos, podemos utilizar bibliotecas específicas que fornecem funcionalidades e interfaces para interagir com esses dispositivos. É importante estar ciente das especificações e documentação dos periféricos e das bibliotecas utilizadas, para garantir uma utilização correta e segura.
Além disso, podem ser necessárias configurações adicionais, como a instalação de drivers ou a conexão adequada dos dispositivos à placa.
Materiais necessários
Para esse projeto vamos precisar de:
- 1 x Raspberry Pi Pico
- 1 x Protoboard
- 1 x Resistor de 1KΩ
- 1 x Led
- 1 x Cabo micro USB
- Jumper
Circuito
Para começar a montagem é importante ter em mãos o mapa de pinos, para saber o nome e a função deles.
Com a placa já montada na protoboard, vamos usar o pino de número 20 da placa, cuja referência no mapa de pinos é GP15 (Figura 1). Essa informação será importante ao prosseguirmos para a parte de programação.
O LED possui dois terminais: o ânodo (perna maior) e o cátodo (perna menor). Pegue a perna mais longa do LED e insira na mesma linha que o pino 20 da placa. Em seguida, conecte a perna menor do LED ao final do resistor, que é o terminal mais próximo da faixa de tolerância, o outro terminal do resistor será conectado ao GND.
Como o resistor será ligado para GND, vamos escolher um dos pinos GND da placa para tornar uma linha completa da placa em ground. Assim, escolhemos o pino 18 e com um jumper tornamos toda a “faixa negativa” da protoboard em GND.
Para conectar o resistor ao GND, escolhemos um dos pinos GND da placa e o vamos conectá-lo a uma linha completa da protoboard, tornando essa linha a referência de ground. Nesse caso, escolhemos o pino 18 como nossa conexão GND e utilizando um jumper, vamos conectar toda a “faixa negativa” da protoboard a esse pino.
Na Figura 2 e 3, são mostrados o resultado da montagem.
Exemplo para acender e apagar LED
No capítulo 3 da documentação oficial temos acesso às bibliotecas que permitem a manipulação dos pinos da placa, como a biblioteca machine que já utilizamos anteriormente. Mas no MicroPython, como no Python, é possível importar apenas parte de uma biblioteca, ao invés de importar a biblioteca inteira.
No nosso programa para acender o LED, vamos começar com “from machine import Pin”. Isso instrui o MicroPython a importar apenas a função ‘Pin’ da biblioteca ‘machine’, em vez de importar a biblioteca inteira. Dessa forma, teremos acesso apenas à funcionalidade necessária para controlar os pinos da placa.
Após isso, vamos chamar o LED de “led_red”, e definir o pino 15 como saída, pois é nele que o LED está conectado e iremos controlá-lo. Agora estamos prontos para acionar o LED no programa, dando valor 1 para acender e valor 0 para apagar, como mostra o programa abaixo.
from machine import Pin
led_red= Pin(15,Pin.OUT)
led_red.value(1) #1 para acender, 0 para apagar
Após a execução do programa utilizando o Thonny, observamos o seguinte comportamento no projeto.
Se você não possui os componentes físicos para o projeto, é possível testar o programa utilizando o simulador Wokwi. O simulador Wokwi oferece uma interface virtual para conectar os pinos, acender o LED e testar a lógica do programa de forma virtual. Abaixo temos a simulação virtual:
Exemplo Blink LED
Nesse programa precisaremos importar uma nova biblioteca para o MicroPython: a biblioteca ‘utime’. Essa biblioteca lida com tudo relacionado ao tempo, desde medições até a inserção de atrasos em seus programas.
É importante destacar que se você já programou em Python antes, está acostumado a usar a biblioteca ‘time’. A biblioteca ‘utime’ é uma versão projetada para microcontroladores, como o Pico. Se você esquecer e usar ‘import time’, não se preocupe: o MicroPython automaticamente usará a biblioteca ‘utime’ em seu lugar.
No programa que estamos fazendo iremos usar a função sleep da biblioteca utime, que faz com que o programa faça uma pausa pelo número de segundos que você digitou. Originalmente a função está configurada em segundos, então basta escrever 1, 2, n segundos que a pausa será feita; mas é possível utilizar milissegundos por exemplo basta escrever “_ms” ao fim da chamada da função.
from machine import Pin
import utime
led_red= Pin(15,Pin.OUT)
while True:
led_red.value(1) # acende led
utime.sleep(1) # por 1 segundo
led_red.value(0) # apaga led
utime.sleep_ms(1000) # por 1 segundoNovamente, se você não possui os componentes físicos para o projeto, basta testar a simulação no Wokwi.
Outra forma mais alto nível de escrever esse código é utilizando “on” e “off” ou “high” e “low”, ambas formas de acender e apagar o LED.
from machine import Pin
import utime
led_red= Pin(15,Pin.OUT)
while True:
led_red.on() # acende led
utime.sleep_ms(500) # por meio segundo
led_red.off() # apaga led
utime.sleep_ms(2000) # por 2 segundosfrom machine import Pin
import utime
led_red= Pin(15,Pin.OUT)
while True:
led_red.high() # acende led
utime.sleep_ms(2000) # por 2 segundos
led_red.low() # apaga led
utime.sleep_ms(500) # por meio segundosUm modo mais otimizado de escrever esse código é utilizando a função toggle que alterna o estado de um pino de saída entre ligado (1) e desligado (0). Por ser da biblioteca machine não é preciso importar mais nada para utilizá-la.
from machine import Pin
import utime
led_red= Pin(15,Pin.OUT)
while True:
led_red.toggle() # acende e apaga led
utime.sleep_ms(500) # por meio segundoConclusão
Vimos que há diversas formas de manipular pinos em um microcontrolador. A escolha da abordagem dependerá das necessidades específicas do projeto e da preferência do programador.
Além disso, toda a lógica utilizada nos programas mostrados pode ser aplicada a outras portas da placa, basta modificar o número do pino correspondente. Mas, é muito importante consultar o mapa dos pinos da placa para garantir o uso correto dos números de pino e entender suas funcionalidades específicas.






