Obsah:

Zaklínač Warhammer na disku s magneticky viazaným motorom a diódami LED: 4 kroky
Zaklínač Warhammer na disku s magneticky viazaným motorom a diódami LED: 4 kroky

Video: Zaklínač Warhammer na disku s magneticky viazaným motorom a diódami LED: 4 kroky

Video: Zaklínač Warhammer na disku s magneticky viazaným motorom a diódami LED: 4 kroky
Video: Zoltan Chivay - Zaklínač [ CZ / Česky ] 2024, Júl
Anonim
Zaklínač Warhammer na disku s magneticky viazaným motorom a diódami LED
Zaklínač Warhammer na disku s magneticky viazaným motorom a diódami LED

Chcete pridať nejaký PIZZAZZ do svojich umeleckých projektov? Motory a diódy LED sú tou správnou cestou!

Ste herný nadšenec Warhammer? Toto je pre teba! Toto je môj Tzeentch Sorcerer Lord na disku, zrevidovaný s pridaním 3 LED diód, motora, mikro (PIC) a malej batérie. Tento návod pokrýva dokončenú zostavu a problémy.

Krok 1: Okruh

Obvod
Obvod

Najprv sa môžete čudovať, čo to je. Toto je moja miniatúra vyrobená na mieru pre stolnú a stolnú vojnovú hru s názvom Warhammer. Chlapík hore je obyčajný model od výrobcu hry (Gamesworkshop), ale disk a základňa sú všetky moje. Konštrukcia pre neho je predmetom ďalšieho návodu, takže sa tu nebudem zaoberať. Obvod Základnou myšlienkou bolo vziať malý, 8 -kolíkový mikro na ovládanie 3 LED a motora s čo najmenšou zásobou. Použitie „pomocných rúk“, ako vždy, je dobrý nápad. Tieto veci majú dva klipy, ktoré držia čokoľvek, na čom pracujete. Nebola potrebná žiadna schéma, pretože implementácia je veľmi jednoduchá; 8 -pinový mikro (Microchip PIC) s 3 výstupnými kolíkmi smerujúcimi priamo k LED diódam a 2 výstupnými kolíkmi pre 1 motor. Použité LED diódy sú typu Blue, White a Red na povrchovú montáž. Použitý motor bol vytrhnutý z rozbitej izbovej mikro helikoptéry. Batéria (malá Lipo) bola tiež vytrhnutá z heli, ale už plánujem použiť iný zdroj na viac výkon. Bol pridaný vypínač pre zapnutie/vypnutie.

Krok 2: Kód

Kód
Kód

Kód pre PIC bol vytvorený s cieľom optimalizovať životnosť batérie a využiť mnoho náhodných „udalostí“. Aby batéria vydržala čo najdlhšie, obvod musel použiť najmenšie množstvo energie, aké som dokázal, a zároveň udržať myšlienku nažive.. Rozhodol som sa teda znížiť počiatočnú aktivitu na priemer 1 LED blesk alebo pohyb motora každých 6 sekúnd. Kód má 12 náhodných „aktivít“, od 1 LED zapnutia, zapnutia motora v rôznych časových obdobiach alebo smeroch až po stav náhodného čakania. Udalosti sa líšia od 3 sekúnd do viac ako 40 sekúnd od seba na základe vygenerovanej náhodnej udalosti. KÓD; ================================== ==========================================================================; Ovládač disku;; -----------; Vcc-> | 1 8 | <-Vss; MGPIO5 | 2 7 | GPIO0 -LED1; MGPIO4 | 3 6 | GPIO1 -LED2; GPIO3-> | 4 5 | GPIO2 -LED3; -----------;; ============================================= ============================================; História a poznámky k revízii:; V1.0 Počiatočný nadpis, kód 5/19/09;;; (C) 5/2009; Tento kód je možné použiť na osobné učenie/aplikáciu/úpravu.; Akékoľvek použitie tohto kódu v komerčných produktoch porušuje toto bezplatné vydanie..; ------------------------------------------------ -------------------------------#include P12C672. INC; ============== ========================================================================== =================; Definuje; ------------------------------------------------ -------------------------------; ==================== ========================================================================== ============; Údaje; ------------------------------------------------ -------------------------------; Premenné udržiavajúce čas počítanie 1 ekv. =========================================================================== ===; Resetovať vektory;; KONTROLA KONFIGURÁCIE. KUSY PRED SPÁLENÍM !!!; INTOSC; MCLR: POVOLENÉ; PWRUP: POVOLENÉ; VŠETKY INÉ: ZAKÁZANÉ !!;; ------------------------------------------ ------------------------------------- RESET_ADDR EQU 0x00 org RESET_ADDR začať; ===== =========================================================================== =========================; Začnite tu!;---------------------------------------------- --------------------------------- štart; Konfigurácia I/O portov bcf STATUS, RP1 bsf STATUS, RP0 movlw h'08 '; RA výstupy, PGIO3 vždy vstupuje cez GPIO movlw h'07'; Nastavte GPIO na digitálny režim movwf ADCON1; Nastaviť interný časovač pohybom h'CF '; Tmr0 Interný zdroj, predzmenka TMR0 1: 256 movwf OPTION_REG movlw h'00 'movwf INTCON; Zakázať prerušenia TMR0, bcf STATUS, RP0; Inicializovať registre clrf GPIO počet skriptov 1 počet skriptov 2 pohyblivý 045 h movwf Randlo movlw 030 h movwf Randhi; počkajte 1 s. zrušiť hovor; 0,2 s debounce hovoru debounce hovoru debounce hovoru debounce hovoru; =============================================== ==========================================; Hlavná;------------------------------------------------ ------------------------------- hlavný hovor twosec; 2 sekundy min medzi každou akciou 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 down to 7 andlw 0x0F movwf rand; náhodný rutinný výber xorlw 0x00; 0? btfsc STAV, Z prejsť na flash1; Áno. Zavolajte 0. Movfw rand xorlw 0x01; 1? btfsc STAV, Z prejsť na flash2; Áno. Zavolajte 1. movfw rand xorlw 0x02; 2? btfsc STAV, Z prejsť na flash3; Áno. Zavolajte 2. movfw rand xorlw 0x03; 3? btfsc STATUS, Z goto flashall; Áno. Zavolajte 3. movfw rand xorlw 0x04; 4? btfsc STAV, Z prejsť na pohyb; Áno. Zavolajte 4. movfw rand xorlw 0x05; 5? btfsc STATUS, Z goto movell; Áno. Zavolajte 5. movfw rand xorlw 0x06; 6? btfsc STAV, Z prejsť na pohyb; Áno. Zavolajte 6. movfw rand xorlw 0x07; 7? btfsc STAV, Z prejsť na pohyb; Áno. Zavolajte 7. movfw rand xorlw 0x08; 8? btfsc STAV, Z prejsť pohybom; Áno. Zavolajte na 8. movfw rand xorlw 0x09; 9? btfsc STAV, Z goto Wait1; Áno. Zavolajte 9. movfw rand xorlw 0x0A; A? btfsc STAV, Z goto Wait2; Áno. Zavolajte Ath movfw rand xorlw 0x0B; B? btfsc STAV, Z goto Wait3; Áno. Hovor Bth nič, nič; 1/4 času, nič nerobte 10 sekúnd. Flash1 bsf GPIO, 0 zrušenie hovoru bcf GPIO, 0 prechod na mainflash2 bsf GPIO, 1 zrušenie hovoru bcf GPIO, 1 prechod na mainflash3 bsf GPIO, 2 odblokovanie hovoru bcf GPIO, 2 prechod na mainflashall bsf GPIO, 0 bsf GPIO, 1 bsf GPIO, 2 zrušenie hovoru, 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 hovorov na odblokovanie hovorov, odblokovanie bcf GPIO, 4 hlavné presuny bcf GPIO, 4 bsf GPIO, 5 hovorov na odbitie bcf GPIO, 5 prechodov na hlavnú linku bcf GPIO, 4 bsf GPIO, 5 odskokov na zrušenie hovoru bcf GPIO, 5 prechod na hlavný pohyb bcf GPIO, 4 bsf GPIO, 5 zrušenie hovoru; posuňte sa 3 krát doprava, krátke dávky. bcf GPIO, 5 hovorov na odskakovanie hovorov bsf GPIO, 5 hovorov na odskakovanie hovorov bounf bcf GPIO, 5 hovorov na odskakovanie hovorov bsf GPIO, 5 hovorov na odskakovanie bcf GPIO, 5 hovorov na odskakovanie hovorov na odskakovanie hovorov na odskakovanie hovorov odskakovania bsf GPIO, 4; pohyb 3 krát doľava, krátke výbuchy. bcf GPIO, 5 hovorov na odblokovanie hovorov, bcf GPIO, 4 na zrušenie hovoru na zrušenie hovoru na bsf GPIO, 4 na zrušenie hovoru na zrušenie hovoru v bcf GPIO, 4 na zrušenie hovoru na zrušenie hovoru v bsf GPIO, 4 na zrušenie hovoru na zrušenie hovoru v bcf GPIO, 4 na zrušenie hovoru na zrušenie hovoru; Počkajte 1 sekundu movlw, 255; Oneskorenie pre 2/10 sekundový odskok. movwf count2 call pon_wait movlw, 255; Oneskorenie pre 2/10 sekundový odskok. movwf count2 call pon_wait movlw, 255; Oneskorenie pre 2/10 sekundový odskok. movwf count2 call pon_wait movlw, 255; Oneskorenie pre 2/10 sekundový odskok. movwf count2 call pon_wait movlw, 255; Oneskorenie pre 2/10 sekundový odskok. movwf count2 call pon_wait prejsť na mainWait2; Počkajte 0,6 sekundy movlw, 255; Oneskorenie pre 2/10 sekundový odskok. movwf count2 call pon_wait movlw, 255; Oneskorenie pre 2/10 sekundový odskok. movwf count2 call pon_wait movlw, 255; Oneskorenie pre 2/10 sekundový odskok. movwf count2 call pon_wait prejsť na mainWait3; Počkajte 4 sekundy. Oneskorenie na 10 sekúnd Celkový počet pohybov3 nič_smyčka movlw, 255; Oneskorenie pre 2/10 sekundový odskok. movwf count2 call pon_wait decfsz count3, F goto nothing_loop goto main; ============================================ ============================================; Čakanie 2 sekundy; ---------------------------------------------- --------------------------------- twosec movlw, 10; Oneskorenie na 2 sekundy Celkový počet pohybov3twosec_loop movlw, 255; Oneskorenie pre 2/10 sekundový odskok. movwf count2 call pon_wait decfsz count3, F goto twosec_loopreturn; =============================================== ==========================================; Signál odskoku; 4 cykly na načítanie a volanie, 2 cykly na návrat.; 4Mhz Tc:: count2 = 255-> 0,2 s; -------------------------------------- ----------------------------------------- odskočiť movlw, 127; Oneskorenie pri odraze 1/10 sekundy. movwf count2 call pon_wait return; -------------------------------------------- -----------------------------------; count1 = 255d:: 775 cyklov až 0, + 3 cykly pre návrat.; --------------------------------- ---------------------------------------------- pon_waitbig_loopS movlw, 255 movwf count1short_loopS decfsz count1, F goto short_loopS decfsz count2, F goto big_loopSreturnend

Krok 3: Diely

Časti
Časti

Tento obrázok ukazuje, aké malé som musel dostať komponenty na to, aby sa zmestili pod tohto chlapíka. 1 8-kolíkový mikročip (PIC) 3 SMT LED diódy (modrá, červená, biela) 1 motor z vnútornej mikro heli. 1 batéria LIPO z rovnakého heli. 1 vypínač napájania 1 2,5 mm drevená hmoždinka (2 palce dlhá) 2 1 mm magnety vzácnych zemín

Krok 4: Zostavte

Stavať
Stavať

Najprv sa našlo ťažisko celej veci. Toto by bola oblasť uchytenia motora. Motor bol namontovaný pomocou goopu nazývaného Greenstuff (používa sa v miniatúrnom svete). Tri LED diódy boli vopred zapojené. Mikro bol prelepený v mimo cesty, nie príliš blízko okraja. Vypínač a batéria boli namontované tak, aby kompenzovali (malú) hmotnosť mikro, aby udržali rovnováhu. Drôty boli spájkované. Skutočne chladná časť je na rade. Lepidlo na špičke ozubeného kolesa rotora na motore (to by bolo obrátené nadol) bol namontovaný magnet zo vzácnych zemín. Do otvoru s priemerom 5 mm hlbokým 1 mm (rukou a vrtákom) bola vyvŕtaná krátka (~ 2 ) drevená hmoždinka s priemerom 2,5 mm. Do tohto otvoru bol prilepený ďalší 1 mm magnet vzácnych zemín. Moja základňa pre obrázok je magnetická spojený s rotorom motora. Keď sa motor točí, zo svojho stredu rovnováhy otočí celú hornú časť obrázku. Na zakrytie motora a drevenej hmoždinky bola narezaná červená slama. Toto bolo predbežne zmerané pred tým, ako bola drevená hmoždinka namontovaný, aby sa zabezpečilo, že bude zodpovedať. Výstup batérie LIPO v súčasnosti ukazuje 3,4 V bez dobíjania. To stačí na roztočenie motora a rozsvietenie diód LED, ale s figúrkou namontovanou na základni sa sám neotáča. Moja ďalšia verzia bude pre viac energie použite 12 V batériu na diaľkové ovládanie s 5 V regulátorom!

Odporúča: