Სარჩევი:

Warhammer Sorcerer დისკზე მაგნიტურად დაწყვილებული ძრავით და LED- ებით: 4 ნაბიჯი
Warhammer Sorcerer დისკზე მაგნიტურად დაწყვილებული ძრავით და LED- ებით: 4 ნაბიჯი

ვიდეო: Warhammer Sorcerer დისკზე მაგნიტურად დაწყვილებული ძრავით და LED- ებით: 4 ნაბიჯი

ვიდეო: Warhammer Sorcerer დისკზე მაგნიტურად დაწყვილებული ძრავით და LED- ებით: 4 ნაბიჯი
ვიდეო: The Shadow Sorcerer: d4 #95 2024, ნოემბერი
Anonim
ვორჰამერის ჯადოქარი დისკზე მაგნიტურად დაწყვილებული ძრავით და LED- ებით
ვორჰამერის ჯადოქარი დისკზე მაგნიტურად დაწყვილებული ძრავით და LED- ებით

გსურთ დაამატოთ PIZZAZZ თქვენს ხელოვნების პროექტებს? ძრავები და ები არის გზა!

ხართ Warhammer თამაშების მოყვარული? ეს შენთვისაა! ეს არის ჩემი Tzeentch Sorcerer Lord დისკზე, გადახედულია დამატებით 3 LED- ით, ძრავით, მიკრო (PIC) და მცირე ბატარეით. ეს ინსტრუქცია მოიცავს დასრულებულ მშენებლობას და საკითხებს.

ნაბიჯი 1: წრე

წრე
წრე

პირველ რიგში, თქვენ შეიძლება გაინტერესებთ რა არის ეს. ეს არის ჩემი მინიატურული მინიატურული მაგიდის მაგიდისთვის განკუთვნილი საბრძოლო თამაში Warhammer. ზედა ბიჭი არის რეგულარული მოდელი თამაშის შემქმნელისგან (Gamesworkshop), მაგრამ დისკი და ბაზა ჩემია. მისთვის აშენება არის სხვა საგანმანათლებლო საგანი, ასე რომ მე აქ არ შევალ. სქემა აქ ძირითადი იდეა იყო პატარა, 8 პინიანი მიკრო 3 LED- ების და ძრავის გასაკონტროლებლად, რაც შეიძლება მცირე მარაგით. "დამხმარე ხელების" გამოყენება, როგორც ყოველთვის, კარგი იდეაა. ამ ნივთებს აქვს ორი კლიპი, რომ შეინარჩუნოთ ის, რასაც მუშაობთ. არანაირი სქემატური საჭიროება არ იყო, რადგან გააზრება ძალიან მარტივია; 8 პინიანი მიკრო (მიკროჩიპის PIC) 3 გამომავალი ქინძისთავით პირდაპირ LED- ებზე და 2 გამომავალი ქინძისთავები 1 ძრავაზე. LED- ები გამოიყენება ლურჯი, თეთრი და წითელი ზედაპირის ტიპის. ძრავა გამოყენებული იყო გაფუჭებული შიდა მიკროელექტრონისგან. ბატარეა (პატარა ლიპო) ასევე ამოღებულია ჰელიდან, მაგრამ მე უკვე ვგეგმავ სხვა წყაროების გამოყენებას მეტისთვის ძალა. გადამრთველს დაემატა ჩართვა/გამორთვა.

ნაბიჯი 2: კოდი

კოდი
კოდი

