فهرست مطالب:

Warhammer Sorcerer روی دیسک با موتور متصل به مغناطیسی و LED ها: 4 مرحله
Warhammer Sorcerer روی دیسک با موتور متصل به مغناطیسی و LED ها: 4 مرحله

تصویری: Warhammer Sorcerer روی دیسک با موتور متصل به مغناطیسی و LED ها: 4 مرحله

تصویری: Warhammer Sorcerer روی دیسک با موتور متصل به مغناطیسی و LED ها: 4 مرحله
تصویری: 🐲 Thea 2 - Моё перерождение #6 в паучка 🔥 2024, جولای
Anonim
جادوگر Warhammer روی دیسک با موتور متصل به مغناطیسی و LED ها
جادوگر Warhammer روی دیسک با موتور متصل به مغناطیسی و LED ها

آیا می خواهید PIZZAZZ را به پروژه های هنری خود اضافه کنید؟ موتورها و LED ها راه خوبی هستند!

آیا از علاقه مندان به بازی Warhammer هستید؟ این یکی برای شما! این Tzeentch Sorcerer Lord on Disc است که با افزودن 3 LED ، موتور ، میکرو (PIC) و باتری کوچک اصلاح شده است. این دستورالعمل ساخت کامل و مسائل را پوشش می دهد.

مرحله 1: مدار

جریان
جریان

اول ، شاید برای شما سوال باشد که این چیست؟ این یک مینیاتور سفارشی من برای یک میز جنگی روی میز به نام Warhammer است. مرد بالای صفحه یک مدل معمولی از سازنده بازی (Gamesworkshop) است ، اما دیسک و پایه آن همه متعلق به من است. ایده اصلی در اینجا این بود که از یک میکرو کوچک 8 پین برای کنترل 3 LED و یک موتور ، با کمترین منبع ممکن استفاده کنید. استفاده از "دستهای کمک" ، مانند همیشه ، ایده خوبی است. این موارد دارای دو گیره برای نگه داشتن هر چیزی است که در حال کار بر روی آن هستید. هیچ طرح واره ای لازم نبود ، زیرا تثبیت بسیار ساده است. یک میکرو 8 پین (Microchip PIC) با 3 پین خروجی مستقیماً به LED ها و 2 پین خروجی به 1 موتور. LED های مورد استفاده از نوع سوار بر روی سطح آبی ، سفید و قرمز هستند. موتور مورد استفاده از یک هلیکوپتر میکرو داخلی خراب شده است. باتری (Lipo کوچک) نیز از هلی پاره شده است ، اما من در حال حاضر قصد دارم از منبع دیگری برای موارد بیشتر استفاده کنم قدرت. یک کلید برای روشن/خاموش اضافه شد.

مرحله 2: کد

کد
کد

کد PIC برای بهینه سازی عمر باتری و استفاده از بسیاری از "رویدادها" تصادفی ساخته شده است. برای اینکه باتری تا حد ممکن دوام بیاورد ، مدار باید از کمترین قدرتی که می توانم استفاده کنم استفاده کند ، در حالی که ایده را زنده نگه می دارد. به بنابراین ، تصمیم گرفتم فعالیت اولیه را به طور متوسط به 1 فلاش LED یا حرکت موتور در هر 6 ثانیه کاهش دهم. کد دارای 12 "فعالیت" تصادفی است ، از 1 LED روشن ، روشن شدن موتور برای دوره ها یا جهت های مختلف ، تا حالت انتظار تصادفی. بر اساس رویداد تصادفی ایجاد شده ، وقایع از 3 ثانیه فاصله تا بیش از 40 ثانیه متغیر هستند. کد ؛ ========================== ================================================ ؛ کنترل کننده دیسک ؛ ----------- ؛ Vcc-> | 1 8 | <-Vss؛ MGPIO5 | 2 7 | GPIO0 -LED1 ؛ MGPIO4 | 3 6 | GPIO1 -LED2 ؛ GPIO3-> | 4 5 | GPIO2 -LED3 ؛ ----------- ؛؛ ==================================== =========================================؛ تاریخ تجدید نظر و یادداشت ها:؛ V1.0 سرصفحه اولیه ، کد 5/19/09؛ ؛ ؛ (C) 5/2009 ؛ این کد ممکن است برای یادگیری/برنامه/اصلاح شخصی استفاده شود. ؛ هرگونه استفاده از این کد در محصولات تجاری این نسخه رایگان را نقض می کند.. ؛ ---------------------------------------------------- ----------------------------------#شامل P12C672. INC ؛ ============= ================================================ ================؛ تعریف می کند ؛ ---------------------------------------------------- ---------------------------------- ؛ ================= ================================================ ===========؛ داده ها؛------------------------------------------------ ----------------------------------- ؛ نگه داشتن متغیرهای حساب 1 برابر 20 تعداد 2 برابر 21 تاخیر برابر 22 راندلو برابر 23 راندی معادل 24 دما و معادل 25 Temp2 و 26 و معادل 27 و 3 و 3 و 28 ؛ ========================== ================================================ ===؛ بازنشانی بردارها ؛؛ پیکربندی را بررسی کنید. گاز گرفتن قبل از سوزاندن !!! ؛ INTOSC ؛ MCLR: فعال ؛ PWRUP: فعال همه دیگران: ناتوان !! ؛ ------------------------------------------ ----------------------------------------- RESET_ADDR EQU 0x00 org RESET_ADDR شروع کرد ؛ ===== ================================================ ========================؛ از اینجا شروع کنید! -------------------------------------------------- --------------------------------- شروع ؛ پیکربندی ورودی های ورودی/خروجی bcf STATUS ، RP1 bsf STATUS ، RP0 movlw h'08 '؛ خروجی های RA ، PGIO3 همیشه ورودی tris GPIO movlw h'07' ؛ GPIO را روی حالت دیجیتال movwf ADCON1 تنظیم کنید. تنظیم تایمر داخلی movlw h'CF '؛ Tmr0 منبع داخلی ، پیش نمایش TMR0 1: 256 movwf OPTION_REG movlw h'00 'movwf INTCON؛ قطع وقفه های TMR0 ، bcf STATUS ، RP0 ؛ مقداردهی اولیه clrf GPIO clrf count1 clrf count2 movlw 045h movwf Randlo movlw 030h movwf راندی ؛ 1 ثانیه صبر کنید. ابطال تماس ؛ 0.2 ثانیه فراخوانی تماس باز شدن تماس باز شدن تماس باز شدن تماس باز شدن ؛ ===================================== =======================================؛ اصلی ؛ ---------------------------------------------------- ------------------------------- تماس اصلی twosec؛ 2 ثانیه دقیقه بین هر عمل rrf Randhi ، W xorwf Randlo ، W movwf Wtemp swapf Wtemp rlf Randhi ، W xorwf Randhi ، W ؛ LSB = xorwf (Q12 ، Q3) xorwf Wtemp rlf Wtemp rlf Randlo rlf Randhi movfw Wtemp ؛ نوار تصادفی 16 تا 7 andlw 0x0F movwf rand ؛ انتخاب روتین تصادفی xorlw 0x00؛ 0 btfsc STATUS ، Z goto flash1؛ آره. با 0th movfw rand xorlw 0x01 تماس بگیرید ؛ 1؟ btfsc STATUS ، Z goto flash2؛ آره. با 1 movfw rand xorlw 0x02 تماس بگیرید ؛ 2؟ btfsc STATUS ، Z goto flash3 ؛ آره. با شماره 2 movfw rand xorlw 0x03 تماس بگیرید ؛ 3؟ btfsc STATUS ، Z goto flashall؛ آره. با سومین movfw rand xorlw 0x04 تماس بگیرید ؛ 4 btfsc STATUS ، Z goto movels؛ آره. با چهارمین movfw rand xorlw 0x05 تماس بگیرید ؛ 5؟ btfsc STATUS ، Z goto movell؛ آره. با پنجم movfw rand xorlw 0x06 تماس بگیرید ؛ 6؟ btfsc STATUS ، Z goto movers؛ آره. با 6th movfw rand xorlw 0x07 تماس بگیرید ؛ 7؟ btfsc STATUS ، Z goto moverl؛ آره. با تلفن هفتم movfw rand xorlw 0x08 تماس بگیرید ؛ 8؟ btfsc STATUS ، Z goto moveburst؛ آره. با تلفن هشتم movfw rand xorlw 0x09 تماس بگیرید ؛ 9؟ btfsc STATUS ، Z goto Wait1؛ آره. با 9th movfw rand xorlw 0x0A تماس بگیرید ؛ آ؟ btfsc STATUS ، Z goto Wait2؛ آره. با Ath movfw rand xorlw 0x0B تماس بگیرید ؛ ب؟ btfsc STATUS ، Z goto Wait3؛ آره. Call Bth goto something؛ 1/4 آن زمان ، هیچ کاری برای 10 ثانیه انجام ندهید. flash1 bsf GPIO ، 0 bbc bcf GPIO 0 تماس ، 0 GPO GPO 0 bsf ، 1 bbf GPIO ، 1 bsf GPIO ، 2 bbf bff باز کردن تماس ، 2 bsf اصلی GPIO ، 0 bsf GPIO ، 1 bsf GPIO ، 2 باز کردن تماس باز کردن تماس bcf GPIO ، 0 bcf GPIO ، 1 bcf GPIO ، 2 goto mainmovels bsf GPIO ، 4 bcf GPIO ، 5 بازخوانی تماس bcf GPIO ، 4 goto mainmovell bsf 4 bsf GPIO ، 5 فراخوان باز کردن تماس باز کردن تماس bcf GPIO ، 4 goto mainmovers bcf GPIO ، 4 bsf GPIO ، 5 bcf debounce bcf GPIO ، 5 goto mainmoverl bcf GPIO ، 4 bsf GPIO ، 5 باز کردن تماس بازخوانی bcf GPIO ، 5 goto mainmove ، 5 goto mainmove 4 bsf GPIO ، 5 فراخوانی تماس ؛ حرکت 3 بار راست ، انفجارهای کوتاه. bcf GPIO ، 5 باز کردن تماس باز کردن تماس bsf GPIO ، 5 باز کردن تماس باز کردن تماس bcf GPIO ، 5 باز کردن تماس باز کردن تماس bsf GPIO ، 5 اعلام باز کردن تماس bcf GPIO ، 5 تماس باز کردن تماس باز کردن تماس باز کردن تماس باز کردن تماس bsf GPIO ، 4 ؛ 3 بار به چپ حرکت کنید ، انفجارهای کوتاه. bcf GPIO ، 5 باز کردن تماس باز کردن تماس bcf GPIO ، 4 باز کردن تماس باز کردن تماس bsf GPIO ، 4 اعلام بازخوان اعلام تماس bcf GPIO ، 4 باز کردن تماس باز کردن تماس bsf GPIO ، 4 خروج بازخورد باز کردن تماس bcf GPIO ، 4 خروج تماس اولیه debounce ؛ 1 ثانیه صبر کنید movlw.255؛ تاخیر برای 10/2 ثانیه باز شدن. movwf count2 با pon_wait movlw تماس بگیرید.255؛ تاخیر برای 10/2 ثانیه باز شدن. movwf count2 با pon_wait movlw تماس بگیرید.255؛ تاخیر در بازسازی 2/10 ثانیه ای. movwf count2 با pon_wait movlw تماس بگیرید.255؛ تاخیر در بازسازی 2/10 ثانیه ای. movwf count2 با pon_wait movlw تماس بگیرید.255؛ تاخیر برای 10/2 ثانیه باز شدن. movwf count2 تماس بگیرید pon_wait goto mainWait2؛ صبر کنید 0.6 ثانیه movlw.255 ؛ تاخیر برای 10/2 ثانیه باز شدن. movwf count2 با pon_wait movlw تماس بگیرید.255؛ تاخیر در بازسازی 2/10 ثانیه ای. movwf count2 با pon_wait movlw تماس بگیرید.255؛ تاخیر برای 10/2 ثانیه باز شدن. movwf count2 تماس بگیرید pon_wait goto mainWait3؛ 4 ثانیه صبر کنید تماس twosec تماس twosec goto mainnothing movlw.50؛ تاخیر به مدت 10 ثانیه مجموع movwf count3nothing_loop movlw.255؛ تاخیر برای 10/2 ثانیه باز شدن. movwf count2 تماس با pon_wait decfsz count3 ، F goto something_loop goto main؛ =================================== ========================================= 2 ثانیه انتظار ؛ ---------------------------------------------- ------------------------------------- twosec movlw.10؛ 2 ثانیه تاخیر کل movwf count3twosec_loop movlw.255؛ تاخیر برای 10/2 ثانیه باز شدن. movwf count2 تماس pon_wait decfsz count3 ، F goto twosec_loopreturn ؛ ===================================== =======================================؛ سیگنال انصراف ؛ 4 چرخه برای بارگیری و تماس ، 2 سیکل برای بازگشت. 4 مگاهرتز Tc:: تعداد 2 = 255-> 0.2 ثانیه ؛ ------------------------------------------ ----------------------------------------- debounce movlw.127؛ تاخیر برای 1/10 ثانیه باز شدن. movwf count2 تماس بگیرید pon_wait return؛ -------------------------------------------- --------------------------------------- ؛ count1 = 255d:: 775 چرخه تا 0 ، + 3 چرخه برای بازگشت. ؛ --------------------------------- -------------------------------------------------- pon_waitbig_loopS movlw.255 movwf count1short_loopS decfsz count1، F goto short_loopS decfsz count2، F goto big_loopSreturnend

مرحله 3: قطعات

قطعات
قطعات

این تصویر نشان می دهد که چقدر باید اجزای آن را زیر این پسر جا می دادم. 1 میکروچیپ 8 پین (PIC) 3 SMT LED (آبی ، قرمز ، سفید) 1 موتور از یک میکرو هلی داخلی 1 باتری LIPO از همان هلی. 1 سوئیچ قدرت 1 رولپلاک چوبی 2.5 میلی متری (طول 2 اینچ) 2 آهنربای خاکی کمیاب 1 میلی متری

مرحله 4: ساختن

ساختن
ساختن

ابتدا یک مرکز جرم برای کل چیز پیدا شد. این منطقه موتور سوار خواهد بود. موتور با استفاده از goop به نام Greenstuff (در دنیای مینیاتورها استفاده می شود) نصب شد. 3 LED از قبل وصل شده بودند. میکرو در منطقه ای خارج از راه ، نه چندان نزدیک به لبه ، فوق چسبیده بود. کلید برق و باتری برای جبران وزن (کوچک) میکرو ، برای حفظ تعادل ، نصب شده است. سیمها روی آن لحیم شدند. قسمت واقعاً جالب بعدی است. چسب فوقانی روی نوار چرخ دنده روتور روی موتور (بعداً رو به پایین قرار می گیرد) آهنربای کمیاب زمین نصب شد. طول کوتاه (~ 2 ) رولپلاک چوبی با قطر 2.5 برای سوراخ عمق 5 میلی متر به قطر 1 میلی متر (با استفاده از دست و بیت) حفر شد. در این سوراخ یک آهنربای خاکی کمیاب 1 میلی متری دیگر چسبانده شد. در حال حاضر ، پایه من برای شکل مغناطیسی است هنگامی که موتور می چرخد ، از مرکز تعادل آن ، تمام قسمت بالای شکل را می چرخاند. نی قرمز برای پوشش موتور و رولپلاک چوبی بریده می شود. این قبل از قرار گرفتن رولپلاک چوبی از قبل اندازه گیری شده بود نصب شده ، برای اطمینان از مطابقت آن. خروجی باتری LIPO در حال حاضر 3.4 ولت را بدون شارژ می خواند. این برای چرخاندن موتور و روشن کردن LED ها کافی است ، اما با شکل نصب شده روی پایه ، خود نمی چرخد. نسخه بعدی من از باتری از راه دور 12 ولت با تنظیم کننده 5 ولت برای قدرت بیشتر استفاده کنید!

توصیه شده: