Αν παρακολουθήσετε πολλές ταινίες στον υπολογιστή σας ή στο κέντρο μέσων ενημέρωσης, είμαι βέβαιος ότι αντιμετωπίζετε το δίλημμα φωτισμού. απενεργοποιείτε εντελώς όλα τα φώτα; Τους κρατάτε σε πλήρη έκρηξη; Ή μήπως χρησιμοποιείτε έναν διακόπτη dimmer για να κρατήσετε μια θαμπό κίτρινη λάμπα κάπου; Λοιπόν, δεν υποφέρουν πλέον.
Για λιγότερο από $ 100, μπορείτε να δημιουργήσετε ένα καταπληκτικό σύστημα φωτισμού που θα αντικατοπτρίζει αυτό που εμφανίζεται στην οθόνη. εάν το βίντεο είναι μια μπλε σκηνή νύχτας, τα φώτα θα είναι μπλε. όταν αναβοσβήνει μια πυρκαγιά πυρκαγιάς πορτοκαλιάς, έτσι και τα φώτα σου. Καλώς ήρθατε στον κόσμο του φωτισμού περιβάλλοντος RGB.
Συστατικά
- RGB λωρίδα φωτός - αυτή είναι μια λωρίδα 5 μέτρων LED RGB που μπορεί να αγοραστεί σε eBay και να αποσταλεί από το Χονγκ Κονγκ για λιγότερο από £ 20 η κάθε μία. Εάν αγοράζετε ηλεκτρονικά καταστήματα, θα πληρώσετε από το μετρητή και ένας κύλινδρος των 5 μέτρων θα κοστίσει τρεις ή τέσσερις φορές, ώστε να αγοράσετε online. Αυτοί οι τύποι λωρίδων LED μπορούν να αλλάξουν σε οποιοδήποτε χρώμα, αλλά μόνο ταυτόχρονα - δεν μπορούν να ρυθμιστούν μεμονωμένα.
- 12V τροφοδοσία ρεύματος - η απαιτούμενη ισχύς (ampage) εξαρτάται από τον αριθμό των λωρίδων LED που θα συνδέσετε. Κάθε μετρητής αντλεί περίπου 0, 6 ενισχυτές, αλλά αυτό εξαρτάται από την πυκνότητα των LED σας, οπότε βεβαιωθείτε ότι έχετε ελέγξει τη συγκεκριμένη λωρίδα LED σας. 3Α θα ήταν αρκετό για την 5μ λωρίδα που συνδέσαμε παραπάνω και χωριστά τροφοδοτικά μπορούν να αγοραστούν για περίπου 10 λίρες, αν δεν μπορείτε να τα προμηθευτείτε αλλού.
- 3 x τρανζίστορ MOSFET N - μπορείτε να βρείτε probaby φθηνότερα, αλλά αγόρασα ένα πακέτο 6 (τύπου STP16NF06FP) για περίπου £ 10. Αυτά χρησιμοποιούνται για την απομόνωση του ρεύματος από το Arduino - η σύνδεση των λωρίδων απευθείας στο Arduino θα το τηγανίσει με το ρεύμα που αντλούν. Χρειάζεστε 1 τρανζίστορ MOSFET ανά κανάλι χρώματος LED, για Κόκκινο, Πράσινο και Μπλε.
- Arduino Τι είναι το Arduino και τι μπορείτε να κάνετε με αυτό; Τι είναι το Arduino και τι μπορείτε να κάνετε με αυτό; Το Arduino είναι μια αξιοσημείωτη μικρή ηλεκτρονική συσκευή, αλλά αν δεν έχετε χρησιμοποιήσει ποτέ πριν, τι ακριβώς είναι και τι μπορείτε να κάνετε με ένα; Διαβάστε περισσότερα - Δεν έχω συμπεριλάβει το κόστος αυτού του στοιχείου, όπως υποτίθεται ότι θα έχετε ήδη ένα, και υπάρχει μια ποικιλία κλώνων που μπορείτε να αγοράσετε αν δεν μπορείτε να αντέξετε οικονομικά ένα επίσημο.
Το συνολικό κόστος λοιπόν ήταν περίπου 40 λίρες χωρίς το Arduino.
Εισαγωγή
Το έργο αποτελείται από δύο μέρη. Πρώτα θα δημιουργήσουμε ένα βασικό κύκλωμα Arduino που ακούει εντολές από τον υπολογιστή και θέτει τα LED RGB σε ένα κατάλληλο χρώμα. Το δεύτερο περιλαμβάνει τη χρήση μιας νέας εφαρμογής που ονομάζεται Επεξεργασία και Java από την πλευρά του υπολογιστή - για να διαπιστώσετε ποια χρώματα βρίσκονται στην οθόνη, να τα μετρήσετε και να τα εξάγετε στη θύρα σειριακών επικοινωνιών για να αντιδράσει το Arduino.
Μέρος 1: Κύκλωμα και Arduino
Το κύκλωμα που χρησιμοποιούμε είναι πολύ απλό, όπως μπορείτε να δείτε από το παρακάτω διάγραμμα. Η λωρίδα LED θα πρέπει να τροφοδοτείται με ένα βύσμα στο ένα άκρο που μπορείτε να τοποθετήσετε απευθείας στο breadboard.
Η λωρίδα LED σας μπορεί να ποικίλει, αλλά αν κοιτάξετε προσεκτικά θα δείτε 12v, R, G, B γραμμένα στις ράγες κάπου. Αυτές οι λωρίδες μπορούν πραγματικά να κοπούν σε αυτά τα σημεία χαλκού (κάθε 3 LED σε αυτά που έχω), οπότε αν θέλετε να κόψετε τις ταινίες στις γωνίες της τηλεόρασής σας, μπορείτε να το κάνετε με ασφάλεια - δεν χρειάζεται να χρησιμοποιήσετε το σύνολο των 5 μέτρων, οπότε ίσως έχετε μείνει κάποιο για ένα μελλοντικό έργο. Συνδέστε το θετικό 12v απευθείας στην εξωτερική παροχή ρεύματος.
Τα MOSFETs έχουν τρεις καρφίτσες. πύλη, αποχέτευση και πηγή . Η πύλη είναι σαν τον ηλεκτρονικό διακόπτη που θα ελέγχει ο Arduino. Αυτό καθορίζει τότε το ρεύμα που ρέει μεταξύ της πηγής και της αποστράγγισης. Η αποστράγγιση κάθε MOSFET πρέπει να συνδέεται με το έδαφος του Arduino και με το έδαφος της τροφοδοσίας, ενώ η πηγή συνδέεται με τα κανάλια λωρίδας LED.
Όταν ολοκληρώσετε το κύκλωμα, κατεβάστε και εκτελέστε αυτόν τον κωδικό δοκιμής (αρχικά από την LadyAda, τροποποιημένες καρφίτσες). Θα πρέπει να δείτε τη λωρίδα LED σας να στροβιλίζεται μέσα από μια ποικιλία χρωμάτων.
Μέρος 2: Επεξεργασία
Λήψη Επεξεργασία και εκτέλεση. Μπορεί να εκπλαγείτε να διαπιστώσετε ότι μοιάζει σχεδόν με το περιβάλλον ανάπτυξης του Arduino. αυτό οφείλεται στο γεγονός ότι το περιβάλλον Arduino βασίστηκε σε αυτό, αν και και οι δύο εκτελούν διαφορετικές λειτουργίες. Πιάσε αυτόν τον κώδικα - αρχικά από τη Δημοκρατία του Σίλικον, αλλά με μεγάλη τροποποίησή μου για να ρυθμίσω τις ρυθμίσεις μεγέθους οθόνης αυτόματα και με καλύτερη απόδοση χρωμάτων - και αφιερώστε λίγο χρόνο για να το δείτε. Βασικά χρησιμοποιεί μια κλάση Java που ονομάζεται ρομπότ για να κάνει μια σύλληψη οθόνης κάθε 10ms . Στη συνέχεια, επιλέγει κάθε περιττό pixel και υπολογίζει κατά μέσο όρο το συνολικό χρώμα. Αν η απόδοση είναι ένα πρόβλημα για εσάς, αυξήστε τη μεταβλητή skipValue σε 3 ή 4 για να παρακάμψετε περισσότερα pixel - το συνολικό αποτέλεσμα θα πρέπει να είναι το ίδιο, αλλά θα τρέχει γρηγορότερα καθώς εξετάζει λιγότερα pixels. Τέλος, προσθέσαμε ένα φίλτρο που βοηθά να κορεστεί το χρώμα αυξάνοντας το μέγιστο και μειώνοντας τις ελάχιστες τιμές RGB που βρέθηκαν (χωρίς αυτό, βρήκα τα χρώματα να είναι πολύ λευκά).
Εκτελέστε την εφαρμογή. η πρώτη φορά, πιθανόν να λάβετε ένα σφάλμα καθώς προσπαθεί να αποκτήσει πρόσβαση σε λάθος σειριακή θύρα.
Ελέγξτε το παράθυρο εντοπισμού σφαλμάτων για μια λίστα με τρέχουσες σειριακές θύρες και σημειώστε τον αριθμό δίπλα σε αυτό που συνδέεται με το Arduino σας. Στην περίπτωσή μου σε ένα Mac, η σύνδεση USB είναι θύρα 4. Αλλάξτε τον αριθμό στη γραμμή αυτή στη σωστή θύρα:
θύρα = νέα Serial (αυτό, Serial.list () [4], 9600); // ρυθμίστε την ταχύτητα baud
Αποθηκεύστε και επαναλάβετε την εκτέλεση. θα πρέπει να δείτε ένα μικρό παράθυρο που εμφανίζεται - αυτό αντιπροσωπεύει το μέσο χρώμα όλων των στοιχείων στην οθόνη. Ξεκινήστε μια εφαρμογή ζωγραφικής ή κάτι με έντονα χρώματα για να το δοκιμάσετε, αλλιώς πιθανότατα θα εμφανιστεί μόνο μια σκοτεινή σκιά γκρίζου χρώματος. Σταματήστε την εφαρμογή όταν ολοκληρώσετε τη δοκιμή, καθώς χρειαζόμαστε την πρόσβαση σε σειριακή θύρα για να προγραμματίσετε το Arduino.
Τέλος, φορτώστε αυτόν τον κώδικα στο Arduino σας. Αντί να στέλνει τυχαία χρώματα στη λωρίδα LED, αυτός ο κώδικας διαβάζει τις τιμές από τη σειριακή θύρα (στην οποία εκτελείται η επεξεργασία). Είναι αρκετά εύκολο να γίνει κατανοητό, το μόνο δύσκολο κομμάτι μπορεί να είναι η χρήση ενός δείκτη στα σειριακά δεδομένα:
if (Serial.available()>=4) { if(Serial.read() == 0xff){ red = Serial.read(); green= Serial.read(); blue = Serial.read(); } }
Αυτό διασφαλίζει ότι διαβάζουμε τις σωστές τιμές byte - η εφαρμογή επεξεργασίας εξάγει έναν δείκτη ως "σημείο διακοπής" μεταξύ κάθε σετ τιμών, έτσι ώστε το Arduino να μην ξεφύγει από το συγχρονισμό και να πιστεύει ότι η πράσινη τιμή είναι για το μπλε κλπ.
Μόλις μεταφορτωθεί ο κώδικας Arduino (δεν πρέπει να υπάρχει έξοδος στην λωρίδα LED αρχικά), τότε μπορείτε να φορτώσετε και να εκτελέσετε την εφαρμογή επεξεργασίας. αμέσως θα πρέπει να βλέπετε το φως του περιβάλλοντος να λειτουργεί.
Ακολουθεί μια επίδειξη βίντεο για το πώς λειτούργησε για μένα με κάποιο τυχαίο video trippy μουσικής.
Τι νομίζετε?! Αν και δεν είναι τόσο εντυπωσιακό όσο κάτι που αναλύει κάθε τμήμα της οθόνης και χρησιμοποιεί μεμονωμένα εικονοστοιχεία LED, είναι πολύ φθηνότερο και πολύ φωτεινότερο. Το μόνο μειονέκτημα για αυτό είναι ότι όλα πρέπει να τρέχουν στον κεντρικό υπολογιστή μέσων - δεν θα λειτουργήσει με την κανονική τηλεοπτική εκπομπή ή το Xbox 360 σας, για παράδειγμα. Εάν έχετε οποιεσδήποτε δυσκολίες, ερωτήσεις ή υποδείξεις, παρακαλώ ρωτήστε μακριά. ή ίσως να συνδεθείτε με ένα βίντεο της ολοκληρωμένης εγκατάστασης.