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

Servo Squirter - USB Water Gun: 5 Βήματα
Servo Squirter - USB Water Gun: 5 Βήματα

Βίντεο: Servo Squirter - USB Water Gun: 5 Βήματα

Βίντεο: Servo Squirter - USB Water Gun: 5 Βήματα
Βίντεο: The Best Water Gun Ever! Spyra 2 - The Electric Water Rifle 2024, Νοέμβριος
Anonim
Servo Squirter - USB Water Gun
Servo Squirter - USB Water Gun

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

Βήμα 1: Συγκεντρώστε τα υλικά

Συγκεντρώστε τα Υλικά
Συγκεντρώστε τα Υλικά
Συγκεντρώστε τα Υλικά
Συγκεντρώστε τα Υλικά
Συγκεντρώστε τα Υλικά
Συγκεντρώστε τα Υλικά

Αυτό το έργο βασίζεται σε μικροελεγκτές. Εκτός από τον μικροελεγκτή ATmega168 που περιλαμβάνεται στο USB NerdKit. Για αυτό το έργο χρησιμοποιήσαμε τα εξής: 1 Hobby Servo, Hitec HS-501 Αντλία νερού εμβόλου χαμηλής τάσης1 Μικρό n-channel MOSFET, 2N7000

Βήμα 2: Συναρμολογήστε το κύκλωμα

Συναρμολογήστε το Κύκλωμα
Συναρμολογήστε το Κύκλωμα
Συναρμολογήστε το Κύκλωμα
Συναρμολογήστε το Κύκλωμα
Συναρμολογήστε το Κύκλωμα
Συναρμολογήστε το Κύκλωμα
Συναρμολογήστε το Κύκλωμα
Συναρμολογήστε το Κύκλωμα

Το πρώτο μέρος του κυκλώματός μας συνδέεται απλώς με το σερβο. Αυτό είναι απλό εδώ: ένα καλώδιο από τον μικροελεγκτή στο σερβο. Υπάρχουν μερικές διαφορετικές χρωματικές ετικέτες ανάλογα με τον κατασκευαστή, οπότε ελέγξτε πριν το δοκιμάσετε. Σχηματική φωτογραφία του κυκλώματος ServoSquirter στο breadboard του NerdKitsΤο δεύτερο μέρος του κυκλώματος επιτρέπει στον μικροελεγκτή να ενεργοποιεί και να απενεργοποιεί τον κινητήρα της αντλίας. Το ίδιο το τσιπ ATmega168 επιτρέπει μόνο 40mA max ή έξω από οποιαδήποτε ακίδα, αλλά η αντλία μας απαιτεί πιο κοντά στα 1000mA! Έτσι, για να ελέγξουμε αυτό το μεγαλύτερο φορτίο, επιλέξαμε να χρησιμοποιήσουμε ένα μεγαλύτερο τρανζίστορ, το 2N7000. Αρχικά εξηγούμε τα βασικά της χρήσης των MOSFETs (Transistors Metal Effect Semiconductor Field Effect Transistors) ως διακόπτες: φέρνοντας την τάση της Πύλης πάνω από την Πηγή, μπορούμε να επιτρέψουμε στο ρεύμα να ρέει από την Αποστράγγιση στην Πηγή. Από το φύλλο δεδομένων 2N7000, έχουμε εξαγάγει το Σχήμα 1, το οποίο δείχνει τη σχέση μεταξύ ρεύματος αποστράγγισης και τάσης πηγής αποστράγγισης για διαφορετικές ρυθμίσεις τάσης πύλης-πηγής. Υπάρχουν μερικά σημαντικά πράγματα που μπορείτε να μάθετε από αυτό το γράφημα: 1. Για VGS κάτω από περίπου 3,0 βολτ, δεν επιτρέπεται να ρέει ρεύμα. Αυτή είναι η κατάσταση εκτός λειτουργίας, που ονομάζεται επίσης "διακοπή". 2. Για μικρά VDS, η καμπύλη μοιάζει περίπου γραμμική μέσω της προέλευσης - πράγμα που σημαίνει ότι «μοιάζει» ηλεκτρικά με αντίσταση. Η ισοδύναμη αντίσταση είναι η αντίστροφη κλίση της καμπύλης. Αυτή η περιοχή λειτουργίας MOSFET ονομάζεται "triode". 3. Για μεγαλύτερα VDS, επιτυγχάνεται κάποιο μέγιστο επίπεδο ρεύματος. Αυτό ονομάζεται "κορεσμός". 4. Καθώς αυξάνουμε το VGS, επιτρέπεται να ρέει περισσότερο ρεύμα και στους τρόπους τριόδου και κορεσμού. Και τώρα έχετε μάθει πραγματικά και για τους τρεις τρόπους λειτουργίας του MOSFET: διακοπή, τριάδα και κορεσμός. Επειδή ο έλεγχος πύλης μας είναι ψηφιακός (+5 ή 0), ανησυχούμε μόνο για την καμπύλη που επισημαίνεται με κίτρινο χρώμα, για VGS = 5V. Κανονικά, η χρήση ενός MOSFET ως διακόπτη περιλαμβάνει γενικά τον τρόπο λειτουργίας της τριάδας, επειδή το MOSFET διαχέει ισχύ PD = ID*VDS και ένας καλός διακόπτης θα πρέπει να διαχέει λίγη ενέργεια στον ίδιο τον διακόπτη. Αλλά σε αυτή την περίπτωση, έχουμε να κάνουμε με έναν κινητήρα και οι κινητήρες τείνουν να απαιτούν πολύ ρεύμα (με μικρή πτώση τάσης) όταν ξεκινούν για πρώτη φορά. Έτσι, για το πρώτο ή το δεύτερο δευτερόλεπτο, το MOSFET θα λειτουργεί με υψηλό VDS και θα περιορίζεται από το μέγιστο ρεύμα του - περίπου 800mA από την κόκκινη διακεκομμένη γραμμή που σχεδιάσαμε στο φύλλο δεδομένων. Διαπιστώσαμε ότι αυτό δεν ήταν αρκετό για να ξεκινήσει η αντλία, οπότε χρησιμοποιήσαμε ένα μικρό κόλπο και βάλαμε δύο MOSFET παράλληλα. Με αυτόν τον τρόπο, μοιράζονται το ρεύμα και μπορούν να βυθιστούν αποτελεσματικά περίπου 1600mA μαζί. Επίσης, λόγω των υψηλών απαιτήσεων ισχύος της αντλίας, χρησιμοποιήσαμε έναν μετασχηματιστή τοίχου με υψηλότερη ισχύ ρεύματος. Εάν έχετε μετασχηματιστή τοίχου με έξοδο μεγαλύτερη από 5V - ίσως 9V ή 12V - τότε μπορείτε περίπου

Βήμα 3: Ρυθμίστε το PWM στο MCU

Ρυθμίστε το PWM στο MCU
Ρυθμίστε το PWM στο MCU
Ρυθμίστε το PWM στο MCU
Ρυθμίστε το PWM στο MCU
Ρυθμίστε το PWM στο MCU
Ρυθμίστε το PWM στο MCU

Στο βίντεο, μιλάμε για δύο επίπεδα που χρησιμοποιούνται από τη μονάδα χρονομέτρου/μετρητή: την κορυφαία τιμή και την τιμή σύγκρισης. Και τα δύο είναι σημαντικά για τη δημιουργία του σήματος PWM που θέλετε. Αλλά για να ενεργοποιήσετε την έξοδο PWM του ATmega168, πρέπει πρώτα να δημιουργήσουμε μερικούς καταχωρητές. Αρχικά, επιλέγουμε τη λειτουργία Fast PWM με την κορυφαία τιμή OCR1A, η οποία μας επιτρέπει να ορίσουμε αυθαίρετα πόσο συχνά ξεκινά ένας νέος παλμός. Στη συνέχεια, ορίζουμε το ρολόι να λειτουργεί με προδιαίρεση 8, πράγμα που σημαίνει ότι ο μετρητής θα αυξηθεί κατά 1 κάθε 8/(14745600 Hz) = 542 νανοδευτερόλεπτα. Δεδομένου ότι έχουμε καταχωρητές 16-bit για αυτό το χρονόμετρο, αυτό σημαίνει ότι μπορούμε να ορίσουμε τη συνολική περίοδο σήματος μας τόσο υψηλή όσο 65536*542ns = 36 χιλιοστά του δευτερολέπτου. Εάν χρησιμοποιούσαμε μεγαλύτερο αριθμό διαίρεσης, θα μπορούσαμε να κάνουμε τους παλμούς μας πιο μακριά (κάτι που δεν βοηθά σε αυτήν την κατάσταση) και θα χάναμε την ανάλυση. Εάν χρησιμοποιούσαμε έναν μικρότερο αριθμό διαίρεσης (όπως 1), δεν θα μπορούσαμε να κάνουμε τους παλμούς μας σε απόσταση τουλάχιστον 16 χιλιοστών του δευτερολέπτου, όπως αναμένει το σερβο μας. Τέλος, ορίσαμε τη λειτουργία σύγκρισης εξόδου για ένα "μη αναστρέψιμο" PWM εξόδου, η οποία περιγράφεται στο βίντεό μας. Ορίσαμε επίσης τον ακροδέκτη PB2 να είναι ένας ακροδέκτης εξόδου-δεν εμφανίζεται εδώ, αλλά βρίσκεται στον κώδικα. Κάντε κλικ για μεγέθυνση αυτών των λήψεων από τις σελίδες 132-134 του φύλλου δεδομένων ATmega168, με επισημασμένες τις επιλογές τιμής καταχωρητή:

Βήμα 4: Προγραμματίστε τον μικροελεγκτή

Τώρα ήρθε η ώρα να προγραμματίσουμε πραγματικά το MCU. Ο πλήρης πηγαίος κώδικας παρέχεται στον ιστότοπό μας https://www.nerdkits.com/videos/servosquirterΟ κώδικας ρυθμίζει πρώτα το PWM για την οδήγηση του σερβο. Ο κώδικας στη συνέχεια απλώς βρίσκεται σε ένα βρόχο ενώ περιμένει την εισαγωγή του χρήστη. Οι χαρακτήρες 1 και 0 ενεργοποιούν ή απενεργοποιούν τον πείρο MCU που είναι συνδεδεμένος στο τρανζίστορ της αντλίας. Αυτό θα ενεργοποιήσει και θα απενεργοποιήσει την αντλία, δίνοντάς μας τη δυνατότητα να ενεργοποιήσουμε κατά βούληση. Ο κώδικας ανταποκρίνεται επίσης στα πλήκτρα "[" και "]", τα οποία θα αυξήσουν ή θα μειώσουν την τιμή σύγκρισης στον πείρο PWM, που θα προκαλέσει το σερβο μοτέρ για αλλαγή θέσης. Αυτό σας δίνει τη δυνατότητα να στοχεύσετε πριν πυροβολήσετε.

Βήμα 5: Σειριακές επικοινωνίες λιμένων

Σειριακές επικοινωνίες λιμένων
Σειριακές επικοινωνίες λιμένων
Σειριακές επικοινωνίες λιμένων
Σειριακές επικοινωνίες λιμένων
Σειριακές επικοινωνίες λιμένων
Σειριακές επικοινωνίες λιμένων
Σειριακές επικοινωνίες λιμένων
Σειριακές επικοινωνίες λιμένων

Το τελευταίο βήμα είναι να ρυθμίσετε τον υπολογιστή, ώστε να μπορείτε να στείλετε τις εντολές στον Μικροελεγκτή. Στο NerdKit, χρησιμοποιούμε το σειριακό καλώδιο για την αποστολή εντολών και πληροφοριών στον υπολογιστή. Μπορείτε να γράψετε απλά προγράμματα στις περισσότερες γλώσσες προγραμματισμού που μπορούν να επικοινωνούν μέσω της σειριακής θύρας στο NerdKit. Ωστόσο, είναι πολύ πιο απλό να χρησιμοποιήσουμε ένα τερματικό πρόγραμμα για να κάνουμε τη σειριακή επικοινωνία για εμάς. Με αυτόν τον τρόπο μπορείτε απλά να πληκτρολογήσετε στο πληκτρολόγιο και να δείτε την απάντηση από το NerdKit. WindowsΕάν χρησιμοποιείτε Windows XP ή παλαιότερα, το HyperTerminal περιλαμβάνεται και θα πρέπει να βρίσκεται στο μενού Έναρξη στην ενότητα "Έναρξη -> Προγράμματα -> Αξεσουάρ -> Διαβιβάσεις". Όταν ανοίγετε για πρώτη φορά το HyperTerminal, σας ζητά να δημιουργήσετε μια σύνδεση. Ακυρώστε από αυτά, μέχρι να βρεθείτε στο κύριο HyperTerminal sceen. Θα πρέπει να ρυθμίσετε το HyperTerminal, να επιλέξετε τη σωστή θύρα COM και να ρυθμίσετε τις ρυθμίσεις της θύρας κατάλληλα για να συνεργαστείτε με το NerdKit. Ακολουθήστε τα παρακάτω στιγμιότυπα οθόνης για σωστή ρύθμιση του HyperTerm. Εάν χρησιμοποιείτε Windows Vista, το HyperTerminal δεν περιλαμβάνεται πλέον. Σε αυτήν την περίπτωση, μεταβείτε στο PuTTY (πρόγραμμα εγκατάστασης των Windows). Χρησιμοποιήστε τις παρακάτω ρυθμίσεις σύνδεσης για να ρυθμίσετε το Putty, χρησιμοποιώντας την κατάλληλη θύρα COM. Mac OS X Αφού εισαγάγετε την εφαρμογή Terminal, πληκτρολογήστε "screen /dev/tty. PL* 115200" για να ξεκινήσετε την επικοινωνία μέσω της σειριακής θύρας. Linux, σε Linux, χρησιμοποιούμε " minicom "για να μιλήσει στη σειριακή θύρα. Για να ξεκινήσετε, εκτελέστε "minicom -s" στην κονσόλα για να μπείτε στο μενού ρύθμισης της minicom. Μεταβείτε στην ενότητα "Ρύθμιση σειριακής θύρας". Ορίστε τις παραμέτρους ως εξής: Διαμόρφωση Minicom στο LinuxΤότε, πατήστε escape και χρησιμοποιήστε το "Αποθήκευση ρύθμισης ως dfl" για να αποθηκεύσετε τις ρυθμίσεις ως προεπιλογή. Θα πρέπει τώρα να μπορείτε να πατήσετε "Έξοδος" και να χρησιμοποιήσετε το minicom για να μιλήσετε στο NerdKit.

Συνιστάται: