สารบัญ:

Warhammer Sorcerer บนแผ่นดิสก์พร้อมมอเตอร์และไฟ LED ที่จับคู่ด้วยแม่เหล็ก: 4 ขั้นตอน
Warhammer Sorcerer บนแผ่นดิสก์พร้อมมอเตอร์และไฟ LED ที่จับคู่ด้วยแม่เหล็ก: 4 ขั้นตอน

วีดีโอ: Warhammer Sorcerer บนแผ่นดิสก์พร้อมมอเตอร์และไฟ LED ที่จับคู่ด้วยแม่เหล็ก: 4 ขั้นตอน

วีดีโอ: Warhammer Sorcerer บนแผ่นดิสก์พร้อมมอเตอร์และไฟ LED ที่จับคู่ด้วยแม่เหล็ก: 4 ขั้นตอน
วีดีโอ: Warhammer Vermintide 2 - The Sorcerer OST 2024, กรกฎาคม
Anonim
Warhammer Sorcerer บนแผ่นดิสก์พร้อมมอเตอร์และไฟ LED ที่จับคู่ด้วยแม่เหล็ก
Warhammer Sorcerer บนแผ่นดิสก์พร้อมมอเตอร์และไฟ LED ที่จับคู่ด้วยแม่เหล็ก

ต้องการเพิ่ม PIZZAZZ ในโครงการศิลปะของคุณหรือไม่? มอเตอร์และไฟ LED เป็นวิธีที่จะไป!

คุณเป็นนักเล่นเกม Warhammer หรือไม่? อันนี้สำหรับคุณ! นี่คือ Tzeentch Sorcerer Lord on Disc ของฉัน ซึ่งแก้ไขโดยเพิ่ม LED 3 ดวง มอเตอร์ ไมโคร (PIC) และแบตเตอรี่ขนาดเล็ก คำแนะนำนี้ครอบคลุมการสร้างและปัญหาที่เสร็จสมบูรณ์

ขั้นตอนที่ 1: วงจร

วงจร
วงจร

ก่อนอื่นคุณอาจสงสัยว่านี่คืออะไร นี่คือภาพย่อที่ฉันทำเองสำหรับเกมบนโต๊ะบนโต๊ะที่เรียกว่า Warhammer ผู้ชายที่อยู่ด้านบนสุดเป็นรุ่นปกติจากผู้สร้างเกม (Gamesworkshop) แต่ดิสก์และฐานเป็นของฉันทั้งหมด การสร้างสำหรับเขาเป็นเรื่องของคำแนะนำอื่น ดังนั้นฉันจะไม่พูดถึงที่นี่ วงจร แนวคิดพื้นฐานที่นี่คือการใช้ไมโคร 8 พินขนาดเล็กเพื่อควบคุม LED 3 ดวงและมอเตอร์โดยมีแหล่งจ่ายน้อยที่สุด การใช้ "มือช่วย" เช่นเคยเป็นความคิดที่ดี สิ่งเหล่านี้มีสองคลิปสำหรับเก็บสิ่งที่คุณกำลังทำงานอยู่ ไม่จำเป็นต้องใช้แผนผังเนื่องจากการอิมเมจนั้นง่ายมาก ไมโคร 8 พิน (Microchip PIC) ที่มีเอาต์พุต 3 พินตรงไปยัง LED และ 2 พินเอาต์พุตไปที่ 1 มอเตอร์ ไฟ LED ที่ใช้เป็นแบบติดบนพื้นผิวสีน้ำเงิน สีขาว และสีแดง มอเตอร์ที่ใช้ถูกฉีกขาดจากเฮลิคอปเตอร์ขนาดเล็กในร่มที่ชำรุด แบตเตอรี่ (Lipo ขนาดเล็ก) ก็ขาดจากเฮลิเช่นกัน แต่ฉันวางแผนที่จะใช้แหล่งอื่นเพิ่มเติม power. A สวิตช์ถูกเพิ่มสำหรับเปิด/ปิด

ขั้นตอนที่ 2: รหัส

รหัส
รหัส

รหัสสำหรับ PIC ถูกสร้างขึ้นมาเพื่อยืดอายุการใช้งานแบตเตอรี่และใช้ "เหตุการณ์" แบบสุ่มจำนวนมาก เพื่อให้แบตเตอรี่มีอายุการใช้งานยาวนานที่สุด วงจรจะต้องใช้พลังงานในปริมาณที่น้อยที่สุดที่ฉันคิดได้ ในขณะที่ยังคงความคิดนั้นให้คงอยู่. ดังนั้นฉันจึงตัดสินใจลดกิจกรรมเริ่มต้นให้เหลือแฟลช LED เฉลี่ย 1 ดวงหรือมอเตอร์เคลื่อนที่ทุกๆ 6 วินาที รหัสมี "กิจกรรม" แบบสุ่ม 12 รายการ ตั้งแต่ LED 1 ดวงติดสว่าง มอเตอร์จะเปิดขึ้นในช่วงเวลาหรือทิศทางที่ต่างกัน ไปจนถึงสถานะรอแบบสุ่ม เหตุการณ์จะแตกต่างกันไปตั้งแต่ 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;;;(C) 5/2009;รหัสนี้อาจใช้สำหรับการเรียนรู้/แอปพลิเคชัน/การปรับเปลี่ยนส่วนบุคคล;การใช้รหัสนี้ในผลิตภัณฑ์เชิงพาณิชย์ใดๆ ถือเป็นการละเมิดรุ่นฟรีแวร์นี้ สำหรับคำถาม/ความคิดเห็น โปรดติดต่อ circuit dot mage ที่ yahoo dot com.;------------------------------------------------ -------------------------------#รวม P12C672. INC;============= ================================================= =================; กำหนด;------------------------------------------------ -------------------------------------;================== ================================================= ============; ข้อมูล;------------------------------------------------ -------------------------------------; ตัวแปรการรักษาเวลาcount1 equ 20 count2 equ 21 ความล่าช้า equ 22Randlo equ 23Randhi equ 24Wtemp equ 25Temp2 equ 26rand equ 27count3 equ 28;=========================== ================================================= ===; รีเซ็ตเวกเตอร์;; ตรวจสอบการกำหนดค่า BITS ก่อนการเผาไหม้!!!; อินทอสค์; MCLR: เปิดใช้งาน; PWRUP: เปิดใช้งาน; อื่นๆ ทั้งหมด: ปิดการใช้งาน!!;;------------------------------------------ ----------------------------------------------------RESET_ADDR EQU 0x00 org RESET_ADDR ไปที่ start;===== ================================================= ========================; เริ่มที่นี่!;---------------------------------------------- ---------------------------------เริ่ม; กำหนดค่าพอร์ต I/O bcf STATUS, RP1 bsf STATUS, RP0 movlw h'08';RA Outputs, 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 วินาที โทร debounce; 0.2 วินาที โทร debounce โทร debounce โทร debounce โทร debounce โทร debounce;======================================== =======================================; หลัก;------------------------------------------------ ------------------------------- สายหลัก 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 และlw 0x0F movwf rand; สุ่มเลือกรูทีน xorlw 0x00; 0? btfsc สถานะ Z ไปที่ flash1; ใช่. โทร 0 movfw rand xorlw 0x01; 1? btfsc สถานะ Z ไปที่ flash2; ใช่. โทร movfw rand ครั้งที่ 1 xorlw 0x02; 2? btfsc สถานะ Z ไปที่ flash3; ใช่. โทร movfw rand ครั้งที่ 2 xorlw 0x03; 3? btfsc STATUS, Z ไปที่ flashall; ใช่. โทร movfw rand ครั้งที่ 3 xorlw 0x04; 4? btfsc STATUS, Z ไปที่การย้าย; ใช่. โทร movfw rand ครั้งที่ 4 xorlw 0x05; 5? btfsc สถานะ Z ไปที่ movell; ใช่. โทร movfw rand ครั้งที่ 5 xorlw 0x06; 6? btfsc สถานะ, Z ไปที่ตัวย้าย; ใช่. โทรครั้งที่ 6 movfw rand xorlw 0x07; 7? btfsc สถานะ, Z ไปที่ moverl; ใช่. โทร 7th movfw rand xorlw 0x08; 8? btfsc STATUS, Z ไปที่ moveburst; ใช่. โทร 8 movfw rand xorlw 0x09; 9? btfsc STATUS, Z ไปที่ Wait1; ใช่. โทร 9th movfw rand xorlw 0x0A; NS? btfsc สถานะ Z ไปที่ Wait2; ใช่. โทร movfw rand xorlw 0x0B; NS? btfsc สถานะ Z ไปที่ Wait3; ใช่. โทรไปไม่มีอะไรเลย; 1/4 เวลา ไม่ทำอะไรเลย 10 secs.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 goto mainflashall bsf GPIO, 0 bsf GPIO, 1 bsf GPIO, 2 call debounce call debounce bcf GPIO, 0 bcf GPIO, 1 bcf GPIO, 2 goto mainmovels bsf GPIO, 4 bcf GPIO, 5 การโทร debounce bcf GPIO, 4 goto mainmovell 4 bsf GPIO GPIO, 5 การโทร debounce การโทร debounce bcf GPIO, 4 ไปที่ mainmovers bcf GPIO, 4 bsf GPIO, 5 การโทร debounce bcf GPIO, 5 ไปที่ mainmoverl bcf GPIO, 4 bsf GPIO, 5 การโทร debounce debounce bcf GPIO, 5 gotobcfmove 4 bsf GPIO, ดีบักการโทร 5 ครั้ง; เลื่อนไปทางขวา 3 ครั้ง ระเบิดสั้นๆ bcf GPIO, 5 การโทร debounce การโทร debounce bsf GPIO, 5 การโทร debounce การโทร debounce bcf GPIO, 5 การโทร debounce การโทร debounce bsf GPIO, 5 การโทร debounce bcf GPIO, 5 การโทร debounce การโทร debounce การโทร debounce การโทร debounce bsf GPIO, 4; เลื่อนไปทางซ้าย 3 ครั้ง ระเบิดสั้นๆ bcf GPIO, 5 การโทร debounce การโทร debounce bcf GPIO, 4 การโทร debounce การโทร debounce bsf GPIO, 4 การโทร debounce การโทร debounce bcf GPIO, 4 การโทร debounce การโทร debounce bsf GPIO, 4 การโทร debounce การโทร debounce bcf GPIO, 4 การโทร debounce mainWait1 goto; รอ 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 วินาที โทร twosec โทร twosec goto mainnothing movlw.50; หน่วงเวลา 10 วินาที Total movwf count3nothing_loop movlw.255; หน่วงเวลาการดีบัก 2/10 วินาที movwf count2 โทร pon_wait decfsz count3, F ไปที่ nothing_loop ไปที่ main;====================================== ==========================================; รอ 2 วินาที ---------------------------------------------- ---------------------------------- twosec movlw.10; หน่วงเวลา 2 วินาที Total movwf count3twosec_loop movlw.255; หน่วงเวลาการดีบัก 2/10 วินาที movwf count2 โทร pon_wait decfsz count3, F ไปที่ 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 ไปที่ short_loopS decfsz count2, F ไปที่ big_loopSreturnend

ขั้นตอนที่ 3: อะไหล่

อะไหล่
อะไหล่

ภาพนี้แสดงให้เห็นว่าฉันต้องเล็กแค่ไหนในการประกอบส่วนประกอบให้พอดีภายใต้ชายคนนี้1 8-pin Microchip (PIC)3 SMT LED (สีน้ำเงิน, สีแดง, สีขาว)1 มอเตอร์จาก micro heli ในร่ม1 แบตเตอรี่ LIPO จาก heli เดียวกัน สวิตช์เปิดปิด 1 อัน 1 เดือยไม้ 2.5 มม. (ยาว 2 นิ้ว) แม่เหล็กแรร์เอิร์ธ 2 1 มม.

ขั้นตอนที่ 4: สร้าง

สร้าง
สร้าง

ขั้นแรกพบจุดศูนย์กลางมวลของสิ่งทั้งปวง นี่จะเป็นพื้นที่ติดตั้งมอเตอร์ มอเตอร์ติดตั้งโดยใช้ goop ที่เรียกว่า Greenstuff (ใช้ในโลกของย่อส่วน) ไฟ LED 3 ดวงถูกต่อสายไว้ ไมโครถูกติดกาวไว้นอกเส้นทาง ไม่ใกล้กับขอบมากเกินไป สวิตช์เปิดปิดและแบตเตอรี่ถูกติดตั้งเพื่อชดเชยน้ำหนัก (เล็ก) ของไมโครเพื่อให้สมดุล บัดกรีสายไฟแล้ว ส่วนที่เจ๋งจริงๆ อยู่ถัดไป Superglue ที่ส่วนปลายของเฟืองโรเตอร์บนมอเตอร์ (ซึ่งจะคว่ำลงในภายหลัง) ติดตั้งแม่เหล็กแรร์เอิร์ธ เจาะเดือยไม้ขนาดเส้นผ่านศูนย์กลาง 2.5 อันสั้น (~2 ) (โดยใช้มือและดอกสว่าน) สำหรับรูขนาดเส้นผ่านศูนย์กลาง 1 มม. ลึก 5 มม. ในรูนี้ แม่เหล็กแรร์เอิร์ธอีก 1 มม. ถูกติดกาว ตอนนี้ ฐานสำหรับฟิกเกอร์ของฉันเป็นแบบแม่เหล็ก ควบคู่ไปกับโรเตอร์ของมอเตอร์ เมื่อมอเตอร์หมุน จากจุดศูนย์กลางของความสมดุล มันจะเปลี่ยนส่วนบนของร่างทั้งหมด ตัดฟางสีแดงคลุมมอเตอร์และเดือยไม้ ซึ่งถูกวัดไว้ล่วงหน้าก่อนเดือยไม้ ติดตั้งเพื่อให้แน่ใจว่าตรงกัน เอาต์พุตแบตเตอรี่ LIPO กำลังอ่าน 3.4V โดยไม่ต้องชาร์จ เพียงพอที่จะหมุนมอเตอร์และจุดไฟ LED แต่ด้วยตัวเลขที่ติดตั้งบนฐาน มันไม่หมุนเอง รุ่นต่อไปของฉันจะ ใช้แบตเตอรี่รีโมท 12V พร้อมตัวควบคุม 5V เพื่อพลังงานที่มากขึ้น!

แนะนำ: