Πίνακας περιεχομένων:
- Βήμα 1: Λήψη των ανταλλακτικών
- Βήμα 2: Καλωδίωση
- Βήμα 3: Pre Code Things
- Βήμα 4: Κωδικός
- Βήμα 5: Η υπόθεση
Βίντεο: Joking Tank: 5 βήματα
2024 Συγγραφέας: John Day | [email protected]. Τελευταία τροποποίηση: 2024-01-30 08:36
Αυτό είναι ένα έργο που έκανα στο σχολείο μου το HKU, το οποίο απαιτούσε από εμάς να φτιάξουμε κάτι με ένα Arduino Uno. Wantedθελα να φτιάξω κάτι που να κάνει το αγαπημένο μου πράγμα, να κάνει τους ανθρώπους να γελούν. Έτσι αποφάσισα να φτιάξω ένα αστείο κουτί που θα σου έφερνε ένα αστείο, αλλά το αστείο που σου έδωσε θα εξαρτηθεί από το τι μετρούσαν μερικές μονάδες αισθητήρα εκείνη τη συγκεκριμένη χρονική στιγμή. Για να το κάνω πιο προσωπικό αποφάσισα να το κάνω δεξαμενή.
Βήμα 1: Λήψη των ανταλλακτικών
Τα μέρη που θα χρειαζόσασταν για να αναδημιουργήσετε αυτό το έργο θα ήταν
- 1x υπολογιστής ικανός να εκτελέσει Arduino IDE
- 1x Arduino Uno
- 1x καλώδιο σύνδεσης usb για Arduino Uno
- 1x αισθητήρας σόναρ
- 1x ηχείο (προτιμότερο με αξιοπρεπή ποιότητα (, χρησιμοποίησα ένα που έβγαλα από ένα ηχείο bluetooth)).
- 1x μονάδα ενισχυτή LM386 (μπορείτε να το φτιάξετε μόνοι σας, αλλά χρησιμοποίησα μονάδα).
- 1x μικρόφωνο LM393
- 1x LDR
- 1x LED (οποιοδήποτε χρώμα θα κάνει αλλά χρησιμοποίησα μπλε).
- Αντίσταση 4x 1kΩ
- Αντίσταση 1x 2, 7kΩ
- 1x Breadboard
- 1x κάρτα micro SD (κατά προτίμηση μικρή (1 ή 2 gb)).
- 1x τρυπάνι ισχύος.
- Τρυπάνι 1x 16mm (κατά προτίμηση κατασκευασμένο για διάτρηση μετάλλου).
- Τρυπάνι 1x 9mm (επίσης κατά προτίμηση κατασκευασμένο για διάτρηση μετάλλου).
- Τρυπάνι 1x 1mm (πάλι κατά προτίμηση κατασκευασμένο για διάτρηση μετάλλου).
- 1x Μοντέλο δεξαμενή (χρησιμοποίησα λεοπάρδαλη κλίμακας 1:35 2 αλλά άλλες περιπτώσεις θα πρέπει να είναι μια χαρά).
- Superglue / hotglue
- και αρκετά καλώδια κατά προτίμηση σε διαφορετικά χρώματα.
- δεσμοί καλωδίων (προαιρετικά).
Βήμα 2: Καλωδίωση
Πρέπει να ξεκινήσουμε με την καλωδίωση, η εικόνα είναι ένα τεχνικό σχέδιο για το πώς πρέπει να συνδεθούν όλα. Αυτό θα πρέπει να χρησιμεύσει ως σχέδιο σας. Σημείωση: Όλες οι θύρες Arduino ονομάζονται AP# για κάθε θύρα. Έτσι, η 4η θύρα στο Το Arduino είναι AP4, η θύρα A0 είναι APA0 και η θύρα 6 ~ είναι AP6 etc, κλπ. Όλες οι άλλες θύρες ονομάζονται όπως εμφανίζονται στις ίδιες μονάδες.
Βήμα 3: Pre Code Things
Τώρα πριν μπορέσουμε να αρχίσουμε να χρησιμοποιούμε κώδικα χρειαζόμαστε κάποιο stuf. Σας συνιστώ να ακολουθήσετε τώρα αυτό το σεμινάριο από τα βήματα 2 έως 4
www.electronoobs.com/eng_arduino_tut8.php
Ωστόσο, δεν πρόκειται να χρησιμοποιήσουμε τον κωδικό του όπως θα χρησιμοποιήσουμε τον δικό μας. Λάβετε υπόψη ότι ορισμένα ηχεία χρησιμοποιούν διαφορετικές συχνότητες. Το ηχείο μου χρησιμοποίησε αρχεία ήχου 16-bit 32kHz. Έτσι, αν η ομιλία σας κάνει κάποιο είδος θορύβου αλλά δεν παίζει τα αρχεία σας, δοκιμάστε να παίξετε με τη συχνότητά σας.
Βήμα 4: Κωδικός
Τώρα θα ανεβάσουμε τον κώδικα στο arduino. Αντιγράψτε όλα αυτά και περάστε τον στο Arduino IDE και ανεβάστε τον στο Arduino σας.
// περιλαμβάνει τη βιβλιοθήκη για τον αναγνώστη καρτών SD.#include "Wtv020sd16p.h" // περιλαμβάνει τη βιβλιοθήκη που απαιτείται για τον αισθητήρα σόναρ. #include // Ορίζει τις καρφίτσες για το Arduino. int resetPin = 4; int clockPin = 5; int dataPin = 6; int busyPin = 7; int soundDetectedPin = 12; int lightDetectedPin = A0; // Ορίζει τις ακίδες για τη βιβλιοθήκη κάρτας SD. Wtv020sd16p wtv020sd16p (resetPin, clockPin, dataPin, busyPin); // Ορίζει τις ακίδες για τη βιβλιοθήκη αισθητήρων Sonar. Σόναρ NewPing (11, 10); // Ορίζει τις άλλες εισόδους και ορίζει το ρυθμό μετάδοσης bit του προγράμματος. void setup () {wtv020sd16p.reset (); pinMode (lightDetectedPin, INPUT); pinMode (soundDetectedPin, INPUT); Serial.begin (9600); } // Κύριο μέρος του προγράμματος. void loop () {// Ορίζει τους intergers int lightDetectedVal = analogRead (lightDetectedPin); int distanceVal = sonar.ping_cm (); int soundDetectedVal = digitalRead (soundDetectedPin); // Καθυστέρηση, έτσι ώστε το έργο το έργο να μην συνεχίσει απείρως να χρησιμοποιεί το ηχείο. καθυστέρηση (30000) // Σειριακές γραμμές εκτύπωσης και εκτύπωσης, ώστε να μπορείτε εύκολα να δείτε ποιες τιμές λαμβάνονται από τις μονάδες αισθητήρα. Serial.print ("Τιμή oundχου:"); // Πολλαπλές δηλώσεις if ώστε το πρόγραμμα να αναπαράγει διαφορετικά αρχεία ήχου ανάλογα με τις τιμές που μετρούνται από τις μονάδες αισθητήρα. if (soundDetectedVal == 0) {Serial.println (soundDetectedVal); Serial.print ("Απόσταση:"); if (distanceVal == 0) {Serial.println (distanceVal); Serial.print ("Light Value:"); if (lightDetectedVal> = 1000) {Serial.println (lightDetectedVal); wtv020sd16p.playVoice (1); // Μια άλλη σειριακή εκτύπωση, ώστε να μπορείτε να δείτε ποιο ακριβές αρχείο ήχου αναπαράχθηκε. Serial.println ("1 --------"); // Μια άλλη καθυστέρηση για να αφήσει το αρχείο ήχου να αναπαράγει όλο το μήκος του. καθυστέρηση (5000)? } else if (lightDetectedVal> = 900) {Serial.println (lightDetectedVal); wtv020sd16p.playVoice (2); Serial.println ("2 --------"); καθυστέρηση (5000)? } else if (lightDetectedVal> = 800) {Serial.println (lightDetectedVal); wtv020sd16p.playVoice (3); Serial.println ("3 --------"); καθυστέρηση (5000)? } else if (lightDetectedVal> = 700) {Serial.println (lightDetectedVal); wtv020sd16p.playVoice (4); Serial.println ("4 --------"); καθυστέρηση (5000)? } else if (lightDetectedVal> = 600) {Serial.println (lightDetectedVal); wtv020sd16p.playVoice (5); Serial.println ("5 --------"); καθυστέρηση (5000)? } else if (lightDetectedVal> = 500 || lightDetectedVal 0 || distanceVal == NULL) {Serial.println (distanceVal); Serial.print ("Light Value:"); if (lightDetectedVal> = 1000) {Serial.println (lightDetectedVal); wtv020sd16p.playVoice (7); Serial.println ("7 --------"); καθυστέρηση (5000)? } else if (lightDetectedVal> = 900) {Serial.println (lightDetectedVal); wtv020sd16p.playVoice (8); Serial.println ("8 --------"); καθυστέρηση (8000)? } else if (lightDetectedVal> = 800) {Serial.println (lightDetectedVal); wtv020sd16p.playVoice (9); Serial.println ("9 --------"); καθυστέρηση (5000)? } else if (lightDetectedVal> = 700) {Serial.println (lightDetectedVal); wtv020sd16p.playVoice (10); Serial.println ("10 -------"); καθυστέρηση (8000)? } else if (lightDetectedVal> = 600) {Serial.println (lightDetectedVal); wtv020sd16p.playVoice (11); Serial.println ("11 -------"); καθυστέρηση (6000)? } else if (lightDetectedVal> = 500 || lightDetectedVal <= 1000) {Serial.println (lightDetectedVal); wtv020sd16p.playVoice (13); Serial.println ("13 -------"); καθυστέρηση (5000)? } else if (lightDetectedVal> = 900) {Serial.println (lightDetectedVal); wtv020sd16p.playVoice (14); Serial.println ("14 -------"); καθυστέρηση (5000)? } else if (lightDetectedVal> = 800) {Serial.println (lightDetectedVal); wtv020sd16p.playVoice (15); Serial.println ("15 -------"); καθυστέρηση (5000)? } else if (lightDetectedVal> = 700) {Serial.println (lightDetectedVal); wtv020sd16p.playVoice (16); Serial.println ("16 -------"); καθυστέρηση (5000)? } else if (lightDetectedVal> = 600) {Serial.println (lightDetectedVal); wtv020sd16p.playVoice (17); Serial.println ("17 -------"); καθυστέρηση (5000)? } else if (lightDetectedVal> = 500 || lightDetectedVal 0 || distanceVal == NULL || distanceVal> = 150) {Serial.println (distanceVal); Serial.print ("Light Value:"); if (lightDetectedVal> = 1000) {Serial.println (lightDetectedVal); wtv020sd16p.playVoice (19); Serial.println ("19 -------"); καθυστέρηση (5000)? } else if (lightDetectedVal> = 900) {Serial.println (lightDetectedVal); wtv020sd16p.playVoice (20); Serial.println ("20 -------"); καθυστέρηση (5000)? } else if (lightDetectedVal> = 800) {Serial.println (lightDetectedVal); wtv020sd16p.playVoice (21); Serial.println ("21 -------"); καθυστέρηση (5000)? } else if (lightDetectedVal> = 700) {Serial.println (lightDetectedVal); wtv020sd16p.playVoice (22); Serial.println ("22 -------"); καθυστέρηση (5000)? } else if (lightDetectedVal> = 600) {Serial.println (lightDetectedVal); wtv020sd16p.playVoice (23); Serial.println ("23 -------"); καθυστέρηση (5000)? } else if (lightDetectedVal> = 500 || lightDetectedVal << 500) {Serial.println (lightDetectedVal); wtv020sd16p.playVoice (24); Serial.println ("24 -------"); καθυστέρηση (5000)? }}}}
Βήμα 5: Η υπόθεση
Τώρα έρχεται το πραγματικό περίπλοκο κομμάτι.
Το να τα τοποθετήσετε όλα στη θήκη μπορεί να είναι λίγο δύσκολο, αυτό εξαρτάται από το πώς τα τοποθετήσατε όλα στο ψωμί σας ή πώς συγκολλήσατε τα πράγματα μαζί. Αλλά θα χρειαστεί να κάνετε μερικές τρύπες για να κολλήσουν οι αισθητήρες. Έβαλα το μικρόφωνο (απαιτείται τρυπάνι 9mm) και μονάδα σόναρ (απαιτείται τρυπάνι 6mm) στο πίσω μέρος και το LDR στο μπροστινό μέρος της δεξαμενής, αλλά μπορείτε να τα βάλετε αποτελεσματικά οπουδήποτε εάν έχετε χώρο.
Βεβαιωθείτε ότι έχετε κόψει μια τρύπα στο σώμα του μοντέλου για να μπορέσετε να συνδέσετε το arduino σας με το καλώδιο σύνδεσης.
Θα συνιστούσα να τοποθετήσετε το ηχείο στον πυργίσκο. καθώς θα έπρεπε να έχει μείνει άφθονος χώρος εκεί.
Η αριστερή εικόνα παραπάνω είναι ο τρόπος με τον οποίο τοποθέτησα το arduino και την εκτύπωση που κόλλησα μέσα στο μοντέλο Leopard 2. Η δεξιά εικόνα είναι αυτή με τις περισσότερες καλωδιώσεις τοποθετημένες.
Αυτό που μπορείτε να κάνετε είναι να ανοίξετε μικρές τρύπες στο κάτω μέρος του μοντέλου για να ασφαλίσετε το Arduino με συνδέσμους καλωδίων.
Αλλά αν δεν κάνω λάθος, πρέπει τώρα να τελειώσετε.
Συνιστάται:
WiFi WiFi Tank Monitor: 6 βήματα (με εικόνες)
WiFi Oil Tank Monitor: Υπάρχουν διάφοροι τρόποι για να ελέγξετε πόσο καύσιμο έχει απομείνει στη δεξαμενή λαδιού θέρμανσης. Ο απλούστερος τρόπος είναι να χρησιμοποιήσετε μια ράβδο μέτρησης, πολύ ακριβή, αλλά όχι πολύ διασκεδαστική σε μια κρύα χειμωνιάτικη μέρα. Ορισμένες δεξαμενές είναι εφοδιασμένες με σωλήνα οπτικής, δίνοντας πάλι άμεση ένδειξη
Πώς να φτιάξετε ρομπότ SMARS - Arduino Smart Robot Tank Bluetooth: 16 βήματα (με εικόνες)
Πώς να χτίσετε το ρομπότ SMARS - Arduino Smart Robot Tank Bluetooth: Αυτό το άρθρο υποστηρίζεται με υπερηφάνεια από το PCBWAY. Το PCBWAY κάνει υψηλής ποιότητας πρωτότυπα PCB για ανθρώπους σε όλο τον κόσμο. Δοκιμάστε το για τον εαυτό σας και αποκτήστε 10 PCB για μόλις $ 5 στο PCBWAY με πολύ καλή ποιότητα, Ευχαριστώ PCBWAY. Το Motor Shield για το Arduino Uno
Τηλεχειριστήριο Tank Drive Car: 3 Βήματα
Τηλεχειριστήριο Tank Drive Car: Αυτός είναι ένας οδηγός για το πώς να φτιάξετε ένα τηλεχειριστήριο αυτοκίνητο με δεξαμενή. Το σετ που θα χρησιμοποιήσω για να φτιάξω το αυτοκίνητο σήμερα είναι ένα απλό κιτ αυτοκινήτου με δεξαμενή, με αισθητήρα φωτός για να ακολουθήσετε μια πορεία. Το αυτοκίνητό σας δεν χρειάζεται τον αισθητήρα φωτός, αλλά χρειάζεται ένα αυτοκίνητο με δεξαμενή
3d Printed RC Controlled Tank !!: 8 βήματα (με εικόνες)
3d Printed RC Controlled Tank !!: Θέλατε ποτέ να έχετε ένα τηλεχειριζόμενο όχημα που μπορεί να βγει εκτός δρόμου και μπορείτε να δείτε ακόμη και από μια κάμερα προβολής πρώτου προσώπου, τότε αυτό το ρεζερβουάρ είναι φοβερό για εσάς. Τα κομμάτια στη δεξαμενή επιτρέπουν μεγάλη πρόσφυση όταν οδηγείτε σε εδάφη όπως χώμα και
Κάνοντας μια διαδικτυακή κάμερα Fish Tank !: 8 βήματα (με εικόνες)
Δημιουργία διαδικτυακής κάμερας Fish Tank!: Βήμα προς βήμα οδηγός για τη διαμόρφωση της θήκης μιας κάμερας IP, έτσι ώστε να μπορεί να προσαρτηθεί απευθείας σε μια δεξαμενή ψαριών. Ο λόγος που απαιτείται είναι επειδή οι κάμερες web συνήθως είναι σχεδιασμένες για να τοποθετούνται μπροστά από το θέμα ή χρειάζονται βάση. Ωστόσο, με ένα Fish Ta