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

Joking Tank: 5 βήματα
Joking Tank: 5 βήματα

Βίντεο: Joking Tank: 5 βήματα

Βίντεο: Joking Tank: 5 βήματα
Βίντεο: KOSPET TANK T2 - распаковка и знакомство с брутальными бронированными смарт часами🔥 2024, Νοέμβριος
Anonim
Πλάκα Δεξαμενή
Πλάκα Δεξαμενή

Αυτό είναι ένα έργο που έκανα στο σχολείο μου το 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 με συνδέσμους καλωδίων.

Αλλά αν δεν κάνω λάθος, πρέπει τώρα να τελειώσετε.

Συνιστάται: