[Site Oficial]
[Objetivos]
[Período Letivo e Local]
[Ementa]
[Conteúdo Programático]
[Calendário de Atividades]
[Auxiliares Didáticos]
[Critério de Avaliação]
[Referências Técnicas]
[Moodle]
Objetivos
A EA801 é uma disciplina prática de P&D em sistemas embarcados que integra, de forma unificada, hardware e software ao longo de todo o ciclo de desenvolvimento. Utilizando a plataforma BitDogLab, a disciplina conduz os alunos da prototipagem rápida em Python no Raspberry Pi Pico ao desenvolvimento profissional em C/C++, com uso de HAL e RTOS no STM32F411 (Blackpill).
A metodologia reflete o ambiente da indústria moderna, integrando projeto de PCB (KiCad), versionamento de código (Git/EGit) e documentação técnica automatizada (Doxygen), com ênfase em Clean Code e boas práticas de engenharia. As atividades serão centralizadas no GitLab da Unicamp. Para acessá-lo, ative sua conta em https://gitlab.unicamp.br/ utilizando suas credenciais da DAC (usuário sem o sufixo @unicamp.br).
Projetos-exemplo em Python (para Raspberry Pi Pico) estão disponíveis no GitHub, enquanto os projetos em C (para BlackPill), programados em nível de registradores por meio da interface CMSIS (Cortex Microcontroller Software Interface Standard), encontram-se no repositório GitLab da Unicamp. Esses exemplos, baseados em acesso direto a registradores, permitem rápida familiarização com a arquitetura do BlackPill e com seus principais periféricos (GPIO, clock, interrupções, RTC, ADC, USART, I2C e SPI).
Período Letivo e Local
- Período Letivo: 23/02/2026 a 30/06/2026
- Local: LE-14
O acesso ao LE-14 e ao LE-30 é permitido para os alunos fora dos horários de
aula, desde que os laboratórios estejam disponíveis, mediante identificação na entrada do Bloco E.
Antes de sair dos laboratórios, favor desliguem TODOS os
equipamentos sobre as bancadas e arrumem a bancada utilizada. Se forem
os últimos, fechem as janelas, desliguem o ar condicionado, e apaguem
as luzes.
Seguem-se algumas boas
práticas para uso compartilhado das bancadas:
- Trabalhar apenas na sua sub-pasta (workspace), localizada em
C:\Users\ea801\RA1-RA2, onde RA1 e RA2 correspondem aos registros acadêmicos da sua dupla.
Não deixar os arquivos espalhados em outras pastas, especialmente na Área de Trabalho.
- Ao abrir um ambiente de desenvolvimento integrado, certificar se está
entrando mesmo na sua área de trabalho (workspace).
- Fazer sempre uma cópia do conteúdo
importante da sua sub-pasta para evitar perda de dados.
Haverá manuntenção periódica das máquinas que será avisada
previamente. Arquivos podem ser
removidos.
Ajude-nos manter as bancadas operantes em 24
horas. Quando identificar algum problema nas bancadas, avise os monitores.
Metodologia de projeto. Especificação, desenvolvimento e implementação de projetos de sistemas embarcados.
Protocolos de comunicação. Revisão de circuitos eletrônicos para interface com atuadores e sensores.
Concorrência entre tarefas. Expansão de memoria. Princípios de SO em tempo real.
Conteúdo Programático
- Metodologia de projetos em sistemas embarcados: abordagem de co-projeto hardware/software; definição e análise de requisitos; seleção tecnológica e análise de trade-offs;
técnicas de desenvolvimento e metodologias aplicadas; ferramentas de
versionamento e integração contínua; técnicas de testes e validação;
aspectos de segurança, eficiência energética e confiabilidade;
documentação.
Apresentação de plataformas de desenvolvimento disponíveis e
avaliação de recursos de interação/comunicação através de um projeto
proposto pelos alunos. A implementação do firmware será realizada
em MicroPython (ou Python), priorizando a prototipagem rápida.
-
Circuitos de interface com sensores e atuadores: fundamentos de
conexão entre microcontroladores e dispositivos externos; alocação de
pinos; condicionamento de sinais analógicos e digitais; acionamento e
controle de cargas de baixa e alta potência; proteção de entradas e
saídas; isolamento elétrico; uso de drivers de potência; compatibilidade de níveis lógicos; separação e aterramento de domínios analógico e digital.
Desenvolvimento e integração de circuitos de interface
sensor–microcontrolador–atuador em projetos práticos concebidos pelos
alunos. A implementação foca na utilização da camada de abstração de hardware (HAL) para controle de periféricos. Montagem em protoboard.
-
Introdução a Sistemas Operacionais de Tempo Real (RTOS):
definição, características e requisitos de sistemas operacionais em
tempo real; comparação entre RTOS e sistemas operacionais convencionais;
escalonamento de tarefas, prioridades, temporização e deadlines;
gerenciamento de tarefas, semáforos, filas, mutexes e timers; criação e sincronização de múltiplas tarefas.
Desenvolvimento e integração de circuitos de interface
sensor–microcontrolador–atuador em projetos práticos concebidos pelos
alunos, com foco na implementação de firmware baseado em sistemas operacionais de tempo real (RTOS). Montagem em protoboard.
-
Projeto de circuitos de interface em placas de circuito impresso (PCB): princípios de layout
e roteamento; planos de terra e alimentação; proteção de sinais;
integração de sensores e atuadores; dissipação térmica; dimensionamento
de trilhas e pads; conectores e testabilidade; software de design de PCB (como KiCad); geração de arquivos para fabricação.
Desenvolvimento e integração de circuitos de interface
sensor–microcontrolador–atuador em projetos práticos concebidos pelos
alunos. A implementação do firmware pode ser realizada com o uso de abstração HAL para acesso ao hardware ou a integração de um RTOS para gerenciamento de tarefas em tempo real. Montagem em placas de circuitos impressos.
Dinâmica do Curso
A dinâmica deste curso é focada na proatividade e no pensamento
crítico dos alunos. Espera-se que os alunos conduzam os projetos
propostos de forma autônoma, identificando um problema interessante,
buscando as alternativas de soluções, tomando as rédeas das decisões e
da execução. Os professores atuarão como consultores, intervindo
pontualmente para auxiliar em problemas específicos, guiando vocês no
aprimoramento de suas soluções.
Suporte extra-classe: As atividades práticas contam com suporte de um PAD e um PED C em plantões de dúvidas.
Entrega: O prazo para entrega do projeto é de 48 horas antes da próxima aula.
Calendário de Atividades
| Tópico |
Aula |
Segundas (14:00 - 16:00h) |
Segundas (16:00 - 18:00h) |
Roteiro |
| Firmware em MicroPython e BDL+Raspberry Pi Pico
|
0 |
23/02 (K) |
23/02 (L) |
roteiro 1
|
| 1 |
02/03 (K) |
| 09/03 (L) |
| Firmware em HAL, Hardware em protoboard e BDL+BlackPill
|
2 |
16/03 (K) |
roteiro 2
|
| 23/03 (L) |
| 3 |
30/03 (K) |
| 06/04 (L) |
| Firmware em RTOS e hardware do segundo projeto
|
4 |
13/04 (K) |
roteiro 3
|
| (20/04)27/04 (L) |
Firmware em C (com ou sem RTOS), Hardware em PCB e BDL + BlackPill
Prazo de submissão dos arquivos de fabricação no SATE: 17/06
|
5 |
15/06 (K) |
| 11/05 (L) |
| 6 |
29/06 (K) |
roteiro 4
|
| 22/06 (L) |
| 7 |
13/07 (K) |
| 06/07 (L) |
| Projetos Finais |
Auxiliar Didático
Neste semestre, contaremos com o suporte de um PAD e um PED C. Os horários das
monitorias presenciais estão listados abaixo. Caso tenha alguma dúvida
fora desses horários, você também pode entrar em contato pelo grupo de
Whatsapp.
- Local: LE-14 ou LE-30
- PAD: Chao Ho Chih
- PED C: Pedro Henrique Guerra
| |
Segunda |
Terça |
Quarta |
Quinta |
Sexta |
| 8:00 - 9:00 |
|
|
|
|
EE534 |
| 9:00 - 10:00 |
|
|
|
|
EE534 |
| 10:00 - 11:00 |
|
|
|
IE323A |
EE534 |
| 11:00 - 12:00 |
|
|
|
IE323A |
EE534 |
| 12:00 - 12:30 |
|
|
EE801 (Chao) |
|
|
| 12:30 - 13:00 |
|
EE801 (Chao) |
EE801 (Chao) |
|
|
| 13:00 - 14:00 |
|
EE801 (Chao) |
EE801 (Chao) |
|
|
| 14:00 - 14:30 |
EA801 (turmas K/L) |
|
EE801 (Chao) |
EE641 |
|
| 14:30 - 15:00 |
EA801 (turmas K/L) |
|
|
EE641 |
|
| 15:00 - 16:00 |
EA801 (turmas K/L) |
|
|
|
|
| 16:00 - 17:00 |
EA801 (turmas K/L) |
|
|
EE641 |
|
| 17:00 - 17:30 |
EA801 (turmas K/L) |
|
|
EE641 |
|
| 17:30 - 18:00 |
EA801 (turmas K/L) |
|
EE801 (Chao) |
EE641 |
|
| 18:00 - 18:30 |
|
|
EE801 (Chao) |
|
|
| 18:30 - 19:00 |
|
|
|
|
|
| 19:00 - 20:00 |
|
EE641 |
EA801 |
|
EE534 |
| 20:00 - 21:00 |
|
EE641 |
EA801 |
|
EE534 |
| 21:00 - 22:00 |
|
EE641 |
EA801 |
|
EE534 |
| 22:00 - 23:00 |
|
EE641 |
EA801 |
|
EE534 |
Critério de Avaliação
A média final é calculada da seguinte forma
M = 2P1 + 2.5P2 + 2.5P3 + 3P4,
onde Pn representa a nota do projeto n, n = {1,2,3,4}. Os projetos são atividades em grupos de até 2 pessoas.
Para cada um dos quatro projetos, Pn, a nota do projeto inclui um
exercício complementar com peso 1, a proposta de projeto com peso 1, o
relatório do projeto com peso 6, e a apresentação do projeto com peso 2.
São fornecidos modelos (templates) como sugestão para a elaboração da proposta (arquivo em PDF a ser submetido via Moodle) e do relatório (arquivo README.md a ser publicado no GitLab da Unicamp), cabendo aos alunos decidirem pelo seu uso; o requisito fundamental é que todas as informações listadas nos guias sejam contempladas.
Todas as atividades devem ser entregues através do Moodle.
É imprescindível a entrega dos relatórios dos projetos no prazo e a sua apresentação nas aulas previstas.
Serão aprovados os alunos que satisfizerem as duas condições:
-
M > = 5.0 .
- as notas finais dos questionários superiores a 3.0.
- as notas finais dos projetos superiores a 3.0.
A média final, Mfinal, destes alunos é igual a M.
Exame Final
Não haverá o exame final.
Referências Técnicas
- Roteiros das aulas
- Metodologia de Projetos de Sistemas Embarcados
- Projeto de Sistemas Embarcados, Carlos Eduardo Cugnasca,
- A PBL-Based Methodology for IoT Teaching, L.C.B.C.Ferreira et al.
- Microcontroladores
- RP2040: Chip,
Datasheet.
- RP2350: Chip,
Datasheet,
Projeto de hardware baseado em RP2350.
- STM32F411xC/E: Datasheet,
Manual de referência.
- STM32F103x8/STM32F103xB: Datasheet,
Manual de referência.
- Placas de desenvolvimento
- Raspberry Pi Pico RP2040, incluindo
Datasheet,
Esquemático,
MicroPython: MicroPython Wiki,
Documentação oficial de MicroPython,
Quick Reference.
C/C++ SDK: C/C++ Documentation,
Hardware APIs.
- Raspberry Pi Pico RP2040 apresentado pelo Embarcados (em Português)
- BlackPill (STM32F411xC/E):
Esquemático,
Documentação técnica,
CircuitPython,
CMSIS Version 6.3.0: Common Microcontroller Software Interface Standard,
STM32 Cube HAL (Hardware API).
- BluePill (STM32F103x8/STM32F103xB):
Esquemático,
Programação com a placa BluePill,
CMSIS Version 6.3.0: Common Microcontroller Software Interface Standard,
STM32 Cube HAL (Hardware API).
- BitDogLab (v7)+Raspberry Pi Pico RP2040:
Apresentação da placa,
Esquemático (páginas 3 e 4),
Curso de Introdução prática à BitDogLab,
Repositório de projetos-exemplo no GitHub,
Artigo publicado no IEEE Transactions on Education.
- BitDogLab (v7)+BlackPill:
Apresentação da placa,
Esquemático (páginas 3 e 4),
Circuito de Mapeamento BlackPill-BitDogLab ,
Repositório de projetos-eexemplo no GitLab da Unicamp
- Ambientes de desenvolvimento integrados
- IDE Thonny: Instalação e configuração, Tutorial,
Como gravar MicroPython,
Programando com o IDE Thonny,
Programação da Raspberry Pi Pico em Python,
Introdução ao MicroPython no Raspberry Pi Pico,
MicroPython: Quick reference for RP2.
- STM32CubeIDE: Instalação e configuração (resumo),
STM32CubeMX,
Guia para inicialização rápida,
Manual do usuário,
Tutorial de STM32IDE,
Plugins (Extensões)
Plugins: Eclox (Doxygen),
EGit,
Eclipse Terminal.
- Visual Studio Code: Instalação e configuração, Funcionalidades,
Programação de Raspberry Pi Pico,
Depuração de códigos.
Extensões: Raspberry Pi Pico, Cortex-Debug, Doxygen Documentation Generator, GitLab Workflow.
Dicas e macetes.
- Programador de códigos binários que complementa o hardware ST-Link (Blue e BlackPills): STM32CubeProgrammer.
- Suite de automação de projeto eletrônico (EDA)
- KiCad: Getting started in KiCad, Tutorial, Tutorial (em Português).
- Documentação de códigos-fonte
- Doxygen: Instalador de Doxygen e instaladores de dois aplicativos complementares: Graphviz e mscgen
C: Linhas de comando,
Documentação de código,
Comandos,
Grafos de dependência e diagramas
Quick Reference
Python: Documenting Python Programs with Doxygen
- Versionamento de projetos
- Git: Os primeiros passos, Documentações, Referência rápida, KiCad: Git Integration.
- Plataformas de gerenciamento de versões
Sugestões:
ting at unicamp dot br
Última modificação: sáb 24 jan 2026 20:48:26 -03
"Esta página, assim como todas as páginas sob esta
mesma árvore, não é uma publicação oficial da UNICAMP, seu conteúdo
não foi examinado e/ou editado por esta instituição. A
responsabilidade por seu conteúdo é exclusivamente do
autor."
"This page, as well as all pages
under this same tree, is not an official publication from UNICAMP;
its content has not been verified and/or edited by this
institution. The author is solely responsible by its
contents."