Obsah:

Zaklínač Warhammer na disku s magneticky spřaženým motorem a diodami LED: 4 kroky
Zaklínač Warhammer na disku s magneticky spřaženým motorem a diodami LED: 4 kroky

Video: Zaklínač Warhammer na disku s magneticky spřaženým motorem a diodami LED: 4 kroky

Video: Zaklínač Warhammer na disku s magneticky spřaženým motorem a diodami LED: 4 kroky
Video: Zoltan Chivay - Zaklínač [ CZ / Česky ] 2024, Listopad
Anonim
Zaklínač Warhammer na disku s magneticky spřaženým motorem a LED diodami
Zaklínač Warhammer na disku s magneticky spřaženým motorem a LED diodami

Chcete přidat nějaký PIZZAZZ do svých uměleckých projektů? Motory a LED diody jsou tou správnou cestou!

Jste herním nadšencem Warhammeru? Tenhle je pro tebe! Toto je můj Tzeentch Sorcerer Lord na disku, přepracovaný s přidanými 3 LED, motorem, mikro (PIC) a malou baterií. Tento instruktáž pokrývá dokončené sestavení a problémy.

Krok 1: Okruh

Obvod
Obvod

Nejprve se možná ptáte, co to je. Toto je moje vlastní miniatura pro stolní stolní válečnou hru Warhammer. Chlapík nahoře je obyčejný model od výrobce hry (Gamesworkshop), ale disk a základna jsou všechny moje. Stavba pro něj je předmětem dalšího instruktážního, takže se tu nebudu zabývat. Obvod Základní myšlenkou zde bylo vzít malý, 8kolíkový mikro k ovládání 3 LED a motoru, s co nejmenší dodávkou. Použití „pomocných rukou“je jako vždy dobrý nápad. Tyto věci mají dva klipy, do kterých se vejde cokoli, na čem pracujete. Nebylo potřeba žádné schéma, protože implementace je velmi jednoduchá; 8kolíkový mikro (Microchip PIC) se 3 výstupními piny směřujícími přímo k LED diodám a 2 výstupními piny k 1 motoru Použité LED diody jsou typu Blue, White a Red pro povrchovou montáž. Použitý motor byl vytržen z rozbité vnitřní mikro helikoptéry. Baterie (malé Lipo) byla také vytržena z heli, ale už mám v plánu použít jiný zdroj pro více Byl přidán přepínač pro zapnutí/vypnutí.

Krok 2: Kód

Kód
Kód

