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

"Głośnik" z czytnikiem RFID i czytnikiem karty sd

kwawer 25 Cze 2025 21:35 438 10
REKLAMA
  • #1 21589508
    kwawer
    Poziom 10  
    Posty: 6
    Pewne dwie firmy w Polsce miały lub nadal mają kolekcje figurek, które po położeniu na głośnik odtwarzają pliki audio (mp3) z karty SD. Niestety głośniki są awaryjne, konstrukcja jest dedykowana i ciężka w naprawie. Więc wpadłem na pomysł próby stworzenia samemu takiego głośnika, który odtworzy pliki audio. Z pomocą przyszło trochę AI, które pomogło skompletować potrzebne elementy do przeprowadzenia tego eksperymentu.

    I tak ostatecznie otrzymałem taką listę elementów:
    - Mikrokontroler UNO R3 zgodny z Arduino Uno, z układem CH340
    - Czytnik RFID RC522 13,56 MHz (mam nadzieję, że uda mi się tym układem odczytać tagi RFID z figurek, na hiszpańskim forum pisali, że to się udało)
    - Odtwarzacz MP3 DFPlayer Mini (lub bez Mini) z gniazdem microSD
    - Głośnik 3 W 8 Ω
    - Płytka stykowa 830 pól
    - Zestaw przewodów połączeniowych (męsko-męskie)
    - Rezystory 1 kΩ i 2 kΩ

    Mam też teoretycznie informacje, jak to połączyć, jak obniżyć napięcie między Arduino Uno z 5 V do 3,3 V dla RC522 i DFPlayer, ale przed połączeniem tego fizycznie chciałbym to przetestować na sucho, czy układ się nie spali po fizycznym podłączeniu. AI twierdzi, że nie ma oprogramowania, które miałoby te wszystkie wymienione układy. Więc zastanawiam się, czy da się to jakoś przetestować wirtualnie.

    Będę wdzięczny za pomoc, a jak ostateczny układ uda mi się zbudować, to dam tutaj znać.
  • REKLAMA
  • #2 21589544
    Karaczan
    Poziom 42  
    Posty: 6697
    Pomógł: 866
    Ocena: 1108
    Jak niby Arduino ma wysłać po powolnym UART "mp3" zakodowane w figurce?
    Niewykonalne.

    Jak już to najpierw dowiedz się jak te figurki przesyłają dane.
    I jakie to dane.

    RFID, NFC.
    Przesyłają pełne dane audio, czy może tylko identyfikator muzyczki, która to na stałe jest zapisana w odtwarzaczu?
    Obstawiałbym że przesyłają sam nr ID piosenki zakodowanej w odtwarzaczu, bo zwykłe RFID które tam może być to za dużo danych nie przesyła.

    Figurki pewnie bezbateryje?
    Coś na wzór Nintendo Amiibo?
  • REKLAMA
  • #3 21589643
    kwawer
    Poziom 10  
    Posty: 6
    Figurka wysyła sygnał RFID, a plik audio jest na karcie microSD i prawdopodobnie określony znacznik RFID uruchamia określony plik. Chociaż w gotowym głośniku musi być jakiś zautomatyzowany mechanizm, bo starsze głośniki radzą sobie tylko z plikami 01_opis do 99_opis, a nowszy głośnik obsługuje też pliki z trzema cyframi na początku nazwy pliku.

    Oficjalny głośnik w środku zasilany jest baterią, którą ładuję się przez micro USB.

    Plik audio odczytany z karty SD będzie odtwarzany w podłączonym głośniczku, a nie będzie przesłany do komputera.
  • REKLAMA
  • #4 21589648
    Karaczan
    Poziom 42  
    Posty: 6697
    Pomógł: 866
    Ocena: 1108
    To UNO wystarczy by zdekodować i odpalić potrzebny plik na DFPlayer.
    Ale zamiast UNO użyłbym czegoś mniejszego gabarytowo, bo to jednak krowa jest niepraktyczna, nawet ją z breadboardem kijowo się łączy do prototypowania.
    Weź przynajmniej NANO
  • #5 21589653
    kwawer
    Poziom 10  
    Posty: 6
    Ok, dzięki za sugestie.

    Pytanie, czy da się taki układ przetestować wirtualnie, czy się nie spali. Z tego, co znalazłem, to Arduino ma 5 V, a czytnik RFID i ta płytka z playerem mają 3,3 V. Ponieważ nie mam doświadczenia praktycznego w budowaniu układów elektrycznych, myślałem, że może jest oprogramowanie, które pozwoli zweryfikować, czy układ się nie przepali.
  • REKLAMA
  • #6 21589674
    Karaczan
    Poziom 42  
    Posty: 6697
    Pomógł: 866
    Ocena: 1108
    Niektóre Arduino, np Pro Micro można zasilać na 3.3V. Wtedy odpada kombinowanie.

    Możesz też użyć konwertera napięć logicznych 5V-3.3V, lub zwykłego dzielnika napięcia na rezystorach.

    Ale to mniejszy problem, bo pewnie i tak nie masz kodu który wgrasz w Arduino, i będzie funkcjonować tak jak wymyśliłeś ;)
  • #7 21589833
    kwawer
    Poziom 10  
    Posty: 6
    Kod do Arduino to nie powinien być problem. Z kodem wprawdzie nie do Arduino, ale ogólnie kodem to ja pracuję na co dzień.
  • Pomocny post
    #8 21590307
    emarcus
    Poziom 20  
    Posty: 341
    Pomógł: 40
    Ocena: 67
    kwawer napisał:
    Kod do Arduino to nie powinien być problem. Z kodem wprawdzie nie do Arduino, ale ogólnie kodem to ja pracuję na co dzień.

    Skoro jest tak dobrze, to o wiele lepszym zestawem byłby układ wzorowany na zespolonym projekcie z tych 2-ch poniżej prezentacji:
    https://www.youtube.com/watch?v=9Iver4gBQqo
    oraz
    https://randomnerdtutorials.com/esp8266-nodemcu-mfrc522-rfid-reader-arduino/
    albo (with esp32):
    https://randomnerdtutorials.com/esp32-mfrc522-rfid-reader-arduino/

    e marcus
  • #9 21590382
    kwawer
    Poziom 10  
    Posty: 6
    >>21590307 Kod nie jest problemem, jeżeli jest dużo źródeł o tym. Arduino brzmi dla mnie jak dobrze obadany temat, oczywiście rozglądam się za mniejszymi układami, finalnymi, ale skądś muszę wiedzieć, jak te elementy ze sobą połączyć. W tym momencie korzystam z pomocy Perplexity, a jeżeli coś jest mniej popularne, to Perplexity może nie zwrócić dobrych informacji. Ale dzięki za sugestie, innych obadam temat.

    Czemu te układy byłyby lepsze, tzn. w czym byłyby lepsze?
  • #10 21590783
    emarcus
    Poziom 20  
    Posty: 341
    Pomógł: 40
    Ocena: 67
    kwawer napisał:
    >>21590307 Kod nie jest problemem, jeżeli jest dużo źródeł o tym. Arduino brzmi dla mnie jak dobrze obadany temat, oczywiście rozglądam się za mniejszymi układami, finalnymi, ale skądś muszę wiedzieć, jak te elementy ze sobą połączyć.(*1) W tym momencie korzystam z pomocy Perplexity, a jeżeli coś jest mniej popularne, to Perplexity może nie zwrócić dobrych informacji. Ale dzięki za sugestie, innych obadam temat.

    Czemu te układy byłyby lepsze, tzn. w czym byłyby lepsze? (*2)

    Ad (*1) Pokazane w sugerowanych Y/T prezentacjach.... (do oglądnięcia z zainteresowaniem!).

    Ad (*2)
    - Krotnie szybsze w porównaniu do Uno;
    -Programowalne w śodowisku Arduino;
    - Nie jest wymagana konversja poziomów napięć (5V -> 3.3V);
    - gabarytowo dużo mniejsze niż UNO;
    -możliwość ewentualnego rozszerzenia funkcjonalności komunikacji w Wi-Fi (własny koncept?)
    - TAŃSZE!;
    - więc są......, czy nie?

    e marcus
  • #11 21648815
    kwawer
    Poziom 10  
    Posty: 6
    Minęło trochę czasu od moich postów, ale czas na uaktualnienie postępu.

    Etap 1

    Prototyp układu elektronicznego z ESP32, czytnikiem RFID RC522 i figurkami z tagami RFID na macie montażowej.

    Zdecydowałem się na układ:
    - ESP32
    - RC522
    - DFPlayer

    Wszystko połączone na płytkach stykowych

    Problemem okazało się, że DFPlayer ma dość ubogą kontrolę nad plikami z karty SD, a miałem dwa różne przypadki:
    a) na karcie pliki MP3 z chińskimi znakami znajdowały się w katalogu z chińskimi znakami.
    b) na karcie pliki .smp (zakodowane MP3) w katalogu z alfanumeryczną nazwą
    Mimo że udało się odtworzyć pliki MP3 po przyłożeniu tagu RFID, to rozwiązanie było bardzo ograniczone, bo wymagało odpowiedniego dostosowania karty SD i nie było możliwe użyć oryginalnych kart pamięci.

    Na tym etapie udało mi się jednak z figurek ze znacznikami RFID odczytać dane i wykryć, gdzie w pamięci RFID przechowywany jest numer figurki. Dla jednej kolekcji nawet udało się odtworzyć na karcie MIFARE 1K znacznik RFID tak, aby symulował figurkę. Niestety druga kolekcja miała niestandardowe ustawienia dostępu do danych karty i o ile bez problemu dało się odczytać, o tyle zaprogramować czystą kartę, aby symulowała przyłożenie figurki do głośnika, nie było możliwe.

    W tym etapie prac pojawiły się więc dwa problemy:
    - Lepsza kontrola nad odczytanymi plikami (chińskie znaki w nazwie pliku/folderu) i konieczność zdekodowania plików .smp
    - Problem z reprodukowaniem znaczników RFID z jednej kolekcji

    Etap 2

    Zamieniłem DFPlayer na czytnik kart SD, kupiłem też PAM8403 z pokrętłem, ale nie jestem jeszcze tak biegły w lutowaniu, więc zamówiłem inny układ PAM8430, który ma mieć już wszystko wlutowane.

    Udało się odczytać dane z karty SD, gdzie w nazwach plików i katalogów były chińskie znaki (chociaż trochę się namęczyłem, żeby znaleźć odpowiednią bibliotekę i konfigurację).

    Udało się odczytać pliki .smp i skonwertować na MP3

    Co dalej:
    - podłączenie układu PAM8430 i głośniczka
    - znalezienie karty z publicznym dostępem do bloków pamięci w RFID bez uwierzytelnienia kluczem A lub B
    - dopracowanie programu tak, aby działał identycznie jak w oryginalnych głośnikach


    I na tym etapie będę mógł zastanawiać się, jak to razem ubrać w jakąś zgrabną obudowę głośnika. Oryginalne głośniczki mają chyba jedną dedykowaną płytkę drukowaną PCB, ale kompletnie się na tym nie znam. Więc szukam jakiegoś rozwiązania pośredniego

    PS. Zastanawiałem się, czy te swoje przygody z budowaniem układu elektronicznego nie publikować na jakimś blogu, co o tym myślicie?

Podsumowanie tematu

✨ Dyskusja dotyczy stworzenia własnego głośnika z czytnikiem RFID i odtwarzaczem plików audio z karty microSD, wzorowanego na istniejących w Polsce kolekcjach figurek odtwarzających dźwięk po wykryciu tagu RFID. Proponowany zestaw elementów obejmuje mikrokontroler Arduino UNO R3, czytnik RFID RC522 13,56 MHz, odtwarzacz MP3 DFPlayer Mini, głośnik 3 W 8 Ω oraz niezbędne komponenty do połączenia i obniżenia napięcia z 5 V do 3,3 V. Wskazano, że Arduino UNO jest wystarczające do sterowania odtwarzaczem, lecz zalecane są mniejsze moduły, np. Arduino Nano lub ESP32, które oferują lepszą wydajność, mniejsze gabaryty, brak konieczności konwersji napięć oraz możliwość rozszerzenia funkcji o Wi-Fi. Problemem jest ograniczona kontrola DFPlayer nad plikami na karcie SD, szczególnie przy plikach z nazwami zawierającymi znaki spoza standardowego alfabetu. Udało się odczytać dane RFID i symulować figurkę na karcie MIFARE 1K. Zasugerowano wykorzystanie symulacji i konwerterów napięć do ochrony układu. Kodowanie i integracja elementów jest możliwa dzięki dostępności licznych źródeł i środowisku Arduino.
Wygenerowane przez model językowy.
REKLAMA