PIC– ის კოდი გაკეთდა ბატარეის ოპტიმიზაციისთვის და მრავალი შემთხვევითი „მოვლენის“გამოსაყენებლად. იმისათვის, რომ ბატარეა რაც შეიძლება დიდხანს გაგრძელებულიყო, წრემ უნდა გამოეყენებინა ყველაზე ნაკლები ენერგია, რაც შემეძლო, იდეის შენარჩუნებისას რა ამრიგად, მე გადავწყვიტე საწყისი აქტივობა შევამცირო საშუალოდ 1 LED ნათურის ან ძრავის მოძრაობა ყოველ 6 წამში. კოდს აქვს 12 შემთხვევითი "აქტივობა", დაწყებული 1 LED- ის ჩართვიდან, ძრავა ჩართული სხვადასხვა დროის მონაკვეთში ან მიმართულებით, შემთხვევითი ლოდინის მდგომარეობამდე. მოვლენები განსხვავდება 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; ეს კოდი შეიძლება გამოყენებულ იქნას პირადი სწავლის/პროგრამის/მოდიფიკაციისათვის.; ამ კოდის ნებისმიერი გამოყენება კომერციულ პროდუქტებში არღვევს ამ უფასოდ გამოშვებას.; კითხვების/კომენტარებისათვის დაუკავშირდით yahoo dot com- ს.; ---------------------------------------------------- ----------------------------------#მოიცავს P12C672. INC; ============== ================================================== =================; განსაზღვრავს; ---------------------------------------------------- -----------------------------------; ================= ================================================== ============; მონაცემები; ---------------------------------------------------- -----------------------------------; დროის შენახვა ცვლადი 1 უდრის 20 რიცხვი 2 უდრის 21 უტოლდება რანდლო უდრის 23 რანდი უდრის 24 გრადუსს უტოლდება 25 დრო 2 უდრის 26 და უდრის 27 რიცხვს ითვლის 28 უდრის; ================================================== ===; ვექტორების გადატვირთვა;; შეამოწმეთ კონფიგურაცია. ნაკბენები დაწვის წინ !!!; INTOSC; MCLR: ჩართულია; PWRUP: ჩართულია; ყველა სხვა: შეზღუდული შესაძლებლობების მქონე;;; ------------------------------------------ ----------------------------------------- RESET_ADDR EQU 0x00 org RESET_ADDR დაიწყო დაწყება; ===== ================================================== ==========================; Დაიწყე აქ!;---------------------------------------------- --------------------------------- დაწყება; კონფიგურაცია I/O პორტები bcf STATUS, RP1 bsf STATUS, RP0 movlw h'08 '; RA შედეგები, PGIO3 ყოველთვის შეყვანილია 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; დიახ დარეკეთ მე –0 movfw rand xorlw 0x01; 1? btfsc STATUS, Z goto flash2; დიახ დარეკეთ 1 movfw rand xorlw 0x02; 2? btfsc STATUS, Z goto flash3; დიახ დარეკეთ მე –2 movfw rand xorlw 0x03; 3? btfsc STATUS, Z goto flashall; დიახ დარეკეთ მე –3 movfw rand xorlw 0x04; 4? btfsc STATUS, Z goto movels; დიახ დარეკეთ მე –4 movfw rand xorlw 0x05; 5? btfsc STATUS, Z goto movell; დიახ დარეკეთ მე –5 movfw rand xorlw 0x06; 6? btfsc STATUS, Z goto movers; დიახ დარეკეთ მე -6 movfw rand xorlw 0x07; 7? btfsc STATUS, Z goto moverl; დიახ დარეკეთ მე -7 movfw rand xorlw 0x08; 8? btfsc STATUS, Z goto moveburst; დიახ დარეკეთ მე -8 movfw rand xorlw 0x09; 9? btfsc STATUS, Z goto Wait1; დიახ დარეკეთ მე -9 movfw rand xorlw 0x0A; ა? btfsc STATUS, Z goto Wait2; დიახ დარეკეთ Ath movfw rand xorlw 0x0B; ბ? btfsc STATUS, Z goto Wait3; დიახ დარეკეთ Bth– ზე არაფერი; 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 ზარის განმუხტვის ზარის განმუხტვა 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, 5 ზარის განმუხტვა ზარის განმუხტვა bcf GPIO, 4 goto mainmovers bcf GPIO, 4 bsf GPIO, 5 ზარის განმუხტვა bcf GPIO, 5 goto mainmoverl bcf GPIO, 4 bsf GPIO, 5 call debounce call debounce bcf GPIO, 5 goto mainmove, 5 goto mainmove 4 bsf GPIO, 5 ზარის განმუხტვა; გადაადგილება მარჯვნივ 3 ჯერ, მოკლე გასროლა. bcf GPIO, 5 ზარის განმუხტვის ზარის განმუხტვა bsf GPIO, 5 ზარის განმუხტვის ზარის განმუხტვა bcf GPIO, 5 ზარის განმცხადებელი ზარის განმუხტვა bsf GPIO, 5 ზარის განმუხტვა bcf GPIO, 5 ზარის განმუხტვის ზარის განმუხტვის ზარის დენონსირება bsf GPIO, 4; გადაადგილება 3 ჯერ მარცხნივ, მოკლე აფეთქებები. bcf GPIO, 5 ზარის განმუხტვის ზარის განმუხტვა bcf GPIO, 4 ზარის განმუხტვის ზარის განმუხტვა bsf GPIO, 4 ზარის განმუხტვის ზარის განმუხტვა bcf GPIO, 4 ზარის განმცხადებელი ზარის განმცხადებელი bsf 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 Mhz Tc:: რაოდენობა 2 = 255-> 0.2 წამი; ------------------------------------------ --------------------------------------------- დენონსირება movlw.127; შეფერხება 1/10 წამიანი დებიუნით. movwf count2 დარეკეთ pon_ დაელოდეთ დაბრუნებას; ------------------------------------------------ ---------------------------------------; რაოდენობა 1 = 255d:: 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 8 პინიანი მიკროჩიპი (PIC) 3 SMT LED- ის (ლურჯი, წითელი, თეთრი) 1 ძრავა შიდა მიკრო ჰელიდან. 1 LIPO ბატარეა იმავე ჰელიდან. 1 დენის გადამრთველი 1 2.5 მმ ხის დუელი (2 სიგრძის) 2 1 მმ იშვიათი დედამიწის მაგნიტი

ნაბიჯი 4: აშენება

აშენება
აშენება

თავდაპირველად აღმოჩნდა მთლიანი მასის მასის ცენტრი. ეს იქნება საავტომობილო სამონტაჟო ტერიტორია. საავტომობილო იყო დამონტაჟებული გამოყენებით goop მოუწოდა Greenstuff (გამოიყენება მინიატურული სამყარო). 3 LED იყო prewired. მიკრო იყო superglued in out of way way, არც ისე ახლოს ზღვარზე. დენის გადამრთველი და ბატარეა დამონტაჟებული იყო მიკრო (მცირე) წონის კომპენსირების მიზნით, ბალანსის შესანარჩუნებლად. მავთულები გაიყიდა. მართლაც მაგარი ნაწილია შემდეგი. სუპერწებება ძრავის როტორული მექანიზმის წვერზე (ეს მოგვიანებით ქვემოთ იქნება) იშვიათი დედამიწის მაგნიტი იყო დამონტაჟებული. 2.5 დიამეტრის ხის დუელის მოკლე (~ 2 ) სიგრძე გაბურღული იყო (ხელით და ბიტით) 5 მმ სიღრმის 1 მმ დიამეტრის ხვრელისთვის. ამ ხვრელში კიდევ 1 მმ იშვიათი დედამიწის მაგნიტი იყო წებოვანი. ახლა, ფიგურის ჩემი საფუძველი მაგნიტურად არის ძრავის როტორთან ერთად. როდესაც საავტომობილო ტრიალებს, მისი ბალანსის ცენტრიდან, ის ბრუნავს ფიგურის მთელ ზედა ნაწილს. წითელი ჩალი მოჭრილი იყო საავტომობილო და ხის დუელის დასაფარავად. ეს იყო წინასწარ გაზომული სანამ ხის დუელი იყო დამონტაჟებულია, რათა უზრუნველყოს მისი თანხვედრა. LIPO ბატარეის გამომუშავება ამჟამად კითხულობს 3.4V- ს დატენვის გარეშე. ეს საკმარისია ძრავის დასატრიალებლად და LED- ების გასანათებლად, მაგრამ ბაზაზე დამონტაჟებული ფიგურით, ის არ ტრიალებს თავად. ჩემი შემდეგი ვერსია იქნება გამოიყენეთ 12V დისტანციური ბატარეა 5V რეგულატორით მეტი ენერგიისათვის!

გირჩევთ: