Πίνακας περιεχομένων:
- Βήμα 1: Λίστα μερών ραδιοφώνου WW2 Time Machine
- Βήμα 2: Εύρεση παλιού ραδιοφώνου
- Βήμα 3: Αφαίρεση του παλιού ραδιοφώνου και κατασκευή νέου πλαισίου
- Βήμα 4: Ανακαίνιση της θήκης
- Βήμα 5: Raspberry Pi Zero και ενισχυτής
- Βήμα 6: Δημιουργία νέας κλήσης
- Βήμα 7: Έλεγχος έντασης ή επιλογέα
- Βήμα 8: Τροφοδοσία και έλεγχος
- Βήμα 9: Προσαρμογή της θήκης
- Βήμα 10: Λήψη των αρχείων ήχου
- Βήμα 11: Κύκλωμα και λογισμικό για αναπαραγωγή των αρχείων
- Βήμα 12: Αυτόματη εκκίνηση του λογισμικού σε φόρτωση
- Βήμα 13: Τι στη συνέχεια;
Βίντεο: WW2 Radio Broadcast Time Machine: 13 βήματα (με εικόνες)
2024 Συγγραφέας: John Day | [email protected]. Τελευταία τροποποίηση: 2024-01-30 08:34
Η ιδέα πίσω από αυτό ήταν να χρησιμοποιήσω μερικά μέρη που είχα γύρω και να κατασκευάσω ένα ακουστικό τζουκ μπόξ, σχεδιασμένο σε ένα παλιό ραδιόφωνο. Για να δώσω ακόμη περισσότερους σκοπούς, αποφάσισα επίσης να το γεμίσω με παλιές ραδιοφωνικές εκπομπές από τον 2ο Παγκόσμιο Πόλεμο και στη συνέχεια να επανατοποθετήσω τη συχνότητα για να επιλέξω ένα μεμονωμένο έτος του πολέμου και στη συνέχεια να αναπαράγονται οι σχετικές εκπομπές. Είχα δει μερικές συλλογές ηχογραφήσεων MP3, οπότε όλα ήταν έτοιμα.
Όσον αφορά το υλικό, το αγαπημένο μου είναι είτε το arduino είτε το raspberry pi zero, και για αυτό θα χρησιμοποιήσω το raspberry pi zero. Ωστόσο, έχει τα μειονεκτήματά του και σε αυτή την περίπτωση είναι η έλλειψη εύχρηστου ήχου και καμία εύκολη αναλογική είσοδος. Για να το ξεπεράσω, έχω την τάση να χρησιμοποιώ το Adafruit I2S 3W Class D Amplifier Breakout - MAX98357A, ο οποίος είναι ένας πραγματικά εύκολος τρόπος για να προσθέσετε ήχο στο Pi και για την αναλογική είσοδο ένα MCP 3002 που είναι ένας μετατροπέας δύο καναλιών σε SPI. Γενικά οι άνθρωποι τείνουν να χρησιμοποιούν ένα MCP 3008 που έχει 4 εισόδους, αλλά το πίστευα ότι θα ήταν πολύ εύκολο, ευτυχώς κατάφερα να βρω κάποιο λογισμικό που δούλεψε με αυτά στο τέλος.
Ένα από τα άλλα προβλήματα με τη χρήση ενός PI είναι ότι τείνει να υποφέρει εάν απλώς το απενεργοποιήσετε χωρίς να εκτελέσετε τερματισμό λειτουργίας, το έχω συναντήσει άπειρες φορές και πάντα φαίνεται να καταστρέφει το αρχείο διαμόρφωσης δικτύου. Με αυτό να οραματίζεται ως ένα απλό αυτόνομο που θα ήταν πρόβλημα, έτσι πρόσθεσα επίσης ένα Pimoroni On/Off Shim που εκτελεί τόσο χαριτωμένο κλείσιμο με το πάτημα ενός κουμπιού, αλλά επιτρέπει επίσης την εκκίνηση με το ίδιο κουμπί.
Βήμα 1: Λίστα μερών ραδιοφώνου WW2 Time Machine
Τα εξαρτήματα που χρειάζονται
- Παλιό ραδιόφωνο
- Γαλλικά πολωνικά
- Γυαλόχαρτο
- Λεξάν για κλήση
- Συρρίκνωση
- Raspberry Pi Zero
- I2S Amp
- ON/OFF Shim
- Ομιλητής
- Τούβλο ισχύος
- MCP3002
- LED
- Αντίσταση 270R
- Δοχεία 2x 10k
- Πιέστε για να κάνετε το Switch
- Καλώδιο USB
Βήμα 2: Εύρεση παλιού ραδιοφώνου
Το πρώτο βήμα φυσικά είναι να βρω ένα κατάλληλο παλιό ραδιόφωνο και κατάφερα να το βρω στο ebay για 15 £. Υπήρχε ένας πειρασμός να αρχίσει να λειτουργεί, αλλά όταν βγήκε το πλαίσιο και εμφανίστηκε η πλήρης σειρά αντιστάσεων και πυκνωτών που θα πρέπει να αντικατασταθούν, δεν ένιωσα τόσο άσχημα που το χώρισα. Αν και αυστηρά δεν είναι ένα σετ του 1940, υπάρχουν κάποια κιτ κατασκευής σπιτιού από εκείνη την εποχή που σίγουρα έμοιαζαν.
Βήμα 3: Αφαίρεση του παλιού ραδιοφώνου και κατασκευή νέου πλαισίου
Είναι αρκετά απλό να διαχωρίσετε ένα από αυτά, γενικά φαίνεται ότι το πλαίσιο είναι τοποθετημένο στη θήκη και ότι όλα είναι τοποθετημένα. Έτσι, μόλις ξεβιδωθεί και τα κουμπιά απελευθερώθηκαν, απλά γλιστράει έξω. Τα περισσότερα είναι χτισμένα εξ ολοκλήρου σε ένα κάτω πλαίσιο. Η αρχική μου πρόθεση ήταν να χρησιμοποιήσω ένα ηχείο από ένα κομμένο κουτί ηχείων bluetooth, αλλά αναρωτήθηκα αν θα λειτουργούσε το παλιό. Wasταν μια ευχάριστη έκπληξη που διαπίστωσα ότι όχι μόνο λειτούργησε, αλλά ακούστηκε επίσης υπέροχα. Επομένως, το επόμενο βήμα εδώ ήταν να συνεχίσουμε να μετράμε τα πάντα και να κατασκευάζουμε ένα νέο πλαίσιο στο Tinkercad. Επαναπροσδιόρισα την περιοχή κλήσης συχνότητας και κράτησα το ηχείο στην ίδια θέση. Επιπλέον προστέθηκε μια πλάκα στερέωσης για το μηδέν πι. Το εκτύπωσα σε PETG το οποίο θεωρώ ότι είναι λιγότερο ανθεκτικό στο στρέβλωση και μια δοκιμαστική εφαρμογή όλων των τμημάτων έδειχνε ότι θα λειτουργήσει. Έπρεπε να παίξω λίγο με την τοποθέτηση της έντασης του ήχου, έτσι ώστε τα νέα δοχεία να ταιριάζουν και να τοποθετούνται ακόμα στη θήκη.
Μπορείτε να κατεβάσετε το τρισδιάστατο σασί εδώ αν θέλετε να το ξεγελάσετε
www.thingiverse.com/thing:3174818
Βήμα 4: Ανακαίνιση της θήκης
Τώρα το πρώτο πράγμα που έπρεπε να γίνει όταν η υπόθεση αφαιρέθηκε ήταν να αποφασίσει τι θα κάνει με το φινίρισμα. Παρόλο που η υπόθεση δεν ήταν πολύ κακή, αρχικά σκέφτηκα να της δώσω μια καλή καθαριότητα για να διατηρήσει τη φθαρμένη εμφάνιση της πατίνας. Συχνά ένα σκούπισμα με ξύδι θα φρεσκάρει μια παλιά θήκη, αλλά υπήρχαν μερικά σημεία στα οποία το βερνίκι είχε σπάσει, έτσι αποφάσισα να το αφαιρέσω. Με παλιές ξύλινες θήκες καλύπτονται κανονικά με ένα λεπτό καπλαμά ξύλου, αλλά δεν είναι τόσο λεπτό ώστε να μην μπορείς να κάνεις καλό τρίψιμο. Πρώτα αφαιρέθηκε το ύφασμα της μάσκας του ηχείου, το οποίο ήταν αρκετά αηδιαστικό με περίπου 50 χρόνια σκόνης και βρωμιάς και τοποθετήθηκε στη μία πλευρά. Στη συνέχεια, βγήκαν μερικά παχιά στρώματα Nitromors, μια απογύμνωση χρώματος και το παλιό βερνίκι. Αυτό έπρεπε να γίνει δύο φορές καθώς πιθανότατα βερνικώθηκε κάποια στιγμή πάνω από το αρχικό φινίρισμα. Για να καθαρίσετε μερικές από τις γρατζουνιές και να δώσετε ένα πιο ωραίο φινίρισμα, το τρίψατε με περίπου 100 grit χαρτί και στη συνέχεια ένα τελικό τρίψιμο με ένα μεσαίο σφουγγάρι λείανσης. Κάντε όλα αυτά σύμφωνα με τον κόκκο και στη συνέχεια σκουπίστε με λευκό πνεύμα για να καθαρίσετε τυχόν σκόνη. Ταυτόχρονα, το κουτί ήταν επίσης στερεωμένο με λίγη κόλλα ξύλου, όπου ο καπλαμάς είχε τραβηχτεί ελαφρώς. Οι ξύλινες μπάρες μάσκας είχαν επίσης ξεφλουδίσει λίγο, οπότε περισσότερο ξύλο κόλλησε και έσπρωξε τα κομμάτια όπου ήταν δυνατόν. Μόλις στεγνώσει, χρησιμοποίησα ένα νυστέρι για να καθαρίσω τις άκρες του ξύλου και τα έβαψα καφέ με λίγο ακρυλικό χρώμα Tamiya.
Η πρώτη μου σκέψη ήταν να αντικαταστήσω απλώς το ύφασμα του ηχείου, αλλά το κόστος του αυθεντικού υλικού είναι αρκετά μεγάλο, καθώς τείνει να πωλείται σε μεγάλα μήκη. Μετά από λίγο εξερεύνηση των vintage φόρουμ ραδιοφώνου, φαίνεται ότι μπορείτε να φέρετε πίσω το παλιό ύφασμα με ένα μούσκεμα. Έτσι, χρησιμοποιώντας κρύο νερό και πολλά υγρά πλύσης, το μούσκεψα όλη τη νύχτα και παραδόξως μόλις ξήρανσε ξανά, βγήκε αρκετά καθαρό.
Τώρα επρόκειτο να ασχοληθώ με το φινίρισμα και αρχικά αποφάσισα να του δώσω ένα διαφανές βερνίκι, στη συνέχεια σκέφτηκα να χρησιμοποιήσω ένα βερνίκι ψεκασμού και ενώ στο νησί βερνικιού/βαφής του τοπικού καταστήματος DIY βρήκα ένα μπουκάλι γαλλικό βερνίκι. Νομίζοντας ότι θα ήταν ένα καλό αυθεντικό φινίρισμα, αποφάσισα να το δοκιμάσω. Έτσι τώρα πρέπει να γνωρίζετε ότι το γαλλικό γυάλισμα είναι σχεδόν μια τέχνη/δεξιότητα που απαιτεί πολλή εξάσκηση για να γίνει σωστό. Μπορείτε να αναζητήσετε οδηγίες στο YouTube και παρόλο που φαίνεται αρκετά απλό, είναι μια αρκετά ακατάστατη λειτουργία. Η ικανότητα φαίνεται να παίρνει το βερνίκι σε ένα πανί εμποτισμένο με βαμβάκι, ώστε να μπορείτε να πιέζετε το βερνίκι στο ξύλο καθώς εργάζεστε. Αν το δοκιμάσετε απλά με ένα πανί, περίπου τα 3/4 του τρόπου που το βερνίκι αρχίζει να στεγνώνει καθώς η αιθανόλη εξατμίζεται και το πανί αρχίζει να σέρνεται. Έτσι, στο τέλος αντί να αποκτήσω το γυαλιστερό φινίρισμα, κατάφερα να εφαρμόσω μερικά στρώματα, να τρίψω ελαφρά με χαρτί βαθμού 1500, έπειτα να εφαρμόσω μερικά ακόμη και κατέληξε να φαίνεται εντάξει. εξακολουθώ να έχω λεκέδες από γαλλικό βερνίκι στα νύχια μου.
Ο καθαρισμός των άλλων εξαρτημάτων ήταν πολύ πιο εύκολος με όλο το υλικό να μπαίνει στο καθαριστικό υπερήχων και το καντράν να γυαλίζεται με λίγο Silvo Polish. Ο Brasso θα είχε την επιλογή, αλλά το Silvo και λίγο περισσότερο λίπος αγκώνα ήταν αρκετά για να καθαρίσει την ένδειξη κλήσης.
Στο τέλος αυτού είχα ένα αρκετά όμορφο ξύλινο κουτί έτοιμο για την ίδια τη μηχανή του χρόνου.
Βήματα σε αυτήν την ενότητα 1. Αφαιρέστε τυχόν μπουλόνια/καντράν και πανί.
2. Ξύλινη λωρίδα θήκης με νιτρομόρ
3. Τρίψτε το καπλαμά
4. Επανατοποθέτηση της γρίλιας
5. Καθαρισμός του υφάσματος του ηχείου
6. Γαλλικό γυάλισμα της θήκης
7. Υπερηχητικός καθαρισμός των βιδών και των κουμπιών
8. Γυάλισμα του δείκτη κλήσης
Βήμα 5: Raspberry Pi Zero και ενισχυτής
Με μια κανονική έξοδο ήχου Raspberry PI είναι αρκετά απλή καθώς έχει έξοδο ήχου, αλλά για το Pi Zero δεν υπάρχουν πραγματικές φυσικές επιλογές. Υπάρχουν κάποιες λύσεις που έχω δοκιμάσει όπου μπορείτε να δρομολογήσετε εκ νέου τις καρφίτσες GPIO και στη συνέχεια να χρησιμοποιήσετε ένα φίλτρο χαμηλής διέλευσης, αλλά ποτέ δεν κατάφερα να βρω κάτι που να ακούγεται αξιοπρεπές και φυσικά χρειάζεστε επίσης έναν ενισχυτή για να πάρετε κάτι χρήσιμο Το Υπάρχουν πολλά καπέλα DAC, αλλά αυτά είναι για άτομα που αναζητούν πολύ καλό ήχο και υπερβάλλουν για τέτοιου είδους έργα. Υπάρχουν επίσης μερικά ωραία φθηνά καπέλα ήχου με ενσωματωμένα ηχεία, αλλά όχι αρκετά δυνατά για αυτό. Έτσι, εγκαθίστανται τώρα στο i2S ενισχυτή ξεμπλοκαρίσματος του Adafruit που λύνει όλα τα προβλήματα με μια κίνηση. Σημειώστε μόνο ότι είναι i2S και όχι i2C.
Χρειάζεστε μόνο μερικά καλώδια για να λειτουργήσει και με ένα αρκετά αξιοπρεπές ηχείο μπορείτε να αποκτήσετε εξαιρετικό, δυνατό μονοφωνικό ήχο.
Βήμα 6: Δημιουργία νέας κλήσης
Η ιδέα εδώ φυσικά είναι να αντικαταστήσετε το υπάρχον καντράν και γυαλί με ένα που δείχνει το έτος αντί της συχνότητας. Ευτυχώς, το υπάρχον ήταν απλώς ένα έντυπο ένθετο, οπότε το έριξα στο σαρωτή και το αντέγραψα στο Paint Shop Pro, χρησιμοποίησα το εργαλείο κλωνοποίησης και σκούπισα τους παλιούς αριθμούς και έπειτα πληκτρολόγησα μερικούς νέους για κάθε χρόνο. Με το ποτήρι αυτό στο ραδιόφωνο ήταν γρατζουνισμένο και ραγισμένο και όπως φαίνεται και από πλαστικό. Εκτύπωσα μόνο το περίβλημα της στεφάνης για να κάνω τη δοκιμή εύκολη και αρχικά προσπάθησα να φτιάξω ένα από ακρυλικό. Γενικά δεν έχω αρκετή υπομονή με το ακρυλικό και κατέληξα να το σπάσω όταν προσπαθούσα να ανοίξω την κεντρική τρύπα. Έτσι κατέφυγα σε πολυανθρακικό 1,5 χιλιοστών, το οποίο είναι πολύ πιο εύκολο να το σιδερώσετε και να το τρυπήσετε. Μπορείτε να το βρείτε επίσης λεγόμενο Lexan ή Macrolon ανάλογα με το πού ζείτε και χρειάζεται επίσης ένα αρχείο, οπότε σύντομα είχα μια στεφάνη και καντράν που τοποθετήθηκε. Είναι επίσης ενδιαφέρον ότι το αρχικό χαρτί είχε μια ελαφριά εναπόθεση μετάλλου σε όλο του, μπορώ μόνο να υποθέσω ότι ήταν κάποιος που επηρεάστηκε από τον αρχικό δείκτη ορείχαλκου, ίσως κάποια διαδικασία γήρανσης;
Βήμα 7: Έλεγχος έντασης ή επιλογέα
Ένα από τα μειονεκτήματα του Raspberry pi για τσίμπημα είναι ότι δεν έχει καμία εγγενή αναλογική είσοδο. Δεν είναι πολύ μεγάλο πρόβλημα αν προσθέσετε ένα απλό ADC (Αναλογικό σε Digitalηφιακό μετατροπέα) και το MPC3002 ταιριάζει με το λογαριασμό εδώ και μετατρέπει μια αναλογική είσοδο σε τιμή 10bit που μπορεί να διαβαστεί στο δίαυλο SPI.
Σχεδόν όλα τα παραδείγματα που βρίσκετε είναι για το MPC3008 που είναι μια συσκευή 4 καναλιών και ο κωδικός για αυτό σίγουρα δεν λειτουργεί με το MPC3002. Φαίνεται επίσης ότι υπάρχουν πολλά παραδείγματα που δεν λειτουργούν, αλλά υπάρχει ένα που μπορώ να επιβεβαιώσω ότι λειτουργεί και ο κωδικός του βρίσκεται εδώ.
github.com/CaptainStouf/Adafruit-raspi-pyt…
Με αυτόν τον κωδικό μπορείτε εύκολα να διαβάσετε δύο κανάλια και να χρησιμοποιήσετε τα αποτελέσματα. Το παράδειγμά μου πρόκειται να χρησιμοποιήσει το ένα για τον τόμο και το άλλο την επιλογή ημερομηνίας. Κάποια στιγμή εγκατέστησα επίσης έναν περιστροφικό κωδικοποιητή, αλλά ο τόμος μίας στροφής είναι πιο κατάλληλος και με τον επιλογέα συχνότητας σήμαινε επίσης ότι θα μπορούσα να τα συναρμολογήσω όλα και στη συνέχεια να συντονίσω τις θέσεις των δεικτών του έτους με μια μεγάλη δήλωση μεγάλης θήκης. Φυσικά, το pyhon δεν υποστηρίζει τη δήλωση υπόθεσης τόσο πολύ, αν τότε αλλιώς εάν η δήλωση θα κάνει τη δουλειά.
Η εικόνα δείχνει το MCP3002 να κάθεται σε έναν μικρό πίνακα πρωτοτύπων και το δοχείο 10Κ
Βήμα 8: Τροφοδοσία και έλεγχος
Το Pi τερματίζεται απλώς από την τροφοδοσία USB, έτσι είναι πολύ εύκολο να ξεκινήσετε, ωστόσο θα καταλήξετε να καταστρέψετε την κάρτα SD αν απλώς τροφοδοτήσετε το ρεύμα. Υπάρχουν πολλοί τρόποι για να παρακολουθείτε ένα πάτημα κουμπιού και να ξεκινήσετε το κλείσιμο, αλλά στη συνέχεια τείνετε να πρέπει να κάνετε κύκλωμα τροφοδοσίας για να το επαναφέρετε. Για να το ξεπεράσω αυτό και να κάνω ένα εύκολο στη χρήση έργο, χρησιμοποιώ το Pimoroni ON/OFF shim. Αυτό σας επιτρέπει να πατήσετε μία φορά και να ενεργοποιηθεί και μετά ένα μακρύ πάτημα και θα εκτελέσει καθαρό τερματισμό λειτουργίας. Για να το κάνω λίγο φορητό επίσης, χρησιμοποιώ μια παλιά τράπεζα τροφοδοσίας που χειρίζεται επίσης τη φόρτιση της μπαταρίας. Τα Powerbanks είναι αρκετά φθηνά και μπορούν να λειτουργήσουν το Pi για αρκετή ώρα.
Τοποθέτησα το κουμπί push to make κατάλληλα στη θέση όπου το παλιό καλώδιο τροφοδοσίας βγήκε πίσω. Καθώς υπάρχει καθυστέρηση κατά την εκκίνηση του Pi, έβαλα μια λυχνία LED στη ράγα 3v3, η οποία ανάβει και μόλις το PI πάρει δύναμη και παρέχει μια ωραία αυθεντική λάμψη στο καντράν. Έβαλα μια αντίσταση 270R στη γραμμή και το άλλο άκρο ακριβώς στη γείωση. Θα μπορούσατε επίσης να προσθέσετε ένα άλλο σε μια καρφίτσα GPIO εάν θέλετε να δώσετε επιπλέον εφέ όπως το τρεμόπαιγμα, αλλά προς το παρόν αυτό κάνει αρκετά για να δείξει ότι η τροφοδοσία είναι ενεργοποιημένη.
Βήμα 9: Προσαρμογή της θήκης
Με τη θήκη και το πλαίσιο όλα έτοιμα και δοκιμασμένα, ήταν μόνο μερικά μπουλόνια 4mm και παξιμάδια Nyloc για να το κρατήσετε μέσα. Οι βίδες με φλάντζες μπορούν να κρατήσουν την πλάτη στη θέση τους.
Το κουμπί τροφοδοσίας προσαρμόστηκε επίσης όμορφα στην παλιά τρύπα καλωδίου τροφοδοσίας.
Wantedθελα επίσης να ξαναχρησιμοποιήσω τα παλιά πόμολα και είχαν αρχικά σχεδιαστεί φαίνεται να πηγαίνει σε ορειχάλκινες ράβδους και ήταν ελαφρώς πολύ μεγάλα για τις γλάστρες. Δεδομένου ότι αυτό δεν πρόκειται να έχει κακό χειρισμό, απλώς γλίστρησα θερμοσυρρικνωμένο πάνω από τα δοχεία και έπειτα κόλλησα τα πόμολα σε αυτό. Πιάνει όμορφα και σφιχτά και μπορείτε ακόμα να το χωρίσετε αν χρειαστεί.
Βήμα 10: Λήψη των αρχείων ήχου
Χρησιμοποιώ αρχεία MP3 και υπάρχει μια φανταστική επιλογή από το Archive.org, μπορείτε να βρείτε ομαδοποιημένες εκπομπές μετάδοσης πολέμου και υπάρχουν κυρίως δύο επιλογές για να διαλέξετε.
Ξεκίνησα με την επιλογή κυρίως ειδήσεων και αυτά στη συνέχεια αντιγράφονται σε καταλόγους στο PI. Μπορείτε επίσης να βρείτε τη μεγαλύτερη επιλογή, που ονομάζεται Μεγάλη στον ακόλουθο σύνδεσμο. Υπάρχουν αρκετές εκατοντάδες εκπομπές για κάθε χρόνο και είναι εκπληκτικό το ποσό και το εύρος αυτών.
archive.org/details/1939RadioNews
archive.org/details/1940RadioNews
archive.org/details/1941RadioNews
archive.org/details/1942RadioNews
archive.org/details/1943RadioNews
archive.org/details/1944RadioNews
archive.org/details/1945RadioNews
Μεγαλύτερη συλλογή
archive.org/details/WWII_News_1939
archive.org/details/WWII_News_1940
archive.org/details/WWII_News_1941
archive.org/details/WWII_News_1942
archive.org/details/WWII_News_1943
archive.org/details/WWII_News_1944
archive.org/details/WWII_News_1945
Χρησιμοποιώ το Filezilla ως έναν εύκολο τρόπο για να τα μεταφέρω στο Pi καθώς μπορεί να συνδεθεί και να μεταφερθεί χρησιμοποιώντας SSH, οπότε δεν χρειάζεται να ρυθμίσετε μονάδα SAMBA ή διακομιστή FTP.
Βήμα 11: Κύκλωμα και λογισμικό για αναπαραγωγή των αρχείων
Μόλις ο ενισχυτής λειτουργεί και μπορείτε να ακολουθήσετε τον παρακάτω σύνδεσμο εγκατάστασης για αυτό θα χρειαστεί επίσης να εγκαταστήσετε το πρόγραμμα αναπαραγωγής mpg123, αρκετά απλή αναζήτηση στο Google για τον κωδικό Python που βρίσκεται παρακάτω. Απλώς βεβαιωθείτε ότι έχετε ενεργοποιήσει το i2s και το SPI στο Raspi Config. Έχω βάλει αυτό το αρχείο στον κατάλογο/home/pi/volume/ώστε να μπορώ να το εκτελέσω στην εκκίνηση αργότερα.
#!/usr/bin/env python
# WW2 Radio- λογισμικό για ανάγνωση MCP3002 ADC και μετατροπή σε ένταση και προσαρμογή έτους # Έξοδος μέσω ενισχυτή i2S 2018-10-20- Ajax Jones # Τεμάχια κώδικα που παρέχονται από https://learn.adafruit.com/adafruit-max98357-i2s- class-d-mono-amp/raspberry-pi-use # MCP 3002 Python https://github.com/CaptainStouf/Adafruit-raspi-python/blob/master/Adafruit_MCP3002/MCP3002.py εισαγωγή RPi. GPIO ως GPIO, OS, cspin): if ((adcnum> 1) ή (adcnum <0)): return -1 GPIO.output (cspin, True) GPIO.output (clockpin, False) # start clock low GPIO.output (cspin, False) # φέρει CS low commandout = adcnum << 1; commandout | = 0x0D # bit έναρξης + bit τελικού άκρου + MSBF bit commandout << = 4 # χρειάζεται μόνο να στείλουμε 4 bits εδώ για i στην περιοχή (4): if (commandout & 0x80): GPIO.output (mosipin, True) αλλιώς: GPIO.output (mosipin, False) εντολή << = 1 GPIO.output (clockpin, True) GPIO.output (clockpin, False) adcout = 0 # read in one null bit and 10 ADC bits for i in range (11): GPIO.output (clockpin, True) GPIO.output (clockpin, False) adcout <0): print "Δεν βρέθηκαν αρχεία mp3!" επιστροφή mp3_files εκτύπωση "--WW2 Radio ---------------------------------------------- --------------------- "last_read = 0 # store the last position of the volume pot last_year = 0 # store the last position of the frequency pot tolerance = 5 # επιτρέψτε μια μικρή ανοχή, οπότε η μικρή κίνηση των δοχείων δεν προκαλεί αλλαγή ενώ True: trim_pot_changed = False year_pot_changed = False for adcnum in range (2): ret = readadc (adcnum, SPICLK, SPIMOSI, SPIMISO, SPICS) if (adcnum == 0): # διαβάστε το δοχείο για τον επιλογέα έτους για να δείτε ότι έχει μετακινηθεί year_adjust = abs (ret - last_year) if (year_adjust> tolerance+10): year_pot_changed = True if (year_pot_changed): # Τιμές για τους ελέγχους αν τότε πραγματοποιήθηκε μετά την ενσωματωμένη υποεπεξεργασία.call (['killall', 'mpg123']) # kill any MP3 running sleep (0.1). αν ret 50 και ret = 150 και ret = 250 και ret = 350 και ret = 450 και ret = 550): war_year = "1945" # αποθηκεύστε την τιμή του δοχείου για την επόμενη φορά γύρω από τον βρόχο last_year = ret print (" Αναπαραγωγή από "), εκτύπωση (πόλεμος_έτος), εκτύπωση (" αριθμός αρχείων = "), war_dir = '/home/pi/radio/WWII_News _'+war_year+'/' play_list = list_year (war_year) num_of_files = len (play_list) print num_of_files play_file = random.randint (1, num_of_files) # επιλέξτε τυχαία ένα από τα αρχεία για αναπαραγωγή (0.1); # παρέχετε μια μικρή παύση πριν συνεχίσετε εάν (adcnum == 1): # διαβάστε το δοχείο έντασης pot_adjust = abs (ret - last_read) if (pot_adjust> tolerance): trim_pot_changed = True if (trim_pot_changed): set_volume = ret / 10.24 # convert 10bit adc0 (0-1024) value pot in a 0-100 level volume set_volume = round (set_volume) # round out δεκαδική τιμή set_volume = int (set_volume) # cast volume ως ακέραιος # Χρησιμοποιήστε την τιμή από το pot για να στείλετε ένα επίπεδο στο το amixer prog print 'Volume = {volume}%'.format (volume = set_volume) set_vol_cmd = 'sudo amixer cset numid = 1 - {volume}%> /dev /null'.format (volume = set_volume) os.system (set_vol_cmd) # set volume # αποθηκεύστε την ένδειξη του ποτενσιόμετρου για τον επόμενο βρόχο last_read = ret # Παύση μετά την αλλαγή της έντασης, ώστε να μην ενεργούμε πάρα πολλές αλλαγές εάν το δοχείο αλλάξει γρήγορα. ύπνος (0,5)
Βήμα 12: Αυτόματη εκκίνηση του λογισμικού σε φόρτωση
Υπάρχουν πολλοί τρόποι για να εκτελέσετε μια εντολή στο Pi κατά την εκκίνηση, αλλά θεωρώ ότι αυτό είναι το πιο εύκολο, ανοίξτε το Crontab
sudo crontab -e
Τώρα απλά προσθέστε αυτήν τη γραμμή
@reboot python /home/pi/volume/year.py &
και αυτό θα πρέπει να κάνει το κόλπο, την επόμενη φορά που θα επανεκκινήσετε το πρόγραμμα ελέγχου ήχου θα τρέξει και θα πρέπει να ακούσετε την πρώτη σας εκπομπή.
Βήμα 13: Τι στη συνέχεια;
Αυτή τη στιγμή είμαι στη διαδικασία κατασκευής ενός μικρού PCB για να κάτσω πάνω από το raspberry pi έτσι ώστε να έχω κάπου να τοποθετήσω τον ενισχυτή i2S και το ADC μαζί με μερικούς βιδωτούς ακροδέκτες για τα δοχεία. Αυτό θα μου επιτρέψει να κάνω την εγκατάσταση λίγο πιο προσεκτική και εύκολα μερικές ακόμη για φίλους.
Αυτή τη στιγμή συλλέγω κάποια αρχεία για ένα ραδιοφωνικό διαστημικό αγώνα, ξεκινώντας από το sputnik και μετά μέχρι τις προσγειώσεις στο φεγγάρι.
Παρακαλώ ενημερώστε με εάν έχετε ιδέες ή θέλετε συμβουλές ή συμβουλές για να το συνδυάσετε μόνοι σας.
Αποσύνδεση.
Δεύτερο Βραβείο στον Διαγωνισμό ioχου 2018
Συνιστάται:
TTS Weather Broadcast: 5 βήματα
TTS Weather Broadcast: Συνήθως αποφασίζω αν θα φέρω ομπρέλα με βάση τις καιρικές συνθήκες πριν βγούμε έξω. Παλαιότερα έπαιρνα λάθος αποφάσεις επειδή ο καιρός ήταν μεταβλητός τις τελευταίες δύο εβδομάδες - ήταν ηλιόλουστος όταν βγήκα έξω και δεν έφερα ομπρέλα και
A Radio Time Machine: 8 βήματα (με εικόνες)
A Radio Time Machine: Βρήκα εδώ στο Instrutables ένα σπουδαίο έργο: WW2 Radio Broadcast Time Machine. Wasμουν έκπληκτος για την ιδέα. Αλλά δεν είμαι ο τύπος Python και μου αρέσει το Steampunk. Έτσι αποφάσισα να φτιάξω ένα παρόμοιο πράγμα με διαφορετικά υλικά. Εδώ θα βρείτε μια λίστα με τα
Time Cube - Arduino Time Tracking Gadget: 6 βήματα
Time Cube - Arduino Time Tracking Gadget: Θα ήθελα να σας προτείνω ένα απλό αλλά πραγματικά χρήσιμο έργο arduino για να παρακολουθείτε τα γεγονότα του χρόνου αναστρέφοντας κάποιο έξυπνο gadget. Γυρίστε το στο " Εργασία " > " Μάθετε " > " Δουλειές " > " Ξεκούραση " πλευρά και θα μετρήσει το
RaspiWWV - Simulated WWV Shortwave Audio Time Broadcast: 10 Steps (with Pictures)
RaspiWWV - Simulated WWV Shortwave Audio Time Broadcast: Θυμηθείτε τις μέρες που καθόσασταν να ακούτε σήματα ώρας WWV στο ραδιόφωνό σας Shortwave (τικ, τικ, τικ … Με τον τόνο, η ώρα θα είναι…); (Ακούστε το στο YouTube παραπάνω) Ω! Το χάσατε; Τώρα μπορείτε να (ξανα) ζήσετε αυτές τις στιγμές και να έχετε
Transistor Radio Time Machine: 22 Βήματα
Transistor Radio Time Machine: Μην πετάτε αυτό το παλιό ραδιόφωνο τρανζίστορ! Επανατοποθετήστε το σε μια μηχανή του χρόνου με παράξενες, νοσταλγικές εκπομπές μέσω του αρχικού ηχείου. Ολοκληρωμένη με μια επιλογή από προσαρμοσμένους προορισμούς ώρας και κυματιστό κεχριμπαρένιο φως που θυμίζει παλιά σωλήνα