fratello Postat Martie 10 Partajează Postat Martie 10 Am verificat functionarea butoanelor de volum si canal, sunt OK. Atasez codul modificat pt display OLED. radio.zip Link spre comentariu
modoran Postat Martie 19 Partajează Postat Martie 19 Daca este cineva interesat de problema cu afisarea diacriticelor in yoRadio ( ă â î ș ț Ă Â Î Ș Ț ) , adica transformarea lor in " a i s t A I S T" ca sa fie afisate corect fara modificarea fonturilor sa posteze aici si va pot spune ce sa modificati in yoRadio\src\displays\tools\utf8RusGFX.h Link spre comentariu
hixpp02 Postat Martie 22 Partajează Postat Martie 22 La mine merge bine cu placa NodeMCU ESP-32S, un display de 2.4" cu ST7789 si deocamdata cu un singur MAX98357A. https://imgur.com/a/alSh1fq Pe partea audio o sa incerc cu ceva mai puternic, cu dac i2s separat si un amp diferential cand imi ajung din China. Dupa ce m-am chinuit cu vreo doua placi rosii de VS1053b, care nu prea vroiau sa porneasca de nici un fel... o fi sau no fi ele originale, sau numai eu n-am reusit sa le fac sa functioneze cu acest proiect. Link spre comentariu
val Postat Aprilie 6 Partajează Postat Aprilie 6 La 19.03.2024 la 18:45, modoran a spus: Daca este cineva interesat de problema cu afisarea diacriticelor in yoRadio ( ă â î ș ț Ă Â Î Ș Ț ) , adica transformarea lor in " a i s t A I S T" ca sa fie afisate corect fara modificarea fonturilor sa posteze aici si va pot spune ce sa modificati in yoRadio\src\displays\tools\utf8RusGFX.h Un sfat legat de nivelul de ieșire audio, se poate modifica din src? In cazul modulelor simple cu PAM8403 (2 x 3W) trebuie adăugat la intrare atenuare rezistivă. De asemenea, am câteva ci TDA1387 ( dac i2s) și aș vrea să le folosesc dar nivelul audio pe ieșire este foarte mic. Link spre comentariu
modoran Postat Aprilie 6 Partajează Postat Aprilie 6 Da, nivelul se iesire se poate regla din soft. In mod default are 256 trepte, dar poti folosi mai putine daca vrei volum maxim mai mic ( se poate modifica prin soft sa nu treaca de o limita maxima care o vrei tu ) Din pacate, daca nivelul este deja prea mic nu vad alta solutie decat sa folosesti amplificare externa. Prin pam8403 te referi la DAC-ul integrat, fara codec pe i2s ? Eu nu m-am complicat cu el. Link spre comentariu
val Postat Aprilie 6 Partajează Postat Aprilie 6 (editat) PAM8403 este amplificator audio analogic 2x3 w pe care l-am folosit cu modul i2s PCM5102 sau UDA1334. Modulul Max98357(dac + amplificator mono de 3 W) este in regula întrucât se poate controla câștigul prin pin dedicat. Editat Aprilie 6 de val Link spre comentariu
just Postat Iulie 5 Partajează Postat Iulie 5 La 19.03.2024 la 18:45, modoran a spus: Daca este cineva interesat de problema cu afisarea diacriticelor in yoRadio ( ă â î ș ț Ă Â Î Ș Ț ) , adica transformarea lor in " a i s t A I S T" ca sa fie afisate corect fara modificarea fonturilor sa posteze aici si va pot spune ce sa modificati in yoRadio\src\displays\tools\utf8RusGFX.h Sunt interesat. Care ar fi modificarile respective? Link spre comentariu
dutu590 Postat Iulie 6 Partajează Postat Iulie 6 va salut, si eu sunt interesat de modificarile necesare ! Link spre comentariu
modoran Postat Iulie 8 Partajează Postat Iulie 8 (editat) Nu o sa dau direct fisierul salvat, ci un exemplu de sine statator, sa poata fi testat de oricine, ar trebui sa mearga pe orice platforma. Adaptarea in yoradio e treaba de copy - paste, dar necesita si putina gandire pe langa ( putina ). Codul face asa: - sterge caracterele Unicode '' si '', in locul lor apare un spatiu gol suplimentar - inlocuieste diacriticele cu analogul lor latin, atat uppercae, cat si lowercase ( yoradio afiseaza toate alea in uppercase, se poate modifica, dar din alta parte, am uitat exact in ce fisier ) #include <iostream> #include <cstring> #include <iomanip> #define BUFLEN 260 size_t strlcpy(char *dst, const char *src, size_t siz) { char *d = dst; const char *s = src; size_t n = siz; /* Copy as many bytes as will fit */ if (n != 0) { while (--n != 0) { if ((*d++ = *s++) == '\0') break; } } /* Not enough room in dst, add NUL and traverse rest of src */ if (n == 0) { if (siz != 0) *d = '\0'; /* NUL-terminate dst */ while (*s++) ; } return(s - src - 1); /* count does not include NUL */ } int main() { char strn[300] = { 0 } ; strlcpy ( strn, "îăâÎÂĂșțȘȚabcdaaaaaaaaa", BUFLEN); int index = 0; static char newStr[BUFLEN]; newStr[0] = '\0'; bool uppercase = false; // ă 0xC4 0x83 // Ă 0xC4 0x82 // â 0xC3 0xA2 //  0xC3 0x82 // î 0xC3 0xAE // Î 0xC3 0x8E // ș 0xC8 0x99 // Ș 0xC8 0x98 // ț 0xC8 0x9B // Ț 0xC8 0x9A // 0xE2 0x9D 0xA4 0xEF 0xB8 0x8F // 0xE2 0x9D 0x8C // 0xF0 0x9F 0x8E 0xA4 // not used yet while ( strn[index] ) { if (strlen(newStr) > BUFLEN - 2) break; // debug check, optional std::cout << std::dec << index << " = " << std::setw (2) << std::hex << "0x" << (int)(unsigned char)strn[index] << std::endl; if ((int)(unsigned char)strn[index] >= 0xC3) { switch ( (int)(unsigned char)strn[index]) { case 0xC3: switch ((int)(unsigned char)strn[index + 1]) { case 0xA2: strcat ( newStr, uppercase ? "A" : "a"); index++; break; case 0x82: strcat ( newStr, "A"); index++; break; case 0xAE: strcat ( newStr, uppercase ? "I" : "i"); index++; break; case 0x8E: strcat ( newStr, "I"); index++; break; } case 0xC4: switch ( (int)(unsigned char)strn[index + 1]) { case 0x83: strcat ( newStr, uppercase ? "A" : "a"); index++; break; case 0x82: strcat ( newStr, "A"); index++; break; } case 0xC8: switch ( (int)(unsigned char)strn[index + 1]) { case 0x99: strcat ( newStr, uppercase ? "S" : "s"); index++; break; case 0x98: strcat ( newStr, "S"); index++; break; case 0x9B: strcat ( newStr, uppercase ? "T" : "t"); index++; break; case 0x9A: strcat ( newStr, "T"); index++; break; } case 0xE2: switch ( (int)(unsigned char)strn[index + 1]) { case 0x9D: if ( strlen ( strn ) - index >= 2) // boundary check { if ( (int)(unsigned char)strn[index + 2] == 0x8C ) // 0xE2 0x9D 0x8C { strcat ( newStr, " "); index += 2; break; } } if ( strlen ( strn ) - index >= 5) // boundary check { // 0xE2 0x9D 0xA4 0xEF 0xB8 0x8F if ( (int)(unsigned char)strn[index + 2] == 0xA4 && (int)(unsigned char)strn[index + 3] == 0xEF && (int)(unsigned char)strn[index + 4] == 0xB8 && (int)(unsigned char)strn[index + 5] == 0x8F ) { strcat ( newStr, " "); index += 5; break; } } break; } } } else { char Temp[2] = {(char) strn[index], 0 } ; strcat(newStr, Temp); } index++; } // debug, optional std::cout << std::endl << "strn ( input string ): " << strn << std::endl; std::cout << "c string result: " << newStr << std::endl; return 0; } Editat Iulie 8 de modoran Link spre comentariu
Stefan Postat Septembrie 1 Partajează Postat Septembrie 1 Ceva fain pentru cine este interesat. Sunt date în descriere toate linkurile. Link spre comentariu
Andrew Postat Septembrie 17 Partajează Postat Septembrie 17 La 19.03.2024 la 18:45, modoran a spus: Daca este cineva interesat de problema cu afisarea diacriticelor in yoRadio ( ă â î ș ț Ă Â Î Ș Ț ) , adica transformarea lor in " a i s t A I S T" ca sa fie afisate corect fara modificarea fonturilor sa posteze aici si va pot spune ce sa modificati in yoRadio\src\displays\tools\utf8RusGFX.h Buna! Ma intereseaza modificarea pentru afisarea diacriticelor din limba romana. Am incercat sa traduc o versiune a yoRadio in limba romana, interfata web si afisajul pe ecran etc.. (eu am testat pe un display ILI9488 de 4 inchi, dar se poate adapta la orice display). Momentan singurul lucru care mai lispeste din varianta in limba romana, este afisarea diacriticelor romanesti. Traducerea o puteti descarca pentru teste de aici: https://github.com/DaradiciLevente/yoRadio-mods Link spre comentariu
Postări Recomandate
Creează un cont sau autentifică-te pentru a adăuga comentariu
Trebuie să fi un membru pentru a putea lăsa un comentariu.
Creează un cont
Înregistrează-te pentru un nou cont în comunitatea nostră. Este simplu!
Înregistrează un nou contAutentificare
Ai deja un cont? Autentifică-te aici.
Autentifică-te acum