Talaan ng mga Nilalaman:

Warhammer Sorcerer on Disc With Magnetically-Coupled Motor and LEDs: 4 Hakbang
Warhammer Sorcerer on Disc With Magnetically-Coupled Motor and LEDs: 4 Hakbang

Video: Warhammer Sorcerer on Disc With Magnetically-Coupled Motor and LEDs: 4 Hakbang

Video: Warhammer Sorcerer on Disc With Magnetically-Coupled Motor and LEDs: 4 Hakbang
Video: OLF Conference - December 4, 2021 2024, Hulyo
Anonim
Warhammer Sorcerer sa Disc Na May Magnetically-Coupled Motor at LEDs
Warhammer Sorcerer sa Disc Na May Magnetically-Coupled Motor at LEDs

Nais mong magdagdag ng ilang PIZZAZZ sa iyong mga proyekto sa sining? Ang mga motor at LED ay ang paraan upang pumunta!

Isa ka bang mahilig sa paglalaro ng Warhammer? Ang isang ito ay para sa iyo! Ito ang aking Tzeentch Sorcerer Lord on Disc, binago kasama ang idinagdag na 3 LED's, isang motor, isang micro (PIC) at maliit na baterya. Ang itinuturo na ito ay sumasaklaw sa nakumpleto na pagbuo at mga isyu.

Hakbang 1: Circuit

Circuit
Circuit

Una, maaaring nagtataka ka kung ano ito. Ito ang aking pasadyang ginawa na pinaliit para sa table-top ng isang tabletop wargame na tinatawag na Warhammer. Ang tao sa tuktok ay isang regular na modelo mula sa gumagawa ng laro (Gamesworkshop), ngunit ang disk at base ay lahat sa akin. Ang pagbuo para sa kanya ay paksa ng isa pang itinuro, kaya't hindi ako pupunta doon. Circuit Ang pangunahing ideya dito ay kumuha ng isang maliit, 8 pin micro upang makontrol ang 3 LEDs at isang motor, na may maliit na supply hangga't maaari. Ang paggamit ng "mga tumutulong-kamay", tulad ng lagi, ay isang magandang ideya. Ang mga bagay na ito ay may dalawang clip upang hawakan kung ano man ang iyong pinagtatrabahuhan. Walang iskemang kinakailangan, dahil ang pagpapatupad ay napaka-simple; Isang 8 pin micro (Microchip PIC) na may 3 output pin na dumidiretso sa mga LED, at 2 output pin na pupunta sa 1 motor. Ginamit ang LED ay isang Blue, White at Red ibabaw na mount mount type. Ang ginamit na Motor ay natanggal mula sa isang sirang panloob na micro helecopter. Ang baterya (maliit na Lipo) ay natanggal din mula sa heli, ngunit plano ko na gumamit ng ibang mapagkukunan para sa higit pa kapangyarihan. Ang isang switch ay idinagdag para sa On / Off.

Hakbang 2: Code

Code
Code

Ang code para sa PIC ay ginawa upang ma-optimize ang buhay ng baterya at gumamit ng maraming mga random na "kaganapan". Upang ang baterya ay tumagal hangga't maaari, ang circuit ay dapat gumamit ng hindi bababa sa dami ng lakas na maaari kong malaman, habang pinapanatili ang ideya na buhay. Kaya, napagpasyahan kong bawasan ang paunang aktibidad sa average ng 1 LED flash o paglipat ng motor tuwing 6 segundo. Ang code ay mayroong 12 random na "mga aktibidad", mula sa 1 LED na pag-on, ang motor na nakabukas para sa iba't ibang mga tagal ng panahon o direksyon, sa isang random na estado ng paghihintay. Ang mga kaganapan ay nag-iiba mula sa 3 segundo na hiwalay sa higit sa 40 segundo ang layo, batay sa random na nabuong kaganapan. =_; Disc Controller;; -----------; Vcc-> | 1 8 | <-Vss; MGPIO5 | 2 7 | GPIO0 -LED1; MGPIO4 | 3 6 | GPIO1 -LED2; GPIO3-> | 4 5 | GPIO2 -LED3; -----------;; ==== =_; Kasaysayan at Mga Tala sa Pagbabago:; V1.0 Paunang Header, Code 5/19/09;;; (C) 5/2009; Ang code na ito ay maaaring magamit para sa personal na pagkatuto / aplikasyon / pagbabago.; Ang anumang paggamit ng code na ito sa mga produktong komersyal ay lumalabag sa paglabas ng freeware na ito.; Para sa mga katanungan / komento, makipag-ugnay sa circuit dot mage sa yahoo dot com.; ------------------------------ # isama ang P12C672. INC; ================= =_ ====; Tinutukoy; ------------------------------; ================== =_ ===========; Data; ------------------------------; Mga variable ng pag-iingat ng orascount1 equ 20 count2 equ 21 delay equ 22Randlo equ 23Randhi equ 24Wtemp equ 25Temp2 equ 26rand equ 27count3 equ 28; =_ =_ ===; I-reset ang Mga Vector;; Suriin ang CONFIG. BITS BAGO BURNING !!!; INTOSC; MCLR: NAGPATAYO; PWRUP: NAGPATAYO; LAHAT NG IBA: DISABLE !!;; ------------------------------------- RESET_ADDR EQU 0x00 org RESET_ADDR goto start; === =_ ====================; Magsimula Dito!; ----------------- magsimula; I-configure ang I / O ports bcf STATUS, RP1 bsf STATUS, RP0 Movlw h'08 '; RA Outputs, PGIO3 palaging input tris GPIO Movlw h'07'; Itakda ang GPIO sa Digital mode Movwf ADCON1; Itakda ang panloob na timer Movlw h'CF '; Tmr0 Panloob na mapagkukunan, prescale TMR0 1: 256 Movwf OPTION_REG Movlw H'00 'Movwf INTCON; Huwag paganahin ang mga pagkagambala ng TMR0, bcf STATUS, RP0; Simulan ang Mga Rehistro clrf GPIO clrf count1 clrf count2 Movlw 045h Movwf Randlo Movlw 030h Movwf Randhi; Maghintay ng 1 sec. tumawag sa pagtatalo; 0.2 sec tumawag sa pagtatalumpati tawag sa pagtatalumpati tawag sa pagtatalong tawag sa pagtatalumpati; =_ =_; Pangunahin; ------------------------------ pangunahing tawag twosec; 2 seg na minuto sa pagitan ng bawat aksyon 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; i-strip ang random 16 pababa sa 7 andlw 0x0F Movwf Rand; random na pagpili ng routine xorlw 0x00; 0? btfsc STATUS, Z goto flash1; Oo Tumawag sa ika-0 na Movfw rand xorlw 0x01; 1? btfsc STATUS, Z goto flash2; Oo Tumawag sa 1st Movfw rand xorlw 0x02; 2? btfsc STATUS, Z goto flash3; Oo Tumawag sa 2nd Movfw rand xorlw 0x03; 3? btfsc STATUS, Z goto flashall; Oo Tumawag sa 3rd Movfw rand xorlw 0x04; 4? btfsc STATUS, Z goto movels; Oo Tumawag sa 4th Movfw rand xorlw 0x05; 5? btfsc STATUS, Z goto movell; Oo Tumawag sa 5th Movfw rand xorlw 0x06; 6? btfsc STATUS, Z goto movers; Oo Tumawag sa ika-6 na Movfw rand xorlw 0x07; 7? btfsc STATUS, Z goto moverl; Oo Tumawag sa ika-7 na Movfw rand xorlw 0x08; 8? btfsc STATUS, Z goto moveburst; Oo Tumawag sa ika-8 movfw rand xorlw 0x09; 9? btfsc STATUS, Z goto Wait1; Oo Tumawag sa 9th Movfw rand xorlw 0x0A; A? btfsc STATUS, Z goto Wait2; Oo Tumawag sa Ath Movfw rand xorlw 0x0B; B? btfsc STATUS, Z goto Wait3; Oo Tumawag kay Bth goto wala; 1/4 ang oras, huwag gumawa ng anuman para sa 10 secs.flash1 bsf GPIO, 0 call debounce bcf GPIO, 0 goto mainflash2 bsf GPIO, 1 call debounce bcf GPIO, 1 goto mainflash3 bsf GPIO, 2 call debounce bcf GPIO, 2 goto mainflashall bsf GPIO, 0 bsf GPIO, 1 bsf GPIO, 2 call debounce call debounce bcf GPIO, 0 bcf GPIO, 1 bcf GPIO, 2 goto mainmovels bsf GPIO, 4 bcf GPIO, 5 call debounce bcf GPIO, 4 goto mainmovell bsf GPIO, 4 bcf GPIO, 5 tawag sa pagtatalumpati tawag sa pagtatalumpati ng bcf GPIO, 4 ng mga pangunahing goto ng bcf GPIO, 4 bsf GPIO, 5 tawag sa pagwawaksi ng bcf GPIO, 5 ng goto mainmoverl bcf GPIO, ng 4 bsf GPIO, 5 ng pagtawag sa pagtanggi sa pagtawag sa bfb GPIO, ng 5 goto mainmoveburst bcf GPIO, 4 bsf GPIO, 5 tawag sa pagtatanggal; ilipat ang kanan ng 3 beses, maikling pagsabog. bff GPIO, 5 tawag sa pagtatalumpati ng tawag sa pagtatalumpati bsf GPIO, 5 pagtawag sa pagtawag sa pagtawag ilipat ang kaliwa ng 3 beses, maikling pagsabog. bcf GPIO, 5 call debounce call debounce bcf GPIO, 4 call debounce call debounce bsf GPIO, 4 call debounce call debounce bcf GPIO, 4 call debounce call debounce bsf GPIO, 4 call debounce call debounce bcf GPIO, 4 call debounce call debounce goto mainWait1; Maghintay ng 1 segundo Movlw.255; Pag-antala para sa 2/10 segundo na pagtatalo. countwf count2 tawagan pon_wait Movlw.255; Pag-antala para sa 2/10 segundong pag-aalsa. countwf count2 tawagan pon_wait Movlw.255; Pag-antala para sa 2/10 segundo na pagtatalo. countwf count2 tawagan pon_wait Movlw.255; Pag-antala para sa 2/10 segundong pag-aalsa. countwf count2 tawagan pon_wait Movlw.255; Pag-antala para sa 2/10 segundo na pagtatalo. countwf count2 tawagan pon_wait goto mainWait2; Maghintay ng 0.6 segundo Movlw.255; Pag-antala para sa 2/10 segundo na pagtatalo. countwf count2 tawagan pon_wait Movlw.255; Pag-antala para sa 2/10 segundong pag-aalsa. countwf count2 tawagan pon_wait Movlw.255; Pag-antala para sa 2/10 segundo na pagtatalo. countwf count2 tawagan pon_wait goto mainWait3; Maghintay ng 4 segundo tumawag twosec tumawag twosec goto mainnothing Movlw.50; Pagkaantala ng 10 segundo Kabuuang Movwf count3nothing_loop Movlw.255; Pag-antala para sa 2/10 segundo na pagtatalo. Movwf count2 tawagan pon_wait decfsz count3, F goto wala_loop goto pangunahing; =_ =_; 2 segundo maghintay; ------------------------------- twosec movlw.10; Pag-antala ng 2 segundo Kabuuang Movwf count3twosec_loop Movlw.255; Pag-antala para sa 2/10 segundong pag-aalsa. Movwf count2 tumawag sa pon_wait decfsz count3, F goto twosec_loopreturn; =_ =_; Signal ng pag-debounce; 4 na cycle upang mai-load at tumawag, 2 cycle upang bumalik.; 4Mhz Tc:: count2 = 255 -> 0.2 sec; ----------------- ---- Pag-antala para sa 1/10 segundong pag-aalsa. countwf count2 tumawag pon_wait return; -------------------------------------------- -----------------------------------; count1 = 255d:: 775 cycle sa 0, + 3 cycle upang bumalik.; ---------------------------------------------- pon_waitbig_loopS movlw.255 Movwf count1short_loopS decfsz count1, F goto short_loopS decfsz count2, F goto big_loopSreturnend

Hakbang 3: Mga Bahagi

Mga Bahagi
Mga Bahagi

Ipinapakita ng larawang ito kung gaano kaliit ang kailangan kong makuha ang mga sangkap upang magkasya sa ilalim ng taong ito.1 8-pin Microchip (PIC) 3 SMT LED's (Blue, Red, White) 1 Motor mula sa panloob na micro heli.1 LIPO na baterya mula sa parehong heli. 1 power switch1 2.5mm kahoy na dowel (2 haba) 2 1mm bihirang mga magnet ng lupa

Hakbang 4: Bumuo

Magtayo
Magtayo

Una ang isang sentro ng masa para sa buong bagay ay natagpuan. Ito ang magiging lugar ng motor mount. Ang motor ay naka-mount gamit ang goop na tinatawag na Greenstuff (ginamit sa maliit na mundo). Ang 3 LED's ay prewired. Ang micro ay superglued sa isang labas ng daan na lugar, hindi masyadong malapit sa gilid. Ang switch ng kuryente at baterya ay naka-mount upang mai-offset ang (maliit) bigat ng micro, upang mapanatili ang balanse. Ang mga wire ay na-solder. Ang talagang cool na bahagi ay susunod. Superglue sa dulo ng gear ng rotor sa motor (haharap ito sa paglaon) isang bihirang magnet ng lupa ang naka-mount. Ang isang maikling (~ 2 ) haba ng 2.5 diameter na kahoy na dowel ay na-drill (gamit ang kamay at bit) para sa isang 5mm na malalim na 1mm na butas na lapad. Sa butas na ito ang isa pang 1mm bihirang pang-akit na lupa ay nakadikit. Ngayon, ang aking base para sa pigura ay magnetically isinama sa rotor ng motor. Kapag ang motor ay umiikot, mula sa gitna ng balanse, pinaliliko nito ang buong tuktok na bahagi ng pigura. Ang isang pulang dayami ay pinutol upang takpan ang motor at kahoy na dowel. Ito ay napaaga bago ang kahoy na dowel naka-mount, upang matiyak na tumutugma ito. Ang output ng baterya ng LIPO ay kasalukuyang nagbabasa ng 3.4V nang walang recharge. Ito ay sapat na upang paikutin ang motor at sindihan ang mga LED, ngunit sa figure na naka-mount sa base, hindi ito umiikot mismo. Ang aking susunod na bersyon ay gumamit ng isang 12V remote baterya na may 5V regulator para sa higit na lakas!

Inirerekumendang: