فهرست مطالب:
- مرحله 1: ویژگی
- مرحله 2: نظریه عملیات و دقت
- مرحله 3: شماتیک و لیست قطعات
- مرحله 4: فایل PCB Gerber
- مرحله 5: PCB خود را لحیم کنید
- مرحله 6: برنامه نویسی Atmega328p
- مرحله 7: نمایشگر LCD
- مرحله 8: فایل STL
- مرحله 9: رمزگذار روتاری
- مرحله 10: لوله سنسور
- مرحله 11: لوله سنسور جایگزین
- مرحله 12: گلوله ای در اسیلوسکوپ و کالیبراسیون
- مرحله 13: بیشتر…
تصویری: کرونوگراف تفنگ بادی ، کرونوسکوپ. چاپ سه بعدی: 13 مرحله
2024 نویسنده: John Day | [email protected]. آخرین اصلاح شده: 2024-01-30 08:52
سلام به همه ، امروز ما دوباره به پروژه ای که در سال 2010 انجام داده ام ، می پردازیم. Chronograph تفنگ بادی. این دستگاه سرعت پرتابه را به شما می گوید. گلوله ، BB یا حتی توپ پلاستیکی نرم BB را با هوا نرم کنید.
در سال 2010 برای تفریح تفنگ بادی خریدم. ضربه زدن به قوطی ، بطری ، هدف بود. من می دانم که سرعت این اسلحه حداکثر 500 فوت در ثانیه بود. زیرا این قانون کانادا است. برخی از تفنگ های بادی قوی تر در دسترس هستند ، اما شما باید مجوز داشته باشید و نمی توانید آن را در Walmart خریداری کنید.
حالا من این مجوز را داشتم ، می توانستم یکی دیگر بخرم. اما داستان کوتاه ، همان تفنگ با سرعت 1000 پا در ثانیه در دسترس ایالات متحده بود. چی!؟ همون تفنگ؟ بله … در کانادا ، سکته مغزی یک سوراخ دارد و فنر نرم تر است.
اولین کاری که باید انجام دهید پر کردن حفره است. این همان کاری است که من با لحیم انجام دادم. کار بعدی سفارش فنر جایگزین بود. اما صبر کنید … سرعت فعلی اسباب بازی جدید من چقدر است؟ آیا واقعا بهار لازم است؟ من نمی دانم و می خواهم بدانم. من الان می خواهم بدانم اما چگونه؟
به همین دلیل این پروژه را انجام دادم. تنها چیزی که نیاز داشتم 2 سنسور ، یک uC و یک صفحه نمایش بود و ما در حال کار هستیم.
هفته گذشته ، کرونوگراف آبی رنگ قدیمی خود را روی قفسه ای دیدم و با خودم صحبت می کنم: "چرا این را به اشتراک نگذارید و با آن دستورالعمل انجام دهید؟" و به هر حال ، ما می توانیم دقت را افزایش دهیم و نشانگر باتری را اضافه کنیم. برای روشن/خاموش 1 دکمه را به جای 2 قرار دهید. تمام سطح نصب. ما اکنون در سال 2020 هستیم!
بنابراین وجود دارد … بیایید شروع کنیم!
مرحله 1: ویژگی
-سرعت پلت
-سرعت
-20 مگاهرتز در حال اجرا ، دقت بسیار زیاد
-خاموش شدن به صورت خودکار
ولتاژ باتری نمایش داده می شود
-سیستماتیک موجود است
-pcb موجود است
لیست قطعات موجود است
-STL موجود است
-C کد موجود است
مرحله 2: نظریه عملیات و دقت
-ما یک uC با سرعت 20 مگاهرتز داریم. نوسان ساز مورد استفاده TCX0 +-2.5 ppm است
-ما 2 سنسور در فاصله 3 اینچی از یکدیگر داریم.
پرتابه به اولین سنسور برخورد کرد. شروع شمارش uC (timer1)
پرتابه به سنسور دوم برخورد کرد. uC شمارش را متوقف کنید
-uC مقدار timer1 را بررسی کنید ، سرعت و سرعت را محاسبه کرده و نمایش دهید.
من از تایمر 16 بیتی + پرچم سرریز tov1 استفاده می کنم. مجموع 17 بیت برای 131071 "تیک" برای شمارش کامل.
1/20 مگاهرتز = 50 نانوس ثانیه هر تیک 50 نانوس است
131071 x 50 ns = 6.55355 میلی ثانیه برای انجام 3 اینچ.
6.55355 میلی ثانیه x 4 = 26.21 ثانیه برای انجام 12 اینچ.
1/26.21 میلی ثانیه = 38.1472637 فوت/ثانیه
این کندترین سرعتی است که دستگاه می تواند اندازه گیری کند.
چرا 20 مگاهرتز؟ چرا از 8 مگاهرتز داخلی یا حتی کریستال استفاده نمی کنید؟
اولین دستگاه من از نوسان ساز داخلی استفاده می کرد. کار می کرد اما این یکی به اندازه کافی دقیق نبود تنوع بسیار زیاد است. کریستال بهتر است اما دما فرکانس متغیری دارد. ما نمی توانیم یک دستگاه اندازه گیری دقیق با آن انجام دهیم. همچنین ، فرکانس بیشتر زیاد است ، تیک بیشتری برای همان سرعت محاسبه می شود. نمونه برداری با دقت بسیار خوب بهتر خواهد بود. از آنجا که یک تیک قابل تقسیم نیست ، اگر چرخه کار سریع باشد ، ضرر کمی دارد.
در 20 مگاهرتز مراحل 50 نانوس را داریم. آیا می دانیم 50 ns برای پرتابه با سرعت 38 فوت/ثانیه چقدر دقیق است.
38.1472637 فوت بر ثانیه بر 131071 = 0 ، 000291042 فوت تقسیم می شود
0 ، 0003880569939956207 پا x 12 = 0 ، 003492512 اینچ
1/0 ، 003492512 = 286.37 ". به عبارت دیگر. در 50 فوت/ثانیه ما دارای دقت +- 1/286" یا +- 0 ، 003492512 اینچ هستیم
اما اگر نوسان ساز من بدترین باشد و با سرعت 20 مگاهرتز +2.5 ppm کار کند ، خوب است؟ بیایید دریابیم…
2.5 ppm 20 000 000 برابر است با: (20000000/1000000) x 2.5 = 20000050 هرتز
بدترین حالت ، ما 50 ساعت دیگر در 20 مگاهرتز داریم. ساعت 50 در 1 ثانیه است. اگر گلوله با همان سرعت (38.1472637 فوت/ثانیه یا 6.55 میلی ثانیه) چند تایک بیشتر در تایمر 1 دارد؟
1/20000050 = 49.999875 ثانیه
49.999875 ns x 131071 = 6 ، 553533616 میلی ثانیه
6 ، 553533616 میلی ثانیه x 4 = 26.21413446 میلی ثانیه
1/26.21413446 ms = 38.14735907 فوت/ثانیه
بنابراین ما به جای 38.1472637 فوت/ثانیه 38.14735907 پا بر ثانیه داریم
اکنون می دانیم که 2.5 ppm بر نتیجه تأثیر نمی گذارد.
در اینجا نمونه ای از سرعت متفاوت است
برای 1000 فوت/ثانیه
1000 فوت در ثانیه در 12 12000 اینچ در ثانیه است
1 ثانیه برای 12000 "چند زمان برای انجام 3"؟ 3x1/12000 = 250 us ثانیه
250 us / 50 ns = 5000 تیک.
تایمر 1 در 5000 خواهد بود
uC ریاضی را انجام دهید و 1000 ft/s نمایش داده می شود. تا کنون خیلی خوب
برای 900 فوت/ثانیه
900 فوت بر ثانیه 10800 اینچ بر ثانیه است
3x1/10800 = 277.77 ما
277 ، 77 ns / 50 ns = 5555 ، 5555 تیک
تایمر 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 فوت/ثانیه
12000 * 9000 = 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 stay بمانید
آن نتایج بسیار خوب است.
اما دقت خطی نیست با سرعت 10000 فوت بر ثانیه 0 ، 1 است. نکته خوب این است که ما هرگز یک گلوله 10،000 فوت/ثانیه را آزمایش نمی کنیم.
نکته دیگری که باید در نظر داشته باشید. وقتی وقفه ای رخ می دهد ، uC همیشه آخرین دستورالعمل را قبل از وارد کردن وقفه به پایان می رساند. این طبیعی است و همه uC این کار را انجام می دهند. اگر آردوینو را به زبان C یا حتی اسمبلر کد می کنید. بیشتر اوقات شما در یک حلقه برای همیشه منتظر خواهید ماند … منتظر بمانید. مشکل این است که ما در یک حلقه 2 چرخه را صرف می کنیم. به طور معمول این مهم نیست اما در مورد ما بله ، هر تیک مهم است. بیایید به یک حلقه بی نهایت نگاه کنیم:
مونتاژ کننده:
حلقه:
حلقه rjmp
در C:
در حالی که (1) {}
در واقع C کامپایلر از دستور rjmp استفاده می کند. RJMP 2 چرخه است.
این بدان معنی است که اگر وقفه در چرخه اول اتفاق بیفتد ، ما یک چرخه (tic) (50nns) را از دست می دهیم.
راه من برای رفع این مشکل این است که دستورالعمل های زیادی را در حلقه اضافه کنم. NOP 1 چرخه است.
حلقه:
خیر
خیر
خیر
خیر
خیر
حلقه rjmp
اگر وقفه در یک دستورالعمل خیر اتفاق بیفتد. ما خوبیم اگر در چرخه دوم آموزش rjmp اتفاق بیفتد ، مشکلی نداریم. اما اگر در اولین چرخه آموزش rjmp اتفاق بیفتد ، ما یک تیک را از دست می دهیم. بله فقط 50 ns است ، اما همانطور که در بالا مشاهده می کنید ، 50 ns در 3 اینچ چیزی نیست. ما نمی توانیم این را با نرم افزار تصحیح کنیم زیرا نمی دانیم دقیقاً چه زمانی وقفه رخ می دهد. به همین دلیل است که در کد شما دستورالعمل های زیادی را مشاهده خواهید کرد. در حال حاضر من کاملاً مطمئن هستم که وقفه در یک دستورالعمل خالی قرار می گیرد. اگر 2000 nop اضافه کنم ، 0 ، 05 have در دستور rjmp قرار دارد.
نکته دیگری که باید در نظر داشته باشید. وقتی وقفه اتفاق می افتد. کامپایلر فشار و کشش زیادی انجام می دهد. اما همیشه یک عدد است. بنابراین اکنون می توانیم یک اصلاح نرم افزاری انجام دهیم.
برای نتیجه گیری در این باره:
دقت برای یک گلوله متوسط 1000 فوت بر ثانیه 0 ، 01 است
100 برابر دقیق تر از 1 درصد دیگر موجود در بازار. فرکانس بالاتر است و با TCXO ، دقیق تر
برای مثال ، 1٪ از 1000 فوت بر ثانیه بیشتر یا کمتر 10 فوت بر ثانیه است. این تفاوت بزرگی است.
مرحله 3: شماتیک و لیست قطعات
در اینجا من یک دکمه روشن/خاموش را فشار دادم. (آخرین دستورالعمل من را ببینید) این مدار بسیار مفید است و بسیار خوب کار می کند.
من از atmega328p استفاده می کنم. این مورد به زبان C برنامه ریزی شده است.
صفحه نمایش استاندارد LCD 2 خطی HD44780 LCD است. حالت 4 بیتی استفاده می شود.
برای تنظیم ولتاژ TCXO 20 مگاهرتز از رگولاتور 3.3 ولت استفاده می شود.
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
نمایش ال سی دی 2 خط HD44780. نیازی به خرید ماژول i2c نیست.
سنسورها:
2 برابر Emitter OP140A
گیرنده 2x OPL530
رمزگذار: PEC11R-4215K-S0024 *فراموش نکنید که برای انجام فیلتر رمزگذار ، 4x مقاومت 10k و 2x.01uf اضافه کنید. تصویر زیر را مشاهده کنید
مرحله 4: فایل PCB Gerber
در اینجا فایل های gerber وجود دارد
مرحله 5: PCB خود را لحیم کنید
با کمک شماتیک ، تمام اجزای خود را روی pcb لحیم کنید. هر قسمت یا نوشته شده بر روی pcb ، r1 ، r2 … و غیره.
من D1 رو نصب نکردم. این برای نور پس زمینه LCD است. زیباست اما عمر باتری تحت تأثیر قرار می گیرد. بنابراین من انتخاب می کنم که نور پس زمینه LCD خاموش باشد.
مرحله 6: برنامه نویسی Atmega328p
برای برنامه نویسی atmega328p در مرحله 12 اینجا را بررسی کنید. من فایل 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 متصل است. از آن برای تغییر وزن گلوله و روشن و خاموش کردن دستگاه استفاده می شود.
vcc isp pin 2 (مقاومت را بکشید بالا)
پایانه A (زرد) به پین 1 ISP بروید
پایانه B (سبز) به پین 3 ISP بروید
ترمینال C (gnd) isp pin 6
من 2 عکس اضافه می کنم تا تفاوت بین داشتن فیلتر و بدون فیلتر را مشاهده کنم. به راحتی می توانید تفاوت بین هر دو را مشاهده کنید.
دکمه فشاری به اتصال PCB SW بروید.
مرحله 10: لوله سنسور
مهم:
لوله سنسور باید سیاه باشد و گیرنده سنسور باید مخفی باشد
اولین تلاش من این بود که یک لوله قرمز زیبا داشته باشم. اما این مشکل است! اصلا کار نمی کرد متوجه شدم که نور بیرونی وارد می شود پلاستیک را پرتاب کرده و سنسور گیرنده همیشه روشن است.
برای نتیجه خوب ، چاره ای نداشتم که رنگ را به سیاه تغییر دهم.
گیرنده را در بالا نصب کنید. و پلاستیک شفاف را با رنگ سیاه ، نوار یا آدامس ، سیلیکون سیاه مخفی کنید.
امیتر را در پایین نصب کنید.. اگر سنسورها خوب جواب می دهند با قلم بررسی کنید. شاید لازم باشد سوراخ ساطع کننده کمی بزرگ شود. بستگی به کالیبراسیون چاپگر شما دارد.
در سایه نیز نتیجه بهتری دارم. از تابش مستقیم نور خورشید خودداری کنید.
مرحله 11: لوله سنسور جایگزین
اگر چاپگر سه بعدی ندارید ، می توانید همین کار را با لوله مسی انجام دهید. بسیار خوب کار خواهد کرد تا. کار سخت این است که سوراخ دقیقاً 3 اینچ باشد و گیرنده و امیتر باید تراز شوند.
مرحله 12: گلوله ای در اسیلوسکوپ و کالیبراسیون
این یک گلوله واقعی است که از لوله عبور می کند. پروب 1 زرد سنسور 1. پروب 2 بنفش سنسور 2 است.
زمان/تقسیم 50 ما است.
ما می توانیم 6 تقسیم 50us را شمارش کنیم. 50 us x 6 = 300 us (برای 3 اینچ). 300 us x 4 = 1.2 ms برای 1 فوت
1/1.2 میلی ثانیه = 833.33 فوت/ثانیه
ما همچنین می توانیم ببینیم که سنسور به طور معمول در 5 ولت است. و آیا می توانیم نور ساطع کننده را مسدود کنیم ، سنسور به 0 کاهش می یابد.
این راهی است که کنترل uC شروع و متوقف می کند (timer1)
اما برای اینکه دقیقاً بدانم سرعت دقیق است یا خیر ، به راهی برای اندازه گیری آن نیاز داشتم.
برای انجام کالیبراسیون نرم افزار و آزمایش صحت این دستگاه ، از یک نوسانگر مرجع 10 مگاهرتز استفاده کردم. GPSDO من را در موارد دیگر مشاهده کنید.
من atmega328 دیگری را با این 10 مگاهرتز تغذیه می کنم. و این را در اسمبلر برنامه ریزی کنید تا هر بار که یک دکمه را شبیه سازی می کنم ، 2 پالس برای من ارسال کند. دقیقاً همانطور که در تصویر دیدیم ، اما در عوض داشتن یک گلوله واقعی ، یک uC دیگر برای من 2 پالس ارسال کرد.
هر بار که دکمه فشار داده می شد 1 پالس ارسال می شد و دقیقاً 4 میلی ثانیه پس از ارسال یک پالس دیگر.
به این ترتیب ، می توانم کامپایلر نرم افزار را که همیشه 1000 فوت بر ثانیه نمایش داده می شود ، متعادل کنم.
مرحله 13: بیشتر…
این اولین نمونه اولیه من در سال 2010 است.
برای هر گونه سوال یا گزارش خطا می توانید به من ایمیل بزنید. انگلیسی یا فرانسوی. تمام تلاشم را می کنم تا کمک کنم.
توصیه شده:
بررسی چاپ بدون نرم افزار یا چاپگر ویژه با MS Excel (چاپ چک های بانکی): 6 مرحله
بررسی چاپ بدون نرم افزار یا چاپگر ویژه با MS Excel (چک چک بانکی): این یک دفترچه کار ساده اکسل است که برای نوشتن چک های بانکی پس از تأمین کنندگان آنها بسیار مفید است. شما نیازی به چاپگر یا نرم افزار خاصی ندارید ، فقط به کامپیوتر با MS Excel و چاپگر معمولی نیاز دارید. بله ، اکنون می توانید از
سگ روباتیک چاپ سه بعدی (روباتیک و چاپ سه بعدی برای مبتدیان): 5 مرحله
سگ رباتیک چاپ سه بعدی (روباتیک و چاپ سه بعدی برای مبتدیان): روباتیک و چاپ سه بعدی چیزهای جدیدی هستند ، اما ما می توانیم از آنها استفاده کنیم! اگر به ایده تکلیف مدرسه نیاز دارید یا فقط به دنبال یک پروژه سرگرم کننده هستید ، این پروژه یک پروژه مبتدی خوب است
دست مصنوعی چاپ شده سه بعدی در 4 مرحله!: 4 مرحله
دست مصنوعی چاپ شده سه بعدی در 4 مرحله!: این پروژه یک دست مصنوعی است که توسط من چاپ شده است ، من به دنبال کشف اطلاعات بیشتر در مورد پروتز و چاپ سه بعدی هستم. اگرچه این بهترین پروژه نیست ، اما راهی عالی برای داشتن تجربه و یادگیری نحوه ایجاد
بلندگوهای قابل چاپ DIY 3D چاپ شده BLUETOOTH: 14 مرحله (همراه با تصاویر)
بلندگوهای چاپی بلوتوث DIY چاپ سه بعدی: سلام به همه ، این اولین دستورالعمل آموزشی من است. تصمیم گرفتم ساده بگویم. بنابراین در این مقاله آموزشی ، من به شما نشان خواهم داد که چگونه این بلندگوی بلوتوث ساده و ارزان را که همه می توانند به راحتی بسازند ، تهیه کرده ام
سینی Canon F برای چاپگرهای Pixma-چاپ مستقیم روی CD/DVD قابل چاپ: 3 مرحله
سینی Canon F برای چاپگرهای Pixma-چاپ مستقیم روی CD/DVD های قابل چاپ: چگونه می توان یک سینی چاپ CD برای Pixma MP600 یا سایر کانن های خود که نیاز به سینی F دارند ، چاپ کرد