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

Αυτόματο άνοιγμα τυφλών με χρήση EV3: 6 βήματα
Αυτόματο άνοιγμα τυφλών με χρήση EV3: 6 βήματα

Βίντεο: Αυτόματο άνοιγμα τυφλών με χρήση EV3: 6 βήματα

Βίντεο: Αυτόματο άνοιγμα τυφλών με χρήση EV3: 6 βήματα
Βίντεο: IBADAH PENDALAMAN ALKITAB, 06 MEI 2021 - Pdt. Daniel U. Sitohang 2024, Νοέμβριος
Anonim
Αυτόματο άνοιγμα τυφλών με χρήση EV3
Αυτόματο άνοιγμα τυφλών με χρήση EV3
Αυτόματο άνοιγμα τυφλών με χρήση EV3
Αυτόματο άνοιγμα τυφλών με χρήση EV3

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

Βήμα 1: Πιθανές ιδέες ή λύσεις

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

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

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

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

Βήμα 2: Δημιουργία της Συνέλευσης

Κάνοντας τη Συνέλευση
Κάνοντας τη Συνέλευση
Κάνοντας τη Συνέλευση
Κάνοντας τη Συνέλευση

Έκανα αυτό το έργο χρησιμοποιώντας το Lego mindstorms EV3 μου το οποίο έχει λειτουργίες που πρέπει να δείξω ότι το έργο θα μπορούσε να λειτουργήσει και είμαι εξοικειωμένος με το λογισμικό που σίγουρα βοήθησε πολύ. Δεδομένου ότι ο τυφλός χρησιμοποιεί μια αλυσίδα σφαιρών για να οδηγήσει το καρούλι, με το οποίο τα γρανάζια της Lego είναι ασυμβίβαστα, αποφάσισα ότι η καλύτερη λύση ήταν να σχεδιάσω ένα γρανάζι με τη σωστή απόσταση των σφαιρών στο εξωτερικό- με την τυπική τρύπα «σταυρού σχήματος» κέντρο, όπου στη συνέχεια θα εκτύπωνα 3D το σχέδιο. Σε αυτό το σημείο έφτιαξα επίσης ένα κουμπί βαθμονόμησης και έβαλα έναν αισθητήρα φωτός στο παράθυρό μου καθώς και κουμπί για να λειτουργήσει ως παράκαμψη.

Βήμα 3: Σχεδιάζοντας το Blind Gear

Σχεδιάζοντας το Blind Gear
Σχεδιάζοντας το Blind Gear
Σχεδιάζοντας το Blind Gear
Σχεδιάζοντας το Blind Gear
Σχεδιάζοντας το Blind Gear
Σχεδιάζοντας το Blind Gear
Σχεδιάζοντας το Blind Gear
Σχεδιάζοντας το Blind Gear

Αποσυναρμολόγησα το τυφλό για να δω πώς φαίνεται ο στρόφαλος με περισσότερες λεπτομέρειες. Κατά τη διάρκεια της αποσυναρμολόγησης βρήκα ένα μικρό εργαλείο 16 δοντιών το οποίο κρατήθηκε στη θέση του από ένα τεντωμένο πηνίο, αυτό ήταν το κομμάτι που έψαχνα. Αφού σχεδίασα ένα αντίγραφο του γραναζιού, πρόσθεσα τις απαιτούμενες οπές συμβατές με το Lego, εκτύπωσα τα 3 ξεχωριστά μέρη και τελικά τα ένωσα μαζί με το superglue. Είχα αρχικά προβλήματα με το να κάνω το μέρος Lego συμβατό, με την έννοια ότι ο τρισδιάστατος εκτυπωτής μου δεν είχε την ανάλυση να κάνει την τρύπα "x" επαρκώς, ωστόσο δεν είχε προβλήματα με τις κυκλικές οπές εκατέρωθεν του. Έτσι αντικατέστησα το "x" με μια κυκλική τρύπα και τυπώθηκε μια χαρά. Στη συνέχεια, μετά από μια μικρή δοκιμή, μπορούσα να δω ότι θα μπορούσε να χειριστεί τη ροπή και το βάρος από την περσίδα. Θα συνδέσω τα σχέδιά μου για τον εξοπλισμό παρακάτω ή μπορείτε να το βρείτε στο Thingiverse στη διεύθυνση:

Βήμα 4: Κωδικοποίηση των τυφλών

Κωδικοποίηση των Τυφλών
Κωδικοποίηση των Τυφλών

Wantedθελα κώδικα που θα άνοιγε και θα έκλεινε αυτόματα το blind όταν έφτανε σε ένα συγκεκριμένο επίπεδο φωτισμού, αλλά είχε επίσης ένα κουμπί παράκαμψης ώστε να μπορεί κάποιος να ανοίγει ή να κλείνει το blind όταν το θέλουν. Έχω συνδέσει το GitHub μου με την τελική έκδοση του κώδικα εδώ:

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

Ο κώδικας ξεκινά με τη βαθμονόμηση των κινητήρων και των τυφλών, ξεκινώντας με το ρολό εντελώς ανοιχτό και χαμηλώνοντάς το μέχρι να χτυπήσει τον αισθητήρα αφής στο κάτω μέρος, μετρώντας πόσες στροφές χρειάζεται για να φτάσει στο κάτω μέρος, το οποίο αποθηκεύεται ως "RotationsNeeded" μεταβλητός. Στη συνέχεια γράφει "false" στη μεταβλητή "BlindOpen" που χρησιμοποιείται για την παρακολούθηση της θέσης του τυφλού. Σε αυτό το σημείο ο κώδικας χωρίζεται σε 4 βρόχους.

Ένας από αυτούς τους βρόχους είναι ο βρόχος "Buttonstate" που δημοσιεύει συνεχώς την κατάσταση του κουμπιού σε μια μεταβλητή που ονομάζεται "ButtonPressed". Αυτό εξαλείφει την ανάγκη πολλών μπλοκ κουμπιών να τοποθετηθούν στο σενάριο.

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

Ο τρίτος βρόχος περιέχει έναν αριθμητικό κατάλογο 3 επιλογών που βασικά λέει στους τυφλούς τι να κάνουν, 0 = τυφλός προς τα κάτω, 1 = τυφλός προς τα επάνω, 2 = μην κάνετε τίποτα επειδή ο τύφλος βρίσκεται στη σωστή θέση. Ο βρόχος ξεκινά διαβάζοντας τη μεταβλητή "BlindShould" που καθορίζει τη σωστή εργασία που πρέπει να κάνει ο τυφλός, στη συνέχεια εκτελεί αυτήν την εργασία, αλλάζει τη μεταβλητή "BlindOpen" στη σωστή επιλογή και στη συνέχεια καθίσταται αδρανής μέχρι να αλλάξει η μεταβλητή "BlindShould" όπου επαναλαμβάνεται. Χρησιμοποιεί την τιμή "RotationsNeeded" καθώς και ισχύ +/- 100% για να μετακινήσει το ρολό εντελώς ανοιχτό ή κλειστό.

Ο τέταρτος και τελευταίος βρόχος είναι ο πιο περίπλοκος, είναι ο βρόχος "Decider" που χειρίζεται όλα τα δεδομένα και αποφασίζει τι θα κάνει με κάθε μετάθεση. Αυτό το κάνει χρησιμοποιώντας τη λογική "πιρούνια στο δρόμο" όπου "πιέζεται το κουμπί", "Επίπεδο φωτός", "Ανοιχτό στα τυφλά" είναι οι αληθινές ή ψευδείς ερωτήσεις. Όλες οι μεταθέσεις έχουν μια σκληρή κωδικοποιημένη απόκριση, η οποία είναι είτε 0 = τυφλή προς τα κάτω, 1 = τυφλή επάνω ή 2 = μην κάνετε τίποτα - αυτή η τιμή γράφεται στη μεταβλητή "BlindShould" η οποία στη συνέχεια χειρίζεται από έναν προηγούμενο βρόχο. Ορισμένες απαντήσεις θα περιμένουν να αλλάξει είτε η μεταβλητή "ItIsLight" ή/και "ButtonPressed" πριν τελειώσετε το σενάριο, αυτό ισχύει μόνο για τις μεταθέσεις που ενεργοποιούνται από το κουμπί, διαφορετικά θα προσπαθούσε αμέσως να διορθώσει τη θέση του, πράγμα που σημαίνει ότι ο τυφλός θα επέστρεφε στην αρχική του κατάσταση. Αυτή η διαδικασία περιστρέφεται στη συνέχεια για να δημιουργήσει ένα ισχυρό και σχετικά απλό αυτόματο σύστημα, το οποίο μπορεί εύκολα να προστεθεί και να διορθωθεί. Φτου.

Βήμα 5: Τελειώνοντας τις πινελιές

Τελευταίες πινελιές
Τελευταίες πινελιές

Αποφάσισα στη συνέχεια να συνδέσω ένα τροφοδοτικό 9V στο EV3 μου χρησιμοποιώντας ξύλινους πείρους και βίδες ως "μπαταρίες", αυτό έκανε το προϊόν να μην εξαρτάται από τις μπαταρίες και με εμπόδισε να αλλάζω τις μπαταρίες κάθε δύο ημέρες.

Βήμα 6: Αξιολόγηση του Έργου

Νομίζω ότι το έργο πήγε καλά συνολικά, κατέληξα σε ένα πρωτότυπο εργασίας για τη διάταξη αυτόματων περσίδων, το οποίο μπορώ να λάβω όλες τις σχετικές πληροφορίες που βρήκα κατά τη διάρκεια του έργου και να εφαρμόσω στην τελική έκδοση. Κωδικοποίησα με επιτυχία τη συσκευή και αργότερα δεν βρήκα κανένα σημαντικό πρόβλημα με τον κώδικα μέχρι στιγμής. Θα ήθελα να κάνω τη συσκευή πιο ελκυστική οπτικά, αλλά για άλλη μια φορά είναι μια απόδειξη της ιδέας και θα καταβάλω κάποιες προσπάθειες για να το κάνω να φαίνεται καλό όταν φτιάξω την τελική έκδοση με ένα ESP8266. Όταν ξανακάνω το έργο, θα σχεδιάσω το μοτέρ να κάθεται στο εσωτερικό του τυφλού, καθώς αυτό θα ήταν πιο εύκολο να κρυφτεί. Το μεγαλύτερο μάθημα που έμαθα είναι να κάνω debug λογικά και να σκεφτώ, να τεκμηριώσω και να δοκιμάσω τον κώδικα μου πριν τον εφαρμόσω.

Συνιστάται: