- Adafruit 5X8 NeoPixel Shield για Arduino
- Κατανόηση της διαδικασίας επικοινωνίας μεταξύ της εφαρμογής Blynk και του Arduino
- Απαιτούμενα στοιχεία
- Adafruit RGB LED Shield και Arduino - Σύνδεση υλικού
- Διαμόρφωση της εφαρμογής Blynk
- Arduino Code Controlling Adafruit WS2812B RGB LED Shield
- Μεταφόρτωση του Κώδικα στο Arduino Board
Κατά τη διάρκεια μερικών ετών, τα LED RGB γίνονται δημοφιλή μέρα με τη μέρα λόγω του όμορφου χρώματος, της φωτεινότητας και των δελεαστικών εφέ φωτισμού. Γι 'αυτό χρησιμοποιείται σε πολλά μέρη ως διακοσμητικό αντικείμενο, ένα παράδειγμα μπορεί να είναι το σπίτι ή ένας χώρος γραφείου. Επίσης, μπορούμε να χρησιμοποιήσουμε τα φώτα RGB στην κουζίνα και επίσης σε μια κονσόλα παιχνιδιών. Είναι επίσης υπέροχοι σε παιδότοπο ή υπνοδωμάτια όσον αφορά τον φωτισμό της διάθεσης. Προηγουμένως, χρησιμοποιήσαμε τα WS2812B NeoPixel LED και τον ARM Microcontroller για να δημιουργήσουμε ένα Music Spectrum Visualizer, οπότε ελέγξτε αν αυτό σας ενδιαφέρει.
Γι 'αυτό σε αυτό το έργο πρόκειται να χρησιμοποιήσουμε ένα Neopixel RGB LED matrix ασπίδα, Arduino και Blynk εφαρμογή για να παράγουμε πολλά συναρπαστικά εφέ κινούμενων σχεδίων και χρώματα τα οποία θα μπορέσουμε να ελέγξουμε με την εφαρμογή Blynk. Ας ξεκινήσουμε λοιπόν !!!
Adafruit 5X8 NeoPixel Shield για Arduino
Το Arduino συμβατό NeoPixel Shield περιέχει σαράντα ξεχωριστά διευθυνσιοδοτούμενα LED RGB, το καθένα διαθέτει ενσωματωμένο πρόγραμμα οδήγησης WS2812b, το οποίο είναι διατεταγμένο σε μήτρα 5 × 8 για να σχηματίσει αυτό το NeoPixel Shield. Πολλαπλές ασπίδες NeoPixel μπορούν επίσης να συνδεθούν για να σχηματίσουν μια μεγαλύτερη ασπίδα αν αυτό απαιτείται. Για τον έλεγχο των LED RGB, απαιτείται ένας μόνο ακροδέκτης Arduino, οπότε σε αυτό το σεμινάριο, αποφασίσαμε να χρησιμοποιήσουμε τον ακροδέκτη 6 του Arduino για να το κάνουμε.
Στην περίπτωσή μας, τα LED τροφοδοτούνται από τον ενσωματωμένο πείρο 5V του Arduino, ο οποίος επαρκεί για την τροφοδοσία περίπου "το ένα τρίτο των LED" σε πλήρη φωτεινότητα. Εάν πρέπει να τροφοδοτήσετε περισσότερα LED, τότε μπορείτε να μειώσετε το ενσωματωμένο ίχνος και να χρησιμοποιήσετε μια εξωτερική τροφοδοσία 5v για να τροφοδοτήσετε την ασπίδα χρησιμοποιώντας τον εξωτερικό τερματικό 5V.
Κατανόηση της διαδικασίας επικοινωνίας μεταξύ της εφαρμογής Blynk και του Arduino
Η μήτρα LED 8 * 5 RGB που χρησιμοποιείται εδώ διαθέτει σαράντα RGB LED με δυνατότητα ατομικής διεύθυνσης με βάση το πρόγραμμα οδήγησης WS2812B. Διαθέτει έλεγχο χρωμάτων 24 bit και 16,8 εκατομμύρια χρώματα ανά pixel. Μπορεί να ελεγχθεί με τη μεθοδολογία «Έλεγχος ενός καλωδίου». Αυτό σημαίνει ότι μπορούμε να ελέγξουμε ολόκληρο το pixel LED χρησιμοποιώντας έναν μόνο πείρο ελέγχου. Ενώ εργάζομαι με τις λυχνίες LED, έχω περάσει από το φύλλο δεδομένων αυτών των LED όπου βρίσκω ότι το εύρος τάσης λειτουργίας της ασπίδας είναι 4 V έως 6 V και η τρέχουσα κατανάλωση ανακαλύπτεται 50 mA ανά LED στα 5 V με κόκκινο, πράσινο, και μπλε σε πλήρη φωτεινότητα. Έχει προστασία αντίστροφης τάσης στους εξωτερικούς πείρους τροφοδοσίας και ένα κουμπί Reset στο Shield για επαναφορά του Arduino. Διαθέτει επίσης έναν πείρο εισόδου εξωτερικής ισχύος για LED εάν δεν υπάρχει επαρκής ποσότητα ισχύος μέσω εσωτερικών κυκλωμάτων.
Όπως φαίνεται στο σχηματικό διάγραμμα παραπάνω, πρέπει να πραγματοποιήσουμε λήψη και εγκατάσταση της εφαρμογής Blynkστο smartphone μας όπου μπορούν να ελεγχθούν οι παράμετροι όπως το χρώμα, η φωτεινότητα. Μετά τη ρύθμιση των παραμέτρων, εάν συμβούν τυχόν αλλαγές στην εφαρμογή, είναι στο σύννεφο Blynk όπου ο υπολογιστής μας είναι επίσης συνδεδεμένος και έτοιμος να λάβει τα ενημερωμένα δεδομένα. Το Arduino Uno συνδέεται στον υπολογιστή μας μέσω καλωδίου USB με ανοιχτή μια θύρα επικοινωνίας, με αυτήν τη θύρα επικοινωνίας (θύρα COM), μπορείτε να ανταλλάξετε δεδομένα μεταξύ του σύννεφου Blynk και του Arduino UNO. Ο υπολογιστής ζητά δεδομένα από το σύννεφο Blynk σε σταθερά χρονικά διαστήματα και όταν λαμβάνονται ενημερωμένα δεδομένα, τα μεταφέρει στο Arduino και λαμβάνει αποφάσεις που καθορίζονται από τον χρήστη, όπως ο έλεγχος της φωτεινότητας και των χρωμάτων LED RGB. Η ασπίδα RGB LED τοποθετείται στο Arduino LED και συνδέεται μέσω ενός μόνο πείρου δεδομένων για επικοινωνία, από προεπιλογή συνδέεται μέσω του πείρου D6 του Arduino.Τα σειριακά δεδομένα που αποστέλλονται από το Arduino UNO αποστέλλονται στο Neopixel shied το οποίο στη συνέχεια αντανακλάται στη μήτρα LED.
Απαιτούμενα στοιχεία
- Arduino UNO
- 8 * 5 RGB LED Matrix ασπίδα
- Καλώδιο USB A / B για το Arduino UNO
- Φορητός / Η / Υ
Adafruit RGB LED Shield και Arduino - Σύνδεση υλικού
Οι WS2812B Neopixel LED έχουν τρεις ακίδες, μία για δεδομένα και άλλες δύο χρησιμοποιούνται για τροφοδοσία, αλλά αυτή η συγκεκριμένη ασπίδα Arduino καθιστά τη σύνδεση υλικού πολύ απλή, το μόνο που πρέπει να κάνουμε είναι να τοποθετήσουμε τη μήτρα LED Neopixel στην κορυφή του Arduino UNO. Στην περίπτωσή μας, το LED τροφοδοτείται από τον προεπιλεγμένο Arduino 5V Rail. Αφού τοποθετήσετε το Neopixel Shield, η εγκατάσταση μοιάζει παρακάτω:
Διαμόρφωση της εφαρμογής Blynk
Το Blynk είναι μια εφαρμογή που μπορεί να τρέξει σε συσκευές Android και IOS για τον έλεγχο τυχόν συσκευών και συσκευών IoT χρησιμοποιώντας τα smartphone μας. Πρώτα απ 'όλα, πρέπει να δημιουργηθεί ένα γραφικό περιβάλλον εργασίας χρήστη (GUI) για τον έλεγχο της μήτρας RGB LED. Η εφαρμογή θα στείλει όλες τις επιλεγμένες παραμέτρους από το GUI στο Blynk Cloud. Στην ενότητα δέκτη, έχουμε Arduino συνδεδεμένο στον υπολογιστή μέσω ενός σειριακού καλωδίου επικοινωνίας. Ως εκ τούτου, ο υπολογιστής ζητά δεδομένα από το σύννεφο Blynk και αυτά τα δεδομένα αποστέλλονται στο Arduino για την απαραίτητη επεξεργασία. Ας ξεκινήσουμε λοιπόν με την εγκατάσταση της εφαρμογής Blynk.
Πριν από τη ρύθμιση, πραγματοποιήστε λήψη της εφαρμογής Blynk από το Google Play store (οι χρήστες IOS μπορούν να πραγματοποιήσουν λήψη από το App Store). Μετά την εγκατάσταση, εγγραφείτε χρησιμοποιώντας το αναγνωριστικό email και τον κωδικό πρόσβασής σας.
Δημιουργία νέου έργου:
Μετά την επιτυχή εγκατάσταση, ανοίξτε την εφαρμογή και εκεί θα εμφανιστεί μια οθόνη με την επιλογή " Νέο έργο ". Κάντε κλικ σε αυτό και θα εμφανιστεί μια νέα οθόνη, όπου πρέπει να ορίσουμε τις παραμέτρους όπως το όνομα του έργου, τον πίνακα και τον τύπο σύνδεσης. Στο έργο μας, επιλέξτε τη συσκευή ως " Arduino UNO " και τον τύπο σύνδεσης ως " USB " και κάντε κλικ στο " Δημιουργία".
Μετά την επιτυχή δημιουργία του Έργου, θα λάβουμε ένα πιστοποιητικό ταυτότητας στην καταχωρισμένη αλληλογραφία μας. Αποθηκεύστε το αναγνωριστικό ταυτότητας για μελλοντική αναφορά.
Δημιουργία του γραφικού περιβάλλοντος εργασίας χρήστη (GUI):
Ανοίξτε το έργο στο Blynk, κάντε κλικ στο σύμβολο "+" όπου θα λάβουμε τα widget που μπορούμε να χρησιμοποιήσουμε στο έργο μας. Στην περίπτωσή μας, χρειαζόμαστε ένα RGB Color Picker που αναφέρεται ως "zeRGBa" όπως φαίνεται παρακάτω.
Ρύθμιση των Widgets:
Αφού σύρετε τα widget στο έργο μας, τώρα πρέπει να ορίσουμε τις παραμέτρους του που χρησιμοποιούνται για την αποστολή των τιμών RGB χρώματος στο Arduino UNO.
Κάντε κλικ στο ZeRGBa, τότε θα λάβουμε μια οθόνη με το όνομα ZeRGBa. Στη συνέχεια, ορίστε την επιλογή Εξόδου σε " Συγχώνευση " και ορίστε τον πείρο σε "V2" που φαίνεται στην παρακάτω εικόνα.
Arduino Code Controlling Adafruit WS2812B RGB LED Shield
Μετά την ολοκλήρωση της σύνδεσης υλικού, ο κωδικός πρέπει να φορτωθεί στο Arduino. Η αναλυτική επεξήγηση του κώδικα φαίνεται παρακάτω.
Πρώτον, συμπεριλάβετε όλες τις απαιτούμενες βιβλιοθήκες. Ανοίξτε το Arduino IDE και, στη συνέχεια, μεταβείτε στην καρτέλα Σκίτσο και κάντε κλικ στην επιλογή Συμπερίληψη βιβλιοθήκης-> Διαχείριση βιβλιοθηκών . Στη συνέχεια, αναζητήστε το Blynk στο πλαίσιο αναζήτησης και, στη συνέχεια, πραγματοποιήστε λήψη και εγκατάσταση του πακέτου Blynk για το Arduino UNO.
Εδώ χρησιμοποιείται η βιβλιοθήκη " Adafruit_NeoPixel.h " για τον έλεγχο του RGB LED Matrix. Για να το συμπεριλάβετε, μπορείτε να κατεβάσετε τη βιβλιοθήκη Adafruit_NeoPixel από τον δεδομένο σύνδεσμο. Μόλις το καταλάβετε, μπορείτε να το συμπεριλάβετε με την επιλογή Συμπερίληψη βιβλιοθήκης ZIP.
# καθορισμός BLYNK_PRINT DebugSerial #include #include
Στη συνέχεια, ορίζουμε τον αριθμό των LED, που απαιτείται για τη μήτρα LED μας, επίσης ορίζουμε τον αριθμό pin που χρησιμοποιείται για τον έλεγχο των παραμέτρων LED.
# καθορισμός PIN 6 # καθορισμός NUM_PIXELS 40
Στη συνέχεια, πρέπει να τοποθετήσουμε το αναγνωριστικό ελέγχου ταυτότητας που αναβοσβήνει σε έναν πίνακα εντολών , τον οποίο έχουμε αποθηκεύσει νωρίτερα.
char auth = "HoLYSq-SGJAafQUQXXXXXXXX";
Εδώ χρησιμοποιούνται σειριακές καρφίτσες λογισμικού ως κονσόλα εντοπισμού σφαλμάτων. Έτσι, οι καρφίτσες Arduino ορίζονται ως σειριακή εντοπισμού σφαλμάτων παρακάτω.
#περιλαμβάνω
Μέσα στη ρύθμιση, η σειριακή επικοινωνία αρχικοποιείται χρησιμοποιώντας τη λειτουργία Serial.begin , το blynk συνδέεται χρησιμοποιώντας το Blynk.begin και χρησιμοποιώντας pixels.begin (), το LED Matrix αρχικοποιείται.
άκυρη ρύθμιση () { DebugSerial.begin (9600); pixels.begin (); Serial.begin (9600); Blynk.begin (Σειριακό, auth); }
Μέσα στο βρόχο () , χρησιμοποιήσαμε το Blynk.run () , το οποίο ελέγχει για εισερχόμενες εντολές από το blynk GUI και εκτελεί τις λειτουργίες ανάλογα.
void loop () { Blynk.run (); }
Στο τελικό στάδιο, οι παράμετροι που στάλθηκαν από την αίτηση Blynk πρέπει να ληφθούν και να υποβληθούν σε επεξεργασία. Σε αυτήν την περίπτωση, οι παράμετροι εκχωρήθηκαν σε έναν εικονικό πείρο "V2" όπως συζητήθηκε προηγουμένως στην ενότητα εγκατάστασης. Η συνάρτηση BLYNK_WRITE είναι μια ενσωματωμένη συνάρτηση που καλείται κάθε φορά που αλλάζει η κατάσταση / τιμή του σχετικού εικονικού πείρου. μπορούμε να τρέξουμε κώδικα μέσα σε αυτήν τη συνάρτηση όπως κάθε άλλη λειτουργία Arduino.
Εδώ γράφεται η συνάρτηση BLYNK_WRITE για έλεγχο των εισερχόμενων δεδομένων στον εικονικό πείρο V2. Όπως φαίνεται στην ενότητα ρύθμισης Blink, τα δεδομένα έγχρωμων εικονοστοιχείων συγχωνεύτηκαν και αντιστοιχίστηκαν στον πείρο V2. Επομένως, πρέπει επίσης να αποσυνδεθούμε ξανά μετά την αποκωδικοποίηση. Επειδή για τον έλεγχο της μήτρας pixel LED, χρειαζόμαστε και τα 3 μεμονωμένα δεδομένα εικονοστοιχείων χρώματος, όπως το κόκκινο, το πράσινο και το μπλε. Όπως φαίνεται στον παρακάτω κώδικα, διαβάστηκαν τρία ευρετήρια του πίνακα όπως το param.asInt () για να ληφθεί η τιμή του κόκκινου χρώματος. Ομοίως, όλες οι άλλες δύο τιμές ελήφθησαν και αποθηκεύτηκαν σε 3 μεμονωμένες μεταβλητές. Στη συνέχεια, αυτές οι τιμές αντιστοιχίζονται στο Pixel matrix χρησιμοποιώντας τη λειτουργία pixels.setPixelColor όπως φαίνεται στον παρακάτω κώδικα.
Εδώ, η λειτουργία pixels.setBrightness () χρησιμοποιείται για τον έλεγχο της φωτεινότητας και η λειτουργία pixels.show () χρησιμοποιείται για την εμφάνιση του καθορισμένου χρώματος στο Matrix.
BLYNK_WRITE (V2) { int r = param.asInt (); int g = param.asInt (); int b = param.asInt (); pixels.clear (); pixels.setBrightness (20); για (int i = 0; i <= NUM_PIXELS; i ++) { pixels.setPixelColor (i, pixels.Color (r, g, b)); } pixels.show (); }
Μεταφόρτωση του Κώδικα στο Arduino Board
Πρώτον, πρέπει να επιλέξουμε το PORT του Arduino μέσα στο Arduino IDE, και στη συνέχεια πρέπει να ανεβάσουμε τον κωδικό στο Arduino UNO. Μετά από μια επιτυχημένη μεταφόρτωση, σημειώστε τον αριθμό θύρας που θα χρησιμοποιηθεί για τη ρύθμιση σειριακής επικοινωνίας.
Μετά από αυτό, βρείτε το φάκελο σεναρίων της βιβλιοθήκης Blynk στον υπολογιστή σας. Εγκαθίσταται όταν εγκαθιστάτε τη βιβλιοθήκη, η δική μου ήταν, "C: \ Users \ PC_Name \ Documents \ Arduino \ libraries \ Blynk \ scripts"
Στο φάκελο σεναρίου, πρέπει να υπάρχει ένα αρχείο με το όνομα "blynk-ser.bat", το οποίο είναι ένα αρχείο δέσμης που χρησιμοποιείται για σειριακή επικοινωνία, το οποίο πρέπει να επεξεργαστούμε με το σημειωματάριο. Ανοίξτε το αρχείο με το σημειωματάριο και αλλάξτε τον αριθμό θύρας στον αριθμό θύρας Arduino που έχετε σημειώσει στο τελευταίο βήμα.
Μετά την επεξεργασία, αποθηκεύστε το αρχείο και εκτελέστε το αρχείο δέσμης κάνοντας διπλό κλικ πάνω του. Στη συνέχεια, πρέπει να βλέπετε ένα παράθυρο όπως φαίνεται παρακάτω:
Σημείωση: Εάν δεν μπορείτε να δείτε αυτό το παράθυρο που εμφανίζεται παραπάνω και σας ζητηθεί να επανασυνδεθείτε, τότε αυτό μπορεί να οφείλεται στο σφάλμα σύνδεσης του υπολογιστή με την ασπίδα Arduino. Σε αυτήν την περίπτωση, ελέγξτε τη σύνδεση Arduino με τον υπολογιστή. Μετά από αυτό, ελέγξτε εάν ο αριθμός θύρας COM εμφανίζεται στο Arduino IDE ή όχι. Εάν εμφανίζει την έγκυρη θύρα COM, τότε είναι έτοιμο να προχωρήσει. Θα πρέπει να εκτελέσετε ξανά το αρχείο δέσμης.
Τελική επίδειξη:
Τώρα, ήρθε η ώρα να δοκιμάσετε το κύκλωμα και τη λειτουργικότητά του. Ανοίξτε την εφαρμογή Blynk και ανοίξτε το GUI και κάντε κλικ στο κουμπί Αναπαραγωγή. Μετά από αυτό, μπορείτε να επιλέξετε οποιοδήποτε από τα χρώματα που θέλετε να αντικατοπτρίζονται στο LED Matrix. Όπως φαίνεται παρακάτω, στην περίπτωσή μου επέλεξα το κόκκινο και το μπλε χρώμα, εμφανίζεται στο Matrix.
Ομοίως, μπορείτε επίσης να προσπαθήσετε να δημιουργήσετε διαφορετικά κινούμενα σχέδια χρησιμοποιώντας αυτούς τους πίνακες LED προσαρμόζοντας λίγο την κωδικοποίηση.