Πίνακας περιεχομένων:
- Βήμα 1: Ιστορικό
- Βήμα 2: Κύρια εξαρτήματα υλικού
- Βήμα 3: Το βάζουμε όλα μαζί
- Βήμα 4: Ένα προσαρμοσμένο PCB
- Βήμα 5: Το περίβλημα
- Βήμα 6: Ρύθμιση του Raspberry Pi
- Βήμα 7: Λογισμικό
- Βήμα 8: Τι στη συνέχεια;
Βίντεο: Ρολόι επιστροφής στο μέλλον: 8 βήματα (με εικόνες)
2024 Συγγραφέας: John Day | [email protected]. Τελευταία τροποποίηση: 2024-01-30 08:37
Αυτό το έργο ξεκίνησε τη ζωή ως ξυπνητήρι για τον γιο μου. Έκανα να μοιάζει με το χρονικό κύκλωμα από το Back to the Future. Η οθόνη μπορεί να εμφανίσει την ώρα σε διάφορες μορφές, συμπεριλαμβανομένης φυσικά αυτής της ταινίας. Διαμορφώνεται μέσω των κουμπιών στο πάνω μέρος του περιβλήματος αλλά και μέσω μιας ιστοσελίδας που εξυπηρετείται από το Raspberry Pi Zero στο εσωτερικό. Σε μία από τις λειτουργίες οθόνης θα εμφανίζει τον τοπικό καιρό (από τον μετεωρολογικό σταθμό με τροφοδοσία Arduino) καθώς και την πρόγνωση και τυχόν καθημερινές υπενθυμίσεις, που διαμορφώνονται μέσω της διεπαφής ιστού. Έχει επίσης ήχο χάρη σε ένα DAC και θα μεταδίδει μουσική χρησιμοποιώντας το πρωτόκολλο AirPlay. Ο ήχος συναγερμού μπορεί να είναι οποιοδήποτε αρχείο ήχου επιλέγετε. Θα μειώσει και θα φωτίσει την οθόνη αυτόματα σε συγκεκριμένες ώρες της ημέρας (π.χ. αυγή και σούρουπο).
Βήμα 1: Ιστορικό
Πέρυσι έψαχνα για ένα νέο έργο Arduino έχοντας μόλις τελειώσει το πρώτο μου ποτέ, έναν μετεωρολογικό σταθμό στο σπίτι. Ο 11χρονος γιος μου είχε μόλις δει τις ταινίες Back to the Future για πρώτη φορά, οπότε σκέφτηκα ότι θα ήταν διασκεδαστικό να του φτιάξω ένα ξυπνητήρι που έμοιαζε με το χρονοδιάγραμμα στο Delorean για τα γενέθλιά του. Αυτή δεν είναι μια νέα ιδέα, υπάρχουν αρκετά παρόμοια έργα εκεί έξω (αυτό για παράδειγμα), οπότε σκέφτηκα ότι θα ήταν ένα ωραίο έργο να μάθεις από άλλους και να αποκτήσεις νέες δεξιότητες.
Η πρώτη έκδοση λειτούργησε αρκετά καλά (δεν ήταν έτοιμη για τα γενέθλιά του: το έκανα μέχρι τα Χριστούγεννα) αλλά έγινα αρκετά φιλόδοξος σε αυτό που ήθελα να κάνει και διαπίστωσα ότι το σκίτσο μου συνέχιζε να τρέχει στο όριο μνήμης του Arduino. Είχα επίσης αρκετές μικρές εξωτερικές μονάδες υλικού (WiFi, MP3 player, ενισχυτής ήχου, RTC κ.λπ.), οπότε όλα έγιναν λίγο δυσκίνητα. Στο τέλος, αποφάσισα να μετακομίσω σε μια πλατφόρμα Raspberry Pi που απλοποίησε το υλικό και μου επέτρεψε να συσκευάσω πολύ περισσότερες λειτουργίες και δυνατότητες.
Βήμα 2: Κύρια εξαρτήματα υλικού
Μέσα στο κουτί
Εδώ είναι τα ηλεκτρονικά εξαρτήματα που χρησιμοποίησα. Οι περισσότερες από αυτές ήταν πηγές από την Core Electronics στην Αυστραλία, αλλά φυσικά είναι άμεσα διαθέσιμες και αλλού:
- 4 x τετραπλή αλφαριθμητική οθόνη -κίτρινο -πράσινο
- Raspberry Pi Zero W
- Pimoroni pHAT DAC για Raspberry Pi Zero
- Ενισχυτής ήχου (PAM8403 IC)
- Τροφοδοτικό Raspberry Pi 3+
- 4 x καλώδιο βραχυκυκλωτήρα - 0,1 ", 5 ακίδων, 12"
- 40 καλώδιο κορδέλας (2 x 20)
- Raspberry Pi GPIO Male Header
- Raspberry Pi Model B - GPIO Shrouded Header (2X20)
- GPIO Stacking Header for Pi A+/B+/PI 2/PI 3 - extra -long 2X20
- Αρσενική κεφαλίδα 4 x 5 ακίδων
- 2 μικρά ηχεία 3W
- 2 x ομοαξονικά καλώδια για αναλογική σύνδεση ήχου DAC με ενισχυτή
- Veraboard ή προσαρμοσμένο PCB για χειρισμό Rpi σε κουμπιά ενισχυτή, LED
- 5 x στιγμιαίοι διακόπτες κουμπιού
- 4 x μπλοκ ακροδεκτών με βίδα που μπορούν να τοποθετηθούν σε PCB 2 κατευθύνσεων
Το κιβώτιο
- Κομμάτια από MDF, βίδες και μπουλόνια για να φτιάξετε το «πλαίσιο»
- Πράσινο φιμέ perspex, τοπικός προμηθευτής
- Στυρένιο, κόλλα μοντελοποίησης, βαφή σπρέι (χρώμα αλουμινίου) από τοπικό κατάστημα χόμπι
-
Αυτοκόλλητα (αρχείο διαθέσιμο κατόπιν αιτήματος - τυπωμένο από το Redbubble)
Βήμα 3: Το βάζουμε όλα μαζί
Η οθόνη LED για το ρολόι αποτελείται από αλφαριθμητικές οθόνες 16x14 τμημάτων, ευτυχώς τον ίδιο αριθμό χαρακτήρων με το χρονικό κύκλωμα Επιστροφή στο μέλλον. Ενώ μόνο οι τρεις πρώτοι χαρακτήρες πρέπει να είναι αλφαριθμητικοί και οι υπόλοιποι θα μπορούσαν να είναι αριθμητικές οθόνες 7 τμημάτων για να μιμηθούν το στήριγμα της ταινίας, αποφάσισα να τους κάνω όλους αλφαριθμητικούς για να επιτρέψω κάποια ευελιξία σε αυτό που θα μπορούσε να εμφανιστεί και να τους κρατήσω όλους να φαίνονται ίδιο. Τα τετράγωνα σακίδια Adafruit είναι μια εξαιρετική λύση εδώ και μπορούν να χρησιμοποιηθούν στο λεωφορείο I2C του Raspberry Pi. Περισσότερες πληροφορίες σχετικά με αυτές τις μονάδες και πώς να τις συνδέσετε μπορείτε να βρείτε εδώ στην ιστοσελίδα του Adafruit. Το μόνο ελαφρώς μη τυπικό πράγμα που έπρεπε να κάνω ήταν να αλλάξω τις διευθύνσεις τριών από αυτούς, έτσι ώστε κάθε σακίδιο να είναι μοναδικό.
Για αναπαραγωγή ήχου (σε στερεοφωνικό), συμπεριέλαβα το Pimoroni pHAT DAC και έναν στερεοφωνικό ενισχυτή ήχου 2 x 3W βασισμένο στο τσιπ PAM8403. Το pHAT DAC είναι πραγματικά εύκολο να συνδεθεί με το Pi. Έβαλα μια αντρική κεφαλίδα 2 x 20 ακίδων στο Pi και μια κεφαλίδα στοίβαξης GPIO στο DAC, ώστε να μπορούν να συνδεθούν μεταξύ τους το ένα πάνω στο άλλο. Οι αρσενικές καρφίτσες κεφαλίδας περνούν από την κορυφή του DAC, επιτρέποντάς μου να τρέξω ένα καλώδιο με κορδέλες με θηλυκές συνδέσεις, αρχικά σε ένα ξεμπλοκάρισμα Raspberry Pi για δοκιμή ψωμιού, αλλά τελικά σε μια επικαλυμμένη κεφαλίδα σε προσαρμοσμένο PCB.
Για τον ενισχυτή ήχου, υπάρχουν πολλές επιλογές (συμπεριλαμβανομένης της απόκτησης του τσιπ και της συναρμολόγησης του δικού σας). Αυτό έχει τη δυνατότητα σίγασης της εξόδου αλλάζοντας απλώς την κατάσταση μιας από τις ακίδες (το υψηλό είναι ενεργοποιημένο, το χαμηλό είναι απενεργοποιημένο) και το συνδέω έτσι ώστε να μπορεί να ελεγχθεί από το Pi. Στις αρχικές μου προσπάθειες να το συνδέσω, ανακάλυψα πολύ θόρυβο στο παρασκήνιο όταν ήταν ενεργοποιημένος ο ήχος. Μετά από πολύ παιχνίδι με τη γείωση, τελικά προσπάθησα να μετακινήσω την τάση τροφοδοσίας εισόδου από τα 5V του Pi σε 3,3V και αυτό το διόρθωσε. Υποθέτω ότι παράγεται πολύς θόρυβος από τα διάφορα ψηφιακά σήματα που πετούν, αλλά φαίνεται ότι η τροφοδοσία των 3.3V είναι κάπως απομονωμένη.
Άλλες συνδέσεις περιλαμβάνουν τον αναλογικό ήχο από το DAC στον ενισχυτή (χρησιμοποίησα εδώ ομοαξονικό καλώδιο για τη διαχείριση του θορύβου) και έξοδο ήχου σε ένα ζευγάρι μικρών ηχείων 3W που ταιριάζουν στο περίβλημα. Υπάρχουν επίσης συνδέσεις GPIO για τους τέσσερις στιγμιαίους διακόπτες στο πάνω μέρος του κιβωτίου και ένωσα ένα στιγμιαίο κουμπί στις καρφίτσες "RUN" της σκληρής επαναφοράς (δείτε την ενότητα Πρόσθετες συνδέσεις σε αυτήν τη σελίδα). Το κουμπί επαναφοράς είναι τοποθετημένο εκτός οράματος στο πίσω μέρος του περιβλήματος. Ακολουθεί ένα διάγραμμα που δείχνει τις συνδέσεις:
Βήμα 4: Ένα προσαρμοσμένο PCB
Ενώ δεν υπάρχει τίποτα πολύ περίπλοκο στο κύκλωμα, υπάρχει αρκετή καλωδίωση και μια σανίδα μπορεί να μοιάζει με μακαρόνια πολύ γρήγορα. Έτσι σχεδίασα ένα PCB για να τα κρατάω όλα υπό έλεγχο. Είναι ένας πίνακας μονόπλευρης παρασκευής στο σπίτι και πήρα έναν φίλο για να το βοηθήσει. Αφού κατασκευάστηκε και συνδέθηκε, συνειδητοποίησα ότι ξέχασα να συμπεριλάβω συνδέσεις για τα μπλοκ ακροδεκτών για τον ήχο και αργότερα έκανα μια αλλαγή για να μετακινήσω την παροχή ενισχυτή ήχου από 5V σε 3.3V, οπότε δεν είναι ιδανικό και έπρεπε να κολλήσω κάποια Veroboard για να επιτρέψει τις συνδέσεις ήχου. Επίσης, τα pinouts της κάρτας ενισχυτή ήχου βρίσκονται σε μη τυπικό διαχωρισμό (διαφέρουν ακόμη και μεταξύ ακίδων), οπότε η σύνδεση για αυτό με το κύριο PCB είναι λίγο φρικτή με 11 σύντομα καλώδια σύνδεσης ~ 1cm.
Αν έκανα έναν άλλο πίνακα, θα συμπεριλάμβανα όλες αυτές τις τροποποιήσεις και θα άλλαζα επίσης τη σύνδεση για τα τέσσερα κουμπιά σε κάτι λίγο πιο ωραίο. Το DAC και το Pi θα στοιβάζονταν ακριβώς από πάνω, οπότε δεν χρειαζόταν καλώδιο κορδέλας. Το παραπάνω διάγραμμα δείχνει πώς μπορεί να φαίνεται.
Βήμα 5: Το περίβλημα
Wantedθελα να φτιάξω ένα περίβλημα που έμοιαζε με μια σειρά του χρονοδιαγράμματος της ταινίας. Τρεις σειρές οθονών LED θα ήταν πάρα πολλές για ξυπνητήρι και θα είχαν αυξηθεί σημαντικά στο κόστος. Σκέφτηκα να φτιάξω το περίβλημα από αλουμίνιο, αλλά δεν έχω ικανότητες σε αυτόν τον τομέα. Έχω φτιάξει όμως αρκετά πλαστικά μοντέλα στη ζωή μου και έχω κάποια εμπειρία στην ξυλουργική, οπότε αποφάσισα να φτιάξω ένα πλαίσιο χρησιμοποιώντας MDF για να τοποθετήσω τα LED και τα ηχεία και να στερεώσω το perspex στο μπροστινό μέρος και στη συνέχεια να το καλύψω με στυρόλιο 5 όψεων κουτί με στεφάνη στο μπροστινό μέρος, βαμμένο σε αλουμινένιο μεταλλικό χρώμα σπρέι. Το πλαστικό και το χρώμα προήλθαν από τοπικό κατάστημα μοντέλων. Έριξα μια προσεκτική ματιά στις ετικέτες στο στήριγμα της ταινίας και έβαλα τα δυνατά μου για να αντιγράψω τα χρώματα, τον τύπο γραμματοσειράς και το μέγεθος. Χρησιμοποίησα το Photoshop για να φτιάξω τις ετικέτες και τις εκτύπωσα ως αυτοκόλλητα από το Redbubble.
Οι παραπάνω εικόνες δείχνουν:
- Το μπροστινό μέρος του πλαισίου MDF. Τα 4 σακίδια LED είναι τοποθετημένα στο μπροστινό μέρος με πράσινο χρώμα
- Μέσα στο κουτί. Σακίδια όλα τοποθετημένα και ευθυγραμμισμένα, Raspberry Pi και προσαρμοσμένο PCB, ηχεία εκατέρωθεν.
- Η καλωδίωση είναι εγκατεστημένη και το εξωτερικό περίβλημα είναι έτοιμο να συνεχιστεί. Aταν λίγο συμπίεση!
Βήμα 6: Ρύθμιση του Raspberry Pi
Είχα κάποια προβλήματα συμβατότητας με το Raspbian Stretch (που μπορεί να ήταν επιλύσιμο αν επέμενα), αλλά η Jessie δουλεύει μια χαρά, οπότε αποφάσισα να συνεχίσω.
Έστησα το Pi ως μονάδα κεφαλής με πρόσβαση VNC και SSH. Αυτό θα μπορούσε να είχε γίνει χωρίς να συνδέσω ποτέ πληκτρολόγιο ή οθόνη, αλλά δανείστηκα την τηλεόραση και σκούπισα ένα πληκτρολόγιο και το πήγα ακέφαλο αρκετά γρήγορα. Από εκεί και πέρα, χρησιμοποιούσα πολύ VNC από εκεί και πέρα.
Ο κωδικός ρολογιού μου χρησιμοποιεί Python 2.7.9 και βασίζεται σε αρκετές βιβλιοθήκες, που αναφέρονται παρακάτω. Εκτός από αυτό, τρέχω Flask web server και MQTT για τηλεχειρισμό και Shairplay για ροή μουσικής. Ακολούθησα τις σημειώσεις εγκατάστασης σε απευθείας σύνδεση για όλα αυτά και δεν είχα κανένα απολύτως πρόβλημα. Εδώ είναι οι βιβλιοθήκες python και άλλα πακέτα κ.λπ.
Βιβλιοθήκες Python
- Adafruit_LED_Backpack
- Rpi. GPIO (apt-get install python-rpi.gpio)
- alsaaudio
- paho.mqtt.client (pip install paho-mqtt)
- φιάλη (apt-get install python-flask)
Άλλα πακέτα κλπ
- κουνούπι (apt-get install mosquito)
- shairport
- Ο ιστότοπος Pimoroni έχει κάποια καλή τεκμηρίωση για τη ρύθμιση του DAC, οπότε έτρεξα με αυτό.
Βήμα 7: Λογισμικό
Ο κωδικός ρολογιού γράφτηκε σε Python και χρησιμοποιεί κλωστή για να αναπαράγει το ξυπνητήρι και περιστασιακά αναβοσβήνει στο παρασκήνιο χωρίς να αποκλείει τις ενημερώσεις της οθόνης. Χρησιμοποίησα τη βιβλιοθήκη ConfigParser και το αρχείο ρυθμίσεων που διατηρεί διαβάζεται και γράφεται από τον κωδικό ρολογιού καθώς και την εφαρμογή Ιστού Flask, έτσι ώστε κάθε φορά που αλλάζει η διαμόρφωση μέσω της διεπαφής ιστού ή του ρολογιού, να συγχρονίζεται. Το λογισμικό ρολογιού περιλαμβάνει επίσης έναν μεσίτη MQTT που επιτρέπει τον έλεγχο της λειτουργίας εμφάνισης και τη σίγαση για τον έλεγχο από απόσταση. Το τελευταίο μου κίνητρο είναι τελικά να γράψω μια εφαρμογή iOS για το τηλεχειριστήριο, αλλά η διεπαφή ιστού λειτουργεί αρκετά καλά προς το παρόν.
Η πρώτη εικόνα παραπάνω δείχνει πώς φαίνεται το ρολόι στις διάφορες λειτουργίες εμφάνισης και υπάρχει ένα σύντομο βίντεο που το δείχνει σε λειτουργία κύλισης.
Ενώ ο κώδικας δεν είναι όμορφος για να τον δεις, είναι ωραίος και σταθερός. Είμαι στην ευχάριστη θέση να το στείλω σε όποιον το ζητήσει και θα το βάλει στο διαδίκτυο όταν είναι καλύτερα οργανωμένο και σχολιασμένο.
Η εφαρμογή Ιστού
Η επόμενη εικόνα δείχνει πώς φαίνεται η διεπαφή ιστού στο ρολόι. Υπάρχουν επίσης σελίδες διαμόρφωσης και ελέγχου και αυτές διευκολύνουν πολύ το παιχνίδι με το ρολόι χωρίς πολλή ανάμειξη κουμπιών:-).
Βήμα 8: Τι στη συνέχεια;
Υπάρχει διαθέσιμος αποκωδικοποιητής μεταδεδομένων Python shareport, οπότε νομίζω ότι θα προσθέσω έναν κώδικα για να εμφανίσω πληροφορίες όπως τίτλος και καλλιτέχνης όταν παίζεται μουσική. Θα ήταν επίσης πολύ εύκολο να υπολογίσετε τους χρόνους ανατολής και δύσης του ηλίου, έτσι ώστε η οθόνη να φωτίζεται και να μειώνεται αυτόματα, αντί να ρυθμίζεται χειροκίνητα. Maybeσως η προσθήκη μιας λειτουργίας ραδιοφώνου στο Διαδίκτυο θα ήταν επίσης διασκεδαστική. Η οθόνη κύλισης θα μπορούσε επίσης να είναι πιο διαμορφώσιμη.
Συνιστάται:
Ρολόι συνταξιοδότησης / Καταμέτρηση / Ρολόι Dn: 4 βήματα (με εικόνες)
Ρολόι συνταξιοδότησης / Count Up / Dn Clock: Είχα μερικές από αυτές τις οθόνες 8x8 LED με κουκκίδες στο συρτάρι και σκεφτόμουν τι να κάνω με αυτές. Εμπνευσμένο από άλλες οδηγίες, μου ήρθε η ιδέα να δημιουργήσω μια οθόνη αντίστροφης μέτρησης/ανύψωσης για να μετράω αντίστροφα σε μια μελλοντική ημερομηνία/ώρα και αν ο στόχος είναι
C51 4 Bits Ηλεκτρονικό Ρολόι - Ξύλινο Ρολόι: 15 Βήματα (με Εικόνες)
C51 4 Bits Ηλεκτρονικό Ρολόι - Ξύλινο Ρολόι: Είχα λίγο ελεύθερο χρόνο αυτό το Σαββατοκύριακο, έτσι προχώρησα και συναρμολόγησα αυτό το ηλεκτρονικό ψηφιακό ρολόι 4 -bit DIY 2,40 AU $ 2,40 που αγόρασα από την AliExpress πριν από λίγο
Μετατρέψτε το συνηθισμένο ρολόι στο σπίτι σε αυτόνομο λαμπερό ρολόι: 8 βήματα (με εικόνες)
Μετατρέψτε το συνηθισμένο ρολόι σε αυτό το λαμπερό ρολόι: ΠΡΩΤΑ ΔΩΣΩ ΤΗΝ ΕΥΧΑΡΙΣΤΙΚΗ ΜΟΥ ΟΜΑΔΑ ΚΑΙ ΟΔΗΓΙΕΣ ΓΙΑ ΤΗΝ ΥΓΕΙΑ ΜΟΥ ΑΝΑΚΑΛΥΗ ΠΕΡΙΣΣΟΤΕΡΟ ΑΠΑΝΤΗΣΗ ….. Σε αυτά τα εκπαιδευτικά, θέλω να μοιραστώ μαζί σας παιδιά πώς να μετατρέψετε το συνηθισμένο ρολόι του σπιτιού σας μέσα στο λαμπερό ρολόι. > > Για να το κάνετε αυτό
Ρολόι κινούμενων σχεδίων SMART LED συνδεδεμένο στο Web με πίνακα ελέγχου που βασίζεται στο Web, συγχρονισμένος διακομιστής χρόνου: 11 βήματα (με εικόνες)
Ρολόι κινούμενων σχεδίων SMART LED συνδεδεμένο στο Web με πίνακα ελέγχου Web, συγχρονισμένος διακομιστής χρόνου: Η ιστορία αυτού του ρολογιού πηγαίνει πολύ πίσω-περισσότερα από 30 χρόνια. Ο πατέρας μου πρωτοστάτησε σε αυτή την ιδέα όταν ήμουν μόλις 10 ετών, πολύ πριν από την επανάσταση των LED - πίσω όταν τα LED ήταν 1/1000 της φωτεινότητας της τρέχουσας εκτυφλωτικής λαμπρότητας τους. Μια αληθεια
Πώς να φτιάξετε τεχνουργήματα από το μέλλον στην αποβάθρα 9: 11 βήματα (με εικόνες)
Πώς να φτιάξετε αντικείμενα από το μέλλον στην προβλήτα 9: Πρώτα απ 'όλα, τι είναι τα αντικείμενα από το μέλλον; Φανταστείτε ότι θα μπορούσατε να πάρετε μια αποστολή αρχαιολόγου στο μέλλον για να συλλέξετε αντικείμενα και θραύσματα κειμένου ή φωτογραφίες για να καταλάβετε ποια θα είναι η καθημερινή ζωή να είναι σε 10, 20 ή 50 χρόνια. Arti