Pular para o conteúdo principal

Laboratório 00

Documentação de Apoio para Atividade de Laboratório

A documentação desta atividade de laboratório é complementar a documentação principal da disciplina.

Utilize como base a descrição apresentada no Moodle da disciplina.

TarefaTemplateInícioFimConteúdo
LAB00TPL0016-Mar-202630-Mar-2026Apresentação da Disciplina; Materiais utilizados na disciplina;

LAB00 — Guia dos alunos​

Configure o GitHub CLI (apenas na primeira vez)
gh auth login
git config --global user.name "Seu Nome"
git config --global user.email "seu@email.com"

1. Clone o repositório do laboratório:

gh repo clone ELT73A-S22-2026-2/lab00-grupo-a
cd lab00-grupo-a

2. Abra no VS Code:

code . --profile "STM32"

3. Fluxo diário de trabalho:

git pull
git add .
git commit -m "Descreva suas alterações"
git push

4. Abrir o repositório no navegador:

gh repo view ELT73A-S22-2026-2/lab00-grupo-a --web
Branch + Pull Request (opcional)
git checkout -b feature/exercicio-1
git add . && git commit -m "Exercício 1" && git push -u origin feature/exercicio-1
gh pr create --title "Exercício 1" --body "Concluído"
Regras de acesso
  • Você pode fazer push apenas no repositório do seu grupo (lab00-grupo-a).
  • Não é possível acessar ou alterar os repositórios dos outros grupos.
  • Em caso de erro de permissão, verifique com o professor se você está no time correto.

Conteúdo​

Apresentação da Disicplina; Materiais utilizados na disciplina;

  • Atividades de EaD e Lab;
  • Ambiente de desenvolvimento;
  • Crie uma organização no GitHub;
  • Adicione os membros do seu grupo;
  • Promova o professor como owner;

Verifique o seu ambiente de desenvolvimento​

Git is the most widely used source-code management tool among professional developers.

  • Git is a free and open source distributed version control system designed to handle everything from small to very large projects with speed and efficiency.
winget install --id Git.Git -e --source winget

Configurações do git:

git config --list --show-origin

Configure a ferramenta git

Configure o nome de usuário para todos os repositórios locais ligados às suas transações de commit:

git config --global user.name "Your Name"

Configure o email de usuário para todos os repositórios locais ligados às suas transações de commit:

git config --global user.email "you@example.com"

É recomendado verificar se a instalação do seu Git não está realizando nenhuma transformação entre LFs e CRLFs.

git config --global core.autocrlf false

Configure o git para usar o Visual Studio Code como editor padrão para tarefas como escrever mensagens de commit ou rebases interativos

git config --global core.editor "code --wait"

Habilite a coloração automática da saída da linha de comando do Git:

git config --global color.ui auto

Configura o Git para usar main como o nome do branch padrão sempre que você inicializar um novo repositório localmente:

git config --global init.defaultBranch main

Liste as configurações aplicadas:

git config --list --show-origin

Verifique o seu ambiente de desenvolvimento!

Versão do git e configurações:

git --version
git config --list --show-origin

Versão do GitHub CLI e status de login:

gh --version
gh auth status

Versão do Visual Studio Code e extensões instaladas:

code -v
code --list-extensions --profile "STM32"

Clone o repositório do LAB00​

Escolha o Grupo e entre com o comando abaixo para criar o repositório no GitHub:

Cole o comando abaixo no prompt aberto na pasta de trabalho!

Use o comando abaixo para criar o repositório no GitHub com base no template do laboratório LAB00:

gh repo create ELT73A-S22-2026-2-A/LAB00 --private -p ELT73A-LAB-TPL/LAB00 -c

Visualize o repositório:

gh repo view ELT73A-S22-2026-2-A/LAB00 --web

Abra o repositório clonado no VS Code:

code LAB00 --profile "STM32"
Como fazer commit da atualizações

Verifique o status do repositório:

git status

Adicione os arquivos modificados:

git add .

Realize o commit das alterações:

git commit -m "Descrição breve das alterações realizadas!"

Envie para o repositório remoto (GitHub):

git push

Vizualize o log de alterações:

git log

Vizualize no GitHub:

gh repo view --web

Uso do git e GitHub​

Uso do GitHub CLI​

Create a new remote repository in a different organization

gh repo create ELT73A-S22-2026-1-X/LAB00c --public -c -l mit --add-readme -g C
gh repo create ELT73A-S22-2026-1-A/LAB00 --public -p ELT73A-LAB-TPL/LAB00

How to commit updates

cd LAB00
git status
git add .
git commit -m "My message for this commit!"
git push
git log

To implement: Create a text file (typically named LICENSE or LICENSE.txt) in the root of your source code and copy the text of the license into the file. Replace [year] with the current year and [fullname] with the name (or names) of the copyright holders.

For more information, see: http://choosealicense.com/licenses/mit/

Instruções​

Esta atividade de laboratório tem como objetivo verificar a configuração inicial do ambiente de desenvolvimento. Cada item equivale a 10% da nota.

  • Crie um conta no GitHub;
  • Crie um repositório chamado LAB00;
  • Instale e configure o git localmente;
  • Clone o repositório para a sua máquina local;
  • Instale o Visual Studio;
  • Baixe e execute o arquivo check.bat;
  • Commit e push dos arquivos gerados;
  • Envie o link do seu perfil;
  • Envie o link do repositório no GitHub;
  • Envie o link da orgnização no GitHub;

Avaliação​

  • Crie um conta no GitHub - 10%
  • Crie um repositório chamado LAB00 - 10%
  • Crie uma organização baseada no nome do grupo - 10%
  • Adicione os membros do seu grupo a organização - 10%
  • Adicione o professor como membro da organização - 10%
  • Detalhes do check.bat; TODO
  • Link do seu perfil - 5%
  • Link do repositório no GitHub - 5%
  • Link da orgnização no GitHub - 5%

Teams​

for letter in A B C D E F G H I J X; do
gh api --method POST orgs/ELT85B-N21-2026-2/teams \
-f name="Grupo-$letter" \
-f privacy="closed"
done

LAB00 — VS Code + PlatformIO (ESP32/Arduino) + Wokwi + Git/CI

Objetivo: montar o ambiente, simular no Wokwi, gravar o fluxo de trabalho no GitHub e validar a entrega com CI (Autograde).

Repo do grupo: ELT73A-S22-2026-2/lab00-grupo-<letra>
Stack: VS Code · PlatformIO · ESP32 · framework Arduino · Wokwi · GitHub Actions


0. O que este lab exercita​

CamadaFerramentaVocê pratica
Editor / projetoVS Code + PlatformIOAbrir, build, monitor
Hardware (simulado)WokwiSimular ESP32 sem placa
Hardware (opcional)ESP32 realUpload + serial
VersionamentoGit + GitHubcommit / push
Nota automáticaActions (grade.yml)CI verde na main

1. Instalação (uma vez)​

1.1 Obrigatório​

  1. VS Code
  2. Extensão PlatformIO IDE (no VS Code: Extensions → “PlatformIO IDE”)
  3. Git + GitHub CLI
  4. Conta GitHub no time do seu grupo
gh auth login
git config --global user.name "Seu Nome"
git config --global user.email "seu@email.com"

1.2 Recomendado para simulação​

  • Extensão Wokwi Simulator no VS Code, ou
  • Uso pelo site wokwi.com (com os arquivos do projeto)

1.3 Opcional (placa física)​

  • Cabo USB dados (não só carga)
  • Driver da USB-UART (CP210x / CH340, conforme a placa)
  • Placa ESP32 (ex.: DevKit)

2. Abrir o projeto do lab​

gh repo clone ELT73A-S22-2026-2/lab00-grupo-a
cd lab00-grupo-a
code .

No VS Code, aceite abrir como projeto PlatformIO (ícone de formiga na barra lateral).

Estrutura esperada (template)​

lab00-grupo-a/
├── platformio.ini ← ambiente ESP32 + Arduino
├── src/main.cpp ← setup() / loop()
├── include/
├── lib/
├── test/
├── wokwi/ ← (se o template tiver) diagrama + diagram.json
├── .github/workflows/ ← CI
└── README.md

platformio.ini (referência)​

[env:esp32dev]
platform = espressif32
board = esp32dev
framework = arduino
monitor_speed = 115200

Outras boards comuns: esp32-s3-devkitc-1, az-delivery-devkit-v4 — use a do template da disciplina.


3. PlatformIO no VS Code — comandos essenciais​

Na barra inferior / sidebar do PlatformIO:

AçãoÍcone / comando CLI
Build✓ Build · pio run
Upload→ Upload · pio run -t upload
Monitor serialPlug · pio device monitor
Cleanpio run -t clean
Testpio test

No terminal integrado​

pio run # compila
pio run -t upload # grava na ESP32
pio device monitor # Serial a 115200
pio run -t upload && pio device monitor

Sair do monitor: Ctrl+C (às vezes Ctrl+])

src/main.cpp mínimo (Arduino)​

#include <Arduino.h>

void setup() {
Serial.begin(115200);
delay(1000);
Serial.println("LAB00 - ESP32 ok");
pinMode(LED_BUILTIN, OUTPUT);
}

void loop() {
digitalWrite(LED_BUILTIN, HIGH);
delay(500);
digitalWrite(LED_BUILTIN, LOW);
delay(500);
}

Atividade: altere a mensagem do Serial.println para incluir o nome do grupo e faça build.


4. Simulação com Wokwi​

Objetivo: validar lógica sem depender da bancada.

Opção A — Extensão Wokwi no VS Code​

  1. Instale Wokwi Simulator
  2. No projeto, use/crie:
    • diagram.json — circuito (ESP32, LED, fios)
    • wokwi.toml — liga o firmware do PlatformIO ao simulador (conforme docs do template)
  3. Comando típico da extensão: Start Simulator
  4. Abra o monitor serial do Wokwi e veja o mesmo Serial.println

Opção B — Wokwi no navegador​

  1. Acesse wokwi.com
  2. Novo projeto → ESP32
  3. Cole o conteúdo de src/main.cpp
  4. Monte LED no GPIO do LED_BUILTIN (ou no GPIO que o template usar)
  5. Start e observe LED + serial

Exemplo mínimo de ideia de diagram.json (LED no GPIO 2)​

Muitos DevKit tratam LED embutido no GPIO 2 — confirme no template.

Checklist Wokwi

  • Projeto simula e imprime no serial a mensagem do grupo
  • LED pisca conforme o loop()
  • Você não precisou da placa física para esta parte

5. Placa real (opcional, se houver ESP32)​

  1. Conecte o USB
  2. Selecione a porta no PlatformIO (ou pio device list)
  3. Upload + monitor:
pio device list
pio run -t upload
pio device monitor
ProblemaO que tentar
Porta não apareceCabo, driver, outro USB
Upload failSegurar BOOT na gravação (algumas placas)
Serial sem textomonitor_speed = 115200 igual ao Serial.begin

6. Git: salvar o trabalho e entregar​

Depois de build ok (e, se possível, Wokwi ok):

git status
git add src/main.cpp README.md
git commit -m "lab00: mensagem serial do grupo + LED"
git push

README — seção mínima:

## Integrantes

- Nome 1
- Nome 2

## Como rodar

- Build: `pio run`
- Simulação: Wokwi (extensão ou site)
- Placa: `pio run -t upload` && `pio device monitor`

7. CI / Autograde (nota automática)​

O template traz .github/workflows/grade.yml, que no GitHub roda em geral:

pio run # compila o firmware no runner

Após o push:

gh run list
gh run view
ResultadoSignificado neste lab
successFirmware compila no mesmo tipo de ambiente do curso
failureErro de build — corrija, commit, push de novo

O CI não liga Wokwi nem a placa física.
Ele valida: projeto PlatformIO coerente + código que compila.


8. Roteiro da aula (ordem sugerida)​

TempoAtividade
10 minClone, abrir no VS Code, inspecionar platformio.ini e main.cpp
15 minpio run — primeiro build
20 minWokwi — serial + LED
10 min(Opcional) upload na ESP32 real
15 minREADME, commit, push
10 minConferir Actions verde

9. Critérios de entrega (LAB00)​

CritérioEvidência
Ambiente PlatformIOpio run local ok
Código identificadoSerial.printf / println com grupo
DocumentaçãoREADME com integrantes e como rodar
SimulaçãoDescrição ou print: Wokwi funcionando (pedido pelo professor)
GitHubCommits no repo do grupo
CIÚltimo workflow na main = success

10. Fluxo mental (além do Git)​

Editar main.cpp no VS Code
↓
pio run (build local)
↓
Wokwi (simular) e/ou upload na ESP32
↓
git commit + push
↓
GitHub Actions: pio run de novo (nota/CI)

11. Erros comuns (foco PlatformIO / Wokwi / ESP32)​

Build​

Error: Unknown board ID '...'

→ Ajuste board no platformio.ini para o do template.

'Serial' was not declared

→ Faltou #include <Arduino.h> ou framework não é arduino.

Serial​

  • Baud do monitor ≠ Serial.begin(115200) → lixo na tela
  • LED_BUILTIN pode não existir em todas as boards → use GPIO numérico (ex. 2)

Wokwi​

  • GPIO do LED no diagrama ≠ GPIO no código → LED “não pisca”
  • Simulador não usa o último build → rode build de novo / restarte a simulação

CI vermelho, local verde​

  • Arquivo não commitado (git status)
  • Mudança só local; falta git push

Push negado​

  • Repo certo? lab00-grupo-x, não lab00-template
  • gh auth status + membership no time

12. Comandos de bolso​

abrir → code .
build → pio run
upload → pio run -t upload
serial → pio device monitor
simular → Wokwi (extensão ou site)
salvar → git add . && git commit -m "msg" && git push
ci → gh run list

13. Branch / release (opcional neste lab)​

# branch de experimento
git checkout -b feature/blink-rapido
# ... muda delays, testa no Wokwi ...
git add . && git commit -m "lab00: blink mais rápido"
git push -u origin feature/blink-rapido
gh pr create --title "Blink rápido" --body "Testado no Wokwi"

# após merge + CI verde
git checkout main && git pull
git tag -a v0.1.0 -m "LAB00: entrega ambiente ESP32"
git push origin v0.1.0
gh release create v0.1.0 --title "LAB00 v0.1.0" --generate-notes

14. Para o professor​

Recurso do cursoComo o LAB00 valida
Template PlatformIO ESP32Clone já vem com ini + main.cpp + workflow
WokwiAtividade de simulação na aula
CIpio run no Actions
TimesPush só no lab00-grupo-x

Template mínimo: platformio.ini (esp32 + arduino), src/main.cpp (blink + Serial), grade.yml com pio run, README com instruções Wokwi.


Resumo em uma frase​

O LAB00 não é só Git: é o ciclo completo — VS Code/PlatformIO → Wokwi (e/ou placa) → commit → CI — base dos labs seguintes de ESP32.