Skocz do zawartości

Sposób na rozbudowane if, switch...


SOYER

Pomocna odpowiedź

(edytowany)
33 minuty temu, ethanak napisał:

Masz 21 + 20 + 5 = 46 plików na powiedzenie godziny.

Ale mnie wychodzi 24 pliki na godziny: zero zero,pierwsza, druga, trzynasta,dwudziesta trzecia...

minuty: od 00 do 19 to 20 plików,

dziesiątki minut to 20,30,40,50 to 4 pliki...

Razem 48 plików, co liczę źle?

3 minuty temu, bjrk napisał:

Co to za dfp? Nie ma tam gdzieś info o zakończeniu odtwarzania?

Jest, tylko pinów na ESP mało;) Poza tym pauzami wprowadza się element dramaturgii:)).

Edytowano przez SOYER
Link do komentarza
Share on other sites

10 minut temu, SOYER napisał:

Ale mnie wychodzi 24 pliki na godziny: zero zero,pierwsza, druga, trzynasta,dwudziesta trzecia...

zero, pierwsza,... dwudziesta. 21 dokładnie (dwudziesta pierwsza to dwa pliki, dwudziesta i pierwsza)

Poza tym ja się pomyliłem, nie 5 tylko 4 pliki dziesiątek minut. Razem 21 + 20 + 4 = 45.

Oryginalnie u ,mnie w mABPlayerze były 24 pliki godzin i 8 plików dziesiątek minut ("dwadzieścia" jako 20 i "dwadzieścia" przed inną cyfrą różnią się wymową). Ale to niewiele zmienia.

 

 

Edytowano przez ethanak
  • Lubię! 1
Link do komentarza
Share on other sites

Zarejestruj się lub zaloguj, aby ukryć tę reklamę.
Zarejestruj się lub zaloguj, aby ukryć tę reklamę.

jlcpcb.jpg

jlcpcb.jpg

Produkcja i montaż PCB - wybierz sprawdzone PCBWay!
   • Darmowe płytki dla studentów i projektów non-profit
   • Tylko 5$ za 10 prototypów PCB w 24 godziny
   • Usługa projektowania PCB na zlecenie
   • Montaż PCB od 30$ + bezpłatna dostawa i szablony
   • Darmowe narzędzie do podglądu plików Gerber
Zobacz również » Film z fabryki PCBWay

(edytowany)
6 minut temu, bjrk napisał:

Ja po prostu nie wiem co to jest "dfp" ani gdzie coś o tym poczytać.

https://wiki.dfrobot.com/DFPlayer_Mini_SKU_DFR0299

 

https://botland.com.pl/odtwarzacze-mp3-wav-ogg-midi/3170-dfplayer-mini-odtwarzacz-mp3-z-gniazdem-microsd.html

https://www.google.com/url?sa=t&source=web&rct=j&url=https://picaxe.com/docs/spe033.pdf&ved=2ahUKEwjX4d-90MnuAhWRl4sKHRdDCXgQFjABegQIARAB&usg=AOvVaw1LbeeyxgOcqB6ZuxCEx6or

5 minut temu, ethanak napisał:

dwudziesta. 21 dokładnie (dwudziesta pierwsza to dwa pliki, dwudziesta i pierwsza)

Fakt.

 

Filmik z pierwszych prób przy nowym (starym) projekcie:

 

Edytowano przez SOYER
  • Pomogłeś! 1
Link do komentarza
Share on other sites

Jeśli ci to pomoże, wycinek z jakiegoś mojego programu. Struktura z dwoma zmiennymi, FileNumber to nr. pliku, FileTime to czas trwania pliku (do czego innego to koszystałem). zapis {0, 3} to nr. pliku, czas trwania.

W katalogu 002 umieszczone sa pliki 000.mp3 (północ), 001.mp3 godzina pierwsza i tak dalej i tak dalej 023.mp3 to dwudziesta trzecie

Nie mam osobnych plików, mp3 wygenerowałem programem TEXT2MP3 z głosem Czubówny i brzmiały : minęła osiemnasta itp itd. 

#define sizeTIME 24                    // ilość plików tablicy timemp3

struct PROGMEM TIMEFile             
{                                                       
    uint8_t        FileNumber;               
    unsigned short FileTime;                          
};                                              

TIMEFile timemp3 [sizeTIME] =
{
	{ 0, 3 }, { 1, 3 }, { 2, 3 }, { 3, 3 }, { 4, 3 }, { 5, 3 }, { 6, 3 }, { 7, 3 }, { 8, 3 },
	{ 9, 3 }, {10, 3 }, {11, 3 }, {12, 3 }, {13, 3 }, {14, 3 }, {15, 3 }, {16, 3 }, {17, 3 },
	{18, 3 }, {19, 3 }, {20, 3 }, {21, 3 }, {22, 3 }, {23, 3 }
};
                                  


void SpeakTime(byte nr_folderu, byte nr_pliku) 
{                                     
    mp3 -> volume(30);                                              // ustaw dźwięk na poziom 30 ------- //
    mp3 -> playSpecific(nr_folderu, timemp3[nr_pliku].FileNumber);  // powiedz która godzina ----------- //
    mp3 -> volume(mp3_volume);                                      // ustaw dźwięk na poziom mp3_vol -- //                                       }       

// --- funkcja odświeżana co 1 sekundę z wątku
void ClockTimeUpdate()                 
{                                      
    CLOCK.updateTime();                
    czas[0] = CLOCK.hours / 10;        
    czas[1] = CLOCK.hours % 10;        
    czas[2] = CLOCK.minutes / 10;      
    czas[3] = CLOCK.minutes % 10;      
    czas[4] = CLOCK.seconds / 10;      
    czas[5] = CLOCK.seconds % 10;      
    godzina = CLOCK.hours;             
    minuta  = CLOCK.minutes;           
	
	if(!munuta ) SpeakTime(2,godzina);
  // tylko jakąś flagę dorobić by nie wywoływać znowu gdy minuty to 00
}                                      

 

Edytowano przez PowerTGS440
  • Lubię! 1
  • Pomogłeś! 1
Link do komentarza
Share on other sites

Zrobione, dziękuję wszystkim za pomoc i zainteresowanie👍👍👍

void pobierzCzas(){
  timeClient.update();
  unsigned long epochTime = timeClient.getEpochTime();
  currentHour = timeClient.getHours();
  currentMinute = timeClient.getMinutes();
  weekDay = timeClient.getDay();

  struct tm *ptm = gmtime ((time_t *)&epochTime); 
  monthDay = ptm->tm_mday;
  currentMonth = ptm->tm_mon+1;
  currentYear = ptm->tm_year+1900;
}
void numeryWAV(){
  playHour=currentHour+141;
  
  if(currentMinute<1){
    playMinute=141;
  }
  else if((currentMinute>0)&&(currentMinute<15)){
    playMinute=currentMinute+164;//numer pliku wav
  }
  else{
    playMinute=currentMinute;
  }
  
  playDayWeek=weekDay+97;//numer pliku wav

  playDayMonth=monthDay+104;//numer pliku wav

  playMonth=currentMonth+85;//numer pliku wav

  playYear=currentYear-1885;//numer pliku wav
}
void mowDate(){
  DFPlayer.play(10);//czesc
  delay(3000);
  DFPlayer.play(9);//dzisiejsza data
  delay(3000);
  DFPlayer.play(playDayWeek);
  delay(2000);
  DFPlayer.play(playDayMonth);
  delay(1500);
  DFPlayer.play(playMonth);
  delay(2000);
  DFPlayer.play(playYear);
  delay(5000);
  DFPlayer.play(14);//aktualna godzina
  delay(2000);
  DFPlayer.play(playHour);//*c
  delay(1800);
  DFPlayer.play(playMinute);
  delay(5000);
  
}

 

  • Lubię! 1
Link do komentarza
Share on other sites

Nie wiem, syntezator? Program Balabolka.

Też mi się nie podoba intonacja nic, a nic, ale nie wiem gdzie szukać poprawnych.

Próbowałem znaleźć ten program o którym mówił @PowerTGS440 ale kupa wyników i darowałem sobie. Choć jak znajdę fajny głos, chętnie nagram ponownie te 170 sampli.

Link do komentarza
Share on other sites

Czyli któraś Ivona.

Błąd jest prosty: masz zamiast "drugiego lutego" dwa oddzielne zdania "drugiego. lutego". Niestety, ivony nie da się zmusić do powiedzenie "połowy" zdania, ale możesz się pobawić np. Audacity i prawidłowo pociąć teksty. Czyli dajesz jej do powiedzenia np. "drugiego października" (ważne, aby drugie słowo zaczynało się spółgłoska wybuchową) i wycinasz samo "drugiego". Trochę roboty jest, ale da się zrobić.

  • Lubię! 2
Link do komentarza
Share on other sites

Dołącz do dyskusji, napisz odpowiedź!

Jeśli masz już konto to zaloguj się teraz, aby opublikować wiadomość jako Ty. Możesz też napisać teraz i zarejestrować się później.
Uwaga: wgrywanie zdjęć i załączników dostępne jest po zalogowaniu!

Anonim
Dołącz do dyskusji! Kliknij i zacznij pisać...

×   Wklejony jako tekst z formatowaniem.   Przywróć formatowanie

  Dozwolonych jest tylko 75 emoji.

×   Twój link będzie automatycznie osadzony.   Wyświetlać jako link

×   Twoja poprzednia zawartość została przywrócona.   Wyczyść edytor

×   Nie możesz wkleić zdjęć bezpośrednio. Prześlij lub wstaw obrazy z adresu URL.

×
×
  • Utwórz nowe...

Ważne informacje

Ta strona używa ciasteczek (cookies), dzięki którym może działać lepiej. Więcej na ten temat znajdziesz w Polityce Prywatności.