
สารบัญ:
2025 ผู้เขียน: John Day | [email protected]. แก้ไขล่าสุด: 2025-01-23 15:12


เนื่องจากฉันรักทั้งเครื่องพินบอลและอุปกรณ์อิเล็กทรอนิกส์มาตลอด ฉันจึงตัดสินใจสร้างเครื่องพินบอลของตัวเอง ฉันเลือก Arduino สำหรับการเขียนโปรแกรมและอุปกรณ์อิเล็กทรอนิกส์ เพราะเป็นแพลตฟอร์มที่เข้าถึงได้ง่ายซึ่งมีทั้งกะทัดรัดและใช้งานง่าย
ในคู่มือนี้ ฉันจะอธิบายขั้นตอนการพัฒนาของฉัน ดังนั้นบางทีหนึ่งในผู้ที่ชื่นชอบของคุณอาจสร้างบางสิ่งที่เหมือนกัน
ขั้นตอนที่ 1: สร้างเคส

เริ่มจากกรณีของเครื่องพินบอลกัน ฉันสร้างโครงสร้างที่ค่อนข้างง่าย ฉันเลื่อยแผ่นด้านล่างออก และใช้เสาไม้เล็กๆ 4 อันตรงมุมเพื่อเชื่อมชิ้นผนัง ขนาดของเคสของคุณคือทางเลือกของคุณเอง ฉันเลือกที่จะทำให้มันเล็กกว่าเครื่องพินบอลดั้งเดิมเล็กน้อย เนื่องจากฉันไม่ได้วางแผนที่จะเพิ่มสิ่งพิเศษสุดตระการตาเพื่อเติมเต็มพื้นที่ ฉันใช้ทั้งสกรูและกาวเพื่อทำให้เคสมั่นคงที่สุด ที่ด้านหลังฉันเจาะรูสองรูในชิ้นส่วนพื้นสำหรับขาทั้งสองข้าง ซึ่งจะทำให้เครื่องพินบอลมีความเอียงที่เป็นสัญลักษณ์ อีกครั้งความสูงของขาขึ้นอยู่กับคุณ ยิ่งคุณทำให้ขาสูงเท่าไหร่ ลูกก็จะยิ่งกลิ้ง (ลง) เร็วขึ้นเท่านั้น
ขั้นตอนที่ 2: การสร้างช่างตีนกบ

เนื่องจากฉันต้องการจำกัดค่าใช้จ่ายของโปรเจ็กต์นี้ ฉันจึงตัดสินใจสร้างตีนกบแบบกลไกทั้งหมดแทนแบบอิเล็กทรอนิกส์ หากคุณสนใจครีบไฟฟ้า คุณสามารถใช้โครงสร้างที่ค่อนข้างเหมือนกัน แต่มี "โซลินอยด์" ที่เชื่อมต่ออยู่ด้วย (โซลินอยด์ที่มีกำลังเพียงพอในการควบคุมครีบนั้นแพงเกินไปสำหรับฉัน)
ฉันเริ่มต้นด้วยการเจาะสองรูที่ด้านล่างเพื่อหาจุดหมุนของครีบทั้งสอง ฉันเจาะรู (ในความคิดของฉัน) ใกล้กันเกินไปเล็กน้อย และทำให้เกมนี้ง่ายเกินไปในตอนท้าย ดังนั้น ระวังอย่าวางครีบใกล้กันเกินไป นอกเสียจากว่าคุณต้องการรูปแบบการเล่นที่ง่าย
ฉันยังเจาะสองรูที่ผนังทั้งสองข้างขนานกับรูตีนกบ รูเหล่านี้ใช้สำหรับปุ่มตีนกบสองปุ่ม
ฉันใช้สปริงดึงตีนกบกลับเข้าที่เดิม และทำโครงสร้างหมุนไปมาระหว่างครีบและปุ่มต่างๆ เพื่อให้หมุนเมื่อกดปุ่ม เพื่อป้องกันไม่ให้สปริงดึงตีนกบกลับไปไกลเกินไป ฉันจึงใส่สกรูสองตัวเพื่อยึดตีนกบในตำแหน่งเดิม
ขั้นตอนที่ 3: การวางกำแพง

ฉันวางกำแพงสองสามกำแพงเพื่อเปลี่ยนเส้นทางพินบอลไปทางครีบ พวกเขาทำง่ายมาก เพียงเจาะ 3 รูที่ด้านล่างของเคส แล้วดันหมุดไม้สามอันเข้าไป พันหนังยางรอบหมุดแล้วเสร็จ
ขั้นตอนที่ 4: การเพิ่มบล็อคคะแนน


บล็อคคะแนนเป็นส่วนที่สำคัญที่สุดอย่างหนึ่งของเครื่องพินบอล ดังนั้นตรวจสอบให้แน่ใจว่าคุณทำส่วนนี้ถูกต้อง ฉันสร้างบล็อคคะแนนสามช่วงสำหรับเครื่องพินบอลของฉัน แต่ทั้งหมดนี้ขึ้นอยู่กับคุณ
ฉันเลื่อยไม้กวาดชิ้นเล็กๆ แล้วพันลวดทองแดงไว้รอบๆ Arduino จะให้พลังงานแก่ลวดทองแดงนี้อย่างต่อเนื่องด้วย 5V ฉันบัดกรีสปริงปากกาสี่ตัวที่ด้านข้างเพื่อให้สัมผัสกับลูกบอลได้ดีขึ้น
วิธีการทำงานของบล็อคคะแนน คือ ลูกบอลจะสร้างวงจรที่นำไปสู่พินอินพุตบน Arduino สิ่งที่ฉันทำคือติดเทปอลูมิเนียมฟอยล์ที่ด้านล่างของเคส (ห้ามแตะทองแดง) แล้วต่อฟอยล์เข้ากับหมุดบน Arduino เมื่อใดก็ตามที่ลูกบอลกระทบทั้งทองแดงและอลูมิเนียม วงจรจะสมบูรณ์ และ Arduino จะรับสัญญาณ
ฉันเชื่อมต่อบล็อคคะแนนทั้งหมดเข้าด้วยกันโดยใช้ฟอยล์อลูมิเนียม แต่จำไว้ว่าด้านที่เหนียวจะไม่นำไฟฟ้า
ขั้นตอนที่ 5: การเพิ่ม Game Over Contact

ที่ด้านล่างของเครื่องพินบอล ระหว่างครีบ ฉันได้เพิ่มเกมผ่านการสัมผัส เมื่อใดก็ตามที่ลูกบอลโดนหน้าสัมผัสนี้ ผู้เล่นจะเสียลูกบอล โครงสร้างที่ฉันทำนั้นเหมือนกับบล็อคคะแนนมาก เฉพาะที่นี่เท่านั้นที่ฉันใช้สกรูสองตัวและแผ่นอลูมิเนียมฟอยล์อีกครั้งที่ด้านล่าง
ขั้นตอนที่ 6: เจาะรูเคเบิล



ก่อนที่เราจะเริ่มเดินสายทุกอย่างจนถึง Arduino เราต้องเจาะรูสองสามรูสำหรับสายเคเบิลก่อน ฉันเจาะรูหนึ่งรูผ่านแผ่นอะลูมิเนียมฟอยล์ทั้งสองชิ้น ดังนั้นหนึ่งรูในแผ่นอะลูมิเนียมฟอยล์ใกล้กับบล็อคคะแนน และอีกหนึ่งรูในฟอยล์อะลูมิเนียมใกล้กับเกมมากกว่าการสัมผัส
นอกจากนี้ ฉันยังเจาะรูที่ด้านล่างซ้าย ระหว่างผนัง สำหรับสายเคเบิลที่นำไปสู่เซอร์โวบอลเกทพิเศษ
ควรมีรูสำหรับสายเคเบิลที่เชื่อมต่อกับ LCD ที่ด้านล่าง
ขั้นตอนที่ 7: การเดินสายไฟทุกอย่างขึ้น


ฉันสร้างแผนผังนี้เพื่อให้เห็นภาพรวมที่ดีขึ้นว่าสายเคเบิลทั้งหมดควรไปที่ใด กากบาทเป็นจุดที่สายเคเบิลเชื่อมต่อ ฉันพยายามประสานให้มากที่สุดเพื่อให้ทุกอย่างมีเสถียรภาพและเชื่อถือได้มากขึ้น การเดินสายไฟจะใช้เวลาสักครู่ แต่หลังจากนี้เสร็จสิ้น คุณก็เกือบเสร็จแล้ว!
ขั้นตอนที่ 8: การอัปโหลดรหัส
อัปโหลดรหัสต่อไปนี้ไปยัง Arduino ของคุณเพื่อทำให้เครื่องพินบอลของคุณใช้งานได้จริง!
// รวมไลบรารีสำหรับจอแอลซีดี
#รวม #รวม
// เริ่มต้นหมุดข้อมูล LCD
LiquidCrystal LCD (7, 8, 9, 10, 11, 12);
// สร้างเซอร์โว
เซอร์โว ballGateServo;
// สร้างตัวแปรสำหรับพินที่เราใช้
int gameoverPin = 6; int scorePin = 5; int speakerPin = 4; int ballGateServoPin = 3;
// เริ่มต้นตัวแปรการเล่นเกมสำหรับเครื่องพินบอล
คะแนน int = 0; คะแนนสูงสุด int = 500; bool highscoreReached = เท็จ; ลูก int = 3; int gameoverTimer = 0; int gameoverTimerDuration = 100; bool gameoverTriggered = false;
//รันโค้ดนี้หนึ่งครั้งที่เฟรมแรก
การตั้งค่าเป็นโมฆะ () {// ตั้งค่า pinMode สำหรับพินที่เราใช้ pinMode (gameoverPin, INPUT); pinMode(scorePin, INPUT);
// เริ่มต้น LCD โดยให้ความกว้างและความสูง
lcd.begin(16, 2);
// ติดเซอร์โวบอลเกทเข้ากับพินที่เหมาะสม
ballGateServo.attach (ballGateServoPin);
// รีเซ็ตเกทเซอร์โวไปที่ตำแหน่งเริ่มต้น
ballGateServo.write(0); }
// รันโค้ดนี้ทุกๆ เฟรม
วงเป็นโมฆะ () {// จับอินพุตพิน int gameoverState = digitalRead (gameoverPin); int scoreState = digitalRead (scorePin);
// เพิ่มคะแนนหากได้รับอินพุต
ถ้า (scoreState) { โทน (speakerPin, 1000); คะแนน += 10; } อื่น ๆ { noTone(4); }
// ลบออกจากลูกบอลถ้า gameover pit ถูกทริกเกอร์
ถ้า (gameoverState และ !gameoverTriggered) { ลูก -= 1; gameoverTriggered = จริง; gameoverTimer = gameoverTimer Duration; }
// เริ่มจับเวลาเกมโอเวอร์ทันทีที่ลูกบอลไม่ได้สัมผัสตัวเกมโอเวอร์
if (!gameoverState) { ถ้า (gameoverTimer >= 1) { gameoverTimer - = 1; } อื่น ๆ { gameoverTriggered = false; } }
// กะพริบข้อความ gameover ไปที่ LCD แล้วรีเซ็ตคะแนนและลูก
ถ้า (ลูก <= 0) { lcd.setCursor(0, 0); สำหรับ (int i = 5; i>= 1; i--) { lcd.clear(); ล่าช้า (250); lcd.print("จบเกม"); lcd.setCursor(0, 1); lcd.print("ลองอีกครั้ง?"); ล่าช้า (250); } lcd.clear(); คะแนน = 0; ballGateServo.write(0); คะแนนสูงสุดถึง = เท็จ; ลูก = 3; }
ถ้า (คะแนน > คะแนนสูงสุด และ !highscoreReached) {
lcd.setCursor(0, 0); สำหรับ (int i = 5; i >= 1; i--) { lcd.clear(); ล่าช้า (250); lcd.print("คะแนนสูงสุดใหม่"); lcd.setCursor(0, 1); lcd.print("เสียชีวิตอย่างกะทันหัน!"); ล่าช้า (250); } lcd.clear(); ลูก = 1; ballGateServo.write (120); คะแนนสูงสุด = คะแนน; คะแนนสูงสุดถึง = จริง; }
// อัปเดตคะแนนสูงสุดหากคะแนนปัจจุบันสูงกว่า
ถ้า (คะแนน > คะแนนสูงสุด) { คะแนนสูงสุด = คะแนน; }
// ตั้งค่าเคอร์เซอร์เป็นบรรทัด 0
lcd.setCursor(0, 0); // พิมพ์คะแนนปัจจุบัน (สูง) ไปที่จอแอลซีดีหาก (คะแนน <= 0) { lcd.print ("คะแนนสูงสุด: " + สตริง (คะแนนสูงสุด) + " "); } อื่น ๆ { lcd.print ("คะแนน: " + สตริง (คะแนน) + " "); }
// ตั้งเคอร์เซอร์ไปที่บรรทัด 1
lcd.setCursor(0, 1);
// พิมพ์จำนวนลูกบอลปัจจุบันไปยังจอแอลซีดี
lcd.print("Balls:" + String(balls)); }
แนะนำ:
เครื่องพินบอล Arduino ที่เล่นเอง!: 13 ขั้นตอน (พร้อมรูปภาพ)

Arduino Pinball Machine ที่เล่นได้เอง!: "เครื่องพินบอลที่เล่นเองได้ มันไม่สนุกเหรอ" ฉันได้ยินคุณถาม บางทีถ้าคุณไม่ได้เป็นหุ่นยนต์อิสระก็อาจจะ อย่างไรก็ตาม ฉันสนใจที่จะสร้างหุ่นยนต์ที่สามารถทำสิ่งดีๆ ได้อย่างเต็มที่ และอันนี้
Bolt - DIY Wireless Charging Night Clock (6 ขั้นตอน): 6 ขั้นตอน (พร้อมรูปภาพ)

Bolt - DIY Wireless Charging Night Clock (6 ขั้นตอน): การชาร์จแบบเหนี่ยวนำ (เรียกอีกอย่างว่าการชาร์จแบบไร้สายหรือการชาร์จแบบไร้สาย) เป็นการถ่ายโอนพลังงานแบบไร้สาย ใช้การเหนี่ยวนำแม่เหล็กไฟฟ้าเพื่อจ่ายกระแสไฟฟ้าให้กับอุปกรณ์พกพา แอปพลิเคชั่นที่พบบ่อยที่สุดคือ Qi Wireless Charging st
Arduino ที่ถูกที่สุด -- Arduino ที่เล็กที่สุด -- Arduino Pro Mini -- การเขียนโปรแกรม -- Arduino Neno: 6 ขั้นตอน (พร้อมรูปภาพ)

Arduino ที่ถูกที่สุด || Arduino ที่เล็กที่สุด || Arduino Pro Mini || การเขียนโปรแกรม || Arduino Neno:…………………………… โปรดสมัครสมาชิกช่อง YouTube ของฉันสำหรับวิดีโอเพิ่มเติม……. โปรเจ็กต์นี้เกี่ยวกับวิธีเชื่อมต่อ Arduino ที่เล็กที่สุดและถูกที่สุดเท่าที่เคยมีมา Arduino ที่เล็กที่สุดและถูกที่สุดคือ arduino pro mini คล้ายกับ Arduino
4 ขั้นตอน Digital Sequencer: 19 ขั้นตอน (พร้อมรูปภาพ)

4 ขั้นตอน Digital Sequencer: CPE 133, Cal Poly San Luis Obispo ผู้สร้างโปรเจ็กต์: Jayson Johnston และ Bjorn Nelson ในอุตสาหกรรมเพลงในปัจจุบัน ซึ่งเป็นหนึ่งใน “instruments” เป็นเครื่องสังเคราะห์เสียงดิจิตอล ดนตรีทุกประเภท ตั้งแต่ฮิปฮอป ป๊อป และอีฟ
ป้ายโฆษณาแบบพกพาราคาถูกเพียง 10 ขั้นตอน!!: 13 ขั้นตอน (พร้อมรูปภาพ)

ป้ายโฆษณาแบบพกพาราคาถูกเพียง 10 ขั้นตอน!!: ทำป้ายโฆษณาแบบพกพาราคาถูกด้วยตัวเอง ด้วยป้ายนี้ คุณสามารถแสดงข้อความหรือโลโก้ของคุณได้ทุกที่ทั่วทั้งเมือง คำแนะนำนี้เป็นการตอบสนองต่อ/ปรับปรุง/เปลี่ยนแปลงของ: https://www.instructables.com/id/Low-Cost-Illuminated-