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

DIY Control RGB LED Color Μέσω Bluetooth: 5 Βήματα
DIY Control RGB LED Color Μέσω Bluetooth: 5 Βήματα

Βίντεο: DIY Control RGB LED Color Μέσω Bluetooth: 5 Βήματα

Βίντεο: DIY Control RGB LED Color Μέσω Bluetooth: 5 Βήματα
Βίντεο: WS2812 [Programmable LED Strip] 2024, Ιούλιος
Anonim
DIY Control RGB LED Color Μέσω Bluetooth
DIY Control RGB LED Color Μέσω Bluetooth

Οι έξυπνοι λαμπτήρες έχουν αυξηθεί σε δημοτικότητα πρόσφατα και γίνονται σταθερά ένα βασικό μέρος της συσκευής έξυπνων σπιτιών. Οι έξυπνοι λαμπτήρες επιτρέπουν στον χρήστη να ελέγχει το φως του μέσω μιας ειδικής εφαρμογής στο έξυπνο τηλέφωνο του χρήστη. ο λαμπτήρας μπορεί να ενεργοποιηθεί και να απενεργοποιηθεί και να αλλάξει το χρώμα από τη διεπαφή της εφαρμογής. Σε αυτό το έργο, δημιουργήσαμε έναν έξυπνο ελεγκτή λαμπτήρων που μπορεί να ελεγχθεί από ένα χειροκίνητο κουμπί ή μια εφαρμογή για κινητά μέσω Bluetooth. Για να προσθέσουμε λίγη αίσθηση σε αυτό το έργο, προσθέσαμε ορισμένες δυνατότητες που επιτρέπουν στον χρήστη να επιλέξει ένα χρώμα φωτισμού από τη λίστα των χρωμάτων που περιλαμβάνονται στη διεπαφή της εφαρμογής. Μπορεί επίσης να ενεργοποιήσει ένα "auto mix" για να δημιουργήσει εφέ χρώματος και να αλλάξει τον φωτισμό κάθε μισό δευτερόλεπτο. Ο χρήστης μπορεί να δημιουργήσει το δικό του μείγμα χρωμάτων χρησιμοποιώντας μια λειτουργία PWM, η οποία μπορεί επίσης να χρησιμοποιηθεί ως dimmer για τα τρία βασικά χρώματα (κόκκινο, πράσινο, μπλε). Προσθέσαμε επίσης εξωτερικά κουμπιά στο κύκλωμα, έτσι ώστε ο χρήστης να μπορεί να μεταβεί στη χειροκίνητη λειτουργία και να αλλάξει το χρώμα του φωτός από ένα εξωτερικό κουμπί.

Αυτό το εγχειρίδιο αποτελείται από δύο ενότητες. ο σχεδιασμός GreenPAK and και ο σχεδιασμός εφαρμογών Android. Ο σχεδιασμός GreenPAK βασίζεται στη χρήση μιας διεπαφής UART για επικοινωνία. Το UART επιλέγεται επειδή υποστηρίζεται από τις περισσότερες μονάδες Bluetooth, καθώς και τα περισσότερα άλλα περιφερειακά, όπως μονάδες WIFI. Κατά συνέπεια, ο σχεδιασμός GreenPAK μπορεί να χρησιμοποιηθεί σε πολλούς τύπους συνδέσεων.

Για να χτίσουμε αυτό το έργο, θα χρησιμοποιήσουμε το SLG46620 CMIC, μια μονάδα Bluetooth και ένα LED RGB. Το GreenPAK IC θα είναι ο πυρήνας ελέγχου αυτού του έργου. λαμβάνει δεδομένα από μια μονάδα Bluetooth ή/και εξωτερικά κουμπιά και μετά ξεκινά την απαιτούμενη διαδικασία για την εμφάνιση του σωστού φωτισμού. Παράγει επίσης το σήμα PWM και το εξάγει στο LED. Το σχήμα 1 παρακάτω δείχνει το μπλοκ διάγραμμα.

Η συσκευή GreenPAK που χρησιμοποιείται σε αυτό το έργο περιέχει μια διεπαφή σύνδεσης SPI, μπλοκ PWM, FSM και πολλά άλλα χρήσιμα πρόσθετα μπλοκ σε ένα IC. Χαρακτηρίζεται επίσης από το μικρό του μέγεθος και τη χαμηλή κατανάλωση ενέργειας. Αυτό θα επιτρέψει στους κατασκευαστές να κατασκευάσουν ένα μικρό πρακτικό κύκλωμα χρησιμοποιώντας ένα μόνο IC, έτσι το κόστος παραγωγής θα ελαχιστοποιηθεί σε σύγκριση με παρόμοια συστήματα.

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

Μπορείτε να περάσετε από όλα τα βήματα για να καταλάβετε πώς έχει προγραμματιστεί το τσιπ GreenPAK για τον έλεγχο του χρώματος LED RGB μέσω Bluetooth. Ωστόσο, εάν θέλετε απλώς να προγραμματίσετε εύκολα το IC χωρίς να κατανοήσετε όλο το εσωτερικό κύκλωμα, κατεβάστε το λογισμικό GreenPAK για να δείτε το ήδη ολοκληρωμένο GreenPAK Design File. Συνδέστε το GreenPAK Development Kit στον υπολογιστή σας και πατήστε το πρόγραμμα για να δημιουργήσετε το προσαρμοσμένο IC για τον έλεγχο του χρώματος LED RGB μέσω Bluetooth.

Ο σχεδιασμός GreenPAK αποτελείται από τον δέκτη UART, τη μονάδα PWM και τη μονάδα ελέγχου που περιγράφονται στα παρακάτω βήματα.

Βήμα 1: Δέκτης UART

Δέκτης UART
Δέκτης UART

Πρώτον, πρέπει να ρυθμίσουμε τη μονάδα Bluetooth. Τα περισσότερα IC IC Bluetooth υποστηρίζουν το πρωτόκολλο UART για επικοινωνία. Το UART σημαίνει Universal Asynchronous Receiver / Transmitter. Το UART μπορεί να μετατρέψει δεδομένα εμπρός και πίσω μεταξύ παράλληλων και σειριακών μορφών. Περιλαμβάνει έναν σειριακό σε παράλληλο δέκτη και έναν παράλληλο σε σειριακό μετατροπέα, οι οποίοι χρονομετρούνται χωριστά.

Τα δεδομένα που λαμβάνονται στη μονάδα Bluetooth θα διαβιβαστούν στη συσκευή μας GreenPAK. Η κατάσταση αδράνειας για το Pin10 είναι Υ HIGHΗΛΗ. Κάθε χαρακτήρας που αποστέλλεται ξεκινά με ένα λογικό κομμάτι έναρξης LOW, ακολουθούμενο από έναν ρυθμιζόμενο αριθμό bit δεδομένων και ένα ή περισσότερα λογικά bit διακοπής.

Ο πομπός UART στέλνει 1 bit εκκίνησης, 8 bit δεδομένων και ένα bit STOP. Συνήθως, ο προεπιλεγμένος ρυθμός baud για μια μονάδα Bluetooth UART είναι 9600. Θα στείλουμε τα byte δεδομένων από το IC Bluetooth στο μπλοκ SPI του GreenPAK ™ SLG46620.

Δεδομένου ότι το μπλοκ GreenPAK SPI δεν διαθέτει στοιχείο ελέγχου bit START, STOP, θα χρησιμοποιήσουμε αυτά τα bits για να ενεργοποιήσουμε και να απενεργοποιήσουμε το σήμα ρολογιού SPI (SCLK). Όταν το Pin10 πηγαίνει ΧΑΜΗΛΟ, γνωρίζουμε ότι έχουμε λάβει ένα bit εκκίνησης, οπότε χρησιμοποιούμε τον ανιχνευτή πτώσης PDLY για να προσδιορίσουμε την έναρξη της επικοινωνίας. Αυτός ο ανιχνευτής ακμής πέφτει ρολόγια DFF0, το οποίο επιτρέπει στο σήμα SCLK να χρονομετρήσει το μπλοκ SPI.

