Sadržaj:

Warhammer čarobnjak na disku s magnetno spojenim motorom i LED diodama: 4 koraka
Warhammer čarobnjak na disku s magnetno spojenim motorom i LED diodama: 4 koraka

Video: Warhammer čarobnjak na disku s magnetno spojenim motorom i LED diodama: 4 koraka

Video: Warhammer čarobnjak na disku s magnetno spojenim motorom i LED diodama: 4 koraka
Video: Dungeons & Dragons: я открываю коробку с 30 пакетами расширения Magic The Gathering 2024, Studeni
Anonim
Warhammer čarobnjak na disku s magnetno spojenim motorom i LED diodama
Warhammer čarobnjak na disku s magnetno spojenim motorom i LED diodama

Želite li svojim umjetničkim projektima dodati malo PIZZAZZ -a? Motori i LED diode su pravi put!

Jeste li ljubitelj igara Warhammer? Ovo je za vas! Ovo je moj Tzeentch Sorcerer Lord na disku, revidiran s dodane 3 LED diode, motorom, mikro (PIC) i malom baterijom. Ovo uputstvo pokriva dovršenu izgradnju i probleme.

Korak 1: Krug

Krug
Krug

Prvo, možda se pitate što je ovo. Ovo je moja minijatura izrađena po mjeri za stolnu ratnu igru Warhammer. Tip na vrhu je običan model od proizvođača igre (Gamesworkshop), ali disk i baza su svi moji. Konstrukcija za njega je predmet još jednog uputstva, pa neću ovdje ulaziti u to. KrugOsnovna ideja ovdje je bila uzeti mali, 8 -polni mikro za upravljanje s 3 LED i motorom, sa što manjim napajanjem. Korištenje "ruku pomoći", kao i uvijek, dobra je ideja. Ove stvari imaju dvije kopče za držanje onoga na čemu radite. Nije potrebna nikakva shema jer je imperacija vrlo jednostavna; 8 -pinski mikro (Microchip PIC) s 3 izlazna pina ide ravno na LED, a 2 izlazna pina idu na 1 motor. Led -ovi koji se koriste su plavi, bijeli i crveni površinski nosač. Upotrijebljeni motor je izvađen iz polomljenog mikro helikoptera u zatvorenom prostoru. Baterija (mali Lipo) također je izvađena iz heli helikoptera, ali već planiram koristiti drugi izvor za više napajanje. Dodana je sklopka za uključivanje/isključivanje.

Korak 2: Kodiranje

Kodirati
Kodirati

Kôd za PIC napravljen je radi optimizacije trajanja baterije i korištenja mnogih slučajnih "događaja". Kako bi baterija trajala što dulje, sklop je morao koristiti najmanju moguću količinu energije koju sam mogao zamisliti, a da ideja ostane živa. Stoga sam odlučio smanjiti početnu aktivnost na prosječno 1 LED bljeskalicu ili pokret motora svakih 6 sekundi. Kôd ima 12 slučajnih "aktivnosti", u rasponu od 1 uključene LED diode, uključivanja motora za različita vremenska razdoblja ili smjerove, do slučajnog stanja čekanja. Događaji se razlikuju od 3 sekunde do razmaka od više od 40 sekundi, ovisno o generiranom slučajnom događaju. CODE; ============================= ==================================================; Kontroler diska;; -----------; Vcc-> | 1 8 | <-Vss; MGPIO5 | 2 7 | GPIO0 -LED1; MGPIO4 | 3 6 | GPIO1 -LED2; GPIO3-> | 4 5 | GPIO2 -LED3; -----------;; ======================================= ==========================================; Povijest revizije i bilješke:; V1.0 Početno zaglavlje, Kod 5/19/09;;; (C) 5/2009; Ovaj kôd se može koristiti za osobno učenje/primjenu/izmjenu.; Svaka upotreba ovog koda u komercijalnim proizvodima krši ovo besplatno izdanje.; Za pitanja/komentare kontaktirajte dot mage na yahoo dot com.; ------------------------------------------------ -------------------------------#uključuje P12C672. INC; ============= ================================================== ================; Definira; ------------------------------------------------ -------------------------------; ================== ================================================== ===========; Podaci;------------------------------------------------ -------------------------------; Varijable zadržavanja vremena count1 equ 20 count2 equ 21 delay equ 22Randlo equ 23Randhi equ 24Wtemp equ 25Temp2 equ 26rand equ 27count3 equ 28; ========================== ================================================== ===; Poništi vektore;; PROVJERITE KONFIG. BITOVI PRIJE PALJENJA !!!; INTOSC; MCLR: Omogućeno; PWRUP: Omogućeno; SVI OSTALI: NEMOGUĆI !!;; ------------------------------------------ ------------------------------------- RESET_ADDR EQU 0x00 org RESET_ADDR goto start; ===== ================================================== ========================; Započni ovdje!;---------------------------------------------- ---------------------------------početak; Konfiguriranje I/O portova bcf STATUS, RP1 bsf STATUS, RP0 movlw h'08 '; RA izlazi, PGIO3 uvijek ulaze tris GPIO movlw h'07'; Postavite GPIO na Digitalni način movwf ADCON1; Postavi unutarnji timer movlw h'CF '; Tmr0 Interni izvor, predmjer TMR0 1: 256 movwf OPTION_REG movlw h'00 'movwf INTCON; Onemogući TMR0 prekide, bcf STATUS, RP0; Inicijalizacija registra clrf GPIO clrf count1 clrf count2 movlw 045h movwf Randlo movlw 030h movwf Randhi; pričekajte 1 sek. poziv debounce; 0,2 sekunde poziv debounce poziv debounce poziv debounce poziv debounce; ========================================= ========================================; Glavni;------------------------------------------------ ------------------------------- glavni poziv dvije sekunde; 2 sekunde min između svake radnje 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; traka nasumično 16 do 7 ilw 0x0F movwf rand; nasumični rutinski odabir xorlw 0x00; 0? btfsc STATUS, Z goto flash1; Da. Nazovi 0 -ti movfw rand xorlw 0x01; 1? btfsc STATUS, Z goto flash2; Da. Nazovi 1. movfw rand xorlw 0x02; 2? btfsc STATUS, Z goto flash3; Da. Nazovite 2. movfw rand xorlw 0x03; 3? btfsc STATUS, Z goto flashall; Da. Nazovite 3. movfw rand xorlw 0x04; 4? btfsc STATUS, Z goto moves; Da. Nazovi 4. movfw rand xorlw 0x05; 5? btfsc STATUS, Z goto movell; Da. Nazovi 5. movfw rand xorlw 0x06; 6? btfsc STATUS, Z goto pokretači; Da. Nazovite 6. movfw rand xorlw 0x07; 7? btfsc STATUS, Z goto moverl; Da. Nazovite 7. movfw rand xorlw 0x08; 8? btfsc STATUS, Z goto moveburst; Da. Nazovite 8. movfw rand xorlw 0x09; 9? btfsc STATUS, Z goto Wait1; Da. Nazovite 9. movfw rand xorlw 0x0A; A? btfsc STATUS, Z goto Wait2; Da. Nazovite Ath movfw rand xorlw 0x0B; B? btfsc STATUS, Z goto Wait3; Da. Pozovi Bth da ne ide ništa; 1/4 vremena, ne radite ništa 10 sekundi. Bljeskalica1 bsf GPIO, 0 odbijanja poziva bcf GPIO, 0 goto mainflash2 bsf GPIO, 1 otkazivanje poziva bcf GPIO, 1 goto mainflash3 bsf GPIO, 2 odbijanja poziva bcf GPIO, 2 goto mainflashall bsf GPIO, 0 bsf GPIO, 1 bsf GPIO, 2 poziva debounce poziva debounce bcf GPIO, 0 bcf GPIO, 1 bcf GPIO, 2 goto mainmovels bsf GPIO, 4 bcf GPIO, 5 poziva debounce bcf GPIO, 4 goto mainmovell bsf GPIO, 4 bcf GPIO, 5 poziva debounce poziva 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, 5 4 bsf GPIO, 5 odbijanja poziva; pomaknite se desno 3 puta, kratki rafali. bcf GPIO, 5 poziva 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; pomaknite se lijevo 3 puta, kratki rafali. bcf GPIO, 5 poziva 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 call goto mainWait1; Pričekajte 1 sekundu pokret.255; Odgoda za 2/10 sekunde debounce. movwf count2 poziv pon_wait movlw.255; Odgoda za 2/10 sekunde debounce. movwf count2 poziv pon_wait movlw.255; Odgoda za 2/10 sekunde debounce. movwf count2 poziv pon_wait movlw.255; Odgoda za 2/10 sekunde debounce. movwf count2 poziv pon_wait movlw.255; Odgoda za 2/10 sekunde debounce. movwf count2 poziv pon_wait goto mainWait2; Pričekajte 0,6 sekundi, movlw.255; Odgoda za 2/10 sekunde debounce. movwf count2 poziv pon_wait movlw.255; Odgoda za 2/10 sekunde debounce. movwf count2 poziv pon_wait movlw.255; Odgoda za 2/10 sekunde debounce. movwf count2 poziv pon_wait goto mainWait3; Pričekajte 4 sekunde poziv twosec poziv twosec goto mainnothing movlw.50; Odgoda 10 sekundi Ukupno movwf count3nothing_loop movlw, 255; Odgoda za 2/10 sekunde debounce. movwf count2 poziv pon_wait decfsz count3, F idite na nothing_loop goto main; ===================================== ==========================================; 2 sekunde čekanja; ---------------------------------------------- --------------------------------- dvije sekunde movlw.10; Odgoda 2 sekunde Ukupno movwf count3twosec_loop movlw, 255; Odgoda za 2/10 sekunde debounce. movwf count2 poziv pon_wait decfsz count3, F idite na twosec_loopreturn; ======================================= ========================================; Debounce signal; 4 ciklusa za učitavanje i pozivanje, 2 ciklusa za povratak.; 4 Mhz Tc:: count2 = 255-> 0,2 sek; -------------------------------------- ----------------------------------------- debounce movlw.127; Odgoda za 1/10 sekunde debounce. movwf count2 poziv pon_wait return; -------------------------------------------- -----------------------------------; count1 = 255d:: 775 ciklusa do 0, + 3 ciklusa za povratak.; --------------------------------- ---------------------------------------------- pon_waitbig_loopS movlw.255 movwf count1short_loopS decfsz count1, F goto short_loopS decfsz count2, F goto big_loopSreturnend

Korak 3: Dijelovi

Dijelovi
Dijelovi

Ova slika prikazuje koliko sam malene morao staviti komponente da stanu ispod ovog tipa.1 8-pinski mikročip (PIC) 3 SMT LED diode (plava, crvena, bijela) 1 motor iz mikrohelije u zatvorenom prostoru.1 LIPO baterija iz iste heli heli. 1 prekidač za napajanje1 2,5 mm drveni tipla (2 duga) 2 1 mm magneti za rijetke zemlje

Korak 4: Izgradite

Izgraditi
Izgraditi

Prvo je pronađeno središte mase za cijelu stvar. To bi bilo područje za postavljanje motora. Motor je montiran pomoću obruča nazvanog Greenstuff (koristi se u svijetu minijatura). Tri LED diode su bile unaprijed ožičene. Mikro je superljepljeno u izvan puta, ne previše blizu ruba. Prekidač za napajanje i baterija montirani su kako bi nadoknadili (malu) težinu mikro uređaja, kako bi se održala ravnoteža. Žice su bile zalemljene. Slijedi stvarno hladan dio. Superljepilo na vrhu zupčanika rotora na motoru (ovo će kasnije biti okrenuto prema dolje) postavljen je magnet za rijetke zemlje. Kratka (~ 2 ) drvena tipla promjera 2,5 izbušena je (rukom i nastavkom) za rupu promjera 1 mm duboku 5 mm. U ovu rupu zalijepljen je još jedan magnet od rijetke zemlje od 1 mm. Sada je moja baza za figuru magnetna spojen s rotorom motora. Kad se motor okreće, iz središta ravnoteže, okreće cijeli gornji dio figure. Odrezana je crvena slama koja je prekrila motor i drveni klin. To je prethodno izmjereno prije nego što je drveni klin montiran, kako bi se osiguralo njegovo slaganje. Izlaz baterije LIPO trenutno očitava 3,4 V bez punjenja. To je dovoljno za okretanje motora i paljenje LED dioda, ali s figurom postavljenom na podnožje, ne okreće se sama. Moja sljedeća verzija će koristite 12V daljinsku bateriju s 5V regulatorom za više snage!

Preporučeni: