Mundarija:
Video: Magnit bilan bog'langan dvigatelli va LEDli diskdagi Warhammer sehrgar: 4 qadam
2024 Muallif: John Day | [email protected]. Oxirgi o'zgartirilgan: 2024-01-30 13:29
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
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
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
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
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:
Magnit bilan bog'langan suv nasosi: 10 qadam (rasmlar bilan)
Magnit bilan bog'langan suv nasoslari: Men ko'rsatma beraman, men qanday qilib suv nasosini magnitli birlashtirdim, bu suv nasosida pervanel va elektr dvigatelining o'qi o'rtasida mexanik aloqa yo'q. Ammo bunga qanday erishish mumkin va
O'lik Pleo RB -ni bog'langan PSU bilan tiriltiring: 5 qadam (rasmlar bilan)
O'lik Pleo RB -ni bog'langan PSU bilan tiriltiring: Iltimos, shuni esda tutingki, ushbu ko'rsatmali fotosuratlar men o'zgartirishni tugatgandan so'ng olingan, shuning uchun siz akkumulyator qutisini demontaj qilganingizdan so'ng, uning qismlarini diqqat bilan ko'rib chiqishingiz va ularni tasvirlar bilan solishtirishingiz kerak bo'ladi. o'zgartirishdan oldin bu erda
Steam bilan bog'langan displey tokchasi: 18 qadam (rasmlar bilan)
Steam bilan bog'langan displey tokchasi: Orqaga hikoya Mening akamda Funko POP raqamlari bor, ular o'z do'stlarini video o'yinlarda tez -tez o'ynaydilar. Biz ularning Steam -dagi holatini aks ettiruvchi diodli displey bo'lsa, yaxshi bo'lardi deb o'yladik. Shunday qilib
Raqamli rasmli foto ramka, WiFi bilan bog'langan - Raspberry Pi: 4 qadam (rasmlar bilan)
Raqamli rasmli foto ramka, WiFi bilan bog'langan - Raspberry Pi: Bu raqamli foto ramkaga juda oson va arzon narxli yo'l - bu "bepul" fayl uzatish dasturi yordamida "bosish va tortish" orqali Wi -Fi orqali rasmlarni qo'shish /o'chirish. . U kichik 4,50 funt sterlinglik Pi Zero bilan quvvatlanishi mumkin. Siz ham o'tkazishingiz mumkin
Quyosh energiyasi bilan bog'langan pochta qutisi: 12 qadam (rasmlar bilan)
Quyosh energiyasi bilan bog'langan pochta qutisi: Men ikkinchi marta, siz bilan bog'langan pochta qutisi haqidagi asarlarimni tasvirlab beraman, bu ko'rsatmalarni o'qiganimdan so'ng (va boshqalar) va mening pochta qutim uyim yonida bo'lmaganligi uchun, men o'zimni ilhomlantirmoqchi edim. Pochta qutimni m -ga ulash uchun Green Energy ishlarini oching