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

Ρολόι χάρτη του υπόγειου Λονδίνου: 9 βήματα (με εικόνες)
Ρολόι χάρτη του υπόγειου Λονδίνου: 9 βήματα (με εικόνες)

Βίντεο: Ρολόι χάρτη του υπόγειου Λονδίνου: 9 βήματα (με εικόνες)

Βίντεο: Ρολόι χάρτη του υπόγειου Λονδίνου: 9 βήματα (με εικόνες)
Βίντεο: SNIK, VLOSPA – TRAFFICANTE (OFFICIAL MUSIC VIDEO) (prod. by OGE) 2024, Νοέμβριος
Anonim
Ρολόι χάρτη του υπόγειου Λονδίνου
Ρολόι χάρτη του υπόγειου Λονδίνου
Ρολόι χάρτη του υπόγειου Λονδίνου
Ρολόι χάρτη του υπόγειου Λονδίνου

Το 2014, στην πρακτική άσκηση σε συμβουλευτική τρισδιάστατων εκτυπώσεων στο Λονδίνο και σε ένα πείραμα με έγχρωμα λιθοφάνια χρησιμοποιώντας το μηχάνημά τους Stratasys, σχεδίασα το δικό μου παρόν, μια έγχρωμη τρισδιάστατη εκτύπωση γραμμών σωλήνων τοπικά στα γραφεία τους. Iμουν αποφασισμένος να κάνω κάτι από αυτό. Λίγο 2 χρόνια αργότερα, το 2016, είχα τον δικό μου τρισδιάστατο εκτυπωτή και ξεκίνησα να το κάνω ρολόι.

Ως παιδί, παρόλο που τα ψηφιακά ρολόγια Tokyo Flash ήταν τα καλύτερα πράγματα που είχαμε ποτέ και θα τα έλεγα ότι θα ήταν το σημείο έμπνευσης για το σχέδιο.

Και τώρα έχει περάσει ένα μικρό διάλειμμα 4 ετών μέχρι να το γράψω!

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

Βήμα 1: Μπροστινό στρώμα

Μπροστινό στρώμα
Μπροστινό στρώμα
Μπροστινό στρώμα
Μπροστινό στρώμα
Μπροστινό στρώμα
Μπροστινό στρώμα

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

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

Αυτό το μέρος κατασκευάστηκε σε 3DS max το 2014, αλλά σήμερα υπάρχουν διαδικτυακά εργαλεία για τη μετατροπή μιας εικόνας σε SLT με βάση τη φωτεινότητα

Βήμα 2: Σχεδιάζοντας το επίπεδο οδηγού

Σχεδιάζοντας το επίπεδο οδηγού
Σχεδιάζοντας το επίπεδο οδηγού
Σχεδιάζοντας το στρώμα οδηγών
Σχεδιάζοντας το στρώμα οδηγών
Σχεδιάζοντας το στρώμα οδηγών
Σχεδιάζοντας το στρώμα οδηγών
Σχεδιάζοντας το στρώμα οδηγών
Σχεδιάζοντας το στρώμα οδηγών

Εδώ αποφασίζουμε την πολυπλοκότητα του έργου και τη μέθοδο ανάγνωσης της ώρας. Οι εικόνες δείχνουν τις 2 ιδέες με τις οποίες έπαιζα.

Αυτά έγιναν με σάρωση στο σχέδιο και σχεδιάζοντας γραμμές σε αυτό σε inkscape.

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

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

Είναι συνηθισμένο στα ρολόγια του Τόκιο να ελαχιστοποιούν την καταμέτρηση των LED, αλλά έχοντας ένα τμήμα μετρώντας σε 3 ή 5 και στη συνέχεια ένα άλλο γέμισμα για κάθε φορά που γεμίζει αυτό το τμήμα, χρησιμοποίησα αυτήν την τεχνική για τα λεπτά, για να τα μειώσω από 60 σε 20 συν 2. I δεν ανησυχούσα τόσο πολύ για την ακρίβεια για δευτερόλεπτα.

Βήμα 3: Δημιουργία του επιπέδου οδηγού

Δημιουργία στρώματος οδηγού
Δημιουργία στρώματος οδηγού
Δημιουργία στρώματος οδηγού
Δημιουργία στρώματος οδηγού
Δημιουργία στρώματος οδηγού
Δημιουργία στρώματος οδηγού

Αυτό το επίπεδο οδηγού για τα LED έχει 2 σκοπούς, συγκρατεί τα LED στη θέση τους και αποτρέπει τη διαρροή μεταξύ τους

Σχεδιάστηκε ως ένα επίπεδο στο Inkscape ακριβώς πάνω από τη σάρωση που χρησιμοποιούσα για τη διάταξη του σχεδιασμού. Προστέθηκε πάχος 1mm στο μπλέντερ πριν από την αποστολή στον εκτυπωτή μου.

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

Η τελική εικόνα δείχνει ότι κρατήθηκε μέχρι μια λυχνία για να ελέγξει την απόσταση.

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

Βήμα 4: Καλωδίωση των LED

Καλωδίωση των LED
Καλωδίωση των LED
Καλωδίωση των LED
Καλωδίωση των LED
Καλωδίωση των LED
Καλωδίωση των LED

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

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

Για να μειώσω τον αριθμό των καλωδίων, τα LED συγκολλήθηκαν σε ένα πλέγμα 7 επί 8, πράγμα που σημαίνει ότι και τα 55 LEDs μπορούσαν να ελεγχθούν με μόνο 13 ακίδες, είχα έναν χάρτη για κάθε μία από αυτές τις συνδέσεις, ο οποίος δυστυχώς χάθηκε.

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

Αυτή η διαδικασία ήταν πολύ χρονοβόρα, θα συνιστούσα ιδιαίτερα το σχεδιασμό ενός PCB

Βήμα 5: Σχεδιάζοντας τα Ηλεκτρονικά

Σχεδιασμός Ηλεκτρονικών
Σχεδιασμός Ηλεκτρονικών
Σχεδιασμός Ηλεκτρονικών
Σχεδιασμός Ηλεκτρονικών
Σχεδιασμός Ηλεκτρονικών
Σχεδιασμός Ηλεκτρονικών
Σχεδιασμός Ηλεκτρονικών
Σχεδιασμός Ηλεκτρονικών

Το αρχικό μου σχέδιο ήταν να χρησιμοποιήσω έναν μικροελεγκτή Arduino με RTC, αλλά επέλεξα ένα ESP8266 στον πίνακα Node MCU D1, καθώς επέτρεπε την αυτόματη εξοικονόμηση ημέρας και τη δυνατότητα ελέγχου του WIFI.

Για να μειώσω περαιτέρω τον αριθμό των καρφιτσών, είχα τον τέλειο αριθμό LED για να μπορώ να χρησιμοποιήσω ένα MAX7219 (το οποίο μπορεί να χειριστεί έως και 64 LED).

Αυτό το IC χρησιμοποιείται συνήθως για την οδήγηση των οθονών LED 7 Segment, αλλά είχε μια πολύ παρόμοια περίπτωση χρήσης με τη δική μου, φωτίζοντας έναν αυθαίρετο αριθμό LED με ελάχιστο τρεμόπαιγμα, έχει ακόμη και ελεγχόμενη φωτεινότητα.

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

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

Βήμα 6: Καλωδίωση των Ηλεκτρονικών

Καλωδίωση των Ηλεκτρονικών
Καλωδίωση των Ηλεκτρονικών
Καλωδίωση των Ηλεκτρονικών
Καλωδίωση των Ηλεκτρονικών
Καλωδίωση των Ηλεκτρονικών
Καλωδίωση των Ηλεκτρονικών
Καλωδίωση των Ηλεκτρονικών
Καλωδίωση των Ηλεκτρονικών

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

Η καρφίτσα 1 στις κεφαλίδες LED Anode & Cathode σημειώθηκε με ασημένιο εξάρτημα, θα μπορούσαν να διαφοροποιηθούν μεταξύ τους όπως στις 7 και στις άλλες 8.

Βήμα 7: Προγραμματισμός

Προγραμματισμός
Προγραμματισμός

Δεδομένου ότι η οθόνη μας δεν είναι μια παραδοσιακή μήτρα, έπρεπε να βρω μια μέθοδο για να απεικονίσω ποια bits θα ενεργοποιηθούν και τα οποία έστειλε στο MAX IC στο HEX. Ευτυχώς, γνωρίζω αρκετό excel για να μπω στο πρόβλημα και έφτιαξα έναν «Hex wizard» για να με καθοδηγήσει αν και το μοτίβο που ήθελα να εμφανίζεται, τοποθετημένα στο χέρι κουτάκια επιλογής.

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

Έτσι, σχεδόν στο τέλος. και ώρα για μια άλλη απόφαση που δεν έχει γεράσει πολύ καλά.

Ο κωδικός για το ESP είναι στο LUA, Σήμερα θα συνιστούσα τη χρήση του arduino IDE για καλύτερη τεκμηρίωση και ισχυρή βιβλιοθήκη πακέτων, τη στιγμή που η κοινότητα ESP ήταν ακόμη σε ωριμότητα και επέλεξα το LUA ως γλώσσα για αυτό το έργο.

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

halfSec = 0hour = 0 λεπτό = 0 δευτερόλεπτο = 0

χαμηλή ένταση = 0

υψηλή ένταση = 9

τοπικό SSID = "Wifi"

τοπικό SSID_PASSWORD = "Κωδικός πρόσβασης"

ώρα λειτουργίας () -συνδεθείτε στο διαδίκτυο για να λάβετε την τρέχουσα ώρα και ημερομηνία

εάν wifi.sta.getip () τότε τοπική σύνδεση = net.createConnection (net. TCP, 0) conn: σύνδεση (80, "google.com")

conn: on ("σύνδεση", συνάρτηση (conn, payload) conn: send ("HEAD/HTTP/1.1 / r / n".. "Host: time.is / r / n".. "Αποδοχή: */ *\ r / n".. " User-Agent: Mozilla/4.0 (συμβατό; esp8266 Lua;) ".." / r / n / r / n ") τέλος)

conn: on ("λήψη", συνάρτηση (conn, payload) -print (payload) conn: close () local p = string.find (payload, "GMT") -βρείτε τη συμβολοσειρά ώρας και ημερομηνίας στο ωφέλιμο φορτίο από το διαδίκτυο, αλλάξτε για ζώνη ώρας αν p ~ = μηδέν τότε-εξαγωγή αριθμών που αντιστοιχούν στην ώρα, το λεπτό, το δεύτερο, την ημέρα, την ώρα του μήνα = αριθμός (string.sub (ωφέλιμο φορτίο, p-9, p-8)) λεπτό = αριθμός (string.sub (ωφέλιμο φορτίο, p- 6, p-5)) δεύτερος = αριθμός (string.sub (ωφέλιμο φορτίο, p-3, p-2)) addHour ()-σκληρό κωδικοποιημένο BST (βρετανική θερινή ώρα) εκτύπωση θερινών ωρών (ώρα, λεπτά, δευτερόλεπτα) = (δεύτερο%6)*2 --αποτύπωση (halfSec) αλλιώς εκτύπωση ("η ενημέρωση ιστού απέτυχε!") τέλος λήξης -λειτουργία) -τέλος του χειριστή εκδήλωσης "λήψης"

conn: on ("αποσύνδεση", συνάρτηση (σύνδεση, ωφέλιμο φορτίο) conn = μηδέν ωφέλιμο φορτίο = μηδενικό τέλος) τερματισμός εκτύπωσης ("δεν υπάρχει ακόμη wifi ακόμα") τέλος

συνάρτηση borTable (a, b,…) -δυαδικά ή πίνακες μαζί

αν arg [1] τότε b = borTable (b, ξεπακετάρισμα (arg)) τέλος τοπικό z = {} για i, v σε ipairs (a) κάντε table.insert (z, bit.bor (v, b )) τέλος επιστροφή z τέλος

συνάρτηση bxorTable (a, b,…) -δυαδικά ή πίνακες μαζί

αν arg [1] τότε b = bxorTable (b, ξεπακετάρετε (arg)) τελειώστε τοπικά z = {} για i, v σε ipairs (a) κάντε table.insert (z, bit.bxor (v, b )) τέλος επιστροφή z τέλος

συνάρτηση addSecond ()

δεύτερο = δεύτερο+1 αν δεύτερο> = 60 τότε δεύτερο = 0 λεπτό = λεπτό+1 αν λεπτό> = 60 τότε λεπτό = 0 προσθήκη ourρα () τέλος τέλους

συνάρτηση addHour ()

ώρα = ώρα+1 αν ώρα> = 24 τότε ώρα = 0 τέλος εάν ώρα == 2 ή ώρα == 16 τότε max7219.setIntensity (lowIntensity) λήξη εάν ώρα == 8 ή ώρα == 18 έπειτα max7219.setIntensity (highIntensity) τελική τελική ενημέρωση λειτουργίας () τοπικό secGap = 6 τοπικά minGap = 3 τοπικά horGap = 1 τοπικά δευτερόλεπτα = {{0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}, {0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02}, {0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0x00, 0x02}, {0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0x00, 0x03}, {0x00, 0x00,, 0x00, 0x00, 0x02, 0x01, 0x03}, {0x00, 0x00, 0x00, 0x00, 0x00, 0x03, 0x01, 0x03}, {0x00, 0x00, 0x00, 0x00, 0x01, 0x03, 0x01, 0x01, 0x01, 0x00, 0x00, 0x00, 0x01, 0x01, 0x03, 0x01, 0x03}, {0x00, 0x00, 0x01, 0x1 }, {0x01, 0x01, 0x01, 0x01, 0x01, 0x03, 0x01, 0x03}}; τοπικό ελάχιστο = {{0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}, {0x00, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00}, {0x00, 0x00, 0x00, 0x00, 0x02, 0x00, 0x02, 0x00}, {0x00, 0x00, 0x00, 0x02, 0x02, 0x00, 0x02, 0x00}, {0x00, 0x00, 0x02, 0x02, 0x02, 0x00, 0x02, 0x00}, {0x00, 0x0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0, 0x02, 0x02, 0x00, 0x02, 0x00}, {0x02, 0x02, 0x02, 0x02, 0x02, 0x00, 0x02, 0x00}, {0x02, 0x2 0x02, 0x02, 0x02, 0x02, 0x00, 0x12, 0x10}, {0x02, 0x02, 0x02, 0x02, 0x02, 0x10, 0x12, 0x10}, {0x02, 0x02, 0x02, 0x02, 0x02, 0x02, 0x02 } {0x02, 0x02, 0x02, 0x12, 0x12, 0x10, 0x12, 0x10}, {0x02, 0x02, 0x12, 0x12, 0x12, 0x10, 0x12, 0x10}, {0x02, 0x12, 0x12, 0x12, 0x12, 0x12, 0x12, 0x10}, {0x12, 0x12, 0x12, 0x12, 0x12, 0x10, 0x12, 0x10}, {0x12, 0x12, 0x12, 0x12, 0x12, 0x30, 0x12, 0x10}, {0x12, 0x12, 0x12, 0x12, 0x32, 0x30, 0x12, 0x10}, {0x12, 0x12, 0x12, 0x32, 0x32, 0x30, 0x12, 0x10}, {0x12, 0x12, 0x32, 0x32, 0x32, 0x30, 0x12, 0x10}, {0x12, 0x32, 0x32, 0x32, 0x32, 0x30, 0x12, 0x10}, {0x32, 0x32, 0x32, 0x32, 0x32, 0x30, 0x12, 0x10}} · τοπικό hor = {{0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}, {0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x04, 0x00}, {0x00, 0x00, 0x00, 0x00, 0x00, 0x04, 0x04, 0x00}, {0x00, 0x00, 0x00, 0x00, 0x04, 0x04, 0x04, 0x00}, {0x00, 0x00, 0x00, 0x04, 0x04, 0x04, 0x04, 0x00}, {0x00, 0x00}, {0x00, 0x00, 0x04, 0x04, 0x04, 0x04, 0x00}, {0x00, 0x04, 0x04, 0x04, 0x04, 0x04, 0x04, 0x00}, {0x04, 0x04, 0x04, 0x04, 0x04, 0x04, 0x04, 0x00}, {0x04, 0x04, 0x04, 0x04, 0x04, 0x04, 0x04, 0x08}, {0x04, 0x04, 0x04, 0x04, 0x04, 0x04, 0x0C, 0x08}, {0x04, 0x04, 0x04, 0x04, 0x04, 0x0C, 0x0C, 0x08 }, {0x04, 0x04, 0x04, 0x04, 0x0C, 0x0C, 0x0C, 0x08}, {0x04, 0x04, 0x04, 0x0C, 0x0C, 0x0C, 0x0C, 0x08}, {0x04, 0x04, 0x0C, 0x0C, 0x0C, 0x0C, 0x0C, 0x08}, {0x04, 0x0C, 0x0C, 0x0C, 0x0C, 0x0C, 0x0C, 0x08}, {0x0C, 0x0C, 0x0C, 0x0C, 0x0C, 0x0C, 0x0C, 0x0x, 0x08, 0x08, 0x08, 0x08, 0x08, 0x08 0, 0x0C, 0x0C, 0x0C, 0x48}, {0x0C, 0x0C, 0x0C, 0x0C, 0x0C, 0x0C, 0x4C, 0x48}, {0x0C, 0x0C, 0x0C, 0x0C, 0x0C, 0x4C, 0x4C, 0x48}, {0x0C, 0x0C, 0x0C, 0x0C, 0x4C, 0x4C, 0x4C, 0x48}, {0x0C, 0x0C, 0x0C, 0x4C, 0x4C, 0x4C, 0x4C, 0x48}, {0x0C, 0x0C, 0x4C, 0x4C, 0x4C, 0x4C, 0x4C, 0x48}, {0x0C, 0x4C, 0x4C, 0x4C, 0x4C, 0x4C, 0x4C, 0x48}, {0x4C, 0x4C, 0x4C, 0x4C, 0x4C, 0x4C, 0x4C, 0x48}} · -εκτύπωση (ώρα, λεπτό, δευτερόλεπτο)

--το τραπέζι ξεκινά στο 0, άρα στο 1 ως επί του δευτερολέπτου [0] = μηδέν)

max7219.write ({animate (borTable (sec [1+ (second/secGap)], min [1+ (minute/minGap)], hor [1+ (hour/horGap)]))))

τέλος -λειτουργία

wifi.setmode (wifi. STATION)

wifi.sta.config (SSID, SSID_PASSWORD) wifi.sta.autoconnect (1)

--διαμόρφωση max7219

max7219 = απαιτεί ("max7219") max7219.setup ({numberOfModules = 1, slaveSelectPin = 8, ένταση = υψηλή ένταση})

-Κύριο Πρόγραμμα

checkOnline = tmr.create ()

tmr.alarm (0, 180000, 1, ώρα)

tmr.alarm (1, 1000, 1, addSecond)

tmr.alarm (2, 500, 1, ενημέρωση)

λειτουργία ζωντανή (ακόμα)

τοπικά καρέ = {{0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02}, {0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0x00}, {0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00}, {0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01}, {0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00}, {0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00}, {0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00}, {0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00}, {0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00}, {0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}, {0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 }, {0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}}; halfSec = halfSec+1 αν halfSec> = 12 τότε halfSec = 0 τέλος -εκτύπωση (halfSec) επιστροφή bxorTable (καρέ [halfSec+1], ακίνητο) τέλος

Βήμα 8: Η στέγαση

Η Στέγαση
Η Στέγαση
Η Στέγαση
Η Στέγαση
Η Στέγαση
Η Στέγαση

Τώρα ήρθε η ώρα να αναδείξετε την απίστευτη δεξιοτεχνία σας και να στεγάσετε το έργο.

Είτε αυτό είτε πάρτε ένα πακέτο amazon από την ανακύκλωση και κάντε μια προσωρινή στέγαση που εξακολουθεί να χρησιμοποιείται σήμερα.

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

Βήμα 9: Κλείσιμο παρατηρήσεων

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

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

Ελπίζω ότι αυτό ήταν κατατοπιστικό και κάντε ερωτήσεις καθώς θα προσπαθήσω να δώσω περισσότερες λεπτομέρειες σε τμήματα που δεν ικανοποιούν πλήρως.

Στην υγειά σας

Συνιστάται: