domingo, 29 de janeiro de 2017

A questão da medida da temperatura com o sense HAT

As primeiras medidas da temperatura com o Astro Pi revelaram desde logo valores exagerados. Não será necessário um termómetro para perceber que, em pleno inverno, uma sala sem aquecimento não está a 28ºC.

Por isso, fomos investigar...

De acordo com o Guia Astro Pi,fornecido pela RaspBerry Pi, o Sense HAT  pode medir temperaturas entre os -40ºC e os 120ºC. O Sense HAT tem dois sensores de temperatura - um incluido no sensor de humidade, outro no sensor de pressão. Podemos escolher a qual destes sensores recorremos ao medir a temperatura fazendo temp = sense.get_temperature_from_humidity() ou temp = sense.get_temperature_from_pressure(), respetivamente. De acordo com as nossas experiências, ao fazer temp = sense.get_temperature(), estamos a fazer a medida a partir do sensor de humidade, sendo indiferente usar este comando ou o sense.get_temperature_from_humidity().

Até aqui...tudo OK - o problema está no valor das medidas de temperatura obtidas. Na verdade, os sensores de de pressão e humidade estão montados na placa do Sense HAT e, devido à sua localização, é impossível ignorar o calor do processador (CPU) e dos restantes componentes eletrónicos, responsável pelo aumento de temperatura no local dos sensores. Devido á sua localização na placa, ainda assim, o sensor de humidade é menos afetado pelo calor do processador da placa.

Fizemos algumas medidas a partir dos sensores de pressão e humidade. Mais importante, pedimos ajuda (obrigado Nuno!) para conseguir medir a temperatura do CPU do Raspberry e criámos um programa que, ao ser corrido, guardava num ficheiro csv 20 valores (medidos segundo a segundo) da humidade, da temperatura medida a partir do sensor de pressão (Temp_P), temperatura medida a partir do sensor de humidade (Temp_H), temperatura obtida através do comando sense.get_temperature() (Temp_V) e temperatura do CPU (Temp_CPU):


Fizemos várias experiências fazendo correr o programa anterior em ambiente com diferentes temperaturas. Medimos a temperatura ambiente com um termómetro digital (com apenas dois algarismos significativos) e tentámos que a temperatura fosse estável durante a experiência. Depois, em Excel, fizemos a média de cada 20 valores medidos. Apresentamos os valores mais significativos:


Da análise dos resultados obtidos...não conseguimos uma relação coerente entre os valores da temperatura ambiente e os valores medidos pelos sensores! Podem ser apontadas algumas falhas à nossa experimentação:

  • O valor da temperatura ambiente podia ser feita através de um sensor ligado ao Raspberry, ainda que afastado da placa. Isso permitiria um valor mais preciso da temperatura ambiente;
  • A variação da temperatura ambiente foi feita deslocando o Raspberry para ambientes diferentes - os 11ºC foram obtidos à janela, ao ao ar livre; as temperaturas mais altas foram criadas com recurso a um ventilador - o facto de nas várias experiências o Raspberry estar ora assente numa superfície, ora no ar, aliado ao facto de o movimento do ar - e portanto o arrefecimento do CPU - ter caraterísticas diferentes nas várias experiências, cria demasiadas variáveis para que consigamos uma relação adequada entre o valor dos sensores e o valor da temperatura ambiente.

Uma discussão muito interessante sobre o tema pode ser encontrada no fórum do Raspberry Pi. Neste fórum, há um utilizador que afirma que a estabilização na medida das temperaturas é lenta, cerca de 15 minutos. Se assim for, esta é mais uma razão para a incoerência que observámos nas nossas medidas.

Ainda recorrendo à informação disponibilizada no fórum, há utilizadores que avançam para possíveis algoritmos que, de acordo com o que afirmam, conseguem ajustar (ainda que com algum erro) os valores dos sensores aos valores da temperatura ambiente:


Como facilmente se depreende, tal algoritmo não encontra correspondência para os valores que obtivemos. Outros utilizadores do fórum também não revêm os valores obtidos no algoritmo proposto, pelo que me parece que as condições (ambientais, de acondicionamento do Astro Pi) em que são feitas as experiências são determinantes para os valores medidos. É possível encontrar no fórum quem afirme conseguir uma relação linear entre a variação da temperatura e a variação medida pelo Raspberry Pi, mas mantendo o Raspberry Pi sempre estático na mesma posição.

Na ISS, o Raspberry Pi estará de facto estático, mas numa caixa de alumínio - será que a condução térmica para o exterior é suficientemente boa para não criar efeito de estufa? E, devido às condições gravíticas, qual será o efeito da ausência de convecção?

Todas estas questões permitem concluir que nos será muito difícil, com as condições experimentais que temos, usar com aproximação satisfatória os sensores de temperatura no desafio Astro Pi. Mas valeu o caminho para o concluir!

Sem comentários:

Enviar um comentário