Πίνακας περιεχομένων:
- Βήμα 1: Απαιτήσεις
- Βήμα 2: Οι προδιαγραφές
- Βήμα 3: Ξεκινώντας
- Βήμα 4: Το μικρό κύκλωμα
- Βήμα 5: Βγείτε από το συγκολλητικό σίδερο
- Βήμα 6: Δοκιμή του DAC
- Βήμα 7: Ανάγνωση της κεφαλίδας Wav
- Βήμα 8: Διακοπή, διακοπή…
- Βήμα 9: Διακοπές και διπλή προσωρινή αποθήκευση
Βίντεο: Αναπαραγωγή αρχείων ήχου ήχου (Wav) με Arduino και DAC: 9 βήματα
2024 Συγγραφέας: John Day | [email protected]. Τελευταία τροποποίηση: 2024-01-30 08:37
Αναπαραγωγή αρχείου wav Audio από την κάρτα SD Audino. Αυτό το Instructable θα σας δείξει πώς μπορεί να αναπαραχθεί ένα αρχείο wav στο SdCard μέσω ενός απλού κυκλώματος σε ένα ηχείο.
Το αρχείο wav πρέπει να είναι μονοφωνικό 8 bit. Δεν είχα πρόβλημα να παίξω αρχεία 44 KHz.
Αν και δεν είναι υψηλής πιστότητας, η ποιότητα του ήχου είναι πολύ ικανοποιητική.
Η σειριακή οθόνη χρησιμοποιείται για την επιλογή του αρχείου. Τα αρχεία πρέπει να βρίσκονται σε ένα φάκελο που ονομάζεται adlog.
Αυτό το διδακτικό προέρχεται από ένα προηγούμενο έργο όπου αποθηκεύω εγγραφές wav στο SdCard:
Το κύκλωμα χρησιμοποιεί έναν φθηνό μετατροπέα ψηφιακού σε αναλογικό 8 bit (DAC) και έναν ενισχυτή ήχου ενός τσιπ.
Οι βασικές ενότητες για τη δημιουργία διακοπών λήφθηκαν από το εξαιρετικό άρθρο της Αμάντα Γκασάεϊ:
Βήμα 1: Απαιτήσεις
Arduino- Χρησιμοποιώ το Mega, ωστόσο δεν υπάρχει λόγος να μην λειτουργεί το Uno.
SdCard reader- το πρόγραμμα έχει διαμορφωθεί για: MicroSD Breakout Board Regulated with Logic Conversion V2
Δείτε αυτό το διδακτικό για λεπτομέρειες εγκατάστασης SdCard:
DAC0832 LCN- ένας εξαιρετικός μετατροπέας ψηφιακού σε αναλογικό 8 bit- Μερικά κιλά.
LM386 N-1 Op ενισχυτής- φθηνό ως τσιπ
Υποδοχή τσιπ 20 δρόμων
Υποδοχή τσιπ 8 τρόπων
Τροφοδοσία 9 βολτ- μια μπαταρία θα κάνει.
LM336 Αναφορά τάσης 2,5 V
Πυκνωτής 10uF * 3 (οποιαδήποτε τάση μεγαλύτερη από 9V)
Αντίσταση 10 ohm
Πυκνωτής 50nF- (somewhere κάπου κοντά-47nF, 56nf, 68nf- θα κάνει)
Πυκνωτής 220uF
Ηχείο 64 ohm
Γραμμικό ποτενσιόμετρο 10Κ
Καλώδιο για τη σύνδεση των 8 γραμμών δεδομένων μεταξύ του Arduino και του κυκλώματος
Στο Uno οι 8 συνδέσεις είναι στη σειρά, στο Mega είναι σε ζεύγη.
Στο Mega χρησιμοποίησα καλώδιο κορδέλας 10 κατευθύνσεων με κεφαλίδα IDC 10 κατευθύνσεων. (2 καλώδια είναι εφεδρικά)
Υποδοχές υποδοχής για έξοδο 0V, 9V και DAC
Πίνακας λωρίδων χαλκού, συγκόλληση, σύρμα, κόπτες κλπ
Βήμα 2: Οι προδιαγραφές
Σειριακό σετ 115200 baud.
Υπάρχει υποστήριξη για το Hobbytronics MicroSD Breakout Board χρησιμοποιώντας ένα Mega. Η επιλογή τσιπ και άλλες θύρες θα αλλάξουν μεταξύ Mega και Uno.
Τα αρχεία Wav πρέπει να υπάρχουν σε έναν κατάλογο που ονομάζεται adlog- Μη διστάσετε να το ονομάσετε κάτι άλλο και να τακτοποιήσετε εκ νέου την απαραίτητη κωδικοποίηση.
Το αρχείο wav πρέπει να είναι μονοφωνικό 8 bit. Έχω δοκιμάσει έως και 44KHz.
Η σειριακή οθόνη εμφανίζει τα αρχεία wav στο φάκελο adlog. Τα ονόματα αρχείων αποστέλλονται από τη γραμμή εξόδου της οθόνης.
Το μέγεθος αρχείου περιορίζεται μόνο από το μέγεθος της κάρτας SdCard.
Βήμα 3: Ξεκινώντας
Συνδέστε το πρόγραμμα ανάγνωσης καρτών SD. Αυτές είναι οι συνδέσεις για το Mega.
0, 5V
CLK στο pin 52
D0 έως τον πείρο 50
D1 έως τον πείρο 51
CS στην καρφίτσα 53
(Ανατρέξτε στον ιστότοπο των προμηθευτών για σύνδεση θύρας Uno)
Θα θέλετε να ελέγξετε ότι η κάρτα σας λειτουργεί σε αυτό το στάδιο- χρησιμοποιήστε τα σενάρια που παρέχονται από τον προμηθευτή.
Πρέπει να κάνουμε ένα μικρό κύκλωμα
Θα στείλουμε μια ροή ηχητικών byte από το Arduino.
Αυτοί οι αριθμοί είναι μεταξύ 0 και 255. Αντιπροσωπεύουν την τάση.
Η σιωπή είναι 127-128.
Το 255 είναι κώνος ηχείου μονόδρομος.
0 είναι κώνος ηχείου σκληρά από την άλλη πλευρά.
Έτσι ο ήχος καταγράφεται ως αποθηκευμένοι αριθμοί, οι οποίοι δημιουργούν διαφορετικές τάσεις, οι οποίες δημιουργούν κινούμενους κώνους ηχείων.
Μπορούμε να στείλουμε τους αριθμούς από τις 8 γραμμές στο Arduino, ταυτόχρονα, χρησιμοποιώντας μια "θύρα".
Εάν τροφοδοτήσουμε τις 8 γραμμές σε έναν ψηφιακό σε αναλογικό μετατροπέα, κάνει αυτό που λέει στο κασσίτερο και παράγει μια αναλογική τάση που είναι ανάλογη με τον ψηφιακό αριθμό.
Το μόνο που χρειάζεται να κάνουμε είναι να βάλουμε την τάση σε έναν μικρό λειτουργικό ενισχυτή και στη συνέχεια σε ένα ηχείο.
Βήμα 4: Το μικρό κύκλωμα
Το DAC0832 LCN
Αυτός είναι ένας υπέροχος, φθηνός μετατροπέας ψηφιακού σε αναλογικό 8 bit. (DAC)
Μπορεί να ελεγχθεί πλήρως με μια σειρά δεδομένων, γραμμών δειγμάτων δεδομένων.
Or μπορεί να ρυθμιστεί για να τα κάνει όλα αυτόματα στο "Ροή μέσω λειτουργίας".
Για να αναφέρετε το εγχειρίδιο:
Η απλή γείωση των CS, WR1, WR2 και XFER και η σύνδεση υψηλού ILE επιτρέπει στους δύο εσωτερικούς καταχωρητές να ακολουθούν τις εφαρμοζόμενες ψηφιακές εισόδους (ροή) και να επηρεάζουν άμεσα την αναλογική έξοδο DAC.
Εντάξει, είναι τέσσερις συνδέσεις με το τσιπ χαμηλά και μία με 9V - εύκολο.
Δεν θέλουμε καμία αρνητική τάση να σβήσει, οπότε το εγχειρίδιο λέει ότι πρέπει να χρησιμοποιήσουμε τη "λειτουργία μεταγωγής τάσης" και παρέχουν το διάγραμμα.
Το μόνο που χρειάζεται να κάνουμε είναι να αντικαταστήσουμε έναν μικρό ενισχυτή ήχου αντί αυτού που προτείνουν.
Ο ενισχυτής ήχου LM386-N
Το εγχειρίδιο του ενισχυτή παρέχει ένα ελάχιστο διάγραμμα εξαρτημάτων- παρέχοντας κέρδος 20 (πάρα πολύ για εμάς- αλλά έχει έλεγχο έντασης).
Το μόνο που χρειάζεται να κάνουμε είναι να προσθέσουμε έναν πυκνωτή μεταξύ του DAC και του ενισχυτή έτσι ώστε να ενισχύουμε μόνο τα σήματα AC.
Πρέπει επίσης να προσθέσουμε δύο πυκνωτές κοντά στον πείρο τροφοδοσίας κάθε μάρκας μας, διαφορετικά θα πάρουμε βουητό από την τροφοδοσία 9V.
Βήμα 5: Βγείτε από το συγκολλητικό σίδερο
Καθώς το κύκλωμα είναι απλό, δεν σκοπεύω να δώσω ένα πλήγμα.
Εδώ είναι μερικές υποδείξεις:
- Προετοιμάστε ένα κομμάτι χαρτόνι από χαρτόνι τουλάχιστον 28 επί 28 οπές. (Ναι, ξέρω ότι οι χειρουργοί εγκεφάλου μπορούν να το κάνουν μικρότερο)
- Εάν σκοπεύετε να το τοποθετήσετε με βίδες, επιτρέψτε τους στην αρχή!
- Τοποθετήστε τα τσιπ στις πρίζες. Εισάγετε τις μάρκες μόνο όταν έχουν ελεγχθεί τα πάντα.
- Κρατήστε τα καλώδια εισόδου μακριά από την έξοδο.
- Παρατηρήστε τη σωστή πολικότητα για τους πυκνωτές.
- Ανατρέξτε στο διάγραμμα για τη βασική προβολή της αναφοράς τάσης LM336. Το πόδι προσαρμογής δεν χρησιμοποιείται και μπορεί να κοπεί.
- Σημειώστε την απευθείας σύνδεση με τον ακροδέκτη 8 του DAC- Είναι πολύ χρήσιμο για έλεγχο.
- Συνδέθηκα στο Audino με καλώδιο κορδέλας και συνδετήρα IDC 10 δρόμων.
- Στο Uno οι συνδέσεις είναι σε ευθεία γραμμή - μπορεί να διαπιστώσετε ότι η τακτοποίηση των 8 συνδέσεων εισόδου σε μία μόνο ευθεία γραμμή σας επιτρέπει να συνδεθείτε στο Arduino με έναν αγορασμένο, έτοιμο συνδετήρα 8 κατευθύνσεων,
Όταν τελειώσει- ελέγξτε τη συγκόλληση και ελέγξτε τα κενά μεταξύ των χάλκινων κομματιών.
Θεωρώ ότι μια λεπίδα κοπής 36 tpi junior είναι πολύ χρήσιμη για τον καθαρισμό των συντριμμιών. Αφαιρώ τους πείρους εντοπισμού της λεπίδας και ολισθαίνω την άκρη της λεπίδας μέσα στην πίστα- Προφανώς η λεπίδα δεν είναι σε πλαίσιο.
Βήμα 6: Δοκιμή του DAC
Αφήστε τη σύνδεση μεταξύ του κυκλώματος και του Arduino απενεργοποιημένη.
Ρυθμίστε το ρυθμιστικό έντασης στο κύκλωμά σας στη μέση.
Ενεργοποιήστε το 9V DC Power στο νέο σας κύκλωμα.
Βεβαιωθείτε ότι το κύκλωμα είναι εντάξει- δεν μπορώ να αναλάβω καμία ευθύνη για το κύκλωμά σας!
Απενεργοποιώ
Συνδέστε το κύκλωμά σας στο Arduino.
Στο Mega χρησιμοποιήστε τις καρφίτσες 22-29. (PORTA) Μην κάνετε λάθος τις δύο παραπάνω καρφίτσες 5V!
Στο Uno χρησιμοποιήστε τις καρφίτσες 0-7. Αυτό είναι το PORTD
Συνδέστε το 0V του τροφοδοτικού σας με το 0V στο Arduino.
Παροχή τροφοδοσίας.
Ανοίξτε αυτό το δοκιμαστικό πρόγραμμα DAC_TEST
Για το UNO, αντικαταστήστε όλες τις αναφορές στο PORTA στο PORTD
Αντικαταστήστε το DDRA με DDRD- αυτή η οδηγία ορίζει και τις 8 γραμμές να εξάγονται με μία κίνηση. Αυτός είναι ο καταχωρητής κατεύθυνσης δεδομένων.
Ρυθμίστε τη σειριακή οθόνη σας στο 115200.
Συνδέστε ένα βολτόμετρο μεταξύ της εξόδου DAC και του OV
Το πρόγραμμα θα ρυθμίσει την έξοδο σε 255 - όλες οι γραμμές ενεργοποιημένες - μέγιστη τάση.
Έξοδος 128- μισή μέγιστη τάση.
Έξοδος 0- μηδενική τάση (probably μάλλον σχεδόν μηδέν).
Στη συνέχεια θα κάνει βήμα προς βήμα: 1, 2, 4, 8, 16, 32, 64, 128
Η τάση πρέπει να αυξάνεται σταθερά.
Εάν η τάση πέσει πίσω ενώ ο αριθμός αυξάνεται, πιθανότατα έχετε δύο από τα καλώδια διασύνδεσης να αντιστραφούν.
Θα πρέπει επίσης να ακούτε το ηχείο να κάνει ήσυχο κλικ καθώς αλλάζει η τάση
Βήμα 7: Ανάγνωση της κεφαλίδας Wav
Τα αρχεία Wav αποθηκεύονται με καθορισμένη συχνότητα και μέγεθος δεδομένων.
Αυτές οι πληροφορίες περιέχονται σε μια κεφαλίδα 44 byte στην αρχή ενός αρχείου wav.
Παρόλο που κάποιο λογισμικό επεκτείνει την κεφαλίδα (μετά από byte 35), καθιστώντας πιο δύσκολο τον εντοπισμό της θέσης του μεγέθους δεδομένων.
Για να διαβάσουμε την κεφαλίδα δημιουργούμε ένα buffer και αντιγράφουμε την αρχή του αρχείου.
Η συχνότητα αποθηκεύεται σε 4 byte ξεκινώντας 24 byte στο αρχείο.
// συχνότητα ανάγνωσης που καθορίζεται στην κεφαλίδα του αρχείου wav
byte headbuf [60]
tempfile.seek (0);
tempfile.read (headbuf, 60);
retval = headbuf [27];
retval = (retval << 8) | headbuf [26];
retval = (retval << 8) | headbuf [25];
retval = (retval << 8) | headbuf [24];
Serial.print (F ("Συχνότητα αρχείου"));
Serial.print (retval);
Ο καλύτερος τρόπος για να βρείτε τις πληροφορίες μεγέθους δεδομένων είναι να αναζητήσετε τη λέξη "δεδομένα" στην κεφαλίδα.
Στη συνέχεια, εξαγάγετε τα 4 byte που ακολουθούν, που αποτελούν τη μεγάλη τιμή
ανυπόγραφη μακρά επανάληψη.
int mypos = 40;
για (int i = 36; i <60; i ++) {
if (headbuf == 'd') {
if (headbuf [i+1] == 'a') {
if (headbuf [i+2] == 't') {
if (headbuf [i+3] == 'a') {
// επιτέλους το έχουμε
mypos = i+4;
i = 60;
}
}
}
}
}
tempfile.seek (mypos);
retval = headbuf [mypos+3];
retval = (retval << 8) | headbuf [mypos+2];
retval = (retval << 8) | headbuf [mypos+1];
retval = (retval << 8) | headbuf [mypos];
Εντάξει έχουμε το μήκος και τη συχνότητα δεδομένων!
Τα ηχητικά δεδομένα ακολουθούν τα 4 byte που αποτελούν την τιμή του μήκους δεδομένων.
Βήμα 8: Διακοπή, διακοπή…
Χρησιμοποιούμε τις πληροφορίες συχνότητας για να δημιουργήσουμε μια διακοπή λογισμικού στην ή κοντά στην απαιτούμενη συχνότητα.
Η διακοπή δεν μπορεί πάντα να οριστεί με ακρίβεια, αλλά είναι αρκετή. Η συχνότητα ανάγνωσης από το αρχείο μεταφέρεται στην υπορουτίνα διακοπής λειτουργίας.
void setintrupt (float freq) {float bitval = 8; // 8 για χρονοδιακόπτες 8 bit 0 και 2, 1024 για χρονοδιακόπτη 1 byte
setocroa = (16000000/(συχνότητα*bitval)) - 0,5;
// Η τιμή setocroa απαιτεί αφαίρεση -1. Ωστόσο, προσθέτοντας 0,5 γύρους στο πλησιέστερο 0,5
// Η ανάλυση του χρονοδιακόπτη είναι περιορισμένη
// Τελικά καθορίζεται από το μέγεθος του bitval
cli (); // απενεργοποίηση διακοπών // ρύθμιση διακοπής χρονοδιακόπτη2
TCCR2A = 0; // ορίστε ολόκληρο τον καταχωρητή TCCR2A στο 0
TCCR2B = 0; // το ίδιο για το TCCR2B
TCNT2 = 0; // αρχικοποιήστε την αντίθετη τιμή στο 0
// ορίστε τη σύγκριση καταχωρητή αντιστοίχισης για προσαυξήσεις συχνότητας (hz)
OCR2A = setocroa; // = (16*10^6) / (συχνότητα*8) - 1 (πρέπει να είναι <256)
// ενεργοποιήστε τη λειτουργία CTC
TCCR2A | = (1 << WGM21); // Ρυθμίστε το bit CS21 για 8 προκαθοριστές
TCCR2B | = (1 << CS21); // ενεργοποίηση διακοπής σύγκρισης χρονοδιακόπτη
// TIMSK2 | = (1 << OCIE2A); // αυτό λειτουργεί, όπως και η ακόλουθη γραμμή
sbi (TIMSK2, OCIE2A); // ενεργοποίηση διακοπής στο χρονόμετρο 2
sei (); // ενεργοποίηση διακοπών
Οι απαιτητικοί αναγνώστες θα έχουν εντοπίσει sbi (TIMSK2, OCIE2A)
Ρυθμίζω μερικές συναρτήσεις (που αποκτήθηκαν από το Διαδίκτυο) για τη ρύθμιση και την εκκαθάριση των bit καταχωρητών:
// Ορίζει για εκκαθάριση δυαδικών ψηφίων#ifndef cbi
#define cbi (sfr, bit) (_SFR_BYTE (sfr) & = ~ _BV (bit))
#τέλος εαν
// Ορίζει για τη ρύθμιση των bit καταχωρητή
#ifndef sbi
#define sbi (sfr, bit) (_SFR_BYTE (sfr) | = _BV (bit))
#τέλος εαν
Αυτές οι λειτουργίες παρέχουν μια εύκολη κλήση για να ορίσετε ή να καθαρίσετε τη διακοπή.
Λοιπόν, η διακοπή εκτελείται, τι μπορούμε να την κάνουμε να κάνει;
Βήμα 9: Διακοπές και διπλή προσωρινή αποθήκευση
Στα 22 Khz εξάγεται ένα byte δεδομένων ήχου κάθε 0,045 ms
512 byte (το μέγεθος του buffer) διαβάζεται σε 2,08 ms.
Έτσι, το buffer δεν μπορεί να διαβαστεί από την κάρτα SDC σε έναν κύκλο εγγραφής.
Ωστόσο, 512 byte γράφονται στη θύρα σε 23,22ms.
Επομένως, το μόνο που έχουμε να κάνουμε είναι να ρυθμίσουμε ένα νέο αρχείο που διαβάζεται κάθε φορά που αδειάζει το buffer και έχουμε αρκετό χρόνο για να λάβουμε τα δεδομένα πριν απαιτηθεί ένα νέο μπλοκ δεδομένων … Υποθέτοντας ότι χρησιμοποιούμε δύο buffer, αδειάζοντας το ένα καθώς γεμίζουμε ένα άλλο.
Αυτό είναι διπλό buffering.
Το αρχείο ανάγνωσης θα επιβραδυνθεί από την επαναλαμβανόμενη διακοπή, αλλά θα ολοκληρωθεί.
Έχω ρυθμίσει δύο buffer 512 byte που ονομάζονται bufa και bufb.
Αν το flag aready είναι αληθινό διαβάζουμε από το porta αλλιώς διαβάζουμε από το portb
Όταν η θέση buffer (bufcount) φτάσει στο μέγεθος buffer (BUF_SIZE 512) ορίζουμε μια σημαία που ονομάζεται readit σε true.
Η ρουτίνα κενού βρόχου αναζητά αυτήν τη σημαία και ξεκινά μια ανάγνωση μπλοκ:
if (readit) {if (! aready) {
// εκκίνηση ανάγνωσης αποκλεισμού SDCard σε bufa
tempfile.read (bufa, BUF_SIZE);
} αλλο {
// εκκίνηση ανάγνωσης αποκλεισμού SDCard στο bufb
tempfile.read (bufb, BUF_SIZE);
}
readit = false?
}
Όταν τελειώσει, οι σημαίες ρουτίνας readit = false.
Μέσα στη ρουτίνα διακοπής πρέπει να ελέγξουμε ότι ο βρόχος κενό έχει τελειώσει ελέγχοντας αν readit == false.
Στην περίπτωση αυτή, σηματοδοτούμε ότι απαιτείται άλλη ανάγνωση και αλλάζουμε τη σημαία aready για εναλλαγή buffer.
Εάν η κάρτα SD εξακολουθεί να διαβάζει, πρέπει να παρακολουθήσουμε μία ανάγνωση (μετρητής-; bufcount--;) και να βγούμε από τη διακοπή για να προσπαθήσουμε ξανά αργότερα. (Τα κλικ στο σήμα εξόδου ήχου υποδηλώνουν ότι αυτό συνέβη.)
Όταν διαβαστούν όλα τα δεδομένα, η διακοπή ακυρώνεται, η θύρα επαναρυθμίζεται στην τιμή μέσης τάσης 128 και το αρχείο ήχου κλείνει.
Πριν εκτελέσετε το σενάριο dac2.ino για πρώτη φορά, ρυθμίστε την ένταση του ήχου σας στο 50%. Αυτό θα είναι πολύ δυνατό, αλλά είναι καλύτερο από 100%!
Εάν ο έλεγχος έντασης λειτουργεί αντίστροφα, τα καλώδια στα αντίθετα άκρα του ποτενσιόμετρου 10Κ.
Πείτε μου πώς ακούγεται.
Συνιστάται:
Αναπαραγωγή ήχου χρησιμοποιώντας Arduino με κάρτα Micro SD: 7 βήματα (με εικόνες)
Πρόγραμμα αναπαραγωγής ήχου χρησιμοποιώντας Arduino με κάρτα Micro SD: ΕΓΓΡΑΦΕΙΤΕ το κανάλι μου για περισσότερα έργα ……………………. Πολλοί άνθρωποι θέλουν να διασυνδέσουν την κάρτα SD με arduino ή θέλετε κάποια έξοδο ήχου μέσω arduino. Έτσι, εδώ είναι ο ευκολότερος και φθηνότερος τρόπος διασύνδεσης της κάρτας SD με το arduino. μπορείς εσύ
MP3 Αναπαραγωγή ήχου FX Wall: 12 βήματα (με εικόνες)
MP3 Αναπαραγωγή ήχου FX Wall: Δημιουργήστε έναν διασκεδαστικό και διαδραστικό τοίχο ήχου που αναπαράγει Mp3 με ένα απλό άγγιγμα! Τι κάνεις με έναν άδειο τοίχο; Θα μπορούσατε να προσθέσετε μερικές ωραίες εικόνες σε αυτό; Or καλύψτε το με ένα πολύχρωμο φυτό σπιτιού. Έχουμε δει ακόμη και μερικούς ανθρώπους να κρύβουν γυμνούς τοίχους πίσω από το βιβλίο
Talking Arduino - Αναπαραγωγή MP3 με Arduino χωρίς καμία μονάδα - Αναπαραγωγή αρχείου Mp3 από το Arduino χρησιμοποιώντας PCM: 6 βήματα
Talking Arduino | Αναπαραγωγή MP3 με Arduino χωρίς καμία μονάδα | Αναπαραγωγή αρχείου Mp3 από το Arduino χρησιμοποιώντας PCM: Σε αυτά τα εκπαιδευτικά προγράμματα θα μάθουμε πώς να παίζουμε ένα αρχείο mp3 με arduino χωρίς να χρησιμοποιούμε καμία μονάδα ήχου, εδώ θα χρησιμοποιήσουμε τη βιβλιοθήκη PCM για το Arduino που παίζει 16 bit PCM συχνότητας 8kHZ, οπότε ας το κάνουμε αυτό
Αναπαραγωγή CD χωρίς CD Player, χρήση AI και YouTube: 10 βήματα (με εικόνες)
Αναπαραγωγή CD Χωρίς CD Player, Χρήση Τεχνητής Νοημοσύνης και YouTube: Θέλετε να αναπαράγετε τα CD σας αλλά δεν έχετε άλλο πρόγραμμα αναπαραγωγής CD; Δεν προλάβατε να σχίσετε τα CD σας; Τα έσκισαν αλλά τα αρχεία δεν είναι διαθέσιμα όταν χρειάζεται; Κανένα πρόβλημα. Αφήστε την τεχνητή νοημοσύνη (τεχνητή νοημοσύνη) να αναγνωρίσει το CD σας και το YouTube να το παίξει! Έγραψα μια εφαρμογή Android
ΑΝΑΠΑΡΑΓΩΓΗ ΚΑΙ ΕΠΑΝΑΦΟΡΤΩΣΗ IPOD ΧΡΗΣΗ ΠΑΛΙΟΥ ΜΠΟΥΜΒΟΞ - Συμβουλές και συμβουλές: 5 βήματα (με εικόνες)
ΑΝΑΠΑΡΑΓΩΓΗ ΚΑΙ ΕΠΑΝΑΦΟΡΤΩΣΗ IPOD ΧΡΗΣΙΜΟΠΟΙΗΣΤΕ ΤΟ ΠΑΛΙΟ ΜΠΟΥΜΒΟΞ - Συμβουλές και συμβουλές: Θεωρήστε το ως προσθήκη σε άλλες λειτουργίες iPod boombox. Ομολογώ ότι δανείστηκα από άλλες οδηγίες. Για να μην αφαιρέσετε από αυτά τα Εκπαιδευτικά, εδώ είναι μια " φωνάξτε " σε εκείνους που με ενέπνευσαν να βουτήξω στο δικό μου mod. Σας ευχαριστώ. Διδάξιμο