תוכן עניינים:

טנק מתבדח: 5 שלבים
טנק מתבדח: 5 שלבים

וִידֵאוֹ: טנק מתבדח: 5 שלבים

וִידֵאוֹ: טנק מתבדח: 5 שלבים
וִידֵאוֹ: חוד החנית של חמאס: הצצה לקומנדו הימי של ארגון הטרור 2024, יולי
Anonim
טנק מתבדח
טנק מתבדח

זהו פרויקט שעשיתי בבית הספר שלי HKU, שדרש מאיתנו לעשות משהו עם אונו ארדואינו. רציתי להכין משהו שיעשה את הדבר שאני הכי אוהב, שיגרום לאנשים לצחוק. אז החלטתי להכין קופסת בדיחה שתזרוק לך בדיחה, אבל איזו בדיחה היא נתנה לך תהיה תלויה במה שנמדדו כמה מודולי חיישן באותו רגע בזמן מסוים. כדי להפוך אותו לאישי יותר החלטתי להפוך אותו לטנק.

שלב 1: קבלת החלקים

החלקים שתצטרכו לשחזר את הפרויקט הזה יהיו

  • מחשב 1x המסוגל להריץ Arduino IDE
  • 1x Arduino Uno
  • 1x כבל מחבר USB עבור Arduino Uno
  • חיישן 1x סונאר
  • 1x רמקול (עדיף באיכות הגונה (, השתמשתי ברמקול שהוצאתי מרמקול Bluetooth)).
  • 1x מודול מגבר LM386 (אפשר להכין את זה בעצמך אבל השתמשתי במודול).
  • 1x מיקרופון LM393
  • 1x LDR
  • 1x LED (כל צבע יעשה אבל השתמשתי בכחול).
  • נגד 4x 1kΩ
  • נגד 2, 7kΩ
  • 1x לוח לחם
  • 1x כרטיס מיקרו SD (רצוי קטן (1 או 2 GB)).
  • 1x מקדחה כוח.
  • 1x מקדח 16 מ"מ (רצוי מיועד לקידוח מתכת).
  • 1x מקדחה 9 מ"מ (עדיף גם לקדוח מתכת).
  • 1x מקדח 1 מ"מ (שוב עדיף מיועד לקידוח מתכת).
  • טנק דגם 1x (השתמשתי בנמר 2 בקנה מידה 1:35 אבל גם מקרים אחרים צריכים להיות בסדר).
  • דבק -על / דבק חם
  • ולא מעט חוטים רצוי בצבעים שונים.
  • קשרים (אופציונלי).

שלב 2: חיווט

תִיוּל
תִיוּל

אנחנו צריכים להתחיל עם החיווט, התמונה היא ציור טכני של איך הכל צריך להיות מחובר. זה אמור לשמש כשרטוט שלך. הערה: כל יציאות Arduino נקראות AP# לכל יציאה. אז היציאה הרביעית על Arduino הוא AP4, יציאה A0 היא APA0 ויציאה 6 ~ היא AP6 ~ וכו 'כל שאר היציאות נקראות כפי שהן מופיעות במודולים עצמם.

שלב 3: קוד קוד דברים

עכשיו לפני שנוכל להתחיל להשתמש בקוד אנחנו צריכים קצת דברים, אני ממליץ לך עכשיו לעקוב אחר הדרכה זו משלב 2 עד 4

www.electronoobs.com/eng_arduino_tut8.php

עם זאת אנחנו לא הולכים להשתמש בקוד שלו מכיוון שאנחנו הולכים להשתמש משלנו. שימו לב כי חלק מהרמקולים משתמשים בתדרים שונים. הרמקול שלי השתמש בקבצי שמע של 32 סיביות של 32kHz. אז אם הדיבור שלך עושה רעש כלשהו אבל לא מנגן את הקבצים שלך, נסה לשחק עם התדר שלך.

שלב 4: קוד

עכשיו אנחנו הולכים להעלות את הקוד ל- arduino. העתק את כל זה והעבר אותו ל- IDE של Arduino והעלה אותו ל- Arduino שלך.

// כולל את הספרייה של קורא כרטיסי ה- SD.#כולל "Wtv020sd16p.h" // כולל את הספרייה הדרושה לחיישן הסונאר. #include // קובע את הסיכות של הארדואינו. 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); // קובע את הפינים לספריית חיישן הסונאר. סונאר NewPing (11, 10); // מגדיר את שאר הכניסות וקובע את קצב הסיביות של התוכנית. הגדרת ריק () {wtv020sd16p.reset (); pinMode (lightDetectedPin, INPUT); pinMode (soundDetectedPin, INPUT); Serial.begin (9600); } // החלק העיקרי של התוכנית. לולאת void () {// קובע את intergers int lightDetectedVal = analogRead (lightDetectedPin); int distanceVal = sonar.ping_cm (); int soundDetectedVal = digitalRead (soundDetectedPin); // עיכוב כדי שהפרויקט הפרויקט לא ימשיך להשתמש ברמקול אינסופית. עיכוב (30000); // הדפס סדרה וקווים הדפסה כך שתוכל לראות בקלות אילו ערכים נלקחים על ידי מודולי החיישן. Serial.print ("ערך צליל:"); // הצהרות מרובות אם התוכנית מנגנת קבצי שמע שונים בהתאם לערכים נמדדים על ידי מודולי החיישן. if (soundDetectedVal == 0) {Serial.println (soundDetectedVal); Serial.print ("מרחק:"); if (distanceVal == 0) {Serial.println (distanceVal); Serial.print ("ערך קל:"); if (lightDetectedVal> = 1000) {Serial.println (lightDetectedVal); wtv020sd16p.playVoice (1); // הדפסה סדרתית נוספת כדי שתוכל לראות איזה קובץ שמע בדיוק הושמע. Serial.println ("1 --------"); // עיכוב נוסף לתת לקובץ האודיו לשחק באורך מלא. עיכוב (5000); } אחרת אם (lightDetectedVal> = 900) {Serial.println (lightDetectedVal); wtv020sd16p.playVoice (2); Serial.println ("2 --------"); עיכוב (5000); } אחרת אם (lightDetectedVal> = 800) {Serial.println (lightDetectedVal); wtv020sd16p.playVoice (3); Serial.println ("3 --------"); עיכוב (5000); } אחרת אם (lightDetectedVal> = 700) {Serial.println (lightDetectedVal); wtv020sd16p.playVoice (4); Serial.println ("4 --------"); עיכוב (5000); } אחרת אם (lightDetectedVal> = 600) {Serial.println (lightDetectedVal); wtv020sd16p.playVoice (5); Serial.println ("5 --------"); עיכוב (5000); } אחרת אם (lightDetectedVal> = 500 || lightDetectedVal 0 || distanceVal == NULL) {Serial.println (distanceVal); Serial.print ("ערך קל:"); if (lightDetectedVal> = 1000) {Serial.println (lightDetectedVal); wtv020sd16p.playVoice (7); Serial.println ("7 --------"); עיכוב (5000); } אחרת אם (lightDetectedVal> = 900) {Serial.println (lightDetectedVal); wtv020sd16p.playVoice (8); Serial.println ("8 --------"); עיכוב (8000); } אחרת אם (lightDetectedVal> = 800) {Serial.println (lightDetectedVal); wtv020sd16p.playVoice (9); Serial.println ("9 --------"); עיכוב (5000); } אחרת אם (lightDetectedVal> = 700) {Serial.println (lightDetectedVal); wtv020sd16p.playVoice (10); Serial.println ("10 -------"); עיכוב (8000); } אחרת אם (lightDetectedVal> = 600) {Serial.println (lightDetectedVal); wtv020sd16p.playVoice (11); Serial.println ("11 -------"); עיכוב (6000); } אחרת אם (lightDetectedVal> = 500 || lightDetectedVal <= 1000) {Serial.println (lightDetectedVal); wtv020sd16p.playVoice (13); Serial.println ("13 -------"); עיכוב (5000); } אחרת אם (lightDetectedVal> = 900) {Serial.println (lightDetectedVal); wtv020sd16p.playVoice (14); Serial.println ("14 -------"); עיכוב (5000); } אחרת אם (lightDetectedVal> = 800) {Serial.println (lightDetectedVal); wtv020sd16p.playVoice (15); Serial.println ("15 -------"); עיכוב (5000); } אחרת אם (lightDetectedVal> = 700) {Serial.println (lightDetectedVal); wtv020sd16p.playVoice (16); Serial.println ("16 -------"); עיכוב (5000); } אחרת אם (lightDetectedVal> = 600) {Serial.println (lightDetectedVal); wtv020sd16p.playVoice (17); Serial.println ("17 -------"); עיכוב (5000); } אחרת אם (lightDetectedVal> = 500 || lightDetectedVal 0 || distanceVal == NULL || distanceVal> = 150) {Serial.println (distanceVal); Serial.print ("ערך קל:"); if (lightDetectedVal> = 1000) {Serial.println (lightDetectedVal); wtv020sd16p.playVoice (19); Serial.println ("19 -------"); עיכוב (5000); } אחרת אם (lightDetectedVal> = 900) {Serial.println (lightDetectedVal); wtv020sd16p.playVoice (20); Serial.println ("20 -------"); עיכוב (5000); } אחרת אם (lightDetectedVal> = 800) {Serial.println (lightDetectedVal); wtv020sd16p.playVoice (21); Serial.println ("21 -------"); עיכוב (5000); } אחרת אם (lightDetectedVal> = 700) {Serial.println (lightDetectedVal); wtv020sd16p.playVoice (22); Serial.println ("22 -------"); עיכוב (5000); } אחרת אם (lightDetectedVal> = 600) {Serial.println (lightDetectedVal); wtv020sd16p.playVoice (23); Serial.println ("23 -------"); עיכוב (5000); } אחרת אם (lightDetectedVal> = 500 || lightDetectedVal << 500) {Serial.println (lightDetectedVal); wtv020sd16p.playVoice (24); Serial.println ("24 -------"); עיכוב (5000); }}}}

שלב 5: התיק

המקרה
המקרה
המקרה
המקרה

עכשיו מגיע החלק המסובך בפועל.

התאמת הכל במקרה עשויה להיות קצת מסובכת, תלוי איך התאמת הכל ללוח הלחם שלך או איך הלחמת דברים יחד. אבל תצטרך לעשות כמה חורים כדי שהחיישנים יידבקו היטב. שמתי את המיקרופון (צורך במקדח 9 מ"מ) ומודול הסונאר (דרוש 6 מ"מ) בחלקו האחורי ואת ה- LDR בחזית הטנק, אך תוכל לשים אותם ביעילות בכל מקום אם יש לך מקום.

הקפד לחתוך חור בגוף הדגם כדי לחבר את הארדואינו שלך עם כבל המחבר.

הייתי ממליץ לשים את הרמקול בצריח. כי אמור להישאר שם מספיק מקום.

התמונה השמאלית למעלה היא איך התאמתי את הארדואינו ואת ההדפסה שהלחמתי בתוך דגם ה- Leopard 2. התמונה הימנית היא אחת עם רוב החיווט המותאם.

מה שאתה יכול לעשות הוא לקדוח חורים קטנים בתחתית הדגם כדי לאבטח את הארדואינו בעזרת קשרים.

אך אם אינני טועה, כעת עליך לסיים.

מוּמלָץ: