INHOUDSOPGAWE:

Warhammer-towenaar op skyf met magneties gekoppelde motor en LED's: 4 stappe
Warhammer-towenaar op skyf met magneties gekoppelde motor en LED's: 4 stappe

Video: Warhammer-towenaar op skyf met magneties gekoppelde motor en LED's: 4 stappe

Video: Warhammer-towenaar op skyf met magneties gekoppelde motor en LED's: 4 stappe
Video: Emancipation of Dragons Ep. 1 - Oakhurst ( #ddliveplay ) 2024, November
Anonim
Warhammer Sorcerer op skyf met magneties gekoppelde motor en LED's
Warhammer Sorcerer op skyf met magneties gekoppelde motor en LED's

Wil u PIZZAZZ by u kunsprojekte voeg? Motors en LED's is die regte pad!

Is u 'n liefhebber van Warhammer -speletjies? Hierdie een is vir jou! Dit is my Tzeentch Sorcerer Lord on Disc, hersien met 3 LED's, 'n motor, 'n mikro (PIC) en 'n klein battery. Hierdie instruksies dek die voltooide opbou en kwessies.

Stap 1: Kringloop

Kring
Kring

Eerstens wonder u miskien wat dit is. Dit is my op maat gemaakte miniatuur vir 'n tafelblad, 'n oorlogspeletjie genaamd Warhammer. Die ou aan die bokant is 'n gewone model van die vervaardiger van die spel (Gamesworkshop), maar die skyf en die basis is myne. Die konstruksie vir hom is die onderwerp van 'n ander instruksionele, so ek sal nie hierop ingaan nie. Kring Die basiese idee hier was om 'n klein 8 -pins mikro te neem om 3 LED's en 'n motor te beheer, met so min as moontlik voorraad. Die gebruik van die "helpende hande", soos altyd, is 'n goeie idee. Hierdie dinge het twee knipsels om in te hou waaraan u ook al werk. Geen skema was nodig nie, aangesien die implementering baie eenvoudig is; 'n 8 -pins mikro (Microchip PIC) met 3 uitsetpenne wat reguit na LED's gaan, en 2 uitsetpenne na 1 motor. Die LED's wat gebruik word, is 'n blou, wit en rooi tipe bergoppervlak. Die motor wat gebruik is, is uit 'n gebreekte binnenshuise mikrohelikopter geruk. Die battery (klein Lipo) is ook uit die heli geruk, maar ek beplan reeds om 'n ander bron te gebruik vir meer 'n Skakelaar is bygevoeg vir Aan/Uit.

Stap 2: Kode

Kode
Kode

Die kode vir die PIC is gemaak om die batterylewe te optimaliseer en baie willekeurige "gebeurtenisse" te gebruik. Om die battery so lank as moontlik te hou, moes die kring die minste hoeveelheid krag gebruik wat ek kon vind, terwyl die idee lewendig gehou word. Ek het besluit om die aanvanklike aktiwiteit elke 6 sekondes te verminder tot gemiddeld 1 LED -flits of motorbeweging. Die kode het 12 ewekansige "aktiwiteite", wat wissel van 1 LED wat aanskakel, die motor vir verskillende tydperke of rigtings aanskakel, tot 'n ewekansige wagtoestand. Gebeurtenisse wissel van 3 sekondes tot meer as 40 sekondes uitmekaar, gebaseer op die willekeurige gebeurtenis wat gegenereer word. CODE; ============================== ======================================================; Skyfbeheerder;; -----------; Vcc-> | 1 8 | <-Vss; MGPIO5 | 2 7 | GPIO0 -LED1; MGPIO4 | 3 6 | GPIO1 -LED2; GPIO3-> | 4 5 | GPIO2 -LED3; -----------;; ======================================== ===============================================; Hersieningsgeskiedenis en aantekeninge:; V1.0 Aanvanklike kop, kode 5/19/09;;; (C) 5/2009; Hierdie kode kan gebruik word vir persoonlike leer/toepassing/wysiging.; Enige gebruik van hierdie kode in kommersiële produkte oortree hierdie freeware -uitgawe.; Vir vrae/kommentaar, kontak circuit dot mage by yahoo dot com.; ------------------------------------------------- -------------------------------#sluit P12C672. INC in; =============== ====================================================== ==================; Definieer; ------------------------------------------------- -------------------------------; ==================== ====================================================== ============; Data; ------------------------------------------------ -------------------------------; Tyd hou veranderlikes tel1 gelyk 20 tel2 equ 21 vertraging equ 22Randlo equ 23Randhi equ 24Wtemp equ 25Temp2 equ 26rand equ 27count3 equ 28; ============================= ======================================================= ===; Stel vektore terug;; TEKEN KONFIG. BITTE VOOR BRANDING !!!; INTOSC; MCLR: GEMAKKELIK; PWRUP: GEMAKKELIK; ALLE ANDER: UITGESKAKELD !!;; ------------------------------------------ ------------------------------------- RESET_ADDR EQU 0x00 org RESET_ADDR begin; ===== ======================================================= ===========================; Begin hier!;---------------------------------------------- --------------------------------- begin; Config I/O -poorte bcf STATUS, RP1 bsf STATUS, RP0 movlw h'08 '; RA -uitsette, PGIO3 voer altyd tris GPIO movlw h'07' in; Stel GPIO in op Digital mode movwf ADCON1; Stel interne timer movlw h'CF '; Tmr0 Interne bron, voorafgroot TMR0 1: 256 movwf OPTION_REG movlw h'00 'movwf INTCON; Skakel TMR0 -onderbrekings uit, bcf STATUS, RP0; Initialiseer registers clrf GPIO clrf count1 clrf count2 movlw 045h movwf Randlo movlw 030h movwf Randhi; wag 1 sek. bel ontbinding; 0,2 sek. Oproep debounce oproep debounce oproep debounce oproep; ===========================================; Hoof; ------------------------------------------------ ------------------------------- hoofoproep twee sekondes; 2 sek. Min tussen elke aksie 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; strook random 16 af na 7 enlw 0x0F movwf rand; ewekansige roetine seleksie xorlw 0x00; 0? btfsc STATUS, Z gaan na flits1; Ja. Skakel 0de movfw rand xorlw 0x01; 1? btfsc STATUS, Z gaan na flash2; Ja. Skakel 1st movfw rand xorlw 0x02; 2? btfsc STATUS, Z gaan na flash3; Ja. Skakel 2de movfw rand xorlw 0x03; 3? btfsc STATUS, Z na flashall; Ja. Skakel 3de movfw rand xorlw 0x04; 4? btfsc STATUS, Z gaan na bewegings; Ja. Skakel 4de movfw rand xorlw 0x05; 5? btfsc STATUS, Z goot movell; Ja. Skakel 5th movfw rand xorlw 0x06; 6? btfsc STATUS, Z go movers; Ja. Skakel 6de movfw rand xorlw 0x07; 7? btfsc STATUS, Z goto moverl; Ja. Skakel 7de movfw rand xorlw 0x08; 8? btfsc STATUS, Z gaan na beweging; Ja. Skakel 8ste movfw rand xorlw 0x09; 9? btfsc STATUS, Z moet wag1; Ja. Skakel 9de movfw rand xorlw 0x0A; A? btfsc STATUS, Z na Wait2; Ja. Skakel Ath movfw rand xorlw 0x0B; B? btfsc STATUS, Z moet wag3; Ja. Noem Bth niks; 1/4 keer, doen niks vir 10 sekondes nie. Flits1 bsf GPIO, 0 oproep debunce bcf GPIO, 0 gaan na mainflash2 bsf GPIO, 1 oproep debounce bcf GPIO, 1 gaan na mainflash3 bsf GPIO, 2 oproep debounce bcf GPIO, 2 gaan na mainflashall bsf GPIO, 0 bsf GPIO, 1 bsf GPIO, 2 oproep debounce oproep debounce bcf GPIO, 0 bcf GPIO, 1 bcf GPIO, 2 gaan na hoofopnames bsf GPIO, 4 bcf GPIO, 5 oproep debounce bcf GPIO, 4 gaan na mainmovell bsf GPIO, 4 bcf GPIO, 5 oproep debounce oproep debounce bcf GPIO, 4 gaan na mainmovers bcf GPIO, 4 bsf GPIO, 5 oproep debounce bcf GPIO, 5 gaan na mainmoverl bcf GPIO, 4 bsf GPIO, 5 oproep debounce call debounce bcf GPIO, 5 gaan na mainmoveburst bcf GPIO, 4 bsf GPIO, 5 oproepdebons; beweeg 3 keer regs, kort bars. 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; beweeg 3 keer links, kort bars. bcf GPIO, 5 oproep debounce oproep debounce bcf GPIO, 4 oproep debounce bel debounce bsf GPIO, 4 oproep debounce oproep debounce bcf GPIO, 4 oproep debounce oproep debounce bsf GPIO, 4 oproep debounce oproep debounce bcf GPIO, 4 oproep debounce oproep debounce goto mainWait1; Wag 1 sekonde movlw.255; Vertraag vir 2/10 sekonde terugslag. movwf count2 bel pon_wait movlw.255; Vertraag vir 2/10 sekonde terugslag. movwf count2 bel pon_wait movlw.255; Vertraag vir 2/10 sekonde terugslag. movwf count2 bel pon_wait movlw.255; Vertraag vir 2/10 sekonde terugslag. movwf count2 bel pon_wait movlw.255; Vertraag vir 2/10 sekonde terugslag. movwf count2 bel pon_wait gaan na mainWait2; Wag 0,6 sekondes movlw.255; Vertraag vir 2/10 sekonde terugslag. movwf count2 bel pon_wait movlw.255; Vertraag vir 2/10 sekonde terugslag. movwf count2 bel pon_wait movlw.255; Vertraag vir 2/10 sekonde terugslag. movwf count2 bel pon_wait gaan na mainWait3; Wag 4 sekondes bel twee keer bel twee keer gaan na niks meer nie. 50; Vertraging vir 10 sekondes Totale movwf count3nothing_loop movlw.255; Vertraag vir 2/10 sekonde terugslag. movwf count2 call pon_wait decfsz count3, F goot nothing_loop go to main; ====================================== ===============================================; 2 sekondes wag; ---------------------------------------------- --------------------------------- twosec movlw.10; Vertraging vir 2 sekondes Totale movwf count3twosec_loop movlw.255; Vertraag vir 2/10 sekonde terugslag. movwf count2 bel pon_wait decfsz count3, Gaan na twosec_loopreturn; ======================================== ===========================================; Afbreeksein; 4 siklusse om te laai en te bel, 2 siklusse om terug te keer.; 4Mhz Tc:: count2 = 255-> 0,2 sek; -------------------------------------- ----------------------------------------- debounce movlw.127; Vertraag vir 1/10 sekonde terugslag. movwf count2 bel pon_wait terug; -------------------------------------------- -----------------------------------; count1 = 255d:: 775 siklusse na 0, + 3 siklusse om terug te keer.; --------------------------------- ---------------------------------------------- pon_waitbig_loopS movlw.255 movwf count1short_loopS decfsz count1, F gooto short_loopS decfsz count2, F gooto big_loopSreturnend

Stap 3: Onderdele

Dele
Dele

Hierdie prentjie wys hoe klein ek die komponente moes kry om onder hierdie man in te pas. 1 aan / uit -skakelaar 1 2,5 mm houtspeld (2 lank) 2 1 mm seldsame aardmagnete

Stap 4: Bou

Bou
Bou

Eers is 'n massasentrum vir die hele saak gevind. Dit sou die motorberggebied wees. Die motor is gemonteer met behulp van 'n goop genaamd Greenstuff (gebruik in die miniaturewêreld). Die 3 LED's was vooraf bedraad. Die mikro is in 'n buite -weggom vasgeplak, nie te naby aan die rand nie. Die kragskakelaar en battery is gemonteer om die (klein) gewig van die mikro te verreken om balans te behou. Die drade is aan die soldeer vasgemaak. Die werklik koel deel is volgende. Supergom op die punt van die rotorrat op die motor (dit sal later na onder wys) is 'n seldsame aardmagneet aangebring. 'N Kort (~ 2 ) lengte met 'n 2,5 mm -deursnee -houtspeld is geboor (met die hand en bietjie) vir 'n gat van 5 mm diep met 'n deursnee van 1 mm. In hierdie gat is nog 'n 1 mm seldsame aardmagneet vasgeplak. gekoppel aan die rotor van die motor. As die motor draai, vanaf sy middelpunt van die balans, draai dit die hele boonste gedeelte van die figuur. 'n Rooi strooi is gesny om die motor en die houtdoek te bedek. gemonteer om te verseker dat dit pas gebruik 'n 12V -afstandbattery met 'n 5V -reguleerder vir meer krag!

Aanbeveel: