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

Low-Poly Iron Man με λωρίδες LED ελεγχόμενες με WiFi: 8 βήματα (με εικόνες)
Low-Poly Iron Man με λωρίδες LED ελεγχόμενες με WiFi: 8 βήματα (με εικόνες)

Βίντεο: Low-Poly Iron Man με λωρίδες LED ελεγχόμενες με WiFi: 8 βήματα (με εικόνες)

Βίντεο: Low-Poly Iron Man με λωρίδες LED ελεγχόμενες με WiFi: 8 βήματα (με εικόνες)
Βίντεο: Thomas Campbell: Ego, Paranormal Psi, My Big TOE 2024, Νοέμβριος
Anonim
Low-Poly Iron Man με λωρίδες LED ελεγχόμενες με WiFi
Low-Poly Iron Man με λωρίδες LED ελεγχόμενες με WiFi
Low-Poly Iron Man με λωρίδες LED ελεγχόμενες με WiFi
Low-Poly Iron Man με λωρίδες LED ελεγχόμενες με WiFi
Low-Poly Iron Man με λωρίδες LED ελεγχόμενες με WiFi
Low-Poly Iron Man με λωρίδες LED ελεγχόμενες με WiFi
Low-Poly Iron Man με λωρίδες LED ελεγχόμενες με WiFi
Low-Poly Iron Man με λωρίδες LED ελεγχόμενες με WiFi

Αυτό το διαδραστικό έργο τέχνης τοίχου έχει ύψος περίπου 39 "και πλάτος 24". Έκοψα με ξύλο το φοιτητικό φοιτητικό πανεπιστήμιο του Clemson, έβαψα όλα τα τρίγωνα στο χέρι και εγκατέστησα τα φώτα στο πίσω μέρος του. Αυτό το διδακτικό θα σας δείξει πώς έφτιαξα αυτό το ακριβές κομμάτι, ελπίζουμε ότι η ιδέα του θα εμπνεύσει κάποιον άλλο να φτιάξει το δικό του μοναδικό έργο τέχνης. Χρησιμοποιεί έναν μικροελεγκτή ESP8266 με διευθυνσιοδοτήσιμα φώτα λωρίδας LED WS2812B και κανονικά φώτα λωρίδας RGB LED.

Ανταλλακτικά και Υλικά

  • 1/4 "ξύλο - 40" επί 28 "(Μέγιστες διαστάσεις για τον κόφτη λέιζερ μας)
  • 1/8 "αδιαφανές ακρυλικό - TAPPlastics (χρησιμοποιώ Lighting White, 69%)
  • Μπαταρία - Μπαταρία TalentCell 12V/5V (χρησιμοποίησα πακέτο 12V/6000mAh)
  • RGB LED strip - 6ft ish (Standard 4 wire, the 5050 version where the RGB light is all in one module)
  • Τρανζίστορ TIP122 για έλεγχο PWM πολλών φώτων
  • Λωρίδα LED WS2812B - 2ft ish (χρησιμοποίησα την έκδοση με 144 LED ανά μέτρο)
  • Μικροελεγκτής ESP8266 NodeMCU
  • Καλώδιο σύνδεσης συμπαγούς πυρήνα 22 μετρητή (σύνδεσμος1 - σύνδεσμος2 - σύνδεσμος3 - σύνδεσμος4)
  • Περίπου 300Ω αντιστάσεις
  • Πινέλα
  • Χρώμα - χρησιμοποίησα κυρίως βαφή Craft Premium. Λεπτομέρειες στο βήμα ζωγραφικής

Εργαλεία

  • Πρόσβαση σε κόφτη λέιζερ (χρησιμοποίησα έναν στο Clemson)
  • Συγκολλητικό σίδερο
  • Πιστόλι θερμής κόλλας (αυτό είναι απαραίτητο)
  • Κόφτες/απογυμνωτές καλωδίων
  • Adobe Illustrator
  • Υπομονή

Βήμα 1: Σχεδιασμός στο Illustrator

Σχεδιασμός στο Illustrator
Σχεδιασμός στο Illustrator
Σχεδιασμός στο Illustrator
Σχεδιασμός στο Illustrator

Η εικόνα της πηγής είναι μια απεικόνιση του William Teal, παρακαλώ ρίξτε μια ματιά στο χαρτοφυλάκιό του για άλλα σπουδαία έργα του: https://www.behance.net/tealeo93 (Νομίζω ότι είναι δική του - ακολούθησα την τρύπα του κουνελιού του GoogleImages, Pinterest, GraphicDesignJunction, Behance)

Βρήκα την εικόνα πηγής από μια αναζήτηση στο Google για "Low-Poly Iron Man" ή "Geometric Iron Man Wallpaper". Κατέβασα την εικόνα και την άνοιξα στο Adobe Illustrator.

Στη συνέχεια, χρησιμοποίησα το εργαλείο στυλό στο Illustrator για να σχεδιάσω με μη αυτόματο τρόπο κάθε γραμμή της εικόνας. Το έκανα έτσι ώστε ο κόφτης λέιζερ να μπορεί να χαράξει όλες τις εσωτερικές γραμμές ως διανυσματική κοπή σε χαμηλή ισχύ αντί να χρειάζεται να κάνει ράστερ σε ολόκληρη την εικόνα. Χρειάστηκαν μερικές ώρες για να γίνει (γνωστός και για περίπου 3 περιόδους μαθημάτων στο σχολείο)

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

Για το ακρυλικό κομμάτι ήθελα να μεγιστοποιήσω την απόδοση του ακρυλικού μου κομματιού, έτσι το ανέβασα σε αυτόν τον ιστότοπο https://svgnest.com/ και ανέβασα ένα αρχείο μόνο με τα ακρυλικά κομμένα κομμάτια και το άφησα να "φωλιάσει" τα μέρη. Αυτό χρησιμοποιεί μερικές επαναλήψεις και δροσερούς αλγόριθμους για να καθορίσει την πιο αποτελεσματική διάταξη των τμημάτων σας στο φύλλο για να ελαχιστοποιήσει τα απόβλητα. Εξάγει τη διαμόρφωση που βρίσκεται στο αρχείο IronManAcrylic.ai.

Βήμα 2: Κοπή λέιζερ

Image
Image

Πριν κόψω το ξύλο το έβαψα με σπρέι με αστάρι και μετά το τρίψω ελαφρά για να ξεκινήσει ομαλά. Το έκανα έτσι ώστε το χρώμα αργότερα να βγει πιο ομοιόμορφα.

Όταν έκοψα το περίγραμμα μέχρι το ξύλο, χρησιμοποίησα 100% ισχύ 6% ταχύτητα (νομίζω) στο 60W Epilog Fusion M2 40 στο Clemson Makerspace. Αυτό λειτούργησε για το μεγαλύτερο μέρος του, αλλά το ξύλο ήταν πολύ στρεβλωμένο σε μια γωνία, οπότε έπρεπε να επικεντρώσω ξανά το λέιζερ σε αυτήν τη γωνία και να τρέξω ξανά εκείνο το μέρος της κοπής.

Δεδομένου ότι επίσης σχεδίασα γραμμές για όλα τα εσωτερικά τρίγωνα, ήμουν επίσης σε θέση να χρησιμοποιήσω μια διανυσματική τομή για να χαράξω γρήγορα όλες αυτές τις γραμμές όπως φαίνεται στο παραπάνω βίντεο. Αυτό ήταν σημαντικά γρηγορότερο από ό, τι θα ήταν για να χαράξει το αρχείο. Νομίζω ότι χρησιμοποίησα 70% ταχύτητα και 50% ισχύ - θα πρέπει να πειραματιστείτε όμως.

Το ακρυλικό 1/8 το έκοψα πρώτα με 100% ισχύ και ταχύτητα 8% που ήταν λίγο πολύ ισχυρό και άφησε κάποια σημάδια καψίματος στο ακρυλικό απροστάτευτο, οπότε το έκανα με ταχύτητα 14% και λειτούργησε σαν γούρι.

Βήμα 3: Ζωγραφική

Ζωγραφική
Ζωγραφική
Ζωγραφική
Ζωγραφική
Ζωγραφική
Ζωγραφική

Ετσι. Πολύ. Ζωγραφική. Υπολογίζω ότι ήταν περίπου 20 ώρες ζωγραφικής.

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

Χρησιμοποίησα την ταινία ζωγράφων FrogTape για να περιγράψω κάθε τρίγωνο στο κομμάτι καθώς το ζωγράφιζα. Αυτό μου έδωσε πολύ πιο σταθερά αποτελέσματα από τις πρώτες προσπάθειές μου να συμπληρώσω κάθε τρίγωνο με το χέρι χωρίς περιθώρια ταινίας.

Το FrogTape δίνει γραμμές που είναι πολύ πιο ευκρινείς από την ταινία λευκών ή μπλε ζωγράφων. Ο χρόνος και η λογική σας αξίζει εντελώς τα επιπλέον $ 2/ρολό ταινίας. Αν θέλετε να είναι πιο αδύνατη, μπορείτε να χρησιμοποιήσετε ένα μαχαίρι ακριβείας για να κόψετε τα επάνω στρώματα ταινίας σε ακόμη μικρότερες λωρίδες, έτσι ώστε όταν σκιαγραφείτε ένα τρίγωνο να μην καλύπτει τόσα γειτονικά τρίγωνα.

Είμαι φθηνός και δεν έχω μεγάλη εμπειρία στη ζωγραφική, οπότε χρησιμοποίησα μπουκάλια χρώματος 2 ουγκιών από το Michael's ή το Hobby Lobby. Διαπίστωσα ότι η σειρά Craft Smart Premium κάλυπτε αρκετά καλά και κατέληξε να χρησιμοποιήσω το CraftSmart Premium Metallic Festive Red χρώμα αναμεμειγμένο με λευκό ή μαύρο για να φτιάξω το 95% των κόκκινων αποχρώσεων μου. Το κίτρινο ήταν απλά το κορυφαίο κίτρινο Craft Smart, με λίγο χρυσό που ρίχτηκε ως μια προσπάθεια να γίνει ελαφρώς λαμπερό.

Εάν γνωρίζετε ένα φθηνό χρώμα που καλύπτει καλύτερα - ενημερώστε με στα σχόλια !! Συχνά έπρεπε να κάνω δύο στρώσεις χρώματος, ώστε να μην εμφανιστεί κανένα από τα λευκά παρακάτω, και θα ήθελα πολύ να έχω ένα πιο ωραίο χρώμα που θα το απέφευγε.

Μόλις ήταν όλα βαμμένα (αλλά πριν κολλήσω στα ακρυλικά κομμάτια) χρησιμοποίησα ένα γυαλιστερό διαφανές σπρέι παλτό για να προστατέψω το χρώμα και να το κάνω όλο λαμπερό.

Βήμα 4: Ακρυλικά τεμάχια και ακρυλικά οπίσθια φώτα

Ακρυλικά Τεμάχια και Ακρυλικοί οπίσθιοι φωτισμοί
Ακρυλικά Τεμάχια και Ακρυλικοί οπίσθιοι φωτισμοί
Ακρυλικά Τεμάχια και Ακρυλικοί οπίσθιοι φωτισμοί
Ακρυλικά Τεμάχια και Ακρυλικοί οπίσθιοι φωτισμοί
Ακρυλικά Τεμάχια και Ακρυλικοί οπίσθιοι φωτισμοί
Ακρυλικά Τεμάχια και Ακρυλικοί οπίσθιοι φωτισμοί
Ακρυλικά Τεμάχια και Ακρυλικοί οπίσθιοι φωτισμοί
Ακρυλικά Τεμάχια και Ακρυλικοί οπίσθιοι φωτισμοί

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

Έφτιαξα μια ξεχωριστή μονάδα φωτισμού για κάθε ακρυλικό κομμάτι. Πρώτα έκοψα ένα κομμάτι μαύρης σανίδας αφρού 1/4 σε μέγεθος ελαφρώς μεγαλύτερο από το απαραίτητο και σχεδίασα ένα περίγραμμα του ακρυλικού κομματιού πάνω. Στη συνέχεια έκοψα και κολλήσα τις λωρίδες LED για αυτό το κομμάτι με τρόπο που κάλυπτε κυρίως το ακρυλικό περιοχή.

Αυτό το βήμα θα ήταν καλύτερα να γίνει με έναν πίνακα πρωτοτύπων και μερικούς βιδωτούς ακροδέκτες, αλλά δεν τα είχα στο χέρι όταν ήμουν έτοιμος να ξεκινήσω την καλωδίωση. Ως λύση, έκοψα μερικές θηλυκές καρφίτσες στις 4 εισόδους - Ground, 5V in, data in, data out. Κόλλησα ζεστά τη γυναικεία ταινία κεφαλής στην σανίδα αφρού και άρχισα να κολλάω όλα τα φώτα μαζί.

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

Μόλις συγκολλήθηκαν όλα, χρησιμοποίησα ένα μαχαίρι ακριβείας (με μια νέα λεπίδα) για να κόψω λωρίδες από την σανίδα αφρού για να κλείσω τα φώτα και να μειώσω τη διαρροή. Χρησιμοποίησα λευκό αντί για μαύρο επειδή είχα μεγαλύτερες λωρίδες και ήταν πράγματι καλό γιατί μου επέτρεψε να δω εύκολα από την πίσω πλευρά εάν αυτό το τμήμα των λωρίδων LED ήταν ενεργοποιημένο κατά τη διάρκεια του βήματος δοκιμής της καλωδίωσης.

Βήμα 5: Τα υπόλοιπα ηλεκτρονικά

Τα υπόλοιπα ηλεκτρονικά
Τα υπόλοιπα ηλεκτρονικά
Τα υπόλοιπα ηλεκτρονικά
Τα υπόλοιπα ηλεκτρονικά
Τα υπόλοιπα ηλεκτρονικά
Τα υπόλοιπα ηλεκτρονικά

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

Κάνιβαλισα ένα φθηνό καλώδιο micro-usb και αντικατέστησα το άκρο micro USB με μια υποδοχή βαρελιού DC, ώστε να μπορώ να χρησιμοποιήσω την είσοδο 5V. Έβαλα 5V σε μία ράγα τάσης της σανίδας και στον πείρο ESP8266 Vin, έπειτα γειώθηκε στη ράγα γείωσης και έναν πείρο γείωσης του ESP8266 (όλες οι βάσεις πρέπει να συνδεθούν εσωτερικά στο χειριστήριο, ώστε να μην έχει σημασία ποια)

Οι τυπικές λωρίδες LED RGB ελέγχονται με σήμα PWM από τον ελεγκτή. Ωστόσο, οι μικροελεγκτές μπορούν να παρέχουν μόνο 20mA-50mA ρεύματος ανά ακίδα ανάλογα με τον ελεγκτή. Κάθε LED στη λωρίδα απαιτεί τόση ισχύ, οπότε πρέπει να χρησιμοποιήσουμε κάποιο είδος τρανζίστορ για τον έλεγχο των ταινιών. Μερικά σημεία που εμφανίστηκαν σε αναζητήσεις στο Google πρότειναν το τρανζίστορ TIP122 το οποίο μπορεί να αλλάξει 5 αμπέρ ή 40W ισχύος - περισσότερο από αρκετό για την εφαρμογή μας. Δεν έχουν σχεδιαστεί για να χωράνε σε ένα breadboard, αλλά αν γυρίσετε κάθε καλώδιο πλάγια κατά 90 °, τότε θα χωρέσει στις υποδοχές του breadboard. Αρχικά σχεδίαζα να βιδώσω μια μικρή ψύκτρα στο καθένα, αλλά μετά από μερικές δοκιμές διαπίστωσα ότι δεν ζεσταίνονται αρκετά για να είναι απαραίτητο. Συνδέω κάθε είσοδο τρανζίστορ σε μια καρφίτσα στο ESP8266 που έχει οριστεί για έξοδο PWM

Οι λωρίδες RGB LED που είχα τυχαίνει να έχουν την «αδιάβροχη» επένδυση από καουτσούκ και ως αποτέλεσμα δεν θα παραμείνουν κολλημένες στο ξύλο όσο θα ήθελα. Ως λύση, έκοψα μικρά κομμάτια από σανίδα αφρού και κόλλησα το κομμάτι αφρού στο ξύλο και έπειτα κόλλησα τη λωρίδα LED σε αυτά.

Βήμα 6: Επισκόπηση προγραμματισμού

Αυτό το έργο χρησιμοποιεί διάφορες βιβλιοθήκες, έτσι ώστε να μπορεί να ελεγχθεί από μια εφαρμογή τηλεφώνου που ονομάζεται Blynk, να ενεργοποιηθεί/απενεργοποιηθεί από το Amazon Echo και να ενημερωθεί ο κώδικας μέσω wifi. Μερικές από τις βιβλιοθήκες που χρησιμοποιούνται είναι παρακάτω

Blynk -

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

Ενημέρωση OTA (Over the Air)- η προεπιλεγμένη βιβλιοθήκη περιλαμβάνεται στο ESP8266

Alexa Wemo Emulator-https://github.com/witnessmenow/esp8266-alexa-wemo…

Ξεγελά το Amazon Echo για να σκεφτεί ότι το έργο σας είναι ένας διακόπτης φωτός Wemo. Ο κώδικας σάς επιτρέπει να ορίσετε μια συνάρτηση για εκτέλεση όταν η Alexa στέλνει το σήμα "ενεργοποίησης" και μια ξεχωριστή λειτουργία για το σήμα απενεργοποίησης. Μπορείτε να μιμηθείτε πολλές συσκευές (έως 10) με ένα μόνο χειριστήριο που επιτρέπει ακόμα μεγαλύτερη ευελιξία. Ο κωδικός μου έχει ρυθμιστεί έτσι ώστε το Echo να βρίσκει δύο συσκευές με το όνομα "Iron Man" και "Night Light". Είναι τόσο αυτό το έργο όσο και αυτός ο ελεγκτής, αλλά αν ενεργοποιήσω το "Night Light" θα εκτελέσει μια λειτουργία με χαμηλά λευκά φώτα, όπου όταν ενεργοποιήσετε το "Iron Man" ορίζει τις εξωτερικές λωρίδες LED σε κόκκινο και τα ακρυλικά κομμάτια σε λευκό Το

Επεξεργασία Arduino στο Visual Studio χρησιμοποιώντας vMicro

Χρησιμοποιώ το Visual Studio στη δουλειά μου εδώ και μερικούς μήνες και μου αρέσουν όλα τα εργαλεία αυτόματης συμπλήρωσης που έχει ενσωματωμένο, οπότε μετά από κάποια αναζήτηση διαπίστωσα ότι θα μπορούσα πραγματικά να χρησιμοποιήσω το Visual Studio αντί του κανονικού Arduino IDE. Μια μεμονωμένη άδεια χρήσης υπολογιστή vMicro κοστίζει 15 δολάρια για φοιτητές, κάτι που κατά τη γνώμη μου αξίζει τον κόπο αν αφιερώσετε περισσότερες από μερικές ώρες προγραμματισμού κώδικα Arduino.

FastLED έναντι Neopixel

Χρησιμοποιώ το FastLED στα έργα μου απλά και μόνο επειδή βρήκα περισσότερες λειτουργίες στο διαδίκτυο που έχουν ήδη δημιουργηθεί γι 'αυτό και σε αυτό το σημείο έχω κάνει πολλά έργα που το χρησιμοποιούν, οπότε έχω πολλούς κώδικες για επαναχρησιμοποίηση. Είμαι βέβαιος ότι η βιβλιοθήκη Neopixel θα λειτουργούσε εξίσου καλά εάν την εργαζόσασταν αρκετά. Σχεδιάζω να βάλω όλες τις προσαρμοσμένες λειτουργίες μου στο GitHub για χρήση από άλλους ανθρώπους, απλώς δεν το έχω γνωρίσει ακόμα.

Βήμα 7: Συμβουλές προγραμματισμού

Συνολική δομή

Είμαι μηχανικός ελέγχου στη δουλειά μου και χρησιμοποιούμε συχνά ένα στυλ προγραμματισμού που ονομάζεται προγραμματισμός PLC. Αυτός ο τύπος είναι παρόμοιος με το Arduino στο ότι έχει έναν βρόχο που τρέχει συνεχώς κάθε λίγα χιλιοστά του δευτερολέπτου και ασχολείται με εισόδους/εξόδους, πηδώντας μεταξύ διαφορετικών "καταστάσεων" στον κώδικα. Για παράδειγμα, ο κώδικας μπορεί να χτυπήσει ένα βήμα που σχετίζεται με έναν μεταφορέα όπου εάν υπάρχει δίσκος στον μεταφορέα θα προχωρήσει στην κατάσταση 45, αλλά αν δεν υπάρχει δίσκος θα προχωρήσει στην κατάσταση 100. Αυτό το στυλ προγραμματισμού ενέπνευσε τον κώδικά μου, αν και Έκανα μερικές αλλαγές, ώστε να μπορώ να διαβάσω μια συμβολοσειρά αντί για έναν αριθμό κατάστασης.

Χρησιμοποιώ μια καθολική μεταβλητή (commandString) για να παρακολουθώ σε ποια κατάσταση φωτός βρίσκεται το έργο. Επιπλέον, χρησιμοποιώ ένα boolean που ονομάζεται "animate" για να καθορίσω εάν θα ξεφύγει από μια λειτουργία ή όχι. Έτσι, όταν πατάτε το κουμπί "Classic mode" στο Blynk, ο κωδικός μου θα ορίσει το animate σε false (έτσι ώστε να ξεφεύγει από την τρέχουσα λειτουργία) και θα ορίσετε την εντολήString σε "RunClassic". Κάθε λειτουργία ελέγχει συνεχώς για είσοδο από τα Blynk, Alexa και OTAUpdate εκτελώντας μια λειτουργία "CheckInput".

Παγκόσμιες μεταβλητές

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

  • globalBrightness (0-255)
  • globalSpeed - η ταχύτητα κίνησης οποιασδήποτε κινούμενης λειτουργίας. Αυτό το έργο έχει απλά ξεθωριασμένα ουράνια τόξα
  • globalDelayTime - Το FastLED χρειάζεται περίπου 30 μικροδευτερόλεπτα για να γράψει πληροφορίες σε κάθε LED, οπότε έθεσα αυτήν τη μεταβλητή σε NUM_LEDS * 30 /1000 + 1. στη συνέχεια προσθέστε καθυστέρηση (globalDelayTime) αφού τις περισσότερες φορές κάνω FastLED.show () έτσι ώστε να μην διακοπεί η εντολή.
  • _r, _g, _b - καθολικές τιμές RGB. Με αυτόν τον τρόπο, διαφορετικά κουμπιά συνδυασμού χρωμάτων μπορούν απλώς να αλλάξουν τις καθολικές τιμές r/g/b και όλα να καλέσουν την ίδια λειτουργία στο τέλος

Ονομασία ελεγκτή ενημέρωσης Arduino OTA

Μου πήρε μια ενοχλητική αναζήτηση μέχρι να καταλάβω πώς να ονομάσω το χειριστήριο χρησιμοποιώντας τη λειτουργία ενημέρωσης μέσω αέρα. Κυριολεκτικά απλώς συμπεριλάβετε αυτήν τη γραμμή στην ενότητα ρύθμισης του κωδικού σας πριν από το "ArduinoOTA.onStart (" -

ArduinoOTA.setHostname ("IronMan");

vMicro με συμβουλές στο Visual Studio

Μερικές φορές το visual studio εντοπίζει ορισμένα προβλήματα με αρχεία σε βάθος, όπως τα τυπικά αρχεία C ++ και ρίχνει κάποια σφάλματα. Δοκιμάστε να ενεργοποιήσετε/απενεργοποιήσετε τους διαφορετικούς τύπους μηνυμάτων σφάλματος έως ότου έχετε απλώς σφάλματα με το ανοιχτό έργο σας και όχι αρχεία υποστήριξης. Μπορείτε επίσης να ανοίξετε τον κωδικό στο Arduino IDE και να δείτε αν θα μεταγλωττιστεί εκεί ή αν θα δώσει έναν πιο χρήσιμο κωδικό σφάλματος.

FastLED

Στείλτε μου μήνυμα αν αυτό το Instructable είναι πάνω από μερικές εβδομάδες και ακόμα δεν έχω καταλάβει πώς να τοποθετήσω τις προσαρμοσμένες λειτουργίες μου στο GitHub.

Το FastLED αναφέρεται ως συμβατό με το ESP8266, αλλά οι ορισμοί των ακίδων μπορεί να μην είναι σωστοί. Στην τεκμηρίωση για το FastLED λέει ότι μπορείτε να δοκιμάσετε να συμπεριλάβετε μία από τις ακόλουθες γραμμές πριν από το #include

  • //#define FASTLED_ESP8266_RAW_PIN_ORDER
  • //#define FASTLED_ESP8266_NODEMCU_PIN_ORDER
  • //#define FASTLED_ESP8266_D1_PIN_ORDER

Ωστόσο, δοκίμασα και τα τρία και ποτέ δεν ταίριαξαν όλες οι καρφίτσες μου. Προς το παρόν χρησιμοποιώ την τελευταία γραμμή και μόλις δέχτηκα ότι όταν λέω στο FastLED να χρησιμοποιήσει τον πείρο D2 χρησιμοποιεί στην πραγματικότητα τον πείρο D4 στον ελεγκτή μου.

Παρόλο που τα φώτα μου είναι απλώς το φθηνό κινέζικο knockoff των Neopixels, εξακολουθώ να λέω στο FastLED να τα αντιμετωπίζει ως Neopixels στη ρύθμιση

  • FastLED.addLeds (led, NUM_LEDS);
  • FastLED.setCorrection (TypicalLEDStrip);
  • //FastLED.setMaxPowerInVoltsAndMilliamps(5, maxMilliamps); // Χρήσιμο για έργα με μπαταρία
  • FastLED.setBrightness (globalBright);

Βήμα 8: Τελικό προϊόν

Τελικό προϊόν
Τελικό προϊόν
Τελικό προϊόν
Τελικό προϊόν
Τελικό προϊόν
Τελικό προϊόν

Τα-ντα!

Μη διστάσετε να σχολιάσετε ή να μου στείλετε μηνύματα ηλεκτρονικού ταχυδρομείου - μου αρέσουν αυτά τα πράγματα και θα ήθελα να βοηθήσω άλλους ανθρώπους να κάνουν υπέροχα έργα. Ρίξτε μια ματιά στον ιστότοπό μου για κάποια άλλα έργα που έχω κάνει και μερικές από τις φωτογραφίες μου: www.jacobathompson.com

Συνιστάται: