Πίνακας περιεχομένων:

Εγγραφή αναπαραγωγής με Raspberry Pi: 7 βήματα (με εικόνες)
Εγγραφή αναπαραγωγής με Raspberry Pi: 7 βήματα (με εικόνες)

Βίντεο: Εγγραφή αναπαραγωγής με Raspberry Pi: 7 βήματα (με εικόνες)

Βίντεο: Εγγραφή αναπαραγωγής με Raspberry Pi: 7 βήματα (με εικόνες)
Βίντεο: Νέα Raspberry Pi 3 Tutorial - Πώς να δημιουργήσει για Gaming & Entertainment Έργα 2024, Ιούλιος
Anonim
Image
Image
Υλικό που απαιτείται
Υλικό που απαιτείται

Γεια σε όλους, Σε αυτό το εκπαιδευτικό εξηγώ πώς έφτιαξα ένα πρόγραμμα εγγραφής αναπαραγωγής χρησιμοποιώντας το Raspberry Pi. Η συσκευή είναι Raspberry Pi μοντέλο B+, με 7 κουμπιά στο επάνω μέρος, ηχείο συνδεδεμένο σε μία από τις θύρες USB του Pi και μικρόφωνο συνδεδεμένο σε άλλη θύρα usb. Κάθε κουμπί σχετίζεται με έναν ήχο, ώστε να μπορεί να αναπαράγει 7 διαφορετικούς ήχους. Οι ήχοι αναπαράγονται μετά από ένα σύντομο πάτημα του κουμπιού. Για να ηχογραφήσετε έναν νέο ήχο, απλώς πατήστε το κουμπί για περισσότερο από 1 δευτερόλεπτο, ηχογραφήστε μετά το μπιπ και αφήστε το κουμπί στο τέλος της εγγραφής. Δεν γίνεται πιο απλό από αυτό!

Βήμα 1: Απαιτείται υλικό

Υλικό που απαιτείται
Υλικό που απαιτείται
Υλικό που απαιτείται
Υλικό που απαιτείται

Για αυτό το έργο χρειάστηκα:

  • Ένα Raspberry Pi μοντέλο B + και κάρτα micro SD - 29,95 $ + 9,95 $
  • Πλαστική θήκη Raspberry Pi - 7,95 $
  • Ηχεία USB - 12,50 $
  • Ένα μικρόφωνο USB - 5,95 $
  • Ένας μισός μεγέθους πίνακας perma-proto-4,50 $
  • 7 στιγμιαία κουμπιά - 2,50 $

Χρειαζόμουν επίσης:

  • Λίγο ηλεκτρικό καλώδιο
  • Γυναικείες κεφαλίδες ορθής γωνίας
  • Λίγο ξύλο, μαύρο χρώμα και κόλλα για τη θήκη με κουμπιά
  • Συγκολλητικό σίδερο και συγκόλληση

Βήμα 2: Τα κουμπιά

Τα κουμπιά
Τα κουμπιά
Τα κουμπιά
Τα κουμπιά
Τα κουμπιά
Τα κουμπιά

Τα κουμπιά που χρησιμοποιούνται είναι αρκετά ψηλά (6mm) έτσι ώστε να μπορούν να περάσουν από το πάχος της θήκης.

Τοποθέτησα τα 7 κουμπιά μου σε έναν πίνακα perma-proto, ο οποίος είναι σαν ένα breadboard, εκτός από τα στοιχεία που συγκολλούνται σε αυτό. Αυτό είναι πιο στιβαρό από ένα breadboard και φθηνότερο από την εκτύπωση ενός pcb. Κάθε κουμπί συνδέεται με το GPIO στο Raspberry Pi. Δεν έχω αντιστάσεις εδώ, καθώς το Pi έχει ήδη εσωτερικές αντιστάσεις έλξης/κάτω που θα ρυθμιστούν στο πρόγραμμα. Σε αυτήν την περίπτωση, τα έχω ρυθμίσει σε pull-up (δείτε παρακάτω πρόγραμμα).

Τα κουμπιά τοποθετούνται κάθε 4 σειρές ή κάθε 0,4 ίντσες.

Βήμα 3: Η θήκη των κουμπιών

Η θήκη των κουμπιών
Η θήκη των κουμπιών
Η θήκη των κουμπιών
Η θήκη των κουμπιών
Η θήκη των κουμπιών
Η θήκη των κουμπιών

Έφτιαξα μια πολύ απλή θήκη για τα κουμπιά, με φύλλα από κόντρα πλακέ και ξύλινο τετράγωνο πείρο. Το μέγεθος του πείρου πρέπει να είναι αρκετά μεγάλο για να περιέχει τη βάση και την σανίδα του κουμπιού, αλλά αρκετά μικρό για να αφήνει το κουμπί να βγαίνει από τη θήκη. Χρησιμοποίησα ένα 1/4 σε x 1/4 στον πείρο.

Αφού βεβαιωθείτε ότι ο πίνακας ταιριάζει στη θήκη, οι πείροι είναι κολλημένοι στο φύλλο βάσης. Στη συνέχεια ανοίγονται τρύπες στο επάνω φύλλο (ο πίνακας μπορεί να χρησιμοποιηθεί για να κάνει ακριβώς σημάδια κάθε 0,4 ίντσες). Όλα τα ξύλινα μέρη είναι βαμμένα, η σανίδα τοποθετημένη στη θήκη και το πάνω φύλλο κολλημένο πάνω της.

Βήμα 4: Το Raspberry Pi

Το Raspberry Pi
Το Raspberry Pi
Το Raspberry Pi
Το Raspberry Pi
Το Raspberry Pi
Το Raspberry Pi

Δεν ήθελα να κολλήσω τα καλώδια απευθείας στο Pi, σε περίπτωση που θέλω να χρησιμοποιήσω το Pi για κάτι άλλο στο μέλλον. Συνεπώς, κόλλησα τα καλώδια σε γυναικείες κεφαλίδες ορθής γωνίας και συνδέσα τις κεφαλίδες στο Pi.

Οι GPIO που χρησιμοποιούνται είναι 21, 26, 20, 19, 13, 6 και 5. Χρησιμοποιείται επίσης ο πείρος γείωσης.

Το μικρόφωνο και το ηχείο είναι απλά συνδεδεμένα σε 2 από τις 4 θύρες USB.

Το Pi τροφοδοτείται μέσω της πρίζας micro-usb

Βήμα 5: Προγραμματισμός

Για να προγραμματίσω το Pi, το σύνδεσα στο διαδίκτυο χρησιμοποιώντας ένα καλώδιο ethernet και το έλεγξα από έναν απομακρυσμένο υπολογιστή χρησιμοποιώντας το πρόγραμμα προβολής VNC. Ωστόσο, δεν μπορείτε να χρησιμοποιήσετε αυτήν τη ρύθμιση την πρώτη φορά που συνδέεστε στο Pi, επειδή το λειτουργικό σύστημα δεν είναι ακόμα εγκατεστημένο και το SSH δεν είναι ανενεργό. Έτσι, θα χρειαστεί να συνδέσετε οθόνη, πληκτρολόγιο και ποντίκι, τουλάχιστον την πρώτη φορά.

Wasταν αρκετά ταλαιπωρημένο να βρεις τις εντολές για την εγγραφή και την αναπαραγωγή ενός ήχου στη σωστή κάρτα ήχου. Αυτές είναι οι εντολές που λειτούργησαν για μένα:

  • aplay -D plughw: CARD = Device_1, DEV = 0 0.wav

    Παίζει 0.wav

  • arecord 0.wav -D sysdefault: CARD = 1 -f cd -d 20

    Καταγράφει για μέγιστο 20 δευτερόλεπτα στο αρχείο 0.wav, με ποιότητα cd

