Indholdsfortegnelse:

Warhammer Sorcerer på disk med magnetisk koblet motor og lysdioder: 4 trin
Warhammer Sorcerer på disk med magnetisk koblet motor og lysdioder: 4 trin

Video: Warhammer Sorcerer på disk med magnetisk koblet motor og lysdioder: 4 trin

Video: Warhammer Sorcerer på disk med magnetisk koblet motor og lysdioder: 4 trin
Video: LEGIONES ASTARTES - The Emperor's Angels | Warhammer 40k Lore 2024, Juli
Anonim
Warhammer Sorcerer på skive med magnetisk koblet motor og lysdioder
Warhammer Sorcerer på skive med magnetisk koblet motor og lysdioder

Vil du tilføje noget PIZZAZZ til dine kunstprojekter? Motorer og lysdioder er vejen frem!

Er du en Warhammer -spilentusiast? Denne er til dig! Dette er min Tzeentch Sorcerer Lord on Disc, revideret med tilføjede 3 LED'er, en motor, en mikro (PIC) og et lille batteri. Denne instrukser dækker den færdige build og problemer.

Trin 1: Kredsløb

Kredsløb
Kredsløb

For det første kan du undre dig over, hvad dette er. Dette er min specialfremstillede miniature til bordplade, et krigsspil ved bordplade kaldet Warhammer. Fyren øverst er en almindelig model fra skaberen af spillet (Gamesworkshop), men disken og basen er alle mine. Byggeriet for ham er genstand for en anden instruerbar, så det vil jeg ikke gå ind på her. Circuit Grundtanken her var at tage en lille, 8 -pins mikro til at styre 3 lysdioder og en motor, med så lille en forsyning som muligt. Brug af "hjælpende hænder" er som altid en god idé. Disse ting har to klip til at holde, uanset hvad du arbejder på. Ingen skematisk var nødvendig, da implementeringen er meget enkel; En 8 -pins mikro (Microchip PIC) med 3 output pins, der går direkte til LED'er, og 2 output pins til 1 motor. De anvendte LED'er er af en blå, hvid og rød overflademonteringstype. Den anvendte motor blev revet fra en ødelagt indendørs mikrohelikopter. Batteriet (lille Lipo) blev også revet fra helien, men jeg planlægger allerede at bruge en anden kilde til mere En switch blev tilføjet til On/Off.

Trin 2: Kode

Kode
Kode

Koden til PIC'en blev lavet til at optimere batterilevetiden og bruge mange tilfældige "hændelser". For at få batteriet til at holde så længe som muligt, skulle kredsløbet bruge den mindst mulige mængde strøm, jeg kunne regne ud, samtidig med at idéen var i live. Så jeg besluttede at reducere den indledende aktivitet til et gennemsnit på 1 LED -blitz eller motorbevægelse hvert 6. sekund. Koden har 12 tilfældige "aktiviteter", lige fra 1 LED tændt, motoren tændt i forskellige tidsperioder eller retninger, til en tilfældig ventetilstand. Begivenheder varierer fra 3 sekunders mellemrum til mere end 40 sekunders mellemrum, baseret på den tilfældige begivenhed, der genereres. CODE; ============================== =======================================================; Disc Controller;; -----------; Vcc-> | 1 8 | <-Vss; MGPIO5 | 2 7 | GPIO0 -LED1; MGPIO4 | 3 6 | GPIO1 -LED2; GPIO3-> | 4 5 | GPIO2 -LED3; -----------;; ========================================= ==============================================; Revisionshistorik og noter:; V1.0 Initial Header, kode 5/19/09;;; (C) 5/2009; Denne kode kan bruges til personlig læring/anvendelse/ændring.; Enhver brug af denne kode i kommercielle produkter overtræder denne freeware -udgivelse.; For spørgsmål/kommentarer, kontakt circuit dot mage på yahoo dot com.; ------------------------------------------------ -------------------------------#inkluderer P12C672. INC; =============== ====================================================== ==================; Definerer ------------------------------------------------ -------------------------------; ==================== ====================================================== ============; Data;------------------------------------------------ -------------------------------; Tidsholdbare variabler count1 equ 20 count2 equ 21 delay equ 22Randlo equ 23Randhi equ 24Wtemp equ 25Temp2 equ 26rand equ 27count3 equ 28; ============================ ======================================================= ===; Nulstil vektorer;; Tjek KONFIG. BIT FØR BRÆNDNING !!!; INTOSC; MCLR: AKTIVERET; PWRUP: AKTIVERET; ALLE ANDRE: DØMME !!;; ------------------------------------------ ------------------------------------- RESET_ADDR EQU 0x00 org RESET_ADDR start; ===== ====================================================== =========================== Start her!;---------------------------------------------- ---------------------------------Start; Config I/O -porte bcf STATUS, RP1 bsf STATUS, RP0 movlw h'08 '; RA Outputs, PGIO3 input altid tris GPIO movlw h'07'; Indstil GPIO til Digital mode movwf ADCON1; Indstil intern timer movlw h'CF '; Tmr0 Intern kilde, forudskala TMR0 1: 256 movwf OPTION_REG movlw h'00 'movwf INTCON; Deaktiver TMR0 -afbrydelser, bcf STATUS, RP0; Initialiser registre clrf GPIO clrf count1 clrf count2 movlw 045h movwf Randlo movlw 030h movwf Randhi; vent 1 sek. opkald debounce; 0,2 sek opkald debounce opkald debounce opkald debounce opkald debounce; ========================================== ===========================================; Main; ------------------------------------------------ ------------------------------- hovedopkald to gange; 2 sekunder min mellem hver handling 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; strip random 16 ned til 7 andlw 0x0F movwf rand; tilfældigt rutinemæssigt valg xorlw 0x00; 0? btfsc STATUS, Z gå til flash1; Ja. Ring 0th movfw rand xorlw 0x01; 1? btfsc STATUS, Z gå til flash2; Ja. Ring til 1. movfw rand xorlw 0x02; 2? btfsc STATUS, Z goto flash3; Ja. Ring til 2. movfw rand xorlw 0x03; 3? btfsc STATUS, Z gå til flashall; Ja. Ring til 3. movfw rand xorlw 0x04; 4? btfsc STATUS, Z gik til bevægelser; Ja. Ring til 4. movfw rand xorlw 0x05; 5? btfsc STATUS, Z goto movell; Ja. Ring til 5th movfw rand xorlw 0x06; 6? btfsc STATUS, Z goto movers; Ja. Ring til 6. movfw rand xorlw 0x07; 7? btfsc STATUS, Z goto moverl; Ja. Ring til 7. movfw rand xorlw 0x08; 8? btfsc STATUS, Z gik til bevægelsesbrud; Ja. Ring til 8. movfw rand xorlw 0x09; 9? btfsc STATUS, Z gå til Vent1; Ja. Ring til 9. movfw rand xorlw 0x0A; EN? btfsc STATUS, Z gå til Wait2; Ja. Ring til Ath movfw rand xorlw 0x0B; B? btfsc STATUS, Z gå til Wait3; Ja. Ring til Bth goto ingenting; 1/4 gang, gør ingenting i 10 sekunder. 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 opkald debounce opkald debounce bcf GPIO, 4 goto mainmovers bcf GPIO, 4 bsf GPIO, 5 call debounce bcf GPIO, 5 goto mainmoverl bcf GPIO, 4 bsf GPIO, 5 call debounce call debounce bcf GPIO, 5 goto mainmoveburst bcf GPIO, 4 bsf GPIO, 5 opkald debounce; flyt til højre 3 gange, korte bursts. bcf GPIO, 5 call debounce call debounce bsf GPIO, 5 call debounce call debounce bcf GPIO, 5 call debounce call debounce bsf GPIO, 5 call debounce bcf GPIO, 5 call debounce call debounce call debounce call debounce bsf GPIO, 4; flyt til venstre 3 gange, korte bursts. 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; Vent 1 sekund movlw.255; Forsinkelse for 2/10 sekunders debounce. movwf count2 opkald pon_wait movlw.255; Forsinkelse for 2/10 sekunders debounce. movwf count2 opkald pon_wait movlw.255; Forsinkelse for 2/10 sekunders debounce. movwf count2 opkald pon_wait movlw.255; Forsinkelse for 2/10 sekunders debounce. movwf count2 opkald pon_wait movlw.255; Forsinkelse for 2/10 sekunders debounce. movwf count2 opkald pon_wait gå til mainWait2; Vent 0,6 sekunder movlw.255; Forsinkelse for 2/10 sekunders debounce. movwf count2 opkald pon_wait movlw.255; Forsinkelse for 2/10 sekunders debounce. movwf count2 opkald pon_wait movlw.255; Forsinkelse for 2/10 sekunders debounce. movwf count2 opkald pon_wait gå til mainWait3; Vent 4 sekunder ring to gange opkald to gange gå til mainnothing movlw.50; Forsinkelse i 10 sekunder Total movwf count3nothing_loop movlw.255; Forsinkelse for 2/10 sekunders debounce. movwf count2 opkald pon_wait decfsz count3, F gå til ingenting_loop gå til main; ====================================== =============================================; 2 sekunders ventetid ---------------------------------------------- --------------------------------- to gange movlw.10; Forsinkelse i 2 sekunder Total movwf count3twosec_loop movlw.255; Forsinkelse for 2/10 sekunders debounce. movwf count2 opkald pon_wait decfsz count3, F to twosec_loopreturn; ======================================== ===========================================; Afkaldssignal; 4 cykler til indlæsning og opkald, 2 cykler til at vende tilbage.; 4Mhz Tc:: count2 = 255-> 0,2 sek; -------------------------------------- ----------------------------------------- debounce movlw.127; Forsinkelse for 1/10 sekunders debounce. movwf count2 call pon_wait return; -------------------------------------------- -----------------------------------; count1 = 255d:: 775 cykler til 0, + 3 cykler for at vende tilbage. --------------------------------- ---------------------------------------------- pon_waitbig_loopS movlw.255 movwf count1short_loopS decfsz count1, F goto short_loopS decfsz count2, F goto big_loopSreturnend

Trin 3: Dele

Dele
Dele

Dette billede viser, hvor lille jeg var nødt til at få komponenterne til at passe under denne fyr. 1 8-benet mikrochip (PIC) 3 SMT LED'er (blå, rød, hvid) 1 motor fra et indendørs mikroheli. 1 LIPO-batteri fra samme heli. 1 afbryder1 2,5 mm træspindel (2 lang) 2 1 mm sjældne jordartsmagneter

Trin 4: Byg

Byg
Byg

Først blev der fundet et massecenter for det hele. Dette ville være motormonteringsområdet. Motoren blev monteret ved hjælp af goop kaldet Greenstuff. Strømafbryderen og batteriet blev monteret for at opveje mikroens (lille) vægt for at holde balancen. Ledningerne blev loddet på. Den virkelig fede del er den næste. Superlim på spidsen af rotorhjulet på motoren (dette ville vende nedad senere) en sjælden jordmagnet blev monteret. Der blev boret en kort (~ 2 ) længde på 2,5 diameter træspindel (ved hjælp af hånd og bit) til et 5 mm dybt hul på 1 mm i diameter. I dette hul blev en anden 1 mm sjælden jordartsmagnet limet fast. Nu er min base for figuren magnetisk koblet til motorens rotor. Når motoren centrifugerer, fra dens centrum af balancen, drejer den hele den øverste del af figuren. Et rødt halm blev skåret til at dække motoren og træspidsen. Dette blev forudmålt, før træpinden blev monteret, for at sikre, at den matchede. LIPO -batteriudgangen læser i øjeblikket 3,4V uden genopladning. Dette er nok til at dreje motoren og tænde lysdioderne, men med figuren monteret på basen snurrer den ikke selv. Min næste version vil brug et 12V fjernbatteri med 5V regulator for mere strøm!

Anbefalede: