Mundarija:

Magnit bilan bog'langan dvigatelli va LEDli diskdagi Warhammer sehrgar: 4 qadam
Magnit bilan bog'langan dvigatelli va LEDli diskdagi Warhammer sehrgar: 4 qadam

Video: Magnit bilan bog'langan dvigatelli va LEDli diskdagi Warhammer sehrgar: 4 qadam

Video: Magnit bilan bog'langan dvigatelli va LEDli diskdagi Warhammer sehrgar: 4 qadam
Video: Мини Наждачок из жёсткого диска. Не выбрасывай HDD!!! 2024, Iyul
Anonim
Warhammer sehrgar magnit bilan bog'langan dvigatelli va LEDli diskda
Warhammer sehrgar magnit bilan bog'langan dvigatelli va LEDli diskda

Badiiy loyihalaringizga PIZZAZZ qo'shishni xohlaysizmi? Dvigatellar va LEDlar - bu yo'l!

Siz Warhammer o'yin ixlosmandisiz? Bu siz uchun! Bu mening diskdagi Tzeentch sehrgar Lord, 3 ta LED, dvigatel, mikro (PIC) va kichik batareya bilan qayta ko'rib chiqilgan. Bu ko'rsatma tugallangan qurilish va muammolarni o'z ichiga oladi.

1 -qadam: O'chirish

O'chirish
O'chirish

Birinchidan, bu nima degan savolga qiziqishingiz mumkin. Bu Warhammer deb nomlangan stol usti urush o'yini uchun stol usti uchun tayyorlangan miniatyuram. Yuqoridagi yigit - bu o'yin ishlab chiqaruvchisining oddiy modeli (Gamesworkshop), lekin disk va bazaning hammasi meniki. Uning qurilishi - bu boshqa o'rgatiladigan mavzu, shuning uchun men bu erga bormayman, bu erda asosiy fikr - 3 LED va dvigatelni iloji boricha kichikroq boshqarish uchun 8 pinli kichik mikrosxemani olish edi. Har doimgidek "yordam qo'llarini" ishlatish yaxshi fikr. Bu ishda nima bo'lishidan qat'i nazar, ikkita klip bor, hech qanday sxemaga ehtiyoj yo'q edi, chunki implantatsiya juda oddiy; 8 pinli mikro (Microchip PIC) 3 ta chiqish pinli to'g'ridan -to'g'ri LEDga va 2 ta chiqish pimi 1 ta motorga o'tadi LEDlar ko'k, oq va qizil sirtga o'rnatiladi. Ishlatilgan dvigatel singan yopiq mikro vertolyotdan, batareya (kichik Lipo) ham vertolyotdan yirtilgan, lekin men boshqa manbadan foydalanishni rejalashtirganman. yoqish/o'chirish uchun kalit qo'shildi.

2 -qadam: kod

Kod
Kod

PIC kodi batareyaning ishlash muddatini optimallashtirish va ko'plab tasodifiy "hodisalar" dan foydalanish uchun qilingan. Batareyani iloji boricha uzoq vaqt ushlab turish uchun, men tasavvur qila oladigan eng kam quvvat sarflashga to'g'ri keldi.. Shunday qilib, men har 6 soniyada boshlang'ich faollikni o'rtacha 1 LED chirog'i yoki dvigatel harakatiga kamaytirishga qaror qildim. Kodda 12 ta tasodifiy "harakatlar" mavjud bo'lib, ular 1 ta LEDni yoqish, har xil vaqt oralig'ida yoki yo'nalishda dvigatelni yoqish tasodifiy kutish holatigacha. Voqealar tasodifiy hodisaga qarab 3 sekunddan 40 sekundgacha farq qiladi. CODE; =========================== ================================================= Diskni boshqaruvchi; -----------; Vcc-> | 1 8 | <-Vss; MGPIO5 | 2 7 | GPIO0 -LED1; MGPIO4 | 3 6 | GPIO1 -LED2; GPIO3-> | 4 5 | GPIO2 -LED3; -----------;; =================================== ==========================================; Tahrir tarixi va eslatmalari:; V1.0 bosh sarlavhasi, 19.05.09 kod;;;.; ------------------------------------------------ -------------------------------#o'z ichiga P12C672. INC; ============ ================================================= =================; Belgilaydi; ------------------------------------------------ ------------------------------- ================== ================================================= ===========; Ma'lumotlar; ------------------------------------------------ -------------------------------; Vaqtni ushlab turuvchi o'zgaruvchilar soni1 teng 20 hisob 2 teng 21 kechikish teng 22Randlo teng 23Randhi teng 24Wtemp teng 25Temp2 teng 26rand teng 27 son3 teng 28; ========================= ================================================= ===; Vektorlarni tiklash; Konfiguratsiyani tekshiring. Yonishdan oldin bitlar !!!; INTOSC; MCLR: YO'Q; PWRUP: yoqilgan; Qolganlari: nogiron !!;; ------------------------------------------ ------------------------------------- RESET_ADDR EQU 0x00 org RESET_ADDR boshlash kerak; ===== ================================================= =========================; Bu yerdan boshlang!; ---------------------------------------------- --------------------------------- boshlash; Kiritish/chiqish portlarini bcf STATUS, RP1 bsf STATUS, RP0 movlw h'08 '; RA chiqishlari, PGIO3 har doim GPIO movlw h'07' trisini kiritadi; GPIO -ni Movwf ADCON1 raqamli rejimiga o'rnating; Movlw h'CF ichki taymerini o'rnating; Tmr0 Ichki manba, oldindan baholangan TMR0 1: 256 movwf OPTION_REG movlw h'00 'movwf INTCON; TMR0 uzilishlarini o'chirish, bcf STATUS, RP0; Registrlarni ishga tushiring clio GPIO clrf count1 clrf count2 movlw 045h movwf Randlo 030h movwf Randhi; 1 soniya kuting. qo'ng'iroqdan voz kechish; 0,2 soniya qo'ng'iroqdan voz kechish qo'ng'iroqdan voz kechish ========================================; Asosiy; ------------------------------------------------ ------------------------------- asosiy qo'ng'iroq twosec; Har bir harakat o'rtasida 2 soniya min Rand R, 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; tasodifiy 16 tasini 7 gacha va 0x0F movwf randgacha; tasodifiy muntazam tanlash xorlw 0x00; 0? btfsc STATUS, Z goto flesh1; Ha. 0 -movfw rand xorlw 0x01 raqamiga qo'ng'iroq qiling; 1? btfsc STATUS, Z goto flash2; Ha. Birinchi movfw rand xorlw 0x02 ga qo'ng'iroq qiling; 2? btfsc STATUS, Z goto flash3; Ha. Ikkinchi movfw rand xorlw 0x03 ga qo'ng'iroq qiling; 3? btfsc STATUS, Z goto fleshall; Ha. 3 -movfw rand xorlw 0x04 ga qo'ng'iroq qiling; 4? btfsc STATUS, Z harakatlari; Ha. 4 -movfw rand xorlw 0x05 raqamiga qo'ng'iroq qiling; 5? btfsc STATUS, Z harakat qilish kerak; Ha. 5 -movfw rand xorlw 0x06 raqamiga qo'ng'iroq qiling; 6? btfsc STATUS, Z goto tashuvchilar; Ha. 6 -movfw rand xorlw 0x07 raqamiga qo'ng'iroq qiling; 7? btfsc STATUS, Z goto moverl; Ha. 7 -movfw rand xorlw 0x08 raqamiga qo'ng'iroq qiling; 8? btfsc STATUS, Z goto moveburst; Ha. 8 -movfw rand xorlw 0x09 raqamiga qo'ng'iroq qiling; 9? btfsc STATUS, Z goto Wait1; Ha. 9 -movfw rand xorlw 0x0A raqamiga qo'ng'iroq qiling; A? btfsc STATUS, Z goto Wait2; Ha. Ath movfw rand xorlw 0x0B ga qo'ng'iroq qiling; B? btfsc STATUS, Z goto Wait3; Ha. Bthga hech narsa qo'ng'iroq qilmang; Vaqtning 1/4 qismi, 10 soniya davomida hech narsa qilmang. Flash1 bsf GPIO, 0 qo'ng'iroq bcf GPIO, 0 goto mainflash2 bsf GPIO, 1 bcf GPIO, 1 goto mainflash3 bsf GPIO, 2 qo'ng'iroq bcf GPIO, 2 goto mainflashall bsf GPIO, 0 bsf GPIO, 1 bsf GPIO, 2 chaqiruvdan voz kechish bcf GPIO, 0 bcf GPIO, 1 bcf GPIO, 2 bcf GPIO, 4 bcf GPIO, 5 bcf GPIO qo'ng'irog'i, 4 bcf GPIO, 4 bcf. GPIO, 5 ta qo'ng'iroqdan voz kechish bcf GPIO, 4 ta bmf GPIO, 4 ta bsf GPIO, 5 ta chaqiruv bcf GPIO, 5 ta gotmo mainmoverl bcf GPIO, 4 bsf GPIO, 5 ta chaqiruvdan voz kechish bcf GPIO, 5 ta asosiy harakatlanish bcf GPIO, 4 bsf GPIO, 5 ta qo'ng'iroqni o'chirish; 3 marta o'ngga siljiting, qisqa portlashlar. bcf GPIO, 5 ta qo'ng'iroqdan voz kechish qo'ng'irog'i bsf GPIO, 5 ta qo'ng'iroqdan voz kechish bcf GPIO, 5 ta qo'ng'iroqdan voz kechish bsf GPIO, 5 ta qo'ng'iroq bcf GPIO, 5 ta qo'ng'iroqdan voz kechish qo'ng'iroqdan voz kechish bsf GPIO, 4; chapga 3 marta siljiting, qisqa portlashlar. bcf GPIO, 5 ta qo'ng'iroqdan voz kechish bcf GPIO, 4 ta qo'ng'iroqdan voz kechish bsf GPIO, 4 ta qo'ng'iroqdan voz kechish bcf GPIO, 4 ta qo'ng'iroqdan voz kechish bsf GPIO, 4 ta qo'ng'iroqdan voz kechish bcf GPIO, 4 ta qo'ng'iroqdan voz kechish qo'ng'irog'i debo goto mainWait1; 1 soniya kuting. 255; 2/10 soniya uchun kechikish. movwf count2 chaqiruvi pon_wait movlw.255; 2/10 soniya uchun kechikish. movwf count2 chaqiruvi pon_wait movlw.255; 2/10 soniya uchun kechikish. movwf count2 chaqiruvi pon_wait movlw.255; 2/10 soniya uchun kechikish. movwf count2 chaqiruvi pon_wait movlw.255; 2/10 soniya uchun kechikish. movwf count2 chaqiruvi pon_wait goto mainWait2; 0.6 soniya kuting. 255; 2/10 soniya uchun kechikish. movwf count2 chaqiruvi pon_wait movlw.255; 2/10 soniya uchun kechikish. movwf count2 chaqiruvi pon_wait movlw.255; 2/10 soniya uchun kechikish. movwf count2 chaqiruvi pon_wait goto mainWait3; 4 soniya kuting twosec qo'ng'iroq twosec goto mainnothing movlw.50; 10 soniya kechikish Jami movwf count3nothing_loop movlw.255; 2/10 soniya uchun kechikish. movwf count2 qo'ng'iroq pon_wait decfsz count3, F goto nothing_loop goto main; ================================== ==========================================; 2 soniya kuting; ---------------------------------------------- --------------------------------- twosec movlw.10; 2 soniya kechikish Jami movwf count3twosec_loop movlw.255; 2/10 soniya uchun kechikish. movwf count2 chaqiruvi pon_wait decfsz count3, F goto twosec_loopreturn; ===================================== ========================================; Chiqib ketish signali; Yuklash va qo'ng'iroq qilish uchun 4 tsikl, qaytish uchun 2 tsikl.; 4MHz Tc:: count2 = 255-> 0,2 sek; -------------------------------------- ----------------------------------------- chiqaring movlw.127; 1/10 soniyali kechikish. movwf count2 qo'ng'iroq pon_wait qaytish; -------------------------------------------- -----------------------------------; count1 = 255d:: 775 tsikl 0 ga, + 3 tsikl qaytadi.; --------------------------------- ---------------------------------------------- pon_waitbig_loopS movlw.255 movwf count1short_loopS decfsz count1, F goto short_loopS decfsz count2, F goto big_loopSreturnend

3 -qadam: qismlar

Qismlar
Qismlar

Bu rasmda komponentlar qanchalik kichik bo'lishi kerakligi ko'rsatilgan. 8-pinli Microchip (PIC) 3 SMT LED (Moviy, Qizil, Oq) 1 Ichki mikro spiralli dvigatel 1 LIPO batareyasi. 1 ta quvvat tugmasi 1 2,5 mm yog'och dübel (2 uzunlik) 2 1 mm noyob tuproq magnitlari

4 -qadam: qurish

Qurmoq
Qurmoq

Avvaliga hamma narsa uchun massa markazi topildi. Bu dvigatelni o'rnatish joyi bo'ladi. Dvigatel Greenstuff (miniatyuralar dunyosida ishlatilgan) yordamida o'rnatildi. 3 ta LED oldindan ulangan edi. Mikro yo'l chetiga juda yaqin bo'lmagan holda yopishtirilgan. Quvvat kaliti va batareya muvozanatni saqlash uchun mikro (kichik) vaznini to'ldirish uchun o'rnatildi. Simlar lehimlangan edi, chindan ham ajoyib qismi - dvigatelning rotorli tishli uchiga super yopishtiruvchi (bu keyinchalik pastga qaragan bo'lardi) nodir tuproqli magnit o'rnatilgan edi. Qisqa (~ 2 ) uzunlikdagi 2,5 mm diametrli yog'och dübel 5 mm chuqurlikdagi 1 mm diametrli teshik uchun (qo'l va bit yordamida) burg'ulashdi. Bu teshikda yana 1 mm nodir tuproqli magnit yopishtirildi. Endi rasm uchun asosim magnitlangan. Dvigatel rotor bilan bog'langan. Dvigatel muvozanat markazidan aylangach, rasmning yuqori qismini aylantiradi. Dvigatel va yog'och dublonni yopish uchun qizil somon kesilgan. LIPO batareyasining quvvati hozirda zaryadsiz 3,4 V ni tashkil qilmoqda, bu dvigatelni aylantirish va LEDlarni yoqish uchun kifoya qiladi, lekin uning tagiga o'rnatilgan rasm o'z -o'zidan aylanmaydi. Mening keyingi versiyam ko'proq quvvat uchun 5V regulyatorli 12V masofali batareyadan foydalaning!

Tavsiya: