• Labs core
  • GPIO

GPIO - Preparatório

Lab 1 - GPIO - Preparatório
Deadline: 21/2 ou 22/2 (Antes da próxima aula)
Atividade: classroom
💰 30% nota de lab

Leitura prévia

Para realizar este laboratório você deve estudar antes.

Sobre os labs preparatórios

Info

Realizar dentro do Linux com o seu ambiente já pre configurado.

  • Se você ainda não configurou, siga os passos em Útil/infra

Acesse a atividade pelo link do classroom no topo da página.

Desenvolvendo os exercícios

A disciplina utilizará atividades preparatórias que ajudarão vocês no desenvolvimento dos laboratórios. Essas atividades devem ser realizadas no VSCode e, geralmente, não necessitam do uso da placa de desenvolvimento. O objetivo é desacoplar um pouco os elementos; com o simulador, é possível praticar apenas o código e alguns aspectos da conexão de hardware, sem a complexidade de montar os componentes eletrônicos.

Testando exercícios

Esta entrega possui verificação automática. Para validar a entrega, envie o código para o seu repositório no GitHub e verifique o resultado do Actions. O sistema verifica:

  • Se o código compila.
  • Teste de unidade1 em cada código.
  • Análise da qualidade de código:
    • cppcheck (erros básicos de linguagem C)
    • embedded-check (erros conceituais de sistemas embarcados)

Vocês devem obter o seguinte resultado no actions:

Atividades

Agora execute os exercícios, lembre que você pode consultar os snippets de código dentro de RP2040/GPIO/snippets e enviar o código para o github para validação.

exe1

  • Arquivo: exe1/main.c
  • Teste: Verifica se os dois LEDs mudam de estado.

Código

Faça os dois LEDs do exe1 piscarem ao mesmo tempo! O código fornecido já funciona com o LED vermelho, agora você deve fazer o mesmo com o amarelo. Lembre de manter o vermelho piscando junto!

Funcionalidade esperada

exe2

  • Arquivo: exe2/main.c
  • Teste: Aperta um dos botões e verifica a mensagem no terminal.

Código

  1. botão 1 for apertado imprima na tela: Botao 1
  2. botão 2 for apertado imprima na tela: Botao 2

Lembre de configurar o botão 2 como entrada!

// Usar o printf a seguir:
printf("Botao 1\n");
printf("Botao 2\n");

Funcionalidade esperada

exe3

  • Arquivo: exe3/main.c
  • Teste: Aperta um dos botões e verifica se o LED correspondente muda de valor.

Código

Toda vez que o botão for apertado inverta o estado do LED de cor relativa.

Exemplo: Ambos os leds estão apagados, quando o botão vermelho for apertado, acenda o LED Vermelho. Se o Botão for apertado e solto novamente, apague o LED Vermelho. Faça o mesmo para o Verde!.

Lembre de configurar todos os pinos como Entrada ou Saída.

Funcionalidade esperada

exe4

  • Arquivo: exe4/main.c
  • Teste: Verifica se os LEDs acendem na ordem certa.

Código

Toda vez que o Btn Vermelho for apertado, faca os LEDs acenderem na ordem: Vermelho, Roxo, Azul e Verde. Só acenda um LED por vez!.

Utilize um delay de 300ms entre os estados.

Funcionalidade esperada


  1. Utilizamos o wokiwi-ci para verificar se o seu código faz o que deveria fazer.