תוכן עניינים:

מכשף וורהאמר על דיסק עם מנוע מצויד ומנורות נוריות: 4 שלבים
מכשף וורהאמר על דיסק עם מנוע מצויד ומנורות נוריות: 4 שלבים

וִידֵאוֹ: מכשף וורהאמר על דיסק עם מנוע מצויד ומנורות נוריות: 4 שלבים

וִידֵאוֹ: מכשף וורהאמר על דיסק עם מנוע מצויד ומנורות נוריות: 4 שלבים
וִידֵאוֹ: מבוכים ודרקונים: אני פותח קופסה של 30 מגברי הרחבה של Magic The Gathering 2024, יולי
Anonim
מכשף וורהאמר על דיסק עם מנוע מצויד במגנטים ולדים
מכשף וורהאמר על דיסק עם מנוע מצויד במגנטים ולדים

רוצה להוסיף קצת PIZZAZZ לפרויקטים האמנותיים שלך? מנועים ולדים הם הדרך ללכת!

האם אתה חובב גיימינג של וורהאמר? זה בשבילך! זהו הלורד המכשף Tzeentch שלי על הדיסק, מתוקן עם 3 נוריות LED נוספות, מנוע, מיקרו (PIC) וסוללה קטנה. מדריך זה מכסה את הבנייה הושלמה ואת הבעיות.

שלב 1: מעגל

מעגל חשמלי
מעגל חשמלי

ראשית, אתה עשוי לתהות מה זה. זהו המיניאטור שלי בהתאמה אישית לשולחן משחק מלחמה שולחני בשם Warhammer. הבחור בחלק העליון הוא דגם רגיל מיוצר המשחק (Gamesworkshop), אבל הדיסק והבסיס כולם שלי. הבנייה בשבילו היא נושא אחר להוראה, אז אני לא אכנס לזה כאן. מעגל הרעיון הבסיסי כאן היה לקחת מיקרו קטן בן 8 פינים לשליטה על 3 נוריות ומנוע, עם אספקה קטנה ככל האפשר. שימוש ב"ידיים עוזרות ", כמו תמיד, הוא רעיון טוב. לדברים אלה יש שני קליפים לאחסון כל מה שאתה עובד עליו. לא היה צורך בסכימה, מכיוון שההטמעה פשוטה מאוד; מיקרו 8 פינים (מיקרו -שבב PIC) עם 3 סיכות פלט הנכנסות ישר ללדים, ו -2 סיכות פלט המגיעות למנוע אחד..הנורות LED משמשות הן כחול, לבן ואדום הרכבה על פני השטח. המנוע בו נעשה שימוש נקרע ממסוק מיקרו מקורה שבור. הסוללה (ליפו קטנה) נקרעה גם היא מההלי, אבל אני כבר מתכנן להשתמש במקור אחר לעוד נוספה מתג להפעלה/כיבוי.

שלב 2: קוד

קוד
קוד

הקוד ל- PIC נוצר בכדי לייעל את חיי הסוללה ולהשתמש ב"אירועים "אקראיים רבים. על מנת שהסוללה תחזיק מעמד זמן רב ככל האפשר, המעגל היה צריך להשתמש בכמות הכוח הנמוכה ביותר שיכולתי להבין, תוך שמירה על הרעיון בחיים.. אז, החלטתי לצמצם את הפעילות הראשונית לממוצע של פלאש LED או מהלך מנוע כל 6 שניות. הקוד כולל 12 "פעילויות" אקראיות, החל מ- LED אחד שנדלק, המנוע נדלק לפרקי זמן או כיוונים שונים, ועד למצב המתנה אקראי. אירועים משתנים בין 3 שניות להפרש של יותר מ- 40 שניות, בהתבסס על האירוע האקראי שנוצר. CODE; ============================= ====================================================; בקר דיסק;; -----------; Vcc-> | 1 8 | <-Vss; MGPIO5 | 2 7 | GPIO0 -LED1; MGPIO4 | 3 6 | GPIO1 -LED2; GPIO3-> | 4 5 | GPIO2 -LED3; -----------;; ====================================== =============================================; היסטוריית גרסאות והערות:; כותרת ראשונית V1.0, קוד 5/19/09;;; (ג) 5/2009; קוד זה עשוי לשמש ללמידה/יישום/שינוי אישי.; כל שימוש בקוד זה במוצרים מסחריים מפר את גרסת התוכנה החופשית הזו.; לשאלות/הערות, צור קשר עם מעגל נקודה ב- yahoo dot com.; ------------------------------------------------ -------------------------------#כוללים P12C672. INC; ============== ==================================================== =================; מגדיר; ------------------------------------------------ -------------------------------; =================== =================================================== ============; נתונים;------------------------------------------------ -------------------------------; זמן שמירה על משתנים מספר 1 שווה 20 ספירה 2 שווה 21 עיכוב שווה 22 רנדלו שווה 23 ראנדי שווה 24 ווטמפ שווה 25 טמפ 2 שווה 26 מס 'שווה 27 מספר 3 שווה 28; ============================= =================================================== ===; אפס וקטורים;; בדוק את התצורה. ביסים לפני שנשרפים !!!; INTOSC; MCLR: מופעל; PWRUP: מופעל; כל האחרים: נכים !!;; ------------------------------------------ ------------------------------------ RESET_ADDR EQU 0x00 org RESET_ADDR התחל; ===== ==================================================== ===========================; התחל כאן!;---------------------------------------------- --------------------------------- התחלה; יציאות קלט/פלט Config 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 Randhi; המתן 1 שניות. ניתוק שיחות; ירידה בשיחה של 0.2 שניות שיחה ביטול שיחת ניתוק שיחת ניתוק שיחות; ======================================== =========================================; רָאשִׁי;------------------------------------------------ ------------------------------- שיחה ראשית שניים; 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 ואילך 0x0F movwf rand; בחירה שגרתית אקראית xorlw 0x00; 0? btfsc STATUS, Z goto flash1; כן. התקשר 0th movfw rand xorlw 0x01; 1? btfsc STATUS, Z goto flash2; כן. התקשר 1st movfw rand xorlw 0x02; 2? btfsc STATUS, Z goto flash3; כן. התקשר 2 movfw rand xorlw 0x03; 3? btfsc STATUS, Z goto flashall; כן. התקשר השלישי movfw rand xorlw 0x04; 4? btfsc STATUS, Z הלוך ושוב; כן. התקשר 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 ללכת להתפרץ; כן. התקשר 8 movfw rand xorlw 0x09; 9? btfsc STATUS, Z goto Wait1; כן. התקשר 9th movfw rand xorlw 0x0A; א? btfsc STATUS, Z goto Wait2; כן. התקשר לאת movfw rand xorlw 0x0B; ב? btfsc STATUS, Z goto Wait3; כן. התקשר אל Bth אל תעשה כלום; 1/4 מהזמן, אל תעשה כלום במשך 10 שניות. 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 gooto mainflashall bsf GPIO, 0 bsf GPIO, 1 bsf GPIO, 2 שיחות ניתוק שיחת ניתוק bcf GPIO, 0 bcf GPIO, 1 bcf GPIO, 2 עיקרי עיקרי bsf GPIO, 4 bcf GPIO, 5 שיחות ניתוק bcf GPIO, 4 עבור אל mainmovell bsf GPIO, 4 bcf GPIO, 5 שיחות ניתוק שיחות dbunce bcf GPIO, 4 goto mainmovers bcf GPIO, 4 bsf GPIO, 5 שיחות debunce bcf GPIO, 5 עבור mainmoverl bcf GPIO, 4 bsf GPIO, 5 שיחות ניתוק שיחות bcf GPIO, 5 goto mainmoveburst bcf GPIO, 4 BSF GPIO, 5 ניתוק שיחות; זז ימינה 3 פעמים, התפרצויות קצרות. bcf GPIO, 5 שיחות ניתוק שיחות debounce שיחות bsf GPIO, 5 שיחות ניתוק שיחות ירידה bcf GPIO, 5 שיחות ניתוק שיחות ירידה bsf GPIO, 5 שיחות ניתוק שיחות bcf GPIO, 5 שיחות ניתוק שיחות ירידה שיחות שיחות ירידה bsf GPIO, 4; הזז שמאלה 3 פעמים, התפרצויות קצרות. bcf GPIO, 5 שיחות ניתוק שיחות debounce bcf GPIO, 4 שיחות ניתוק שיחת ירידה bsf GPIO, 4 שיחות ניתוק שיחת ירידה bcf GPIO, 4 שיחות ניתוק שיחות ירידה bsf GPIO, שיחות ניתוק שיחות ירידה bcf GPIO, שיחות ניתוק שיחות שיחות שיחות goto mainWait1; המתן 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 ללכת 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 ללכת mainWait3; המתן 4 שניות התקשר שתיים שיחות שתיים אל תצא מהזמן.50; עיכוב למשך 10 שניות סך הכול movwf count3nothing_loop movlw.255; עיכוב של ירידה של 2/10 שנייה. movwf count2 להתקשר pon_wait decfsz count3, F go nothing_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 מחזורים להחזרה.; 4Mhz Tc:: count2 = 255-> 0.2 שניות; -------------------------------------- ----------------------------------------- debounce movlw.127; עיכוב של ירידה של 1/10 שנייה. movwf count2 שיחה חזרה pon_wait; -------------------------------------------- -----------------------------------; count1 = 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: חלקים

חלקים
חלקים

תמונה זו מראה עד כמה הייתי צריך כדי שהרכיבים יתאימו מתחת לבחור הזה. שבב 8 פינים (PIC) 3 נורות LED SMT (כחול, אדום, לבן) 1 מנוע מסוללת מיקרו heli מקורה.1 סוללת LIPO מאותו הלי. 1 מתג הפעלה 1 דיבל עץ 2.5 מ"מ (2 אינץ ') 2 מגנטים של כדור הארץ הנדיר 1 מ"מ

שלב 4: בנה

לִבנוֹת
לִבנוֹת

תחילה נמצא מרכז מסה לכל העניין. זה יהיה אזור הר המנוע. המנוע הותקן באמצעות לולאה הנקראת Greenstuff (בשימוש בעולם המיניאטורות). שלושת הלדים היו מחוברים מראש. המיקרו מודבק בשטח מחוץ לדרך, לא קרוב מדי לקצה. מתג ההפעלה והסוללה הורכבו כדי לקזז את המשקל (הקטן) של המיקרו, כדי לשמור על איזון. החוטים מולחמו. החלק המגניב באמת הוא הבא. הדבקת על קצה גלגל הרוטור על המנוע (זה יופנה כלפי מטה מאוחר יותר) הותקן מגנט אדמה נדירה. אורך קצר (~ 2 ") של דיבל עץ בקוטר 2.5 נקדח (בעזרת יד וביט) לחור בקוטר 1 מ"מ בעומק 5 מ"מ. בחור זה הודבק עוד מגנט אדמה נדיר באורך 1 מ"מ. כעת, הבסיס שלי לדמות הוא מגנטי מצמידים את הרוטור של המנוע. כאשר המנוע מסתובב, ממרכז האיזון שלו, הוא הופך את כל החלק העליון של הדמות. קש אדום נחתך כדי לכסות את המנוע ואת הקליפה מעץ. זה נמדד מראש לפני שנעץ העץ היה מותקן, כדי לוודא שהוא תואם. תפוקת סוללת LIPO קוראת כרגע 3.4V ללא טעינה. זה מספיק כדי לסובב את המנוע ולהדליק את נוריות הלדים, אך כשהדמות מותקנת על הבסיס, היא לא מסתובבת בעצמה. הגרסה הבאה שלי תהיה השתמש בסוללה מרחוק 12V עם ווסת 5V לקבלת יותר כוח!

מוּמלָץ: