Բովանդակություն:

Warhammer Sorcerer- ը սկավառակի վրա `մագնիսական կցված շարժիչով և LED- ներով. 4 քայլ
Warhammer Sorcerer- ը սկավառակի վրա `մագնիսական կցված շարժիչով և LED- ներով. 4 քայլ

Video: Warhammer Sorcerer- ը սկավառակի վրա `մագնիսական կցված շարժիչով և LED- ներով. 4 քայլ

Video: Warhammer Sorcerer- ը սկավառակի վրա `մագնիսական կցված շարժիչով և LED- ներով. 4 քայլ
Video: ՊԱՏՄԱԿԱՆ ԸՆԴՀԱՆՈՒՐ ՊԱՏԵՐԱԶՄԻ ՄԱՀԸ 2024, Դեկտեմբեր
Anonim
Warhammer Sorcerer- ը սկավառակի վրա `մագնիսական կցված շարժիչով և LED- ներով
Warhammer Sorcerer- ը սկավառակի վրա `մագնիսական կցված շարժիչով և LED- ներով

Wantանկանու՞մ եք PIZZAZZ ավելացնել ձեր արվեստի նախագծերին: Շարժիչներն ու LED- ները ճանապարհ են:

Դուք Warhammer խաղերի սիրահար եք: Սա ձեզ համար! Սա իմ Tzeentch Sorcerer Lord- ն է սկավառակի վրա, որը վերանայված է ՝ ավելացնելով 3 LED, շարժիչ, միկրո (PIC) և փոքր մարտկոց: Այս հրահանգը ներառում է ավարտված կառուցվածքը և խնդիրները:

Քայլ 1: Շղթա

Շրջան
Շրջան

Նախ, դուք կարող եք մտածել, թե ինչ է սա: Սա իմ պատվերով պատրաստված մանրանկարչությունն է Warhammer կոչվող սեղանի սալիկի վրա: Վերևում գտնվող տղան սովորական մոդել է խաղ ստեղծողի կողմից (Gamesworkshop), բայց սկավառակը և հիմքը բոլորը իմն են: Նրա համար կառուցվածքը մեկ այլ ուսանելի թեմա է, ուստի ես դրան չեմ անդրադառնա: «Օգնական ձեռքերի» օգտագործումը, ինչպես միշտ, լավ գաղափար է: Այս իրերն ունեն երկու տեսահոլովակներ, որոնք կարող են պահել այն, ինչի վրա աշխատում եք: Ոչ մի սխեմատիկ կարիք չկար, քանի որ ենթադրումը շատ պարզ է. 8 պին միկրո (Microchip PIC), 3 ելքային կապումներով ուղիղ LED- ներ, և 2 ելքային կապում `1 շարժիչով:. LED- ները օգտագործվում են կապույտ, սպիտակ և կարմիր մակերևույթի ամրացման տեսակով: Օգտագործված շարժիչը պատռված էր փակ միկրո ուղղաթիռի մարտկոցից: Մարտկոցը (փոքր Lipo) նույնպես պատռված էր հելիից, բայց ես արդեն մտադիր եմ այլ աղբյուր օգտագործել: իշխանություն: Միացման/անջատման համար ավելացվել է անջատիչ:

Քայլ 2: Կոդ

Կոդ
Կոդ

PIC- ի ծածկագիրը ստեղծվել է մարտկոցի կյանքը օպտիմալացնելու և շատ պատահական «իրադարձություններ» օգտագործելու համար: Մարտկոցը հնարավորինս երկար աշխատելու համար միացումը պետք է օգտագործեր նվազագույն էներգիա, որը կարող էի պատկերացնել ՝ պահպանելով գաղափարը. Այսպիսով, ես որոշեցի նվազեցնել սկզբնական գործունեությունը միջինը 1 LED լուսարձակի կամ շարժիչի շարժման յուրաքանչյուր 6 վայրկյանը մեկ: Կոդն ունի 12 պատահական «գործունեություն» ՝ սկսած 1 լուսադիոդի միացումից, շարժիչը միացված տարբեր ժամանակաշրջաններում կամ ուղղություններով, մինչև պատահական սպասման վիճակ: Իրադարձությունները տարբերվում են 3 վայրկյանից մինչև ավելի քան 40 վայրկյան տարբերությամբ ՝ հիմնված պատահական իրադարձության վրա: Կոդ; =================================================== Սկավառակի վերահսկիչ; -----------; Vcc-> | 1 8 | <-Vss; MGPIO5 | 2 7 | GPIO0 -LED1; MGPIO4 | 3 6 | GPIO1 -LED2; GPIO3-> | 4 5 | GPIO2 -LED3; -----------;; ====================================== ===========================================; Վերանայման պատմություն և նշումներ.; V1.0 Սկզբնական վերնագիր, ծածկագիր 5/19/09;;; (C) 5/2009; Այս ծածկագիրը կարող է օգտագործվել անձնական ուսուցման/կիրառման/փոփոխման համար:.; ---------------------------------------------------- -----------------------------------#ներառում է P12C672. INC; ============= =================================================== =================; Սահմանում է; ---------------------------------------------------- -----------------------------------; ================= ================================================== ============; Տվյալներ; ---------------------------------------------------- -----------------------------------; Keepingամանակի պահպանում փոփոխականներհաշվարկ 1 հավասար է 20 հաշվարկի 2 հավասար է 21 հետաձգման հավասար է 22 Ռանդլոյի հավասար է 23 Ռանդիի հավասար է 24 tամանակի հավասար է 25Temp2 հավասար է 26 և հավասար է 27 է հաշվում է 3 հավասար է 28; =================================================== ===; Վերականգնել վեկտորները;; ՍՏԵԵՔ ԿԱՐԳԱՎՈՐՈՄԸ: ԿԵՏԵՐ ԱՌԱOREԻՆ !!! INTOSC; MCLR: ԱՆՎԱՐ; PWRUP: ԱՆՎBԱՐ; ԲՈԼՈՐ ՄՅՈՍՆԵՐԸ ՝ ԱՆISԱՆ !!;; ----------------------------------------- RESET_ADDR EQU 0x00 org RESET_ADDR սկսեց սկսել; ===== =================================================== =========================; Սկսիր այստեղ!;---------------------------------------------- ------------------------------------ սկիզբ; Կարգավորել I/O նավահանգիստները bcf STATUS, RP1 bsf STATUS, RP0 movlw h'08 '; RA ելքեր, PGIO3 միշտ մուտքագրում tris GPIO movlw h'07'; Սահմանել GPIO- ն թվային ռեժիմի movwf ADCON1; Ներքին ժամաչափի տեղադրում movlw h'CF '; Tmr0 Ներքին աղբյուր, նախնական մասշտաբով TMR0 1: 256 movwf OPTION_REG movlw h'00 'movwf INTCON; Անջատել TMR0 ընդհատումները, bcf STATUS, RP0; Սկզբնականացնել գրանցամատյանները clrf GPIO clrf count1 clrf count2 movlw 045h movwf Randlo movlw 030h movwf Ռանդի; սպասել 1 վրկ: զանգի հերքում; 0.2 վրկ զանգի դեբունս զանգի դեբունս զանգի դեբոնս զանգի դեբունս; ======================================= ==========================================; Հիմնական; ---------------------------------------------------- ------------------------------- հիմնական զանգ twosec; 2 վայրկյան րոպե յուրաքանչյուր գործողության միջև 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; պատահական ժապավեն 16 -ից մինչև 7 andlw 0x0F movwf rand; պատահական սովորական ընտրություն xorlw 0x00; 0? btfsc STATUS, Z goto flash1; Այո Callանգահարեք 0 -րդ movfw rand xorlw 0x01; 1? btfsc STATUS, Z goto flash2; Այո Callանգահարեք 1 -ին movfw rand xorlw 0x02; 2? btfsc STATUS, Z goto flash3; Այո Callանգահարեք 2 -րդ movfw rand xorlw 0x03; 3? btfsc STATUS, Z goto flashall; Այո Callանգահարեք 3 -րդ movfw rand xorlw 0x04; 4? btfsc STATUS, Z goto movels; Այո Callանգահարեք 4 -րդ movfw rand xorlw 0x05; 5? btfsc STATUS, Z goto movell; Այո Callանգահարեք 5 -րդ movfw rand xorlw 0x06; 6? btfsc STATUS, Z goto movers; Այո Callանգահարեք 6 -րդ movfw rand xorlw 0x07; 7? btfsc STATUS, Z goto moverl; Այո Callանգահարեք 7 -րդ movfw rand xorlw 0x08; 8? btfsc STATUS, Z goto moveburst; Այո Callանգահարեք 8 -րդ movfw rand xorlw 0x09; 9? btfsc STATUS, Z goto Wait1; Այո Callանգահարեք 9 -րդ movfw rand xorlw 0x0A; Ա? btfsc STATUS, Z goto Wait2; Այո Callանգահարեք Ath movfw rand xorlw 0x0B; Բ? btfsc STATUS, Z goto Wait3; Այո Callանգահարեք Bth- ին ոչինչ չստացվեց. 1/ամանակի 1/4, ոչինչ մի արեք 10 վայրկյանում: ֆլեշ 1 bsf GPIO, 0 զանգի հեռացում bcf GPIO, 0 goto mainflash2 bsf GPIO, 1 զանգի դեբունս bcf GPIO, 1 goto mainflash3 bsf GPIO, 2 զանգի դուրսգրում bcf GPIO, 2 goto mainflashall bsf GPIO, 0 bsf GPIO, 1 bsf GPIO, 2 զանգերի բացում GPIO, 5 զանգերի դուրսբերում 4 bsf GPIO, 5 զանգի վերադարձ; շարժվել աջ 3 անգամ, կարճ պոռթկումներ: bcf GPIO, 5 զանգերի դուրսբերման կանչերի բացում bsf GPIO, 5 զանգերի դեբոնսային զանգերի բացում bcf GPIO, 5 զանգերի դեբոնսային զանգերի բացում bsf GPIO, 5 զանգերի հեռացում bcf GPIO, 5 զանգերի դեբոնսինգի զանգեր շարժվել 3 անգամ ձախ, կարճ պոռթկումներ: bcf GPIO, 5 զանգերի դեբոնս զանգերի դեբունս bcf GPIO, 4 զանգերի դուրսբերում; Սպասեք 1 վայրկյան movlw.255; Հետաձգում 2/10 վայրկյան դեբունսի համար: movwf count2 զանգահարել pon_wait movlw.255; Հետաձգում 2/10 վայրկյան դեբունսի համար: movwf count2 զանգահարել pon_wait movlw.255; Հետաձգում 2/10 վայրկյան դեբունսի համար: movwf count2 զանգահարել pon_wait movlw.255; Հետաձգում 2/10 վայրկյան դեբունսի համար: movwf count2 զանգահարել pon_wait movlw.255; Հետաձգում 2/10 վայրկյան դեբունսի համար: movwf count2 զանգահարել pon_wait goto mainWait2; Սպասեք 0,6 վայրկյան movlw.255; Հետաձգում 2/10 վայրկյան դեբունսի համար: movwf count2 զանգահարել pon_wait movlw.255; Հետաձգում 2/10 վայրկյան դեբունսի համար: movwf count2 զանգահարել pon_wait movlw.255; Հետաձգում 2/10 վայրկյան դեբունսի համար: movwf count2 զանգահարել pon_wait goto mainWait3; Սպասեք 4 վայրկյան զանգահարեք twosec զանգին twosec goto mainnothing movlw.50; Հետաձգում 10 վայրկյան Ընդհանուր movwf count3nothing_loop movlw.255; Հետաձգում 2/10 վայրկյան դեբունսի համար: movwf count2 զանգահարել pon_wait decfsz count3, F goto something_loop goto main; ==================================== ===========================================; 2 վայրկյան սպասում; -------------------------------------------------- ------------------------------------- twosec movlw.10; Հետաձգում 2 վայրկյան Ընդամենը movwf count3twosec_loop movlw.255; Հետաձգում 2/10 վայրկյան դեբունսի համար: movwf count2 զանգահարել pon_wait decfsz count3, F goto twosec_loopreturn; ======================================= ==========================================; Դեբունսի ազդանշան; Բեռնման և զանգի 4 ցիկլ, վերադառնալու 2 ցիկլ; 4 ՄՀց Tc:: հաշվարկ 2 = 255-> 0.2 վրկ; ------------------------------------------ -------------------------------------------- դեբոնս շարժական.127; Ուշացում 1/10 վայրկյան դեբունսի համար: movwf count2 զանգահարել pon_wait վերադառնալ; -------------------------------------------- ---------------------------------------; հաշվել 1 = 255 դ:: 775 ցիկլ 0-ից, + 3 ցիկլ `վերադառնալ; ------------------------------------- -------------------------------------------------- pon_waitbig_loopS movlw.255 movwf count1short_loopS decfsz count1, F goto short_loopS decfsz count2, F goto big_loopSreturnend

Քայլ 3: Մասեր

Մասեր
Մասեր

Այս նկարը ցույց է տալիս, թե որքան փոքր պետք է լինեի, որպեսզի բաղադրիչներն այս տղայի տակ տեղավորվեին: 1 հոսանքի անջատիչ 1 2,5 մմ փայտե աշտարակ (2 երկարությամբ) 2 1 մմ հազվագյուտ մագնիսներ

Քայլ 4: Կառուցեք

Կառուցել
Կառուցել

Սկզբում հայտնաբերվեց զանգվածի կենտրոն ամբողջ բանի համար: Սա կլինի շարժիչի տեղադրման տարածքը: Շարժիչը տեղադրված էր Greenstuff կոչվող գորշի միջոցով (օգտագործվում է մանրանկարչության աշխարհում): 3 LED- ները նախապես միացված էին: Միկրոյը սոսնձված էր շեղվող տարածքում, ծայրին ոչ շատ մոտ: Էլեկտրաէներգիայի անջատիչը և մարտկոցը տեղադրված էին միկրո (փոքր) քաշը փոխհատուցելու համար, հավասարակշռությունը պահպանելու համար: Հաղորդալարերը կպցվեցին: Հաջորդը իսկապես զով մասն է: Շարժիչի ռոտորային հանդերձանքի ծայրին (սա հետագայում դեպի ներքև կդրվի) գերլարվեց հազվագյուտ մագնիսը: 2,5 մմ տրամագծով կարճ փայտե գավազան (ձեռքով և բիտով) 5 մմ խորությամբ 1 մմ տրամագծով անցքի համար փորված էր: Այս փոսում սոսնձված էր ևս 1 մմ հազվագյուտ մագնիս: Այժմ ֆիգուրի իմ հիմքը մագնիսական է: շարժիչի ռոտորին զուգահեռ: Երբ շարժիչը պտտվում է, հավասարակշռության կենտրոնից, պտտվում է գործչի ամբողջ վերին հատվածը: Կարմիր ծղոտը կտրված էր `ծածկելու շարժիչը և փայտե գամասեղը: տեղադրված, ապահովելու համար, որ այն համապատասխանի: LIPO մարտկոցի ելքը ներկայումս կարդում է 3.4 Վ առանց լիցքավորման: Սա բավական է շարժիչը պտտելու և LED- ները լուսավորելու համար, սակայն հիմքի վրա տեղադրված գործիչով այն ինքն իրեն չի պտտվում: Իմ հաջորդ տարբերակը ավելի շատ էներգիայի համար օգտագործեք 12 Վ հեռավոր մարտկոց ՝ 5 Վ կարգավորիչով:

Խորհուրդ ենք տալիս: