Lição do Teach
STM32 com a API do Arduino (1/4): primeiro LED piscando
Os estudantes usam o STM32 CodeIDE e a API do Arduino para escrever setup() e loop(), fazer uma saída real piscar e registrar evidências de compilação e upload.
Primeira vez que ativa o Teach? Você pode realizar uma sessão de aula sem custo. Os estudantes entram com um código da turma.
Ainda não tem uma conta na LabsLand? Criar sua conta de professor
Objetivos de aprendizagem
Escrever um sketch Arduino mínimo para uma placa STM32.
Distinguir o código que prepara a placa do código que se repete.
Registrar evidências observáveis de uma saída digital real.
Visualização da atividade do estudante
Conteúdo da atividade
Apenas visualização. Em uma sessão de aula, os estudantes podem preencher respostas e entregar o trabalho ao professor.
Antes de abrir o laboratório
8 min
Um microcontrolador não “entende” sentenças: ele executa
instruções. Hoje precisamos apenas de uma saída digital, um LED e duas pausas.
Em um sketch Arduino:
- setup() é executado uma vez e prepara a placa.
- loop() se repete enquanto a placa está ligada.
- pinMode(pin, OUTPUT) declara que um pino será uma saída.
- digitalWrite(pin, HIGH) define uma saída alta; LOW desliga.
O ciclo principal terá este formato:
digitalWrite(BLUE_LED, HIGH);
delay(1000);
digitalWrite(BLUE_LED, LOW);
delay(1000);Se o LED ficar aceso por 1000 ms e apagado por 1000 ms dentro de loop(), qual
padrão deverá se repetir?
Crie e teste a piscada
24 min
Esta foto ajuda você a reconhecer a placa STM32 Nucleo WB55RG. A foto mostra
apenas a placa; no laboratório remoto, ela faz parte de uma montagem pré-cabeada,
com LEDs e outros componentes já conectados. Você não precisa ligar nenhum fio:
usará um LED que já está disponível nessa montagem remota.
Foto de referência da placa STM32 Nucleo WB55RG. No laboratório remoto, a placa
faz parte de uma montagem pré-instalada; nesta primeira sessão você a programará
como uma placa Arduino baseada em texto: escrever, compilar, fazer upload e observar.
Inicie o laboratório a partir deste bloco. Em CodeIDE, selecione a guia do editor
main.ino.Substitua seu conteúdo pelo programa inicial abaixo.
Substitua os itens TODO 1 a 4. Cada comentário informa o tipo de código necessário, sem fornecer o token. Procure
TODOemmain.ino; nenhum TODO pode permanecer antes da compilação.Salve
main.ino, escolha Compile e aguarde uma mensagem de compilação bem-sucedida. Compile verifica e traduz o código; isso ainda não altera a placa real.Somente após a compilação ser bem-sucedida, escolha Upload e aguarde o processo terminar com sucesso. Upload instala essa versão compilada na placa.
Observe o LED azul por pelo menos três ciclos completos de acender e apagar. Registre esse comportamento inicial, sem alterações, na linha 1.
Altere apenas
BLINK_MSpara um intervalo visível diferente de250 mspara2000 ms. Salve, compile, carregue, observe três ciclos e registre a linha 2.
#include <Arduino.h>
const int BLUE_LED = PB5;
const int BLINK_MS = TODO_BLINK_INTERVAL; // TODO 1: intervalo de um segundo, em ms
void setup() {
pinMode(BLUE_LED, TODO_LED_DIRECTION); // TODO 2: modo que permite que o pino acione o LED
}
void loop() {
digitalWrite(BLUE_LED, TODO_LED_ON_LEVEL); // TODO 3: nível para acender o LED
delay(BLINK_MS);
digitalWrite(BLUE_LED, TODO_LED_OFF_LEVEL); // TODO 4: nível oposto para apagar o LED
delay(BLINK_MS);
}
Preencha a tabela após testar o programa na placa. Use apenas duas linhas e
deixe as demais em branco se o TEACH mostrar mais:
- Linha 1: versão inicial concluída com intervalo 1000 ms.
- Linha 2: sua versão modificada.
- Em Padrão observado, escreva o que você viu na placa real.
- Em Ajuste ou problema, escreva nenhum se funcionou; caso contrário, indique o que você verificaria.
| Versão testada | Valor de atraso (ms) | Padrão observado | Corresponde à previsão? | Ajuste ou problema |
|---|---|---|---|---|
Descreva evidências concretas de que seu programa foi executado na placa real. Identifique a
saída, informe os dois valores de delay em ms e compare pelo menos três ciclos
iniciais com pelo menos três ciclos após a alteração.
Envie seu código
8 min
Antes de enviar, deixe o código final salvo em main.ino. Seu professor deveria
ser capaz de ver o pino que você usou, pinMode, as duas chamadas digitalWrite e
o valor delay que você testou. Procure mais uma vez por TODO; o arquivo enviado
não deve conter nenhum.
Envie seu main.ino final
Salve main.ino antes de anexá-lo. A captura deve mostrar o programa final que você compilou, enviou para a placa e deseja que o professor revise.
Bilhete de saída
10 min
Explique a diferença entre setup() e loop() usando seu programa de piscada como exemplo. Acrescente por que é útil alterar apenas uma coisa de cada vez durante a depuração.
Transforme esta visualização em uma sessão de aula
Ative o LabsLand Teach para usar esta lição com seus estudantes. Na primeira vez que ativar o Teach, você poderá realizar uma sessão de aula sem custo.
Ainda não tem uma conta na LabsLand? Criar sua conta de professor