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

LED POVstick με χαμηλή ενέργεια Bluetooth: 10 βήματα (με εικόνες)
LED POVstick με χαμηλή ενέργεια Bluetooth: 10 βήματα (με εικόνες)

Βίντεο: LED POVstick με χαμηλή ενέργεια Bluetooth: 10 βήματα (με εικόνες)

Βίντεο: LED POVstick με χαμηλή ενέργεια Bluetooth: 10 βήματα (με εικόνες)
Βίντεο: Mstick, Air Display Preview # T3-1 Smart LED Light POV by MOLT 2024, Νοέμβριος
Anonim
LED POVstick με χαμηλή ενέργεια Bluetooth
LED POVstick με χαμηλή ενέργεια Bluetooth

Αυτό το διδακτικό σας δείχνει πώς να φτιάξετε ένα ραβδί lightwriter με LED RGB που είναι ελεγχόμενο μέσω του BLE από το τηλέφωνό σας!

Τώρα που ξεκινά η σκοτεινή περίοδος και πρέπει να τραβήξετε φωτογραφίες μεγάλης έκθεσης: Με αυτό το ραβδί μπορείτε να γράψετε την υπογραφή σας στην εικόνα, ή ένα κίνητρο, ή μια δήλωση αγάπης, έναν κωδικό QR, μια διεύθυνση διαδικτύου ή πολλά άλλα πράγματα…

Καλύπτει διάφορα θέματα ανάπτυξης:

  • κατασκευή του υλικού
  • προγραμματισμός του chipset Cypress BLE με C
  • φτιάξτε τη δική σας εφαρμογή για να την ελέγξετε.

Βήμα 1: Υλικό για το BLE-LED-Stick

Υλικό για το BLE-LED-Stick
Υλικό για το BLE-LED-Stick
Υλικό για το BLE-LED-Stick
Υλικό για το BLE-LED-Stick
Υλικό για το BLE-LED-Stick
Υλικό για το BLE-LED-Stick
Υλικό για το BLE-LED-Stick
Υλικό για το 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

Η αρχή του λογισμικού 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
Έλεγχος RGB
Έλεγχος RGB
Έλεγχος RGB
Έλεγχος RGB
Έλεγχος RGB
Έλεγχος RGB
Έλεγχος 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 και υπηρεσία μόνιμης αποθήκευσης

Υπηρεσία Text_Animation και υπηρεσία μόνιμης αποθήκευσης
Υπηρεσία 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
Διαγωνισμός Make it Glow 2018
Διαγωνισμός Make it Glow 2018
Διαγωνισμός Make it Glow 2018

Δεύτερο Βραβείο στον Διαγωνισμό Make it Glow 2018

Συνιστάται: