Skip to content

fabiodbs/sel337_final

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

8 Commits
 
 
 
 
 
 

Repository files navigation

Projeto Final SEL0337

Eduardo Remoli de Souza Lopes - 14567332

Fábio Domingues Barreto da Silva - 14569011

Parte 1 - Caracterização de Sistemas Embarcados

1. Seleção do Sistema Embarcado

  • Produto: Termômetro Infravermelho Welch Allyn Model 9000 e Model 9020.
  • Funções Principais: Medição de temperatura clínica timpânica através da detecção de radiação infravermelha.
  • Aplicações Típicas: Uso em ambientes médicos e hospitalares para monitoramento de pacientes.
  • Segmento de Mercado: Equipamentos médicos de diagnóstico.
  • Link do manual técnico

2. Informações Técnicas

Unidade de Processamento

  • Unidade de processamento: MCU single-chip 8-bit CMOS Mitsubishi M38203.
  • Arquitetura: Renesas Technology 740 Family.
  • Frequência de Clock: Clock primário de 4 MHz para processamento ativo e clock de 32,768 kHz para funções de temporização.

Memória

  • Interna: 16.384 bytes de ROM e 512 bytes de RAM.
  • Externa: EEPROM serial 93LC46 para armazenamento de constantes de calibração únicas, modo de operação e configurações do usuário.

Sistema Operacional

  • Bare Metal: O dispositivo executa um código gravado diretamente na ROM, sem o uso de um sistema operacional comercial.

Interfaces de Comunicação

  • Interface com Fio: Barramento serial I/O para diagnóstico e linhas de comunicação dedicadas para a EEPROM.
  • Interface de Sonda: Cabo flexível de 4 condutores ligando o processador aos sensores da sonda.

Entradas e Saídas (I/O) e Sensores/Atuadores

  • Sensores:
    • IR Sensor: Detector de radiação infravermelha para medição de temperatura.
    • Termistor: Sensor de 10 k$\Omega$ a $25^{\circ}\text{C}$ para compensação de temperatura ambiente.
    • Switches: Botão SCAN, botões de modo, interruptor de posição da sonda, e chave reed.
  • Atuadores:
    • Display: LCD do tipo Diplex para interface visual.
    • Backlight: Painel eletroluminescente.
    • Horn: Alto-falante miniatura para alertas sonoros.

Fonte de Energia e Alimentação

  • 4 baterias alcalinas AAA 6V.
  • Circuito de reset integrado e detector de bateria baixa (LOBAT).

Segurança e Proteção

  • Theft Protection System: Sistema antifurto que bloqueia o uso do dispositivo caso ele não retorne à base de parede.

3. Validação Científica

Tecnologias Centrais

  • Título: A high-precision 1 × 15 infrared temperature measurement linear array based on thermopile sensors

  • Base: Scopus

  • Referência: Bai, J., Yang, W., Zhu, S. et al. A high-precision 1 × 15 infrared temperature measurement linear array based on thermopile sensors. Commun Eng 4, 119 (2025). https://doi.org/10.1038/s44172-025-00456-9

  • Resumo:

    O artigo descreve um sistema de medição térmica por infravermelhos de alta precisão baseado em sensores de termopilha. O estudo foca no uso de um algoritmo de compensação de temperatura e no uso de termistores para corrigir erros causados pela temperatura ambiente e pelo aquecimento interno dos componentes eletrônicos.

  • Análise:

    • Questão principal: Como obter medições de temperatura de alta precisão com infravermelho
    • Importância: Monitorização térmica em semicondutores e biotecnologia, onde a estabilidade do sensor é crítica
    • Limitações: O sistema requer um longo tempo de pré-aquecimento para atingir a precisão ideal. Além disso, a dependência de algoritmos complexos pode dificultar a implementação em microcontroladores simples

Aplicações e Estudo de Caso

  • Título: Infrared temperature measurement in the ear canal with the DIATEK 9000 Instatemp and the DIATEK 9000 Thermoguide. Comparison with methods of temperature measurement in other body parts

  • Base: PubMed

  • Referência: Fritz U, Rohrberg M, Lange C, Weyland W, Bräuer A, Braun U. Infrarot-Temperaturmessung in Gehörgang mit dem DIATEK 9000 Instatemp und dem DIATEK 9000 Thermoguide. Einflussgrössen und Vergleich mit anderen Methoden der Temperaturmessung des Körperkerns. Anaesthesist. 1996 Nov;45(11):1059-66. German. doi: 10.1007/s001010050340. PMID: 9012301.

  • Resumo:

    O artigo avalia a eficácia da termometria infravermelha no canal auditivo, uma alternativa mais segura e prática que as sondas de contato, pois essas podem lesionar o tímpano. Para obter resultados confiáveis, o estudo destaca a necessidade de se respeitar um intervalo de dois minutos entre as leituras e posicionar o dispositivo a 60 graus, seguindo a anatomia da mandíbula. Observou-se que o infravermelho tende a registrar a temperatura do canal auditivo em vez da membrana timpânica, resultando em valores um pouco menores que o real. Mesmo sendo aplicadas correções matemáticas para converter esses dados em temperaturas centrais equivalentes e reduzir discrepâncias médias, a variabilidade estatística entre os dois métodos de medição permanece inalterada.

  • Análise:

    • Questão principal: Avaliação da precisão e a confiabilidade dos termômetros infravermelhos de canal auditivo
    • Importância: Define os limites técnicos da tecnologia de termometria infravermelha
    • Limitações: Mesmo com correções matemáticas, os limites de concordância permaneceram amplos, sugerindo que a precisão pode não ser suficiente para substituir métodos invasivos em todos os cenários clínicos.

Parte 3 - Prática 6: Introdução aos Sistemas Operacionais de Tempo Real (RTOS)

Controlador IR via Web com ESP32 e FreeRTOS

Este projeto implementa um sistema utilizando um ESP32 para controlar dispositivos infravermelhos (como ar-condicionado) através de uma interface Web. O sistema opera simultaneamente como um leitor e um emissor.

O código utiliza o sistema operacional de tempo real FreeRTOS para gerenciar o Wi-Fi e o processamento de sinais IR em tarefas separadas, garantindo que a comunicação de rede não interfira na precisão temporal necessária para o protocolo infravermelho.

Montagem do projeto

Hardware Necessário

  • Microcontrolador: ESP32 Development Board.
  • Emissor IR: LED Infravermelho conectado ao pino D4 (com resistor apropriado).
  • Receptor IR: Módulo receptor conectado ao pino D5.

Dependências de software e bibliotecas

  • Comunicação web: WiFi.h e WebServer.h
  • Processamento IR: IRremoteESP8266, IRrecv e IRsend
  • Kernel de tempo real: freertos/FreeRTOS.h, task.h e queue.h

Configuração Inicial

Antes de carregar o código, altere as credenciais de rede nas linhas indicadas:

const char ssid = "SEU_WIFI";    
const char password = "SUA_SENHA";

Funcionamento

Setup

  1. Comunicação entre Tarefas: Cria uma fila (filaComandosIR) com capacidade para 5 mensagens do tipo integer.
  2. Conectividade: Inicia a conexão Wi-Fi no modo Station e aguarda a atribuição de IP.
  3. Criação de Tasks: Duas tarefas são criadas e fixadas ao Core 1 do processador:
    • TaskIR: Prioridade 2 (Maior prioridade para garantir precisão no sinal).
    • TaskWeb: Prioridade 1.

Lógica da TaskWeb (Interface do Usuário)

Esta tarefa gerencia o servidor HTTP na porta 80.

  • Rota Raiz (/): Renderiza uma página HTML com CSS embutido para controle visual.
  • Rota de Comando (/ligar): Quando acessada, ela envia o identificador CMD_ENVIAR_AC para a fila de comandos e redireciona o usuário de volta à página principal.
  • Execução: Roda em um loop infinito processando clientes a cada 10ms.

Lógica da TaskIR (Processamento de Sinais)

Responsável por capturar novos códigos e enviar os comandos armazenados.

  • Envio: Monitora a fila filaComandosIR. Se receber um comando, dispara o array rawDataAC via irsend.sendRaw na frequência de 38kHz.
  • Recepção: Monitora pulsos no receptor. Se um sinal válido for detectado, ele decodifica o protocolo e imprime no Monitor Serial o array formatado pronto para ser copiado pelo usuário.
  • Formatação: Converte os ticks brutos do buffer para microssegundos usando a constante kRawTick.

Conceitos Envolvidos (FreeRTOS e ESP32)

O FreeRTOS é um sistema operacional de tempo real. No código, ele é usado para resolver um problema crítico: timing.

  • A comunicação Wi-Fi e o servidor Web são processos que podem ter latências imprevisíveis.
  • O envio e recebimento de infravermelho exige precisão de microssegundos. Se o processador parar para atender uma requisição Web enquanto está tentando ler um sinal IR, o sinal será corrompido.

Ao dividir o código em taskWeb e taskIR, o scheduler do FreeRTOS garante que ambas as tarefas recebam tempo de CPU. A comunicação entre elas é feita de forma segura através de uma fila (filaComandosIR).

Gerenciamento de Memória e Cores

O código faz uso explícito da capacidade dual-core do ESP32 com a função xTaskCreatePinnedToCore. Ambas as tarefas foram fixadas no Core 1.

  • Isso deixa o Core 0 livre para gerenciar a pilha de rádio em segundo plano, reduzindo travamentos.
  • O vTaskDelete(NULL) no loop() é feito para liberar a memória que seria alocada para a tarefa "loop" padrão do Arduino, já que ela não está sendo usada.

Tasks (RTOS) vs. Processos vs. Threads

1. Processos

  • Definição: Um programa em execução (ex: navegador, editor de texto em Linux/Windows).
  • Memória: Possuem espaço de memória virtual totalmente isolado. Se um processo falha, ele não corrompe a memória de outro.
  • Peso: São "pesados". Trocar de um processo para outro (Context Switch) exige salvar muitos dados e trocar tabelas de páginas de memória.

2. Threads

  • Definição: Unidades de execução dentro de um mesmo processo.
  • Memória: Compartilham o mesmo espaço de memória do processo pai (variáveis globais, heap).
  • Peso: Mais leves que processos, mas ainda dependem do escalonador do sistema operacional (Windows/Linux), que foca em fairness e throughput, não em determinismo temporal.

3. Tasks (RTOS - FreeRTOS)

  • Definição: Semelhantes às Threads, mas gerenciadas por um kernel de Tempo Real.
  • Memória: No ESP32, as Tasks compartilham todo o espaço de endereçamento (Flat Memory Model). Se a taskIR escrever num ponteiro errado, ela pode travar a taskWeb ou reiniciar o chip inteiro.
  • Overhead: Extremamente baixo. A troca de contexto em um RTOS é otimizada para ser muito rápida, permitindo que a taskIR acorde, envie um pulso de 38kHz e volte a dormir sem atrasar o Wi-Fi.

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors

Languages