Ο ρυθμός baud είναι 9600 bit ανά δευτερόλεπτο, οπότε η περίοδος SCLK πρέπει να είναι 1/9600 = 104 μs. Ως εκ τούτου, ορίσαμε τη συχνότητα OSC σε 2MHz και χρησιμοποιήσαμε το CNT0 ως διαχωριστή συχνότητας.

2 MHz-1 = 0,5 μs

(104 μs / 0,5 μs) - 1 = 207

Επομένως, θέλουμε η τιμή του μετρητή CNT0 να είναι 207. Για να διασφαλίσουμε ότι δεν θα χάσουμε κανένα στοιχείο, πρέπει να καθυστερήσουμε το ρολόι SPI κατά μισό κύκλο ρολογιού, έτσι ώστε το μπλοκ SPI να χρονομετρηθεί την κατάλληλη στιγμή. Αυτό το πετύχαμε χρησιμοποιώντας CNT6, 2-bit LUT1 και το εξωτερικό ρολόι του μπλοκ OSC. Η έξοδος του CNT6 δεν ανεβαίνει μέχρι τα 52 μs μετά το χρονομέτρηση του DFF0, που είναι το ήμισυ της περιόδου SCLK των 104 μs. Όταν το CNT6 είναι υψηλό, η πύλη 2-bit LUT1 AND επιτρέπει στο σήμα OSC 2MHz να περάσει στο EXT. Είσοδος CLK0, η έξοδος του οποίου συνδέεται με CNT0.

Βήμα 2: Μονάδα PWM

Μονάδα PWM
Μονάδα PWM

Το σήμα PWM δημιουργείται χρησιμοποιώντας PWM0 και μια σχετική γεννήτρια παλμών ρολογιού (CNT8/DLY8). Δεδομένου ότι το πλάτος του παλμού είναι ελεγχόμενο από τον χρήστη, χρησιμοποιούμε το FSM0 (το οποίο μπορεί να συνδεθεί με το PWM0) για την καταμέτρηση των δεδομένων χρήστη.

Στο SLG46620, το 8-bit FSM1 μπορεί να χρησιμοποιηθεί με PWM1 και PWM2. Η μονάδα Bluetooth πρέπει να είναι συνδεδεμένη, πράγμα που σημαίνει ότι πρέπει να χρησιμοποιηθεί η παράλληλη έξοδος SPI. Τα bits παράλληλης εξόδου SPI 0 έως 7 συνδυάζονται με DCMP1, DMCP2 και OUT1 και OUT0 του LF OSC CLK. Το PWM0 αποκτά την έξοδό του από το 16-bit FSM0. Αν μείνει αναλλοίωτο αυτό προκαλεί υπερφόρτωση του πλάτους παλμού. Για να περιοριστεί η τιμή του μετρητή στα 8 bit προστίθεται άλλο FSM. Το FSM1 χρησιμοποιείται ως δείκτης για να μάθετε πότε ο μετρητής φτάνει είτε στο 0 είτε στο 255. Το FSM0 χρησιμοποιείται για τη δημιουργία του παλμού PWM. Τα FSM0 και FSM1 πρέπει να συγχρονιστούν. Δεδομένου ότι και οι δύο FSM διαθέτουν προκαθορισμένες επιλογές ρολογιού, οι CNT1 και CNT3 χρησιμοποιούνται ως διαμεσολαβητές για να περάσουν το CLK και στους δύο FSM. Οι δύο μετρητές έχουν οριστεί στην ίδια τιμή, η οποία είναι 25 για αυτό το Instructable. Μπορούμε να αλλάξουμε το ρυθμό μεταβολής της τιμής PWM αλλάζοντας αυτές τις τιμές μετρητή.

Η τιμή των FSM αυξάνεται και μειώνεται με τα σήματα '+' και '-', τα οποία προέρχονται από την παράλληλη έξοδο SPI.

Βήμα 3: Μονάδα ελέγχου

Μονάδα ελέγχου
Μονάδα ελέγχου

Μέσα στη μονάδα ελέγχου, το ληφθέν byte μεταφέρεται από τη μονάδα Bluetooth στην παράλληλη έξοδο SPI και στη συνέχεια μεταφέρεται στις σχετικές λειτουργίες. Αρχικά, οι έξοδοι PWM CS1 και PWM CS2 θα ελεγχθούν για να διαπιστωθεί εάν το μοτίβο PWM είναι ενεργοποιημένο ή όχι. Εάν είναι ενεργοποιημένο, τότε θα καθορίσει ποιο κανάλι πρόκειται να εξάγει το PWM μέσω LUT4, LUT6 και LUT7.

Τα LUT9, LUT11 και LUT14 είναι υπεύθυνα για τον έλεγχο της κατάστασης των άλλων δύο LED. LUT10, LUT12 και LUT13 ελέγξτε εάν το κουμπί Manual είναι ενεργοποιημένο ή όχι. Εάν η χειροκίνητη λειτουργία είναι ενεργή, τότε οι έξοδοι RGB λειτουργούν σύμφωνα με τις καταστάσεις εξόδου D0, D1, D2, οι οποίες αλλάζουν κάθε φορά που πατάτε το κουμπί Color. Αλλάζει με την ανοδική άκρη που προέρχεται από το CNT9, το οποίο χρησιμοποιείται ως ανυψωτικό ανερχόμενου άκρου.

Το pin 20 έχει ρυθμιστεί ως είσοδος και χρησιμοποιείται για εναλλαγή μεταξύ χειροκίνητου και ελέγχου Bluetooth.

Εάν η χειροκίνητη λειτουργία είναι απενεργοποιημένη και η λειτουργία αυτόματης ανάμειξης είναι ενεργοποιημένη, τότε το χρώμα αλλάζει κάθε 500ms με την ανερχόμενη άκρη να προέρχεται από το CNT7. Ένα 4-bit LUT1 χρησιμοποιείται για την αποτροπή της κατάστασης '000' για το D0 D1 D2, αφού αυτή η κατάσταση προκαλεί την απενεργοποίηση της λυχνίας κατά τη λειτουργία Auto mixer.

Εάν δεν είναι ενεργοποιημένη η χειροκίνητη λειτουργία, η λειτουργία PWM και η λειτουργία αυτόματης ανάμειξης, τότε οι κόκκινες, πράσινες και μπλε εντολές SPI ρέουν στους ακροδέκτες 12, 13 και 14, οι οποίοι έχουν διαμορφωθεί ως έξοδοι και συνδέονται με την εξωτερική λυχνία LED RGB.

Τα DFF1, DFF2 και DFF3 χρησιμοποιούνται για τη δημιουργία ενός δυαδικού μετρητή 3-bit. Η τιμή του μετρητή αυξάνεται με παλμούς CNT7 που περνούν από το P14 στη λειτουργία Auto mixer ή από σήματα που προέρχονται από το κουμπί Color (PIN3) στη χειροκίνητη λειτουργία.

Βήμα 4: Εφαρμογή Android

Εφαρμογή Android
Εφαρμογή Android
Εφαρμογή Android
Εφαρμογή Android
Εφαρμογή Android
Εφαρμογή Android
Εφαρμογή Android
Εφαρμογή Android

Σε αυτήν την ενότητα, πρόκειται να δημιουργήσουμε μια εφαρμογή Android που θα παρακολουθεί και θα εμφανίζει τις επιλογές ελέγχου του χρήστη. Η διεπαφή αποτελείται από δύο ενότητες: η πρώτη ενότητα περιέχει ένα σύνολο κουμπιών που έχουν προκαθορισμένα χρώματα, έτσι ώστε όταν πατηθεί οποιοδήποτε από αυτά τα κουμπιά, ανάβει μια λυχνία LED του ίδιου αντίστοιχου χρώματος. Το δεύτερο τμήμα (τετράγωνο MIX) δημιουργεί ένα μεικτό χρώμα για τον χρήστη.

Στην πρώτη ενότητα, ο χρήστης επιλέγει την ακίδα LED από την οποία θέλει να περάσει το σήμα PWM. το σήμα PWM μπορεί να περάσει μόνο σε ένα pin κάθε φορά. Η κάτω λίστα ελέγχει τα άλλα δύο χρώματα λογικά ενεργοποίηση/απενεργοποίηση κατά τη λειτουργία PWM.

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

Δημιουργήσαμε την εφαρμογή χρησιμοποιώντας τον ιστότοπο εφευρέτη εφαρμογών MIT. Είναι ένας ιστότοπος που επιτρέπει τη δημιουργία εφαρμογών Android χωρίς προηγούμενη εμπειρία λογισμικού χρησιμοποιώντας γραφικά μπλοκ λογισμικού.

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

Τα κουμπιά στη διεπαφή χρήστη συνδέονται με εντολές λογισμικού: όλες οι εντολές που θα στείλει η εφαρμογή μέσω Bluetooth θα είναι σε μορφή byte και κάθε bit είναι υπεύθυνο για μια συγκεκριμένη λειτουργία. Ο Πίνακας 1 δείχνει τη μορφή των πλαισίων εντολών που αποστέλλονται στο GreenPAK.

Τα τρία πρώτα bits, B0, B1 και B2, θα διατηρήσουν την κατάσταση των RGB LED σε λειτουργία άμεσου ελέγχου με τα κουμπιά των προκαθορισμένων χρωμάτων. Έτσι, όταν κάνετε κλικ σε οποιοδήποτε από αυτά, θα αποσταλεί η αντίστοιχη τιμή του κουμπιού, όπως φαίνεται στον Πίνακα 2.

Τα δυαδικά ψηφία B3 και B4 κρατούν τις εντολές "+" και "-", οι οποίες είναι υπεύθυνες για την αύξηση και τη μείωση του πλάτους του παλμού. Όταν πατηθεί το κουμπί, η τιμή bit θα είναι 1, και όταν απελευθερωθεί το κουμπί η τιμή bit θα είναι 0.

Τα δυαδικά ψηφία B5 και B6 είναι υπεύθυνα για την επιλογή του πείρου (χρώματος) από το οποίο θα περάσει το σήμα PWM: οι χρωματικές ονομασίες αυτών των δυαδικών ψηφίων φαίνονται στον πίνακα 3. Το τελευταίο bit, B7, είναι υπεύθυνο για την ενεργοποίηση του αυτόματου μίξερ.

Το Σχήμα 6 και το Σχήμα 7 δείχνουν τη διαδικασία σύνδεσης κουμπιών με μπλοκ προγραμματισμού που είναι υπεύθυνα για την αποστολή των προηγούμενων τιμών.

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

Το σχήμα 8 παρακάτω δείχνει το διάγραμμα κυκλώματος ανώτερου επιπέδου.

Βήμα 5: Αποτελέσματα

Ο ελεγκτής δοκιμάστηκε με επιτυχία και η ανάμειξη χρωμάτων, μαζί με άλλα χαρακτηριστικά, αποδείχθηκε ότι λειτουργεί σωστά.

συμπέρασμα

Σε αυτό το Instructable, δημιουργήθηκε ένα κύκλωμα έξυπνης λάμπας για ασύρματο έλεγχο από μια εφαρμογή Android. Το GreenPAK CMIC που χρησιμοποιήθηκε σε αυτό το έργο βοήθησε επίσης στη συντόμευση και ενσωμάτωση αρκετών βασικών εξαρτημάτων για έλεγχο φωτός σε ένα μικρό IC.

Συνιστάται: