logo elektroda
logo elektroda
X
logo elektroda
REKLAMA
REKLAMA
Adblock/uBlockOrigin/AdGuard mogą powodować znikanie niektórych postów z powodu nowej reguły.

Nietypowy mówiący termometr

Simon79 15 Kwi 2017 14:23 11718 25
REKLAMA
  • Nietypowy mówiący termometrNietypowy mówiący termometr

    Opisany poniżej "nietypowy mówiący termometr" dla większości osób może się wydać zupełnie niepotrzebnym, zbędnym gadżetem. Jednak dla osób starszych, słabowidzących itd. może okazać się pomocny. Typowe, tanie termometry, nie zawsze posiadają duży i czytelny wyświetlacz. Właśnie z taką myślą powstał termometr, który mówi.

    Założeniem była prostota układu. Stąd zastosowanie DS18B20, ATMEGA8 (ATMEGA88) oraz ciekawego modułu do odtwarzania dźwięku z karty microSD. Wybór padł na DFPlayer Mini, nie tylko za śmiesznie niską cenę, poniżej $2.
    Nietypowy mówiący termometr

    Układ zasilany jest napięciem stabilizowanym 5V pochodzącym z zasilacza wtyczkowego, dlatego na płytce brak stabilizatora, zastosowano tylko dodatkowe kondensatory filtrujące. Do pomiaru temperatury użyto czujnika temperatury DS18B20. Z założenia prezentowany układ miał być termometrem pokojowym, ale ostatecznie zakres temperatury wynosi -55°C do +99,9°C (ograniczenie górnego zakresu wynika z prostoty programu). Wartość odczytanej temperatury zostaje w odpowiedni sposób przetworzona na dziesiątki, jednostki oraz dziesiętne części stopni Celsjusza. Dla poszczególnych liczb i cyfr przyporządkowany jest plik mp3 (może być też wave) z odpowiednim numerem – nazwą tego pliku. Atmega przesyła do modułu ramki z instrukcjami, który plik ma być odczytany, co ostatecznie daje wartość temperatury z czujnika. Oczywiście dodatkowo mówiony jest znak "minus" dla temperatur ujemnych, słowo "przecinek" oraz informacja o "brak czujnika" lub "temperatura poza zakresem termometru" dla temperatur 100°C i wyższych. Celowo zrezygnowałem z mówienia "stopni Celsjusza", gdyż oczywiste jest, że nie w Kelwinach :D . Czujnik temperatury można wlutować bezpośrednio na płytkę lub na przewodzie. Jeśli będzie umieszczony na zewnątrz powinien być dobrze zabezpieczony przed warunkami atmosferycznymi.

    Aby skłonić termometr do powiedzenia temperatury, należy podać na chwilę stan wysoki na PORTC.5 (gniazdo "wejście") np. za pomocą przycisku, lub tak jak to jest w prezentowanym modelu, z wykorzystaniem popularnego czujnika ruchu typu HC-SR501. Właśnie wymiary płytki termometru odpowiadają wymiarom płytce tego czujnika. Potencjometrami należy ustawić minimalną czułość oraz czas trwania sygnału na wyjściu. W przeciwnym wypadku termometr może zostać uaktywniony w sposób przypadkowy a nie poprzez zbliżenie ręki blisko czujnika. Może okazać się konieczne ograniczenie pola widzenia czujnika poprzez jego częściowe zasłonięcie. Po podłączeniu zasilania do termometru wysyłane są instrukcję "startowe" inicjujące moduł do pracy, stąd termometr gotowy jest do działania po kilku sekundach od włączenia.

    Według noty katalogowej modułu DFplayer rezystor 1k ta wejściu Rx jest potrzebny, ze względu na szumy i zakłócenia w wygłaszaniu komunikatów przy zasilaniu 5V, co zresztą jest prawdą. Zarówno czujnik temperatury jak i moduł mogą być zasilane napięciem 3,3V, ale tego nie sprawdzałem.
    Moduł DFplayer mini posiada wewnętrzny wzmacniacz mocy, który w połączeniu z badziewnym głośniczkiem 8Ω i 0,5W z komputera, wydawał niezbyt głośne i kiepskie dźwięki, natomiast z małym głośnikiem od kina domowego dźwięk był przyzwoity i nawet zbyt głośny.

    Dla osób które chciałyby wykonać taki termometr, klika informacji. Zmiana fusebitów dla Atmega8 w stosunku do ustawień fabrycznych polega na zmianie wewnętrznego kwarcu z 1MHz na wewnętrzny 8MHz (low: 0xE4, high: 0xD9). Dla Atmega88 należy pozostawić wewnętrzny kwarc 8MHz ale wyłączyć podział przez 8 (low: 0xE2, high: 0xDF, extended: F9).
    Na płytce ze względu na brak miejsca nie ma gniazda programowania, procesor należy zaprogramować przed wlutowaniem. Gniazdo "wejście" należy wlutować od strony druku, jeśli będzie użyty czujnik ruchu do załączenia termometru. Szczegóły na zdjęciach.

    Nietypowy mówiący termometr Nietypowy mówiący termometr

    Komunikaty głosowe zostały przygotowane w darmowym programie BALABOLKA. Jednak sam program nie zawiera głosów. Jedynym jest systemowy angielski Microsoftu. Należy je zainstalować dodatkowo np. głosy IVONA : EWA, JACEK, MAJA, JAN (wszystkie płatne) czy głos PAULINA (nie mam windows 10 ale chyba jest w nim zainstalowany ten głos). Ponieważ wiąże się to z postanowieniami licencyjnymi, plików dźwiękowych nie udostępniam, należy je wykonać we własnym zakresie. Jest też syntezator mowy polskiej dla środowiska LINUX o nazwie MILENA, pojawiła się też wersja dla windows.
    W ostateczności można nagrać swój własny głos np. w darmowym AUDACITY i mieć swój własny "spersonalizowany" termometr.

    Pliki dźwiękowe powinny posiadać nazwy i treść tak jak poniżej:
    nazwa pliku mp3 / treść komunikatu
    0001 jeden
    0002 dwa
    itd.
    0019 dziewiętnaście
    kolejne pliki to dziesiątki od 20-90
    0020 dwadzieścia
    0021 trzydzieści
    0022 czterdzieści
    itd
    0027 dziewięćdziesiąt
    oraz
    0028 zero
    0029 przecinek
    0030 minus
    0031 brak czujnika
    0032 temperatura poza zakresem termometru

    Pliki najlepiej przenosić na kartę (bezpośrednio bez żadnych podkatalogów) pojedynczo po kolei od 0001 do 0032. Karta sformatowana w FAT32. Wówczas na pewno nie będzie problemów z odtwarzaniem.





    W załączniku znajdują się :
    -plik hex z programem dla Atmega8
    -plik hex z programem dla Atmega88
    -pliki eagle: .sch i .brd
    Załączniki:
    • mówiący termometr.7z (56.99 KB) Musisz być zalogowany, aby pobrać ten załącznik.

    Fajne? Ranking DIY
    O autorze
    Simon79
    Poziom 21  
    Offline 
    Simon79 napisał 428 postów o ocenie 401, pomógł 29 razy. Mieszka w mieście Czeladź. Jest z nami od 2007 roku.
  • REKLAMA
  • #2 16414083
    szymon122
    Poziom 38  
    Posty: 4093
    Pomógł: 302
    Ocena: 758
    Jak możesz to wstaw filmik z przykładowym "odczytem" temperatury. Chcę zobaczyć na ile płynnie to się odbywa.
  • #3 16414185
    Simon79
    Poziom 21  
    Posty: 428
    Pomógł: 29
    Ocena: 401
    Wstawiłem filmik.
    Zapomniałem napisać, że w przypadku pełnych stopni np. 36,0 termometr gada tylko "36", bez "przecinek zero". Wydaje mi się bardziej logiczne.
  • REKLAMA
  • #4 16414357
    krzysiekdg
    Poziom 13  
    Posty: 132
    Ocena: 33
    Dodaj wymowe stopnia celcjusza. Wchodzacy goscie do domu oszaleja slyszac jaka jest temperatura :)
  • REKLAMA
  • #5 16414494
    M. S.
    Poziom 34  
    Posty: 2107
    Pomógł: 259
    Ocena: 680
    Popełniłem taki termometr do auta. Jedna Mega8 mierzy temperaturę i gada PWM'em odczytując w czasie rzeczywistym kartę SD. Nie trzeba do tego modułów wspomagających. Oprogramowanie w Bascomie ze wstawką asemblerową do obsługi karty. Zajętość pamięci 62%.
  • #6 16414526
    japko1024
    Poziom 18  
    Posty: 654
    Pomógł: 3
    Ocena: 212
    Moi koledzy korzystają z jakiegoś darmowego syntezatora mowy z językiem polskim - użyli go w programie na Raspberry Pi (oczywiście z Linuxem) czytającym suchary ze strony internetowej :D. Niestety nie pamiętam, jak się nazywa, ale w każdym razie coś takiego istnieje.
  • #7 16414553
    Simon79
    Poziom 21  
    Posty: 428
    Pomógł: 29
    Ocena: 401
    M. S. napisał:
    Popełniłem taki termometr do auta. Jedna Mega8 mierzy temperaturę i gada PWM'em odczytując w czasie rzeczywistym kartę SD. Nie trzeba do tego modułów wspomagających. Oprogramowanie w Bascomie ze wstawką asemblerową do obsługi karty. Zajętość pamięci 62%.

    Jeśli dysponujesz odpowiednią wiedzą, to owszem, PWM może gadać. Ja, póki co , używam modułu :)
  • #8 16415450
    SylwekK
    Poziom 32  
    Posty: 2764
    Pomógł: 82
    Ocena: 2763
    Bardzo ciekawy układ. Czy przypadkiem użyty moduł nie potrzebuje plików o mało popularnych parametrach? Ostatnio do mojego nowego projektu też szukałem czegoś gadającego i ten moduł właśnie z powodu nietypowych plików wejściowych odrzuciłem, a kupiłem równie mały na GPD2846A za 0.79$ akceptujący popularne mp3.
  • #9 16415496
    Simon79
    Poziom 21  
    Posty: 428
    Pomógł: 29
    Ocena: 401
    Ten moduł współpracuje z formatami Mp3, WAV, WMA. Sprawdziłem z mp3 i wav . Takich modułów jest wiele, może natrafiłeś na opis czegoś egzotycznego.
  • #10 16416939
    george2002

    Poziom 21  
    Posty: 526
    Ocena: 158
    Fajna sprawa, można rzeczywiście ogarnąć Atmega8 + np karta SD ale tutaj autor tak sobie rozwiązał sprawę, z ciekawostek to google translate potrafi mówić i da się z tego pliki dźwiękowe w postaci MP3 wyciągnąć :)
    Konto firmowe:
    GS electronic Grzegorz Stoliński
    2 Pułku Lotniczego 18, Kraków, 31-857 | Strona WWW: www.gselectronic.pl
  • #11 16417013
    kowal011
    Poziom 22  
    Posty: 463
    Pomógł: 21
    Ocena: 266
    Zmieniłbym "przecinek" na "i".
  • #12 16417044
    Simon79
    Poziom 21  
    Posty: 428
    Pomógł: 29
    Ocena: 401
    W pierwotnej wersji miałem "i" zamiast "przecinek", ale zasugerowałem się pewnym rozwiązaniem komercyjnym termometru, gdzie mówił "przecinek".
    Chętnie zobaczyłbym program (najlepiej w Bascom), w którym gada się przez pwm. Do tej pory pwm używałem do zmiany jasności świecenia led i jako przetwornik c/a.
  • #13 16418815
    george2002

    Poziom 21  
    Posty: 526
    Ocena: 158
    Simon79 napisał:
    W pierwotnej wersji miałem "i" zamiast "przecinek", ale zasugerowałem się pewnym rozwiązaniem komercyjnym termometru, gdzie mówił "przecinek".
    Chętnie zobaczyłbym program (najlepiej w Bascom), w którym gada się przez pwm. Do tej pory pwm używałem do zmiany jasności świecenia led i jako przetwornik c/a.


    Proszę bardzo tak na szybko chociaż gdzieś widziałem wyciągane większe jakości dźwięku na Atmega8 z SD w Bascomie ale nie pamiętam czy to było na Polskim czy Zagranicznym gdzieś forum :) ten jest też ciekawie zrobiony bo można w czasie odtwarzania dźwięków normalnie wykonywać inne czynności :)

    Bascom SD wav player
    Konto firmowe:
    GS electronic Grzegorz Stoliński
    2 Pułku Lotniczego 18, Kraków, 31-857 | Strona WWW: www.gselectronic.pl
  • #14 16421027
    george2002

    Poziom 21  
    Posty: 526
    Ocena: 158
    A Tutaj obiecana konwersja Google translate do mp3, działa bdb jak się na przykład wpisze 14:29 ładnie czyta godzinę :) oczywiście temperaturę również np temperatura 23 Stopnie Celsjusza :)
    Konto firmowe:
    GS electronic Grzegorz Stoliński
    2 Pułku Lotniczego 18, Kraków, 31-857 | Strona WWW: www.gselectronic.pl
  • #15 16421044
    PEPE64
    Poziom 17  
    Posty: 155
    Pomógł: 13
    Ocena: 55
    @george2002, rzeczywiście, ładnie czyta i mówi ,,i". A ja proponuję, zamiast ,,i" lub ,,przecinek", ,,koma". Fajnie brzmi:)
  • #16 16421045
    Simon79
    Poziom 21  
    Posty: 428
    Pomógł: 29
    Ocena: 401
    Rzeczywiście, jakość bardzo dobra i jest możliwość zapisu do pliku. Już nie trzeba instalować programów :D
  • #17 16422387
    george2002

    Poziom 21  
    Posty: 526
    Ocena: 158
    PEPE64 napisał:
    @george2002, rzeczywiście, ładnie czyta i mówi ,,i". A ja proponuję, zamiast ,,i" lub ,,przecinek", ,,koma". Fajnie brzmi:)


    Teraz sprawdziłem i tak brzmi najlepiej: "temperatura 23 i jedna dziesiąta stopnia". Taki tekst sobie wpiszcie i sprawdzcie, według mnie najlepiej ;).
    Konto firmowe:
    GS electronic Grzegorz Stoliński
    2 Pułku Lotniczego 18, Kraków, 31-857 | Strona WWW: www.gselectronic.pl
  • #19 16432299
    Simon79
    Poziom 21  
    Posty: 428
    Pomógł: 29
    Ocena: 401
    W załączniku "idea" działania programu.
    Pisałem to rok temu, nie pamiętam dlaczego tak to zrobiłem a nie inaczej :D. Nie pamiętam z jakich materiałów korzystałem, poza pdf modułu. Z pewnością można napisać go lepiej, optymalnej, ale dla mnie wystarczy, że działa.
    Załączniki:
    • fragment.txt (3.48 KB) Musisz być zalogowany, aby pobrać ten załącznik.
  • #20 16470175
    japko1024
    Poziom 18  
    Posty: 654
    Pomógł: 3
    Ocena: 212
    Dałoby się zapisać dźwięki na karcie pamięci bez używania jakiegokolwiek systemu plików, żeby po prostu każdy kolejny zapisany na niej bajt (lub kilka bajtów) odpowiadał następnej próbce dźwięku? Chodzi mi o coś podobnego do nagrań na kasecie magnetofonowej (na której też nie ma zapisanych plików, tylko po prostu sygnał dźwiękowy), tylko oczywiście w formie cyfrowej. Wtedy nie trzeba byłoby kupować dodatkowego modułu ani implementować obsługi systemu plików, jedynie odczyt danych z karty. Gdyby było konieczne nagranie wielu dźwięków, wystarczyłoby zapisać w programie mikrokontrolera ich kolejność i długości, aby mógł odczytywać odpowiednie adresy pamięci.
  • REKLAMA
  • #22 16486416
    Simon79
    Poziom 21  
    Posty: 428
    Pomógł: 29
    Ocena: 401
    Mówienie temperatury aktywowane jest stanem wysokim na wejściu PC.5 (+5V). Są moduły rozpoznawania mowy np. LD3320, EasyVR Shield, Moduł Elechouse Voice Recognition Module, nie wiem dokładnie czy posiadają jakieś wyjście, bo się tym nie interesowałem, ale myślę że tak.
  • #23 19269842
    akr18
    Poziom 11  
    Posty: 104
    Pomógł: 1
    Ocena: 25
    Czy wsad .hex będzie działał z Atmega 328P ?
  • #25 19271420
    akr18
    Poziom 11  
    Posty: 104
    Pomógł: 1
    Ocena: 25
    Ja mam BASCOM'a mógłbym skompilować jak by trzeba.
  • #26 19812922
    PPK
    Poziom 30  
    Posty: 1957
    Pomógł: 94
    Ocena: 428
    akr18 napisał:
    Ja mam BASCOM'a mógłbym skompilować jak by trzeba.

    Też bym chciał. Mam kilka 328P... :(

Podsumowanie tematu

LABEL_AI_GENERATED
Dyskusja dotyczy nietypowego mówiącego termometru, który wykorzystuje układ oparty na mikrokontrolerze ATMEGA8 oraz czujniku temperatury DS18B20. Użytkownicy podzielili się doświadczeniami związanymi z implementacją, w tym użyciem modułu DFPlayer Mini do odtwarzania dźwięków z karty microSD. Wskazano na możliwość modyfikacji komunikatów głosowych, sugerując dodanie stopnia Celsjusza oraz zmiany formatu wypowiedzi. Pojawiły się również propozycje dotyczące rozpoznawania mowy oraz zapisu dźwięków bez systemu plików. Uczestnicy dyskusji wymienili się pomysłami na optymalizację kodu oraz jakość dźwięku, a także poruszyli kwestie związane z kompatybilnością z innymi modelami mikrokontrolerów.
Podsumowanie AI na podstawie dyskusji. Może zawierać błędy.
REKLAMA