Σελίδα 3 από 3 ΠρώτηΠρώτη 1 2 3
Εμφάνιση αποτελεσμάτων : 21 έως 27 από 27

Θέμα: Arduino: Αναπαραγωγή WAV αρχείων χωρίς DAC

  1. #21
    Μέλος Το avatar του χρήστη manolena
    Όνομα
    Μάνος
    Εγγραφή
    Dec 2006
    Περιοχή
    Ελευσίνα
    Μηνύματα
    2.709

    Προεπιλογή

    https://www.youtube.com/watch?v=2gMp...ature=youtu.be



    Ένα μικρό βίντεο που δείχνει πως ακούγεται .wav αρχείο αναγνωσμένο απο microSD κάρτα και παιγμένο κατ' ευθείαν σε μικρό μεγάφωνο απο PWM pin ενός Arduino!
    Με τα μέσα που είχα, έφτιαξα στα γρήγορα ένα setup για να δείξω πόσο καλό είναι το κολπάκι με τα αρχεία .wav και πόσο εύκολο είναι επίσης να τα συμπεριλάβει
    κάποιος στα projects του κάνοντάς τα πιο ελκυστικά.

    Πάλι, ένας Arduino MEGA1280, η ίδια shield SIM900 που έχει ενσωματωμένο card reader, ένα 4x4 matrix πληκτρολόγιο, ένα μικρό buzzer για τα μπίπ και ένα επίσης
    μικρό μεγαφωνάκι στα 8Ω, απ' ευθείας πάνω σε ένα PWM pin του Arduino (κανονικά μέσω μιας μικρής αντίστασης για περιορισμό ρεύματος, αλλά το pin αντέχει και
    χωρίς αυτήν). Η ένταση του παραγόμενου ήχου δεν είναι μεγάλη, αλλά μπορεί με σεταρισμένο το volume στο χαμηλότερο (π.χ. audio.setVolume(1); όπου audio είναι η καλούμενη
    κλάση) και ένα μικρό ενισχυτή, π.χ. TDA7052 ή LM386 να έχει μια ικανοποιητική απόδοση.

    Κώδικας:
    #include <SPI.h>
    #include <SdFat.h>
    #include <Wire.h>
    #include <LiquidCrystal_I2C.h>
    #include <Keypad.h>
    #include <TimedAction.h>
    #include <ctype.h>
    #include <avr/interrupt.h>
    #include <WString.h>
    #include <stdio.h>
    #include <stdlib.h>
    #include <conio.h>
    #include <string.h>
    #include <TMRpcm.h>
    //===========================================
    #define LCD_I2C_ADDRESS         0x27
    #define cols                    20
    #define lines                   4
    #define BUZZER_PIN              6
    //===========================================
    #if SD_SPI_CONFIGURATION >= 3
    const uint8_t SOFT_MISO_PIN = 12;
    const uint8_t SOFT_MOSI_PIN = 11;
    const uint8_t SOFT_SCK_PIN  = 13;
    const uint8_t SD_CHIP_SELECT_PIN = 10;
    //===========================================
    const byte ROWS = 4; //four rows
    const byte COLS = 4; //three columns
    
    
    char numberKeys[ROWS][COLS] = {
        { '1','2','3','A' },
        { '4','5','6','B' },
        { '7','8','9','C' },
        { '*','0','#','D' }
    };
    
    
    boolean alpha = false;   // Start with the numeric keypad.
    char key;
    byte rowPins[ROWS] = {29, 27, 25, 23};             //connect to the row pinouts of the keypad
    byte colPins[COLS] = {37, 35, 33, 31};             //connect to the column pinouts of the keypad
    static char virtKey = NO_KEY;      // Stores the last virtual key press. (Alpha keys only)
    static char physKey = NO_KEY;      // Stores the last physical key press. (Alpha keys only)
    static char buildStr[12];
    static byte buildCount;
    static byte pressCount;
    static byte kpadState;
    //===========================================
    LiquidCrystal_I2C lcd(LCD_I2C_ADDRESS, 2, 1, 0, 4, 5, 6, 7, 3, POSITIVE);  // Set the LCD I2C address
    SdFatSoftSpi<SOFT_MISO_PIN, SOFT_MOSI_PIN, SOFT_SCK_PIN> sd;
    SdFile file; 
    Keypad numpad( makeKeymap(numberKeys), rowPins, colPins, sizeof(rowPins), sizeof(colPins));
    TMRpcm audio;
    //===========================================
    void setup()
    { 
      Wire.begin();
      lcd.begin(cols, lines);
      numpad.begin( makeKeymap(numberKeys) );
      numpad.addEventListener(keypadEvent_num);  // Add an event listener.
      numpad.setHoldTime(100);                   // Default is 1000mS
      audio.speakerPin = 5;
    //  audio.setVolume(3);
      Serial.begin(9600);
      
      pinMode(BUZZER_PIN, OUTPUT);
      digitalWrite(BUZZER_PIN, LOW); 
      beepBuzzer(6250,30);
      
      if (!sd.begin(SD_CHIP_SELECT_PIN)) 
      { 
       Serial.println("SD FAIL!");  
        return;
      }else
      {
        Serial.println("SD OK!"); 
      }
      
      lcd.setCursor(0,0);
      lcd.print("  WAV FILES PLAYER  ");
      lcd.setCursor(0,1);
      lcd.print(" NO DAC, PWM OUTPUT ");
      lcd.setCursor(0,2);
      lcd.print("  32KHz MONO, 8bit  ");
      delay(4000);
      lcd.clear();
      lcd.setCursor(0,0);
      lcd.print("KEY PRESSED: ");
    }  
    //===========================================
    void loop()
    {   
      #else  
        #error SD_SPI_CONFIGURATION must be set to 3 in SdFat/SdFatConfig.h
      #endif  
      
      key = numpad.getKey( );    
    }  
    //===========================================
    void beepBuzzer(unsigned long hz, unsigned long ms) 
    {  
      unsigned long us = (750000 / hz);  
      unsigned long rep = (ms * 500L) / us; 
    
    
      for (int i = 0; i < rep; i++) 
      {  
        digitalWrite(BUZZER_PIN, HIGH);  
        delayMicroseconds(us);  
        digitalWrite(BUZZER_PIN, LOW);  
        delayMicroseconds(us);  
      }  
    }
    //===========================================
    void keypadEvent_num(KeypadEvent key) 
    {  
      kpadState = numpad.getState();
      swOnState(key);
    } 
    //===========================================
    void swOnState(char key) 
    {
      switch(kpadState) 
      {
      case PRESSED:
        beepBuzzer(6250,15);
        switch(key)
        {
          case '1':
           audio.play("1.wav");
          break;
          case '2':
           audio.play("2.wav");
          break;
          case '3':
           audio.play("3.wav");
          break;
          case '4':
           audio.play("4.wav");
          break;
          case '5':
           audio.play("5.wav");
          break;
          case '6':
           audio.play("6.wav");
          break;
          case '7':
           audio.play("7.wav");
          break;
          case '8':
           audio.play("8.wav");
          break;
          case '9':
           audio.play("9.wav");
          break;
          case '0':
           audio.play("0.wav");
          break;
          case '*':
           audio.play("star.wav");
          break;
          case '#':
           audio.play("diesi.wav");
          break;
          case 'A':
           audio.play("A_eng.wav");
          break;
          case 'B':
           audio.play("B_eng.wav");
          break;
          case 'C':
           audio.play("C_eng.wav");
          break;
          case 'D':
           audio.play("D_eng.wav");
          break;
        }  
        Serial.print(key);
        lcd.setCursor(0,0);
        lcd.print("KEY PRESSED: ");
        lcd.print(key);
        lcd.print("     ");
        break;
    
    
      case HOLD:
        break;  
        
      case RELEASED:
        delay(500);
        lcd.setCursor(13,0);
        lcd.print(" ");
        break;
      }  
    }// end switch on state function
    //===========================================

    6 Not allowed! Not allowed!

  2. 2 μέλη ευχαρίστησαν τον manolena για αυτό το χρήσιμο μήνυμα:

    picdev (30-01-17), thanasis 1 (30-01-17)

  3. #22
    Μέλος Το avatar του χρήστη thanasis 1
    Όνομα
    Θανάσης
    Εγγραφή
    Jul 2010
    Περιοχή
    ΑΘΗΝΑ
    Μηνύματα
    1.382

    Προεπιλογή

    Χαχα πολυ ωραιο μανο.
    Μονο προσεχε οταν παιζεις με τα κουμπια μην βγει κανενας περιεργος συνδιασμος και το ακουσει η γυναικα σου και εχεις αλλα,μην γινει καμια παρεξηγηση.

    1 Not allowed! Not allowed!

  4. #23
    Μέλος Το avatar του χρήστη manolena
    Όνομα
    Μάνος
    Εγγραφή
    Dec 2006
    Περιοχή
    Ελευσίνα
    Μηνύματα
    2.709

    Προεπιλογή

    Παράθεση Αρχικό μήνυμα από thanasis 1 Εμφάνιση μηνυμάτων
    Χαχα πολυ ωραιο μανο.
    Μονο προσεχε οταν παιζεις με τα κουμπια μην βγει κανενας περιεργος συνδιασμος και το ακουσει η γυναικα σου και εχεις αλλα,μην γινει καμια παρεξηγηση.
    Άστα να πάνε μπλέξαμε με την Αφροδιτούλα!

    Θα βάλω σε κανα κουμπί "Αμάν κυρα-Μαριάνα μου, μας κα@#$%τε μεσημεριάτικα!"

    0 Not allowed! Not allowed!

  5. #24
    Μέλος Το avatar του χρήστη thanasis 1
    Όνομα
    Θανάσης
    Εγγραφή
    Jul 2010
    Περιοχή
    ΑΘΗΝΑ
    Μηνύματα
    1.382

    Προεπιλογή

    Δεν πιστευα οτι τοσο απλα μπορεις να εχεις φωνητικες επιλογες,βασικα δεν το ειχα ψαξει καν γιατι πιστευα οτι θα ειναι αρκετα δυσκολο.
    Τωρα με εβαλες σε αλλαγες,αχ ρε μανο πανο που θα εμφανιζα τις πλακετες.

    0 Not allowed! Not allowed!

  6. #25
    Μέλος Το avatar του χρήστη manolena
    Όνομα
    Μάνος
    Εγγραφή
    Dec 2006
    Περιοχή
    Ελευσίνα
    Μηνύματα
    2.709

    Προεπιλογή

    Παράθεση Αρχικό μήνυμα από thanasis 1 Εμφάνιση μηνυμάτων
    Τωρα με εβαλες σε αλλαγες,αχ ρε μανο πανο που θα εμφανιζα τις πλακετες.
    Και πολύ καλά έκανα!!!

    0 Not allowed! Not allowed!

  7. #26
    Μέλος Το avatar του χρήστη thanasis 1
    Όνομα
    Θανάσης
    Εγγραφή
    Jul 2010
    Περιοχή
    ΑΘΗΝΑ
    Μηνύματα
    1.382

    Προεπιλογή

    Εννοειται δεν μου κακοπεσε.

    0 Not allowed! Not allowed!

  8. Ένα μέλος ευχαρίστησε τον thanasis 1 για αυτό το χρήσιμο μήνυμα:

    manolena (30-01-17)

  9. #27
    Συντονιστής Το avatar του χρήστη kioan
    Όνομα
     
    Εγγραφή
    Mar 2005
    Περιοχή
    127.0.0.1
    Μηνύματα
    3.168

    Προεπιλογή

    Ελαφρώς άσχετο αλλά το είδα και μου έκανε εντύπωση: Είχα πάει και διάβαζα κάποια ενδιαφέροντα άρθρα στο site του δημιουργού της βιβλιοθήκης TMRpcm και εκεί είδα πως σταματά την οποιαδήποτε ανάπτυξη των όσων έχει κάνει. Πήρε αυτήν την απόφαση μετά από κάποιες περίεργες καταγγελίες για ψυχολογικό πόλεμο από τον πρώην εργοδότη του...

    0 Not allowed! Not allowed!
    There are 10 types of people in the world: Those who understand binary, and those who don't.

Σελίδα 3 από 3 ΠρώτηΠρώτη 1 2 3

Παρόμοια Θέματα

  1. πως δουλεύει το L293 χωρίς arduino
    By apollonic in forum Αυτοματισμοί
    Απαντήσεις: 17
    Τελευταίο Μήνυμα: 24-03-14, 15:55
  2. Επεξεργασία αρχείου wav Matlab
    By kostas5683 in forum Ερωτήσεις Θεωρίας
    Απαντήσεις: 1
    Τελευταίο Μήνυμα: 08-06-12, 07:51
  3. ΗΧΟΙ ΓΕΝΝΗΤΡΙΑΣ AF ΣΕ ΑΡΧΕΙΑ MP3 Η WAV
    By Πέτροs in forum Όργανα & Εξοπλισμός
    Απαντήσεις: 1
    Τελευταίο Μήνυμα: 16-12-10, 13:27
  4. Αδύνατη αναπαραγωγή eradio
    By Γεώργιος in forum Software Η/Υ
    Απαντήσεις: 3
    Τελευταίο Μήνυμα: 30-12-09, 16:40
  5. MATLAB αρχεια .wav ?ευεργετες!!!
    By ospite in forum Λογισμικά Σχεδίασης
    Απαντήσεις: 1
    Τελευταίο Μήνυμα: 30-06-06, 04:16

Δικαιώματα - Επιλογές

  • Δημιουργία θεμάτων: Όχι
  • Υποβολή μηνυμάτων: Όχι
  • Σύναψη αρχείων: Όχι
  • Επεξεργασία μηνυμάτων: Όχι
  •  
  • BB code: σε λειτουργία
  • Smilies: σε λειτουργία
  • [IMG]: σε λειτουργία
  • [VIDEO] code is σε λειτουργία
  • HTML: εκτός λειτουργίας