Διαφήμιση
Τα Χριστούγεννα είναι και πάλι εδώ και αν είναι οι αγαπημένες σας διακοπές της χρονιάς ή σας φέρνουν σε κρύο ιδρώτα, οι διακοσμήσεις αρχίζουν να ανεβαίνουν. Φέτος, γιατί να μην ενσωματώσετε κάποια τεχνολογία DIY στις διακοσμήσεις σας για να τις κάνετε να ξεχωρίζουν;
Σε αυτό το έργο θα κατασκευάσουμε ένα αδιάβροχο, ενεργοποιημένο με κίνηση 8 x 8 LED matrix από το μηδέν… για λιγότερο από 20 $. Είναι σχεδιασμένο για να ταιριάζει στο κέντρο ενός τυπικού στεφανιού για χριστουγεννιάτικες πόρτες, αν και θα μπορούσε να χρησιμοποιηθεί οπουδήποτε γύρω από το σπίτι. Και δεδομένου ότι τροφοδοτείται με μπαταρία, και οπουδήποτε μακριά από το σπίτι!
Λίστα ανταλλακτικών
Για αυτό το έργο θα χρειαστείτε:
- Arduino.
- Χρησιμοποίησα το Νάνο για μικρό μέγεθος, αλλά θα μπορούσατε να χρησιμοποιήσετε σχεδόν οποιοδήποτε Μικροελεγκτής συμβατός με Arduino Οδηγός αγοράς Arduino: Ποιος πίνακας πρέπει να πάρετε;Υπάρχουν τόσα πολλά είδη σανίδων Arduino εκεί έξω, θα σας συγχωρούσαν που μπερδεύτηκα. Ποιο θα πρέπει να αγοράσετε για το έργο σας; Ας βοηθήσουμε, με αυτόν τον οδηγό αγοράς Arduino! Διαβάστε περισσότερα .
- 64 x κόκκινα LED.
- 8 x 220 Ohm αντιστάσεις.
- Αισθητήρας κίνησης PIR.
- Πολλά Κιτ εκκίνησης Arduino Τι περιλαμβάνεται σε ένα κιτ εκκίνησης Arduino; [MakeUseOf Εξηγεί]Έχω εισαγάγει στο παρελθόν το υλικό ανοιχτού κώδικα Arduino εδώ στο MakeUseOf, αλλά χρειάζεστε κάτι περισσότερο από το πραγματικό Arduino για να δημιουργήσετε κάτι από αυτό και να ξεκινήσετε. Το Arduino "starter kits" είναι ... Διαβάστε περισσότερα έλα μαζί τους. Αγόρασα ένα multi-pack από Amazon για 10 $.
- 1 κομμάτι πρωτότυπη πλακέτα.
- Αυτό που χρησιμοποιήθηκε εδώ ήταν 9 x 7 cm, αν και μπορείτε να χρησιμοποιήσετε οποιοδήποτε μέγεθος θέλετε.
- Μπαταρία 7-12v.
- Μια απλή μπαταρία χρησιμοποιείται εδώ για λόγους προϋπολογισμού, αλλά a φορτιστής τράπεζας κινητής τηλεφωνίας Οι καλύτερες τράπεζες Power Pokemon GoΤο Pokemon Go ξεπερνά την μπαταρία ενός τηλεφώνου. Η συμπίεση λίγο περισσότερο χυμού Pokemon από το τηλέφωνό σας απαιτεί τράπεζα τροφοδοσίας. Αλλά ποια είναι η καλύτερη μπαταρία εκεί έξω; Διαβάστε περισσότερα μπορεί να διαρκέσει ακόμη περισσότερο.
- Διάφορα κομμάτια σύρματος.
- Κουτί Tupperware ή παρόμοιο αδιάβροχο περίβλημα.
- Βεβαιωθείτε ότι θα είναι αρκετά μεγάλο για να χωράει όλα τα εξαρτήματά σας μέσα!
- Χριστουγεννιάτικο στεφάνι.
- Οποιοδήποτε θα κάνει, απλώς βεβαιωθείτε ότι το κουτί του περιβλήματος θα χωράει μέσα του.
- Συγκόλληση και κολλητήρι.
Αν και δεν είναι απολύτως απαραίτητο καθώς θα μπορούσατε να κολλήσετε τα εξαρτήματα απευθείας στο Nano, βρήκα επίσης ένα μικρό ψωμί πολύ χρήσιμο κατά τη δοκιμή. Ένα πιστόλι ζεστής κόλλας βοηθά επίσης στην ένωση όλων των μερών.
Αυτό το έργο απαιτεί πολλή συγκόλληση και ως αρχάριος μπορεί να φαίνεται τρομακτικό. Προσωπικά, είμαι ακόμη αρχάριος στην συγκόλληση και διαπίστωσα ότι δεν είναι τόσο απαιτητική ή χρονοβόρα όσο φαίνεται. Εάν είστε επίσης νέοι στη συγκόλληση εδώ είναι μερικές καλές συμβουλές για βοήθεια Μάθετε πώς να κολλήσετε, με αυτές τις απλές συμβουλές και έργαΕίστε λίγο εκφοβισμένοι από τη σκέψη ενός ζεστού σιδήρου και λιωμένου μετάλλου; Εάν θέλετε να ξεκινήσετε να εργάζεστε με ηλεκτρονικά είδη, θα πρέπει να μάθετε να κολλάτε. Ας βοηθήσουμε. Διαβάστε περισσότερα .
Εάν δεν ενδιαφέρεστε πραγματικά για την ιδέα της συγκόλλησης, αυτό το έργο είναι επίσης δυνατό με Λωρίδες LED Έργο Σαββατοκύριακου: Δημιουργήστε μια οθόνη Pixel Giant LEDΛατρεύω τα pixel LED: φωτεινά, εύκολα στον έλεγχο, φθηνά και τόσο ευπροσάρμοστα. Σήμερα, θα τα μετατρέψουμε σε μια μεγάλη οθόνη pixel που μπορεί να κρεμαστεί στον τοίχο. Διαβάστε περισσότερα , ή μια έτοιμη μήτρα LED που μπορεί να έχετε στο κιτ εκκίνησης. Ορισμένες προσαρμογές κώδικα θα είναι απαραίτητες εάν αποφασίσετε να ακολουθήσετε αυτήν τη διαδρομή.
Ρύθμιση του Arduino
Θα ξεκινήσουμε με το διάγραμμα κυκλώματος για το Arduino και τα καλώδια που θα συνδέουμε με τον αισθητήρα PIR και τη μήτρα LED.
Μέσα στη μήτρα
Τώρα για να φτιάξουμε τη μήτρα LED 8 x 8. Είναι καλή ιδέα να ξεκινήσετε με τη δημιουργία μιας σειράς και μιας στήλης του πίνακα, για να βεβαιωθείτε ότι είναι ακριβώς εκεί που θέλετε στον πίνακα πρωτοτύπων.
Στην παραπάνω φωτογραφία, όλες οι λυχνίες LED τοποθετούνται έτσι ώστε οι άνοδοι (το μακρύτερο, θετικό πόδι) να είναι προς την κορυφή του πρωτοτύπου. Αυτό είναι σημαντικό, καθώς θα δημιουργούμε στήλες κοινών ανόδων, ενώνοντας τις μαζί, και σειρές κοινών καθόδων (το μικρότερο, αρνητικό σκέλος). Κάνοντας αυτό τώρα θα εξοικονομήσετε πονοκεφάλους αργότερα!
Πρόκειται να δημιουργήσουμε μια κοινή μήτρα καθόδου σειράς, αυτό το διάγραμμα δείχνει πώς είναι όλα συνδεδεμένα.
Μπορεί να φαίνεται λίγο τρομακτικό στην αρχή, αλλά είναι αρκετά απλή διαμόρφωση. Σε κάθε σειρά, όλες οι κάθοδοι ενώνονται από τα δεξιά προς τα αριστερά και, στη συνέχεια, συνδέονται σε μία από τις καρφίτσες Arduino. Μετά από αυτό, κάνουμε το ίδιο για κάθε στήλη των ανόδων. Με αυτόν τον τρόπο, ανάλογα με τη στήλη στην οποία εφαρμόζουμε ισχύ και σε ποια γραμμή συνδέουμε στη γείωση, μπορούμε να ενεργοποιήσουμε οποιοδήποτε μεμονωμένο LED στον πίνακα.
Ας αρχίσει η συγκόλληση
Ξεκινήστε τοποθετώντας την πρώτη σας σειρά LED. Βεβαιωθείτε ότι όλες οι άνοδοι βλέπουν στην κορυφή και αναστρέψτε την. Διαπίστωσα ότι η προσθήκη ενός άλλου LED σε κάθε γωνία και η προσάρτηση ενός άλλου κομματιού στην κορυφή χρησιμοποιώντας ένα ελαστικό καλώδιο βοήθησαν να κρατήσουν τα πάντα στη θέση τους.
Τώρα κάμψε ένα προς τα κάτω την κάθοδο (κοντό) πόδι κάθε LED προς τα αριστερά, έτσι ώστε όλα να αλληλεπικαλύπτονται το ένα με το άλλο. Είναι πιο εύκολο να ξεκινήσετε από την αριστερή πλευρά και να εργαστείτε δεξιά. Εάν χρησιμοποιείτε ένα μεγαλύτερο κομμάτι πρωτοσανίδας, μπορείτε να τα κολλήσετε πρώτα στην πλακέτα και να τα συνδέσετε μαζί χρησιμοποιώντας τα τακάκια. Προσέξτε να μην ενώσετε καμία από τις καθόδους σε άλλες γραμμές του σκάφους ή σε οποιαδήποτε από τις άνοδοι!
Επαναλάβετε αυτήν τη διαδικασία και για τις οκτώ σειρές και όταν τελειώσετε θα πρέπει να έχετε κάτι που μοιάζει με αυτό:
Άλματα!
Οι στήλες των ανόδων είναι λίγο πιο ασταθείς. Στο παραπάνω διάγραμμα, οι άνοδοι κάμπτουν κάθε φορά που διασχίζουν μια σειρά καθόδων. Αυτό συμβαίνει επειδή δεν μπορούν να αγγίξουν καθόλου τις σειρές. Πρέπει να λυγίσουμε τις άνοδοι στις σειρές καθόδου και να τις συνδέσουμε μεταξύ τους. Μπορεί να διαπιστώσετε ότι η χρήση ενός στυλό για να λυγίσει τα πόδια βοηθά πολύ.
Κάντε αυτό για κάθε σειρά ανόδων και συνδέστε μια αντίσταση σε κάθε κορυφαία άνοδο. Πιθανότατα θα είναι πιο εύκολο να τοποθετήσετε την αντίσταση στην επόμενη τρύπα στο πρωτότυπο και να ενώσετε τα τακάκια χρησιμοποιώντας κολλητήρι. Θα πρέπει τώρα να έχετε κάτι τέτοιο:
Συγχαρητήρια! Ο πίνακας LED είναι πλήρης. Ελέγξτε προσεκτικά τη συγκόλλησή σας σε αυτό το στάδιο για να βεβαιωθείτε ότι δεν υπάρχουν διαλείμματα και ότι καμία από τις στήλες δεν αγγίζει τις σειρές. Μην ανησυχείτε αν δεν φαίνεται όμορφο, το χρειαζόμαστε μόνο για να δουλέψουμε! Μπορείτε να ελέγξετε κάθε LED ξεχωριστά τώρα συνδέοντας 5v σε οποιοδήποτε από τα άκρα της στήλης και γείωση σε οποιοδήποτε από τα άκρα της σειράς.
Εφόσον όλα είναι καλά, συνδέστε τα καλώδια σύνδεσης σε κάθε στήλη και σε κάθε σειρά και συνδέστε τα στο Arduino σας όπως φαίνεται στο παραπάνω διάγραμμα.
Ας πάρουμε την κωδικοποίηση
Ανοίξτε το Arduino IDE και επιλέξτε την πλακέτα και τη θύρα σας. Εάν είστε νέοι στο Arduino, δείτε αυτό ξεκινώντας οδηγός. Ξεκινώντας με το Arduino: Ένας οδηγός για αρχάριουςΤο Arduino είναι μια πλατφόρμα πρωτοτύπων ηλεκτρονικής ανοικτής πηγής που βασίζεται σε ευέλικτο, εύχρηστο υλικό και λογισμικό. Προορίζεται για καλλιτέχνες, σχεδιαστές, χομπίστες και όσους ενδιαφέρονται να δημιουργήσουν διαδραστικά αντικείμενα ή περιβάλλοντα. Διαβάστε περισσότερα
Εισαγάγετε αυτόν τον κωδικό στον επεξεργαστή. Είναι αρκετά πυκνός κώδικας εάν δεν είστε εξοικειωμένοι με αυτόν, αλλά είναι διαθέσιμος εδώ πλήρως σχολιασμένο για να κατανοήσουμε πώς λειτουργεί.
const int σειρά [8] = {2,3,4,5,6,7,8,9}; const int col [8] = {10,11,12,14,15,16,17,18}; int pirPin = 19; int pirState = ΧΑΜΗΛΟ; int val = 0; bool pirTrigger = false; const int pirLockTime = 12000; int pirCountdown = pirLockTime; int pixels [8] [8]; const int refreshSpeed = 500; int countDown = refreshSpeed; int currentCharIndex = 0; typedef bool CHAR_MAP_NAME [8] [8]; const CHAR_MAP_NAME blank = {{0, 0, 0, 0, 0, 0, 0, 0}, {0, 0, 0, 0, 0, 0, 0, 0}, {0, 0, 0, 0, 0, 0, 0, 0}, {0, 0, 0, 0, 0, 0, 0, 0}, {0, 0, 0, 0, 0, 0, 0, 0}, {0, 0, 0, 0, 0, 0, 0, 0}, {0, 0, 0, 0, 0, 0, 0, 0}, {0, 0, 0, 0, 0, 0, 0, 0}, }; const CHAR_MAP_NAME threedownthreein = {{0, 0, 0, 0, 0, 0, 0, 0}, {0, 0, 0, 0, 0, 0, 0, 0}, {0, 0, 1, 0, 0, 0, 0, 0}, {0, 0, 0, 0, 0, 0, 0, 0}, {0, 0, 0, 0, 0, 0, 0, 0}, {0, 0, 0, 0, 0, 0, 0, 0}, {0, 0, 0, 0, 0, 0, 0, 0}, {0, 0, 0, 0, 0, 0, 0, 0}, }; const int noOfFrames = 5; const CHAR_MAP_NAME * charMap [noOfFrames] = { & blank, & threedownthreein, & blank, & blank, & threedownthreein. }; άκυρη ρύθμιση () {για (int i = 0; i <8; i ++) {pinMode (σειρά [i], OUTPUT); pinMode (col [i], OUTPUT); // αισθητήρας κίνησης pinMode (pirPin, INPUT); digitalWrite (col [i], LOW); } } void screenSetup () {const CHAR_MAP_NAME * thisMap = charMap [currentCharIndex]; για (int x = 0; x <8; x ++) {για (int y = 0; ε <8; y ++) {bool on = (* thisMap) [x] [y]; if (on) {pixels [x] [y] = ΥΨΗΛΟ; } αλλιώς {pixels [x] [y] = LOW; }}} currentCharIndex ++; εάν (currentCharIndex> = noOfFrames) {currentCharIndex = 0; }} void refreshScreen () {για (int currentRow = 0; currentRow <8; currentRow ++) {digitalWrite (σειρά [currentRow], LOW); για (int currentCol = 0; currentCol <8; currentCol ++) {int thisPixel = pixels [currentRow] [currentCol]; digitalWrite (col [currentCol], thisPixel); if (thisPixel == HIGH) {digitalWrite (col [currentCol], LOW); }} digitalWrite (σειρά [currentRow], HIGH); }} κενός βρόχος () {val = digitalRead (pirPin); αν (val == ΥΨΗΛΟΣ) {pirTrigger = true; } αλλιώς εάν (val == LOW && pirCountdown <= 0) {pirTrigger = false; pirCountdown = pirLockTime; } if (pirTrigger == true && pirCountdown> 0) {refreshScreen (); countDown--; pirCountdown--; εάν (countDown <= 0) {countDown = refreshSpeed; screenSetup (); } } }
Τα σημαντικά μέρη που πρέπει να κατανοήσετε είναι:
ο refreshSpeed μεταβλητός. Αυτή η μεταβλητή καθορίζει τον τρόπο ανανέωσης του χρόνου μεταξύ κάθε οθόνης. Ένας μεγαλύτερος αριθμός σημαίνει μεγαλύτερη αναμονή.
Οι υπάλληλοι CHAR_MAP_NAMEμικρό. Αυτό είναι όπου τοποθετείτε κάθε χάρτη χαρακτήρων (ή καρέ εάν είναι πιο εύκολο να το σκεφτείτε με αυτόν τον τρόπο) που θέλετε να εμφανίσετε.
ο noOfFrames μεταβλητός. Αυτό καθορίζει πόσα καρέ θα εμφανίζονται σε ένα πλήρες παιχνίδι. Σημειώστε ότι μπορεί να διαφέρει από τον αριθμό των χαρτών χαρακτήρων. Για παράδειγμα, εάν θέλετε να εμφανίσετε το "A CAT", θα πρέπει να ορίσετε μόνο τέσσερα διαφορετικά καρέ: κενό, ένα ΕΝΑ, ένα ντο και ένα Τ.
Τώρα, όταν ο αισθητήρας κίνησης ανιχνεύει κίνηση, η οθόνη LED πρέπει να αναβοσβήνει το LED τρία προς τα κάτω και τρία μέσα από πάνω αριστερά. Εάν δεν εμφανίζεται σωστά, ελέγξτε ξανά την καλωδίωση για να βεβαιωθείτε ότι όλα είναι στη σωστή θέση! Όταν προσθέτετε τη δική σας εικόνα ή μήνυμα, μπορεί να διακοπεί νωρίς ή να παίξει για πολύ καιρό. Δοκιμάστε να αλλάξετε το pirLockTime μεταβλητή έως ότου παίζει για το χρονικό διάστημα που θέλετε.
Η διαδικασία προσθήκης κάθε καρέ στην οθόνη LED μπορεί να είναι λίγο κουραστική, επομένως έχουμε δημιουργήσει αυτό το υπολογιστικό φύλλο για να είναι λίγο πιο εύκολο να δημιουργήσετε κείμενο και εικόνες για τον πίνακα LED σας (δημιουργήστε ένα αντίγραφο του Φύλλου Google ώστε να μπορείτε να το επεξεργαστείτε).
Χρησιμοποιώντας το υπολογιστικό φύλλο, μπορείτε να αντιγράψετε τις δημιουργίες σας απευθείας στον κώδικα.
Κάντε το γενναίο τα στοιχεία
Τώρα που έχουμε μια μήτρα LED που λειτουργεί, χρειαζόμαστε έναν τρόπο για να επιβιώσει το χειμώνα. Αν και αυτή η μέθοδος μπορεί να μην αντέχει σε μια τροπική καταιγίδα ή να βυθιστεί στην πισίνα, θα πρέπει να είναι αρκετή για να κρατήσει όλα τα ηλεκτρονικά ασφαλή από τα στοιχεία.
Χρησιμοποίησα ένα στρογγυλό κουτί Tupperware που έχει διάμετρο 15 cm και βάθος 6 cm καθώς ταιριάζει τέλεια στα εξαρτήματά μου. Κόψτε ένα παράθυρο στο καπάκι ελαφρώς μεγαλύτερο από τη μήτρα LED και συνδέστε ένα διαφανές πλαστικό φιλμ σε αυτό, φροντίζοντας να μην αφήσετε χώρους για να εισέλθει υγρό. Το ανθεκτικό πλαστικό από μερικές συσκευασίες θα λειτουργούσε καλύτερα, αλλά αυτό ήταν μόνο που είχα. Θα μπορούσατε επίσης να συνδέσετε μερικές βάσεις για το πρωτότυπο, αν και οι δύο εργασίες θα μπορούσαν εύκολα να γίνουν με ισχυρή αδιάβροχη ταινία.
Στη συνέχεια, κάντε μια μικρή τρύπα κάτω από το παράθυρο, στη συνέχεια, διευρύνετε προσεκτικά και αργά έως ότου ο αισθητήρας PIR σας μπορεί να χωρέσει μόνο. Θέλετε να ταιριάζει όσο το δυνατόν πιο άνετα.
Συνδέστε τον αισθητήρα PIR και συμπληρώστε τυχόν κενά που μπορείτε να δείτε με ταινία ή καυτή κόλλα.
Καθαρίστε οποιαδήποτε ταινία ή κόλλα που μπορεί να εμποδίσει το σωστό κλείσιμο του κουτιού και προσθέστε όλα τα εξαρτήματά σας στο κουτί μαζί με την μπαταρία σας. Εδώ, χρησιμοποιήθηκε μια απλή μπαταρία AA, συνδεδεμένη απευθείας στον πείρο VCC του Nano. Μερικά μικρά κομμάτια φελλού προστέθηκαν στο εξωτερικό του περιβλήματος για να βοηθήσουν στην ανάρτηση του κτιρίου στο κέντρο του στεφανιού.
Και τελειώσαμε
Μόλις το κουτί σφραγιστεί, κρεμάστε το με το χριστουγεννιάτικο στεφάνι σας και περιμένετε τις αντιδράσεις των επισκεπτών σας στο προσωπικό σας καλωσόρισμα υψηλής τεχνολογίας υπο $ 20! Θα μπορούσατε ακόμη και να προχωρήσετε ένα βήμα παραπέρα και να δημιουργήσετε υπέροχα Διακοσμήσεις DIY Τρισδιάστατες εκτυπώσεις Χριστουγέννων για τέλειες διακοπές GeekyΓιατί να μην εξοικονομήσετε χρήματα αυτά τα Χριστούγεννα και να εκτυπώσετε τρισδιάστατα κάποια εορταστικά στολίδια για το σπίτι σας; Διαβάστε περισσότερα και αλλού γύρω από το σπίτι!
Σε αυτό το έργο έχουμε δημιουργήσει ένα αυτόνομο σύστημα LED μήτρας από το μηδέν, το οποίο ενεργοποιείται με κίνηση και μπορεί να επιβιώσει να είναι έξω από όλα εκτός από τις πιο δύσκολες καιρικές συνθήκες. Αυτή η κατασκευή θα είναι χρήσιμη πολύ μετά τη λήξη της περιόδου των διακοπών σε άλλα έργα και η ίδια τεχνική θα μπορούσε να χρησιμοποιηθεί για τη δημιουργία φθηνών αδιάβροχων περιβλημάτων και για άλλα έργα.
Έχετε δημιουργήσει κάτι για να δώσετε στα Χριστούγεννα σας μια συστροφή DIY; Σχεδιάζετε φετινά χριστουγεννιάτικα δώρα με θέμα DIY; Ενημερώστε μας στα σχόλια παρακάτω!
Ο Ian Buckley είναι ανεξάρτητος δημοσιογράφος, μουσικός, ερμηνευτής και παραγωγός βίντεο που ζει στο Βερολίνο της Γερμανίας. Όταν δεν γράφει ή στη σκηνή, παίζει με ηλεκτρονικά είδη DIY ή κώδικα με την ελπίδα να γίνει τρελός επιστήμονας.