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

Δυναμικός ελεγκτής φωτισμού LED για τέχνη: 16 βήματα (με εικόνες)
Δυναμικός ελεγκτής φωτισμού LED για τέχνη: 16 βήματα (με εικόνες)

Βίντεο: Δυναμικός ελεγκτής φωτισμού LED για τέχνη: 16 βήματα (με εικόνες)

Βίντεο: Δυναμικός ελεγκτής φωτισμού LED για τέχνη: 16 βήματα (με εικόνες)
Βίντεο: Ηλεκτρονική κατασκευή #6: Κατασκευή αυτοσχέδιου buzzer 2024, Ιούλιος
Anonim
Image
Image

Εισαγωγή:

Ο φωτισμός είναι μια σημαντική πτυχή της εικαστικής τέχνης. Και αν ο φωτισμός μπορεί να αλλάξει με την πάροδο του χρόνου μπορεί να γίνει μια σημαντική διάσταση της τέχνης. Αυτό το έργο ξεκίνησε με την παρακολούθηση μιας φωτεινής παράστασης και την εμπειρία του πώς ο φωτισμός θα μπορούσε να αλλάξει εντελώς το χρώμα ενός αντικειμένου. Αρχίσαμε να το εξερευνούμε στην τέχνη του υφάσματος φωτισμού. Μέχρι τώρα έχουμε δημιουργήσει δυναμικό φωτισμό για 8 κομμάτια, συμπεριλαμβανομένου ενός πίνακα και μιας φωτογραφίας. Τα εφέ φωτισμού περιλαμβάνουν: προσομοίωση της αυγής και του ηλιοβασιλέματος, υποβρύχιο φως μέσω μιας κυματιστής επιφάνειας, αστραπή στα σύννεφα και αλλαγή δραματικά στα χρώματα και τη διάθεση του έργου τέχνης. Τα βίντεο αυτών των εφέ περιλαμβάνονται στα παρακάτω βήματα προγραμματισμού.

Αυτό το εκπαιδευτικό χτίζει έναν ελεγκτή που ρυθμίζει τη φωτεινότητα και το χρώμα μιας σειράς μεμονωμένα LED που διευθύνονται με την πάροδο του χρόνου. Περιλαμβάνει επίσης ένα προαιρετικό κύκλωμα εισόδου για χειροκίνητο συντονισμό (ρύθμιση φωτεινότητας και χρώματος) ενός τμήματος του φωτισμού. Θα μάθετε επίσης για πολλά προβλήματα και βελτιώσεις που ανακαλύψαμε στην πορεία.

Γράψαμε επίσης ένα σχετικό οδηγό για την κατασκευή του κουτιού και του πλαισίου σκιάς. Δείτε το στη διεύθυνση:

Προς το παρόν θα επικεντρωθούμε στα ηλεκτρονικά και τον προγραμματισμό.

Βήμα 1: Υλικά:

  • Σειρά LEDs WS2812
  • Arduino Pro Mini 328 - 5V/16 MHz
  • Διεπαφή USB FTDI Friend
  • Καλώδιο USB A σε MiniB για FTDI
  • 4700 μf Πυκνωτής
  • Τροφοδοτικό 5v με υποδοχή 5,5 x 2,1
  • Υποδοχή ρεύματος 5,5 x 2,1
  • Τερματικό μπλοκ
  • Πρωτότυπη πλακέτα κυκλώματος
  • Κουμπί
  • Ποτενσιόμετρο
  • Ένδειξη LED
  • Αντιστάσεις
  • Καλώδιο κορδέλας
  • Αρσενική κεφαλίδα
  • Κεφαλίδα θηλυκό

Βήμα 2: Πόροι:

  • Arduino; Διαδραστικό περιβάλλον ανάπτυξης (IDE)
  • Βιβλιοθήκη Adafruit NeoPixel
  • NeoPixel Tutorial
  • Παράδειγμα προγράμματος Strandtest
  • Βιβλιοθήκη FastLED
  • Σύνδεσμοι και έγγραφα FastLED
  • Φόρουμ FastLED
  • Τα σκίτσα φωτισμού μας

Βήμα 3: Επισκόπηση ελεγκτή:

Επισκόπηση ελεγκτή
Επισκόπηση ελεγκτή
Επισκόπηση ελεγκτή
Επισκόπηση ελεγκτή

Το σχηματικό φαίνεται αρκετά απλό και είναι. Κατασκευάσαμε τα χειριστήρια μας για να είναι ενσωματωμένα σε μια κορνίζα. Οι διαστάσεις του κυκλώματος που απεικονίζεται είναι 2,25”x 1,3” x 0,5”. Ο προαιρετικός δέκτης κατασκευάστηκε σε ξεχωριστή πλακέτα κυκλώματος με συνδετήρα καλωδίου κορδέλας. Αυτές οι εικόνες δείχνουν το ολοκληρωμένο έργο μας.

Θέλουμε να τοποθετήσουμε τον ελεγκτή μας στο πλαίσιο εικόνας, οπότε επιλέξαμε το Arduino pro mini 5v για το μικρό του μέγεθος, το κόστος και την έξοδο 5v. Το μέγεθος του τροφοδοτικού 5v που χρειάζεστε θα εξαρτηθεί από τον αριθμό των LED και τη μέγιστη φωτεινότητά τους στο έργο σας. Όλα τα έργα μας έτρεχαν λιγότερο από 3 αμπέρ και μερικά ήταν λιγότερο από 1 αμπέρ. Υπάρχουν διάφοροι τύποι διευθυνσιοδοτούμενων χρωμάτων LED. Ξεκινήσαμε με το WS2812 που πωλεί η Adafruit ως ένα από τα προϊόντα "NeoPixel". Αυτό λειτούργησε για εμάς και δεν έχουμε διερευνήσει άλλα LED. Τα περισσότερα από τα έργα μας χρησιμοποιούσαν τη λωρίδα 60 LED ανά μέτρο. Μέχρι στιγμής τα έργα μας έχουν κυμανθεί έως και 145 LED.

Προαιρετικός δέκτης:

Κατασκευάσαμε ένα μικρό κύκλωμα εισόδου "δέκτη", ώστε να μπορούμε να προσαρμόσουμε εύκολα τμήματα φωτισμού χωρίς να τροποποιήσουμε και να ανεβάσουμε το πρόγραμμα για κάθε προσαρμογή. Διαθέτει: LED εξόδου που αναβοσβήνει τη λειτουργία εισόδου. ένα κουμπί που αλλάζει τη λειτουργία εισόδου. και ένα κουμπί που μπορεί να ρυθμιστεί. Το Arduino μπορεί στη συνέχεια να εξάγει τις τιμές σε έναν συνδεδεμένο υπολογιστή.

Βήμα 4: Ελεγκτής κτιρίου:

Ελεγκτής κτιρίου
Ελεγκτής κτιρίου

Η λίστα υλικών δεν περιέχει το σύρμα, τη σωλήνωση θερμοσυρρίκνωσης και άλλες προμήθειες που μπορεί να χρειαστείτε. Για το κύκλωμα 5v και γείωσης στις λυχνίες LED προτείνω να χρησιμοποιήσετε σύρμα 26 gauge ή βαρύτερο. Χρησιμοποιήσαμε μετρητή 26. Επίσης η μόνωση σιλικόνης στο σύρμα είναι καλύτερη γιατί δεν λιώνει κοντά στο σημείο που κολλάτε και είναι πιο εύκαμπτη. Βρήκα ότι αφήνοντας λίγο περισσότερο χώρο μεταξύ των εξαρτημάτων έκανε την κατασκευή πολύ πιο εύκολη. Για παράδειγμα, ο ελεγκτής που απεικονίζεται στο βήμα #6 το διάστημα μεταξύ του περιβλήματος της πρίζας (μαύρο) και του μπλοκ ακροδεκτών (μπλε) είναι περίπου 1 ίντσα. Το κάλυμμα τοποθέτησής μας είναι δύο στρώσεις ξύλινου καπλαμά.

Η εικόνα σε αυτό το βήμα δείχνει την καλωδίωση μιας γυναικείας κεφαλίδας έξι επαφών για τον προαιρετικό δέκτη. Η αχρησιμοποίητη επαφή μεταξύ του κόκκινου και του πράσινου σύρματος συνδέεται με ένα κομμάτι οδοντογλυφίδας για να αποφευχθεί η αντίστροφη σύνδεση.

Βήμα 5:

Εικόνα
Εικόνα
Εικόνα
Εικόνα
Εικόνα
Εικόνα

Τώρα, ας το συνδυάσουμε έτσι ώστε να ταιριάζει στο πλαίσιο σκιών. Το πλαίσιο έχει πάχος 3/4 ", οπότε έχουμε όριο ύψους ελεγκτή 1/2". Φτιάξαμε πλάκες στερέωσης κολλώντας δύο κομμάτια σκληρυντικού καπλαμάς με τους κόκκους κάθετα μεταξύ τους για να περιορίσουμε τη στρέβλωση. Τα εξαρτήματα είναι διατεταγμένα έτσι ώστε το βύσμα τροφοδοσίας να βρίσκεται στο κέντρο του πλαισίου. Η τρύπα για το βύσμα τροφοδοσίας κόπηκε με πριόνι κοσμηματοπωλείου και τοποθετήθηκε για να χωρέσει. Στη συνέχεια, τα εξαρτήματα συνδέονται μεταξύ τους πριν από την τοποθέτηση. Η πρίζα είναι κολλημένη στη θέση της με εποξειδική. Μόνιμα τετράγωνα τοποθέτησης αφρού διπλής όψης χρησιμοποιούνται κάτω από τον ακροδέκτη βιδών και το arduino. Η κόλλα θερμής τήξης χρησιμοποιείται επίσης για να κρατήσει το arduino στη θέση του καθώς και τον πυκνωτή.

Βήμα 6: Δημιουργία προαιρετικού δέκτη:

Δημιουργία προαιρετικού δέκτη
Δημιουργία προαιρετικού δέκτη
Δημιουργία προαιρετικού δέκτη
Δημιουργία προαιρετικού δέκτη
Δημιουργία προαιρετικού δέκτη
Δημιουργία προαιρετικού δέκτη

Κατασκευάσαμε ένα μικρό κύκλωμα εισόδου "δέκτη", ώστε να μπορούμε να προσαρμόσουμε εύκολα τμήματα φωτισμού χωρίς να τροποποιήσουμε και να ανεβάσουμε το πρόγραμμα για κάθε προσαρμογή. Διαθέτει: LED εξόδου που αναβοσβήνει τη λειτουργία εισόδου. ένα κουμπί που αλλάζει τη λειτουργία εισόδου. και ένα κουμπί που μπορεί να ρυθμιστεί. Το Arduino μπορεί στη συνέχεια να εξάγει τις τιμές σε έναν συνδεδεμένο υπολογιστή.

Αυτές οι εικόνες δείχνουν την κατασκευή του δέκτη. Κάλυψα το πίσω μέρος με ταινία “Gorilla”. Που κρατά το καλώδιο κορδέλας σταθερό και έκανε επίσης μια ωραία λαβή.

Βήμα 7: Επισκόπηση ελεγκτή προγραμματισμού:

Αυτό είναι πραγματικά το δύσκολο μέρος του έργου. Ας ελπίσουμε ότι θα μπορείτε να χρησιμοποιήσετε μερικούς από τους κώδικες και τις μεθόδους μας για να ξεκινήσετε.

Η Adafruit και η FastLED έχουν δημοσιεύσει δύο υπέροχες βιβλιοθήκες για να επιτρέψουν στο Arduinos να ελέγχει πολλά είδη LED με δυνατότητα διεύθυνσης. Χρησιμοποιούμε και τις δύο αυτές βιβλιοθήκες σε διαφορετικά έργα. Σας προτείνουμε επίσης να διαβάσετε μέρος του υλικού πόρων σε αυτές τις βιβλιοθήκες και να εξερευνήσετε μερικά από τα παραδείγματα προγραμμάτων τους.

Το αποθετήριο Github των προγραμμάτων μας παρατίθεται στους παραπάνω "Πόρους". Σημειώστε ότι δεν είμαστε πολύ καλοί στον προγραμματισμό Arduino, οπότε υπάρχουν πολλά περιθώρια βελτίωσης. Μη διστάσετε να επισημάνετε θέματα και να συμβάλλετε σε βελτιώσεις.

Βήμα 8: Ελεγκτής προγραμματισμού Παράδειγμα κυματισμού:

Το "Ripple" της Jeanie Holt ήταν η πρώτη μας επιτυχία. Αυτό το κομμάτι είναι ένα ύφασμα τέχνης από ύφασμα σε σκελετό πλαίσιο. Ο φωτισμός είναι σταθερός σε χαμηλό επίπεδο μπλε από κάτω. Και από πάνω, έως και τρεις άξονες φωτεινότερου λευκού φωτός κινούνται δεξιά προς τα αριστερά σαν να διαθλώνται κινούμενοι κυματισμοί στην επιφάνεια του νερού. Αυτή είναι μια μάλλον απλή έννοια και το πρόγραμμα δεν χρησιμοποιεί τις εισόδους "δέκτη". Αρχίζει να περιλαμβάνει τη βιβλιοθήκη Adafruit και να ορίζει τον ακροδέκτη ελέγχου εξόδου και τον αριθμό των LED. Στη συνέχεια κάνουμε μία φορά ρύθμιση της σειριακής επικοινωνίας και της λωρίδας LED. Στη συνέχεια, ορίζουμε έναν αριθμό εσωτερικών μεταβλητών, όπως η καθυστέρηση μεταξύ ανανέωσης, τα χαρακτηριστικά ενός άξονα φωτός (η φωτεινότητά του με την πάροδο του χρόνου και η κίνησή του) και, στη συνέχεια, οι μεταβλητές για κάθε άξονα φωτός.

Η συνάρτηση "changeBright ()" θα αυξήσει τη φωτεινότητα ενός άξονα φωτός κατά τη διάρκεια του χρόνου "επίθεσης", θα το διατηρήσει σταθερό για τον χρόνο "διατήρησης" και μετά θα εξαφανιστεί κατά τη διάρκεια του χρόνου "αποσύνθεσης".

Η συνάρτηση "κυματισμός ()" καλείται για καθένα από τους τρεις άξονες φωτός σε κάθε χρονική αύξηση. Η προσωρινή φωτεινότητα υπολογίζεται με βάση το ξεθώριασμα από τη μέγιστη φωτεινότητα σε σταθερή διάσπαση με την πάροδο του χρόνου. Στη συνέχεια, για κάθε LED στα αριστερά της αρχικής θέσης υπολογίζεται η φωτεινότητα. Μπορούμε να φανταστούμε έναν κυματισμό φωτός που κινείται προς τα αριστερά. Κάθε LED στα αριστερά βρίσκεται σε προηγούμενο σημείο της καμπύλης χρόνου φωτεινότητας κυματισμού. Όταν αυτός ο κυματισμός έχει μηδενική φωτεινότητα για όλες τις λυχνίες LED, η σημαία έχει τεθεί σε 1. Εάν η λυχνία LED είναι ήδη φωτεινότερη (ρυθμισμένη από έναν από τους άλλους κυματισμούς) αφήνουμε την τιμή αμετάβλητη.

Ο κύριος βρόχος ξεκινά απενεργοποιώντας τα LED. Στη συνέχεια, για κάθε έναν από τους τρεις κυματισμούς καλεί τη συνάρτηση κυματισμού και αυξάνει τον μετρητή χρόνου. Εάν η σημαία έχει τεθεί, ξεκινάει ο κυματισμός από την αρχή. Τέλος, ο κύριος βρόχος ρυθμίζει ένα απαλό μπλε φως στο κάτω μέρος.

Βήμα 9: Ελεγκτής προγραμματισμού Παράδειγμα Dawn to Dusk:

Image
Image

Το επόμενο έργο, "Dawn to Dusk" της Jeanie Holt, είναι ένα άλλο υφασμάτινο έργο τέχνης αυτή τη φορά ένα δέντρο με φθινοπωρινό χρώμα. Ο φωτισμός είναι μια προσομοίωση της ημέρας με την αυγή να αρχίζει να φωτίζει στα αριστερά προχωρώντας σε φωτεινά μέσα της ημέρας ακολουθούμενα από κοκκινωπά χρώματα ηλιοβασιλέματος και προχωρώντας στη νύχτα. Η πρόκληση εδώ είναι η απλοποίηση της περιγραφής της αλλαγής χρώματος και φωτεινότητας με την πάροδο του χρόνου σε μια λωρίδα 66 LED. Η άλλη πρόκληση είναι η ομαλή αλλαγή του φωτός. Δυσκολευτήκαμε πραγματικά με την αισθητή μεταβολή του φωτός σε χαμηλά επίπεδα φωτισμού. Προσπάθησα να κάνω πιο ομαλές μεταβάσεις φωτισμού χρησιμοποιώντας τη βιβλιοθήκη FastLED, αλλά δεν τα κατάφερα. Αυτή η περιγραφή προγράμματος θα είναι λιγότερο λεπτομερής. Και πάλι χρησιμοποιήσαμε τη βιβλιοθήκη NeoPixel της Adafruit.

Πήγαμε σε μια σύμβαση για να ξεκινήσουμε τις λωρίδες LED στην επάνω αριστερή γωνία. Αυτό καθιστά την τοποθεσία LED αρίθμηση λίγο αμήχανη σε αυτό το κομμάτι. Υπάρχουν 86 LED γύρω από το πλαίσιο. Η αυγή φωτίζει την αριστερή πλευρά που πηγαίνει από 62 σε 85. Στη συνέχεια, πάνω αριστερά προς τα κάτω δεξιά είναι 0 έως 43.

Αυτό το πρόγραμμα δεν περιλαμβάνει τη δυνατότητα χρήσης του κυκλώματος εισόδου "Tuner".

Αυτό το πρόγραμμα χρησιμοποιεί χρόνο για να μειώσει το τρεμόπαιγμα. Ενημερώνουμε κάθε πέμπτη λυχνία LED και μετά αλλάζουμε πάνω από ένα και ενημερώνουμε κάθε πέμπτη λυχνία LED και επαναλαμβάνουμε μέχρι να ενημερωθούν όλα. Για το λόγο αυτό ορίζουμε το μήκος της συμβολοσειράς LED λίγο μεγαλύτερο από αυτό που είναι στην πραγματικότητα.

Τώρα εδώ είναι πώς απλοποιήσαμε την περιγραφή του μοτίβου φωτισμού. Εντοπίσαμε 12 θέσεις αναφοράς LED γύρω από το πλαίσιο από κάτω αριστερά προς τα κάτω δεξιά. Στη συνέχεια, καθορίσαμε την ένταση του κόκκινου, του πράσινου και του μπλε (RGB) για αυτά τα LED αναφοράς σε έως και 12 σημεία διακοπής κατά την περίοδο από την αυγή έως το σούρουπο. Για κάθε σημείο διακοπής υπάρχουν 4 byte, ο αριθμός του χρόνου μετρά από το τελευταίο σημείο διακοπής και η τιμή ενός byte για καθένα από τα χρώματα RGB. Αυτός ο πίνακας καταλαμβάνει 576 bytes πολύτιμης μνήμης.

Τώρα χρησιμοποιούμε γραμμική παρεμβολή για να βρούμε τιμές μεταξύ σημείων διακοπής και πάλι γραμμική παρεμβολή για να βρούμε τιμές για τα LED που βρίσκονται μεταξύ των LED αναφοράς. Για να λειτουργήσει καλά η παρεμβολή πρέπει να χρησιμοποιήσουμε κάποιες ενδιάμεσες τιμές κυμαινόμενου σημείου. Η περίοδος από την αυγή έως το σούρουπο χωρίζεται σε 120 περιόδους μισού δευτερολέπτου.

Βήμα 10: Ελεγκτής προγραμματισμού Παράδειγμα Rain Forest:

Το επόμενο έργο που θα περιγράψω είναι το "Rain Forest" της Juli-Ann Gasper. Αυτό είναι ένα μεγαλύτερο υφασμάτινο έργο τέχνης με πολύ βάθος. Εδώ χρησιμοποιήσαμε ένα κουτί σκιών βάθους περίπου 4,4”. Η έννοια του φωτισμού είναι επίπεδα φωτισμού φόντου που είναι πιο αμυδρά στο κάτω μέρος με φως που τρεμοπαίζει στα φύλλα πάνω από καιρό σε καιρό. Η ιδέα εδώ είναι παρόμοια με το Ripple αλλά οι άξονες του φωτός δεν κινούνται. Και σε αντίθεση με το κυματισμό όπου η φωτεινότητα αλλάζει ομαλά, εδώ η φωτεινότητα τρεμοπαίζει πρέπει να κυμαίνεται. Δημιουργήσαμε έναν πίνακα 40 byte που ονομάζεται flicker_b2. Διαπιστώσαμε ότι το οπτικό εφέ ήταν καλό αν χρησιμοποιούσαμε το ίδιο μοτίβο για όλες τις θέσεις τρεμοπαίγματος. Δημιουργήσαμε 5 θέσεις τρεμοπαίγματος. Κατά την ανασκόπηση του οπτικού εφέ διαπιστώσαμε ότι ένα από τα τρεμόπαιγμα έπρεπε να είναι πολύ ευρύτερο από τα άλλα. Χρησιμοποιήσαμε τη λειτουργία fill_gradient_RGB () για να τεντώσουμε αυτό το τρεμόπαιγμα σε περίπου 20 LED. Κάθε τρεμόπαιγμα είναι ανεξάρτητο και ξεκινά τυχαία. Η πιθανότητα κάθε τρεμοπαίγματος μπορεί να ρυθμιστεί.

Το χρώμα του φόντου πρέπει να ρυθμιστεί και να αποκατασταθεί όταν το τρεμόπαιγμα δεν είναι πιο φωτεινό από το φόντο.

Για αυτό το κομμάτι χρησιμοποιήσαμε τη βιβλιοθήκη FastLED. Σε αυτό το πρόγραμμα, το #define TUNING χρησιμοποιείται για να υποδείξει εάν ο πίνακας συντονισμού είναι συνδεδεμένος, πρέπει να είναι 0 όταν ο πίνακας δέκτη δεν είναι συνδεδεμένος. Διαφορετικά, ο ελεγκτής είναι ευαίσθητος στον στατικό ηλεκτρισμό και στα πολυτεργαστές. Ο μεταγλωττιστής περιλαμβάνει μόνο τα τμήματα προγράμματος που χρησιμοποιούν το "Tuner" όταν αυτή η μεταβλητή είναι 1.

Βήμα 11: Ελεγκτής προγραμματισμού Παράδειγμα καταιγίδας:

Ένα άλλο έργο ήταν να φωτίσει μια φωτογραφία που ονομάζεται "Storm" του Mike Beck. Η εικόνα είναι ένα σύννεφο θύελλας. Χρησιμοποιούμε βιβλιοθήκη FastLED και δεν περιλαμβάνει τη δυνατότητα συντονισμού. Η έννοια του φωτισμού εδώ είναι κάποιο φως φόντου με αστραπές που αναβοσβήνουν τυχαία σε τρία σημεία γύρω από το σύννεφο. Το φλας σε κάθε θέση προκαλείται από τρία LED. Ο χώρος μεταξύ αυτών των LED είναι διαφορετικός για κάθε τοποθεσία. Η φωτεινότητα αυτών των τριών LED καθορίζεται από τρεις συστοιχίες 30 byte. Η ακολουθία φωτεινότητας στις τρεις συστοιχίες δίνει διακύμανση και εμφανή κίνηση στα τρία LED. Η κατεύθυνση της αντίληψης της κίνησης και της συνολικής φωτεινότητας επιλέγεται για κάθε τοποθεσία. Η διάρκεια του φλας σε κάθε θέση προσαρμόζεται με τη χρονική καθυστέρηση μεταξύ της ενημέρωσης των τιμών φωτεινότητας. Υπάρχει τυχαία χρονική καθυστέρηση μεταξύ 0,2 και 10,4 δευτερολέπτων μεταξύ των κεραυνών. Ποια από τις τρεις τοποθεσίες απεργίας είναι επίσης τυχαία με 19% πιθανότητα στην κορυφή του νέφους, 45% πιθανότητα στην κάτω δεξιά και 36% πιθανότητα στην αριστερή πλευρά.

Βήμα 12: Παραδείγματα ελεγκτή προγραμματισμού Macaw και Nordic Tree:

Τα κομμάτια "Macaw" της Dana Newman και "Nordic Tree" της Jeanie Holt χρησιμοποιούν χρώμα φωτισμού για να αλλάξουν το αντιληπτό χρώμα του κομματιού. Και στην περίπτωση της ζωγραφικής του Dana σε ένα μεγάλο μακάο, η διάθεση του πουλιού αλλάζει από χαρούμενη σε απειλητική, ανάλογα με το χρώμα του φωτός που περιβάλλει το πουλί. Αυτά τα δύο προγράμματα είναι σχεδόν πανομοιότυπα. Χρησιμοποιούμε τη βιβλιοθήκη Adafruit NeoPixel και η δυνατότητα του πίνακα συντονισμού βρίσκεται σε αυτά τα προγράμματα. Αυτά τα προγράμματα είναι προσαρμοσμένα από τη λειτουργία theaterChaseRainbow () στο Adafruit_NeoPixel/example/Strandtest.ino (κατεβάστηκε 29/7/2015)

Ο φωτισμός διατηρείται σε σχετικά σταθερή φωτεινότητα ενώ το χρώμα του φωτός μετατοπίζεται προχωρώντας μέσα από έναν χρωματικό τροχό χρωμάτων. Η πρόοδος γύρω από τον τροχό χρωμάτων δημιουργείται ξεκινώντας με 100% κόκκινο και μειώνοντας σταδιακά το κόκκινο αυξάνοντας το πράσινο. Μόλις το πράσινο είναι στο 100%, τότε μειώνεται ενώ αυξάνεται το μπλε. Και τέλος καθώς το μπλε μειώνεται και το κόκκινο αυξάνεται, μπαίνετε σε πλήρη κύκλο.

Αυτό παρέχει φωτισμό χρησιμοποιώντας δύο από τα κύρια χρώματα και αφήνει ένα έξω. Καθώς περνάμε από αυτόν τον τροχό χρώματος φωτισμού κάποια στιγμή οποιοδήποτε χρώμα στο έργο τέχνης θα λείπει στο παρεχόμενο φως. Η προκύπτουσα αλλαγή στο αντιληπτό χρώμα μπορεί να είναι αρκετά δραματική και να γίνει μέρος της έκφρασης της τέχνης. Έτσι, εάν το κόκκινο δεν υπάρχει στο φως, οποιοδήποτε κόκκινο στον πίνακα θα φαίνεται σκούρο. Όταν το φως είναι καθαρό κόκκινο τότε το κόκκινο λάμπει πραγματικά και τα άλλα χρώματα είναι σιωπηλά.

Βήμα 13: Παραδείγματα ελεγκτή προγραμματισμού Copperhead:

Το "Copperhead" της Jeanie Holt χρησιμοποιεί παραλλαγή φωτισμού για να ενισχύσει την αίσθηση του εξωτερικού χώρου και τη διαφορά στην ευκρίνεια του φιδιού. Ο προγραμματισμός στρώνει κύματα φωτός πάνω από τον φωτισμό φόντου.

Για αυτό το πρόγραμμα χρησιμοποιήσαμε τη βιβλιοθήκη FastLED μαζί με το κύκλωμα Tuner για ανάπτυξη.

Το χρώμα φόντου ορίζεται σε 10 σημεία γύρω από το πλαίσιο και η συνάρτηση fill_gradient () χρησιμοποιείται για ομαλή μετάβαση μεταξύ των χρωμάτων.

Στην αρχή ενός κύκλου προβολής το φόντο μειώνεται και το χρώμα μεταβάλλεται στο μπλε χρησιμοποιώντας μια καμπύλη συνημίτονο με την πάροδο του χρόνου και τη συνάρτηση setBrightness ().

Μετά από καθυστέρηση τρία κύματα φωτός κινούνται από πάνω δεξιά προς τα κάτω αριστερά. Το πρώτο κύμα είναι το πιο φωτεινό με τα ακόλουθα κύματα να γίνονται πιο αμυδρά. Το πρώτο κύμα κινείται επίσης πιο αργά.

Βήμα 14: Παραδείγματα ελεγκτή προγραμματισμού Black Doodle:

Image
Image

Το "Black Doodle" της Jeanie Holt εξερευνά αντανακλάσεις από μαύρο βινύλιο.

Αυτό το πρόγραμμα χρησιμοποιεί επίσης τη βιβλιοθήκη FastLED και μπορεί να λάβει είσοδο από το κύκλωμα συντονισμού.

Ο φωτισμός αποτελείται από έως και 5 ταυτόχρονες ενδείξεις φωτός που παίζουν από τυχαία σημεία γύρω από το κάδρο. Κάθε οθόνη εξελίσσεται με τις ίδιες 60 τιμές φωτεινότητας με την πάροδο του χρόνου. Κάθε οθόνη περιλαμβάνει 7 παρακείμενα LED με τη φωτεινότητα να μειώνεται προς τα άκρα. Πριν ξεκινήσει κάθε οθόνη υπάρχει μια τυχαία καθυστέρηση. Η θέση της οθόνης είναι τυχαία αλλά οι θέσεις κοντά σε μια ενεργή οθόνη αποκλείονται.

Το φόντο είναι ένα ουράνιο τόξο χρωμάτων απλωμένο γύρω από το πλαίσιο. Αυτό το ουράνιο τόξο φόντου στρέφεται αργά και αντιστρέφει τυχαία την κατεύθυνση.

Αυτές οι περιγραφές είναι μια επισκόπηση και βοήθεια στην ανάγνωση των προγραμμάτων. Ελπίζουμε να βρείτε αρκετά από αυτά τα εφέ φωτισμού αρκετά ενδιαφέροντα για να ενσωματωθούν σε ένα από τα έργα σας. Ένας σύνδεσμος προς το github.com όπου είναι αποθηκευμένα τα προγράμματα βρίσκεται στο Βήμα 2 Πόροι.

Βήμα 15: Προγραμματισμός των λειτουργιών συντονισμού:

Στο πρόγραμμα RainForest μπορούμε να ενεργοποιήσουμε τη λειτουργία συντονισμού με "#define TUNING 1" και να προσαρτήσουμε την πλακέτα εισόδου συντονισμού χρησιμοποιώντας το καλώδιο κορδέλας του. Πρέπει επίσης να ορίσουμε παραμέτρους για τις οποίες το LED θα επηρεαστεί από τον συντονισμό. Για παράδειγμα, ας προσαρμόσουμε τις λυχνίες LED στις θέσεις 61 έως 73. Χρησιμοποιούμε #define START_TUNE 61 και #define END_TUNE 73. Ορίζουμε άλλα τμήματα της συμβολοσειράς σε χρώματα φόντου κατά τη ρύθμιση () χρησιμοποιώντας κλήσεις fill_gradient_RGB (). Το υπόλοιπο σκίτσο σας δεν πρέπει να ορίζει τις λυχνίες LED στο εύρος συντονισμού ή δεν θα μπορείτε να δείτε τις ρυθμίσεις σας. Τώρα εκτελέστε το σκίτσο και εμφανίστε τη σειριακή οθόνη. Το τμήμα συντονισμού του προγράμματος έχει 4 καταστάσεις [Απόχρωση, Κορεσμός, Τιμή και Φωτεινότητα]. Η απόχρωση είναι ο τροχός χρώματος με 0 = Κόκκινο και 255 μπλε έως σχεδόν κόκκινο. Η τρέχουσα κατάσταση θα πρέπει να εκτυπωθεί στη σειριακή οθόνη και η ενδεικτική λυχνία LED στον πίνακα συντονισμού θα αναβοσβήνει για να δείξει την κατάσταση (ένα αναβοσβήνει είναι Hue, δύο αναβοσβήνει είναι Saturation και ούτω καθεξής). Η τιμή είναι η ένταση του φωτός ενώ η φωτεινότητα είναι ένας συντελεστής μείωσης που εφαρμόζεται σε όλες τις τιμές έντασης των LED. Έτσι για πλήρη φωτεινότητα ορίστε Τιμή = 255 και Φωτεινότητα = 255. Πατήστε το κουμπί για να αλλάξετε την κατάσταση. Όταν βρίσκεστε στην κατάσταση που θέλετε να ρυθμίσετε, γυρίστε το κουμπί. Το πρόγραμμα αγνοεί το κουμπί μέχρι να γυρίσει περισσότερο από το INHIBIT_LEVEL. Αυτό αποφεύγει την αλλαγή των τιμών στις άλλες καταστάσεις όταν τις περνάτε με κύκλο. Παράδειγμα μπορεί να ξεκινήσετε με την απόχρωση και να πάρετε το χρώμα που θέλετε, μετά να μεταβείτε στην τιμή και να προσαρμοστείτε για να βρείτε τη φωτεινότητα που θέλετε.

Τα σκίτσα Macaw και Nordic_Tree περιλαμβάνουν ρύθμιση, αλλά οι λειτουργίες είναι λίγο διαφορετικές. Σε αυτά τα σκίτσα υπάρχουν μόνο δύο λειτουργίες. Ένα για τη φωτεινότητα και ένα για τη θέση του έγχρωμου τροχού. Με αυτά τα παραδείγματα μπορείτε να δείτε πώς να προσαρμόσετε τις λειτουργίες ρύθμισης ώστε να λειτουργούν με τις περισσότερες παραμέτρους του ελέγχου φωτισμού.

Περιλαμβάνεται στο αποθετήριο ένα σκίτσο «Συντονισμός» που λαμβάνει τις λειτουργίες συντονισμού από το RainForest. Αυτό το σκίτσο είναι μόνο οι λειτουργίες συντονισμού, ώστε να μπορείτε να εξερευνήσετε και να παρακολουθήσετε πιο εύκολα πώς λειτουργεί το σκίτσο. Χρησιμοποιούμε αυτό το σκίτσο για να ελέγξουμε ένα δοκιμαστικό πλαίσιο φωτισμού το οποίο μπορούμε να τοποθετήσουμε γρήγορα πάνω σε ένα έργο τέχνης και να εξερευνήσουμε εφέ φωτισμού. Αργότερα θα χρησιμοποιήσουμε τις πληροφορίες συντονισμού για να δημιουργήσουμε τον προσαρμοσμένο ελεγκτή φωτισμού.

Ελπίζω να βρείτε αυτό το διδακτικό χρήσιμο για να λειτουργήσει το έργο σας.

Βήμα 16: Το υπόλοιπο της ιστορίας:

Αυτό είναι ένα από τα δύο διδακτικά σε αυτό το έργο. Εάν δεν το έχετε κάνει ήδη, ελέγξτε το συνοδευτικό με οδηγίες στη διεύθυνση:

Συνιστάται: