Differences

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

Link to this comparison view

pm:prj2025:iotelea:robert.hazaparu [2025/05/04 20:18]
robert.hazaparu
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 =====
  
-<note tip> +Scopul ​proiectului este de 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 șun radio cu reglare automată. Accentul cade pe o interfață simplă, dată de un ecran LCD ș6 butoane. În ansamblu, acesta ​este similar cu sistemul audio dintr-o mașină. 
-Prezentarea pe scurt a proiectului ​vostru: + 
-  * ce face +Inspirația vine din laboratul 5 pentru care nu au fost pregătite cardurile SD.
-  * care este scopul lui +
-  * care fost ideea de la care pornit +
-  * de ce credeţcă este util pentru alţii şi pentru voi +
-</​note>​+
  
-<> este un sistem dual, un radio și un player de fișiere audio în format .wav de pe un card SD. Scopul este de a oferi o interfață simplă, accesibilă ale unor sisteme des utilizate de toată lumea, similar cu sistemul radio dintr-o mașină. 
 ===== 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.
  
-<note tip> +Elementul central este dat de o placă Plusivo ​cu un microcontroller ATMega328P. Acesta 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, șun multiplexor.
-O schemă bloc cu toate modulele proiectului vostru, atât software cât şi hardware însoţită de o descriere a acestora precum şa modului în care interacţionează.+
  
-Exemplu ​de schemă bloc: http://​www.robs-projects.com/​mp3proj/​newplayer.html +Alegerea dintre cele două surse de sunet, cardul SD sau radio, se face prin intermediul multiplexoruluiAstfel, este necesar un singur amplificator și difuzor pentru a reda conținutul.
-</​note>​+
  
-{{ pm:​prj2025:​iotelea:​robert.hazaparu:​sprech_diagram.png }} +{{ pm:​prj2025:​iotelea:​robert.hazaparu:​chor_diagram_v2.png }}
- +
-Legătura dublă dintre microcontroller și multiplexor este dată, pe de o parte, de alegerea semnalului de output și pe de altă parte, de transmiterea datelor audio de la cardul SD.+
  
 ===== Hardware Design ===== ===== Hardware Design =====
- 
-<note tip> 
-Aici puneţi tot ce ţine de hardware design: 
-  * listă de piese 
-  * scheme electrice (se pot lua şi de pe Internet şi din datasheet-uri,​ e.g. http://​www.captain.at/​electronic-atmega16-mmc-schematic.png) 
-  * diagrame de semnal ​ 
-  * rezultatele simulării 
-</​note>​ 
  
 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.1746379137.txt.gz · Last modified: 2025/05/04 20:18 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