สารบัญ:
- ขั้นตอนที่ 1: พิมพ์ตัวพิมพ์
- ขั้นตอนที่ 2: การประกอบเคส
- ขั้นตอนที่ 3: วงจร
- ขั้นตอนที่ 4: วงจรต่อพ่วง
- ขั้นตอนที่ 5: การเขียนโปรแกรม
- ขั้นตอนที่ 6: ตัวเลือก Dock
- ขั้นตอนที่ 7: ผลลัพธ์
วีดีโอ: เกมคอนโซลแบบโฮมเมด - "NinTIMdo RP": 7 ขั้นตอน (พร้อมรูปภาพ)
2024 ผู้เขียน: John Day | [email protected]. แก้ไขล่าสุด: 2024-01-30 13:06
ลิงก์ไปยังหน้าเว็บพร้อมคำอธิบายโดยละเอียด รายการชิ้นส่วน และไฟล์
timlindquist.me
โปรเจ็กต์นี้คือการสร้างระบบเกมพกพาที่สามารถเพิ่มเป็นสองเท่าของคอมพิวเตอร์พกพาได้ เป้าหมายคือการสร้างคอนโซลที่ใช้งานได้จริงและสวยงาม
ส่วนรายการ:
docs.google.com/spreadsheets/d/1Ay6-aW4nAt…
ขั้นตอนที่ 1: พิมพ์ตัวพิมพ์
หากต้องการพิมพ์อุปกรณ์ ให้ดาวน์โหลดไฟล์โมเดล 3 มิติของฉัน และส่งไปยังเครื่องพิมพ์ 3 มิติของคุณ เครื่องพิมพ์ที่ฉันใช้คือ Prusa i3 Mk2 พร้อมด้วยเส้นใยพลาสติกสีดำ พบว่าคุณภาพการพิมพ์ดีที่สุดในการตั้งค่าความละเอียดปานกลาง ตรวจสอบให้แน่ใจว่าได้เพิ่มวัสดุโครงสร้างภายใต้อุปกรณ์ (ด้ามจับจะดูไม่ดีหากไม่มี) แผ่นหลังถูกพิมพ์ด้วยแผ่นปิดด้านหลังด้วยแผ่นเสียง ด้านหน้าถูกพิมพ์โดยด้านหน้าเรียบด้วยแผ่นเสียง ถ้าจะพิมพ์อีกกรณีหนึ่ง ผมอยากจะใช้สีใหม่ เช่น ม่วงอะตอม เพื่อแสดงภายใน ถ้าคุณเป็นเหมือนผมและมีเตียงพิมพ์ขนาด 8 นิ้วที่จะใช้งานด้วย คุณจะต้องพิมพ์รุ่น 4 ชิ้นซึ่ง จะประกอบหลังจากพิมพ์ อย่างไรก็ตาม หากเตียงของคุณมีขนาดใหญ่พอที่จะทำเป็นชิ้นเดียว ให้พิมพ์แผ่นด้านหน้าและด้านหลังเป็นชิ้นเดียว และหลีกเลี่ยงความเจ็บปวดจากการประกบเข้าด้วยกัน
ไฟล์รุ่น:
github.com/timlindquist/Nintimdo-RP_3D_mod…
ขั้นตอนที่ 2: การประกอบเคส
ในการประกอบชิ้นส่วนด้านหน้าขวาและซ้ายก่อนโดยใส่เดือยโลหะลงในรูจัดตำแหน่ง ถัดไปวางกาวซุปเปอร์บนข้อต่อและยึดครึ่งไว้ด้วยกัน ทำซ้ำขั้นตอนด้านล่างขวาและซ้ายมี หลังจากนี้คุณควรปล่อยให้ประกอบครึ่งหน้าและหลัง ตอนนี้ได้เวลาติดขาตั้งโลหะ 5 อันเพื่อรวมเพลตด้านหน้าและด้านหลังเข้าด้วยกัน วิธีที่ง่ายที่สุดในการทำเช่นนี้คือขั้นแรกให้ตั้งระยะให้ถูกต้องก่อน ความลึก 13 มม. ความลึกด้านหน้า 5 มม. ดังนั้นทำให้ขัดแย้งกัน 18 มม. หรือน้อยกว่านั้นเล็กน้อย ฉันทำสิ่งนี้โดยวางข้อขัดแย้งที่ยาวขึ้นในคีมจับรอง และใช้เครื่องบดเพื่อลดขนาดลง ตรวจสอบให้แน่ใจว่าได้บดเพียงด้านเดียวเท่านั้นเพราะคุณจะต้องใช้ด้ายที่อีกด้านหนึ่ง หลังจากที่คุณได้กาวที่มีความยาวถูกต้องแล้ว ให้บดด้านหน้าทั้งหมดโดยใช้กาวกอริลลาปกติแล้วปล่อยให้แห้ง ตรวจสอบให้แน่ใจว่าพวกเขายืนตัวตรงในระหว่างกระบวนการนี้ เมื่อแห้งแล้ว ให้ขูดกาวชั้นดีที่เกิดฟองขึ้นเพื่อให้ใบหน้าสะอาดเมื่อประกอบเข้าด้วยกัน ตอนนี้ดูว่าคุณสามารถใส่แผ่นหลังเข้ากับแท่นรองเพื่อเชื่อมต่อกับด้านหน้าได้หรือไม่ ขันสกรูเข้าด้วยกันผ่านแผ่นหลังเพื่อยึด ติดกาวหน้าจอโดยบุกรอบด้วย Gorilla Epoxy หลอดดวล ฉันใส่มากเกินไปเมื่อฉันทำสิ่งนี้และมันล้นบนหน้าจอ โชคดีที่หลุด! หนีบและปล่อยให้แห้งสักครู่แล้ววางด้านหลังด้วยกาวกอริลลาธรรมดา
**หมายเหตุ: พยายามอย่าให้กาว CA แบบบาง (ซุปเปอร์กาว) ที่ด้านนอก เพราะจะทำให้ PLA ไหม้และทำให้เป็นสีขาว
ขั้นตอนที่ 3: วงจร
วงจรปุ่ม:
การจับภาพการกดปุ่มทั้งหมดทำได้โดยใช้ Teensy ++ 2.0 หมุดดิจิตอลบนไมโครคอนโทรลเลอร์ใช้สำหรับปุ่มกดแบบไบนารี หมุดอะนาล็อกใช้สำหรับปุ่มที่มีหลายสถานะ เช่น จอยสติ๊ก ในการต่อสายพินดิจิทัลแบบง่าย ๆ ให้ต่อพินดิจิทัลเข้ากับสวิตช์ ให้ปลายอีกด้านของสวิตช์ต่อสายกราวด์ เมื่อกดปุ่มจะดึงพินไฟฟ้าแรงสูงลงเพื่อให้คอนโทรลเลอร์สัมผัสได้ คุณไม่จำเป็นต้องกังวลเกี่ยวกับตัวต้านทานเนื่องจากจะรวมอยู่ในบอร์ด Teensy ในการต่อสายพินอนาล็อก คุณจะต้องไบแอสอุปกรณ์แอนะล็อกของคุณด้วยแรงดันไฟฟ้าสูงและต่ำ และอ่านระดับแรงดันไฟฟ้าที่อยู่ในช่วงนั้นบนพินอะนาล็อก สำหรับจอยสติ๊กมี 3 อินพุตสำหรับแต่ละแกน จ่าย 5V ให้กับหมุดตัวใดตัวหนึ่ง GND ไปยังอีกตัวหนึ่งและแรงดันไฟฟ้าอ่านบรรทัดสุดท้าย ตรวจสอบให้แน่ใจว่าได้เชื่อมต่ออย่างถูกต้อง มิฉะนั้น มันจะไม่ทำงาน (ใช้มัลติมิเตอร์เพื่อดูว่าแรงดันเอาต์พุตเปลี่ยนแปลงบนพินที่ถูกต้องหรือไม่) โดยพื้นฐานแล้วจอยสติ๊กคือตัวต้านทานแบบปรับได้ที่ทำงานเหมือนตัวแบ่งแรงดัน แรงดันไฟขาออกบนขาอ่านจะแตกต่างกันไประหว่าง 0 ถึง 5V ขึ้นอยู่กับตำแหน่งของจอยสติ๊ก (โดยปกติอคติ 5V และ GND จะอยู่ที่พินอินพุตด้านนอกของจอยสติ๊ก และอันตรงกลางจะเป็นพินการอ่านแรงดันไฟฟ้าแบบแปรผันของคุณ หาก 5V และ GND ต่างจากของฉัน การควบคุมของคุณจะถูกกลับด้าน สิ่งนี้สามารถแก้ไขได้ในซอฟต์แวร์หรือการเดินสายใหม่).
วงจรไฟฟ้า:
แบตเตอรี่ Anker สามเซลล์จ่ายพลังงานให้กับอุปกรณ์ทั้งหมด ในการเปิด/ปิดอุปกรณ์ เอาต์พุตของตัวควบคุมแบตเตอรี่จะต่อสายเข้ากับสวิตช์แล้วตามด้วย Raspberry Pi เนื่องจากอุปกรณ์สามารถดึงได้ถึง 2A สวิตช์สลับแบบธรรมดา 250mA จึงไม่สามารถรองรับความต้องการในปัจจุบันได้ คุณสามารถใช้สวิตช์เพื่อควบคุมแรงดันเกทบนทรานซิสเตอร์ PMOS เพื่อใช้แทนสวิตช์ได้ ต่อแบตเตอรี่ 5V เข้ากับแหล่งกำเนิดทรานซิสเตอร์ PMOS และสวิตช์ ปลายอีกด้านของสวิตช์เชื่อมต่อกับเกตของทรานซิสเตอร์ PMOS และต่อกับตัวต้านทาน 10K ที่เชื่อมต่อกับ GND (เมื่อสวิตช์เปิดอยู่เพื่อป้องกันไม่ให้เกทลอย จะผูกกับ GND ผ่านตัวต้านทาน) ท่อระบายน้ำเชื่อมต่อกับอินพุต 5V บน Raspberry Pi พร้อมกับกราวด์ ในการชาร์จแบตเตอรี่ เพียงต่อบอร์ดฝ่าวงล้อม micro USB ตัวเมียเข้ากับพินการชาร์จที่ถูกต้อง (ขยายอินพุตไปที่เคส) ฉันซ่อนสวิตช์นี้ในช่องอากาศเข้าที่ด้านหลังของอุปกรณ์ เดิมทีฉันวางแผนที่จะให้ปุ่มแบตเตอรี่เปิดและปิดอุปกรณ์โดยกดปุ่มค้างไว้เป็นระยะเวลาหนึ่ง น่าเสียดายที่ฉันไม่มีที่ว่างและต้องทำการใช้งานอย่างง่าย การออกแบบทางเลือกนี้แสดงในแผนผังด้านล่าง
วงจรเสียง:
สำหรับเสียง ฉันต้องการให้เสียงเล่นออกจากลำโพงอย่างเป็นธรรมชาติ (ถ้าไม่ได้ปิดเสียงไว้) และเปลี่ยนเส้นทางไปยังหูฟังหากเสียบปลั๊ก โชคดีที่แจ็คโทรศัพท์หัวขนาด 3.5 มม. ตัวเมียจำนวนมากสามารถทำสิ่งนี้ได้ทางกลไก เมื่อเสียบปลั๊กตัวผู้ ลีดของลำโพงจะโค้งงอและสร้างวงจรเปิด จึงป้องกันไม่ให้สัญญาณไปถึงลำโพง เนื่องจากลำโพงมีขนาดใหญ่กว่าจึงต้องขยายสัญญาณเสียงเพื่อให้สามารถได้ยินได้ ทำได้โดยใช้แอมพลิฟายเออร์สเตอริโอคลาส D ที่ฉันพบใน adafruit เพียงแค่ไบแอสแอมพลิฟายเออร์กับ 5V และ GND เราไม่มีอินพุตเสียงที่ต่างกัน ดังนั้นให้ต่อลำโพงด้านซ้ายและขวาเข้ากับขั้วบวก และผูกขั้วลบกับ GND เกนจะถูกปรับโดยใช้จัมเปอร์ ฉันตั้งค่าเกนเป็นสูงสุดและกำลังเปลี่ยนแอมพลิจูดของสัญญาณเสียงที่ส่งออกผ่านซอฟต์แวร์เพื่อปรับระดับเสียง ในการปิดเสียงอุปกรณ์ ฉันมีทรานซิสเตอร์ NMOS ที่ควบคุมอคติ 5V ประตูทรานซิสเตอร์ NMOS นี้ถูกควบคุมโดย Teensy ปัญหาที่ฉันมีคือเสียงความถี่สูงคงที่ในลำโพงภายนอก ฉันจะวิเคราะห์สิ่งนี้บนออสซิลโลสโคปซึ่งอาจมาจากอคติ 5V เนื่องจากการสลับตัวควบคุมที่แบตเตอรี่หรือสายอาจหยิบ RF ที่ไหนสักแห่ง นอกจากนี้ อย่าลืมบิดเส้นขวาและซ้ายเพื่อลดการรบกวนทางแม่เหล็กไฟฟ้า (EMI)
ขั้นตอนที่ 4: วงจรต่อพ่วง
วงจรนี้มีที่ยึด USB และไฟ LED สั่งซื้อ PCB ในลิงค์ของฉันแล้วตัดครึ่งตามเส้นประโดยใช้เลื่อยวงเดือน ที่ด้าน USB ทั้งหมดประสานพอร์ต USB ตัวเมียสองตัวเข้ากับบอร์ด ที่ด้าน LED บัดกรี LED 5 ตัวและตัวต้านทาน 5 ตัวในซีรีย์ 5V, GND, D+, D- สามารถขยายได้โดยใช้สายไฟจาก USB ที่ถอดแยกจาก Raspberry PI ไปยัง PCB สามารถวาง LED PCB เพื่อให้แสงส่องผ่านรูที่ด้านบนของเคสได้ Wire 5 PWM เอาต์พุตของ Teensy ไปยัง LED พร้อมกับ GND คุณสามารถเปลี่ยนความสว่างของ LED ได้โดยการเปลี่ยนรอบการทำงาน
สั่งซื้อ PCB:
ขั้นตอนที่ 5: การเขียนโปรแกรม
วัยรุ่น:
หากคุณต่อสายแบบเดียวกับฉัน คุณสามารถใช้รหัสที่ฉันให้ไว้ใน Github ได้ อย่างไรก็ตาม ฉันขอแนะนำให้เขียนด้วยตัวเองเพราะคุณจะเข้าใจระบบได้ดีขึ้น และสามารถจัดการและปรับแต่งตามความชอบของคุณได้อย่างง่ายดาย การเขียนโปรแกรมนั้นง่ายมาก มันขึ้นอยู่กับการเขียนคำสั่ง if เพื่อตรวจสอบว่าปุ่มของคุณถูกกดหรือไม่ ชุดคำสั่งที่เป็นประโยชน์จาก PJRC คุณสามารถใช้ Arduino IDE เพื่อเขียนโค้ดและอัปโหลดไปยัง Teensy
รหัส:
github.com/timlindquist/Nintimdo-RP
ปุ่มดิจิตอล: ตัวอย่างนี้แสดงให้ฉันตรวจสอบเพื่อดูว่ามีการกดพินดิจิตอล 20 หรือไม่ จากนั้นจึงแสดงคำสั่งจอยสติ๊กแบบอนุกรมที่ถูกต้อง คุณสามารถเลือกปุ่มใดก็ได้ตั้งแต่ 1 ถึง 32 เนื่องจาก Retropie ทำการตั้งค่าการแมปคอนโทรลเลอร์ตั้งแต่เริ่มต้น Joystick.button (ปุ่ม: 1-32, กด = 1 ออก = 0)
ปุ่มอนาล็อก:
ในตัวอย่าง จอยสติ๊กแนวตั้งแนวตั้งถูกต่อเข้ากับขาอะนาล็อก 41 ฟังก์ชัน analogRead(พิน) ได้รับระดับแรงดันไฟฟ้าระหว่าง 0 ถึง 5V และคืนค่าเป็น 0 ถึง 1023 ตำแหน่งศูนย์กลางในอุดมคติจะสอดคล้องกับ 2.5V หรือ 512 อย่างไรก็ตามนี่ไม่ใช่กรณีสำหรับแท่งอนาล็อกของฉันดังนั้นจึงจำเป็นต้องทำการปรับ ซึ่งทำได้ผ่านการรีแมปที่แสดงด้านล่าง หลังจากนั้นฉันต้องตรวจสอบว่าขอบเขตไม่เกิน 0 ถึง 1,023 หรือไม่ สุดท้ายคำสั่งจอยสติ๊กแบบอะนาล็อกถูกส่งผ่านซีเรียลเป็นปุ่มแอนะล็อก Z โดยใช้ Joystick. Z (ค่า 0 ถึง 1023)
ขั้นตอนที่ 6: ตัวเลือก Dock
ท่าเรือ:
บิลด์นี้จะไม่สมบูรณ์หากไม่มีแท่นชาร์จและต่อทีวีได้ง่าย ดังนั้นฉันจึงออกแบบอันหนึ่งในภาพด้านล่าง โมเดล 3 มิติมีให้พร้อมกับรุ่นอื่นๆ ในแพ็คเกจ Github ของฉัน
รุ่น:
github.com/timlindquist/Nintimdo-RP_3D_mod…
ขั้นตอนที่ 7: ผลลัพธ์
เมื่อมองย้อนกลับไป ฉันหวังว่าฉันจะทำพอร์ต HDMI ออกด้วย PCB แทนตัวยึดติดผนังตัวเมียที่ซื้อไว้ล่วงหน้า สิ่งนี้จะช่วยประหยัดพื้นที่ได้มากจริง ๆ แล้วฉันต้องมัดสายเคเบิลเป็นเกลียวเพื่อหลีกเลี่ยงการตัดและบัดกรีสายไฟ 19 เส้นอีกครั้ง ฉันมีปัญหากับการใช้แบตเตอรี่ขนาดเล็กกว่าเพราะความสูงของเซลล์เป็นปัจจัยจำกัดความหนาของอุปกรณ์ทั้งหมดของฉัน อย่างไรก็ตาม การลดสิ่งนี้จะส่งผลเสียต่ออายุการใช้งานแบตเตอรี่ของฉัน
โดยรวมแล้วฉันเสียค่าใช้จ่ายประมาณ 350 เหรียญ นี่ไม่รวมถึงราสเบอร์รี่ pi ที่ฉันหักเพื่อพยายามลดขนาด… ยังมีความสุขที่ได้ลอง เป็นโปรเจ็กต์ช่วงฤดูร้อนที่สนุกสนานเพื่อดูว่าฉันจะทำให้มันกะทัดรัดที่สุดเท่าที่จะเป็นไปได้ในขณะเดียวกันก็ใส่ฟีเจอร์เจ๋งๆ มากมายเข้าไปด้วย
แนะนำ:
"ไฮไฟว์" หุ่นยนต์ Cardboard Micro:bit: 18 ขั้นตอน (พร้อมรูปภาพ)
"ไฮไฟว์" หุ่นยนต์ Cardboard Micro:bit: ติดอยู่ที่บ้าน แต่ยังต้องการไฮไฟว์ใครสักคน? เราสร้างหุ่นยนต์ตัวน้อยที่เป็นมิตรด้วยกระดาษแข็งและ micro:bit พร้อมด้วย Crazy Circuits Bit Board และทั้งหมดที่เธอต้องการจากคุณคือการไฮไฟว์เพื่อให้ความรักที่เธอมีต่อคุณมีชีวิตอยู่ ถ้าคุณชอบ
MIDI Sonar "Theremin": 10 ขั้นตอน (พร้อมรูปภาพ)
MIDI Sonar "Theremin": นี่คือเครื่องดนตรีที่ใช้เซ็นเซอร์วัดระยะโซนาร์สองตัวเพื่อควบคุมระดับเสียงและคุณภาพของโน้ต ไม่ใช่ Theremin แน่นอน แต่เป็น "Theremin" ได้กลายเป็นคำศัพท์ทั่วไปสำหรับเครื่องดนตรีที่เล่นโดยการโบกมือ
"Ready Maker" - ควบคุมโครงการ "Lego Power Functions": 9 ขั้นตอน
"Ready Maker" - ควบคุมโครงการ "Lego Power Functions": เรียนรู้วิธีควบคุม Lego "ฟังก์ชั่นพลังงาน" ส่วนประกอบด้วยบอร์ด Arduino และสร้างโครงการของคุณใน "Ready Maker" ตัวแก้ไข (ไม่ต้องใช้รหัส) เพื่อควบคุมโมเดลของคุณจากระยะไกล
HC - 06 (Slave Module) การเปลี่ยน " NAME " โดยไม่ต้องใช้ " Monitor Serial Arduino " ที่ " ใช้งานได้ง่าย ": Faultless Way !: 3 ขั้นตอน
HC - 06 (Slave Module) การเปลี่ยน " NAME " โดยไม่ต้องใช้ " Monitor Serial Arduino "… ที่ " ใช้งานได้ง่าย ": Faultless Way !: After " นาน " ลองเปลี่ยนชื่อเป็น HC - 06 (โมดูลทาส) โดยใช้ " จอภาพอนุกรมของ Arduino โดยไม่มี " สำเร็จ " ฉันพบวิธีง่ายๆ อีกวิธีหนึ่งแล้ว ฉันกำลังแบ่งปันตอนนี้ ! ขอให้สนุกนะเพื่อน
เราเตอร์ CNC 3 แกน - 60"x60"x5" - JunkBot: 5 ขั้นตอน (พร้อมรูปภาพ)
เราเตอร์ CNC 3 แกน - 60"x60"x5" - JunkBot: คำแนะนำนี้เป็นชุดแรกในชุดที่จัดทำเอกสารเกี่ยวกับการสร้างเราเตอร์ CNC 3 แกน DIY นี่เป็นรายการของฉันสำหรับการประกวด Universal Laser Cutter Contest เป้าหมายของคำแนะนำนี้ ไม่ใช่การแสดงทีละขั้นทีละขั้น แต่เป็นการ