Πίνακας περιεχομένων:
- Βήμα 1: Υλικό για το BLE-LED-Stick
- Βήμα 2: Συναρμολόγηση ηλεκτρονικών συσκευών
- Βήμα 3: Πώς να δημιουργήσετε τις γραμματοσειρές;
- Βήμα 4: Λογισμικό ελέγχου BLE
- Βήμα 5: Πρώτη δοκιμή
- Βήμα 6: Επιλέξτε κινούμενα σχέδια
- Βήμα 7: Έλεγχος RGB
- Βήμα 8: Υπηρεσία Text_Animation και υπηρεσία μόνιμης αποθήκευσης
- Βήμα 9: Ξεκινήστε την εφαρμογή Android
- Βήμα 10: Γράψτε μηνύματα σε εικόνες
Βίντεο: LED POVstick με χαμηλή ενέργεια Bluetooth: 10 βήματα (με εικόνες)
2024 Συγγραφέας: John Day | [email protected]. Τελευταία τροποποίηση: 2024-01-30 08:36
Αυτό το διδακτικό σας δείχνει πώς να φτιάξετε ένα ραβδί lightwriter με LED RGB που είναι ελεγχόμενο μέσω του BLE από το τηλέφωνό σας!
Τώρα που ξεκινά η σκοτεινή περίοδος και πρέπει να τραβήξετε φωτογραφίες μεγάλης έκθεσης: Με αυτό το ραβδί μπορείτε να γράψετε την υπογραφή σας στην εικόνα, ή ένα κίνητρο, ή μια δήλωση αγάπης, έναν κωδικό QR, μια διεύθυνση διαδικτύου ή πολλά άλλα πράγματα…
Καλύπτει διάφορα θέματα ανάπτυξης:
- κατασκευή του υλικού
- προγραμματισμός του chipset Cypress BLE με C
- φτιάξτε τη δική σας εφαρμογή για να την ελέγξετε.
Βήμα 1: Υλικό για το BLE-LED-Stick
Για το μπαστούνι χρειάζεστε τα εξής:
- Μια μονάδα κυπαρισσιού BLE (CY8C4247LQI-BL583)
- a WS2812b RGB-LED-Strip (64LED από λωρίδα 144Led ανά μέτρο)
- μπαταρία ιόντων λιθίου με κατάλληλη θήκη (18650)
- ένα κουμπί
- ένα κομμάτι breadboard
Το υλικό του στικ είναι καθαρό.
Η μονάδα Cypress BLE είναι τοποθετημένη σε ένα κομμάτι ψωμιού και οι λυχνίες LED, το κουμπί και το τροφοδοτικό συνδέονται απλώς με αυτό το breadboard.
Όλα είναι στερεωμένα, κολλημένα ή βιδωμένα σε ένα μικρό κομμάτι ξύλινης λωρίδας, το οποίο το ίδιο εισάγεται εν μέρει σε έναν διαφανή σωλήνα πολυακρυλίου. Αυτό όμως δεν είναι απαραίτητο. Iθελα να τοποθετήσω τα πάντα μέσα σε ένα σωλήνα, αλλά δεν βρήκα κατάλληλο για τη μονάδα BLE και την μπαταρία που είναι αρκετά μεγάλες, σε σύγκριση με τα LED. Για μια πρώτη λήψη δεν χρειάζεστε τον ακρυλικό σωλήνα.
Βήμα 2: Συναρμολόγηση ηλεκτρονικών συσκευών
Αυτό το βήμα σας δείχνει πώς είναι τοποθετημένη η μονάδα BLE και ποιες ακίδες χρησιμοποιούνται για ποιο σκοπό.
Όπως και σε πολλά από τα Instructables μου, χρησιμοποίησα το Cypress BLE Development Kit. Οδηγός γρήγορης εκκίνησης CY8CKIT-042-BLE
Εάν θέλετε να χρησιμοποιήσετε τη μονάδα μόνοι σας, το μόνο που χρειάζεστε για να συνδέσετε είναι οι πηγές ενέργειας και οι χρησιμοποιούμενες ακίδες.
Για το έργο μας χρησιμοποιούμε μόνο τον πείρο 3.5 για να οδηγήσουμε τη λωρίδα LED. Αλλά φυσικά μπορείτε να το αλλάξετε με το PSoC Creator.
Όπως μπορείτε να δείτε στην εικόνα του PCB, πρόσθεσα καρφίτσες σε όλες τις γωνίες του τσιπ, αλλά παρέλειψα τον πείρο VREF.
Με αυτόν τον τρόπο η μονάδα είναι σωστά τοποθετημένη και είναι αδύνατο να γίνει εσφαλμένη σύνδεση της μονάδας.
Βήμα 3: Πώς να δημιουργήσετε τις γραμματοσειρές;
Λοιπόν, νομίζω ότι αυτό ήταν ένα από τα πιο ενδιαφέροντα προβλήματα που έλυσα κατά τη διάρκεια αυτού του έργου.
Φυσικά κάποιος θα μπορούσε απλώς να σχεδιάσει μια νέα γραμματοσειρά και να τη γράψει σε μια συστοιχία, αλλά αυτό είναι πραγματικά πολύ δουλειά!
Τι έκανα λοιπόν;
Iξερα ότι χρειαζόμουν κάποιο είδος μετατροπής ASCII σε hex-bitmap. Και ήμουν τυχερός, γιατί δεν ήμουν ο πρώτος με αυτό το πρόβλημα!:-)
Το λογισμικό "GLCD Font Generator" έκανε το σωστό:
Επειδή ήθελα να αξιοποιήσω στο έπακρο το LED-stick, εισήγαγα τη γραμματοσειρά σε αρκετά μεγάλο μέγεθος (~ 32pixel). Εάν χρησιμοποιείτε μόνο κεφαλαία γράμματα, δεν χρειάζεται να νοιάζεστε για τους ανερχόμενους, κάτι που θα αυξήσει το ορατό μέγεθος γραμματοσειράς σας κατά μερικά εικονοστοιχεία. Αλλά επέλεξα να χρησιμοποιήσω και κεφαλαία και μικρά γράμματα. (https://en.wikipedia.org/wiki/Ascender_%28typography%29)
Μόλις εισαγάγετε μια γραμματοσειρά στη γεννήτρια γραμματοσειρών GLCD, μπορείτε να επιλέξετε να την εξάγετε σε διαφορετικές μορφές.
Προσπάθησα να το εξάγω απευθείας σε κεφαλίδες που ήταν καλό, αλλά όχι τέλειο. Η εξαγωγή που προκύπτει είναι μια σειρά από σορτς (16bit) με byte-hex-τιμές για τις στήλες για κάθε χαρακτήρα του πρώτου χαρακτήρα 128-ascii. Όχι ακριβώς αυτό που ήθελα ή χρειαζόμουν…
Έτσι εισήγαγα τον πίνακα σε ένα ανοιχτό φύλλο εργασίας γραφείου calc. Στη συνέχεια, αφαίρεσα το "0x" σε τρεις από τις τέσσερις τιμές και τις συνέδεσα σε μία τιμή 32bit. Διορθώσα επίσης τη λανθασμένη ενδικότητα των μεμονωμένων byte.
Ο πίνακας που προκύπτει είναι ένας πίνακας Ν*Μ τιμών 32bit. M είναι ο αντίστοιχος χαρακτήρας και N οι στήλες που αποτελούν την εμφάνιση αυτού του γράμματος. Σε αυτό το πρώτο σχέδιο όλοι οι χαρακτήρες έχουν τον ίδιο αριθμό στηλών, που σημαίνει ότι όλα τα γράμματα είναι εξίσου ευρεία, όπως στη γνωστή γραμματοσειρά Courier. Μικροί χαρακτήρες όπως "i" ή "t" μοιάζουν σαν να έχουν χαθεί στο χώρο.
Ως εκ τούτου, πρόσθεσα μια νέα παράμετρο στην αρχή κάθε χαρακτήρα για να πω, πόσες στήλες έχει αυτός ο χαρακτήρας ή πόσο ευρύς είναι αυτός ο χαρακτήρας. Αυτό εξοικονομεί μνήμη και κάνει το κείμενο να φαίνεται καλύτερο!
Βήμα 4: Λογισμικό ελέγχου BLE
Η αρχή του λογισμικού BLE είναι πολύ εύκολη:
- Στην αρχή δεν κάνει τίποτα.
- Μέσω του BLE μπορείτε να ορίσετε διαφορετικά κινούμενα σχέδια ή κείμενα που θα εμφανίζονται.
- Μόλις πατήσετε το κουμπί, εμφανίζονται οι μεμονωμένες στήλες της κινούμενης εικόνας ή του κειμένου.
- Αφού εμφανιστεί το κείμενο, συνεχίζει να περιμένει ξανά.
Απλώς εισάγετε το έργο κυπαρισσιού στο PSoC-Creator και τροποποιήστε το αν θέλετε.
Το PSoC-4 δεν έχει τόση μνήμη RAM και φλας για να μπορεί να κρατήσει πλήρεις εικόνες RGB των γραμματοσειρών. Επομένως, χρειαζόμουν έναν τρόπο για να δημιουργήσω δυναμικά το περιεχόμενο LED από το κείμενο. Αυτό είναι αρκετά απλό, τίποτα το ιδιαίτερο μέχρι στιγμής. Από ένα κείμενο με πολλά γράμματα, ο αλγόριθμος παίρνει ένα γράμμα και το μετατρέπει σε έναν πίνακα χάρτη με μαύρο-άσπρο-bitmap. Στη συνέχεια, παίρνει κάθε στήλη αυτού του χάρτη ενός γράμματος και αντί για λευκό, γράφει το τρέχον χρώμα RGB στο πίνακα LED. Με αυτόν τον τρόπο μπορείτε να δημιουργήσετε μονόχρωμα κείμενα ή με μια πρόσθετη λειτουργία να αλλάξετε το χρώμα μετά από κάθε στήλη, κάθε γράμμα ή ακόμα και μετά από κάθε εικονοστοιχείο.
Ένα "γράμμα" μπορεί να αποθηκευτεί σε μία μεταβλητή byte, ενώ ένα ασπρόμαυρο bitmap πρέπει να αποθηκευτεί σε κάποιο είδος πίνακα.
Η δομή δεδομένων είναι η εξής:
String: newtext = "Γεια";
Γραμματοσειρά: uint32 χαρακτήρες = {FirstCharacter_ColumnCount, FirstCharacter_FirstColumn, FirstCharacter_SecondColumn,… SecondCharacter_ColumnCount, SecondCharacter_FirstColumn,…… LastCharacter_ColumnCount,… LastCharacter_LastColumn;… Χρώμα: uint32 rgbcolor = 0xHHBBGGRR; // Φωτεινότητα, Μπλε, Πράσινο, Κόκκινο το καθένα ως τιμή 8bit
Για να μετατρέψουμε μια συμβολοσειρά για εμφάνιση κάνουμε τα εξής:
getCharacter (): H (8bit)
getColumn (int i): στήλη (32bit) (i ξεκινά με την πρώτη στήλη, τρέχει στην τελευταία.) αν (bit στη στήλη είναι 1) Το LED στη λωρίδα έχει οριστεί σε χρώμα. Το LED-Strip Array είναι 64 LED με 32bit χρώματα το καθένα!
Και αν εμφανιστεί αυτή η στήλη συνεχίζουμε με την επόμενη.
Είναι τόσο εύκολο.
Βήμα 5: Πρώτη δοκιμή
Τώρα που τρέχει το λογισμικό, είμαστε έτοιμοι για τις πρώτες δοκιμές.
Ο ευκολότερος τρόπος για να δοκιμάσετε την ενσωματωμένη λειτουργία είναι με μια εφαρμογή δοκιμής χαμηλής κατανάλωσης Bluetooth. Όπως οι Εφαρμογές Nordic ή Cypress.
Nordic: nRF Connect for Mobile
Κυπαρίσσι: CySmart
Ξεκινήστε το Pov-Stick και παρατηρήστε πώς θα εμφανιστεί η επίδειξη συμβολοσειράς. Μόλις τελειώσει αυτό, είναι ώρα να ξεκινήσετε την εφαρμογή. Αναζητήστε τη συσκευή Povstick και κάντε κλικ στη σύνδεση.
Μόλις δημιουργηθεί η σύνδεση, η εφαρμογή ανακαλύπτει αυτόματα όλες τις καθορισμένες υπηρεσίες και χαρακτηριστικά.
Αναζητήστε την πρώτη υπηρεσία (θα πρέπει να ξεκινά με 0000ccce…). Κάντε κλικ σε αυτό για να το ανοίξετε και να εμφανίσετε το πρώτο χαρακτηριστικό (ξεκινά με 0000ccc1). Στη συνέχεια, πατήστε το κουμπί εγγραφής (ή μεταφόρτωσης) και γράψτε ένα 01 σε αυτό το χαρακτηριστικό.
Μόλις πατήσετε αποστολή, το POVstick θα ξεκινήσει το κινούμενο σχέδιο Color-Knight-rider, γνωστό και ως Larson Scanner, με αλλαγή χρωμάτων.
Συγχαρητήρια που στείλατε την πρώτη σας τιμή μέσω BLE!
Βήμα 6: Επιλέξτε κινούμενα σχέδια
Στο λογισμικό ορίσαμε ένα enum "e_Animation" με τις ακόλουθες τιμές:
typedef enum {Knightrider = 0, ColorKnightRider, Rainbowswirl, Valueswirl, WS_CandyCane, WS_CandyCane_2, WS_CandyCane_3, WS_Twinkle, WS_Icicle, WS_ColorWheel, RGB_Control, TextAnimax, TextAnimation, TextAnimax, TextAnimation, TextAnimax
Αυτές είναι οι τιμές που ισχύουν για το χαρακτηριστικό ccc1. Εάν θέλετε να δείτε το CandyCane-Animation, πρέπει να γράψετε ένα 4, 5 ή 6 σε αυτό το χαρακτηριστικό. Διαφέρουν στα χρώματα.
Δύο ειδικά κινούμενα σχέδια είναι το RGB_Control και το TextAnimation. Εάν επιλέξατε να τα ενεργοποιήσετε, το μπαστούνι προφανώς δεν θα εμφανίσει τίποτα στην αρχή. Σας προσφέρει όμως επιπλέον επιλογές για τον έλεγχο του stick με τις άλλες υπηρεσίες.
Βήμα 7: Έλεγχος RGB
Το RGB-Control μπορεί πολύ εύκολα να δοκιμαστεί με την εφαρμογή CySmart επειδή χρησιμοποίησα το ίδιο UUID για αυτό το χαρακτηριστικό όπως στο Cypress Demo.
Ξεκινήστε την εφαρμογή CySmart και συνδεθείτε στο Povstick. Πρώτα πρέπει να γράψετε ένα "0x0A" στο χαρακτηριστικό ccc1.
0x0A είναι η εξαγωνική τιμή για 10, η οποία είναι η κίνηση RGB-Control στο enum.
Στη συνέχεια, μπορείτε να μεταβείτε στον πίνακα ελέγχου RGB-LED στην εφαρμογή CySmart. Maybeσως πρέπει να επανεκκινήσετε την εφαρμογή για να φτάσετε σε αυτήν την οθόνη. Στη συνέχεια, μπορείτε να ελέγξετε το χρώμα όλων των LED με αυτό το διάγραμμα RGB.
Φυσικά, μπορείτε επίσης να γράψετε τις τιμές απευθείας στο χαρακτηριστικό.
Βήμα 8: Υπηρεσία Text_Animation και υπηρεσία μόνιμης αποθήκευσης
Αυτές οι υπηρεσίες δεν είναι τόσο εύκολο να δοκιμαστούν.
Τεχνικά, μπορείτε επίσης να χρησιμοποιήσετε τη σκανδιναβική εφαρμογή για αυτό, αλλά πρέπει να γνωρίζετε ποιες τιμές πρέπει να γράψετε σε ποιο χαρακτηριστικό.
Έτσι, αν θέλετε να τα δοκιμάσετε, θα πρέπει να ρίξετε μια ματιά στο έργο PSoC, ποιο χαρακτηριστικό έχει ποιο UUID.
Ένα σημαντικό είναι το χαρακτηριστικό "Set-Speed". Με αυτό το χαρακτηριστικό θα μπορούσατε να ελέγξετε πόσο γρήγορα είναι τα κινούμενα σχέδια.
Με το χαρακτηριστικό "Set_Animation" της PersistentStorageService μπορείτε να ελέγξετε τις γραμματοσειρές και τα χρώματα της συμβολοσειράς κειμένου. Οι έγκυρες τιμές ορίζονται σε "povanimation.h", δύο γραμματοσειρές "mono" και "serif" και μονόχρωμες και σε χρώμα ουράνιου τόξου. Οι τιμές 0 και 1 εμφανίζουν το κείμενο με σταθερό χρώμα, ελεγχόμενο μέσω του χαρακτηριστικού RGB_Control. Οι τιμές 2 και 3 αλλάζουν το χρώμα για κάθε στήλη και δίνουν στη συμβολοσειρά ένα ωραίο ουράνιο τόξο.
Το "Write_Text_Service" είναι κάπως διαφορετικό. Μπορείτε να γράψετε μια νέα συμβολοσειρά στη συσκευή γράφοντας μεμονωμένους χαρακτήρες στο χαρακτηριστικό "Set_Character". Σε κάθε εγγραφή, θα λαμβάνετε μια ειδοποίηση πίσω από το τρέχον μήκος της συμβολοσειράς.
Για να ξεκινήσετε μια νέα συμβολοσειρά, γράψτε "true" στο "Clear_String".
Αυτή δεν είναι η καλύτερη εφαρμογή, αλλά λειτουργεί για οποιαδήποτε συμβολοσειρά έως 250 χαρακτήρες χωρίς να αλλάξει το μέγεθος της MTU.
Η εμφάνιση μιας νέας συμβολοσειράς με έναρξη όταν πατηθεί το κουμπί στο Povstick.
Βήμα 9: Ξεκινήστε την εφαρμογή Android
Αυτό είναι ένα σημαντικό βήμα, αλλά πολύ πέρα από το πεδίο αυτού του οδηγού. Λυπάμαι για αυτό!
Σως να ανεβάσω τη δοκιμαστική εφαρμογή μου στο play store, αλλά δεν έχει ακόμη ολοκληρωθεί ή κυκλοφορήσει.
Βήμα 10: Γράψτε μηνύματα σε εικόνες
Λοιπόν, αυτός είναι ο λόγος για τον οποίο κατασκευάζω αυτό το povstick καταρχήν: Να γράφω μηνύματα σε εικόνες.
Χρειάζεστε τρίποδο, κάμερα με λειτουργία μεγάλης έκθεσης και καλή τοποθεσία.
Ρυθμίστε την κάμερα και ρυθμίστε τον χρόνο έκθεσης στα 10 δευτερόλεπτα για μια πρώτη δοκιμή.
Ενεργοποιήστε την απελευθέρωση και ξεκινήστε να περπατάτε μέσα από την εικόνα, ξεκινώντας την εμφάνιση κειμένου στο ραβδί.
Et Voila εκεί είμαστε!
Με τον σωστό συνδυασμό φωτεινότητας LED, διαφράγματος και χρόνου έκθεσης, μπορείτε ακόμη και να τραβήξετε φωτογραφίες την αυγή.
Οι τρεις εικόνες σε αυτό το βήμα δείχνουν ολόκληρο το φάσμα των δυνατοτήτων.
Στην πρώτη, τα LED είναι υπερβολικά εκτεθειμένα και δημιουργούν μια μαγική λάμψη. Αλλά αυτός είναι ο λόγος που οι αντανακλάσεις στο έδαφος είναι ορατές και το φόντο είναι μάλλον καλό.
Η δεύτερη εικόνα είναι εκτεθειμένη για τα LED, αλλά αυτό αφήνει το φόντο εντελώς μαύρο.
Και το τρίτο δείχνει μάλλον αμυδρά LED λίγο μετά το ηλιοβασίλεμα. Οι λυχνίες LED είναι τόσο φωτεινές όσο στις άλλες εικόνες, αλλά το περιβάλλον ήταν τόσο φωτεινό που έπρεπε να χρησιμοποιήσω χαμηλό άνοιγμα και χαμηλό ISO, έτσι ώστε τα LED να φαίνονται μάλλον σκοτεινά.
Δεύτερο Βραβείο στον Διαγωνισμό Make it Glow 2018
Συνιστάται:
Χαμηλή λυχνία διάθεσης πολυ πολυ LED: 9 βήματα (με εικόνες)
Low Poly LED Mood Lamp: Μια εξαιρετική προσθήκη σε κάθε γραφείο, ράφι ή τραπέζι! Το διακριτικό κουμπί που βρίσκεται στη βάση σας επιτρέπει να κάνετε ποδήλατο σε διάφορα μοτίβα φωτισμού LED. Δεν έχει σημασία αν θέλετε να χρησιμοποιήσετε τη λάμπα σας για σπουδές, χαλάρωση ή ακόμα και πάρτι … υπάρχουν σοβαρά
Ζωντανή ροή βίντεο 4G/5G HD από DJI Drone σε χαμηλή καθυστέρηση [3 βήματα]: 3 βήματα
Ζωντανή ροή βίντεο 4G/5G HD από DJI Drone σε χαμηλή καθυστέρηση [3 βήματα]: Ο ακόλουθος οδηγός θα σας βοηθήσει να λάβετε ζωντανές ροές βίντεο HD ποιότητας από σχεδόν οποιοδήποτε DJI drone. Με τη βοήθεια της εφαρμογής FlytOS Mobile και της εφαρμογής FlytNow Web, μπορείτε να ξεκινήσετε τη ροή βίντεο από το drone
Κολιέ κόσμημα με ηλιακή ενέργεια Blinky LED: 11 βήματα (με εικόνες)
Κολιέ κόσμημα με ηλιακή ενέργεια Blinky LED: Αυτό το διδακτικό είναι για καρδιά που λειτουργεί με ηλιακή ενέργεια και παλλόμενο κόκκινο LED. Μετρά περίπου 2 " κατά 1,25 ", συμπεριλαμβανομένης της καρτέλας USB. Έχει μια τρύπα στο πάνω μέρος του σκάφους, καθιστώντας το κρέμασμα εύκολο. Φορέστε το σαν κολιέ, σκουλαρίκια, κολλήστε σε καρφίτσα
Πώς να χρησιμοποιήσετε ένα ρολόι μπαταρίας με ηλιακή ενέργεια: 15 βήματα (με εικόνες)
Πώς να χρησιμοποιήσετε ένα ρολόι μπαταρίας με ηλιακή ενέργεια: Αυτή η συνεισφορά συνεχίζεται από μια προηγούμενη το 2016, (δείτε εδώ,), αλλά στην ενδιάμεση περίοδο υπήρξαν εξελίξεις σε εξαρτήματα που κάνουν τη δουλειά πολύ πιο εύκολη και βελτιώνονται οι επιδόσεις. Οι τεχνικές που φαίνονται εδώ θα επιτρέψουν την ηλιακή
Ηλιακή ενέργεια Techfashion - SolarCycle & Microsoft Garage: 9 βήματα (με εικόνες)
Ηλιακή τροφοδοσία Techfashion - SolarCycle & Microsoft Garage: Δεν έχω πάει ποτέ στο Burning Man, αλλά ίσως να έχω κάνει την τέλεια στολή για αυτό. Αυτό θα είναι ένα από τα ρούχα μου στο Maker Faire φέτος. Τι θα φορέσετε; Η κατασκευή αυτής της στολής περιλαμβάνει σχεδιασμό ρούχων, τρισδιάστατη εκτύπωση και ηλιακή ενέργεια, κατασκευή