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

Instrument muzyczny Arduino RFID wykorzystujący moduł RC522 i DF MP3 do interaktywnej gry

unikeyic 27 Sie 2025 07:51 690 0
REKLAMA
Treść została przetłumaczona angielski » polski Zobacz oryginalną wersję tematu
  • #1 21645695
    unikeyic
    Poziom 2  
    Posty: 18
    Ocena: 22
    Entuzjaści sprzętu open-source powszechnie uwielbiają aplikacje Arduino. Dziś przedstawiamy interaktywny instrument muzyczny Arduino RFID, idealny do relaksu i rozrywki. Projekt ten wykorzystuje moduły RFID i MP3 do odtwarzania określonych nut na podstawie danych zebranych przez moduł RFID, tworząc interaktywną grę muzyczną odpowiednią do rozrywki dla dzieci.W projektach elektronicznych, oprócz modułów RFID, powszechnie stosowane są również cewki indukcyjne. Używając kodu koloru induktora , możemy szybko zidentyfikować kluczowe parametry, takie jak indukcyjność i tolerancja, co ma kluczowe znaczenie dla precyzyjnego projektowania obwodów. Na przykład, jeśli planujesz w przyszłości dodać obwód filtra do projektu instrumentu muzycznego, zrozumienie kodów kolorów cewek indukcyjnych ułatwi wybór odpowiedniej cewki.

    Krok 1: Demonstracja zawartości
    Moduł RC522 Mini RFID RF IC do wykrywania, odczytu, zapisu i przesuwania kart, mały rozmiar, 13,56 MHz
    Moduł używany w tym projekcie.

    Schemat połączeń między Arduino Uno a modułem RFID RC522
    To jest schemat okablowania RFID

    Krok 2: Konfiguracja sprzętu
    1.Arduino Uno 1
    2. moduł RFID RC522 1
    3. tagi RFID 7
    4. moduł DF MP3 1
    5.8-omowy głośnik 1

    Krok 3:
    Opublikuj kilka zdjęć sprzętu, aby dać ludziom wizualne zrozumienie

    Głośnik oraz siedem niebieskich tagów RFID z zapisanymi kodami na zielonej macie

    Układ Arduino z modułami RFID, MP3 i oznaczonymi tagami na macie pomiarowej
    Zlokalizuj kodowanie dla każdego tagu przez port szeregowy Arduino. W szczególności otwórz przykładowe pliki Arduino, przejdź do folderu RFID, otwórz plik cardread i załaduj go. Następnie zeskanuj tag RFID za pomocą czytnika RFID i sprawdź kodowanie dla każdego tagu w porcie szeregowym.

    Zrzut ekranu z IDE Arduino z kodem RFID i wynikami w monitorze portu szeregowego

    Monitor szeregowy Arduino pokazujący identyfikatory tagów RFID i status dostępu
    Wyświetl kodowanie tagu po zeskanowaniu tagu w porcie szeregowym

    Krok 4: Schemat połączeń

    Schemat połączeń Arduino Uno z modułami RFID i MP3 oraz głośnikiem

    Krok 5: Zaprojektuj sekcję kodu
    include <spi.h>
    include <mfrc522.h>
    include “Arduino.h”
    include “SoftwareSerial.h”
    unsigned char order[4] = {0xAA,0x06,0x00,0xB0};
    define SS_PIN 10
    define RST_PIN 9
    MFRC522 mfrc522(SS_PIN, RST_PIN); // Create MFRC522 instance.
    SoftwareSerial Serial1(7, 6); // RX, TX
    //============SETUP================
    void setup()
    {
    Serial1.begin(9600);
    volume(0x1E);//Volume settings 0x00-0x1E
    Serial.begin(115200); // Initiate a serial communication
    SPI.begin(); // Initiate SPI bus
    mfrc522.PCD_Init(); // Initiate MFRC522
    Serial.println(“Approximate your card to the reader…”);
    Serial.println();
    }
    void loop()
    {
    // Look for new cards
    if ( ! mfrc522.PICC_IsNewCardPresent())
    {
    return;
    }
    // Select one of the cards
    if ( ! mfrc522.PICC_ReadCardSerial())
    {
    return;
    }
    //Show UID on serial monitor
    Serial.print(“UID tag :”);
    String content= “”;
    byte letter;
    for (byte i = 0; i < mfrc522.uid.size; i++)
    {
    Serial.print(mfrc522.uid.uidByte[i] < 0x10 ? “ 0” : “ “);
    Serial.print(mfrc522.uid.uidByte[i], HEX);
    content.concat(String(mfrc522.uid.uidByte[i] < 0x10 ? “ 0” : “ “));
    content.concat(String(mfrc522.uid.uidByte[i], HEX));
    }
    Serial.println();
    Serial.print(“Message : “);
    content.toUpperCase();
    if (content.substring(1) == “69 E4 3C A3”) //change here the UID of the card/cards that you want to give access
    {
    Serial.println(“Authorized access”);
    Serial.println();
    play(0x01);//Specify playback: 0x01-file 0001
    delay(1000);
    }
    if (content.substring(1) == “67 33 7E 7A”) //change here the UID of the card/cards that you want to give access
    {
    Serial.println(“Authorized access”);
    Serial.println();
    play(0x02);//Specify playback: 0x02-file 0002
    delay(1000);
    }
    if (content.substring(1) == “D7 3F 7C 7B”) //change here the UID of the card/cards that you want to give access
    {
    Serial.println(“Authorized access”);
    Serial.println();
    play(0x03);//Specify playback: 0x03-file 0003
    delay(1000);
    }
    if (content.substring(1) == “F7 E6 51 7B”) //change here the UID of the card/cards that you want to give access
    {
    Serial.println(“Authorized access”);
    Serial.println();
    play(0x04);//Specify playback: 0x04-file 0004
    delay(1000);
    }
    if (content.substring(1) == “E7 B6 72 7B”) //change here the UID of the card/cards that you want to give access
    {
    Serial.println(“Authorized access”);
    Serial.println();
    play(0x05);//Specify playback: 0x05-file 0005
    delay(1000);
    }
    if (content.substring(1) == “37 18 84 7B”) //change here the UID of the card/cards that you want to give access
    {
    Serial.println(“Authorized access”);
    Serial.println();
    play(0x06);//Specify playback: 0x06-file 0006
    delay(1000);
    }
    if (content.substring(1) == “87 2E 79 7A”) //change here the UID of the card/cards that you want to give access
    {
    Serial.println(“Authorized access”);
    Serial.println();
    play(0x07);//Specify playback: 0x07-file 0007
    delay(1000);
    }
    else {
    Serial.println(“ Access denied”);
    delay(1000);
    }
    }
    //==========FUNCTION==========
    void play(unsigned char Track)
    {
    unsigned char play[6] = {0xAA,0x07,0x02,0x00,Track,Track+0xB3};//0xB3=0xAA+0x07+0x02+0x00,that is, the last digit is the checksum
    
    Serial1.write(play,6);
    }
    void volume( unsigned char vol)
    {
    unsigned char volume[5] = {0xAA,0x13,0x01,vol,vol+0xBE};//0xBE=0xAA+0x13+0x01,that is, the last digit is the checksum
    Serial1.write(volume,5);
    }
    ```</mfrc522.h></spi.h>
  • REKLAMA
REKLAMA