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

Διαφυλακτικός «Μόνος στο σπίτι»/ Χρησιμοποιήστε το Attiny13 για να οδηγήσετε ένα Steppermotor και ένα Servo: 5 Βήματα
Διαφυλακτικός «Μόνος στο σπίτι»/ Χρησιμοποιήστε το Attiny13 για να οδηγήσετε ένα Steppermotor και ένα Servo: 5 Βήματα

Βίντεο: Διαφυλακτικός «Μόνος στο σπίτι»/ Χρησιμοποιήστε το Attiny13 για να οδηγήσετε ένα Steppermotor και ένα Servo: 5 Βήματα

Βίντεο: Διαφυλακτικός «Μόνος στο σπίτι»/ Χρησιμοποιήστε το Attiny13 για να οδηγήσετε ένα Steppermotor και ένα Servo: 5 Βήματα
Βίντεο: Безымянная звезда (1 серия) (1978) фильм 2024, Δεκέμβριος
Anonim
Διαφυλακτικός «Μόνος στο σπίτι»/ Χρησιμοποιήστε το Attiny13 για να οδηγήσετε ένα Steppermotor και ένα Servo
Διαφυλακτικός «Μόνος στο σπίτι»/ Χρησιμοποιήστε το Attiny13 για να οδηγήσετε ένα Steppermotor και ένα Servo
Διαρρήκτης «Μόνος στο σπίτι»/ Χρησιμοποιήστε το Attiny13 για να οδηγήσετε ένα Steppermotor και ένα Servo
Διαρρήκτης «Μόνος στο σπίτι»/ Χρησιμοποιήστε το Attiny13 για να οδηγήσετε ένα Steppermotor και ένα Servo

Αυτό μπορεί να είναι ένα από τα πιο περίεργα έργα μου ακόμα:-) Αλλά ακόμα κι αν δεν σας ενδιαφέρει να κρατήσετε τους διαρρήκτες μακριά, αυτό το έργο μπορεί να χρησιμοποιηθεί για οτιδήποτε χρειάζεστε για να οδηγήσετε έναν κινητήρα steppermotor ή σερβομηχανισμό ή ακόμα και αρκετούς κινητήρες DC με ένα Attiny13. Οι περισσότεροι από εσάς θα θυμάστε την ταινία Home Alone, όπου ο McCauly Calkin προσπαθεί να προσποιηθεί στους διαρρήκτες ότι στην πραγματικότητα δεν είναι μόνος στο σπίτι, βάζοντας μια φιγούρα από χαρτόνι σε μια συσκευή αναπαραγωγής δίσκων και βάζοντας κορδόνια σε μια άλλη φιγούρα από χαρτόνι, ώστε να μπορεί να μιμηθεί τους ανθρώπους χορός. Καθώς λείπω συχνά από το σπίτι, έχω πολύ συνείδηση να αφήσω το σπίτι μου πίσω, σαν να είναι ακόμα υπό κατάληψη. Για αυτό δημοσίευσα νωρίτερα ένα «Στο σπίτι προσομοιωτή» που αλλάζει φώτα σε ένα συγκεκριμένο μοτίβο με αρκετή τυχαιότητα για να το κάνει φαίνεται ότι κάποιος είναι παρών. Πρόσθεσα μια «akeεύτικη τηλεόραση» που κάνει να φαίνεται ότι παίζει τηλεόραση. Όλα αυτά βοηθούν, αλλά αν πρόκειται για προσομοίωση παρουσίας, δεν υπάρχει τίποτα καλύτερο από την πραγματική κίνηση. Χρειάστηκα λοιπόν κάτι που κινήθηκε και καθώς δεν έχω συσκευή αναπαραγωγής δίσκων και ήθελα κάτι που θα μπορούσε να λειτουργήσει όσο ήμουν μακριά, χρειαζόμουν κάτι λίγο πιο στερεό. Ο πιο προφανής τρόπος για να δημιουργήσεις μια εικόνα από χαρτόνι θα δημιουργούσε εντύπωση κίνησης για να το γυρίσω κατά 90 μοίρες ώστε να μπλοκάρει εναλλάξ το φως και να μην μπλοκάρει το φως. Το έκανα πρώτα με ένα φτηνό σερβο, αλλά αυτό έδωσε δύο προβλήματα: hardταν δύσκολο να προσθέσω μια φιγούρα από χαρτόνι ακόμη και όχι πολύ μεγάλη, στον άξονα και μία φορά Το έκανα, το drag θα ήταν πάρα πολύ για αυτό το σερβο. Ένα πιο ισχυρό σερβο είχε μια πολύ απότομη αύξηση τιμών, οπότε άρχισα να σκέφτομαι «Steppermotor». Είχα ακόμα ένα που ήταν βαρύ λόγω της ψύκτρας που ήταν προσαρτημένο σε αυτό και φαινόταν ιδανικό. Ένα πρόγραμμα για να γυρίσετε το Steppermotor γράφτηκε εύκολα σε ένα Arduino, αλλά το drag εξακολουθούσε να προκαλεί ένα μικρό πρόβλημα, καθώς το χαρτόνι μου είχε το μέγεθος ανθρώπινο κορμό (μήκος περίπου 80 εκατοστά). Είτε έπρεπε να ενισχύσω το χαρτόνι, κάνοντάς το πιο βαρύ, είτε έπρεπε να το κάνω μικρότερο. Η τελευταία φάνηκε να είναι η καλύτερη λύση καθώς θα μπορούσα να το θέσω πιο κοντά σε ένα φως. Όλο αυτό το διάστημα έπαιζα επίσης με τη σκέψη να έχω μια φιγούρα όρθια. Κινητήρες, τροχαλίες κλπ πέρασαν από το μυαλό μου και παρόλο που δεν έχω εγκαταλείψει εντελώς αυτήν την ιδέα, προς το παρόν αποφάσισα να προσθέσω ένα μικρό χαρακτηριστικό στη φιγούρα από χαρτόνι και αυτό ήταν ένα κινούμενο κεφάλι. Η ιδέα μου ήταν να γυρίσει ο αριθμός 90 μοίρες, έτσι θα έριχνε μια πλήρη σκιά και μετά θα του κούνησε το κεφάλι. και εκεί μπήκε ξανά το servo μου. Στην πραγματικότητα δεν ήθελα να θυσιάσω ένα ολόκληρο arduino μόνο για να γυρίσω μια φιγούρα από χαρτόνι. Από την άλλη πλευρά, υποθέτω ότι ένα Attiny13 που είχα τοποθετήσει γύρω θα μπορούσε να κάνει τη δουλειά εξίσου καλά: 4 ακίδες για το stepper, 1 καρφίτσα για το σερβο. αυτό είναι ακριβώς αυτό που πρέπει να προσφέρει ένα Attiny13. Παραδέχομαι ότι μερικές φορές μπορώ να είμαι πολύ πυκνή καθώς σκέφτηκα κάθε είδους σενάρια για το πώς να λειτουργήσω τη μόλυνση για να λειτουργήσω σε μια συγκεκριμένη ώρα, για μια συγκεκριμένη ώρα, επειδή ιδανικά ήθελα να ελέγξω από τον «Προσομοιωτή στο σπίτι» που ανέφερα νωρίτερα. Σκέφτηκα λοιπόν ένα καλώδιο ή ασύρματο, αλλά τότε το Attin13 δεν ήταν η καλύτερη ιδέα για coz που έχει πρόβλημα με το Manchestercode και χρειάστηκα μια καρφίτσα για τον δέκτη και η ευαισθησία αυτών των φτηνών δεκτών δεν είναι τόσο μεγάλη. Έτσι σκέφτηκα ήδη μόνο έναν εμπορικό χρονοδιακόπτη, αλλά μετά κατάλαβα ότι ήμουν ηλίθιος. Καθώς το πράγμα θα χρειαζόταν το δικό του τροφοδοτικό, γιατί να μην πάρω ένα wallwart και να το βάλω σε ένα Remote Switch που θα μπορούσα να ελέγξω ήδη από τον προσομοιωτή At Home. Έτσι, άρχισα να χτίζω τον τελικό μου σχεδιασμό.

Φθηνό ServoA SteppermotorA κουτί από χαρτόνι Attyn13An 8 ακίδες IC υποδοχή Ένα κομμάτι stripboard 9 λωρίδες 17 οπών Μερικά σερβο καλώδια επέκτασης A ULN2003A 16 ακίδες IC υποδοχή 10 k Αντίσταση πλαστικής σανίδας κοπής (ή κάποιο άλλο κομμάτι ελαφρού υλικού) αρσενική κεφαλή 3 ακίδων (για σερβο) Κολλητική ταινία 6 ακίδων (για steppermotor) κολλητική ταινία (φυσικά)

Επιπλέον: Ένας τρόπος προγραμματισμού του Attiny

Μια παρατήρηση για το Steppermotor. Χρησιμοποιώ ένα παλιό 55SI-25DAWC, αλλά αν πρέπει ακόμα να αγοράσετε, υπάρχει ένα πολύ φθηνό συνδυασμό steppermotor/driver: το 28BYJ-48. Ο ίδιος ο κινητήρας κοστίζει 1,50 ευρώ, αλλά για 2 ευρώ μπορείτε να πάρετε τον ίδιο κινητήρα με έναν πίνακα οδηγού. έτσι είναι μια καλή συμφωνία

Βήμα 1: «Μόνος στο σπίτι» Κατασκευάζοντας τον άνθρωπο από χαρτόνι

«Μόνος στο σπίτι» Κατασκευάζοντας τον άνθρωπο από χαρτόνι
«Μόνος στο σπίτι» Κατασκευάζοντας τον άνθρωπο από χαρτόνι
«Μόνος στο σπίτι» Κατασκευάζοντας τον άνθρωπο από χαρτόνι
«Μόνος στο σπίτι» Κατασκευάζοντας τον άνθρωπο από χαρτόνι

Από ένα κουτί έκοψα ένα κομμάτι 40x20 cm και ένα κομμάτι 18x18. Συνδέω τα δύο κομμάτια μαζί ως κεφάλι και κορμό, χρησιμοποιώντας κολλητική ταινία, αφήνοντας ένα μικρό κενό μεταξύ των δύο κομματιών, αλλά καλυμμένο από την κολλητική ταινία, για να σχηματίσει μια άρθρωση για το λαιμό. (Οι εικόνες το καθιστούν πολύ σαφές) Από την παλιά σανίδα κοπής έκοψα ένα κομμάτι μήκους 20 εκατοστών, πάχους περίπου μισού εκατοστού (το πάχος της σανίδας) και πλάτους περίπου 1,5 εκατοστών. Το 1,5 εκατοστό ήταν αρκετό για να χωρέσει στον άξονα του stepper μου. αν έχετε διαφορετικό βηματικό, βεβαιωθείτε ότι το κομμάτι που κόβετε είναι αρκετά μεγάλο για τον άξονα του βηματιού σας. Ανοίξατε ένα νεκρό κέντρο τρύπας που θα ταιριάζει στον άξονά μου. τότε κόλλησα το πλαστικό στη βάση του χαρτονιού "Torso" Απλά κάτω από το «λαιμό», από κομμάτια χαρτονιού έφτιαξα μια βάση για το σερβίς μου. Φυσικά, αυτό μπορεί να γίνει με γωνιακό σίδερο (ή πλαστικό), αλλά αυτό είναι λίγο δύσκολο να στερεωθεί στον κορμό από χαρτόνι, οπότε χρησιμοποίησα χαρτόνι για να ταιριάξω με το σερβο. Πρόσθεσα ένα βραχίονα στο σερβο που ήταν φτιαγμένο από πλαστικό 11 x 0,6 x 0,6 από την πλάκα κοπής και το στερέωσα στο te Servo. Και πάλι, κοιτάξτε τις εικόνες για να δείτε πώς γίνεται Αυτό, αν και το βηματάκι μου ήταν αρκετά βαρύ για να φέρει το χαρτόνι, η ροπή και η αντίσταση που προκαλείται από τη στροφή του θα έκανε το μοτέρ να αρχίσει να «περπατά», έτσι δημιούργησα μια πλάκα βάσης από 24 * 11 εκ. Σανίδας κοπής. Άνοιξα δύο τρύπες για να συνδέσω το βηματικό μοτέρ και έχω ακόμα άφθονο χώρο για το χειριστήριο. Παρόλο που το σερβο στρέφεται 180 μοίρες, τοποθέτησα το χέρι έτσι ώστε να μην σηκώνει το κεφάλι εντελώς ευθεία. Με αυτόν τον τρόπο πέφτει εύκολα όταν το σερβο επιστρέφει στη θέση 0

Βήμα 2: "Μόνος στο σπίτι" Κατασκευή του ελεγκτή

«Μόνος στο σπίτι» Κατασκευάζοντας τον ελεγκτή
«Μόνος στο σπίτι» Κατασκευάζοντας τον ελεγκτή
«Μόνος στο σπίτι» Κατασκευάζοντας τον ελεγκτή
«Μόνος στο σπίτι» Κατασκευάζοντας τον ελεγκτή
«Μόνος στο σπίτι» Κατασκευάζοντας τον ελεγκτή
«Μόνος στο σπίτι» Κατασκευάζοντας τον ελεγκτή
«Μόνος στο σπίτι» Κατασκευάζοντας τον ελεγκτή
«Μόνος στο σπίτι» Κατασκευάζοντας τον ελεγκτή

Ο ελεγκτής είναι An Attiny13, προσαρτημένος σε ULN2003. Αν και στην έκδοσή μου χρησιμοποίησα λίγο περισσότερους πείρους για να κάνω τον πίνακα πιο ευέλικτο για χρήση σε άλλα έργα, οι μόνες κεφαλίδες που χρειάζεστε είναι μια αρσενική servo κεφαλίδα 3 ακίδων και μια αρσενική κεφαλίδα 6 ακίδων για το βήμα.

Βήμα 3: «Μόνος στο σπίτι»: το Λογισμικό

EDIT 2019 Το έργο έγινε με βάση τον άλλοτε δημοφιλή πυρήνα «Smeezekitty» για το Attiny13. Το συχνά χρησιμοποιούμενο MicroCore από το MCUDude προφανώς έχει προβλήματα με τις μεταβλητές στις δηλώσεις delayMicroseconds. Εάν χρησιμοποιείτε αυτό, αντικαταστήστε το "delayMicroseconds (300 + p * (2500 /180));" κατά "καθυστέρηση (5);"

Το παραπάνω πρόγραμμα δείχνει πώς να οδηγώ το συγκεκριμένο βήμα μου και μπορεί να χρειαστεί να αλλάξετε τις τιμές που γράφονται σε PORTB εάν έχετε ένα άλλο βήμα. Καθώς το Attiny13 είναι μάλλον μικρό στη μνήμη και επίσης δεν παρέχει πάρα πολλές καρφίτσες, το πρόγραμμα χάνει κάποια πολυπλοκότητα. Η εγγραφή απευθείας στο PORTB είναι εντάξει, αλλά σε αυτήν την περίπτωση θα γράψει επίσης ένα "0" στα PB4 και PB5. Το PB5 δεν αποτελεί μεγάλο πρόβλημα, αλλά μπορεί να θέλετε να χρησιμοποιήσετε το PB4. Στην περίπτωσή μου, εκεί έβαλα το σερβο μου και αυτό δεν προκαλεί πρόβλημα, καθώς δεν τα χρησιμοποιώ ταυτόχρονα.

Ωστόσο, εάν θέλετε να χρησιμοποιήσετε έναν άλλο μικροελεγκτή όπως ένα 328 και θέλετε να αποφύγετε να γράψετε σε PB4 και PB5 και PB6 και PB7, χρησιμοποιήστε μάσκα για να γράψετε μόνο στο bit 0-3. Η μάσκα για να το κάνετε αυτό είναι η B00001111.

Εάν θέλετε στη συνέχεια να ορίσετε bits 0 και 2, πηγαίνετε ως εξής:

Αντί PORTB = 5, δηλώστε: PORTB = (PORTB & ~ mask) | (B00000101);

Για όσους το βρίσκουν πολύ κρυπτικό:

πρώτα ΚΑΝΕΙ την τιμή του PORTB με NOT mask και το OR είναι το αποτέλεσμα με την τιμή που θέλουμε να γράψουμε και το εκχωρεί πίσω στο PORTB.

Επομένως, ας υποθέσουμε ότι το PORTB = 00010000 και θέλουμε να του γράψουμε 00000101, δεν μπορούμε να το εκχωρήσουμε αμέσως, διότι αυτό θα διαγράψει το PB4.

Ωστόσο, αν κάνουμε όπως περιγράφεται, γίνεται:

PORTB = (PORTB & 11110000) | 00000101

PORTB = (00010000 & 11110000) | 00000101

PORTB = 00010000 | 00000101

PORTB = 00010101

Έχουμε γράψει την αξία μας και κρατήσαμε το PB4

Λοιπόν, γιατί δεν μπορούμε αμέσως OR PORTB με την τιμή που θέλουμε αντί της ΚΑΙ πρώτης;

Λοιπόν, επειδή αυτό μπορεί να διατηρήσει τα PB4 και PB5… αλλά διατηρεί επίσης αμετάβλητο το PB3-PB0 εάν ένα από αυτά περιείχε ήδη ένα «1»

Φυσικά, η αντιστροφή της μάσκας δεν θα ήταν απαραίτητη αν την ορίζαμε ήδη ανεστραμμένη, αλλά είναι συνηθισμένη πρακτική να γίνεται ως τέτοια

Βήμα 4: Απορροφητικός διαρρήκτης «Μόνος στο σπίτι»: Χρήση

δείτε το βίντεο για να το δείτε (περιστράφηκε -90 μοίρες, συγγνώμη για αυτό)

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

Βήμα 5: "Μόνο στο σπίτι" Τι δεν λειτούργησε ……

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

Συνιστάται: