Διαφήμιση
Λίγους μήνες πίσω, ένα $3000 βροντές και κεραυνούς η λάμπα διάθεσης έγινε viral στην κοινότητα των κατασκευαστών. Ήταν ένα εκπληκτικά όμορφο φως, αλλά η τιμή το άφησε μακριά από οποιονδήποτε με τη λογική του ανέπαφη. Αυτό που θα φτιάξουμε σήμερα δεν είναι ακριβώς το ίδιο - κάνουμε κάτι πιο πρακτικό, αντί για ένα έργο τέχνης, αλλά θα είναι πολύ πιο δροσερό και πιο προσαρμόσιμο.
Επέλεξα να παραλείψω τα ηχεία με την υπόθεση ότι πιθανώς έχετε ήδη ένα καλό ζευγάρι ηχείων στο δωμάτιό σας που προτιμάτε να χρησιμοποιήσετε και ειλικρινά η τοποθέτηση ενός ηχείου σε μια λάμπα είναι κάπως περίεργη. Αντ 'αυτού, θα προσθέσω ένα μικρόφωνο που θα επιτρέψει στον κεραυνό να αντιδρά αυτόματα σε δυνατούς θορύβους - είτε από μια πραγματική καταιγίδα είτε από ένα soundtrack που παίζεται από τον υπολογιστή ή το στερεοφωνικό σας.
Θα χρησιμοποιήσουμε επίσης ένα σκέλος πλήρους LED RGB Neopixel (WS2812B), ώστε να μπορούμε να αναπαράγουμε άλλα χρώματα εκτός από το λευκό και να έχουμε έλεγχο σε κάθε pixel.
Προειδοποίηση
: το τροφοδοτικό που έχω χρησιμοποιήσει σε αυτό το έργο έχει βιδωτούς ακροδέκτες που συνδέονται με ένα καλώδιο AC. Εάν δεν αισθάνεστε σίγουροι ότι συνδέετε ένα βύσμα, βεβαιωθείτε ότι αγοράζετε ένα πλήρως κλειστό τροφοδοτικό. Τουλάχιστον, θα πρέπει να περικλείσετε το PSU σε ένα ασφαλές πλαίσιο έργου.Βήμα 0: Εισαγωγή
Ακολουθεί ένα δοκιμαστικό βίντεο του ολοκληρωμένου έργου. Έχω εφαρμόσει μερικές διαφορετικές λειτουργίες μέχρι στιγμής, από τον τυπικό κεραυνό έως το σύννεφο τριπλού οξέος και μια έγχρωμη λάμπα διάθεσης που μπορεί να επιλεγεί από το τηλεχειριστήριο.
Ο πλήρης κωδικός και οι βιβλιοθήκες που χρειάζεστε είναι διαθέσιμες για λήψη από αυτό το αποθετήριο Github.
Βήμα 1: Θα χρειαστείτε

- Κλώνος WS2812B, συνήθως κοστίζουν περίπου 50 $ για 5 μέτρα. Μην ανησυχείτε εάν έχετε έναν άλλο τύπο κλώνου Neopixel, υποστηρίζεται σχεδόν σίγουρα από το FastLED διασύνδεση, αλλά η καλωδίωσή σας μπορεί να είναι διαφορετική (ίσως χρειαστείτε μια γραμμή συγχρονισμού εκτός από το σήμα, για παράδειγμα).
- Τροφοδοσία 5V, 10A + - Αγόρασα περίπου 15Α μονάδες για 11 $ το καθένα. Παίρνουν είσοδο εναλλασσόμενου ρεύματος 120-240V και παράγουν μια μεγάλη έξοδο 5V που θα είναι αρκετή για να τροφοδοτήσει όλα τα εικονοστοιχεία μας σε πλήρη φωτεινότητα και το Arduino.
- Ηλεκτρική καλωδίωση, διακόπτης βύσματος και inline
- Περίβλημα έργου
- Δύο Arduinos. Οι κλώνοι Funduino $ 10 είναι εντάξει. Το δεύτερο είναι απαραίτητο για τηλεχειριστήριο, ενώ το πρώτο ελέγχει την κύρια λογική και τα LED.
- Δύο αντίσταση 2.2k (ή περίπου) Ohms - η ακριβής τιμή δεν έχει σημασία, περίπου 1,5k έως 47k πρέπει να λειτουργήσει.
- Ψωμί
- Δέκτης TSOP4838 IR
- Τηλεχειριστήριο IR - αγόρασα χύμα για περίπου $ 2 το καθένα, αλλά οποιοδήποτε τηλεχειριστήριο πρέπει να λειτουργεί με τροποποιήσεις κώδικα.
- Μεγάλη μονάδα μικροφώνου
- Απορρίψτε ξύλο MDF για να κόψετε τη βάση σας και ένα παζλ.
- Υλικά συσκευασίας από πολυστυρένιο / ένθετα κουτιού.
- Συμπλήρωση μαξιλαριού από βαμβάκι από πολυπροπυλένιο. Τράβηξα περισσότερο από αρκετά από μερικά φρικτά παλιά μαξιλάρια. Εάν αυτό δεν είναι επιλογή, θα πρέπει να μπορείτε να αγοράσετε καινούργια για περίπου $ 10 ή να χρησιμοποιήσετε ακόμη φθηνότερο βαμβάκι. Προσπάθησα και με τα δύο - το βαμβάκι χρειάστηκε περισσότερη δουλειά για να το πειράξω και δεν ήταν τόσο χνουδωτό, αλλά σε μια πρέζα, θα λειτουργήσει.
- Αλυσίδα και άγκιστρα για να κρεμάσετε το σύννεφο - θα πρέπει να έχει πάνω από 5 κιλά.
- Πυροβόλο όπλο με ρύθμιση χαμηλής θερμοκρασίας
- Κόλλα ψεκασμού - ευκολότερο να κολλήσετε το γέμισμα στο σύννεφο σας με αυτό, αλλά ένα πιστόλι κόλλας θα μπορούσε επίσης να λειτουργήσει.
Το συνολικό κόστος είναι περίπου 100 $, χωρίς να περιλαμβάνονται εργαλεία, αλλά τα περισσότερα από αυτά έβγαλα από το σπίτι. Όλα τα ηλεκτρονικά εξαρτήματα είναι συνήθως διαθέσιμα. το μικρόφωνο μπορεί να βρεθεί σε κιτ αισθητήρα ή να αγοραστεί ξεχωριστά.
Βήμα 2: Κόψτε τη βάση

Κόψτε μια τραχιά βάση από ένα κομμάτι MDF με παζλ - το ακριβές σχήμα είναι προφανώς στο χέρι σας, αλλά για κάποιο λόγο ένα σύννεφο έχει σχήμα νεφρού στο μυαλό μου. Θα τοποθετήσουμε κάποια άγκιστρα σε αυτό για να κρεμάσουμε, αλλά διαφορετικά παρέχει απλώς μια σταθερή βάση για να χτίσουμε. Η κεντρική περιοχή θα προορίζεται για τα ηλεκτρονικά, PSU και για να παραδίδει την αλυσίδα από, οπότε βεβαιωθείτε ότι έχετε αρκετό χώρο για να τοποθετήσετε τουλάχιστον το περίβλημα του έργου σας με μερικά άγκιστρα γύρω από αυτό.
Βήμα 3: Στρώμα σε πολυστυρένιο

Αυτό είναι το πιο δύσκολο και δημιουργικό βήμα, αλλά πραγματικά δημιουργούμε κάτι σταθερό και κάπως-κάπως σε σχήμα νέφους για να κολλήσετε την ταινία LED. Κολλήστε μεγάλα κομμάτια από πολυστυρένιο στη βάση (και κάτω από αυτό), χρησιμοποιώντας μια ρύθμιση χαμηλής θερμότητας στο πιστόλι κόλλας σας. Εάν δεν έχετε χαμηλή ρύθμιση, απενεργοποιήστε το πιστόλι θερμότητας και αφήστε το να κρυώσει λίγο πριν επιχειρήσετε να κολλήσετε. Εάν η θερμοκρασία είναι πολύ υψηλή, απλά θα λιώσετε μέσα από το υλικό συσκευασίας.
Βεβαιωθείτε ότι κάθε κομμάτι είναι στερεό πριν κολλήσετε το επόμενο και είναι καλύτερο να κολλήσετε περισσότερο από ό, τι δεν είναι αρκετό.
Και πάλι, θυμηθείτε να αφήσετε μια αρκετά μεγάλη κοιλότητα μέσα στο σύννεφο για να χωρέσει τα ηλεκτρονικά, την αλυσίδα και τα άγκιστρα.
Βήμα 4: Χαράξτε ένα 3D Cloud Shape

Χρησιμοποιήστε ένα ξυλογλυπτικό μαχαίρι για να καθαρίσετε το νέφος σας στρογγυλοποιώντας τις γωνίες και κόβοντας το περιττό υλικό, έως ότου επιτύχετε ένα τραχύ σχήμα νέφους 3D. Δεν έχει σημασία πόσο σκληρό είναι αυτό, αφού θα καλύψουμε τα πάντα στη γέμιση αργότερα - μπορείτε εύκολα να κρύψετε λάθη.
Βήμα 5: Επιδιόρθωση γάντζων, τακτοποίηση

Τέλος, στερεώστε τρία ή τέσσερα άγκιστρα στη βάση MDF, από μέσα σε κάθε γωνία της κοιλότητας του νέφους. Θα χρειαστεί να τρυπήσετε μια μικρή πιλοτική τρύπα, καθώς το MDF είναι δύσκολο να βιδωθεί κατευθείαν.
Έδωσα επίσης σε όλα μια απλή στρώση λευκής βαφής για να διασφαλίσω μια ομοιόμορφη βάση χρώματος, αλλά δεν είμαι σίγουρος ότι ήταν πραγματικά απαραίτητο.
Βήμα 6: Κόλλα LED Strips

Πριν ξεκινήσετε να εφαρμόζετε κόλλα στις λυχνίες LED, ξεκινήστε από μια νέα λωρίδα ή μετρήστε πόσες λυχνίες LED έχετε συνολικά - θα πρέπει να υπολογίσετε πόσα έχετε χρησιμοποιήσει αργότερα στο βήμα προγραμματισμού. Κόψτε μια μικρή τρύπα στο πλάι του σύννεφου σας και σπρώξτε τα καλώδια που αποτελούν την αρχή της λωρίδας LED σας στην κοιλότητα του σύννεφου. Να είστε πολύ προσεκτικοί ότι ξεκινάτε από το σωστό άκρο - οι λωρίδες LED είναι ευαίσθητες στην κατεύθυνση, οπότε βεβαιωθείτε ότι τα βέλη σήματος δείχνουν μακριά από την κοιλότητα.
Δουλεύοντας αργά, κολλήστε τα εικονοστοιχεία LED στη βάση πολυστυρολίου σε κυκλικό σχέδιο, πριν τραβήξετε τη λωρίδα προς τα κάτω στη βάση για να καλύψετε την κάτω πλευρά. Και πάλι - δεν χρειάζεται να είστε τέλειοι εδώ, γιατί μόλις τα έχουμε διαχυθεί και τα πνίξουμε με γέμιση, όλα φαίνονται μάλλον εντυπωσιακά.
Χρησιμοποίησα συνολικά 85 LED, ή λίγο πάνω από 2,5 μέτρα, έχοντας περικυκλώσει το κύριο σώμα δύο φορές και χρησιμοποίησα μία μόνο σειρά LED στο κάτω μέρος.
Βήμα 7: Διάγραμμα καλωδίωσης

Η καλωδίωση είναι περίπλοκη, αλλά χωρίζεται εύκολα σε τμήματα.
Αρχικά, συνδέστε και ασφαλίστε το τροφοδοτικό, κατά προτίμηση σε ξεχωριστή θήκη έργου. Δεν πρόκειται να σας διαλέξω για την ασφάλεια των καλωδίων AC, επομένως θα υποθέσω ότι μπορείτε να χειριστείτε αυτό το μέρος και έχετε μια γραμμή 5V και GND από αυτό.
ΣΠΟΥΔΑΙΟΣ: κατά τον προγραμματισμό και τη δοκιμή του Arduino, το 5V από το τροφοδοτικό σας θα πρέπει να παραμείνει απομονωμένο από το Arduino's (το Ωστόσο, τα GND είναι όλα συνδεδεμένα) - θα πρέπει να τροφοδοτεί μόνο τη λωρίδα LED, ενώ το Arduino χρησιμοποιεί το παρεχόμενο 5V USB. Όταν τελειώσετε τον προγραμματισμό, το USB θα πρέπει να αποσυνδεθεί και δεν θα παρέχει πλέον 5V στο Arduino - σε αυτό το σημείο, θα πρέπει να συνδέσετε το 5V από την τροφοδοσία σας στη ράγα 5V στην αριστερή πλευρά του ψωμί.
Ξεκινήστε συνδέοντας τη γείωση και τους ακροδέκτες 5V από κάθε Arduino στις ράγες της αριστερής πλευράς του breadboard. Θα μοιράζονται την ίδια πηγή τροφοδοσίας, είτε πρόκειται για το εξωτερικό PSU που διαθέτουμε είτε για USB σε ένα από αυτά.
Στη συνέχεια, ολοκληρώστε την ενότητα καλωδίωσης I2C - αυτό επιτρέπει στα δύο Arduinos μας να επικοινωνούν. Πάρτε τους ακροδέκτες A4 και από τα δύο Arduinos σε μία μόνο γραμμή στην πλακέτα ψωμιού και, στη συνέχεια, συνδέστε μια αντίσταση 2.2k από αυτήν τη σειρά σε ράγα 5V. Επαναλάβετε για το A5, συνδέοντάς τα σε ξεχωριστή σειρά, με άλλη αντίσταση 2,2k ξανά στα 5V.
Συνδέστε τον δέκτη IR στη συνέχεια - ελέγξτε τη διαμόρφωση των ακίδων εάν έχετε άλλο μοντέλο, αλλά βασικά ο πείρος σήματος πρέπει να μεταβεί στο D11 σε ένα Arduino. Ανεβάστε το thundercloud_ir_receiver.ino σκίτσο σε αυτό το Arduino (όλος ο κωδικός εδώκαι, στη συνέχεια, αποσυνδέστε το USB αφού δεν το χρειαζόμαστε πλέον.
Στο άλλο Arduino, συνδέστε το Στοιχεία ακροδέκτης σήματος από την αρχή της λωρίδας LED στο D6. Το GND από τα LED σας θα πρέπει να είναι κοινό με όλα τα Arduinos, αλλά σε αυτό το σημείο το 5V θα έρθει απευθείας από το PSU.
Επίσης σε αυτό το Arduino, συνδέστε τη μονάδα μικροφώνου στο A0. Ανεβάστε το άλλο thundercloud.ino σχεδιάστε και διατηρήστε το USB συνδεδεμένο προς το παρόν ενώ κάνετε εντοπισμό σφαλμάτων. Ξεκινήστε αλλάζοντας το NUM_LEDS μεταβλητή κατάλληλα.
Βήμα 8: Κολλήστε το γέμισμα

Ως τελικό βήμα, κολλήστε το γέμισμά σας. Δεν υπάρχει συγκεκριμένη τεχνική εδώ - απλώς ψεκάστε το σύννεφο με ένα στρώμα κόλλας και πιάστε μια χούφτα γέμισμα. Ωστόσο, είναι πιο εύκολο να δουλέψετε με γέμιση εάν το έχετε ήδη πειράξει για να αυξήσετε την επιφάνεια.
Εάν έχετε χρησιμοποιήσει το ίδιο τηλεχειριστήριο όπως και εγώ, το κουμπί STROBE το θέτει σε λειτουργία αντιδραστικής νέφους ήχου. Το FLASH είναι η λειτουργία trippy color και το FADE είναι η λυχνία διάθεσης αργής εξασθένισης χρώματος.
Βήμα 9: Επεξήγηση κώδικα

Γιατί δύο Arduinos; Τόσο ο προγραμματισμός δέκτη υπερύθρων όσο και η βιβλιοθήκη οδηγού pixel WS2818B είναι πολύ ευαίσθητα στο χρονοδιάγραμμα - εάν ο χρονισμός καθυστερήσει, το σήμα υπερύθρων είναι κατεστραμμένο. Δίνοντας σε κάθε κύκλωμα το δικό του μικροελεγκτή και αφήνοντάς τους να μιλήσουν για το πρωτόκολλο I2C, μπορούμε να διασφαλίσουμε ότι ο συγχρονισμός είναι τέλειος σε καθένα. Μπορεί επίσης να βρείτε ξεχωριστές μονάδες IR με το δικό τους ενσωματωμένο μικροελεγκτή, αλλά η έρευνά μου διαπίστωσε ότι αυτές στην πραγματικότητα κοστίζουν περισσότερο από έναν απλό κλώνο Arduino και IR LED. Το thundercloud_ir_receiever δεν πρέπει να χρειάζεται εξήγηση, αν και ίσως θελήσετε να διαβάσετε πρώτα τα βασικά στοιχεία του I2C.
Στον κύριο ελεγκτή thundercloud, ορίζουμε διαφορετικούς τρόπους λειτουργίας, όπως ON (τα εφέ αστραπής δεν είναι υγιή ενεργοποιημένο), CLOUD (ο κεραυνός ενεργοποιείται μόνο με ήχο), ACID (το σύννεφο δείχνει τριπλά χρώματα) ή απλό μονό χρώμα τρόποι. Για να ορίσετε μια νέα λειτουργία, προσθέστε στο απαρίθμηση πρώτα, στη συνέχεια ανοίξτε την κονσόλα και βρείτε ένα κουμπί τηλεχειριστηρίου για να το αντιστοιχίσετε - κάθε απομακρυσμένο πάτημα πρέπει να εκτυπώσει μια γραμμή εντοπισμού σφαλμάτων. Στο λήψηΕκδήλωση () μέθοδος, χαρτογραφούμε αυτά τα πλήκτρα σε μια λειτουργία, οπότε προσθέστε μια επιπλέον δήλωση διακόπτη εκεί. Τέλος, στο κυρίως βρόχος() μέθοδος δρομολογούμε αυτές τις επιλογές λειτουργίας σε διαφορετικές λειτουργίες οθόνης.
Ο κωδικός εξομάλυνσης μικροφώνου είναι αρχικά από το Adafruit - Το απλοποίησα για τις ανάγκες μας και πρόσθεσα μια σκανδάλη όταν ακούγεται πιο δυνατός από τον μέσο θόρυβο.
Βήμα 10: Λειτουργίες αστραπής

Οι κεραυνές συνδυάζουν τρεις διαφορετικούς «τύπους» αστραπής για να επιτύχουν κάτι αρκετά ρεαλιστικό ή τουλάχιστον ευχάριστο στο μάτι. Ο πρώτος τύπος είναι ρωγμή(), όπου κάθε LED ανάβει για λίγο μεταξύ 10-100ms. Ο δεύτερος τύπος είναι κυλιομένος() - όπου κάθε LED έχει πιθανότητα ενεργοποίησης 10% και ολόκληρος ο βρόχος επαναλαμβάνεται 2-10 φορές, με καθυστέρηση 5-100ms μεταξύ κάθε κύκλου. Ο τρίτος τύπος είναι βροντή (), το οποίο επιλέγει δύο διαφορετικά τμήματα της ταινίας, το καθένα μεταξύ 10-20 LED, αναβοσβήνει για λίγο αυτές τις ενότητες από 3-6 φορές. Εξετάστε αυτές τις μεθόδους λεπτομερώς για να δείτε πώς ενεργοποιούνται τα μεμονωμένα LED - ο χρωματικός τροχός HSV χρησιμοποιείται παντού (έτσι το λευκό είναι H = 0, S = 0, V = 255). Σας ενθαρρύνω να τροποποιήσετε ή να γράψετε νέες αστραπές οθόνες και, στη συνέχεια, να τις μοιραστείτε στα σχόλια αν κάνετε αυτό που σας αρέσει.
Κάθε φορά που ενεργοποιείται αστραπή ή εκτελείται ο βρόχος, το σύννεφο επιλέγει τυχαία μεταξύ των τριών τύπων αστραπής. Τέλος, α επαναφορά() Η μέθοδος σβήνει όλα τα φώτα, διαφορετικά θα «θυμούνται» την προηγούμενη κατάστασή τους.
Ερωτήσεις ή προβλήματα - επικοινωνήστε με τα σχόλια και θα κάνω ό, τι μπορώ για να σας βοηθήσω. Εάν έχετε λογαριασμό Github, μη διστάσετε να δημοσιεύσετε σφάλματα ή προβλήματα στο παρακολούθηση προβλημάτων αντι αυτου. Εάν έχετε πραγματοποιήσει τροποποιήσεις ή έχετε γράψει κάποιες νέες λειτουργίες φωτισμού, μοιραστείτε έναν σύνδεσμο με τον κωδικό σας Ουσία ή Παστέμπιν.
Ο James έχει πτυχίο Τεχνητής Νοημοσύνης και είναι πιστοποιημένο με CompTIA A + και Network +. Είναι ο κύριος προγραμματιστής του MakeUseOf και περνά τον ελεύθερο χρόνο του παίζοντας VR paintball και boardgames. Δημιουργεί υπολογιστές από τότε που ήταν παιδί.