Embarcados - APS 1 - Musical!
Para maiores informações acesse:
https://insper.github.io/ComputacaoEmbarcada/APS-1-Musical/
Issues serão abertos neste repositório para guiar o desenvolvimento da dupla. Vocês não devem fechar os issues, apenas a equipe de professores!, porém devem referenciar nos commits quando um issue foi concluído! Isso gerará um PR no classroom que será avaliado pela equipe.
💁♂️ Bernardo Cunha Capoferri.
💁♀️ Lívia Sayuri Makuta.
✔️ C.✔️ Um microcontrolador SAME70 da Microchip;
✔️ A placa de extensão OLED1 Xplained Pro;
✔️ Piezo Buzzer;
✔️ Jumpers fêmea-fêmea.
Função | PINO (ex: PA11) |
---|---|
BUZZER | PD30 e GND |
START/ PAUSE | BUT1 (PD28) |
SELEÇÃO | BUT2 (PC31) |
❗ ❗ O jumper laranja faz ligação com o pino energizado e o jumper preto faz ligação com o GND.
Como pode ser visto, a parte positiva do Buzzer foi conectada no pino PD30, enquanto a outra parte foi conectada no pino do GND (Ground) - que fica acima do pino PD30, porém no primeiro nível de pinos.
Assim, basta utilizar dois jumpers fêmea-fêmea e conectar as saídas dos pinos no polo positivo e negativo do buzzer. Feito isso, basta rodar o código que o programa estará funcionando.
✔️ Para utilizar o projeto, após rodar o programa, basta apertar o botão 1 para tocar e, uma vez que estiver tocando, basta apertá-lo outra vez para pausar.
✔️ Para trocar de música, basta apertar o botão 2, e conforme as músicas mudam, os LED's 1,2 e 3 indicarão visualmente qual música está sendo selecionada:
◽ A música 1 (Star Wars theme) acende o LED 1.
◽ A música 2 (Nokia Ringtone) acende o LED 2.
◽ A música 3 (Badinerie) acende o LED 3.
✔️ E conforma as músicas tocam, o LED da placa irá piscar de acordo com as notas da música.
✔️ Por fim, no LCD estarão indicados o nome da música que está sendo tocada e a barra de progresso que mostra a duração de cada música.
O software foi estruturado em sete arquivos: notas.h
, badinerie.h
, nokia.h
, starwars.h
, aps1.h
, aps1.c
e main.c
.
✔️ No arquivo notas.h
foram definidas as notas e os arrays de cada conjunto de notas foram definidos nos aquivos badinerie.h
, nokia.h
e starwars.h
, que contém as melodias.
✔️ Já no aps1.h
foram definidos todos os botões, LED's e o buzzer utilizado para conseguir utilizar os pinos e botões configurados. Além disso, nesse mesmo arquivo, outros #defines foram feitos para as constantes usadas, protótipos das funções usadas no trabalho foram definidos e a struct das músicas também.
✔️ No aps1.c
por sua vez, as funções declaradas no aps1.h foram escritas, ou seja, todas as funções utilizadas no trabalho estão lá. Desde os callsbacks's e funções que inicializam os LED's e botões, até as funções para tocar e pausar as músicas.
✔️ Por fim, no arquivo main.c
estão os vetores de structs (ponteiros) das músicas e a função principal main() que irá rodar todas as outras funções que foram definidas no aps1.c
para o funcionamento do projeto.
As músicas utilizadas na APS são:
✔️ Star Wars Main Theme
✔️ Nokia Ringtone
✔️ Badinerie - Bach
Todas as músicas foram retiradas do repositório que pode ser encontrado no link a seguir: https://github.com/robsoncouto/arduino-songs/ . Além disso, a função
play_music
que se encontra na aps1.c
foi adaptada desse mesmo repositório citado anteriormente.
- Repositório contém README.mdcom ligações elétrica e passos de como usar o projeto, assim como link para o vídeo e referência a outros códigos
- Funcionalidade de PAUSE/ PLAY
- Botão de seleção musical
- Indicação visual de qual música foi selecionada
- Reproduz duas músicas (de forma inteligível)
- Utiliza músicas do repositório indicado
- Fecha todos os issues que forem abertos pela equipe
- LED piscando de acordo com a música (adicionar um LED ao projeto)
- Música separadas em arquivos .h
- Utiliza struct para organizar as músicas
- Código organizado em funções e que recebem struct contendo música
- Exibir o nome da música no OLED
- Fecha todos os issues que forem abertos após a entrega (ainda não foram abertos esses issues)
- README.md explica como o software foi estruturado
- Faz uso de #define sempre que possível
- Terceira música
- Exibir uma barra com a indicação do progresso da música
- Utiliza interrupção nos botões
- Cria um arquivo .c .h com as funções de reprodução musical
- Músicas organizadas em vetores de structs (ponteiros)