Differences

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

Link to this comparison view

pm:prj2025:iotelea:robert.hazaparu [2025/05/11 11:09]
robert.hazaparu Remove note blocks
pm:prj2025:iotelea:robert.hazaparu [2025/05/30 07:28] (current)
robert.hazaparu Final edit
Line 1: Line 1:
-====== ​Sprech? (Name TBD) ======+====== ​Chor ======
 Autor: Hazaparu Robert \\ Autor: Hazaparu Robert \\
 Grupa: 332CD Grupa: 332CD
Line 5: Line 5:
 ===== Introducere ===== ===== Introducere =====
  
-<> ​este un sistem dualun radio și un player ​de fișiere audio în format .wav de pe un card SDScopul este de a oferi o interfață simplă, ​accesibilă ale unor sisteme des utilizate ​de toată lumea, similar cu sistemul ​radio dintr-o mașină.+Scopul proiectului ​este de a crea un sistem dual ce poate acoperi toate cerințele utilizatorilor legate de redarea de conținut audio. Acesta incorporează ​un card SD de pe care se pot citi fișiere audio, precum și un radio cu reglare automatăAccentul cade pe o interfață simplă, ​dată de un ecran LCD și 6 butoane. În ansambluacesta este similar cu sistemul ​audio dintr-o mașină. 
 + 
 +Inspirația vine din laboratul 5 pentru care nu au fost pregătite cardurile SD. 
 ===== Descriere generală ===== ===== Descriere generală =====
  
-Interfața generală este dată de șase butoane: ​play/pausestop, previous, next, volume+ ​și volume-, un diplay ​ce prezintă informații legate de ce se difuzează și, evident, un difuzor. Alegerea dintre modul radio sau modul player este făcut printr-un buton sau printr-un întrerupător,​ mai vedem. Semnalele celor două module sunt multiplexate pentru a folosi același amplificator și difuzor pentru ambele moduri de funcționare.+Interfața generală este dată de șase butoane: ​volume-volume+, previous, next, play/​stop ​și un buton prin care se poate schimba modul de funcționareîn modul de player SD sau de radio. De altfel, mai este prezent și un ecran LCD ce prezintă informații ​pertinente ​legate de ce se difuzează, numele fișierului în cazul modului SD sau informații RDS în cazul modului radio.
  
-{{ pm:​prj2025:​iotelea:​robert.hazaparu:​sprech_diagram.png }}+Elementul central este dat de o placă Plusivo cu un microcontroller ATMega328PAcesta comandă un modul de interfațare cu un card microSDHC, un modul radio, un display LCD 16x2 cu un modul de translatare din I2C atașat, și un multiplexor.
  
-Legătura dublă ​dintre ​microcontroller și multiplexor este dată, pe de o partede alegerea semnalului de output ​și pe de altă parte, de transmiterea datelor audio de la cardul SD.+Alegerea ​dintre ​cele două surse de sunetcardul SD sau radio, se face prin intermediul multiplexorului. Astfel, este necesar un singur amplificator ​și difuzor pentru a reda conținutul. 
 + 
 +{{ pm:​prj2025:​iotelea:​robert.hazaparu:​chor_diagram_v2.png }}
  
 ===== Hardware Design ===== ===== Hardware Design =====
Line 18: Line 23:
 Hardware necesar: Hardware necesar:
  
-  * Placă ​Arduino/ESP32 +  * Placă ​Plusivo ATMega328P: https://www.optimusdigital.ro/​ro/​compatibile-cu-arduino-uno/​1678-placa-de-dezvoltare-compatibila-cu-arduino-uno-atmega328p-i-ch340.html 
-  * 6 (7/8) butoane +  * Cititor card microSD ​GroundStudio:​ https://​ardushop.ro/​ro/​module/​1553-groundstudio-microsd-module-6427854023056.html Nu îl recomand dar nu mai aveau la Optimus 
-  * (Întrerupător) +  * Modul radio FM cu RDS RDA5807M: https://​ardushop.ro/​ro/​electronica/​2332-modul-radio-fm-rrd-102-6427854004321.html Distanța dintre pini nu e standard 
-  * Cititor card SD/microSD +  * Multiplexor CD4053BE: https://​ardushop.ro/​ro/​circuite-integrate/​649-circuit-integrat-multiplexor-cd4053be-6427854008084.html 
-  * Modul radio cu RDS RDA5807M +  * Modul GS26347 cu amplificator ​LM386: https://​ardushop.ro/​ro/​electronica/​2095-modul-amplificator-audio-lm386-6427854032065.html 
-  * Multiplexor CD4053BE +  * Difuzor ​8-16 ohmi și 3W, eu am de 8 ohmi 1W 
-  * Potențiometru digital X9C103S +  * Display LCD interfațat cu modul I2C 
-  * Amplificator audio LM386 +  * 5 butoane
-  * Difuzor +
-  * Display LCD+
   * Breadboard   * Breadboard
   * Rezistori   * Rezistori
-  * Condensatoare 
   * Fire   * Fire
 +{{ pm:​prj2025:​iotelea:​robert.hazaparu:​chor_electrical_diagram_v2.png?​750 }}
 +
 +  * Antenă, aparent
 +
 +Explicare cablaj:
 +  * Butoanele sunt ținute la Vcc în mod normal, separat de linia principală printr-un rezistor, și legate la masă atunci când sunt apăsate.
 +  * Cele două ieșiri stereo ale modulului radio sunt combinate într-unul singur, mono, protejat prin rezistori.
 +  * Liniile SCL și SCK ale I2C sunt ținute la Vcc, separate de linia principală printr-un rezistor.
 +
 +^ Componentă ^ Pini folosiți ^
 +| Buton 1 | PD3 (Arduino 3) |
 +| Buton 2 | PD4 (Arduino 4) |
 +| Buton 3 | PD5 (Arduino 5) |
 +| Buton 4 | PD6 (Arduino 6) |
 +| Buton 5 | PD7 (Arduino 7) |
 +| Multiplexor | PB0 (Arduino 8) |
 +| Cititor microSD | SS - PB2 (Arduino 10) |
 +| ::: | SCK - PB5 (Arduino 13) |
 +| ::: | MISO - PB4 (Arduino 12) |
 +| ::: | MOSI - PB3 (Arduino 11) |
 +| ::: | Output sunet - PB1 (Arduino 9) |
 +| Modul radio FM | SCL |
 +| ::: | SDA |
 +| LCD 16x2 I2C | SCL|
 +| ::: | SDA |
 +
 ===== Software Design ===== ===== Software Design =====
  
 +==== Mediu folosit ====
 +  * Arduino IDE
  
-<note tip> +==== Biblioteci ==== 
-Descrierea codului aplicaţiei (firmware): +  * SD și TMRpcm pentru interfațarea cardului SD și redarea asincronă a fișierelor 
-  * mediu de dezvoltare (if any) (e.g. AVR Studio, CodeVisionAVR) +  * LiquidCrystal_I2C pentru afișarea ​de informații pe ecranul LCD 
-  * librării şi surse 3rd-party (e.g. Procyon AVRlib) +  * PU2CLR RDA5708 pentru interfațarea cu modulul radio 
-  * algoritmi şi structuri pe care plănuiţi să le implementaţi + 
-  * (etapa 3) surse şi funcţii implementate +==== Altele ==== 
-</​note>​+  * Întreruperi folosind macro ISR pentru a folosi butoanele 
 +  * Lungimea maximă a numelui fișierelor este foarte mică, așa că numele au fost hardcode-ate
  
 ===== Rezultate Obţinute ===== ===== Rezultate Obţinute =====
  
-<note tip> +{{ pm:​prj2025:​iotelea:​robert.hazaparu:​chor_picture1.jpg?​750 }} 
-Care au fost rezultatele obţinute în urma realizării proiectului vostru+ 
-</note>+Sistemul reușeste să redea conținutul de pe cardul SD la o calitate suficient de satisfăcătoare pentru componentele folosite
 + 
 +Întreruperile funcționează. Există un feedback pe ecranul LCD atunci când sunt apăsate butoane. Pentru play/stop, este afișat un caracter custom ce indică starea sistemului, caracter ce rămâne permanent pe ecran. Pentru volume+/-, next și previous se afișează pentru o scurtă perioadă de timp un caracter ce indică acțiunea realizată, după care se revine la unul din cele două caractere menționate anterior. 
 + 
 +Limita de 12 caractere (8 fără extensia ”.wav”) nu este suficientă pentru a afișa informații pertinente despre ce se difuzează. Am optat să hardcodez aceste informații. 
 + 
 +Alte probleme întâmpinate:​ 
 + 
 +  * Placa ATMega328P nu are suficientă memorie pentru a facilita intefațarea cu modulul radio și cardul SD în același timp. 
 +  * ESP32 folosește cu totul alte biblioteci și module diferite. 
 +  * Se pare că placa ESP32 pe care am comandat-o era stricată :( 
 +  * Recunosc că ar fi trebuit să mă gândesc la asta mai devreme, dar pentru ca un radio să funcționeze,​ are nevoie de antenă. Nu am antenă. Nu funcționează modulul radio. 
 +  * Semnalele sonore sunt foarte predispuse la interferențe. Chiar și trecând doar prin multiplexor,​ apar destule interferențe încât sunetul să devină deranjant. Pentru scopuri demonstrative,​ am optat să trec sunetul direct în amplificator.
  
 ===== Concluzii ===== ===== Concluzii =====
  
-===== Download =====+Analiza cu atenție a cerințelor tehnice, precum și a capabilităților hardware a componentelor ce se vor folosite este un pas important în orice proiect. Fără o analiză corectă, se pot ajunge la întârzieri sau chiar la incapacitatea de la livra un produs după specificațiile cerute.
  
-<note warning>​ +Proiectul ​este funționalpartea ​de SD este exact cum am dorit de la început. Deșam pierdut mult timp încercând să fac placa ESP32 să funcționeze,​ după ce am abandonat acea idee, nu pot spune că mi-a displăcut să lucrez la proiect.
-O arhivă (sau mai multe dacă este cazul) cu fişierele obţinute în urma realizării proiectului:​ sursescheme, etc. Un fişier README, un ChangeLog, un script ​de compilare şcopiere automată pe uC crează întotdeauna o impresie bună ;-).+
  
-Fişierele se încarcă pe wiki folosind facilitatea **Add Images or other files**. Namespace-ul în care se încarcă fişierele este de tipul **:​pm:​prj20??:​c?​** sau **:​pm:​prj20??:​c?:​nume_student** (dacă este cazul). **Exemplu:​** Dumitru Alin, 331CC -> **:​pm:​prj2009:​cc:​dumitru_alin**+Rezistorii ​de 100 de ohmi nu separă nimic
-</​note>​+ 
 +===== Download =====
  
 ===== Jurnal ===== ===== Jurnal =====
  
-<note tip> +  * Am făcut cercetare legat de ce biblioteci și piese sunt necesare. 
-Puteți avea și o secțiune de jurnal în care să poată urmări asistentul ​de proiect progresul proiectului+  * Am făcut schema bloc. 
-</​note>​+  * Am comandat piesele necesare. 
 +  * Potențiometru digital folosește SPI și apar probleme legate de concurența cu citirea cardului SD. 
 +  * Placa cu ATMega328P nu e suficient ​de bună pentru ambele operații intensive de citire card SD + radio, trebuie un ESP32. 
 +  * Am comandat piesele necesare - ESP32, cablu + altele. 
 +  * Nu reușesc ​să mă conectez la ESP32. 
 +  * Renunț la ESP32 și mă întorc la placa cu ATMega328P, măcar să iasă una din două. 
 +  * Placa reușește să redea fișiere audio stocate pe cardul SD. 
 +  * Nu am antenă. 
 +  * Am implementat butoanele și întreruperile. 
 +  * Am implementat ecranul LCD și afișearea ​de informații
 +  * Am pus decorațiuni legate de funcționarea sistemului pe ecran.
  
 ===== Bibliografie/​Resurse ===== ===== Bibliografie/​Resurse =====
  
-<​note>​ +Resurse software: 
-Listă cu documente, datasheet-uri,​ resurse Internet folosite, eventual grupate pe **Resurse Software** şi **Resurse ​Hardware**. +  https://​arduinointro.com/​lcdcustomcharacter/​ 
-</note>+  ​https://​www.instructables.com/​Audio-Player-Using-Arduino-With-Micro-SD-Card/​ 
 +  ​yt-dlp 
 +  ​ffmpeg 
 + 
 +Resurse ​hardware: 
 +  ​https://​docs.arduino.cc/​resources/​pinouts/​A000066-full-pinout.pdf 
 +  ​https://www.instructables.com/​Simple-Way-to-Convert-Stereo-to-Mono/​ 
 +  * https://​www.ti.com/​lit/​ds/​symlink/​cd4053b.pdf?​ts=1748490646974
  
 <​html><​a class="​media mediafile mf_pdf"​ href="?​do=export_pdf">​Export to PDF</​a></​html>​ <​html><​a class="​media mediafile mf_pdf"​ href="?​do=export_pdf">​Export to PDF</​a></​html>​
  
  
pm/prj2025/iotelea/robert.hazaparu.1746950964.txt.gz · Last modified: 2025/05/11 11:09 by robert.hazaparu
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