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, Juli
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 dodati malo PIZZAZZ -a svojim umjetničkim projektima? Motori i LED diode su pravi način!

Jeste li ljubitelj igara Warhammer -a? 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 šta je ovo. Ovo je moja minijatura izrađena po mjeri za stolnu ratnu igru koja se zove 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 -pinski mikro za upravljanje sa 3 LED diode i motorom, sa što manjim napajanjem. Upotreba "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) sa 3 izlazna pina ide direktno na LED diode, a 2 izlazna pina idu na 1 motor. Led -ovi koji se koriste su plavi, bijeli i crveni površinski nosači. Korišteni motor je izvađen iz pokvarenog mikro helikoptera za zatvorene prostore. Baterija (mali Lipo) je također iščupana iz heli helikoptera, ali već planiram koristiti drugi izvor za više napajanje. Dodato je prekidač za uključivanje/isključivanje.

Korak 2: Kodirajte

Kod
Kod

Kôd za PIC napravljen je radi optimizacije trajanja baterije i korištenja mnogih nasumičnih "događaja". Da bi baterija trajala što je moguće duže, krug 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 nasumičnih "aktivnosti", u rasponu od 1 uključene LED diode, uključivanja motora za različite vremenske periode 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; ============================= ==================================================; Disc Controller;; -----------; Vcc-> | 1 8 | <-Vss; MGPIO5 | 2 7 | GPIO0 -LED1; MGPIO4 | 3 6 | GPIO1 -LED2; GPIO3-> | 4 5 | GPIO2 -LED3; -----------;; ======================================= ==========================================; Istorija revizija i bilješke:; V1.0 Početno zaglavlje, Kod 5/19/09;;; (C) 5/2009; Ovaj kôd se može koristiti za lično 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; ============= ================================================== ================; Definiše; ------------------------------------------------ -------------------------------; ================== ================================================== ===========; 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; ========================== ================================================== ===; Reset Vectors;; PROVJERITE KONFIG. BITOVI PRIJE PALJENJA !!!; INTOSC; MCLR: ENABLED; PWRUP: ENABLED; SVI OSTALI: NEMOGUĆI !!;; ------------------------------------------ ------------------------------------- RESET_ADDR EQU 0x00 org RESET_ADDR goto start; ===== ================================================== ========================; Počni ovdje!;---------------------------------------------- --------------------------------- početak; Konfiguriranje I/O portova bcf STATUS, RP1 bsf STATUS, RP0 movlw h'08 '; RA izlazi, PGIO3 uvijek unosi tris GPIO movlw h'07'; Postavite GPIO na Digitalni način movwf ADCON1; Postavi interni tajmer 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; Pokreni registre clrf GPIO clrf count1 clrf count2 movlw 045h movwf Randlo movlw 030h movwf Randhi; pričekajte 1 sek. call debounce; 0,2 sekunde debounce call debounce call debounce call debounce; ======================================= ========================================; Glavni; ------------------------------------------------ ------------------------------- glavni poziv twosec; 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; strip nasumično 16 do 7 ilw 0x0F movwf rand; nasumični rutinski odabir xorlw 0x00; 0? btfsc STATUS, Z goto flash1; Da. Pozovi 0. movfw rand xorlw 0x01; 1? btfsc STATUS, Z goto flash2; Da. Poziv 1. movfw rand xorlw 0x02; 2? btfsc STATUS, Z goto flash3; Da. Poziv 2. movfw rand xorlw 0x03; 3? btfsc STATUS, Z goto flashall; Da. Poziv 3. movfw rand xorlw 0x04; 4? btfsc STATUS, Z goto moves; Da. Poziv 4. movfw rand xorlw 0x05; 5? btfsc STATUS, Z goto movell; Da. Poziv 5. movfw rand xorlw 0x06; 6? btfsc STATUS, Z goto pokretači; Da. Poziv 6. movfw rand xorlw 0x07; 7? btfsc STATUS, Z goto moverl; Da. Pozovi 7. movfw rand xorlw 0x08; 8? btfsc STATUS, Z goto moveburst; Da. Pozovite 8. movfw rand xorlw 0x09; 9? btfsc STATUS, Z idi na čekanje1; Da. Poziv 9. movfw rand xorlw 0x0A; A? btfsc STATUS, Z goto Wait2; Da. Pozovite 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.flash1 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 poziv 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 poziv debounce bcf GPIO, 5 goto mainmoveburst bcf GPIO, 5 4 bsf GPIO, odbijanje 5 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 poziv 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 poziv goto mainWait1; Pričekajte 1 sekundu 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 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; Sačekajte 4 sekunde poziv twosec poziv twosec goto mainnothing movlw.50; Odgoda za 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 pređite na glavni; ===================================== ==========================================; 2 sekunde čekanja; ---------------------------------------------- --------------------------------- dvosek movl.10; Odgoda za 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.; 4Mhz Tc:: count2 = 255-> 0,2 sec; -------------------------------------- ----------------------------------------- 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

Delovi
Delovi

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 iz zatvorenog prostora.1 LIPO baterija iz istog heli helikoptera. 1 prekidač za napajanje1 2,5 mm drveni tipla (2 duga) 2 1 mm magneti za rijetke zemlje

Korak 4: Izgradite

Build
Build

Prvo je pronađen centar mase za cijelu stvar. Ovo bi bilo područje za postavljanje motora. Motor je montiran pomoću obruča zvanog Greenstuff (koristi se u svijetu minijatura). Tri LED diode su bile unaprijed ožičene. Mikro mikro je superlijepljeno 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 zalemljene. Slijedi zaista cool dio. Super ljepilo 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 ovoj rupi je zalijepljen još jedan magnet od rijetke zemlje od 1 mm. Sada je moja baza za figuru magnetno spojen na rotor motora. Kada se motor okreće, iz svog središta ravnoteže, okreće cijeli gornji dio figure. Crvena slama je izrezana kako bi 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. Ovo je dovoljno za okretanje motora i paljenje LED dioda, ali s figurom postavljenom na podnožje, ona se ne okreće sama. Moja sljedeća verzija će koristite daljinsku bateriju od 12 V sa regulatorom 5 V za veću snagu!

Preporučuje se: