Σε αυτή τη συνεδρία θα χρησιμοποιήσουμε τις λειτουργίες Raspberry Pi και PYGAME για να δημιουργήσουμε έναν πίνακα ήχου. Με απλά λόγια, πρόκειται να συνδέσουμε μερικά κουμπιά στις καρφίτσες Raspberry Pi GPIO και όταν πατηθούν αυτά τα κουμπιά το Raspberry Pi αναπαράγει αρχεία ήχου που είναι αποθηκευμένα στη μνήμη του. Αυτά τα αρχεία ήχου μπορούν να αναπαραχθούν ένα προς ένα ή όλα μπορούν να αναπαραχθούν μαζί. Με άλλα λόγια μπορείτε να πατήσετε ένα ή περισσότερα κουμπιά ταυτόχρονα, το Raspberry Pi θα αναπαράγει ένα ή περισσότερα αρχεία ήχου ανάλογα την ίδια στιγμή. Δείτε το βίντεο επίδειξης στο τέλος αυτού του άρθρου. Ελέγξτε επίσης τη σειρά εκμάθησης Raspberry Pi μαζί με μερικά καλά έργα IoT.
Έχουμε 26 καρφίτσες GPIO στο Raspberry Pi που μπορούν να προγραμματιστούν, εκ των οποίων μερικές χρησιμοποιούνται για την εκτέλεση ορισμένων ειδικών λειτουργιών και στη συνέχεια έχουμε 17 GPIO που απομένουν. Κάθε ακίδα GPIO μπορεί να αποδώσει ή να σχεδιάσει έως 15mA. Και το άθροισμα των ρευμάτων από όλο το GPIO δεν μπορεί να υπερβαίνει τα 50mA. Έτσι μπορούμε να αντλήσουμε κατά μέσο όρο 3mA από κάθε μία από αυτές τις ακίδες GPIO. Θα χρησιμοποιήσουμε αντιστάσεις για να περιορίσουμε την τρέχουσα ροή. Μάθετε περισσότερα για τις καρφίτσες GPIO και το κουμπί διασύνδεσης με το Raspberry Pi εδώ.
Απαιτούμενα στοιχεία:
Εδώ χρησιμοποιούμε το Raspberry Pi 2 Model B με το Raspbian Jessie OS. Όλες οι βασικές απαιτήσεις υλικού και λογισμικού συζητήθηκαν προηγουμένως, μπορείτε να το αναζητήσετε στο Raspberry Pi Εισαγωγή και στο Raspberry PI LED Blinking για να ξεκινήσετε, εκτός από αυτό που χρειαζόμαστε:
- Raspberry Pi με προεγκατεστημένο λειτουργικό σύστημα
- Παροχή ηλεκτρικού ρεύματος
- Ομιλητής
- 1KΩ αντίσταση (6 τεμάχια)
- Κουμπιά (6 τεμάχια)
- Πυκνωτής 1000uF
Επεξήγηση εργασίας:
Εδώ παίζουμε ήχο χρησιμοποιώντας κουμπιά με Raspberry Pi. Έχουμε χρησιμοποιήσει 6 κουμπιά για την αναπαραγωγή 6 αρχείων ήχου. Μπορούμε να προσθέσουμε περισσότερα κουμπιά και αρχεία ήχου για να επεκτείνουμε αυτήν την πλακέτα για να δημιουργήσουμε πιο όμορφο μοτίβο πατώντας αυτά τα κουμπιά. Πριν εξηγήσετε περαιτέρω, ολοκληρώστε τα παρακάτω βήματα.
1. Πρώτα απ 'όλα, κατεβάστε τα 6 αρχεία ήχου από τον παρακάτω σύνδεσμο ή μπορείτε να χρησιμοποιήσετε τα αρχεία ήχου, αλλά στη συνέχεια πρέπει να αλλάξετε τα ονόματα των αρχείων στον κώδικα.
Κατεβάστε αρχεία ήχου από εδώ
2. Δημιουργήστε έναν νέο φάκελο στην οθόνη του Raspberry Pi και ονομάστε τον ως "PI SOUND BOARD".
3. Αποσυμπιέστε τα ληφθέντα αρχεία ήχου στο φάκελο που έχουμε δημιουργήσει στο DESKTOP στο προηγούμενο βήμα.
4. Ανοίξτε το παράθυρο τερματικού στο Raspberry Pi και εισαγάγετε την παρακάτω εντολή:
sudo amixer cset numid = 3 1
Αυτή η εντολή λέει στο PI να παρέχει έξοδο ήχου μέσω υποδοχής ήχου 3,5 mm.
Εάν θέλετε έξοδο ήχου από τη θύρα HDMI, μπορείτε να χρησιμοποιήσετε την παρακάτω εντολή:
$ sudo amixer cset numid = 3 2
5. Συνδέστε τα ηχεία στην υποδοχή εξόδου ήχου 3,5 mm στην πλακέτα Raspberry Pi.
6. Δημιουργήστε ένα αρχείο PYTHON (επέκταση *.py) και αποθηκεύστε το στον ίδιο φάκελο. Δείτε αυτό το σεμινάριο για τη δημιουργία και εκτέλεση του προγράμματος Python στο Raspberry Pi.
7. Ο αναμίκτης Pygame θα εγκατασταθεί από προεπιλογή στο λειτουργικό σύστημα. Εάν το πρόγραμμα, μετά την εκτέλεση, δεν ανακαλεί το PYMIXER, τότε ενημερώστε το λειτουργικό σύστημα του Raspberry Pi εισάγοντας την παρακάτω εντολή στο παράθυρο τερματικού. Βεβαιωθείτε ότι το Pi είναι συνδεδεμένο στο Διαδίκτυο.
sudo apt-get ενημέρωση
Περιμένετε λίγα λεπτά για να ενημερωθεί το λειτουργικό σύστημα.
Τώρα συνδέστε κάθε στοιχείο σύμφωνα με το διάγραμμα κυκλώματος που δίνεται παρακάτω, Αντιγράψτε το πρόγραμμα PYHTON στο αρχείο PYHTON που δημιουργήθηκε στην επιφάνεια εργασίας και, τέλος, πατήστε Run για αναπαραγωγή των αρχείων ήχου μέσω των κουμπιών. Το πρόγραμμα Python δίνεται στο τέλος με το Demo Video.
Διάγραμμα κυκλώματος:
Επεξήγηση προγραμματισμού:
Εδώ έχουμε δημιουργήσει το πρόγραμμα Python για την αναπαραγωγή των αρχείων ήχου σύμφωνα με το πάτημα του κουμπιού. Εδώ πρέπει να κατανοήσουμε λίγες εντολές, τις οποίες έχουμε χρησιμοποιήσει στο πρόγραμμα.
εισαγάγετε RPi.GPIO ως IO
Θα εισαγάγουμε αρχείο GPIO από τη βιβλιοθήκη, η παραπάνω εντολή μας επιτρέπει να προγραμματίσουμε τις καρφίτσες GPIO του PI Μετονομάζουμε επίσης "GPIO" σε "IO", οπότε στο πρόγραμμα όποτε θέλουμε να αναφερθούμε στις καρφίτσες GPIO θα χρησιμοποιήσουμε τη λέξη "IO".
IO.setwarnings (Λάθος)
Μερικές φορές, όταν οι καρφίτσες GPIO που προσπαθούμε να χρησιμοποιήσουμε μπορεί να κάνουν κάποιες άλλες λειτουργίες. Στη συνέχεια, θα λαμβάνετε προειδοποιήσεις κάθε φορά που εκτελείτε ένα πρόγραμμα. Αυτή η εντολή λέει στο Raspberry Pi να αγνοήσει τις προειδοποιήσεις και να συνεχίσει το πρόγραμμα.
IO.setmode (IO.BCM)
Εδώ πρόκειται να αναφερθούν οι πινέζες του PI με το όνομα λειτουργίας τους. Προγραμματίζουμε λοιπόν τους αριθμούς pin GPIO με BCM, που μας επιτρέπουν να καλούμε PIN με τον αριθμό pin GPIO. Όπως μπορούμε να καλέσουμε το PIN39 ως GPIO19 στο πρόγραμμα.
εισαγωγή pygame.mixer
Καλούμε pygame mixer για αναπαραγωγή των αρχείων ήχου.
audio1 = pygame.mixer.Sound ("buzzer.wav")
Ζητούμε αρχείο ήχου «buzzer.wav» που είναι αποθηκευμένο σε φάκελο επιφάνειας εργασίας. Εάν θέλετε να αναπαράγετε οποιοδήποτε άλλο αρχείο, απλώς αλλάξτε το όνομα του αρχείου ήχου στη συνάρτηση που αναφέρεται παραπάνω. Μπορείτε να ονομάσετε τυχόν αρχεία που υπάρχουν στο φάκελο της επιφάνειας εργασίας.
channel1 = pygame.mixer.Channel (1)
Εδώ δημιουργούμε ένα κανάλι για κάθε κουμπί, ώστε να μπορούμε να παίζουμε όλα τα αρχεία ήχου ταυτόχρονα.
if (IO.input (21) == 0): channel1.play (audio1)
Σε περίπτωση που η συνθήκη στο αν η δήλωση είναι αληθινή, η παρακάτω δήλωση θα εκτελεστεί μία φορά. Έτσι, εάν ο ακροδέκτης GPIO 21 πηγαίνει χαμηλά ή γειωμένος, τότε θα αναπαράγει το αρχείο ήχου που έχει εκχωρηθεί στη μεταβλητή audio1 . Σύμφωνα με το διάγραμμα κυκλώματος, μπορούμε να δούμε ότι ο ακροδέκτης GPIO 21 πηγαίνει χαμηλά όταν πατάμε το πρώτο κουμπί. Έτσι μπορούμε να παίξουμε οποιοδήποτε αρχείο ήχου πατώντας το αντίστοιχο κουμπί.
ενώ το 1: χρησιμοποιείται ως βρόχος για πάντα, με αυτήν την εντολή οι δηλώσεις εντός αυτού του βρόχου θα εκτελούνται συνεχώς
Μπορείτε να κάνετε αλλαγές στο πρόγραμμα python για να κάνετε το πιο ικανοποιητικό Sound Board με το Raspberry Pi. Μπορείτε ακόμη και να προσθέσετε περισσότερα κουμπιά για να κάνετε τα πράγματα πιο ενδιαφέροντα και να αναπαράγετε περισσότερα αρχεία ήχου.