Τα αρχεία ήχου βρίσκονται στον προεπιλεγμένο κατάλογο (/home/pi). Ένα αρχείο ήχου για το μπιπ είναι επίσης απαραίτητο, τοποθετημένο στον προεπιλεγμένο κατάλογο και ονομάζεται beep.wav.

Ο ίδιος ο κώδικας python είναι ο ακόλουθος:

κώδικας python για συσκευή εγγραφής αναπαραγωγής Raspberry Pi

εισαγωγή RPi. GPIO ως GPIO
χρόνο εισαγωγής
εισαγωγή os
#μεταβλητές:
butPressed = [True, True, True, True, True, True, True] #if εάν πατηθεί το κουμπί i, τότε το butPressed είναι False
pin = [26, 19, 13, 6, 5, 21, 20] #GPIO ακίδες κάθε κουμπιού
recordBool = Λάθος#Σωστό εάν μια εγγραφή βρίσκεται σε εξέλιξη
GPIO.setmode (GPIO. BCM)
για i στο εύρος (0, 7):
GPIO.setup (pin , GPIO. IN, pull_up_down = GPIO. PUD_UP)#ορίζει τις εσωτερικές αντιστάσεις του Pi σε αναδίπλωση
ενώ True:
για i στο εύρος (0, 7):
butPressed = GPIO.input (pin )#ελέγχει αν πατηθεί ένα κουμπί
αν butPressed == Λάθος:#εάν πατηθεί ένα κουμπί
previousTime = time.time ()
while butPressed == False and recordBool == False:
butPressed = GPIO.input (pin )
εάν time.time () - previousTime> 1.0:#αν πατηθεί το κουμπί για περισσότερο από ένα δευτερόλεπτο, τότε recordBool είναι True
recordBool = True
εάν recordBool == True: #if recordBool είναι True, αναπαράγει έναν ήχο μπιπ και στη συνέχεια ηχογραφεί
os.system ("aplay -D plughw: CARD = Device_1, DEV = 0 beep.wav")
os.system ("arecord %d.wav -D sysdefault: CARD = 1 -f cd -d 20 &" %i)#εγγραφές για μέγιστο 20 δευτερόλεπτα στο αρχείο i.wav, με ποιότητα cd
while butPressed == Λάθος:
butPressed = GPIO.input (pin )
os.system ("pkill -9 arecord")#η εγγραφή σταματά όταν αφήνεται το κουμπί ή μετά από 20 δευτερόλεπτα
recordBool = Λάθος
else: #if recordBool is False, παίζει ήχο i.wav
os.system ("aplay -D plughw: CARD = Device_1, DEV = 0 %d.wav" %i)
ώρα. ύπνος (0,1)

προβολή rawPlayback recorder που φιλοξενείται με ❤ από το GitHub

Βήμα 6: Εκτελέστε το Python Script σε κάθε εκκίνηση

Για να εκτελέσετε το σενάριο python κατά την εκκίνηση κάθε Pi, οι ακόλουθες γραμμές τοποθετούνται σε ένα αρχείο που ονομάζεται playback.desktop στο φάκελο /home/pi/.config/autostart/

τρέχει το playback.py κατά την εκκίνηση του Raspberry Pi

[Καταχώριση επιφάνειας εργασίας]
Κωδικοποίηση = UTF-8
Τύπος = Εφαρμογή
Όνομα = Αναπαραγωγή
Σχόλιο = Αυτή είναι μια εφαρμογή αναπαραγωγής
Exec = python /home/pi/playback.py
StartupNotify = false
Τερματικό = αλήθεια
Κρυφό = ψευδές

προβολή rawplayback.desktop που φιλοξενείται με ❤ από το GitHub

Βήμα 7: Τέλος σημείωσης

Παρακαλώ πείτε μου τι πιστεύετε για αυτό το έργο στην ενότητα σχολίων, ενημερώστε με για τις προτάσεις σας και ψηφίστε με στον διαγωνισμό Raspberry Pi αν σας άρεσε.

Ανυπομονώ να σας διαβάσω!

Συνιστάται: