สารบัญ:

Cat Ball Shooter: 9 ขั้นตอน (พร้อมรูปภาพ)
Cat Ball Shooter: 9 ขั้นตอน (พร้อมรูปภาพ)

วีดีโอ: Cat Ball Shooter: 9 ขั้นตอน (พร้อมรูปภาพ)

วีดีโอ: Cat Ball Shooter: 9 ขั้นตอน (พร้อมรูปภาพ)
วีดีโอ: แย่งไก่หมา มากินต่อ 🍗 #กินโชว์ #สายประหยัด #ประหยัด #เกร็ดความรู้ #รู้หรือไม่ 2024, พฤศจิกายน
Anonim
Cat Ball Shooter
Cat Ball Shooter

วัสดุที่จำเป็น

1 x RFID เซนเซอร์/ รีโมท

1 x Arduino uno

มอเตอร์ DC 2 ตัว

1 x 180 เซอร์โว

1 x 360 เซอร์โว

หลายสาย

กล่อง/คอนเทนเนอร์สำหรับสร้างโครงการ

ท่อป้อนลูกผ่าน

ขั้นตอนที่ 1: สร้างวงจรเพื่อขับเคลื่อนมอเตอร์และรีโมท

สร้างวงจรเพื่อขับเคลื่อนมอเตอร์และรีโมท
สร้างวงจรเพื่อขับเคลื่อนมอเตอร์และรีโมท
สร้างวงจรเพื่อขับเคลื่อนมอเตอร์และรีโมท
สร้างวงจรเพื่อขับเคลื่อนมอเตอร์และรีโมท

การสร้างวงจร

สร้างวงจรด้านบนและเชื่อมต่อกับพินเดียวกันเพื่อใช้รหัสเดียวกัน

ขั้นตอนที่ 2: สร้างฐานสำหรับมอเตอร์สองตัว

สร้างฐานสำหรับมอเตอร์สองตัว
สร้างฐานสำหรับมอเตอร์สองตัว

คุณจะต้องใช้แผ่นโฟมเพื่อตัดสี่เหลี่ยมด้านข้างขนาด 4, 5 นิ้ว คูณ 2 นิ้ว จากนั้นตัดสี่เหลี่ยมขนาด 2, 5 คูณ 5 นิ้วออกเพื่อใช้เป็นด้านบนและด้านล่าง ถัดมา มอเตอร์จะต้องมีที่สำหรับนั่ง ดังนั้นให้ตัด 2 รูที่มีเส้นผ่านศูนย์กลาง 23 มม. และห่างกัน 39 มม. เพื่อให้มีที่ว่างสำหรับการยิงลูกบอล จากนั้นทำจุดหรือรูสองสามรูที่สี่เหลี่ยมด้านล่างเพื่อให้สายไฟจากมอเตอร์เชื่อมต่อเข้ากับวงจร

ขั้นตอนที่ 3: เพิ่มเซอร์โวที่ด้านล่างของมอเตอร์

เพิ่มเซอร์โวที่ด้านล่างของมอเตอร์
เพิ่มเซอร์โวที่ด้านล่างของมอเตอร์

กาวเซอร์โว 180 หรือ 360 อย่างระมัดระวังที่ด้านล่าง (ตรงกลาง) ของสี่เหลี่ยม เราทำสิ่งนี้เพื่อให้เราสามารถเปลี่ยนทิศทางด้วยตนเองด้วยรีโมทหรือสุ่มเพื่อให้ลูกบอลยิงไปในทิศทางที่ต่างกัน

ขั้นตอนที่ 4: ตัดรูในภาชนะขนาดใหญ่

ตัดรูในภาชนะขนาดใหญ่
ตัดรูในภาชนะขนาดใหญ่
ตัดรูในภาชนะขนาดใหญ่
ตัดรูในภาชนะขนาดใหญ่
ตัดรูในภาชนะขนาดใหญ่
ตัดรูในภาชนะขนาดใหญ่

นำภาชนะขนาดใหญ่มาเจาะด้านหน้าและด้านหลังโดยไม่ต้องเจาะให้แม่นยำ แต่ด้านหน้าควรจะใหญ่พอๆ กับในภาพ เพื่อให้ลูกบอลถูกยิงไปในทิศทางต่างๆ โดยที่เซอร์โวเคลื่อนที่ และด้านหลังของภาชนะตัดเป็นรูเล็ก ๆ เพื่อให้สายไฟออกมาและวางชิ้นส่วนวงจรเข้าหรือเปลี่ยนวงจรหากจำเป็น ด้านหน้าติดกาวเซอร์โวกับฝาของภาชนะหนึ่งแล้วลงบนฐานของภาชนะเพื่อรองรับดูภาพที่สองสำหรับการอ้างอิง

ขั้นตอนที่ 5: ท่อ

ท่อ
ท่อ

ทำหรือซื้อท่อพีวีซีที่มีความยาว 1 ฟุต โดยควรมีส่วนโค้งให้ลูกบอลกลิ้งเข้าไปแล้วตัดเป็นชิ้น 1.5 นิ้ว เพื่อให้ลูกบอลเข้ามา

ขั้นตอนที่ 6: สิ่งที่กระโดด

The Hopper
The Hopper
The Hopper
The Hopper
The Hopper
The Hopper

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

ขั้นตอนที่ 7: การวางถังพัก ท่อ และมอเตอร์

การวางถังพัก ท่อ และมอเตอร์
การวางถังพัก ท่อ และมอเตอร์

คุณจะต้องวางท่อในภาชนะที่นั่งอยู่ตรงขอบกล่องสีขาวที่ทำขึ้นสำหรับมอเตอร์เพื่อให้ลูกออกมาและถูกล้อผลัก ตอนนี้คุณสามารถทากาวบนถังพักที่ด้านบนของท่อ

ขั้นตอนที่ 8: เซอร์โวสุดท้าย

เซอร์โวรอบชิงชนะเลิศ
เซอร์โวรอบชิงชนะเลิศ
เซอร์โวรอบชิงชนะเลิศ
เซอร์โวรอบชิงชนะเลิศ

เซอร์โวนี้ติดกาวที่ด้านล่างของถัง / ที่ท่อที่ฉันตัดเพื่อให้มันยื่นออกมาเพียงพอที่จะที่ลูกปิงจะไม่ตกลงมาจนกว่าจะคลิกปุ่มและเซอร์โวเคลื่อนที่

ขั้นตอนที่ 9: เพิ่มรหัสเพื่อทดสอบชิ้นงาน

เพิ่มรหัสเพื่อทดสอบชิ้นงาน
เพิ่มรหัสเพื่อทดสอบชิ้นงาน

//ช่างซ่อมแมว

//นำเข้าไลบรารีเพื่อใช้คำสั่งตลอดทั้งโค้ด เช่น ประกาศพินเป็นเซอร์โวและตั้งค่ารีโมท IR #include #include

//การตั้งค่าตัวแปรเพื่อกำหนดความเร็วสำหรับมอเตอร์กระแสตรง int onspeed = 255; ความเร็วต่ำ int = 100; int ออฟสปีด = 0;

// การตั้งค่าพินตัวรับอินฟาเรดและพินมอเตอร์สองตัว int IR_Recv = 2; int motor1 = 10; int motor2 = 11;

//ประกาศตัวแปรเป็นเซอร์โวเพื่อให้โปรแกรมรู้ว่าเป็นเซอร์โวที่ใช้คำสั่งเฉพาะแผ่นปิดเซอร์โว; มุมเซอร์โว;

//ประกาศ IR pin เพื่อรับอินพุตจากรีโมท // รับผลลัพธ์จากรีโมท IRrecv irrecv(IR_Recv); ผลลัพธ์ decode_results;

การตั้งค่าเป็นโมฆะ () {

Serial.begin(9600); //เริ่มการสื่อสารแบบอนุกรม irrecv.enableIRIn(); // เริ่มเครื่องรับ

พนังแนบ(7); //ติดแผ่นปิดเซอร์โวเข้ากับพิน 7 เพื่อให้เราสามารถใช้งานได้ในภายหลังในโปรแกรม angle.attach(4); //แนบมุมเซอร์โวกับพิน 4 เพื่อให้เราสามารถใช้งานได้ในภายหลังในโปรแกรม pinMode(motor1, OUTPUT); // ตั้งค่า motor1 เป็นเอาต์พุตเพื่อให้เราสามารถส่งความเร็วเข้าไปเมื่อกดปุ่ม pinMode (motor2, OUTPUT); // ตั้งค่า motor2 เป็นเอาต์พุตเพื่อให้เราสามารถส่งความเร็วเข้าไปเมื่อกดปุ่ม

}

วงเป็นโมฆะ () {

พนัง.write(0); // ตั้งค่าเซอร์โวควบคุมตัวป้อนลูกบอลเป็น 0 องศาเพื่อไม่ให้ลูกบอลผ่าน

if (irrecv.decode(&results)){ ยาว int decCode = results.value; Serial.println (decCode); irrecv.resume();

สวิตช์ (results.value) {

กรณี 0xFFA25D: //กำลัง analogWrite (มอเตอร์ 1, onspeed); analogWrite (มอเตอร์ 2, onspeed); ล่าช้า (7000); พนังเขียน (90); ล่าช้า (500); พนังเขียน(0); ล่าช้า (2000); analogWrite (มอเตอร์ 1, ออฟสปีด); analogWrite (มอเตอร์ 2, ออฟสปีด); หยุดพัก;

กรณี 0xFFE01F: //EQ

analogWrite (มอเตอร์ 1, onspeed); analogWrite (มอเตอร์ 2, ความเร็วต่ำ); ล่าช้า (7000); พนังเขียน (90); ล่าช้า (500); พนังเขียน(0); ล่าช้า (2000); analogWrite (มอเตอร์ 1, ออฟสปีด); analogWrite (มอเตอร์ 2, ออฟสปีด);

หยุดพัก;

กรณี 0xFF629D: //mode

analogWrite (มอเตอร์ 1, ความเร็วต่ำ); analogWrite (มอเตอร์ 2, onspeed); ล่าช้า (7000); พนังเขียน (90); ล่าช้า (500); พนัง.write(0); ล่าช้า (2000); analogWrite (มอเตอร์ 1, ออฟสปีด); analogWrite (มอเตอร์ 2, ออฟสปีด);

หยุดพัก;

กรณี 0xFF30CF: //setng 1, 90 องศา

มุม.เขียน(30);

หยุดพัก;

กรณี 0xFF18E7: //การตั้งค่า 2, 0 องศา

มุม.เขียน(90);

หยุดพัก;

กรณี 0xFF7A85: //การตั้งค่า 3, 180 องศา

มุม.เขียน(150);

หยุดพัก;

} } }

แนะนำ: