תוכן עניינים:
- שלב 1: תכונה
- שלב 2: תורת הפעולה והדיוק
- שלב 3: רשימת סכמטים וחלקים
- שלב 4: קובץ Gerber PCB
- שלב 5: הלחם את המחשב האישי שלך
- שלב 6: תכנות ה- Atmega328p
- שלב 7: תצוגת LCD
- שלב 8: קובץ STL
- שלב 9: מקודד סיבובי
- שלב 10: צינור חיישן
- שלב 11: אלטרנטיבה לצינור חיישן
- שלב 12: גלולה על אוסצילוסקופ וכיול
- שלב 13: עוד…
וִידֵאוֹ: כרונוגרף של רובה אוויר, כרונוסקופ. מודפס בתלת מימד: 13 שלבים
2024 מְחַבֵּר: John Day | [email protected]. שונה לאחרונה: 2024-01-30 09:12
היי לכולם, היום נבקר שוב בפרוייקט שעשיתי בשנת 2010. כרונוגרף של רובה אוויר. מכשיר זה יגיד לך את מהירות הטיל. כדור פלסטיק, BB או אפילו אוויר רך BB פלסטיק.
בשנת 2010 קניתי רובה אוויר בשביל הכיף. פגעתי בפחיות, בקבוקים, כיוון. אני יודע שהמהירות של האקדח הזה הייתה מקסימלית של 500 רגל לשנייה. כי זה חוק הקנדה. יש רובה אוויר חזקה יותר אבל אתה צריך להיות בעל רישיון ולא תוכל לקנות את הדבר הזה בוולמארט.
עכשיו היה לי רישיון זה, יכולתי לרכוש עוד אחד. אבל סיפור קצר, אותו אקדח היה זמין לארה ב במהירות של 1000 רגל/שניות. מה!? אותו אקדח? כן … בקנדה, לשבץ יש חור בה והמעיין רך יותר.
הדבר הראשון שצריך לעשות הוא למלא את החור. זה מה שעשיתי עם הלחמה. הדבר הבא לעשות הוא להזמין קפיץ חלופי. אבל רגע … מה המהירות הנוכחית של הצעצוע החדש שלי? האם האביב באמת נחוץ? אני לא יודע ואני רוצה לדעת. אני רוצה לדעת עכשיו אבל איך?
בגלל זה עשיתי את הפרויקט הזה. כל מה שהייתי צריך זה 2 חיישנים, uC ותצוגה ואנחנו בעסקים.
בשבוע שעבר ראיתי את הכרונוגרף הכחול הישן שלי על מדף ואני מדבר לעצמי: "למה שלא תשתף את זה ותעשה עם זה הוראה?" ואגב, נוכל להעלות את הדיוק ולהוסיף מחוון סוללה. שים כפתור 1 במקום 2 להפעלה/כיבוי. כל הר משטח. אנחנו עכשיו בשנת 2020!
אז הנה זה … נתחיל!
שלב 1: תכונה
-מהירות גלולה
-מְהִירוּת
ריצה של -20 מגה -הרץ, דיוק עצום
-כיבוי אוטומטי
-מתח הסוללה מוצג
-זמין סכמטי
-pcb זמין
-רשימת חלקים זמינה
-STL זמין
-קוד C זמין
שלב 2: תורת הפעולה והדיוק
-יש לנו UC פועל במהירות 20Mhz. המתנד המשמש הוא TCX0 +-2.5 עמודים לדקה
-יש לנו 2 חיישנים במרחק של 3 סנטימטרים אחד מהשני.
-הקליע פגע בחיישן הראשון. uC להתחיל לספור (טיימר 1)
-הקליע פגע בחיישן השני. uC תפסיק לספור.
-בדוק את ערך טיימר 1, בצע את החישוב והמהירות ומהירות התצוגה.
אני משתמש בטיימר 16 סיביות + דגל הצפה tov1. סה"כ 17 ביט עבור 131071 "tic" לספירה מלאה.
1/20 mhz = 50 ns. כל טיק הוא 50 ns
131071 x 50 ns = 6.55355 אלפיות השנייה לעשות 3 אינץ '.
6.55355 ms x 4 = 26.21 ms לעשות 12 אינץ '.
1/26.21 ms = 38.1472637 רגל/שנייה
זו המהירות האיטית ביותר שהמכשיר יכול למדוד.
למה 20 מגה -הרץ? למה לא להשתמש ב 8 מגה -הרץ הפנימי או אפילו קריסטל?
המכשיר הראשון שלי היה באמצעות המתנד הפנימי. עבד אבל זה לא היה מדויק מספיק. הווריאציה עצומה מדי. קריסטל עדיף אך הטמפרטורה בתדירות משתנה. אנחנו לא יכולים לעשות מכשיר מדידה מדויק עם זה. כמו כן, ככל שהתדירות גבוהה יותר, יותר טיק ייחשב לאותה מהירות. הדגימה תהיה טובה יותר עם דיוק טוב מאוד. מכיוון שלא ניתן לחלק טיק, ההפסד הוא קטן אם מחזור העבודה הוא מהיר.
ב 20 MHz יש לנו צעדים של 50 ns. האם אנו יודעים כמה המדויק הוא 50 ns עבור קליע במהירות של 38 רגל/שניות.
38.1472637 ft/s לחלק ב 131071 = 0, 000291042 רגל
0, 0003880569939956207 רגל x 12 = 0, 003492512 אינץ '
1/0, 003492512 = 286.37 ". במילה אחרת. במהירות 50 רגל/שניות יש לנו דיוק של +- 1/286" או +- 0, 003492512 אינץ '
אבל אם המתנד שלי הוא הגרוע ביותר ופועל במהירות 20 מגה -הרץ +2.5 עמודים לדקה האם זה בסדר? בוא נגלה…
2.5 עמודים לדקה של 20 000 000 הם: (20000000/1000000) x 2.5 = 20000050 הרץ
אז במקרה הגרוע ביותר יש לנו עוד 50 שעון על 20 מגה -הרץ. זה שעון 50 בשנייה אחת. כמה טיק יותר על טיימר 1 אם הגלולה עושה את אותה מהירות (38.1472637 רגל/שניות או 6.55ms)?
1/20000050 = 49.999875 ns
49.999875 ns x 131071 = 6, 553533616 ms
6, 553533616 ms x 4 = 26.21413446 ms
1/26.21413446 ms = 38.14735907 רגל/שניות
אז יש לנו 38.14735907 רגל/ש 'במקום 38.1472637 רגל/ש'
כעת אנו יודעים כי 2.5 עמודים לדקה אינם משפיעים על התוצאה.
להלן דוגמא למהירות שונה
למשך 1000 רגל/שניות
1000 רגל/ש x 12 הוא 12000 אינץ '/ש
שנייה אחת למשך 12000 "כמה זמן לעשות 3"? 3x1/12000 = 250 שניות
250 us / 50 ns = 5000 tic.
טיימר 1 יעמוד על 5000
uC בצע את החישוב ו -1000 רגל/שניות מוצג. בינתיים הכל טוב
למשך 900 רגל/שניות
900 רגל/שנייה זה 10800 אינץ 'לשנייה
3x1/10800 = 277.77 אנחנו
277, 77 ns / 50 ns = 5555, 5555 tic
טיימר 1 יהיה בשעה 5555
uC בצע את החישוב ו- 900, 09 יוצג במקום 900
למה ? מכיוון שטיימר 1 נמצא ב- 5555 ו- 0, 5555 הולך לאיבוד. טייקר על טיימר אינו ניתן לחלוקה.
יש לנו שגיאה 0, 09 על 900 רגל/שניות
0, 09/900x100 = 0, 01% שגיאה בלבד
1500 רגל/ש 1500 רגל/ש 'הוא 18000 אינץ'/ש 3x1/10800 = 166.66 לנו
166.66 us / 50 ns = 3333.333 טייק טיימר 1 יהיה ב- 3333
uC בצע את החישוב ו- 1500.15 יוצג במקום 1500 זה.15/1500x100 = 0, 01%
למשך 9000 רגל לשנייה
9000 x 12 = 180000 אינץ 'לשנייה
3x1/180000 = 27.7777 לנו
27.77 us / 50 ns = 555, 555
טיימר 1 יהיה 555 ו -4/(1/555x50ns) יוצג 9009, 00 יוצג
כאן השגיאה היא 9 רגל/ש 'על 9000 = 0, 1%
כפי שאתה יכול לראות % השגיאה עולה כאשר המהירות גבוהה יותר. אבל הישאר <0.1%
התוצאות האלה טובות מאוד.
אבל הדיוק אינו לינארי. במהירות 10000 רגל/ש 'זה 0, 1 %. דבר חדש הוא שאנו אף פעם לא בודקים גלולה בגודל 10, 000 רגל/ש.
דבר נוסף שכדאי לזכור. כאשר מתרחשת הפרעה, uC תמיד מסיימת את ההוראה האחרונה לפני הכניסה להפסקה. זה נורמלי וכל UC עושה את זה. אם אתה מקודד arduino, ב- C או אפילו במכלול. רוב הזמן תחכו בלופ לנצח … לחכות. הבעיה היא שבלולאה אנו מבלים 2 מחזורים. בדרך כלל זה לא חשוב. אבל במקרה שלנו. כן, כל טיק חשוב. בואו נסתכל בלולאה אינסופית:
מכלול:
לוּלָאָה:
לולאת rjmp
ב- C:
בעוד (1) {}
למעשה מהדר C משתמש בהוראת rjmp. RJMP הוא 2 מחזורים.
זה אומר שאם ההפרעה מתרחשת במחזור הראשון, אנו מאבדים מחזור אחד (טיק) (50ns).
הדרך שלי לתקן זאת היא להוסיף הרבה הוראות nop בלולאה. NOP הוא מחזור אחד.
לוּלָאָה:
לא
לא
לא
לא
לא
לולאת rjmp
אם ההפרעה מתרחשת בהוראה לא. אנחנו בסדר. אם זה קורה במחזור השני של הוראת rjmp אנחנו בסדר. אבל אם זה יקרה במחזור הראשון של הוראת rjmp, נאבד תיקון אחד. כן זה רק 50 ns אבל כמו שאתה יכול לראות למעלה, 50 ns על 3 אינץ 'זה לא כלום. איננו יכולים לתקן זאת באמצעות תוכנה מכיוון שאיננו יודעים מתי בדיוק ההפרעה מתרחשת. לכן בקוד תראה הרבה הוראות לא. עכשיו אני די בטוח שההפסקה תיפול בהוראה לא. אם אני מוסיף 2000 nop יש לי 0, 05% ליפול על הוראת rjmp.
דבר נוסף שכדאי לזכור. כאשר מתרחשת הפרעה. המהדר עושה הרבה דחיפה ומשיכה. אבל זה תמיד אותו מספר. אז עכשיו נוכל לבצע תיקון תוכנה.
לסיכום בנושא:
הדיוק בכדור ממוצע של 1000 רגל/שניות הוא 0, 01%
100x יותר מדויק מאשר 1% אחרים בשוק. התדירות גבוהה יותר ועם TCXO, מדויק יותר
לדוגמא, 1% מה- 1000 רגל/ש 'הוא פחות או יותר 10 רגל/שנייה. זה הבדל עצום.
שלב 3: רשימת סכמטים וחלקים
כאן יישמתי את מעגל ההפעלה/כיבוי של כפתור הלחיצה האחד שלי. (עיין במדריך האחרון שלי) המעגל הזה שימושי מאוד ועובד טוב מאוד.
אני משתמש ב- atmega328p. זה מתוכנת ב- C.
התצוגה תואמת HD44780 LCD סטנדרטית בעלת 2 קווים. נעשה שימוש במצב 4 ביט.
וסת 3.3v משמש לספק מתח ל- TCXO 20mhz.
D1 מיועד לתאורה אחורית lcd. אופציונאלי. הסוללה תחזיק יותר אם לא תתקין D1.
כל הנגדים והמכסים הם באריזה 0805
C1.1uf 25v
C2 1uf 16v
C3 2.2uf 10v
C4.1uf
C5.1uf
C6.1uf
C7 1uf
C8.1uf
C9.1uf
C10.1uf
D1 1n4148 SM SOT123
D2 5.1v SOT123
IC1 ATMEGA328p
IC2 MIC5225-5.0YM5-TR TPS70950DBVT SOT23-DBV
OSC1 TXETDCSANF-20.000000
R1 1M
R2 1M
R4 2.2k
R5 160
R6 160
R7 1M
R8 1M
U1 MIC5317-3.3 MIC5317 SOT23-5
U2 DMG6601LVT DMG6601LVT SOT23-6
צג lcd 2 line HD44780. אין צורך לרכוש את מודול i2c.
חיישנים:
2x פולט OP140A
2x מקלט OPL530
מקודד: PEC11R-4215K-S0024 *אל תשכח להוסיף נגדים 4x 10k ו- 2x.01uf לביצוע מסנן המקודד. ראה תמונה למטה
שלב 4: קובץ Gerber PCB
להלן קבצי גרבר
שלב 5: הלחם את המחשב האישי שלך
בעזרת סכמטי, הלחם את כל הרכיב שלך במחשב הלוח. כל חלק או כתוב על pcb, r1, r2 … וכן הלאה.
אין לי התקנה של D1. זה מיועד לתאורה האחורית של lcd. זה יפה אבל חיי הסוללה מושפעים. אז אני בוחר להשאיר את האור האחורי של ה- LCD כבוי.
שלב 6: תכנות ה- Atmega328p
בדוק כאן בשלב 12 לתכנת ה- atmega328p. אני מספק כאן את קובץ ה- hex עבור זה.
להלן תוכנית avrdude מוכנה לתכנת קובץ אצווה. לחץ רק על התוכנית usbasp.bat וה- usbasp שלך מותקן כראוי. הכל יעשה באופן אוטומטי כולל ביט נתיך.
1drv.ms/u/s!AnKLPDy3pII_vXaGPIZKMXxaXDul?e…
בפרויקט זה אני משתף גם את קוד המקור C. שים לב כי הערה כלשהי בו יכולה להיות בצרפתית. Https://1drv.ms/u/s! AnKLPDy3pII_vXUMXHdxajwGRFJx? E…
שלב 7: תצוגת LCD
התקן קצת קלטת וחבר pcb ו- lcd יחד
שלב 8: קובץ STL
קובץ stl
1drv.ms/u/s!AnKLPDy3pII_vgezy0i0Aw3nD-xr?e…
יש צורך בתמיכה במארז, צינור חיישן ומחזיק רובה.
הדפסתי את כולם בגובה.2 מ מ.
שלב 9: מקודד סיבובי
מקודד סיבובי זה מחובר למחבר ה- ISP. הוא משמש לשינוי משקל הגלולה ולהדלקה וכיבוי של המכשיר.
סיכת ISP ISP 2 (הנגד למעלה)
מסוף A (צהוב) עובר לסיכה של ספק האינטרנט 1
מסוף B (ירוק) עבור לפין ספק שירותי האינטרנט 3
מסוף C (gnd) סיכת ISP 6
אני מוסיף 2 תמונות כדי לראות את ההבדל בין אם יש מסנן לעומת אין מסנן. אתה יכול לראות בקלות את ההבדל בין שניהם.
כפתור הלחיצה עובר למחבר ה- PCB SW.
שלב 10: צינור חיישן
חָשׁוּב:
צינור החיישן חייב להיות שחור ומקלט החיישן חייב להיות מוסתר
הניסיונות הראשונים שלי היו לקבל צינור אדום ויפה. אבל זה מסובך! זה לא עבד בכלל. הבנתי שאור חיצוני נכנס לזרוק את חיישן הפלסטיק והמקלט תמיד דולק.
כדי לקבל תוצאה טובה לא הייתה לי ברירה לשנות את הצבע לשחור.
התקן את המקלט למעלה. והסתירו את הפלסטיק הצלול עם צבע שחור, סרט או מסטיק, סיליקון שחור.
התקן פולט בתחתית.. בדוק בעט אם החיישנים מגיבים היטב. אולי יהיה צורך להגדיל מעט את החור של הפולט. זה יהיה תלוי בכיול המדפסת שלך.
יש לי גם תוצאה טובה יותר בצל. הימנע מאור שמש ישיר.
שלב 11: אלטרנטיבה לצינור חיישן
אם אין לך מדפסת תלת מימד, אתה יכול לעשות את אותו הדבר עם צינור נחושת. זה יעבוד טוב מאוד. דבר קשה לעשות הוא החור בגובה 3 סנטימטרים בדיוק והמקלט והפולט חייבים להיות מיושרים.
שלב 12: גלולה על אוסצילוסקופ וכיול
זוהי גלולה אמיתית שעוברת לזרוק את הצינור. בדיקה 1 צהוב הוא חיישן 1. בדיקה 2 סגולה היא חיישן 2.
זמן/div הוא 50 us.
אנו יכולים לספור 6 חטיבות של 50us. 50 us x 6 = 300 us (עבור 3 אינץ '). 300 us x 4 = 1.2 ms עבור 1 רגל
1/1.2ms = 833.33 רגל/שנייה
אנו יכולים גם לראות כי החיישן נמצא בדרך כלל ב -5 וולט. והאם נוכל לחסום את אור הפולט, החיישן נופל ל -0.
זו הדרך שבה uC מתחיל ועוצר את הקונטר שלו (טיימר 1)
אבל כדי לדעת בדיוק אם המהירות מדויקת, הייתי צריך דרך להעריך זאת.
כדי לבצע כיול תוכנה ולבדוק את הדיוק של מכשיר זה, השתמשתי במתנד הפניה של 10 מגה -הרץ. עיין ב- GPSDO שלי בהנחיות אחרות.
אני מאכיל עוד atmega328 עם 10 מגה -הרץ הזה. ותכנת את זה במאסף כדי לשלוח לי 2 פולסים בכל פעם שאני לוחץ על כפתור כדי לדמות גלולה. בדיוק כמו שראינו בתמונה אבל במקום זאת כדי לקבל גלולה אמיתית זה היה עוד uC ששלח לי 2 פולסים.
בכל פעם שנלחץ על כפתור לחיצה נשלח דופק אחד ודופק 4 אלפיות השנייה לאחר שליחת דופק נוסף.
בדרך זו, אוכל לאזן את מהדר התוכנה כך שיוצגו תמיד 1000 רגל/שניות.
שלב 13: עוד…
זהו האב טיפוס הראשון שלי לשנת 2010.
לכל שאלה או דוח שגיאות אתה יכול לשלוח לי דוא ל. אנגלית או צרפתית. אעשה כמיטב יכולתי לעזור.
מוּמלָץ:
מגבר מודפס תלת מימד מודפס בתלת מימד: 11 שלבים (עם תמונות)
מגבר מודפס תלת מימד מודפס תלת מימד: הגדרת הפרויקט. אני מקווה להכין מגבר להדפסה לשימוש עם כינור חשמלי או כל מכשיר חשמלי אחר. מפרט. תכנן כמה שיותר חלקים להדפסה תלת מימדית, הפוך אותו לסטריאו, השתמש במכשיר מגבר פעיל ושמור אותו קטן
טנק מודפס תלת -ממדי מודפס בתלת -ממד !!: 8 שלבים (עם תמונות)
טנק מודפס תלת -ממד מודפס תלת -ממדי !!: האם אי פעם רצית שיהיה לך רכב בשליטה מרחוק שיכול לרדת מהכביש ואפילו אתה יכול לראות ממצלמת צפייה בגוף ראשון, אז הטנק הזה מדהים בשבילך. המסלולים על הטנק מאפשרים אחיזה רבה בעת נהיגה על שטחים כמו עפר
עץ חג המולד המודפס בתלת מימד מודפס בתלת מימד: 10 שלבים (עם תמונות)
עץ חג המולד המודפס בתלת מימד מודפס בתלת מימד: זהו עץ חג המולד המודפס בתלת מימד ובתוכו נורות LED ניתנות להתייחסות. כך שניתן לתכנת את הלדים לאפקטים של אור נחמד ולהשתמש במבנה המודפס בתלת מימד כמפזר. העץ מופרד ב -4 שלבים ואלמנט בסיס (העץ
אלטרנטור ודינמומטר מודפס בתלת -ממד מודפס בתלת -ממד: 4 שלבים (עם תמונות)
אלטרנטור ודינומומטר מודפס בתלת -ממד מודפס: STOP !! קראו זאת לראשונה !!! זהו תיעוד של פרויקט שעדיין נמצא בפיתוח, אל תהסס להציע תמיכה. המטרה שלי בסופו של דבר היא שמנוע/אלטרנטור מסוג זה יכול להפוך לעיצוב קוד פתוח פרמטרי. משתמש צריך להיות מסוגל
חיישן איכות אוויר DIY + מארז מודפס בתלת מימד: 6 שלבים
חיישן איכות אוויר DIY + מארז מודפס תלת מימד: מדריך זה מכיל את כל המידע הדרוש לך כדי ליצור חיישן בעל כיס גדול מאוד