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

Διαδραστικό φως περιβάλλοντος: 8 βήματα
Διαδραστικό φως περιβάλλοντος: 8 βήματα

Βίντεο: Διαδραστικό φως περιβάλλοντος: 8 βήματα

Βίντεο: Διαδραστικό φως περιβάλλοντος: 8 βήματα
Βίντεο: 13 Βήματα για ένα Υπέροχο Υπνοδωμάτιο | Διακόσμηση Υπνοδωματίου | Σπύρος Σούλης 2024, Ιούλιος
Anonim
Διαδραστικό φως περιβάλλοντος
Διαδραστικό φως περιβάλλοντος
Διαδραστικό φως περιβάλλοντος
Διαδραστικό φως περιβάλλοντος
Διαδραστικό φως περιβάλλοντος
Διαδραστικό φως περιβάλλοντος

Αυτό είναι το πρώτο μου διδακτικό! Παρακαλώ αντέξτε μαζί μου ενώ δυσκολεύομαι να γράψω σωστά αγγλικά. Μη διστάσετε να με διορθώσετε! Ξεκίνησα αυτό το έργο αμέσως μετά την έναρξη του διαγωνισμού «Αφήστε το να λάμψει». Μακάρι να είχα κάνει πολύ περισσότερα και να είχα τελειώσει αυτό που ήθελα να κάνω. Αλλά μεταξύ σχολείου και εργασίας, δεν μου είχε μείνει τόσος χρόνος όσο θα ήθελα. Παρ 'όλα αυτά, αφήνω εδώ μια αναφορά των πειραμάτων μου ως εκπαιδευτική, έτσι ώστε ο καθένας να μπορεί να προσπαθήσει να κάνει αυτό που έκανα. Αυτό το διδακτικό δεν προορίζεται να χρησιμεύσει ως οδηγός και να διδάξει πώς να φτιάξετε αυτήν την παραλλαγή. Δεν είναι οδηγός για αρχάριους στα ηλεκτρονικά. Είναι περισσότερο σαν να μοιράζομαι μια ιδέα και στόχο που θέλω να επιδιώξω. Εάν είστε αρχάριος/εντελώς αδαής στα ηλεκτρονικά και επιθυμείτε να φτιάξετε κάτι τέτοιο, λυπάμαι! Αλλά μπορούμε να προσπαθήσουμε πάντα να σας βοηθήσουμε. Δείτε το τελευταίο βήμα. Έχουμε ήδη δει πολλά έργα φωτισμού περιβάλλοντος. Τα περισσότερα χρησιμοποιούν LED RGB: - Για να φωτίσετε ένα δωμάτιο με ένα χρώμα, ρυθμίζοντας μια ατμόσφαιρα που ταιριάζει στη διάθεσή σας - Για να δημιουργήσετε εφέ φωτισμού από το χρώμα της τηλεόρασης/οθόνης ή από τον ήχο. Υπάρχουν ακόμη και μερικά στο instructables.com Σχετικά: DIY Ambient Light SystemsLight Bar Ambient LightBuilting your own ambient color colours bars Χρησιμοποιώντας αυτόν τον διαγωνισμό ως δικαιολογία, ξεκίνησα ένα έργο που ήταν στο μυαλό μου για λίγο. Πάντα ήθελα να φτιάξω κάτι παρόμοιο με αυτά τα φωτιστικά περιβάλλοντος και να γεμίσω τους τοίχους του δωματίου μου με LED RGB. Αλλά, κάνοντας ένα βήμα παραπέρα, κάνοντας όλα και το καθένα από αυτά ελεγχόμενα. Αυτό το έργο ελπίζουμε ότι θα οδηγήσει σε ένα κιτ ηλεκτρονικής ανοιχτού κώδικα για χομπίστες και ηλεκτρονικούς τσιμπητές, επιτρέποντας το hacking υλικού/λογισμικού και την αισθητηριακή ολοκλήρωση. Εδώ είναι μια μικρή προεπισκόπηση αυτού που έφτιαξα:

Βήμα 1: Εξερεύνηση της ιδέας

Θέλω να μπορώ να γεμίζω τους τοίχους στο δωμάτιό μου με LED RGB, ελέγχοντας το χρώμα και τη φωτεινότητα για κάθε led. Θα χρησιμοποιήσω έναν μικροελεγκτή για την ευκολία χρήσης και την ευελιξία που παρέχεται. Δυστυχώς δεν μπορώ να ελέγξω εκατοντάδες LED με τις λίγες ακίδες που διατίθενται στους μικροελεγκτές. Θα ήταν ακόμη δύσκολο να κωδικοποιήσω τον έλεγχο τόσων πολλών LED. Έτσι αποφάσισα ότι πρέπει να χωρίσω όλα τα LED σε αρκετές μικρότερες μπάρες και για κάθε μπάρα θα μπορούσα να χρησιμοποιήσω έναν μικροελεγκτή. Στη συνέχεια, θα χρησιμοποιούσα τις δυνατότητες επικοινωνίας των μικροελεγκτών για να μοιραστώ πληροφορίες μεταξύ τους. Αυτές οι πληροφορίες θα μπορούσαν να είναι το χρώμα και η φωτεινότητα των LED, μοτίβα/ακολουθίες χρωμάτων και αισθητηριακές πληροφορίες. Για κάθε μπάρα αποφάσισα να χρησιμοποιήσω 16 LED RGB. Αυτό έχει ως αποτέλεσμα ούτε ένα πολύ μεγάλο ούτε μικρό μπαρ. Με αυτόν τον τρόπο χρησιμοποιώ έναν αποδεκτό αριθμό πόρων για κάθε led, μειώνοντας το κόστος για κάθε μπάρα. Παρ 'όλα αυτά, 16 LED RGB είναι 48 LED (3*16 = 48) για τον έλεγχο του μικροελεγκτή. Έχοντας υπόψη το κόστος, αποφάσισα να χρησιμοποιήσω ο φθηνότερος μικροελεγκτής που θα μπορούσα να χρησιμοποιήσω. Αυτό σημαίνει ότι ο μικροελεγκτής θα έχει μόνο έως 20 ακίδες εισόδου/εξόδου, όχι αρκετές για 48 LED. Δεν επιθυμώ να χρησιμοποιήσω charlieplexing ή κάποιο είδος διαχωρισμού χρόνου, καθώς ο στόχος του έργου είναι να φωτίζει ένα δωμάτιο. εναλλακτική λύση που θα μπορούσα να σκεφτώ είναι η χρήση κάποιου είδους κλειδωμένου καταχωρητή!

Βήμα 2: Υλικό

Σκεύη, εξαρτήματα
Σκεύη, εξαρτήματα
Σκεύη, εξαρτήματα
Σκεύη, εξαρτήματα

Όπως είπα στο προηγούμενο βήμα, θα ήθελα να φτιάξω αρκετές μπάρες για να φωτίζουν ένα δωμάτιο. Αυτό φέρνει στο μυαλό το ζήτημα του κόστους. Θα προσπαθήσω να κάνω κάθε μπαρ με τον πιο οικονομικό δυνατό τρόπο. Ο μικροελεγκτής που χρησιμοποίησα ήταν ένα AVR ATtiny2313. Αυτά είναι μάλλον φθηνά και είχα μερικά ξαπλωμένα. Το ATtiny2313 διαθέτει επίσης μία καθολική σειριακή διεπαφή και μία διεπαφή USART που θα αξιοποιηθεί σωστά στα ακόλουθα βήματα. Είχα επίσης τρεις διαστολείς εισόδου/εξόδου MCP23016 - I2C 16bit, ακριβώς τη σωστή καταμέτρηση! Χρησιμοποίησα κάθε επέκταση θύρας για να ελέγξω ένα χρώμα από τα 16 LED. Τα LED… Δυστυχώς, ήταν τα φθηνότερα που μπορούσα να βρω. Είναι 48 κόκκινα, πράσινα και μπλε ~ 10000mcd 5mm με γωνία 20 °. Αυτό δεν πρέπει να έχει σημασία προς το παρόν, αφού αυτό είναι μόνο ένα πρωτότυπο. Παρά το γεγονός αυτό, το αποτέλεσμα είναι αρκετά ωραίο! Λειτουργώ τον μικροελεγκτή στα 8 MHz. Ο δίαυλος I2C είναι χρονισμένος στα 400 kHz. Η συχνότητα μεταγωγής LED είναι περίπου 400 Hz. Με αυτόν τον τρόπο, αν είμαι σε θέση να οδηγήσω 48 LED χωρίς να το σπρώξω στο όριο, θα αφήσω χώρο για περισσότερα αργότερα!

Βήμα 3: Συναρμολόγηση

Συνέλευση
Συνέλευση
Συνέλευση
Συνέλευση
Συνέλευση
Συνέλευση
Συνέλευση
Συνέλευση

Αφού σχεδίασα το κύκλωμα, το έχτισα σε πολλές σανίδες, για σκοπούς πρωτοτυπίας. Μετά από αρκετές ώρες κοπής καλωδίων και συναρμολόγησης του κυκλώματος, πήρα αυτό το αποτέλεσμα: Ένας γιγαντιαίος πίνακας ψωμιού με 48 LED και τόνους σύρματος!

Βήμα 4: Έλεγχος;

Ελεγχος?
Ελεγχος?

Αυτό είναι το πιο δύσκολο μέρος του έργου. Wantedθελα να κάνω έναν αλγόριθμο ελέγχου αρκετά γενικό για τον χειρισμό μοτίβων/αλληλουχιών και επίσης τον έλεγχο της φωτεινότητας και του χρώματος κάθε LED. Για να ελέγξω τα LED πρέπει να στείλω στο MCP23016 ένα καρέ 4bytes (1 byte = 8 bit). Ένα byte με τη διεύθυνση του IC που αντιστοιχεί στο χρώμα, 1 byte με την εντολή "εγγραφή" και 2 byte με την τιμή των 16bit (LED). Το IC είναι συνδεδεμένο με τις λυχνίες LED ως "νεροχύτης", που σημαίνει ότι μια λογική τιμή 0 στην ακίδα θα ανάψει το LED. Και τώρα το δύσκολο κομμάτι, πώς να κάνετε έλεγχο PWM για 48 LED; Ας μελετήσουμε το PWM για ένα LED! Το PWM εξήγησε @ Wikipedia. Εάν θέλω τη φωτεινότητα της λυχνίας LED στο 50%, η τιμή PWM μου είναι 50%. Αυτό σημαίνει ότι η λυχνία LED, σε μια χρονική περίοδο, θα πρέπει να είναι ανάλογη με την απενεργοποίηση. Ας πάρουμε μια περίοδο 1 δευτερολέπτου. PWM 50% σημαίνει ότι σε αυτό το 1 δευτερόλεπτο, η ώρα ενεργοποίησης είναι 0,5 δευτερόλεπτα και ο χρόνος απενεργοποίησης είναι 0,5 δευτερόλεπτα. PWM του 80%; 0,2 δευτερόλεπτα μακριά, 0,8 δευτερόλεπτα ενεργοποιημένο! Εύκολα, σωστά; Στον ψηφιακό κόσμο: Με περίοδο 10 κύκλων ρολογιού, το 50% σημαίνει ότι για 5 κύκλους το LED είναι αναμμένο και για άλλους 5 κύκλους το LED είναι σβηστό. 20%? 2 κύκλοι ενεργοποιημένοι, 8 κύκλοι εκτός λειτουργίας. 45%? Λοιπόν, δεν μπορούμε πραγματικά να πάρουμε το 45%… Δεδομένου ότι η περίοδος είναι σε κύκλους και έχουμε μόνο 10 κύκλους, μπορούμε να διαιρέσουμε το PWM μόνο σε βήματα 10%. Αυτό σημαίνει ότι η εξέλιξη του πείρου πρέπει να είναι, για 50%: 1, 1, 1, 1, 1, 0, 0, 0, 0, 0; Even ακόμη και 1, 0, 1, 0, 1, 0, 1, 0, 1, 0. Στον προγραμματισμό μπορούμε να κάνουμε αυτήν την ακολουθία ενεργοποίησης και απενεργοποίησης ενός πίνακα. Για κάθε κύκλο που βγάζουμε στον πείρο η τιμή του δείκτη ήταν ο κύκλος. Είχα νόημα μέχρι τώρα; Αν θέλουμε να κάνουμε LED0 50%και LED1 20%, μπορούμε να προσθέσουμε και τις δύο συστοιχίες. Για οδήγηση του πείρου LED0: 1, 1, 1, 1, 1, 0, 0, 0, 0, 0; Για οδήγηση του πείρου LED1: 2, 2, 0, 0, 0, 0, 0, 0, 0, 0; Αποτέλεσμα LED0 +LED0: 3, 3, 1, 1, 1, 0, 0, 0, 0, 0. Εξάγοντας αυτήν την ακολουθία αριθμών στο IC επέκτασης θύρας, θα λάβουμε το LED0 με 50% φωτεινότητα και LED1 με 20% !! Απλό για 2 LED, σωστά; Τώρα πρέπει να το κάνουμε για 16 LED, για κάθε χρώμα! Για κάθε έναν από αυτούς τους πίνακες, έχουμε έναν συνδυασμό φωτεινότητας για κάθε χρώμα (16 LED) Κάθε φορά που θέλουμε έναν άλλο συνδυασμό χρωμάτων, πρέπει να αλλάζουμε αυτόν τον πίνακα.

Βήμα 5: Κάντε το εύκολο

Κάνοντας το εύκολο!
Κάνοντας το εύκολο!
Κάνοντας το εύκολο!
Κάνοντας το εύκολο!

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

Βήμα 6: Πρώτα πειράματα

Πρώτα Πειράματα
Πρώτα Πειράματα

Φόρτωση αρκετών βημάτων στον μικροελεγκτή και λαμβάνουμε κάτι τέτοιο: Συγγνώμη για την κακή ποιότητα των βίντεο! Καθόρισα τον μέγιστο αριθμό βημάτων μιας ακολουθίας σε 8 και περιόρισα τα άλματα PWM σε 20%. Αυτή η απόφαση βασίζεται στο είδος του ελέγχου που χρησιμοποιώ και πόσο EEPROM έχει το ATtiny2313. Σε αυτά τα πειράματα προσπάθησα να δω τι είδους αποτελέσματα θα μπορούσα να κάνω. Πρέπει να πω ότι είμαι ικανοποιημένος με το αποτέλεσμα!

Βήμα 7: Έλεγχος σε πραγματικό χρόνο

Έλεγχος σε πραγματικό χρόνο
Έλεγχος σε πραγματικό χρόνο
Έλεγχος σε πραγματικό χρόνο
Έλεγχος σε πραγματικό χρόνο
Έλεγχος σε πραγματικό χρόνο
Έλεγχος σε πραγματικό χρόνο

Όπως αναφέρθηκε στα προηγούμενα βήματα, θα ήθελα να επικοινωνήσω με όλους τους μικροελεγκτές που ελέγχουν τα LED στο δωμάτιό μου. Έτσι χρησιμοποίησα τη διαθέσιμη διεπαφή USART στο ATtiny2313 και τη σύνδεσα στον υπολογιστή μου. Έκανα επίσης ένα πρόγραμμα στο LabView για τον έλεγχο της γραμμής LED. Σε αυτό το πρόγραμμα είμαι σε θέση να πω στον μικροελεγκτή πόσο καιρό είναι η ακολουθία, το χρώμα κάθε LED και ο χρόνος μεταξύ των βημάτων μιας ακολουθίας. Στο επόμενο βίντεο θα να δείξω πώς μπορώ να αλλάξω το χρώμα των LED και να ορίσω ακολουθίες.

Βήμα 8: Συμπεράσματα

Συμπεράσματα
Συμπεράσματα
Συμπεράσματα
Συμπεράσματα
Συμπεράσματα
Συμπεράσματα
Συμπεράσματα
Συμπεράσματα

Νομίζω ότι ήμουν επιτυχής σε αυτήν την πρώτη προσέγγιση του έργου μου. Είμαι σε θέση να ελέγξω 16 LED RGB με λίγους πόρους και περιορισμούς. Είναι δυνατός ο έλεγχος κάθε LED ξεχωριστά, δημιουργώντας οποιαδήποτε επιθυμητή ακολουθία.

Μελλοντική δουλέια:

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

Για την επόμενη έκδοσή μου θα: -Αλλάξω τον μικροελεγκτή σε έναν με ADC -Αλλαγή του MCP23016 για κάποιο άλλο είδος σειριακής παράλληλης εξόδου που μπορεί να απορροφήσει περισσότερο ρεύμα από LEDs- Θα δημιουργήσω λογισμικό ανοιχτού κώδικα για επικοινωνία με τον μικροελεγκτή και ελέγξτε τα LED -Αναπτύξτε την επικοινωνία μεταξύ αρκετών μικροελεγκτών.

Έχετε κάποια πρόταση ή απορία; Or αφήστε ένα σχόλιο!

Τελικός στο Let It Glow!

Συνιστάται: