Witam,
Chciałbym przedstawić odtwarzacz audio plików WAV. Został on zrealizowany w oparciu o mikrokontroler ATmega32, pomimo to, że wielkość wsadu to zaledwie ok 8-9kB. Tak jednak miałem procesor pod ręką. Program napisany jest w całości w języku C bez żadnych wstawek asemblerowych. Player obsługuje dowolne karty pamięci MMC/SD w tym także MicroSD, które można włożyć w przejściówkę, tak jak to widać na filmikach poniżej. Używam tu zamiennie dwóch kart. Jednej o pojemności 32MB (tej dużej, białej) oraz MicroSD 2GB umieszczonej w niebieskim adapterze.
Playerek obsługuje wyświetlacz alfanumeryczny LCD 2x16, na którym wyświetlają się bieżące informacje takie jak: Stan pracy (play/stop), głośność (regulowana prosto w zakresie 1-4), dokładny czas trwania utworu minuty i sekundy a także nazwę odtwarzanego pliku WAV.
Całość zasilana jest napięciem +3,3V (dodam, że z przetwornic!). Układ obsługuje dodatkowo 3 klawisze oraz 8 diod LED stanowiących prosty wskaźnik wysterowania. Poniżej schemat:
Układ posiada dwa klawisze do zmiany poziomu głośności w prostych 4 zakresach od 1 do 4. Dodatkowo jest jeszcze jeden klawisz o nazwie NEXT, który służy po prostu do przełączania na kolejny utwór/plik dźwiękowy.
Samplerate - czyli prędkość samplowania dostępna w tym playerku to maksymalnie 22,050kHz. Jednak spokojnie odtwarza pliki WAV w których występuje dowolne mniejsze samplowanie
W załączniku dodaję także wsad do mikrokontrolera.
Do komunikacji z kartą SD korzystam ze sprzętowego SPI. Procesor taktowany jest kwarcem 16MHz. Odtwarzanie stereo obsługiwane jest za pomocą dwóch wyjść PWM od Timera1 czyli OC1A oraz OC1B. Na wyjściach pinów podłączyłem kondensatory 100uF.
Przy okazji na filmikach widać (jak dla mnie przynajmniej ciekawostkę) - taki mały sprytny głośniczek miniaturowy wsadzony w obudowę w postaci takiej hmmm jakby laleczki
Na filmiku słychać także dźwięki wydobywające się ze zwykłego wzmacniacza głośnikowego - aczkolwiek zdaję sobie sprawę, że po nagraniu takim jak to - i tak w pewnym sensie następuje utrata jakości.
Generalnie urządzenie PLAYEREK spisuje się świetnie, teraz dopieszczam soft. Nawet na początku filmu widać, że jeszcze nie było takich fiuczerów jak regulacja głośności klawiszami czy też przełączania utworów. Trzeba się było troszkę nagimnastykować żeby w trakcie odtwarzania dźwięków stereo przy 22kHz jeszcze płynnie obsługiwać klawisze, wyświetlanie na LCD itp.
Program działa w oparciu o PetitFAT. Inspiracją projektu był słynny już odtwarzacz WAV ze strony elm-chan
Jednak musiałem całkowicie zmienić ideę jego działania ponieważ autor tamtego projektu użył sporo wstawek asemblerowych i próba przystosowania tego do własnych potrzeb jest nieco uciążliwa. Koncepcja jest całkowicie inna ponieważ elm-chan korzysta z bufora FIFO i odczytu danych bezpośrednio z karty SD do strumienia. Ja tymczasem wykorzystałem wariant w którym mam dwa bufory i cyklicznie wczytuję ich zawartość z karty, przy czym gdy do jednego są wczytywane dane to odtwarzanie następuje z tego drugiego
W sumie i tak każdy plik dźwiękowy trzeba sobie przekonwertować na PC jakimś dowolnym programem (są ich setki - w tym chociażby NERO Wave Editor). Wystarczy wczytać dowolny plik MP3 i skonwertować go na: 22kHz, 16bitów, Stereo
Dla mnie najważniejsze jest to, że pięknie ale to przepięknie odtwarzana jest zwykła mowa ludzka a będę tego potrzebował do komunikatów. Zresztą zastosowań takiego prostego playerka są także tysiące.
Oczywiście ze względu na to, że zajętość FLASH po kompilacji to tylko ok 8kB to całość może zmieścić się spokojnie jak nie w ATmega88 to przynajmniej w ATmega168
Poniżej kilka fotek oraz FILM z akcji:
a tutaj film na którym słychać także mój głos nagrany w komputerze do pliku WAV:
aha - na filmiku - po tym jak słychać wyraźnie mój tekst, gdy coś tam mówię, następuje kolejny plik i taki dość szybki i mało wyraźny także mój tekst: "test majkrofonu" ... to też ja mówię, tyle że mówiłem chyba troszkę za szybko, a nagrywałem przez własny mikrofon i co ważne z samplowaniem tylko 6kHz - które także zostało ładnie odtworzone.
--------------
przy okazji w jednym z postów niżej, tutaj link do niego:
https://www.elektroda.pl/rtvforum/topic2133447.html#10134142
zamieszczam dwa spakowane dwa pliki mp3 w których nagrałem dźwięki z tego PLAYER'ka poprzez wejście liniowe w komputerze, żeby sobie lepiej ocenić jakość dźwięku niż przez to co słychać na filmiku przez kamerkę - bo wiadomo, że tam to gorzej słychać.
------------------
Przy okazji walczę teraz z kilkoma prostymi efektami nad obróbką dźwięku
W przykładowym filmiku, cztery różne osoby czytają ten sam tekst. Najpierw słychać każdą osobę normalnie a później są włączane różne efekty
----------------
EDIT!
na dzień 2011-11-22 - już działa z pełnym powodzeniem samplowanie do maksymalnej częstotliwości 48kHz !!! (czyli jakość nawet nie CD a DAT). Wkrótce nowe przykłady nagranego dźwięku z tej wersji playerka.
próbka dźwięku 44,1 kHz znajduje się w tym poście Link na trzeciej stronie tematu.
Fajne? Ranking DIY
