Kazalo:

Warhammer Sorcerer na disku z magnetno povezanim motorjem in LED diodami: 4 koraki
Warhammer Sorcerer na disku z magnetno povezanim motorjem in LED diodami: 4 koraki

Video: Warhammer Sorcerer na disku z magnetno povezanim motorjem in LED diodami: 4 koraki

Video: Warhammer Sorcerer na disku z magnetno povezanim motorjem in LED diodami: 4 koraki
Video: Привез девушку на море, а ей не понравилось. #shorts #море 2024, Julij
Anonim
Warhammer Sorcerer na disku z magnetno povezanim motorjem in LED diodami
Warhammer Sorcerer na disku z magnetno povezanim motorjem in LED diodami

Želite svojim umetniškim projektom dodati nekaj PIZZAZZ -a? Motorji in LED so prava pot!

Ste navdušenec nad igrami iger Warhammer? Ta je za vas! To je moj Tzeentch Sorcerer Lord na disku, revidiran z dodanimi 3 LED diodami, motorjem, mikro (PIC) in majhno baterijo. Ta navodila zajemajo dokončano gradnjo in težave.

1. korak: Vezje

Vezje
Vezje

Najprej se morda sprašujete, kaj je to. To je moja miniatura po meri za namizno namizno vojno igro Warhammer. Tip na vrhu je običajen model izdelovalca igre (Gamesworkshop), vendar sta disk in osnova moja. Zgradba zanj je predmet drugega poučevanja, zato se tukaj ne bom spuščal v to. Vezje Osnovna ideja tukaj je bila vzeti majhen, 8 -polni mikro za krmiljenje 3 LED in motorja, s čim manjšo zalogo. Uporaba "rok pomoči", kot vedno, je dobra ideja. Te stvari imajo dve sponki za držanje nečesa, na čemer delate. Shema ni bila potrebna, saj je zagon zelo preprost; 8 -polni mikro (Microchip PIC) s 3 izhodnimi zatiči, ki gredo naravnost na LED, in 2 izhodnima zatičema za 1 motor Uporabljene LED diode so modre, bele in rdeče barve za površinsko montažo. Uporabljeni motor je bil odtrgan iz pokvarjenega mikro helikopterja v zaprtih prostorih. Baterija (majhen Lipo) je bila tudi odtrgana iz heli, vendar že nameravam uporabiti drug vir za več dodano stikalo za vklop/izklop.

2. korak: Koda

Koda
Koda

Koda za PIC je bila narejena za optimizacijo življenjske dobe baterije in uporabo številnih naključnih "dogodkov". Da bi baterija zdržala čim dlje, je moralo vezje porabiti najmanjšo moč, ki sem jo lahko zamislil, hkrati pa ohranjalo idejo živo. Zato sem se odločil, da bom začetno aktivnost zmanjšal na povprečno 1 LED bliskavico ali premik motorja vsakih 6 sekund. Koda ima 12 naključnih "dejavnosti", od 1 vklopljene LED, vklop motorja za različna časovna obdobja ali smeri do stanja naključnega čakanja. Dogodki se razlikujejo od 3 sekund do več kot 40 sekund, odvisno od naključnega dogodka, ki je nastal. KOD; ============================= ==================================================; Krmilnik diskov;; -----------; Vcc-> | 1 8 | <-Vss; MGPIO5 | 2 7 | GPIO0 -LED1; MGPIO4 | 3 6 | GPIO1 -LED2; GPIO3-> | 4 5 | GPIO2 -LED3; -----------;; ======================================= ========================================; Zgodovina revizij in opombe:; V1.0 Začetna glava, koda 5/19/09;;; (C) 5/2009; Ta koda se lahko uporablja za osebno učenje/uporabo/spreminjanje.; Vsaka uporaba te kode v komercialnih izdelkih krši to brezplačno izdajo.;.; ------------------------------------------------ -------------------------------#vključuje P12C672. INC; ============= ================================================== ================; Določa; ------------------------------------------------ -------------------------------; ================== ================================================== ===========; Podatki; ------------------------------------------------ -------------------------------; Spremenljivke vodenja časa count1 equ 20 count2 equ 21 delay equ 22Randlo equ 23Randhi equ 24Wtemp equ 25Temp2 equ 26rand equ 27count3 equ 28; ========================== ================================================== ===; Ponastavi vektorje;; PREVERITE KONFIG. BITI PRED ZGORENJEM !!!; INTOSC; MCLR: Omogočeno; PWRUP: Omogočeno; VSI DRUGI: INVALIDIRANO !!;; ------------------------------------------ ------------------------------------- RESET_ADDR EQU 0x00 org RESET_ADDR začetek; ===== ================================================== ========================; Začni tukaj!;---------------------------------------------- --------------------------------- začetek; Konfiguriraj V/I vrata bcf STATUS, RP1 bsf STATUS, RP0 movlw h'08 '; RA izhodi, PGIO3 vedno vnos tris GPIO movlw h'07'; GPIO nastavite na digitalni način movwf ADCON1; Nastavi notranji časovnik movlw h'CF '; Tmr0 Notranji vir, predrazmer TMR0 1: 256 movwf OPTION_REG movlw h'00 'movwf INTCON; Onemogoči prekinitve TMR0, bcf STATUS, RP0; Inicializiraj registre clrf GPIO clrf count1 clrf count2 movlw 045h movwf Randlo movlw 030h movwf Randhi; počakajte 1 sekundo odpoved klica; 0,2 sekunde odpoklic klica odpoved klica odpoved klica odpoved klica odpoved klica; ======================================= ======================================; Glavni; ------------------------------------------------ ------------------------------- glavni klic dve sekundi; 2 sekundi min med vsakim dejanjem 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; trak naključno 16 do 7 inlw 0x0F movwf rand; naključna rutinska izbira xorlw 0x00; 0? btfsc STATUS, Z goto flash1; Da. Pokliči 0. Movfw rand xorlw 0x01; 1? btfsc STATUS, Z goto flash2; Da. Pokliči 1. movfw rand xorlw 0x02; 2? btfsc STATUS, Z goto flash3; Da. Pokliči 2. movfw rand xorlw 0x03; 3? btfsc STATUS, Z goto flashall; Da. Pokliči 3. movfw rand xorlw 0x04; 4? btfsc STATUS, Z goto movels; Da. Pokliči 4. movfw rand xorlw 0x05; 5? btfsc STATUS, Z goto movell; Da. Pokliči 5. movfw rand xorlw 0x06; 6? btfsc STATUS, Z goto movers; Da. Pokliči 6. movfw rand xorlw 0x07; 7? btfsc STATUS, Z goto moverl; Da. Pokliči 7. movfw rand xorlw 0x08; 8? btfsc STATUS, Z goto moveburst; Da. Pokliči 8. movfw rand xorlw 0x09; 9? btfsc STATUS, Z goto Wait1; Da. Pokličite 9. movfw rand xorlw 0x0A; A? btfsc STATUS, Z goto Wait2; Da. Pokliči Ath movfw rand xorlw 0x0B; B? btfsc STATUS, Z goto Wait3; Da. Pokliči Bth goto nothing; 1/4 časa, ne delajte ničesar 10 sekund. Flash1 bsf GPIO, 0 klic debounce bcf GPIO, 0 goto mainflash2 bsf GPIO, 1 klic debounce bcf GPIO, 1 goto mainflash3 bsf GPIO, 2 klic debounce bcf GPIO, 2 goto mainflashall bsf GPIO, 0 bsf GPIO, 1 bsf GPIO, 2 klica prekinitve klica debounce bcf GPIO, 0 bcf GPIO, 1 bcf GPIO, 2 goto mainmovels bsf GPIO, 4 bcf GPIO, 5 klicev debounce bcf GPIO, 4 goto mainmovell bsf GPIO, 4 bcf GPIO, 5 prekinitev klica debounce bcf GPIO, 4 goto mainmovers bcf GPIO, 4 bsf GPIO, 5 klic debounce bcf GPIO, 5 goto mainmoverl bcf GPIO, 4 bsf GPIO, 5 klic debounce call debounce bcf GPIO, 5 goto mainmoveburst bcf GPIO, 5 4 bsf GPIO, odpoved 5 klicev; 3 -krat se pomaknite desno, kratki izbruhi. bcf GPIO, 5 klic odpoved klica debounce klic bsf GPIO, 5 klic odpoved klica debounce klic bcf GPIO, 5 klic odpoved klic debounce klic bsf GPIO, 5 klic odpoved klic bcf GPIO, 5 klic odpoved klic debounce klic debounce klic debounce klic bsf GPIO, 4; trikrat se pomaknite v levo, kratki izbruhi. bcf GPIO, 5 klic odpoved klica debounce klic bcf GPIO, 4 klic odpoved klic debounce klic bsf GPIO, 4 klic odpoved klic debounce klic bcf GPIO, 4 klic odpoved klic debounce klic bsf GPIO, 4 klic odpoved klic debounce klic GPC, 4 klic odpoved klic debounce klic goto mainWait1; Počakajte 1 sekundo, da se premakne.255; Zamuda za 2/10 sekundnega odpovedi. movwf count2 pokličite pon_wait movlw.255; Zamuda za 2/10 sekundo debounce. movwf count2 pokličite pon_wait movlw.255; Zamuda za 2/10 sekundo debounce. movwf count2 pokličite pon_wait movlw.255; Zamuda za 2/10 sekundo debounce. movwf count2 pokličite pon_wait movlw.255; Zamuda za 2/10 sekundnega odpovedi. movwf count2 klic pon_wait pojdi na mainWait2; Počakajte 0,6 sekunde, premik 0,255; Zamuda za 2/10 sekundnega odpovedi. movwf count2 pokličite pon_wait movlw.255; Zamuda za 2/10 sekundnega odpovedi. movwf count2 pokličite pon_wait movlw.255; Zamuda za 2/10 sekundnega odpovedi. movwf count2 klic pon_wait pojdi na mainWait3; Počakajte 4 sekunde klic twosec klic twosec goto mainnothing movlw.50; Zakasnitev 10 sekund Skupno število movwf3nothing_loop movlw, 255; Zamuda za 2/10 sekundnega odpovedi. movwf count2 pokličite pon_wait decfsz count3, F pojdite na nothing_loop pojdite na main; ===================================== ========================================; 2 sekundi čakanja; ---------------------------------------------- --------------------------------- dvesek movlw.10; Zamuda za 2 sekundi Skupno število movwf3twosec_loop movlw, 255; Zamuda za 2/10 sekundnega odpovedi. movwf count2 pokličite pon_wait decfsz count3, F pojdite na twosec_loopreturn; ======================================= ======================================; Signal za odklop; 4 cikli za nalaganje in klic, 2 cikla za vrnitev.; 4 Mhz Tc:: count2 = 255-> 0,2 s; -------------------------------------- ----------------------------------------- debounce movlw.127; Zamuda za 1/10 sekunde debounce. movwf count2 klic pon_wait return; -------------------------------------------- -----------------------------------; count1 = 255d:: 775 ciklov do 0, + 3 cikli za vrnitev.; --------------------------------- ---------------------------------------------- pon_waitbig_loopS movlw.255 movwf count1short_loopS decfsz count1, F pojdi na short_loopS decfsz count2, F pojdi na big_loopSreturnend

3. korak: Deli

Deli
Deli

Na tej sliki je prikazano, kako majhne sem moral sestaviti, da so komponente nameščene pod tem fantom. 1 stikalo za vklop 1 2,5 mm leseni moznik (2 dolg) 2 1 mm magneti iz redke zemlje

4. korak: Zgradite

Zgradite
Zgradite

Najprej je bilo najdeno središče mase za celotno stvar. To bi bilo območje pritrditve motorja. Motor je bil nameščen z goopom Greenstuff (uporablja se v svetu miniatur). 3 LED diode so bile predhodno ožičene. Stikalo za vklop in baterija sta bili nameščeni, da bi nadomestili (majhno) težo mikro, da bi ohranili ravnotežje. Žice so bile spajkane. Naslednji je res kul del. Superlepilo na konici rotorskega zobnika na motorju (to bi bilo pozneje obrnjeno navzdol) je bil nameščen redkozemeljski magnet. Kratko (~ 2 ) dolžino lesenega moznika premera 2,5 smo izvrtali (z roko in nastavkom) za luknjo s premerom 5 mm globoko 1 mm. V to luknjo je bil prilepljen še en 1 mm redkozemeljski magnet. Zdaj je moja podlaga za sliko magnetno povezan z rotorjem motorja. Ko se motor vrti, iz središča ravnotežja obrne celoten zgornji del figure. Rdečo slamo so razrezali, da pokrije motor in leseni moznik. To je bilo vnaprej izmerjeno, preden je bil leseni moznik izhod baterije LIPO trenutno bere 3,4 V brez polnjenja. To je dovolj za vrtenje motorja in prižiganje LED, vendar se s številko, nameščeno na dnu, ne vrti sama. Moja naslednja različica bo za več energije uporabite 12V daljinsko baterijo s 5V regulatorjem!

Priporočena: