Lab 3.2 Senzori - Conditionare Semnal

Lab 3.2: Senzori – Condiționare Semnal

Scopul lucrării

Realizarea unei aplicații modulare pentru un microcontroler (MCU), care să efectueze condiționarea semnalului achiziționat de la un senzor analogic sau digital, aplicând metode de filtrare digitală și conversii specifice, pentru a afișa parametrii fizici prelucrați pe un terminal LCD și/sau Serial, folosind interfața STDIO și FreeRTOS.

Obiectivele lucrării

  • Familiarizarea cu metodele de condiționare digitală a semnalelor provenite de la senzori analogici și digitali.
  • Implementarea algoritmilor de filtrare digitală (filtru sare și piper, filtru mediere ponderată).
  • Aplicarea conversiei ADC-Voltage și Voltage-Parametru fizic.
  • Utilizarea bibliotecii STDIO pentru generarea rapoartelor periodice privind datele prelucrate.
  • Documentarea arhitecturii software și prezentarea schemelor bloc și schemelor electrice ca parte integrantă a metodologiei de proiectare.

Definirea problemei

Să se realizeze o aplicație bazată pe MCU pentru condiționarea semnalului preluat de la un senzor analogic sau digital (selectat din PDF-ul atașat sau http://www.37sensors.com), conform următoarelor cerințe:

  • Achiziția semnalului:

    • Să se achiziționeze semnalul de la senzorul selectat (analogic sau digital, non-binar).
  • Condiționarea semnalului:

    • Implementarea unui filtru digital de tip "sare și piper" pentru eliminarea zgomotului impulsiv.
    • Implementarea unui filtru digital de mediere ponderată pentru netezirea suplimentară a semnalului achiziționat.
  • Conversie:

    • Conversia ADC-to-Voltage și Voltage-to-Parametru fizic conform specificațiilor senzorului ales.
    • Aplicarea saturării pentru a limita valorile prelucrate în intervale valide.
  • Afișarea datelor:

    • Datele procesate să fie afișate periodic (LCD și/sau terminal Serial) folosind STDIO (printf).
  • Recurență și offset:

    • Să se utilizeze FreeRTOS pentru stabilirea recurenței precise a achiziției și condiționării semnalului folosind vTaskDelayUntil() și offset-uri cu vTaskDelay().

Materiale și resurse

Componente hardware:

  • Microcontroler cu suport FreeRTOS (ESP32, STM32 sau Arduino cu FreeRTOS)
  • Senzor (analogic/digital non-binar)
  • LCD (2x16, 4x20 sau similar)
  • Rezistoare (în funcție de senzor)
  • Breadboard
  • Cabluri jumper
  • Sursă de alimentare (USB)

Resurse software:

  • Visual Studio Code cu PlatformIO
  • Biblioteca FreeRTOS
  • Emulator terminal (Monitor Serial din PlatformIO, TeraTerm sau Putty)
  • Biblioteci specifice senzorului și LCD-ului
  • Simulator hardware (opțional, ex.: Proteus)

Recomandări

  • Pentru validare, se recomandă utilizarea unui simulator hardware (ex.: Proteus).
  • Funcționalitățile pentru fiecare echipament periferic (LED, buton, LCD, senzor) trebuie realizate în fișiere separate, pentru reutilizare.
  • Respectarea convențiilor de codare (magic number și CamelCase).

Cerințe obligatorii

  • Respectarea structurii modulare a proiectului.
  • Prezentarea schițelor arhitecturale, schemelor bloc și schemelor electrice.
  • Respectarea formatului raportului conform normelor UTM.

Pontaj

  • 50% – Aplicația de bază pentru achiziția și afișarea simplă a parametrului pe LCD/Serial prin STDIO.
  • 10% – Implementarea filtrului digital "sare și piper". 
  • 10% – Implementarea filtrului digital de mediere ponderată.
  • 10% – Realizarea aplicatiei in Taskuri FreeRTOS, dintre care unul dedicat pentru raportare recurents (printare mesaje).
  • 10% – Condiționarea completă aplicată suplimentar unui alt senzor decât cel utilizat anterior (ex.: DHT sau Ultrasonic),
  • 10% – Demonstrarea funcționării fizice complete a soluției.

NOTĂ:

  • Pontajul maxim este posibil doar la prezentarea funcționării fizice complete a soluției și implementarea comportamentului adițional improvizat!
  • Penalizare: -10% pentru fiecare săptămână întârziere față de termenul stabilit.

Întrebări de control

  • Care este necesitatea condiționării semnalului achiziționat de la senzori în aplicațiile embedded IoT?
  • Cum funcționează și care sunt avantajele unui filtru "sare și piper"?
  • Ce reprezintă un filtru digital cu mediere ponderată și când este recomandat a fi utilizat?
  • Care sunt implicațiile aplicării saturării în procesul de conversie ADC-Voltage și Voltage-parametru fizic?
  • Care sunt provocările implementării filtrelor digitale pe microcontrolere și cum pot fi acestea optimizate?
  • Cum poate contribui utilizarea FreeRTOS la îmbunătățirea stabilității și recurenței procesului de achiziție și condiționare semnalelor?