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

כרונוגרף נרף וקצב אש: 7 שלבים
כרונוגרף נרף וקצב אש: 7 שלבים

וִידֵאוֹ: כרונוגרף נרף וקצב אש: 7 שלבים

וִידֵאוֹ: כרונוגרף נרף וקצב אש: 7 שלבים
וִידֵאוֹ: Nerf Hyper Impulse: Firing Demo and Chronograph Data 2024, יולי
Anonim
Image
Image
כרונוגרף Nerf וקצב אש
כרונוגרף Nerf וקצב אש

מבוא

כמתעסק תמיד מספק מאוד לראות את התוצאות המספריות של ההתעסקות שלך. רבים מאיתנו שינו בעבר אקדחי Nerf ומי לא אוהב חתיכות קצף זורקות ברחבי הבית במהירות של למעלה מ -100 fps?

לאחר ששיניתי רוב אקדחי Nerf במהלך חיי, החל מגיל 10 בערך עם אבא שלי עד עכשיו כשאני וחבריי לדירה ממשיכים להעיף קצף אחד על השני בדירה, תמיד רציתי לדעת כמה מהר החצים עפים בדיוק., וכמה חיצים בשנייה שותפים לדירה שלי Rapid-Strike יורים. ישנם כרונוגרפים מסחריים זמינים עבור Nerf ו- Airsoft, אך אלה המדויקים ביותר הם יקרים, וכיף לבנות אחד בעצמנו. אם אתה רוצה לקנות אחת, Nerf הוציא חבית כמעט זהה לזו שמוצגת בפרויקט זה (עם עיצוב תעשייתי טוב יותר) וניתן למצוא אותה כאן:

Nerf Modulus Ghost-Ops חבית כרונו

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

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

עקרונות בסיסיים (תוצאות למידה):

  • בעל צורה של חבית נרף סטנדרטית
  • שימוש בפוטו טרנזיסטורים כשערי תזמון לחץ.
  • מראה את השימוש בפסיקות Adruino לתזמון
  • שימוש בעיבוד עם Arduino לתקשורת סדרתית

היקף הפרויקט:

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

יתרונות על פרויקטים דומים:

  • שימוש בפסיקות למדידה מדויקת של מהירות גבוהה
  • סעיף דיבוג נרחב עבור פוטו טרנזיסטורים
  • חישוב קצב האש (ROF) שיוצא סיבובים לשנייה (RPS)
  • ממשק מחשב במסך מלא - לא שימושי במהלך הקרב, אבל נהדר אם אתה רוצה להראות לאחרים את התוצאות בזרם או ביוטיוב עם מקליט מסך.
  • אפשרות להתאמה לאיירסופט או פיינטבול על ידי שינוי המארז בלבד
  • אין צורך במחשבי PCB מותאמים אישית (יהיה נחמד בעדכון עתידי אבל כל אחד יכול לעשות זאת בעלות נמוכה יחסית
  • עלות כוללת של מתחת ל -10 $ כאשר חלקים נפרדים ואם ישנה מדפסת תלת -ממדית - בהתאמה למחיר המסחרי, עם תוספת ROF

שלב 1: חלקים וכלים נדרשים

חלקים וכלים נדרשים
חלקים וכלים נדרשים

אם יש לך מדפסת תלת מימד זה יהיה פרוייקט נהדר עבורך מכיוון שאני אספק את הקבצים למארז. אתה מוזמן לעדכן את המארז. לא היו לי מסכי LCD בהישג יד, אך אני מקווה שבגרסה שנייה יהיה LCD ותשתמש בלוח WEMOS D1 או לוח דומה מסוג WiFi/BT וסוללה. זה יאפשר רישום נתונים בנייד ומשוב בזמן אמת - למשל, כמה חצים נותרו באקדח. מומלץ קצת ניסיון הלחמה, אם אתה לא מרגיש בנוח אני ממליץ לעקוב אחר הוראה להלחמה וכנראה לקנות רכיבים אלקטרוניים נוספים לכל מקרה.

כלים נדרשים:

  1. מלחם
  2. מפוח אוויר חם/ אקדח חום/ מצית (אם משתמשים בכווץ חום)
  3. חשפניות חוטים
  4. כבל USB Mini -B (או הכבל הדרוש לבקר המיקרו שלך)
  5. אקדח דבק חם או דומה (השתמשתי בעט הדפסה תלת -ממדי לחיבור כל הרכיבים למארז המודפס בתלת -ממד)

חומרים נדרשים:

  1. 22AWG חוט בעל ליבות מוצקות לשעבר: ערכת חוטי ליבה מוצקה 22AWG
  2. Arduino Nano (או דומה, השתמשתי בשיבוט) למשל: 3 x Arduino Nano (שיבוט)
  3. ערכת התנגדות (2 x 220 אוהם, 2 x 220k אוהם) יתכן שתוכל להשתמש בנגדים הנפתחים בעלי ערך נמוך יותר כגון 47k בהצלחה, רק במקרה גיליתי שאני צריך ערך זה כדי שזה יעבוד. מדריך פתרון הבעיות מתאר כיצד לקבוע אם הנגד הנפתח הוא הערך הנכון עבור פוטוטרנזיסטור וסדרת הנורדים הספציפיים שלך. בגלל זה אני ממליץ לקבל קבוצה: ex: Resistor Set
  4. 2 x IR LED לשעבר: ערכת IR ו- PhotoTransistor Set
  5. 2 x PhotoTransistor
  6. 1 מארז מודפס בתלת מימד - בתוך נימה אטומה של IR (כסף האצ'בוקס עבד והיה הצבע היחיד שבדקתי)
  7. קובצי פרויקטים מלאים זמינים כאן ב- GitHub כמו גם בקובץ ה- Zip המצורף. STLs זמינים גם כאן ב- Thingiverse.

שלב 2: בדיקת לוח לחם

בדיקת לוח לחם
בדיקת לוח לחם
בדיקת לוח לחם
בדיקת לוח לחם

לאחר שהאלקטרוניקה הגיעה, הלחמה מובילה לפוטו-טרנזיסטורים ולנורות IR ~ 20-30 ס מ לצורך איתור באגים, אני ממליץ לכווץ את החום. לא היה לי כיווץ החום בגודל הנכון והייתי צריך להשתמש בקלטת חשמל לאב טיפוס זה. זה יאפשר לך להשתמש בהם לבדיקה במארז. אם הדפסת את המארז ויש לך נוריות LED וטרנזיסטורים לצילום במיקומים הנכונים תוכל להתחיל בבדיקה.

ודא שיש לך Arduino ועיבוד מותקן.

בקובץ ה- zip בהתחלה יש את כל הקוד, כמו גם את קבצי STL להדפסת המארז.

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

אתה יכול פשוט לירות חץ Nerf דרך הכרונוגרף עם Chronogrpah_Updated.ino מותקן על Arduino. אם זה עובד אז אתה מוכן. אם זה לא עובד אז סביר להניח שתצטרך להתאים את ערכי הנגד. זה נדון בשלב הבא.

קצת על איך הקוד עובד:

  1. Interrupst עוצר את הקוד בכל פעם שחץ עובר דרך שער וקובע את הזמן במיקרו שניות
  2. המהירות מחושבת עם זה והזמן נשמר
  3. הזמן בין היריות מחושב והומר לסיבובים לשנייה
  4. הזמן בין השערים מחושב והומר לרגל לשנייה בהתבסס על מרחק השער.

    שימוש בשני שערים מאפשר תוצאות טובות יותר עם תזמון זהה (כמה מהחיישן חייב להיות מכוסה) ומפחית היסטריה

  5. מהירות וקצב האש נשלחים באמצעות סדרה המופרדת בפסיק לפקח הטורי בארדואינו או למערכון העיבוד המאפשר ממשק משתמש נחמד (התמקדות בעיבוד כאשר כל השאר עובד!).

שלב 3: בדיקה וניקוי באגים

אם לא הצלחת בבדיקה הראשונית, עלינו להבין מה השתבש.

פתח את דוגמת Arduino AnalogReadSerial המצוי בקובץ-> דוגמאות-> 0.1 יסודות-> AnalogReadSerial

אנו רוצים להבטיח כי הפוטוטרנזיסטורים פועלים כפי שאנו מצפים מהם. אנו רוצים שהם יקראו HIGH כאשר החץ אינו חוסם אותם, ו- LOW כאשר החץ אינו. הסיבה לכך היא שהקוד משתמש ב- Interrupts כדי לתעד את הזמן בו החץ עובר את החיישן, וסוג ההפרעה בשימוש הוא FALLING, מה שאומר שהוא יופעל בעת מעבר מ- HIGH ל- LOW. כדי להבטיח שהסיכה היא גבוהה אנו יכולים להשתמש בסיכות האנלוגיות כדי לקבוע את הערך של סיכות אלה.

העלה את דוגמת Arduino AnalogReadSerial וקפוץ מהסיכה הדיגיטלית D2 או D3 ל- A0.

D2 צריך להיות החיישן הראשון ו- D3 צריך להיות החיישן השני. בחר 1 כדי לקרוא ולהתחיל שם. עקוב אחר המדריך שלהלן כדי לקבוע את הפתרון הנכון על סמך הקריאות:

הערך הוא 0 או נמוך מאוד:

הערך צריך להיות בסביבות 1000 בתחילה, אם הוא קורא ערך נמוך מאוד או אפס, וודא שהנורות שלך מחוברות כראוי ולא שרופות, כמו גם מיושרות היטב. שרפתי את נוריות הלחימה שלי בבדיקות בעת שימוש בנגד 100 אוהם במקום 220 אוהם. עדיף לעיין בגיליון הנתונים של נוריות הלדים כדי לקבוע את ערך הנגד הנכון, אך רוב נוריות ה- LED כנראה יעבדו עם הנגד של 220 אוהם.

נוריות עבודה, והערך עדיין 0 או נמוך מאוד:

הבעיה היא ככל הנראה בנגד ההורדה למטה בעל התנגדות נמוכה מדי. אם אתה נתקל בבעיה בנגד 220k, אתה יכול להגדיל אותו גבוה יותר מזה, אך אתה עלול לקבל רעש. עליך לוודא שטרנזיסטור הצילום שלך לא נשרף.

ערך הוא טווח בינוני:

זה יגרום לבעיות רבות, בעיקר טריגרים כוזבים, או שלעולם לא יגרום לשיא. עלינו לוודא שיתקבל HIGH, על מנת לעשות זאת אנו זקוקים לערך ~ 600 אך ניתן לשאוף ל- 900+ כדי להיות בטוחים. להיות קרוב מדי לסף זה יכול לגרום לטריגרים כוזבים, ולכן אנו רוצים להימנע מכל חיוביות שווא. כדי להתאים ערך זה, אנו רוצים להגדיל את הנגד הנפתח (220K). כבר עשיתי זאת כמה פעמים בעיצוב שלי וסביר שלא תצטרך לעשות זאת מכיוון שמדובר בערך גבוה מאוד עבור נגד נפתח.

הערך רועש מאוד (קופץ הרבה ללא גירויים חיצוניים):

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

הערך תקוע על 1000+, גם כאשר חוסמים את החיישן:

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

הערך גבוה ועולה לאפס בעת חסימת האור:

זה אמור להספיק כדי שהחיישן יפעל, אולם יתכן שלא נהיה תגובה מהירה מספיק כאשר החץ חוצה את השביל. יש מעט קיבול במעגל, ועם הנגד של 220K זה עלול לקחת זמן עד שהמתח יירד מתחת לסף הנדרש. אם זה המקרה, הפחית את הנגד ל 100K וראה כיצד הבדיקות פועלות.

ודא שכל שינויי מנגד הינם עקביים בין שני החיישנים

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

אם יש לך בעיות נוספות, שלח הערה למטה ואעשה כמיטב יכולתי לעזור לך.

שלב 4: הרכבת חומרה

הרכבת חומרה
הרכבת חומרה
הרכבת חומרה
הרכבת חומרה
הרכבת חומרה
הרכבת חומרה

הלחם את הרכיבים ל- PCB הקטן כפי שניתן לראות כאן:

מוליכים עבור נוריות LED ו- PhotoTransistors צריכים לחתוך לאורך, בערך _.

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

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

שלב 5: הרכבה אחרונה

הרכבה סופית
הרכבה סופית
הרכבה סופית
הרכבה סופית
הרכבה סופית
הרכבה סופית

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

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

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

שלב 6: כרונוגרף בפעולה

Image
Image
כרונוגרף בפעולה
כרונוגרף בפעולה

פתיחת קובץ העיבוד: Chronograph_Intitial_Release תאפשר ממשק משתמש ממש נחמד לכרונוגרף המציג גם FPS וגם RPS (סיבובים לשנייה). אם אתה מתקשה להתחבר וודא שסגרת את הצג הטורי של Arduino, ייתכן שיהיה עליך לשנות גם את היציאה הטורית בקוד, אך יש להגיב על כך וצריך להיות פשוט. כדי לאפס את ערכי המקסימום, פשוט לחץ על מקש הרווח במחשב שלך.

קצת על איך הקוד עובד (ניתן לראות תמונה של ממשק המשתמש למעלה):

  1. מקבל קלט מהארדואינו
  2. משווה זאת לקלט העבר כדי למצוא את הערך המרבי
  3. מציג את הערכים הנוכחיים והמקסימליים במסך מלא למשוב חזותי קל
  4. מאפס ערך מקסימלי בעת לחיצה על רווח

שלב 7: תוכניות עתידיות

עדכון עתידי לכך יכלול את השיפורים הבאים. אם יש לך תכונות נוספות שהיית רוצה, הודע לי על כך ואנסה ליישם אותן.

  1. כלול מסך LCD
  2. כלול מצברים
  3. נקודות חיבור תואמות Nerf
  4. מארז מעודכן
  5. מראות ברזל

מוּמלָץ: