Nessa avaliação iremos trabalhar com o módulo OLED1 (botões/ LEDs e Display), o mesmo já está disponível no repositório da avaliação.
- Atualize o arquivo
ALUNO.json
com seu nome e e-mail e faça um commit imediatamente.
Faça o seu trabalho de maneira ética!
- A cada 30 minutos você deverá fazer um commit no seu código!
- Códigos que não tiverem commit a cada 30min ou que mudarem drasticamente entre os commits serão descartados (conceito I) !!
- Você deve inserir mensagens condizentes nos commits!
- Duração: 3h
🚩 Ao finalizar a entrega preencher o formulário (uma única vez!): https://forms.gle/uTa7SYNAPd2qbC8X7
Nessa avaliação iremos trabalhar com o OLED1 e iremos desenvolver um 'cronometro' que poderia ser instalado em um eletrodoméstico (linha branca). O exemplo a seguir é um timer de um fogão.
Nessa avaliação vocês terão desenvolver um cronometro (contagem regressiva) com relógio, vocês devem utilizar o kit de desenvolvimento SAME70-XPLD mais display OLED1
, o firmware deve possuir:
- Display:
hh:mm:ss
: indicar a hora atual na primeira linhamm:ss
: indicar o valor do alarme (minutos e segundos) na segunda linha
- Botões:
But1
: incrementar o valor do minuto do cronometro (max 59)But2
: incrementar o valor do segundo do cronometro (max 59)But3
: indicar o início (start) do alarme
- Leds:
Led1
: Deve indicar se o alarme está ativado ou nãoLed3
: Ao final da contagem do alarme, deve piscar
Vocês devem gravar um vídeo do firmware funcionando na placa para submeter o projeto.
Vídeo de como tem que ficar
Projeto funciona conforme descrição. Possui um pequeno bug (usando o protótipo possui algum erro), mas projeto funciona de forma geral.
Usuário consegue ajustar valores do cronometro (segundos) e iniciar contagem regressiva, LCD mostra valores de hora e do cronometro (atualizado a cada segundo), LED1 indica que contagem está ativada. Ao final, LED3 pisca indicando final da contagem.
- LCD exibe hora:
hh:mm:ss
(atualizada a cada segundo) - LCD exibe cronometro:
hh:mm:ss
- Botões implementados e funcionando
- Leds implementados e funcionando
- Cronometro segundo implementando e funcionando
- Cronometro minutos implementando e funcionando
- É possível usar o cronometro mais de uma vez (configurar um novo cronometro ao término de um anterior)
- Usa TC para piscar LED quando alarme acaba contagem
- Usa RTC para armazenar hora
- Usa IRQ no TC, RTC e Botões
- Usa flags sempre (TC, RTC, botões)
Exemplos de pequenos bugs
- Iniciar cronometro com contador 00:00 faz valor ficar negativo
- Contador segundo não fica no range entre 0 - 59
- LED3 não para de piscar quando botão 3 é apertado
- ....
🚩 Ao finalizar a entrega preencher o formulário (uma única vez!): https://forms.gle/uTa7SYNAPd2qbC8X7
- Sem bugs
Vídeo de como tem que ficar:
- Indica no LCD que cronometro está ativado
- Aumento 'inteligente' do valor de minuto e segundo do cronometro
- Incrementa valor com o usuário segurando o botão.
- Aumento
inteligente
é progressivo (acelerando conforme usuário segura botão pressionado) - Animação no LCD indicando a contagem
🚩 Ao finalizar a entrega preencher o formulário (uma única vez!): https://forms.gle/uTa7SYNAPd2qbC8X7
Um item:
- Não faz uso de IRQ (TC, RTC, PIO)
- LCD não mostra hora ou cronometro
- Botões não ajustam minuto ou segundo do contador
- Contagem não funciona
- LED não pisca ao final da contagem