สารบัญ:
2025 ผู้เขียน: John Day | [email protected]. แก้ไขล่าสุด: 2025-01-23 15:12
เมื่อเร็ว ๆ นี้ฉันเห็นงานสร้างที่ยอดเยี่ยมโดย GeckoDiode และฉันต้องการสร้างมันเองทันที คำแนะนำคือนาฬิกาตั้งโต๊ะ Space Invaders และฉันแนะนำให้คุณดูหลังจากอ่านข้อความนี้
โปรเจ็กต์นี้สร้างขึ้นเกือบทั้งหมดจากชิ้นส่วนที่มาจาก Adafruit พร้อมกล่องพิมพ์ 3 มิติ และ Facia ที่ตัดด้วยเลเซอร์ การเพิ่มค่าใช้จ่ายในการสร้างจะมีราคาแพงมาก! (ประมาณ 100 ปอนด์ขึ้นไป) ปัญหาคือถ้าคุณไม่ได้เป็นเจ้าของเครื่องพิมพ์ 3 มิติ คุณต้องจ่ายเงินเพื่อพิมพ์แบบจำลองของคุณ หรือซื้อกล่องหุ้มที่น่าเกลียดจาก ebay ซึ่งมักจะมีขนาดเล็กเกินไป แคบเกินไป สั้นเกินไป หรือตรงกันข้าม
งานสร้างของฉันส่วนใหญ่ต้องใช้งบประมาณสำหรับงานอดิเรก และส่วนหุ้มมักจะเป็นส่วนที่แพงที่สุดเสมอ ดังนั้นฉันจึงตัดสินใจสร้างนาฬิกาแบบเดียวกันแต่ด้วยงบประมาณที่เหมาะสม
หากคุณชอบดูนาฬิกาแปลกๆ ลองดูนาฬิกา Steampunk Voltmeter Clock ซึ่งใช้วัสดุประกอบแบบเดียวกันสำหรับกล่องหุ้ม:-)
ขั้นตอนที่ 1: รวบรวมชิ้นส่วน
ในการทำโครงการนี้ คุณจะต้องมีสิ่งต่อไปนี้ โปรดจำไว้ว่า วัสดุสำหรับตู้จะมีของเหลือมากมายซึ่งคุณสามารถใช้ในโครงการอื่นได้ (ซึ่งทำให้ต้นทุนของงานสร้างในอนาคตถูกกว่า) ฉันได้อัปโหลดสิ่งที่คุณต้องการในรูปแบบ PDF หากคุณต้องการตรวจสอบราคา ฯลฯ บน ebay
เครื่องมือ (ฉันคิดว่าคุณคงมีอยู่แล้ว)
- หัวแร้ง
- ประสาน
- ปั๊มบัดกรี (ถ้าคุณทำผิดพลาดและจำเป็นต้องถอดบัดกรี)
- ปืนกาวร้อน
- แท่งกาวร้อน
- มีดหัตถกรรม (aka มีดสแตนลี่ย์)
- ไม้บรรทัด / ตลับเมตร / เวอร์เนียคาลิปเปอร์
- สว่านไร้สาย + ดอกสว่าน (1 มม. ถึง 13 มม.)
- เครื่องมืออเนกประสงค์แบบโรตารี่พร้อมจานตัด (a.k.a. Dremel)
- น้ำยาทำความสะอาดอย่างไอโซโพรพิล-แอลกอฮอล์ (โลชั่นหลังโกนหนวดราคาถูกก็ใช้ได้เช่นกัน)
- หน้ากากนิรภัย (ใช้สำหรับพ่นสี)
อิเล็กทรอนิกส์ (ค่าอุปกรณ์อิเล็กทรอนิกส์ = £13.05)
บางส่วนของเหล่านี้ฉันมีฟรี ของเล่นอิเล็กทรอนิกส์เก่าๆ จะมีลำโพง Mylar ดีๆ อยู่ข้างใน ถ้าคุณแยกพวกมันออกจากกัน ในขณะที่คุณอยู่ที่นั่น คุณอาจได้รับถัง DC และปุ่มกดด้วย
- สายดูปองท์ / สายจัมเปอร์ - £0.99
- DS1307 โมดูลนาฬิกาตามเวลาจริง - 0.99 ปอนด์ (ฉันขอแนะนำให้ใช้ DS3231 แทนหากมี)
- Arduino nano + สาย usb - £2.23
- ลำโพง 8 โอห์ม Mylar - 0.99 ปอนด์
- ปุ่มกด SPST ชั่วขณะ - 1.49 ปอนด์
- ซ็อกเก็ตบาร์เรล DC 5.5 มม. - 1.26 ปอนด์
- แหล่งจ่ายไฟ DC 5v, 0.5A - 2.83 ปอนด์สเตอลิงก์
- MAX7219 จอแสดงผลดอทเมทริกซ์ - 3.76
สิ่งที่แนบมา (ค่าวัสดุหุ้ม = 17.19 ปอนด์)
- ท่อระบายน้ำขนาด 60 มม. - 5.99 ปอนด์ (คุณจะเหลืออีกมากสำหรับโครงการอื่นๆ)
- สีสเปรย์สีดำ - £ 4.85
- พีวีซีสีดำ (โฟมบอร์ด) - £2.99
- กาวซุปเปอร์ - £0.99
- ฝาท้าย 60 มม. - 2.37 ปอนด์
ค่าใช้จ่ายทั้งหมด = 30.24 ปอนด์:-) …….. ณ วันนี้ เท่ากับ 38 USD สำหรับผู้อ่านต่างประเทศ
ฉันชอบทำงานกับท่อพีวีซีสี่เหลี่ยม เจาะ ตัด ระบายสีได้ง่าย และฉันใช้สำหรับนาฬิกา Steampunk ของฉัน
ขั้นตอนที่ 2: เตรียมท่อระบายน้ำของคุณ
ทำเครื่องหมายที่คุณต้องการวางสิ่งของ
มันง่ายมาก ฉันไม่ได้ใช้อะไรแฟนซี ก่อนอื่น ฉันตัดความยาว 2.5 ม. ให้เหลือขนาดที่เหมาะสมสำหรับม้านั่งที่บ้าน (ประมาณ 30 ซม.) ด้วยเลื่อยฉลุ ต่อมาฉันตัดมันด้วยเดรเมลเพื่อทำให้ขอบสวยและตรง จากนั้นฉันก็วางส่วนประกอบไว้บนพื้นผิวของท่อและใช้ตลาดถาวรเพื่อทำเครื่องหมายตำแหน่งที่ต้องการเจาะและตัด ฉันลากเส้นไปรอบๆ ด้านนอกของเมทริกซ์ LED และใช้เครื่องมือหลายตัวแบบโรตารีเพื่อตัดเป็นรูสี่เหลี่ยมเพื่อให้เข้าที่พอดี ฉันใช้คาลิปเปอร์ดิจิทัลเพื่อวัดเส้นผ่านศูนย์กลางของปุ่มกดและกระบอก DC เพื่อตัดรูขนาดที่ถูกต้องที่ด้านหลังและด้านบน
ตัดขอบ
ฉันมีแผ่นโฟมพีวีซีจำนวนมากวางอยู่รอบๆ จากโครงการก่อนหน้านี้ เหมาะอย่างยิ่งสำหรับการติดตั้งวงจรเข้ากับเปลือกหุ้ม ใช้ในการผสมอีพ็อกซี่เข้าด้วยกัน และทำชิ้นส่วนและบ็อบอื่นๆ นำชิ้นส่วนขนาด A4 หรือ A5 แล้วตัดขอบหรือกรอบสี่เหลี่ยมขนาด 5 มม. เพื่อใส่กรอบเมทริกซ์ LED สิ่งนี้จะซ่อนจุดสิ้นสุดที่ว่องไวที่คุณทำเมื่อตัดรูสี่เหลี่ยมสำหรับเมทริกซ์ สำหรับสิ่งนี้ ฉันวาดเทมเพลตขนาดเล็กบน Inkscape แล้วพิมพ์ออกมา (แนบไฟล์ SVG) จากนั้นฉันก็ติดเทปกาวลงบนแผ่นโฟมแล้วใช้มีดตัดรอบๆ อย่างระมัดระวัง กว่าจะถูกมันยาก แนะนำให้ตัดด้านในก่อนแล้วค่อยตัดด้านนอก
ทาสีทุกอย่าง
เมื่อเจาะและตัดรูทั้งหมดแล้ว ให้เอาขอบที่เป็นเสี้ยนออก ทำความสะอาดพื้นผิวด้วยทิชชู่เปียกแอลกอฮอล์เพื่อขจัดฝุ่นหรือมลภาวะ (หรือโลชั่นหลังโกนหนวดราคาถูกหากคุณไม่มี IPA) พยายามฉีดพ่นในบริเวณที่อากาศถ่ายเทได้ดีและใช้หน้ากากหากเป็นไปได้ ฉันทำสิ่งนี้ข้างนอกด้วยกระดาษแข็งบนพื้น แต่ไม่เหมาะ แม้แต่ลมพัดเบาๆ ก็อาจทำให้สีลอยกลับมาที่ใบหน้าของคุณได้ ระมัดระวังและสวมอุปกรณ์ป้องกันหากเป็นไปได้
ฉีดสเปรย์ที่ท่อ ขอบตัวเรือน และฝาท้ายเพื่อให้เป็นสีดำประเภทเดียวกัน จากนั้นปล่อยให้แห้งสองสามชั่วโมง
ขั้นตอนที่ 3: ตั้งโปรแกรม Arduino
ข้อมูลบางอย่างเกี่ยวกับรหัส
ให้เครดิตกับ GeckoDiode ในขณะที่ฉันใช้รหัสของเขาและแก้ไขให้ทำงานกับชิป MAX7219 รุ่น Adafruit ใช้บัส I2C และ MAX ใช้บัส SPI สำหรับสิ่งนี้ ฉันใช้ไลบรารี MaxMatrix ซึ่งฉันดาวน์โหลดและติดตั้งลงใน Arduino IDE หากคุณต้องการเรียนรู้เพิ่มเติมเกี่ยวกับ MaxMatrix และเมทริกซ์ LED ทำงานอย่างไรในหลักการสำคัญ มีบทช่วยสอนสั้น ๆ เกี่ยวกับ HowToMechatronics.com เมทริกซ์ LED ประกอบด้วยสีเดียวของ LED แทนที่จะมีจอแสดงผลหลายสี
ความผิดหวังอย่างหนึ่งที่ฉันมีคือไม่มีคำจำกัดความที่ชัดเจนว่าฟังก์ชันสำหรับไลบรารีคืออะไรและมีข้อโต้แย้งใดบ้างที่ต้องส่งผ่านเข้าไป โชคดีที่ฉันสามารถค้นหาสิ่งที่ทำโดยการลองผิดลองถูก และในที่สุดก็ไม่ยากเกินไปที่จะให้มันทำงานอย่างถูกต้อง สิ่งแรกที่ต้องทำความเข้าใจคือ คุณต้องกำหนดจำนวนโมดูล 8x8 ที่อยู่ในเมทริกซ์ของคุณ ในรหัสของฉันสิ่งนี้ถูกเก็บไว้ในจำนวนเต็มที่เรียกว่า "โมดูล" ดังนี้:
"โมดูล int = 4;"
นี่คือ NUMBER ของโมดูล 8x8 ที่คุณเชื่อมโยงเข้าด้วยกันในจอแสดงผลของคุณ ไม่ใช่จำนวน LED หรือพินที่คุณใช้ส่งข้อมูล สิ่งต่อไปที่ต้องจำคือถ้า "สไปรท์" ของคุณหรืออะไรก็ตามที่ครอบคลุมเมทริกซ์ทั้งสี่ ไบต์อาร์เรย์จะต้องกำหนดดังนี้:
"ไบต์ text_start_bmp = {32, 8, …*ข้อมูลบางไบต์*…};"
ตัวเลขระบุจำนวนแถวและคอลัมน์ในเมทริกซ์ ในโอกาสนี้ ไบต์ที่ชื่อ "text_start_bmp" จะแสดงมากกว่า 32 คอลัมน์และ 8 แถว ตัวเลขจะแสดงบนเมทริกซ์ขนาด 8x8 เดียว ดังนั้นหมายเลขนาทีที่ 10 จะมีลักษณะดังนี้:
"byte minutes_ten_bmp = {8, 8, …*ข้อมูลบางไบต์*…};"
ผู้บุกรุกครอบคลุมสองเมทริกซ์ดังนั้นไบต์จะได้รับ 16, 8 ในข้อมูลไบต์
อีกสิ่งหนึ่งที่ดึงดูดใจฉันคือการวางตำแหน่งของข้อมูลสไปรท์ คุณสามารถขอให้ Arduino แสดงสไปรต์ในตำแหน่ง X/Y อื่นบนเมทริกซ์จากตำแหน่งเริ่มต้นเริ่มต้น รหัสมีลักษณะดังนี้สำหรับศูนย์นาที:
"matrix.writeSprite(8, 0, minutes_zero_bmp);"
ตัวเลขหนึ่งคือการปรับค่า X และอีกค่าหนึ่งคือ Y จำไม่ได้ว่าอันไหนเป็นตอนนี้ แต่ถ้าคุณต้องการดันสไปรท์ขึ้นหรือลง 1 แถวหรือคอลัมน์ คุณเพียงแค่เพิ่มตัวเลขบวกหรือลบ ง่ายพอสำหรับเมทริกซ์ 8x8 แต่เมื่อสไปรท์ของคุณครอบคลุมมากกว่าหนึ่งเมทริกซ์ คุณต้องตั้งค่าตำแหน่งเริ่มต้นตามลำดับ สไปรท์ "POP" แสดงอยู่ด้านล่าง:
"matrix.writeSprite(16, 0, invader_pop_bmp);"
สังเกตว่าตำแหน่งเจ้าบ้านเป็น 16 ไม่ใช่ 8 อย่างไร? ในที่นี้โค้ดระบุว่าสไปรต์แสดงจากซ้ายไปขวาจากแถว/คอลัมน์ตำแหน่ง 16 โดยถือว่าจอแสดงผล 8x8 สองจอเป็นจอแสดงผล 16x8 จอเดียว แม้ว่าจะมี 4 จอก็ตาม! ดังนั้นจึงเป็นสิ่งสำคัญที่จะต้องนึกถึงจำนวนการแสดงที่สไปรท์จะแสดงข้ามและปรับขนาดอาร์เรย์ไบต์ของสไปรท์แต่ละตัวตามลำดับ มิฉะนั้นคุณจะมีสไปรท์ที่น่าสนใจมาก!
DS1307 RTC
แม้ว่า DS1307 จะทำงานได้ดีกับไลบรารี Adafruit RTClib.h แต่คุณไม่สามารถตั้งเวลาด้วยตนเองซึ่งเป็นเพียงความเจ็บปวดได้ ฉันเพิ่งไปกับสิ่งนี้เพราะมันหมายถึงการเปลี่ยนรหัสน้อยลง DS1307 ตั้งเวลาโดยใช้เวลาและวันที่รวบรวมรหัสจากเวลาในคอมพิวเตอร์ของคุณ ให้เรียนรู้วิธีใช้ไลบรารี DS3231 และตั้งค่าล่วงหน้าหนึ่งหรือสองนาทีในอนาคต นอกจากนี้ยังมี "ดริฟท์" น้อยลงเพื่อให้เวลาดีขึ้นเมื่อเวลาผ่านไป ทั้งสองโมดูลใช้บัส I2C และฉันเชื่อว่า DS3231 สามารถใช้กับ RTClib.h ได้ หากคุณต้องการใช้งานต่อไป
อัพโหลดโค้ด
เมื่อคุณพอใจกับโค้ดที่อัปโหลดไปยัง Arduino ฉันได้แนบร่าง Arduino ของฉันเพื่อให้คุณพิจารณา
ขั้นตอนที่ 4: การประกอบอุปกรณ์อิเล็กทรอนิกส์
ขณะอัปโหลดโค้ด ฉันขอแนะนำให้มีอุปกรณ์อิเล็กทรอนิกส์ประกอบกับสายดูปองต์/จัมเปอร์บนเขียงหั่นขนมก่อน ดังนั้นเมื่อคุณอัปโหลดโค้ด คุณจะรู้ว่าทุกอย่างทำงานได้ตามที่ตั้งใจไว้ วิธีนี้ช่วยให้คุณขจัดปัญหาใดๆ เกี่ยวกับการแสดงสไปรท์ ฯลฯ ก่อนที่คุณจะเริ่มติดกาวและติด ในรหัสของฉัน คุณจะเห็นว่าฉันใช้หมุดดิจิทัล 4, 5, 6, 7, 9 แต่คุณสามารถเปลี่ยนได้หากจำเป็น คุณอาจจำเป็นต้องบัดกรีสายเคเบิลเข้ากับปุ่ม แจ็ค DC และลำโพง แต่ส่วนใหญ่ควรเป็นตัวเชื่อมต่อแบบกดพอดี
เมื่อคุณพอใจกับงานอิเล็กทรอนิกส์ตามที่ตั้งใจไว้ คุณควรพิจารณาบัดกรีการเชื่อมต่อ คุณสามารถทำได้ด้วยแถบทองแดง/veroboard แต่สำหรับส่วนประกอบจำนวนเล็กน้อย คุณสามารถบัดกรีโดยตรงกับหมุดของ Arduino มันจะดูเหมือนรังหนู แต่จะไม่มีใครเห็นภายในกรงเมื่อประกอบเสร็จแล้ว เพียงตรวจสอบให้แน่ใจว่าแยกชิ้นส่วนโลหะทั้งหมดออกจากกัน คุณไม่ต้องการให้มีอะไรลัดวงจรในกรณีนี้
ฉันทำให้ปุ่มกดทำงานเมื่อดึงพิน "mainButton" ต่ำ ฉันพบว่า Arduino รับรู้ถึงการกดปุ่มผิด ๆ เมื่ออุปกรณ์อิเล็กทรอนิกส์แบบลอยตกลงมา การใช้ตัวต้านทานแบบดึงลง 10K บนปุ่มกดและการตั้งค่าพินเป็น "INPUT_PULLUP" ช่วยแก้ปัญหานั้นให้ฉันได้
สิ่งที่แนบมาคือแผนผังใน PDF และ-p.webp
ขั้นตอนที่ 5: ติดตั้งอุปกรณ์อิเล็กทรอนิกส์และปิด
สำหรับนาฬิกาของฉัน ฉันติดตั้งอุปกรณ์อิเล็กทรอนิกส์โดยใช้กาวร้อน แต่ระวังอย่าใส่มากเกินไป (อุปกรณ์อิเล็กทรอนิกส์ไม่ชอบให้ความร้อนนานเกินไป) ฉันใช้ซุปเปอร์กาวหยดเล็กๆ ที่จุดรอบกรอบแล้วกดเข้าไปที่ด้านหน้า ฉันปิดกล่องหุ้มโดยกดที่ฝาปิดที่ปลายแต่ละด้าน แน่นอน คุณสามารถทากาวที่ฝาปิดท้ายเพื่อใส่ชุดประกอบได้อย่างสมบูรณ์ แต่ฉันเปิดทิ้งไว้ด้านหนึ่งเพื่อที่ฉันยังคงสามารถเข้าถึงพอร์ต USB ของ Arduino เพื่อรีเซ็ตวันที่และเวลาในอนาคตได้
ขั้นตอนที่ 6: สนุก
โดยรวมแล้วฉันพอใจกับผลลัพธ์ที่ได้ เพราะมันเป็นแค่ท่อรางน้ำและสีสเปรย์ ฉันหวังว่าคุณจะชอบมันและแจ้งให้เราทราบหากคุณสามารถนึกถึงการอัปเกรดเจ๋ง ๆ ที่สามารถเพิ่มได้ ฉันสนใจที่จะรู้ว่ามีใครทำให้ราคานี้ถูกลงหรือมีวิธีอื่นที่ประหยัดกว่าในการทำตู้ที่ฉันสามารถลองทำในโปรเจ็กต์ถัดไป
แนะนำ:
Lego Portable Gaming Console พร้อม Space Invaders: 4 ขั้นตอน
Lego Portable Gaming Console พร้อม Space Invaders: คุณเคยคิดที่จะเป็นผู้พัฒนาเกมและสร้างคอนโซลเกมของคุณเองซึ่งคุณสามารถเล่นได้ทุกที่ทุกเวลาหรือไม่? สิ่งที่คุณต้องมีคือเวลาเพียงเล็กน้อย hardwareLego bricksa Mini-Calliope (สามารถสั่งซื้อได้ที่เว็บไซต์ https://calliope.cc/en) และทักษะบางอย่าง
LCD Invaders: Space Invaders Like Game บนจอแสดงผล LCD ขนาด 16x2: 7 ขั้นตอน
LCD Invaders: Space Invaders Like Game บนจอแสดงผล LCD ขนาด 16x2: ไม่จำเป็นต้องแนะนำเกม "Space Invaders" ในตำนาน คุณลักษณะที่น่าสนใจที่สุดของโครงการนี้คือการใช้การแสดงข้อความสำหรับการแสดงผลแบบกราฟิก ทำได้โดยใช้อักขระที่กำหนดเอง 8 ตัว คุณสามารถดาวน์โหลด Arduino
Space Invaders ใน Micropython บน Micro:bit: 5 ขั้นตอน
Space Invaders ใน Micropython บน Micro:bit: ในบทความก่อนหน้าของเรา เราได้สำรวจการสร้างเกมบน GameGo ซึ่งเป็นคอนโซลเกมย้อนยุคแบบพกพาที่พัฒนาโดยการศึกษาของ TinkerGen เกมที่เราสร้างนั้นชวนให้นึกถึงเกม Nintendo รุ่นเก่าๆ ในบทความของวันนี้ เราจะย้อนกลับไปที่
วิธีสร้าง Space Invaders บน Micro Bit.: 4 ขั้นตอน
วิธีสร้าง Space Invaders บน Micro Bit: ดังนั้นขั้นตอนแรกคือการสร้างเรือของเรา คุณไปที่ "พื้นฐาน" และเพิ่ม "เมื่อเริ่มต้น" บล็อก. จากนั้นไปที่ "ตัวแปร" และคุณสร้างตัวแปรชื่อ "SHIP" และเลือกบล็อกจากส่วน "ตัวแปร" แท็บเ
Space Invaders Chandelier with Glow in the Dark Action: 16 ขั้นตอน (พร้อมรูปภาพ)
Space Invaders Chandelier With Glow in the Dark Action: ใช้การสร้างแบบจำลอง/การพิมพ์ 3 มิติ, อะครีลิคตัดด้วยเลเซอร์, การหล่อเรซิน, เม็ดสีปฏิกิริยา UV, ไฟ LED และการเดินสายไฟที่เรียบง่ายเพื่อสร้างโคมระย้าหรือโคมไฟผู้บุกรุกพื้นที่เย็นสไตล์ย้อนยุคและย้อนยุค ฉันได้รวมเคล็ดลับดีๆ ในการทำมุมโค้งด้วยเลเซอร์ค