Kód pro PIC byl vytvořen za účelem optimalizace výdrže baterie a využití mnoha náhodných „událostí“. Aby baterie vydržela co nejdéle, musel obvod použít nejmenší množství energie, jaké jsem dokázal, a přitom udržet myšlenku naživu. Rozhodl jsem se tedy snížit počáteční aktivitu na průměrně 1 LED blesk nebo pohyb motoru každých 6 sekund. Kód má 12 náhodných „činností“, od 1 zapnutí LED, zapnutí motoru v různých časových obdobích nebo směrech až po stav náhodného čekání. Události se liší od 3 sekund do více než 40 sekund od sebe, na základě generované náhodné události. CODE; ================================== ========================================================================; Řadič disků;; -----------; Vcc-> | 1 8 | <-Vss; MGPIO5 | 2 7 | GPIO0 -LED1; MGPIO4 | 3 6 | GPIO1 -LED2; GPIO3-> | 4 5 | GPIO2 -LED3; -----------;; ========================================== ============================================; Historie revizí a poznámky:; Počáteční záhlaví V1.0, kód 5/19/09;;; (C) 5/2009; Tento kód lze použít k osobnímu učení/aplikaci/úpravám.; Jakékoli použití tohoto kódu v komerčních produktech porušuje toto bezplatné vydání..; ------------------------------------------------ -------------------------------#include P12C672. INC; ============== ======================================================================== =================; Definuje; ------------------------------------------------ -------------------------------; ==================== ======================================================================== ============; Data;------------------------------------------------ -------------------------------; Proměnné pro udržování času počet 1 ekv. ======================================================================= ===; Resetovat vektory;; ZKONTROLUJTE KONFIGURACI. Kousky PŘED SPÁLENÍM !!!; INTOSC; MCLR: POVOLENO; PWRUP: POVOLENO; VŠECHNY DALŠÍ: ZAKÁZAT !!;; ------------------------------------------ ------------------------------------- RESET_ADDR EQU 0x00 org RESET_ADDR začít; ===== ======================================================================== =========================; Začněte zde! ---------------------------------------------- ---------------------------------Start; Konfigurace I/O portů bcf STATUS, RP1 bsf STATUS, RP0 movlw h'08 '; RA výstupy, PGIO3 vždy vstup tris GPIO movlw h'07'; Nastavte GPIO na digitální režim movwf ADCON1; Nastavit interní časovač movlw h'CF '; Tmr0 Interní zdroj, předvolba TMR0 1: 256 movwf OPTION_REG movlw h'00 'movwf INTCON; Zakázat přerušení TMR0, bcf STATUS, RP0; Inicializovat registry clrf GPIO clrf count1 clrf count2 movlw 045h movwf Randlo movlw 030h movwf Randhi; počkejte 1 s. volání debounce; 0,2 s debounce hovoru debounce call debounce call debounce; ============================================== =========================================; Hlavní;------------------------------------------------ ------------------------------- hlavní hovor twosec; 2 s min mezi každou akcí 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ýběr xorlw 0x00; 0? btfsc STAV, Z přejít na flash1; Ano. Volejte 0. movfw rand xorlw 0x01; 1? btfsc STAV, Z přejít na flash2; Ano. Volejte 1. movfw rand xorlw 0x02; 2? btfsc STAV, Z přejít na flash3; Ano. Volejte 2. movfw rand xorlw 0x03; 3? btfsc STATUS, Z přejít na flashall; Ano. Volejte 3. movfw rand xorlw 0x04; 4? btfsc STATUS, Z goto movels; Ano. Volejte 4. movfw rand xorlw 0x05; 5? btfsc STATUS, Z goto movell; Ano. Volejte 5. movfw rand xorlw 0x06; 6? btfsc STATUS, Z přesouváky; Ano. Volejte 6. movfw rand xorlw 0x07; 7? btfsc STATUS, Z goto moverl; Ano. Volejte 7. movfw rand xorlw 0x08; 8? btfsc STATUS, Z goto moveburst; Ano. Volejte 8. movfw rand xorlw 0x09; 9? btfsc STATUS, Z goto Wait1; Ano. Volejte 9. movfw rand xorlw 0x0A; A? btfsc STATUS, Z goto Wait2; Ano. Volejte Ath movfw rand xorlw 0x0B; B? btfsc STATUS, Z goto Wait3; Ano. Volejte Bth, nic neprovádějte; 1/4 času, nedělejte nic po dobu 10 sekund. 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 hovorů s odskakováním hovorů bounc bcf GPIO, 4 hlavní přesuny bcf GPIO, 4 bsf GPIO, 5 hovorů s odskakováním bcf GPIO, 5 goto mainmoverl bcf GPIO, 4 bsf GPIO, 5 hovorů s odskakováním hovorů bounce bcf GPIO, 5 goto mainmoveburst bcf GPIO, 4 bsf GPIO, 5 odchozích hovorů; pohyb vpravo 3 krát, krátké výbuchy. 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; pohyb 3krát doleva, krátké výboje. 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; Počkejte 1 sekundu movlw.255; Zpoždění pro 2/10 sekundový debounce. movwf count2 volání pon_wait movlw, 255; Zpoždění pro 2/10 sekundový debounce. movwf count2 volání pon_wait movlw, 255; Zpoždění pro 2/10 sekundový debounce. movwf count2 volání pon_wait movlw, 255; Zpoždění pro 2/10 sekundový debounce. movwf count2 volání pon_wait movlw, 255; Zpoždění pro 2/10 sekundový debounce. movwf count2 volání pon_wait přejít na mainWait2; Počkejte 0,6 sekundy movlw.255; Zpoždění pro 2/10 sekundový debounce. movwf count2 volání pon_wait movlw, 255; Zpoždění pro 2/10 sekundový debounce. movwf count2 volání pon_wait movlw, 255; Zpoždění pro 2/10 sekundový debounce. movwf count2 call pon_wait goto mainWait3; Počkejte 4 sekundy, zavolejte twosec, zavolejte twosec, přejděte k hlavnímu, nic nepřejde.50; Zpoždění po dobu 10 sekund Celkový počet pohybů3 nic_smyčka movlw, 255; Zpoždění pro 2/10 sekundový debounce. movwf count2 call pon_wait decfsz count3, F goto nothing_loop goto main; =========================================== ============================================; 2 sekundy čekání; ---------------------------------------------- --------------------------------- twosec movlw, 10; Zpoždění na 2 sekundy Celkový počet pohybů3twosec_loop movlw, 255; Zpoždění pro 2/10 sekundový debounce. movwf count2 call pon_wait decfsz count3, F go twosec_loopreturn; ============================================== ===========================================; Signál odskoku; 4 cykly k načtení a volání, 2 cykly k návratu.; 4Mhz Tc:: count2 = 255-> 0,2 s; -------------------------------------- ----------------------------------------- debounce movlw.127; Zpoždění pro odskoky 1/10 sekundy. movwf count2 volání pon_wait návrat; -------------------------------------------- -----------------------------------; count1 = 255d:: 775 cyklů do 0, + 3 cykly pro návrat; --------------------------------- ---------------------------------------------- pon_waitbig_loopS movlw.255 movwf count1short_loopS decfsz count1, F goto short_loopS decfsz count2, F goto big_loopSreturnend

Krok 3: Díly

Díly
Díly

Tento obrázek ukazuje, jak malé jsem musel dostat komponenty, aby se vešly pod toho chlapíka. 1 8pinový mikročip (PIC) 3 SMT LED diody (modrá, červená, bílá) 1 motor z vnitřní mikro heli 1 baterie LIPO ze stejné heli. 1 vypínač 1 dřevěná hmoždinka 2,5 mm (2 palce dlouhá) 2 magnety vzácných zemin 1 mm

Krok 4: Stavět

Stavět
Stavět

Nejprve bylo nalezeno těžiště celé věci. To by byla oblast pro uchycení motoru. Motor byl namontován pomocí goopu zvaného Greenstuff (používá se ve světě miniatur). 3 LED diody byly předem zapojeny. Mikro byl přilepený v oblasti mimo cestu, ne příliš blízko okraje. Vypínač a baterie byly namontovány tak, aby kompenzovaly (malou) hmotnost mikro, aby udržely rovnováhu. Dráty byly připájeny. Opravdu chladná část je na řadě. Lepidlo na špičce ozubeného kola rotoru na motoru (to by směřovalo dolů později) byl namontován magnet vzácných zemin. Do otvoru o průměru 5 mm hlubokého 1 mm byla vyvrtána (pomocí ruky a bitu) krátká (~ 2 ) dřevěná hmoždinka o průměru 2,5 mm. Do tohoto otvoru byl nalepen další 1 mm magnet vzácných zemin. Nyní je moje základna obrázku magnetická spojený s rotorem motoru. Když se motor otáčí, od středu rovnováhy otočí celou horní část obrázku. Na zakrytí motoru a dřevěné hmoždinky byla nastříhána červená sláma. Toto bylo předem změřeno před tím, než byla dřevěná hmoždinka namontován, aby bylo zajištěno, že odpovídá. Výstup baterie LIPO aktuálně ukazuje 3,4 V bez dobíjení. To stačí k roztočení motoru a rozsvícení LED diod, ale s postavou namontovanou na základně se točí samo. Moje další verze bude pro větší výkon použijte 12 V dálkovou baterii s 5 V regulátorem!

Doporučuje: