Σελίδα 1 από 3 1 2 3 ΤελευταίαΤελευταία
Εμφάνιση αποτελεσμάτων : 1 έως 10 από 27

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

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

    Προεπιλογή Arduino: Αναπαραγωγή WAV αρχείων χωρίς DAC

    Παίζοντας με μια shield SIM900 και έναν Arduino MEGA προστρέχοντας σε βοήθεια στο νήμα

    http://www.hlektronika.gr/forum/showthread.php?t=87726

    ...μου μπήκε η ιδέα πως θα μπορούσα να έχω μια φωνητική επιβεβαίωση στις εντολές που δέχεται το modem.



    Αναρρωτήθηκα λοιπόν αν θα μπορούσα να αποθηκεύσω ηχητικά μηνύματα στην ενσωματωμένη mcroSD (πάνω αριστερά στη φωτογραφία) και με κάποιον τρόπο χωρίς επιπλέον εξαρτήματα
    και κόπο, να τα ακούω με ένα μικρό μεγάφωνο. Βρήκα λοιπόν πως μπορεί κάποιος να αναπαράγει αρχεία .wav απ' ευθείας απο οποιοδήποτε PWM pin, χωρίς εξωτερικό DAC και σε ποιότητα τέτοια
    που όταν την άκουσα, έβαλα τα γέλια απο τη χαρά μου!!! Καταπληκτική!!! Είπα λοιπόν να μοιραστώ τη διαδικασία μαζί σας, μπορεί σε κάποιους να φανεί χρήσιμη! Δεν είναι απαραίτητο όλο
    αυτό το στήσιμο, αρκεί ένας mocroSD reader και ο arduino σας!

    Ξεκινώντας, έπρεπε να αντιμετωπίσω το εξής ζήτημα: οι microSD κάρτες ελέγχονται απο το δίαυλο SPI που όμως αντιστοιχεί σε διαφορετικά pins απο arduino σε arduino (μιλώ για το Hardware SPI).



    Έτσι για να δουλέψει η παραπάνω διαμόρφωση, έπρεπε να χρησιμοποιηθεί Software SPI πρωτόκολλο αλλά σε αντιστοιχία των pins ενός UNO.
    Χάρη στη βιβλιοθήκη SdFat https://github.com/greiman/SdFat/blo...s/SoftwareSpi/ αλλά και επίσης στην
    https://github.com/TMRh20/TMRpcm/wiki για απ' ευθείας ασύγχρονη ανάγνωση αρχείων .wav απο κάρτα microSD (και με κάποιες μετατροπές
    για τις ανάγκες μου), κατόρθωσα να ακούω πολύ καλής ποιότητας ήχο απ' ευθείας απο ένα οποιοδήποτε PWM pin ενός arduino, με τη βοήθεια ενός
    μικρού μεγαφώνου χωρίς ενισχυτή (!!!). Ομολογώ, δεν το περίμενα!

    Εννοείται πως για να υλοποιηθεί αυτό, το μόνο που χρειάζεται είναι ένα μικρό μοντουλάκι αναγνώστη microSD κάρτας, έναν level converter απο 5 στα 3.3V,
    ένα μικρό μεγαφωνάκι, ένας arduino (οποιοσδήποτε!) και προεραιτικά ένα μοντουλάκι ενίσχυσης για μεγαλύτερη ένταση στον ήχο:




    Τα αρχεία πρέπει να έχουν συγκεκριμένο format: μονοφωνικά, 32000Hz, 8bit
    Για να γίνει αυτό, χρησιμοποίησα το ανοιχτού κώδικα, επεξεργασίας ήχου Audacity http://www.audacityteam.org/






    Αποθήκευση ως .wav απ' ευθείας στην κάρτα και για την αναπαραγωγή, απ' ευθείας κλήση στον κώδικα, αφού οριστεί πρώτα ποιο PWM pin θα είναι η ακουστική έξοδος και το επίπεδο
    της έντασης:

    Κώδικας:
      audio.speakerPin = 5;
      audio.setVolume(2);
    Κώδικας:
    #include <SPI.h>
    #include <SdFat.h>
    #include <TMRpcm.h>
    #include <Wire.h>
    //===========================================
    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;
    //===========================================
    SdFatSoftSpi<SOFT_MISO_PIN, SOFT_MOSI_PIN, SOFT_SCK_PIN> sd;
    SdFile file; 
    TMRpcm audio;
    //===========================================
    void setup()
    { 
      Wire.begin();
      audio.speakerPin = 5;
      audio.setVolume(2);
      if (!sd.begin(SD_CHIP_SELECT_PIN)) 
      { 
       Serial.println("SD FAIL!");  
        return;
      }else
      {
        Serial.println("SD OK!"); 
      }
      audio.play("MY_FILE.wav");
    }  
    //===========================================
    void loop()
    {
      
    }


    Και για του λόγου το αληθές, αύριο φωτογραφίες και βιντεάκι.

    Άλλη προσέγγιση στο ίδιο ζήτημα, εδώ:

    https://www.arduino.cc/en/Tutorial/SimpleAudioPlayer, αλλά χρησιμοποιεί τους 16bit DAC ενός arduino DUE.

    13 Not allowed! Not allowed!

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

    angel_grig (29-01-17), CLOCKMAN (29-01-17), CybEng (29-01-17), edgar (30-01-17), elektronio (29-01-17), ezizu (29-01-17), Fire Doger (29-01-17), Fubar.gr (30-01-17), kioan (29-01-17), Lord Vek (29-01-17), SeAfasia (28-01-17), thanasis 1 (30-01-17), usa (30-01-17)

  3. #2
    Μέλος Το avatar του χρήστη SeAfasia
    Όνομα
    SV3IRG Dinos
    Εγγραφή
    Sep 2012
    Περιοχή
    Άργος.
    Μηνύματα
    3.363

    Προεπιλογή

    ελα ναι,
    έξυπνη ιδέα Μάνο....

    0 Not allowed! Not allowed!

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

    Προεπιλογή

    E, εντάξει, δεν είναι και κάτι πρωτότυπο αλλά θεώρησα πως μπορεί κάποιος με λίγο κόπο να κάνει ωραία πραγματάκια παραπάνω στις κατασκευές του.

    Παράδειγμα: Πληκτρολόγιο με φωνητική αναγγελία πλήκτρων με γυναικεία (!) φωνή... Για να γίνει αυτό, έκανα το εξής τέχνασμα: πήγα στο Google translate
    https://translate.google.com/ και με πρωτότυπο κείμενο στα ελληνικά, έγραψα π.χ. "αρχικοποίηση. μόντεμ. παρακαλώ. περιμένετε.". Παρατηρήστε τις τελείες
    και τα κενά ενδιάμεσα που ανακάλυψα πως χρειάζονται για να γίνει σωστά το παρακάτω: υπάρχει ένα εικονίδιο σαν μεγαφωνάκι



    Με το Audicity ανοιχτό και ρυθμισμένο ήδη για εσωτερική εγγραφή στα 32KHz, mono, 8bit, πατάω Record και μετά στο google transltate το listening. Ό,τι λέει η γκόμενα, γράφεται απο το σύστημα των windows και όχι απο το μικρόφωνο σε αρχείο στο Audicity.
    Αποθηκεύεται σαν .wav και εγγράφεται μετά στην microSD. Ακούστε το:

    https://drive.google.com/open?id=0B_...GtqRmVtbWVqc3c

    Πλάκα δεν έχει;

    2 Not allowed! Not allowed!

  5. #4
    Μέλος Το avatar του χρήστη SeAfasia
    Όνομα
    SV3IRG Dinos
    Εγγραφή
    Sep 2012
    Περιοχή
    Άργος.
    Μηνύματα
    3.363

    Προεπιλογή

    Παράθεση Αρχικό μήνυμα από manolena Εμφάνιση μηνυμάτων
    E, εντάξει, δεν είναι και κάτι πρωτότυπο αλλά θεώρησα πως μπορεί κάποιος με λίγο κόπο να κάνει ωραία πραγματάκια παραπάνω στις κατασκευές του.
    shield SIM900 σαν αυτή είμαστε οκ για πειραματισμό;Έχω δει ποικιλία pcb's,τηνπροτείνεις;

    0 Not allowed! Not allowed!

  6. #5
    Μέλος Το avatar του χρήστη Fire Doger
    Όνομα
    Στέφανος
    Εγγραφή
    Jan 2015
    Περιοχή
    .
    Μηνύματα
    1.519

    Προεπιλογή

    Μάνο πολύ ωραίο!
    Αλλά έχω μερικές απορίες.
    Το ίδιο module με την φωτογραφία έβαλες? Δεν θέλουν μετατροπή τα σήματα σε 3.3V για την sd? αυτό δεν φαίνεται να έχει...
    Πόση cpu σου αφήνει ελεύθερη? Μπορείς να κάνεις μια δοκιμή να κάνεις high μια έξοδο όταν μπαίνει στο interrupt και low όταν βγαίνει να δούμε συχνότητα και duty cycle?

    0 Not allowed! Not allowed!

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

    Προεπιλογή

    Παράθεση Αρχικό μήνυμα από SeAfasia Εμφάνιση μηνυμάτων
    shield SIM900 σαν αυτή είμαστε οκ για πειραματισμό;Έχω δει ποικιλία pcb's,τηνπροτείνεις;
    Χαμός γίνεται... Αυτή που έδειξα έχει και υποδοχή κάρτας για να κάνεις data logging. Καλή είναι, σκέφτομαι όμως να παραγγείλω και ποιο μανιτζέβελες:

    http://www.ebay.com/itm/Smallest-SIM...16.m2518.l4276

    0 Not allowed! Not allowed!

  8. #7
    Μέλος Το avatar του χρήστη picdev
    Όνομα
    akis
    Εγγραφή
    Jul 2007
    Περιοχή
    ____
    Μηνύματα
    7.381

    Προεπιλογή

    Πώς γίνεται χωρίς DAC ? Με πιο τρόπο ? Ένας τρόπος θα ήταν με pwm και LC φίλτρο

    0 Not allowed! Not allowed!

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

    Προεπιλογή

    Παράθεση Αρχικό μήνυμα από Fire Doger Εμφάνιση μηνυμάτων
    Μάνο πολύ ωραίο!
    Αλλά έχω μερικές απορίες.
    Το ίδιο module με την φωτογραφία έβαλες? Δεν θέλουν μετατροπή τα σήματα σε 3.3V για την sd? αυτό δεν φαίνεται να έχει...
    Πόση cpu σου αφήνει ελεύθερη? Μπορείς να κάνεις μια δοκιμή να κάνεις high μια έξοδο όταν μπαίνει στο interrupt και low όταν βγαίνει να δούμε συχνότητα και duty cycle?
    Στέφανε τα έχει όλα αυτό το shield. Και level converter, δες το σχηματικό:

    http://farm4.staticflickr.com/3730/1...f729e7a7_b.jpg



    Με την υλοποίηση software τη δική μου, φαντάσου σε έναν 328 "τρώει" 14 στα 32Kb για να πεί ένα αρχείο. Πολύ είναι. Αλλά για έναν 2560, μικρό.

    0 Not allowed! Not allowed!

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

    Προεπιλογή

    Χαχαχααα, μόλις είδα πως ένας μαύρος στο Instructables το έχει κάνει κι αυτός, άρα δεν ανακάλυψα την Αμερική. γμτ!!!

    http://www.instructables.com/id/Play...uino/?ALLSTEPS

    0 Not allowed! Not allowed!

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

    Προεπιλογή

    Παράθεση Αρχικό μήνυμα από picdev Εμφάνιση μηνυμάτων
    Πώς γίνεται χωρίς DAC ? Με πιο τρόπο ? Ένας τρόπος θα ήταν με pwm και LC φίλτρο
    Η βιβλιοθήκη https://github.com/TMRh20/TMRpcm/wiki χρησιμοποιεί έναν έξυπνο αλγόριθμο με buffers και κάποιον ή κάποιους απο τους Timers του μ/Ε και οδηγεί με PWM την έξοδο.

    0 Not allowed! Not allowed!

Σελίδα 1 από 3 1 2 3 ΤελευταίαΤελευταία

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

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

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

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