Skocz do zawartości

Auduino karta SD


Pomocna odpowiedź

Również witamy.

Ogólnie jest taka możliwość, w tym szczególnym przypadku raczej nie, ale zanim dowiesz się więcej, przeczytaj to:

i weź sobie porady tam opisane do serca.

  • Lubię! 1

Na wstępie chce poinformować ze jestem początkujący w temacie arduino.

Ogólnie chodzi mi o coś takiego jak w podanym przeze mnie linku wyżej, żeby arduino odtwarzało dźwięk, tylko potrzebuję żeby każde z nich odtwarzało inny plik dźwiękowy i przez to moje powyższe pytanie czy nie dałoby radę zrobić to z jednej karty sd, ponieważ stosowanie drugiej dla paru MB pliku trochę mija się z celem

(edytowany)

No wiedzisz, żeby Ci mądrze odpowiedzieć potrzebujemy tego wszystkiego co napisałeś i jeszcze więcej. Proste z pozoru pytania generują całe strony tekstu, a precyzyjnie opisany problem można czasem załtwić jednym "tak" lub "nie".

W tym przypadku wciąż nie wiemy wszystkiego. Na pewno nie możesz podłączyć wprost dwóch niezależnych procesorów do jednej karty. Jeżeli jesteś początkujący i sam nie napiszesz własnego kodu obsługującego kartę SD i wysyłanie próbek wav do wzmacniacza, to jesteś skazany na gotowce. A te są jakie są. Dopóki nie znajdziesz biblioteki umożliwiającej odczyt dwóch strumieni audio jednocześnie na jednym procesorze to nie zrobisz tego metodą podłączenia dwóch Arduino do jednej karty. To dałoby się zrobić, ale oba procesory musiałyby o sobie wiedzieć i wzajemnie synchronizować swoje odczyty. Ta biblioteka na pewno tego nie umie (bo i po co miałaby) więc.. klops. Ja bym zaczął od podążenia tematu odczytów karty SD tak po prostu. Dowiedz się jak jest zorganizowana, jak wygląda komunikacja z nią i jakie prędkości możesz tam osiągnąć. W Arduino problem jest taki, że ma mało RAMu a sektory karty SD (czyli takie najmniejsze jej kawałki) mają 512 bajtów. Musisz mieć takie dwa dla jednego strumienia audio, bo do jednego bufora (obszaru pamięci RAM) czytasz z karty a drugi wysyłasz do wzmacniacza po czym je zamieniasz miejscami. Takie coś zajmuje już na starcie 1024 bajty pamięci a wszystkiego masz w UNO 2048 z czego kilkaset zwykle idzie na różne inne zmienne. Wygląda więc, że dwóch kanałów z dwóch plików na raz odczytywać się w prosty sposób nie da. Gdybyś był doświadczonym programistą, to pewnie jakoś byś sobie poradził, ale teraz na pewno nie.

Gdyby jednak dźwięki, które chcesz odtwarzać były krótkie to być może zmieściłyby się w pamięci ARduino i karta nie byłaby potrzebna. Nie wiemy jednak ani ile sekund nagrań chcesz mieć ani w jakiej jakości. Jeśli budujesz np. dzwonek do drzwi i potrzebujesz kukułki, to 5-6 sekund da się wcisnąć bezpośrednio do FLASHa procesora mega328 i możesz to odtwarzać w wielu kanałach w dowolnych chwilach czasu niezależnie od siebie. Możesz też skorzystać z zewnętrznych pamięci FLASH. Ne wiem czy takie moduły są tańsze niż małe karty SD - chyba nie, ale gdybyś miał coś takiego, to nawet minuta dźwięku nie stanowi wtedy problemu a napisanie własnego programu do odtwarzania (nawet dwóch ścieżek na raz) też nie powinno być takim wyzwaniem jak obsługa wielu plików na SD.

Być może rozwiązaniem jest coś takiego:

https://botland.com.pl/pl/odtwarzacze-mp3-wav-oog-midi/12358-dfrobot-gravity-odtwarzacz-mp3-jq8400-fl-uart.html?search_query=flash&results=399

To gotowy odtwarzacz z własną pamięcią 8MB (i wzmacniaczem), co w przypadku standardu MP3 starczy na kilkanaście minut odsłuchu w całkiem przyzwoitej jakości. Jeśli do tego podepniesz małe Arduino Nano Pro za 12 zł to masz kompletny odtwarzacz reagujący na dowolne zdarzenia.

Edytowano przez Treker
Poprawiłem formatowanie.
  • Lubię! 1

Bądź aktywny - zaloguj się lub utwórz konto!

Tylko zarejestrowani użytkownicy mogą komentować zawartość tej strony

Utwórz konto w ~20 sekund!

Zarejestruj nowe konto, to proste!

Zarejestruj się »

Zaloguj się

Posiadasz własne konto? Użyj go!

Zaloguj się »
×
×
  • Utwórz nowe...