Differences

This shows you the differences between two versions of the page.

Link to this comparison view

pm:prj2025:fstancu:cristian.lazar1512 [2025/05/07 01:28]
cristian.lazar1512
pm:prj2025:fstancu:cristian.lazar1512 [2025/06/02 22:16] (current)
cristian.lazar1512 [Flow-ul programului]
Line 1: Line 1:
-====== Alarmă controlată prin voce ======+====== Alarmă controlată prin voce - Lazăr Cristian ​======
 ===== Introducere ===== ===== Introducere =====
  
Line 15: Line 15:
 ===== Design Hardware ===== ===== Design Hardware =====
  
-**Componente:​**+==== Schema electrică ====
  
-Placă dezvoltare Arduino R3 UNO+{{ :​pm:​prj2025:​fstancu:​schematic_smart-alarm_2025-05-18_01.png?​700 |}}
  
-- Memorie SRAM 128k x 8 23LCV1024-I/​P+==== Bill of Materials ====
  
-Amplificator operational 4 canale ​TL074ACN+^ Cantitate ​     ^ Componentă ​     ^ Site cumpărare ​    ^ Datasheet ​         ^ 
 +| 1 | Placă dezvoltare Arduino R3 UNO | [[https://​www.optimusdigital.ro/​ro/​placi-avr/​4561-placa-de-dezvoltare-compatibila-cu-arduino-uno-r3-atmega328p-atmega16u2-cablu-50-cm.html?​search_query=arduino+r3+uno&​results=129|Link]] | [[https://​docs.arduino.cc/​hardware/​uno-rev3/​|Link]] ​                  | 
 +| 1 | 23LCV1024-I/​P | [[https://​www.digikey.com/​en/​products/​detail/​microchip-technology/​23LCV1024-I-P/​3543092|Link]] | [[https://​ww1.microchip.com/​downloads/​en/​DeviceDoc/​25156A.pdf|Link]] | 
 +| 1 | TL074ACN ​| [[https://​www.digikey.com/​en/​products/​detail/​texas-instruments/​TL074ACN/​476129|Link]] | [[https://​www.ti.com/​lit/​ds/​symlink/​tl071.pdf?​HQS=dis-dk-null-digikeymode-dsf-pf-null-wwe&​ts=1721694323530|Link]] | 
 +| 1 | LD-MC-0905P | [[https://​www.tme.eu/​en/​details/​ld-mc-0905p/​microphones-and-headsets/​loudity/​|Link]] | [[https://​www.tme.eu/​Document/​9b07afd90a47f1182065e94e017d67da/​ld-mc-0905p.pdf|Link]] | 
 +| 1 | L7805ACV | [[https://​www.digikey.com/​en/​products/​detail/​stmicroelectronics/​L7805ACV/​585962|Link]] | [[https://​www.st.com/​content/​ccc/​resource/​technical/​document/​datasheet/​41/​4f/​b3/​b0/​12/​d4/​47/​88/​CD00000444.pdf/​files/​CD00000444.pdf/​jcr:​content/​translations/​en.CD00000444.pdf|Link]] | 
 +| 1 | Modul WiFi ESP8266 ESP-01 | [[https://​www.optimusdigital.ro/​ro/​wireless-wifi/​222-modul-wi-fi-esp-01-negru.html?​search_query=modul+wifi+esp&​results=51|Link]] | [[https://​www.espressif.com/​sites/​default/​files/​documentation/​0a-esp8266ex_datasheet_en.pdf|Link]] | 
 +| 1 | Modul cu Ceas în Timp Real DS3231 | [[https://​www.optimusdigital.ro/​ro/​altele/​1102-modul-cu-ceas-in-timp-real-ds3231.html?​search_query=DS3231&​results=6|Link]] | [[https://​www.analog.com/​media/​en/​technical-documentation/​data-sheets/​DS3231M.pdf|Link]] | 
 +| 1 | Buzzer alarmă | [[https://​www.optimusdigital.ro/​ro/​audio-buzzere/​12247-buzzer-pasiv-de-33v-sau-3v.html?​search_query=buzzer&​results=62|Link]] | [[https://​www.optimusdigital.ro/​ro/​audio-buzzere/​12247-buzzer-pasiv-de-33v-sau-3v.html?​search_query=buzzer&​results=62|Link]] | 
 +| 1 | Tranzistor NPN de Putere TIP41C | [[https://​www.optimusdigital.ro/​ro/​componente-electronice-tranzistoare/​2953-tranzistor-npn-de-putere-tip41c.html?​search_query=tranzistor+tip41C&​results=1|Link]] | [[https://​eu.mouser.com/​datasheet/​2/​389/​tip41c-1852274.pdf|Link]] | 
 +| 1 | Alimentator Stabilizat 12V 2000mA | [[https://​www.optimusdigital.ro/​ro/​electronica-de-putere-alimentatoare-priza/​2888-alimentator-stabilizat-12v-2000ma.html?​search_query=alimentator+12V&​results=8|Link]] | [[https://​www.optimusdigital.ro/​ro/​electronica-de-putere-alimentatoare-priza/​2888-alimentator-stabilizat-12v-2000ma.html?​search_query=alimentator+12V&​results=8|Link]] | 
 +| 10 | Condensatoare | [[https://​www.optimusdigital.ro/​ro/​componente-electronice-condensatoare/​5389-kit-condensatoare-electrolitice-15-tipuri-200-buc.html?​search_query=condensatoare&​results=116|Link]] | [[https://​www.optimusdigital.ro/​ro/​componente-electronice-condensatoare/​5389-kit-condensatoare-electrolitice-15-tipuri-200-buc.html?​search_query=condensatoare&​results=116|Link]] | 
 +| 10 | Rezistente | [[https://​www.optimusdigital.ro/​ro/​kituri/​4745-set-de-rezistoare-asortate-optimus-digital-intre-10-1-m-600-buc-0616639927610.html?​search_query=rezistente+kit&​results=8|Link]] | [[https://​www.optimusdigital.ro/​ro/​kituri/​4745-set-de-rezistoare-asortate-optimus-digital-intre-10-1-m-600-buc-0616639927610.html?​search_query=rezistente+kit&​results=8|Link]] |
  
-- Microfon LD-MC-0905P+==== Descrierea pinilor ====
  
-- Stabilizator ​de tensiune L7805ACV+Pinii folositi pe placa de dezvoltare sunt:
  
-Modul WiFi ESP8266 ESP-01+SCK, MISO, MOSI, SS_POT, SS_SRAM pentru comunicare SPI cu potentiometrul digital (folosit pentru a ajusta automatic gain control) si SRAM-ul extern (folosit pentru a stoca valorile inregistrate de la microfon)
  
-Modul cu Ceas în Timp Real DS3231+OCA1 folosit drept iesire PWM pentru a controla curentul din baza tranzistorului TIP41C, astfel controland buzzer-ul.
  
-Mini Difuzor pentru Alarmă XHD SFB-55 DC6-12V (12 V)+CLK_INT folosit drept pin de intrerupere externa de la RTC, anunțând când trebuie sunată alarma.
  
-Tranzistor NPN de Putere TIP41C+TX, RX folosit pentru a comunica prin UART cu modulul WI-FI, pentru a transmite datele audio server-ului care le procesează si pentru a primi comanda audio procesată ​de la server.
  
-Alimentator Stabilizat 12V 2000mA+SDA, SCL folosite pentru comunicare I2C cu modulul RTC pentru a seta data curenta si data la care trebuie sa sune alarma.
  
-Condensatoare+ADC0 folosit ca input in ADC-ul microcontroller-ului a datelor audio analogice de la microfon, in urma prelucrarii semnalelor. 
 + 
 +- VIN curentul de alimentare, provenit de la un stabilizator de tensiune alimentat cu 12V de la priza. 
 + 
 +- GND ground. 
 + 
 +- 5V, 3V3 sunt iesiri de 5V, respectiv 3V3. 
 + 
 +==== Descrierea componentelor ==== 
 + 
 +Placa arduino R3 Uno se ocupa de gestionarea sistemului, concret preluarea datelor audio de la ADC, stocarea lor intr-un buffer in SRAM-ul extern, ajustarea gain-ului in functie de ultimele N sample-uri, preluarea datelor din buffer si trimiterea lor prin WI-FI, receptionarea comenzii vocale prelucrate de la modulul WI-FI, setarea datei curente a modulului RTC, setarea alarmei in modulul RTC si sunarea buzzer-ului. 
 + 
 +Datele de la microfon trec prin trei stagii de prelucrare:​ 
 + 
 +- Preamplificare:​ Output-ul microfonului este amplificat de un amplificator operational configurat non inverting pentru a ajunge in jurul range-ului de -0.8V - 0.8V. 
 + 
 +- Automatic gain control: Un alt amplificator operational,​ acesta cu un potentiometru digital in loc de rezistenta de feedback, este folosit pentru a ajusta amplificarea in functie de noise, prim modificarea potentiometrului. 
 + 
 +- Filtrare: Semnalul este filtrat de catre un filtu bandpass Sallen Key la range-ul de frecvente 330Hz - 4kHz. 
 + 
 +Modulul WI-FI realizeaza comunicarea cu server-ul de recunoastere vocala. 
 + 
 +Memoria SRAM externa stocheaza datele de la microfon temporar, pana ca acestea sa fie trimise server-ului. 
 + 
 +Modulul RTC este folosit pentru a mentine timpul si a seta alarme. 
 + 
 +Buzzer-ul este folosit ca sunetul alarmei. 
 + 
 +Stabilizatorul de tensiune este folosit pentru a obtine tensiunea de 5V pentru alimentarea Arduino-ului. 
 + 
 +==== Starea proiectului ==== 
 + 
 +In starea actuala, este implementat stabilizatorul de tensiune, evident prin faptul ca placuta arduino este alimentate. In lucru sunt prelucrarea semnalului microfonului si controlul buzzer-ului. 
 + 
 +{{ :​pm:​prj2025:​fstancu:​ldo_merge.jpg?​700 |}} 
 + 
 +==== Design Software ==== 
 + 
 +In design-ul acestui proiect, au fost folosite bibliotecile de baza avz, impreuna cu SoftwareSerial.h pentru a trimite mesaje de logging si realizare de debugging. Stadiul actual al implementarii este incomplet, proiectul oprindu-se la trimiterea de date audio catre server-ul remote. 
 + 
 +==== Flow-ul programului ==== 
 + 
 +Initial, se realizeaza initializarea un UART0 si a modulului Wi-Fi, care se conecteaza la un AP static, iar apoi deschide 2 conexiuni, una UDP si una TCP, cu server-ul remote. Se foloseste un timeout la citirea raspunsurilor de la modulul Wi-Fi in initializare si, apoi, in transmisiile de date, timeout care se realizaeza cu un timer setat sa masoare milisecunde. Dupa initializarea modulului Wi-Fi, se initializeaza ADC-ul, care ruleaza in Free Running Mode, la o frecventa de 125kHz. 
 + 
 +Dupa initializare,​ bucla de program asteapta ca datele de la ADC sa depaseasca un threshold de intensitate audio (media ultimelor N valori in modul citite de ADC sa fie mai mare de un threshold), apoi incepe sa socheze date intr-un buffer de 508 bytes. Cand acesta se incarca, datele sunt trimise prin UDP print-un pachet cu formatul `<​packet_index>​(4 bytes):<​data>​(508 bytes)`. Odata trimise datele, programul asteapta un acknowledgement de la server si apoi va verifica daca inca mai exista intensitate audio; daca da, va continua sa colecteze date si sa trimita pachete; daca nu, va trimite un pachet cu formatul `FFFF:<​filler>​(508 bytes)`, care indica server-ului ca a primit ultimul pachet. 
 + 
 +Server-ul este un program in python, care asteapta datele de la MC, apoi foloseste functionalitati din biblioteca `wave` pentru a realiza un fisier .wav, si apoi repeta pasii. 
 + 
 +Se remarca folosirea timer-ului pentru masurarea milisecundelor,​ a ADC-ului pentru citirea de date, si a UART-ului pentru comunicarea cu modulul Wi-Fi. Validare sistemului s-a realizat prin testare manuala a diverselor situatii de functionare. 
 + 
 +Calibrarea sensitivitatii microfonului s-a realizat hardware, prin schimbarea amplificarii amplificatorului operational.
  
-- Rezistente 
pm/prj2025/fstancu/cristian.lazar1512.1746570480.txt.gz · Last modified: 2025/05/07 01:28 by cristian.lazar1512
CC Attribution-Share Alike 3.0 Unported
www.chimeric.de Valid CSS Driven by DokuWiki do yourself a favour and use a real browser - get firefox!! Recent changes RSS feed Valid XHTML 1.0