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

Venus Flytrap - ITM Φθινόπωρο 2019: 5 Βήματα
Venus Flytrap - ITM Φθινόπωρο 2019: 5 Βήματα

Βίντεο: Venus Flytrap - ITM Φθινόπωρο 2019: 5 Βήματα

Βίντεο: Venus Flytrap - ITM Φθινόπωρο 2019: 5 Βήματα
Βίντεο: 5 Incredible Venus Flytrap Varieties #YouTubeShorts #Shorts 2024, Ιούλιος
Anonim
Image
Image

Τι λείπει από το γραφείο όλων; Ένα μηχανικό Venus Flytrap που κρατά μολύβια, στυλό και άλλα αντικείμενα.

Βήμα 1: Μέρη

Θα χρειαστείτε:

* 3D εκτυπωτής (βλέπε αρχείο.stl) για το δοχείο

* Ξύλινα μπαστούνια και τρυπάνι

* Εργαλεία συγκόλλησης

* Arduino Uno & IDE

* Breadboard

* Φωτοαντίσταση

* Διακόπτης

* MicroServo Sg90

* Πυρήνα αφρού

* Ηλεκτρική & ταινία σιλικόνης

* Σύρματα

* Μεντεσέδες

* Ζεστή κόλλα

Βήμα 2: Κάντε το κύκλωμα και γράψτε κώδικα Arduino

Εκτυπώστε το δοχείο και κόψτε τον κορμό και τα κλαδιά
Εκτυπώστε το δοχείο και κόψτε τον κορμό και τα κλαδιά

Το κύκλωμα συνδέει τη φωτοαντίσταση, το διακόπτη, το σερβο και τον μηχανισμό ισχύος μέσω του Arduino. Συνδέουμε το Servo με τον κύκλο λειτουργίας pwm στο pin του Arduino, διαβάζουμε τη φωτοαντίσταση από την αναλογική ακίδα A0 και διαβάζουμε το κουμπί από την ψηφιακή ακίδα 2.

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

Ο κώδικας Arduino προορίζεται να κάνει κυρίως τρία πράγματα:

1. Διαβάστε μια φωτοαντίσταση και συγκρίνετε την ένδειξη με ένα προκαθορισμένο όριο. Όταν η φωτοαντίσταση διαβάζει χαμηλά (σκούρα), η ένδειξη θα είναι κάτω από το όριο και όταν η ένδειξη είναι υψηλή (ελαφριά) θα είναι πάνω από το όριο.

2. Με βάση την ένδειξη της φωτοαντίστασης, πείτε στο Servo να μετακινηθεί σε μία από τις δύο θέσεις (μια θέση "ανοιχτή" και "κλειστή", σημειωμένη ως val και val2 στον κώδικα). Όταν δεν υπάρχει τίποτα που να αποκρύπτει τη φωτοαντίσταση, η ένδειξη θα είναι υψηλή και το Servo βρίσκεται στην ανοιχτή θέση. Όταν υπάρχει ένα αντικείμενο που αποκρύπτει τον φωτοαντιστάτη, η ένδειξη θα είναι χαμηλή και το Servo μετακινείται στην κλειστή θέση.

3. Προγραμματίστε έναν διακόπτη για αυτόματη μετακίνηση του Servo στην ανοιχτή θέση. Αυτό είναι ουσιαστικά ένα failsafe.

Δείτε τον κωδικό παρακάτω:

#include Servo myservo; int val = 20; // αρχικοποίηση τιμής κλειστής θέσης int val2 = 70; // αρχικοποίηση τιμής ανοικτής θέσης void setup () {// αρχικοποίηση σειριακής επικοινωνίας στα 9600 bit ανά δευτερόλεπτο: Serial.begin (9600); // προετοιμάστε το σερβο και συνδέστε τον κύκλο λειτουργίας pwm στο pin 9 myservo.attach (9); pinMode (2, ΕΙΣΟΔΟΣ); // αρχικοποίηση διακόπτη ως είσοδο} const int threshold = 20; // αρχικοποίηση ορίου φωτοαντίστασης για κλείσιμο του κουμπιού intState = 0; // αρχικοποίηση μεταβλητής για ανάγνωση κατάστασης διακοπτών int sensorValue = 100; // αρχικοποίηση μεταβλητής για τιμή φωτοαντίστασης int stayclosed = 0; // αρχικοποίηση μεταβλητής για διατήρηση μιας θέσης μόλις ενεργοποιηθεί //// η ρουτίνα βρόχου τρέχει ξανά και ξανά για πάντα: void loop () {// διαβάστε την είσοδο από το διακόπτη: buttonState = digitalRead (2); // διαβάστε την είσοδο από τη φωτοαντίσταση sensorValue = analogRead (A0); // εκτυπώστε την ανάγνωση της φωτοαντίστασης στη σειριακή οθόνη: Serial.println (sensorValue); if (buttonState == LOW) {// διακόπτης είναι απενεργοποιημένος εάν (stayclosed == 1) {// εάν η μεταβλητή σταθερότητας θέσης είναι ενεργοποιημένη, // παραμείνετε στην τρέχουσα θέση} αλλιώς εάν (sensorValue <threshold) {// εάν η τιμή αισθητήρα πέσει κάτω από το κατώφλι, myservo.write (val); // αλλαγή παγίδας στην κλειστή θέση, stayclosed = 1; // και αλλάξτε τη μεταβλητή σταθερότητας για να παραμείνει κλειστή}} αλλιώς {// ο διακόπτης είναι ενεργοποιημένος εάν (παραμείνει κλειστός == 0) {// εάν η μεταβλητή σταθερότητας θέσης είναι απενεργοποιημένη, // παραμείνετε στην τρέχουσα θέση} else {// πρώτη φορά ανιχνεύσετε ότι ο διακόπτης είναι σε καθυστέρηση (500). // Καθυστέρηση 500 ms και έλεγχος για να βεβαιωθείτε ότι ο διακόπτης είναι ακόμα ενεργοποιημένος buttonState = digitalRead (2); // διαβάστε την είσοδο από το swithch if (buttonState == HIGH) {// αν ο διακόπτης είναι ενεργοποιημένος, myservo.write (val2); // αλλαγή παγίδας στην ανοιχτή θέση stayclosed = 0; // και αλλάξτε τη μεταβλητή σταθερότητας για να παραμείνει ανοιχτή}}}}

Βήμα 3: Εκτυπώστε το δοχείο και κόψτε τον κορμό και τα κλαδιά

CAD: Εκτύπωση γλάστρα

* Χρησιμοποιήστε το αρχείο STL που περιλαμβάνεται παραπάνω για να εκτυπώσετε τρισδιάστατα το δοχείο με λουλούδια, το οποίο χρησιμεύει ως βάση για τη συσκευή παγίδευσης μύγα Venus

* Βεβαιωθείτε ότι οι διαστάσεις της γλάστρας είναι αρκετά μεγάλες για να διασφαλίσετε ότι η βάση μπορεί να φιλοξενήσει το Arduino και το breadboard

Ξυλουργικές εργασίες: Κορμός και κλαδιά

* Χρησιμοποιήστε πριόνι μπάντας για να κόψετε έναν ξύλινο πείρο 1 επί 24 ιντσών σε μήκος 12 ίντσες για τον κορμό

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

* Χρησιμοποιήστε πριόνι ταινίας για να κόψετε wooden κατά 12 ίντσες ξύλινους πείρους σε τρία κλαδιά διαφορετικού μήκους, όπως θέλετε. Χρησιμοποιώντας το πριόνι ταινίας κόψτε το ένα άκρο κάθε κλαδιού σε 45 ° για να δημιουργήσετε μια επίπεδη επιφάνεια πάνω στην οποία μπορούν να στηθούν οι παγίδες.

* Εισάγετε κλαδιά στις οπές του κορμού (με γωνιακά άκρα εκτεθειμένα) και ασφαλίστε με κόλλα γορίλας ή θερμή κόλλα

Βήμα 4: Δημιουργήστε τις παγίδες

Βήματα για τη δημιουργία παγίδων:

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

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

* Τοποθετήστε τις δύο όψεις των μεντεσέδων στους αντίστοιχους σφιγκτήρες.

* Τυλίξτε σφιγκτήρες σε πολύχρωμη ταινία για αισθητική.

* Τρυπήστε μια μικρή τρύπα στον κάτω σφιγκτήρα και τοποθετήστε τη φωτοαντίσταση (πρέπει να ταιριάζει άνετα)

* Τοποθετήστε δύο μικρά κομμάτια ταινίας πυριτίου στο εσωτερικό κάθε σφιγκτήρα για να διασφαλίσετε ότι τα αντικείμενα που παγιδεύονται δεν μπορούν να ξεφύγουν εύκολα

* Συνδέστε τον κινητήρα στο πλάι της ορθογώνιας βάσης του πάνω σφιγκτήρα με υπερκόλληση και ταινία (ο μηχανισμός παγίδας ολοκληρώνεται σε αυτό το σημείο)

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

Βήμα 5: Το βάζουμε όλα μαζί

* Τοποθετήστε τον κορμό και τα κλαδιά μέσα στην κατσαρόλα και κολλήστε το Arduino UNO και το breadboard επίσης μέσα στην κατσαρόλα

* Σταθεροποιήστε τον κορμό με βράχια, προσέξτε να μην σπάσει κανένα καλώδιο

* Χρησιμοποιήστε πράσινη ηλεκτρική ταινία για να καλύψετε το κλαδί, τον κορμό και όλα τα εκτεθειμένα καλώδια

* Χρησιμοποιήστε μια εξωτερική μπαταρία ως πηγή ενέργειας

* Ευτυχισμένο Venus Flytrapping!

Συνιστάται: