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

Minecraft Creeper Detector: 6 βήματα (με εικόνες)
Minecraft Creeper Detector: 6 βήματα (με εικόνες)

Βίντεο: Minecraft Creeper Detector: 6 βήματα (με εικόνες)

Βίντεο: Minecraft Creeper Detector: 6 βήματα (με εικόνες)
Βίντεο: STORY TIME - FAMOUS TOLI / KRISTINA EKOU - Official Music Video 2024, Νοέμβριος
Anonim
Image
Image
Minecraft Creeper Detector
Minecraft Creeper Detector
Minecraft Creeper Detector
Minecraft Creeper Detector

Από allwinedesignsAllwine ΣχέδιαΑκολουθήστε περισσότερα από τον συγγραφέα:

Προσαρμόσιμο Digel Jig
Προσαρμόσιμο Digel Jig
Προσαρμόσιμο Digel Jig
Προσαρμόσιμο Digel Jig
Κύκλος της Πέμπτης συσκευής MIDI
Κύκλος της Πέμπτης συσκευής MIDI
Κύκλος της Πέμπτης συσκευής MIDI
Κύκλος της Πέμπτης συσκευής MIDI
Custom Mouse Wheel As PocketNC Jog Wheel (ή καντράν ελέγχου έντασης)
Custom Mouse Wheel As PocketNC Jog Wheel (ή καντράν ελέγχου έντασης)
Custom Mouse Wheel As PocketNC Jog Wheel (ή καντράν ελέγχου έντασης)
Custom Mouse Wheel As PocketNC Jog Wheel (ή καντράν ελέγχου έντασης)

Σχετικά: wholeμουν προγραμματιστής λογισμικού όλη μου τη ζωή, σπούδασα επιστήμη υπολογιστών με έμφαση στα τρισδιάστατα γραφικά στο κολέγιο, ήμουν καλλιτέχνης εφέ για την Dreamworks Animation και δίδαξα τεχνολογία σε παιδιά και ενήλικες εδώ … Περισσότερα για allwinedesigns »

Για μερικά χρόνια, βοήθησα το Παιδικό Μουσείο του Bozeman να αναπτύξει πρόγραμμα σπουδών για το STEAMlab. Έψαχνα πάντα για διασκεδαστικούς τρόπους να ασχοληθώ με τα παιδιά με ηλεκτρονικά και κωδικοποίηση. Το Minecraft είναι ένας εύκολος τρόπος για να τραβήξετε τα παιδιά στην πόρτα και υπάρχουν τόνοι πόρων για να το χρησιμοποιήσετε με διασκεδαστικούς και εκπαιδευτικούς τρόπους. Ο συνδυασμός Minecraft και ηλεκτρονικών ήταν δύσκολο, όμως. Για να βοηθήσω στην ενσωμάτωση έργων Arduino με το Minecraft, κατέληξα να αναπτύξω το δικό μου mod Minecraft με το όνομα SerialCraft. Η ιδέα ήταν ότι θα μπορούσατε να συνδέσετε οποιαδήποτε συσκευή που χρησιμοποιούσε σειριακή επικοινωνία και να στείλετε μηνύματα στο Minecraft και να τα λάβετε χρησιμοποιώντας το mod μου. Τα περισσότερα Arduinos είναι σε θέση να κάνουν σειριακή επικοινωνία μέσω USB, οπότε είναι απλό να συνδέσετε ένα κύκλωμα και να στείλετε ορισμένα δεδομένα μέσω της σειριακής σύνδεσης. Δημιούργησα κιτ ελεγκτών που τα παιδιά θα μπορούσαν να συναρμολογήσουν και να προγραμματίσουν για να ελέγξουν τον χαρακτήρα τους, να ενεργοποιήσουν και να ανταποκριθούν στα σήματα Redstone και να αναβοσβήνουν LED για να τους ειδοποιήσουν για ορισμένα γεγονότα, όπως η χαμηλή ζωή ή όταν ένα ερπετό είναι κοντά. Αυτό το Instructable εστιάζει στη λειτουργία creeper alert και το πάει ένα βήμα παραπέρα χρησιμοποιώντας Adafruit Neopixels και περίβλημα ακρυλικού και κόντρα πλακέ κομμένο με λέιζερ. Ο ανιχνευτής ερπυστριών χρησιμοποιεί ένα ραβδί NeoPixel 8 LED για να σας δώσει πολύτιμες πληροφορίες σχετικά με το πλησιέστερο ερπυστριοφόρο. Όταν όλα τα LED είναι σβηστά, σημαίνει ότι δεν υπάρχουν αναρριχητικά μέσα σε 32 μπλοκ. Όταν όλες οι λυχνίες LED είναι αναμμένες (θα αναβοσβήνουν επίσης), βρίσκεστε στην ακτίνα έκρηξης 3 μπλοκ του ερπυσμού (η ακτίνα στην οποία θα σταματήσει το ερπυστήρα, ανάψτε την ασφάλεια και εκραγεί). Οτιδήποτε ενδιάμεσα μπορεί να σας δώσει μια εκτίμηση ως προς το πόσο μακριά είναι ένας αναρριχητής από εσάς. Όταν ανάβουν 4 από τις 8 λυχνίες LED, είστε περίπου 16 τετράγωνα μακριά από το ερπυστριοφόρο ορίζοντα, το οποίο είναι το εύρος στο οποίο αν σας δει ο αναρριχητής, θα επιτεθεί. Οι λυχνίες LED θα αρχίσουν να αναβοσβήνουν όταν βρίσκεστε εντός της ακτίνας έκρηξης του ερπυστήρα (7 μπλοκ). Είναι επίσης η ακτίνα από την οποία αν βγείτε έξω, ο αναρριχητικός θα σταματήσει την ασφάλεια του και θα συνεχίσει να σας ακολουθεί. Με αυτή τη γνώση, θα πρέπει να είστε σε θέση να αποφύγετε τυχόν απροσδόκητες επιθέσεις ερπυσμού ή να κυνηγήσετε τυχόν κοντινούς αναρριχητές!

Σε αυτό το Instructable, θα εξετάσουμε όλα όσα χρειάζεστε για να δημιουργήσετε τον δικό σας Creeper Detector και πώς να εγκαταστήσετε και να χρησιμοποιήσετε το mod SerialCraft που σας επιτρέπει να διασυνδέσετε το Minecraft με τα έργα σας Arduino. Αν σας αρέσει, σκεφτείτε να το ψηφίσετε στο Minecraft Contest and Epilog Challenge. Ας αρχίσουμε!

Βήμα 1: Τι θα χρειαστείτε

Αυτό που θα χρειαστείτε
Αυτό που θα χρειαστείτε
Αυτό που θα χρειαστείτε
Αυτό που θα χρειαστείτε
Αυτό που θα χρειαστείτε
Αυτό που θα χρειαστείτε
Αυτό που θα χρειαστείτε
Αυτό που θα χρειαστείτε

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

- Χρησιμοποίησα ένα ραβδί 8 LED RGBW NeoPixel, αλλά δεν χρησιμοποίησα καθόλου το λευκό (W) LED, έτσι θα λειτουργήσει ένα ραβδί 8 LED RGB NeoPixel. Μπορείτε να το αντικαταστήσετε με οποιοδήποτε προϊόν RGB ή RGBW NeoPixel, αλλά υπάρχουν εκτιμήσεις ισχύος που θα συζητήσουμε στο επόμενο βήμα και αλλαγές στον κώδικα που θα επισημάνω όταν φτάσουμε εδώ. Μπορεί να θέλετε να επιλέξετε ένα που δεν απαιτεί συγκόλληση, αλλά θα σας δείξω πώς κόλλησα τα καλώδια στο ραβδί.

- Ένας μικροελεγκτής και το αντίστοιχο καλώδιο USB του. Χρησιμοποίησα το RedBoard του SparkFun που είναι κλώνος Arduino Uno. Χρησιμοποιεί μια υποδοχή Mini B USB (δεν είμαι σίγουρος γιατί είναι τόσο ακριβό στο Amazon, μπορείτε να το πάρετε απευθείας από το SparkFun εδώ ή να πάτε για εναλλακτική λύση στο Amazon, όπως αυτό). Θα χρησιμοποιήσουμε μια βιβλιοθήκη Arduino για να απλοποιήσουμε την κωδικοποίηση, αλλά χρησιμοποιεί μόνο τη βασική σειριακή επικοινωνία, ώστε η βιβλιοθήκη να είναι πιθανό να μεταφερθεί για να λειτουργεί σε οποιονδήποτε μικροελεγκτή που μπορεί να κάνει σειριακό USB. Σχεδόν κάθε Arduino θα κάνει. Βεβαιωθείτε ότι έχει σειριακό USB (οι περισσότεροι έχουν, αλλά μερικοί δεν έχουν, όπως το αρχικό μπιχλιμπίδι).

- Σύρματα, κολλητήρι και συγκόλληση (οι απογυμνωτές σύρματος και ένα τρίτο χέρι είναι επίσης χρήσιμα). Θα κολλήσουμε σύρματα στο ραβδί NeoPixel για να μπορέσει να συνδεθεί σε ένα Arduino. Αυτά μπορεί να είναι περιττά εάν επιλέξετε ένα προϊόν NeoPixel που έχει ήδη συνδεδεμένα καλώδια ή έναν μικροελεγκτή που συνοδεύει NeoPixels (όπως το Circuit Playground Express, για το οποίο έχω συμπεριλάβει τον κωδικό σε μελλοντικό βήμα). Ο παράγοντας φόρμας του 8 LED stick είναι αυτό για το οποίο σχεδίασα το περίβλημα του Creeper Detector, οπότε θα πρέπει να κάνετε τροποποιήσεις ή να πάτε χωρίς περίβλημα αν επιλέξετε διαφορετικό παράγοντα μορφής.

- Υλικά περιβλήματος. Χρησιμοποίησα ακρυλικό παγωμένο 1/8 ", διαφανές ακρυλικό 1/8" και κόντρα πλακέ 1/8 "που έκοψα με λέιζερ και βίδες και παξιμάδια μηχανής M3 για να το κρατήσω μαζί. Χρησιμοποίησα επίσης μερικές ξύλινες βίδες #2 x 1/4 "για να στερεώσω το ραβδί NeoPixel στο περίβλημα. Το περίβλημα είναι περιττό, αλλά σίγουρα προσθέτει κάποια επιπλέον ανατριχιαστική αίσθηση. Το περίβλημα μου σχεδιάστηκε για να φιλοξενεί μόνο τα NeoPixels, όχι τον μικροελεγκτή. Εάν θέλετε να είναι εντελώς αυτόνομο, θα πρέπει να κάνετε τροποποιήσεις!

- Ένας λογαριασμός Minecraft, Minecraft Forge 1.7.10 και SerialCraft (το mod και η βιβλιοθήκη Arduino). Ο ανιχνευτής Creeper βασίζεται στο mod SerialCraft, το οποίο λειτουργεί μόνο στο Minecraft 1.7.10 με το Minecraft Forge. Θα συζητήσουμε πώς να τα κατεβάσετε και πώς να τα ρυθμίσετε σε μελλοντικά βήματα.

- Το Arduino IDE ή ένας λογαριασμός στο Arduino Create και το πρόσθετο Arduino Create (προτείνω να χρησιμοποιήσετε το Arduino Create καθώς θα μπορείτε να μεταβείτε απευθείας στο σκίτσο Arduino Create μου και να το μεταγλωττίσετε και να το ανεβάσετε από εκεί).

Βήμα 2: Το κύκλωμα

Το Κύκλωμα
Το Κύκλωμα
Το Κύκλωμα
Το Κύκλωμα
Το Κύκλωμα
Το Κύκλωμα
Το Κύκλωμα
Το Κύκλωμα

Το κύκλωμα είναι πολύ απλό, μόλις 3 καλώδια, το NeoPixel stick και ένα Arduino. Όλα τα Adofruit NeoPixels διαθέτουν το δικό τους ελεγκτή που επιτρέπει σε ένα μόνο καλώδιο δεδομένων να ελέγχει οποιονδήποτε αριθμό LED με αλυσίδα. Το συνέδεσα στην καρφίτσα 12 στο Arduino μου.

Τα άλλα δύο καλώδια είναι για ισχύ και γείωση. Για να τροφοδοτήσουμε τα NeoPixels, θα χρειαστούμε μια πηγή ενέργειας 5V. Ωστόσο, πρέπει να βεβαιωθούμε ότι η πηγή ενέργειας είναι ικανή να παρέχει αρκετό ρεύμα. Κάθε NeoPixel μπορεί να αντλήσει έως και 60mA (80mA με LED RGBW) σε πλήρη φωτεινότητα. Με 8 LED, αυτό σημαίνει ότι το μέγιστο ρεύμα είναι 480mA (640mA με LED RGBW). Το Arduino απαιτεί m 40mA μόνο για να ενεργοποιηθεί. Με την πρώτη ματιά, φαίνεται ότι θα χρειαστεί να χρησιμοποιήσουμε εξωτερικό τροφοδοτικό. Το USB επιτρέπει το πολύ 500mA το οποίο θα μπορούσαμε να ξεπεράσουμε αν θέσουμε όλα τα LED μας στο μέγιστο (480+40 = 520 με RGB LED ή 640+40 = 680 με RGBW LED). Ευτυχώς, δεν θα χρειαστεί ποτέ να μετατρέψουμε τα LED στην πλήρη φωτεινότητά τους (η πλήρης φωτεινότητα είναι αρκετά εκτυφλωτική), οπότε θα είμαστε ασφαλείς χρησιμοποιώντας τη ράγα 5V του Arduino μας, συνδεδεμένη μέσω USB. Στην πραγματικότητα, χρησιμοποιώντας το πράσινο χρώμα που έχω επιλέξει θα χρησιμοποιώ μόνο max 7-8mA max ανά LED για συνολικά max 100mA max τρέχουσα κλήρωση, πολύ κάτω από το 500mA max που επιβάλλεται από USB.

Έτσι, το μόνο που χρειάζεται να κάνουμε είναι να συνδέσουμε τον πείρο DIN του NeoPixel stick στο pin 12 (σχεδόν κάθε καρφίτσα θα λειτουργήσει, αλλά αυτός είναι που χρησιμοποίησα), ο πείρος 5V στο NeoPixel κολλάει στα 5V στο Arduino και μια καρφίτσα GND στο NeoPixel stick στο GND στο Arduino. Αρχικά, πρέπει να κολλήσουμε τα καλώδια μας στο ραβδί NeoPixel.

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

Βήμα 3: Ο κώδικας

ΕΝΗΜΕΡΩΣΗ (19/2/2018): Δημοσίευσα ένα νέο σκίτσο Arduino στο repo του GitHub που περιλαμβάνει όλες τις απαραίτητες αλλαγές για να λειτουργήσει ο Creeper Detector στο Circuit Playground Express (δεν λειτουργεί με το περίβλημα, αλλά τα έχει όλα τα LED και μερικοί αισθητήρες ενσωματωμένοι στην πλακέτα, επομένως δεν απαιτείται συγκόλληση). Περιλαμβάνει κάποια επιπλέον λειτουργικότητα που συνδέεται με τα κουμπιά και τον διακόπτη διαφάνειας!

Για τον πλήρη κώδικα, μπορείτε να μεταβείτε στο Arduino Create sketch ή στο αποθετήριο GitHub. Ακολουθήστε τις οδηγίες εδώ εάν δεν είστε σίγουροι πώς να μεταγλωττίσετε και να ανεβάσετε τον κώδικα. Εάν επιλέξετε να χρησιμοποιήσετε το Arduino IDE, θα χρειαστεί να εγκαταστήσετε τη βιβλιοθήκη SerialCraft Arduino. Ακολουθήστε τα βήματα στην ενότητα "Εισαγωγή ενός ταχυδρομείου" εδώ για να το κάνετε. Εάν χρησιμοποιείτε το Arduino Create Web Editor, μπορείτε να μεταβείτε απευθείας στο σκίτσο μου μόλις ρυθμιστείτε και μπορείτε να αποφύγετε την ανάγκη εγκατάστασης της βιβλιοθήκης SerialCraft.

Θα εξετάσω τι κάνει ο κώδικας παρακάτω.

Οι δύο πρώτες γραμμές περιλαμβάνουν βιβλιοθήκες. Το πρώτο, SerialCraft.h, είναι μια βιβλιοθήκη που έγραψα και επιτρέπει την εύκολη επικοινωνία με το mod SerialCraft. Θα σας καθοδηγήσω στις δυνατότητες που χρησιμοποιώ παρακάτω, αλλά μπορείτε να δείτε παραδείγματα και κάποια τεκμηρίωση που χρειάζεται κάποια εργασία στο αποθετήριο GitHub. Η δεύτερη βιβλιοθήκη είναι η βιβλιοθήκη NeoPixel της Adafruit και παρέχει ένα API για τη ρύθμιση των LED στις λωρίδες NeoPixel.

#περιλαμβάνω

#περιλαμβάνω

Οι γραμμές 4-17 είναι σταθερές που μπορεί να αλλάξουν με βάση τη ρύθμισή σας. Εάν χρησιμοποιήσατε μια ταινία NeoPixel με διαφορετικό αριθμό εικονοστοιχείων ή εάν συνδέσατε τα NeoPixels σας σε διαφορετικό pin, θα πρέπει να κάνετε αλλαγές στα δύο πρώτα ορισμούς, NUMLEDS και PIN. Θα πρέπει να αλλάξετε το LED_TYPE στον τύπο που έχετε, δοκιμάστε να αλλάξετε το NEO_GRBW σε NEO_RGB ή NEO_RGBW εάν αντιμετωπίζετε προβλήματα. Μπορείτε να αλλάξετε το BLOCKS_PER_LED εάν θέλετε να προσαρμόσετε το εύρος που μπορείτε να εντοπίσετε αναρριχητικά.

// Αλλάξτε αυτές τις μεταβλητές για να ταιριάζουν με τις ρυθμίσεις σας

// αριθμός λυχνιών LED στη λωρίδα σας #καθορίστε NUMLEDS 8 // καρφίτσα ότι η καρφίτσα δεδομένων LED είναι συνδεδεμένη με το #define PIN 12 // αριθμός μπλοκ που αντιπροσωπεύει κάθε LED #define BLOCKS_PER_LED 4 // Ο τύπος της λωρίδας LED που έχετε (αν τα LED σας δεν γίνονται πράσινα, τότε θα πρέπει να αλλάξετε τη σειρά του GRBW) #define LED_TYPE (NEO_GRBW+NEO_KHZ800) // END μεταβλητές

Οι γραμμές 19-27 καθορίζουν ορισμένες τιμές που θα χρησιμοποιήσουμε αργότερα. DETONATE_DIST είναι η απόσταση στο Minecraft από την οποία ένας ερπυστριοφόρος θα σταματήσει να κινείται, θα ανάψει την ασφάλεια του και θα εκραγεί. Το SAFE_DIST είναι η ακτίνα έκρηξης ενός ερπυσμού. Η αλλαγή αυτών των τιμών θα επηρεάσει τη συμπεριφορά των LED, αλλά προτείνω να διατηρηθούν όπως είναι καθώς αντικατοπτρίζουν συμπεριφορές στο Minecraft. Το MAX_DIST είναι η μέγιστη απόσταση στην οποία θα εντοπίσουμε τους αναρριχητές, η οποία βασίζεται στον αριθμό των LED που έχει η ταινία NeoPixel και στη σταθερά BLOCKS_PER_LED που ορίσαμε παραπάνω.

// Αυτές είναι τιμές που θα χρησιμοποιηθούν στους υπολογισμούς μας για τη φωτεινότητα των LED

// απόσταση αναρριχητικό θα αρχίσει να εκρήγνυται #define DETONATE_DIST 3 // απόσταση είμαστε ασφαλείς από μια ανατριχιαστική έκρηξη (θα πάρετε ζημιά αν βρίσκεστε σε αυτήν την απόσταση) #define SAFE_DIST 7 // μέγιστη απόσταση που παρακολουθούμε έναν αναρριχητικό #define MAX_DIST (NUMLEDS*BLOCKS_PER_LED)

Οι γραμμές 29-36 ορίζουν ορισμένες μεταβλητές που θα χρησιμοποιήσουμε σε όλο το πρόγραμμα. Η μεταβλητή sc είναι ένα αντικείμενο SerialCraft που παρέχει μια εύχρηστη διεπαφή για επικοινωνία με το mod SerialCraft Minecraft. Θα δείτε πώς το χρησιμοποιούμε παρακάτω. dist είναι μια μεταβλητή που θα ορίσουμε στην απόσταση στο πλησιέστερο ερπυστριοφόρο όταν λάβουμε το μήνυμα creeper distance από το mod SerialCraft. Η ταινία είναι ένα αντικείμενο Adafruit_NeoPixel που παρέχει μεθόδους για τον έλεγχο των ταινιών NeoPixel.

// Αυτό είναι το αντικείμενο SerialCraft για επικοινωνία με το mod SerialCraft Minecraft

SerialCraft sc; // απόσταση από creeper int dist = 100; // Αρχικοποιήστε μια λωρίδα LED, ίσως χρειαστεί να αλλάξετε την 3η ταινία Adafruit_NeoPixel = Adafruit_NeoPixel (NUMLEDS, PIN, LED_TYPE).

Οι γραμμές 38-47 είναι η λειτουργία εγκατάστασης. Όλα τα σενάρια Arduino πρέπει να έχουν ένα. Λειτουργεί μία φορά όταν το Arduino είναι ενεργοποιημένο, επομένως είναι ένα εξαιρετικό μέρος για την προετοιμασία μεταβλητών. Καλούμε τη μέθοδο setup () στο αντικείμενο SerialCraft για να προετοιμάσουμε τη θύρα Serial στον ίδιο ρυθμό baud με αυτόν που έχει ρυθμιστεί στο SerialCraft mod (115200). Στη συνέχεια, καλούμε τη μέθοδο RegisterCreeperDistanceCallback, ώστε να μπορούμε να ανταποκριθούμε σε μηνύματα ανατριχιαστικής απόστασης που μας αποστέλλονται από το mod SerialCraft. Περιοδικά θα καλούμε τη μέθοδο sc.loop () λίγο πιο κάτω. Στη μέθοδο βρόχου, ελέγχει αν έχουμε λάβει μηνύματα από το mod SerialCraft ή έχουμε ενεργοποιήσει οποιαδήποτε συμβάντα όπως το πάτημα ενός κουμπιού και καλεί την αντίστοιχη συνάρτηση που έχουμε καταχωρίσει για να το χειριστούμε. Το μόνο που κάνουμε είναι να ψάχνουμε την πλησιέστερη απόσταση ερπυσμού, οπότε είναι η μόνη συνάρτηση που καταχωρούμε. Θα δείτε παρακάτω, ότι το μόνο που κάνουμε σε αυτήν τη συνάρτηση είναι να ορίσουμε τη μεταβλητή dist μας, την οποία θα χρησιμοποιήσουμε κατά την ενημέρωση των LED. Τέλος, προετοιμάζουμε τη λωρίδα LED και σβήνουμε όλα τα LED χρησιμοποιώντας strip.begin () και strip.show ().

void setup () {// αρχικοποίηση SerialCraft sc.setup (); // καταχωρίστε μια κλήση απόστασης ερπυστριοφόρου για να λάβετε την απόσταση στο πλησιέστερο αναρριχητικό sc.registerCreeperDistanceCallback (creeper). // αρχικοποίηση της λωρίδας LED strip.begin (); strip.show (); }

Οι γραμμές 49-80 ορίζουν τη λειτουργία βρόχου. Η λειτουργία βρόχου είναι εκεί που συμβαίνει όλη η μαγεία. Η συνάρτηση βρόχου καλείται επανειλημμένα. Όταν τελειώσει η λειτουργία του βρόχου, ξεκινάει πάλι στην κορυφή. Σε αυτό, χρησιμοποιούμε τη μεταβλητή dist και τις σταθερές μας στο πάνω μέρος του αρχείου για να καθορίσουμε την κατάσταση κάθε LED.

Στην κορυφή της συνάρτησης βρόχου ορίζουμε μερικές μεταβλητές.

// κυμαίνεται από 0 όταν> = MAX_DIST μακριά από την ακτίνα έκρηξης του ερπυστρίου έως NUMLEDS*BLOCKS_PER_LED όταν βρίσκεται πάνω από το αναρριχητικό

int blocksFromCreeperToMax = περιορισμός (MAX_DIST+DETONATE_DIST-dist, 0, MAX_DIST); int curLED = blocksFromCreeperToMax/BLOCKS_PER_LED; // κυμαίνεται από 0 έως NUMLEDS-1 int curLEDLevel = (blocksFromCreeperToMax%BLOCKS_PER_LED+1); // κυμαίνεται από 1 έως BLOCKS_PER_LED

Δεδομένου ότι ανάβουμε τις λυχνίες LED με βάση το πόσο κοντά είμαστε στο ερπυστριοφόρο, πρέπει να αντιστρέψουμε αποτελεσματικά τη μεταβλητή απόστασης. Ορίζουμε τα blocksFromCreeperToMax για να αντιπροσωπεύουν τον αριθμό των μπλοκ που βρίσκεται το creeper από τη μέγιστη απόσταση που φροντίζουμε να παρακολουθούμε. Όταν βρισκόμαστε στην κορυφή του αναρριχητικού σκάφους (ή μάλλον, λιγότερο ή ίσο με DETONATE_DIST μακριά από το ερπυστριοφόρο), τα μπλοκFromCreeperToMax θα είναι MAX_DIST. Όταν είμαστε πέραν του MAX_DIST μακριά από ένα ερπυστριοφόρο, το blockFromCreeperToMax θα είναι 0. Αυτή η μεταβλητή θα είναι χρήσιμη όταν ανάβουμε τα LED μας όσο μεγαλύτερα είναι, τόσο περισσότερα LED ανάβουμε.

Το curled είναι το κορυφαίο LED που θα ανάψει. Κάθε 4 μπλοκ που κινούμαστε προς ένα ερπυστριο θα ανάβουν ένα επιπλέον LED (αυτός ο αριθμός μπορεί να αλλάξει στο πάνω μέρος του αρχείου με τη μεταβλητή BLOCKS_PER_LED). Ρυθμίζουμε τη φωτεινότητα της κορυφαίας λυχνίας LED, ώστε να μπορούμε να δούμε αλλαγές στην απόσταση μέχρι ένα μόνο μπλοκ. Το curLEDLevel είναι μια μεταβλητή που θα χρησιμοποιήσουμε για να υπολογίσουμε αυτές τις αλλαγές φωτεινότητας. Κυμαίνεται από 1 έως 4 (ή ό, τι έχει οριστεί ως BLOCKS_PER_LED).

Θα χρησιμοποιήσουμε αυτές τις μεταβλητές όταν περιτυλίγουμε σε κάθε LED:

για (uint16_t i = 0; i <strip.numPixels (); i ++) {if (i <= curLED) {// πιο φωτεινό όταν βρίσκεται στην ακτίνα έκρηξης του ερπυσμού, απενεργοποιείται όταν ο ερπυσμός είναι NUMLEDS*BLOCKS_PER_LED μακριά ένταση πλωτήρα = (float) μπλοκFromCreeperToMax /MAX_DIST; εάν (i == curled) {// τελευταίο LED αναμμένο // κάνει το τελευταίο LED πιο φωτεινό καθώς πλησιάζουμε στο επόμενο float LED lastIntensity = (float) curLEDLevel/BLOCKS_PER_LED; ένταση *= lastIntensity; } if (dist <SAFE_DIST) {ένταση *= (millis ()/75)%2; } ένταση = ισχύς (ένταση, 2,2); // καμπύλη γάμμα, κάνει τη φωτεινότητα LED να φαίνεται γραμμική στο μάτι μας όταν η τιμή φωτεινότητας δεν είναι πραγματικά strip.setPixelColor (i, strip. Color (ένταση 10*, ένταση 70*, ένταση 10*, 0)). } else {strip.setPixelColor (i, strip. Color (0, 0, 0, 0)); }}

Εάν η τρέχουσα λυχνία LED που ενημερώνουμε είναι μικρότερη ή ίση με τη μεταβλητή curLED, τότε γνωρίζουμε ότι πρέπει να είναι αναμμένη και πρέπει να υπολογίσουμε τη φωτεινότητά της. Διαφορετικά, απενεργοποιήστε το. Χρησιμοποιούμε μια μεταβλητή έντασης που θα έχει τιμή μεταξύ 0 και 1 για να αντιπροσωπεύει τη φωτεινότητα του LED μας. Όταν ρυθμίζουμε το τελικό χρώμα της λυχνίας LED, θα πολλαπλασιάσουμε την ένταση με το χρώμα (10, 70, 10), ένα πράσινο χρώμα. Χρησιμοποιούμε τη μεταβλητή blocksFromCreeperToMax για να λάβουμε ένα ποσοστό διαιρώντας με MAX_DIST, οπότε τα LED θα είναι πιο φωτεινά όταν είμαστε κοντά σε ένα ερπυστριοφόρο. Εάν υπολογίζουμε τη φωτεινότητα του curLED, τότε αλλάζουμε τη φωτεινότητά του για κάθε τεμάχιο απόστασης που βρίσκεται το creeper από εσάς έως τη ρύθμιση BLOCKS_PER_LED. Αυτή είναι μια λεπτή αλλαγή, αλλά μπορεί να χρησιμοποιηθεί για να διαπιστωθεί εάν ένας ερπυσμός πλησιάζει ή απομακρύνεται σε ένα λεπτότερο κόκκο από τα 4 μπλοκ που χρειάζονται για να ανάψει ένα επιπλέον LED. Στη συνέχεια, ελέγχουμε αν είμαστε εντός της ακτίνας έκρηξης του ερπυσμού και αναβοσβήνουμε αν είμαστε. Η έκφραση (millis ()/75)%2 θα υπολογίσει επανειλημμένα στο 0 για 75 χιλιοστά του δευτερολέπτου και στη συνέχεια το 1 για 75 χιλιοστά του δευτερολέπτου, οπότε ο πολλαπλασιασμός της έντασής μας με αυτήν την έκφραση θα προκαλέσει τα LED να αναβοσβήνουν.

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

Οι δύο τελευταίες γραμμές της λειτουργίας βρόχου μας ενημερώνουν τις λυχνίες LED στις τιμές που μόλις ορίσαμε και καλούν στη συνέχεια τυχόν χειριστές που πρέπει να κληθούν από το SerialCraft (στην περίπτωση αυτή η λειτουργία creeper distance, εάν λάβαμε μηνύματα creeper distance από το mod SerialCraft) Το

strip.show ();

sc.loop ();

Οι τελευταίες γραμμές του σεναρίου μας είναι η λειτουργία creeper, όπου αποθηκεύουμε την απόσταση από το πλησιέστερο creeper όταν το mod SerialCraft μας στέλνει ένα μήνυμα με αυτές τις πληροφορίες.

void creeper (int d) {dist = d; }

Τώρα απλά πρέπει να μεταγλωττίσετε και να ανεβάσετε τον κώδικα!

Βήμα 4: Περίβλημα

Περίφραξη
Περίφραξη
Περίφραξη
Περίφραξη
Περίφραξη
Περίφραξη

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

Το ραβδί NeoPixel είναι τοποθετημένο στο πίσω μέρος του κόντρα πλακέ χρησιμοποιώντας τις βίδες #2 ξύλου και νάιλον αποστάτες. Τα ακρυλικά αναρριχητικά μπλέκονται σε δύο κομμάτια από κόντρα πλακέ με τετράγωνες τρύπες. Πριν το κάνετε αυτό, βεβαιωθείτε ότι θυμάστε ποιο χρώμα καλωδίου πηγαίνει σε ποιο μαξιλάρι στο ραβδί.

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

Το παγωμένο ακρυλικό διανέμει το φως από τα μεμονωμένα LED και το διαφανές ακρυλικό δείχνει την αναρριχητική χάραξη καλύτερα, οπότε και τα δύο συνδυασμένα μου φαίνονται καλύτερα από το καθένα ξεχωριστά. Μόλις τα αναρριχητικά είναι στη θέση τους, τοποθετήστε όλα τα κομμάτια κόντρα πλακέ μαζί και στερεώστε τα μαζί με τις βίδες και τα παξιμάδια της μηχανής Μ3. Στη συνέχεια, επανασυνδέστε τα καλώδια σε 5V, GND και ακίδα 12.

Βήμα 5: Το Minecraft Forge και το SerialCraft Mod

Το Minecraft Forge και το SerialCraft Mod
Το Minecraft Forge και το SerialCraft Mod
Το Minecraft Forge και το SerialCraft Mod
Το Minecraft Forge και το SerialCraft Mod
Το Minecraft Forge και το SerialCraft Mod
Το Minecraft Forge και το SerialCraft Mod

Ξεκινήστε δημιουργώντας έναν λογαριασμό Minecraft και, στη συνέχεια, πραγματοποιήστε λήψη και εγκατάσταση του προγράμματος -πελάτη Minecraft.

Θα χρειαστείτε το Minecraft Forge για την έκδοση 1.7.10 για να μπορέσετε να εγκαταστήσετε το mod SerialCraft. Μεταβείτε στη σελίδα λήψης 1.7.10 Minecraft Forge. Ο ιστότοπος Minecraft Forge έχει πολλές διαφημίσεις που επιδιώκουν να σας κάνουν να κάνετε κλικ στο λάθος πράγμα και να σας οδηγήσουν κάπου αλλού. Ακολουθήστε τις παραπάνω εικόνες για να διασφαλίσετε ότι θα παραμείνετε στο σωστό δρόμο! Θα θέλετε να κάνετε κλικ στο κουμπί Installer στην προτεινόμενη έκδοση 1.7.10 (ή στην πιο πρόσφατη, δεν είμαι σίγουρος για τη διαφορά). Θα μεταφερθείτε σε μια σελίδα με ένα banner στο επάνω μέρος της σελίδας που λέει "Το περιεχόμενο κάτω από αυτήν την κεφαλίδα είναι διαφήμιση. Μετά την αντίστροφη μέτρηση, κάντε κλικ στο κουμπί Παράβλεψη στα δεξιά για να ξεκινήσετε τη λήψη του Forge." Βεβαιωθείτε ότι περιμένετε την αντίστροφη μέτρηση και, στη συνέχεια, κάντε κλικ στο κουμπί Παράλειψη για να ξεκινήσει η λήψη.

Κάντε διπλό κλικ στο πρόγραμμα εγκατάστασης αφού ολοκληρωθεί η λήψη. Αφήστε τις προεπιλεγμένες ρυθμίσεις (Install Client και την προεπιλεγμένη διαδρομή που καθορίζει) και, στη συνέχεια, κάντε κλικ στο OK. Θα εγκαταστήσει το Minecraft Forge. Όταν τελειώσει, θα μπορείτε να ξεκινήσετε το Minecraft Launcher, αλλά θα υπάρχει μια επιπλέον επιλογή για να επιλέξετε την έκδοση 1.7.10 του Forge (δείτε την παραπάνω εικόνα).

Τώρα πρέπει να εγκαταστήσουμε το mod SerialCraft στον κατάλογο mods σας. Κατεβάστε την τελευταία έκδοση του mod SerialCraft εδώ. Θα χρειαστείτε επίσης τη βιβλιοθήκη jssc. Αποσυμπιέστε και τα δύο αρχεία, τα οποία θα σας αφήσουν με δύο αρχεία.jar. Θα πρέπει να βάλετε αυτά τα αρχεία στο φάκελο mods σας. Στα Windows, θα πρέπει να μπορείτε να μεταβείτε στην επιλογή Εκτέλεση από το μενού έναρξης και να εισαγάγετε %appdata %\. Minecraft / mods πριν κάνετε κλικ στην επιλογή Εκτέλεση. Σε Mac, μπορείτε να μεταβείτε στην Αρχική σελίδα/Βιβλιοθήκη/Υποστήριξη εφαρμογών/minecraft/mods. Ρίξτε τα δύο αρχεία.jar στο φάκελο που μόλις ανοίξατε. Τώρα τρέξτε το Minecraft και ξεκινήστε την έκδοση 1.7.10 Forge. Θα πρέπει να μπορείτε να κάνετε κλικ στο Mods και να δείτε το SerialCraft να αναγράφεται στην αριστερή πλευρά.

Βήμα 6: Χρήση του Mod SerialCraft

Χρήση του SerialCraft Mod
Χρήση του SerialCraft Mod

Τώρα που έχετε εγκαταστήσει το mod SerialCraft, θα πρέπει να εισαγάγετε έναν κόσμο και να αρχίσετε να το χρησιμοποιείτε. Δημιουργήστε έναν νέο κόσμο ή ανοίξτε έναν από τους αποθηκευμένους κόσμους σας (εάν θέλετε να παίξετε σε χάρτη πολλών παικτών, θα πρέπει να διασφαλίσετε ότι ο διακομιστής και όλοι οι πελάτες που συνδέονται σε αυτόν έχουν εγκατεστημένο το mod SerialCraft). Βεβαιωθείτε ότι ο Creeper Detector είναι συνδεδεμένος στον υπολογιστή σας και, στη συνέχεια, πατήστε το πλήκτρο K. Θα πρέπει να εμφανίζει ένα διάλογο όπως η παραπάνω εικόνα (στα Windows, αντί /dev/tty.usbserial… θα πρέπει να λέει κάτι σαν COM1). Εάν δεν εμφανίζεται τίποτα, βεβαιωθείτε ότι έχετε συνδέσει το Creeper Detector. Κάντε κλικ στο κουμπί Σύνδεση και, στη συνέχεια, πατήστε Escape. Εάν ο κωδικός σας έχει μεταγλωττιστεί και μεταφορτωθεί σωστά, ο Creeper Detector σας θα πρέπει να ξεκινήσει! Εάν ένα Creeper βρίσκεται εντός 32 μπλοκ, θα πρέπει να ανάψει. Καλο κυνηγι!

Αν σας άρεσε αυτό το Instructable, σκεφτείτε να το ψηφίσετε στο Minecraft Contest and Epliog Challenge!

Minecraft Challenge 2018
Minecraft Challenge 2018
Minecraft Challenge 2018
Minecraft Challenge 2018

Δεύτερο Βραβείο στο Minecraft Challenge 2018

Συνιστάται: