Differences

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

Link to this comparison view

pm:prj2023:apredescu:karaoke-machine [2023/05/30 00:13]
andrei.otetea [Descriere generală]
pm:prj2023:apredescu:karaoke-machine [2023/05/30 00:33] (current)
andrei.otetea [Software Design]
Line 42: Line 42:
   * **void setup()**- Setez seriala pe 9600 baud, inițializez obiectele TMRpcm și SdFat, inițializez LCD-ul și configurez întreruperile pentru Timer2 la 10ms.   * **void setup()**- Setez seriala pe 9600 baud, inițializez obiectele TMRpcm și SdFat, inițializez LCD-ul și configurez întreruperile pentru Timer2 la 10ms.
   * **ISR(TIMER2_COMPA_vect)** - o dată la 10ms, atunci când e cazul, cresc timpul trecut din melodie si actualizez scorul   * **ISR(TIMER2_COMPA_vect)** - o dată la 10ms, atunci când e cazul, cresc timpul trecut din melodie si actualizez scorul
-  * **void loop()**- verific dacă oricare dintre butoane sunt apăsate, dacă nu e pauză verific dacă ar trebui modificat textul de pe LCD și, dacă primesc comanda **S** pe serială afișez scorul curent+  * **void loop()**- verific dacă oricare dintre butoane sunt apăsate, dacă nu e pauză verific dacă ar trebui modificat textul de pe LCD și citesc noul text care ar trebui afișat pe LCD, și, dacă primesc comanda **S** pe serială afișez scorul curent
   * **void displayTextOnLCD(const char* text)** - afișează textul primit pe ambele linii ale LCD-ului   * **void displayTextOnLCD(const char* text)** - afișează textul primit pe ambele linii ale LCD-ului
   * **bool isWAV(const char* filename)** - verifică dacă un fișier are extensia .wav.   * **bool isWAV(const char* filename)** - verifică dacă un fișier are extensia .wav.
Line 49: Line 49:
   * **unsigned long parseTimestamp(const char* timestampStr)** - transformă un string ce conține ora în formatul MM:SS.MM în milisecunde.   * **unsigned long parseTimestamp(const char* timestampStr)** - transformă un string ce conține ora în formatul MM:SS.MM în milisecunde.
   * **void performAction(int buttonIndex)** - în funcție de butonul apăsat, execută acțiunea asociată lui   * **void performAction(int buttonIndex)** - în funcție de butonul apăsat, execută acțiunea asociată lui
 +      * mic on/off
 +      * pause/play
 +      * next - de fiecare dată când apăs next trec la următoarea melodie de pe cardul microSD. Dacă am epuizat toate melodiile, o iau de la început. De asemenea, deschid și fișierul cu lyrics, folosind același basename, schimbând doar extensia și afișez pe LCD titlul melodiei curente ​
  
 Ca să pot folosi biblioteca TMRpcm a trebuit sa modific in fișierul de configurare **pcmConfig.h** sa decomentez urmatoarele:​ Ca să pot folosi biblioteca TMRpcm a trebuit sa modific in fișierul de configurare **pcmConfig.h** sa decomentez urmatoarele:​
    * **#define SD_FULLSPEED** - ca sa citesc cât mai repede    * **#define SD_FULLSPEED** - ca sa citesc cât mai repede
-   * **#define SDFAT** - ca sa pot folosi împreună cu biblioteca ​sdFat+   * **#define SDFAT** - ca sa pot folosi împreună cu biblioteca ​SdFat
    * **#define buffSize 128** - am crescut buffer-ul    * **#define buffSize 128** - am crescut buffer-ul
 + 
 === Setup date microSD === === Setup date microSD ===
  
-Pentru a stoca fișierele am ales formatul WAV și am comprimat fișierele cu următoarele setări pe site-ul [[https://​audio.online-convert.com/​convert-to-wav]]:​ +Pentru a stoca fișierele ​audio am ales formatul WAV și am comprimat fișierele cu următoarele setări pe site-ul [[https://​audio.online-convert.com/​convert-to-wav]]:​ 
-  * Bit resolution: 8 Bit +  * Rezoluție biți: 8 Bit 
-  * Sampling rate: 16000 Hz +  * Rata de eșantionare: 16000 Hz 
-  * Audio channels: mono +  * Canale audio: mono 
-  * PCM format: PCM unsigned 8-bit+  * Format ​PCM: PCM U8
  
-Fișierele ​LRC stochează versurile în acest format:+Pentru a stoca lyrics am folosit fișiere LRC; acestea ​stochează versurile în acest format:
  
     [00:​33.95]We are the champions, my friends     [00:​33.95]We are the champions, my friends
pm/prj2023/apredescu/karaoke-machine.1685394788.txt.gz · Last modified: 2023/05/30 00:13 by andrei.otetea
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