Projeto 1 da disciplina de Fundamentos de Sistemas Embarcados (2020/2)
Este trabalho faz parte da atividade proposta no seguinte repositório: https://gitlab.com/fse_fga/projetos_2020_2/projeto-1-2020.2
Na pasta raiz do projeto
- Para compilar rode o comando:
make
- Para executar rode o comando:
make run
O menu inicial mostra três opções. Use as setas para cima e baixo para navegar entre elas e pressione enter par selacionar.
-
Primeira opção O programa irá pegar a temperatura de referência pelo potenciômetro a cada um segundo e seguida será mostrada uma tela com as temperaturas TI, TE e TR que será atualizada a cada segundo. Aperte a tecla ESC para voltar ao menu inicial
-
Segunda opção O programa irá mostrar uma tela com um campo para o usuário colocar a temperatura de referência desejada. Digite a temperatura desejada e aperte enter para confirmar.
Aperte a tecla ESC para voltar ao menu inicial
Observações:
- Não é possível deletar um caractere do campo de input. Para apagar o campo é nescessário apertar enter para confirmar e depois escrever novamente.
- É nessessário escrever a temperatura como ponto flutuante, ou seja, com um ponto e pelo menos uma casa decimal. Ex:
30.0
- Se o usuário colocar uma temperatura menor que a temperatura ambiente, ele irá usar a temperatura ambiente como referência.
- Se o usuário colocar uma temperatura maior do que 100 graus celsius, o programa irá usar 100 graus como referência.
- Opção sair O programa fechará. Para fechar o programa pode ser digitado ctr+c no terminal e o programa sairá normalmente.
No cálculo do PID foram usadas as seguintes variáveis
- Kp = 5.0
- Ki = 1.0
- Kd = 35.0
Enquanto controla as temperaturas, o programa gera um histórico das temperaturas, pids e a data a cada 2 segundos.
Caso um arquivo chamado log.csv exista, o programa irá colocar o histórico no final do arquivo. Caso contrário ele irá criar o arquivo e registrar os dados no seguinte formato:
d-m-yyyy h:m:s,TI,TE,TR,pidResistor,pidFan\n
A aplicação foi rodada por 10 minutos na raspberry pi 1 do professor e foram obtidos os seguintes dados que estão guardados neste repositório no arquivo test-log.csv
Foi usado o seguinte software para plotar os dados: https://chart-studio.plotly.com/create/#/
PID - Wikipedia
Driver da Bosh para o sensor BME280
Biblioteca BCM2835 - GPIO
Controle do LCD 16x2 em C
Biblioteca WiringPi GPIO
PWM via WiringPi