สารบัญ:
- ขั้นตอนที่ 1: รับชิ้นส่วน
- ขั้นตอนที่ 2: การเดินสายไฟ
- ขั้นตอนที่ 3: Pre Code Things
- ขั้นตอนที่ 4: รหัส
- ขั้นตอนที่ 5: คดี
วีดีโอ: Joking Tank: 5 ขั้นตอน
2024 ผู้เขียน: John Day | [email protected]. แก้ไขล่าสุด: 2024-01-30 13:06
นี่เป็นโครงการที่ฉันทำที่โรงเรียน HKU ซึ่งกำหนดให้เราต้องสร้าง Arduino Uno ฉันต้องการทำบางสิ่งบางอย่างที่จะทำในสิ่งที่ฉันชอบทำให้ผู้คนหัวเราะ เลยตัดสินใจสร้างกล่องมุกตลกที่จะโยนมุกตลกให้คุณ แต่เรื่องตลกที่มันให้คุณนั้นขึ้นอยู่กับว่าโมดูลเซ็นเซอร์สองสามตัวกำลังวัดในช่วงเวลาใดเวลาหนึ่ง เพื่อให้เป็นส่วนตัวมากขึ้น ฉันตัดสินใจทำเป็นรถถัง
ขั้นตอนที่ 1: รับชิ้นส่วน
ส่วนที่คุณต้องใช้ในการสร้างโปรเจ็กต์นี้ขึ้นมาใหม่จะเป็น
- คอมพิวเตอร์ 1x ที่สามารถรัน Arduino IDE
- 1x Arduino Uno
- 1x สายต่อ usb สำหรับ Arduino Uno
- 1x โซนาร์เซนเซอร์
- 1x ลำโพง (ควรเป็นอันที่มีคุณภาพดี (ฉันใช้อันที่ดึงออกมาจากลำโพงบลูทูธ))
- โมดูลแอมพลิฟายเออร์ LM386 1x (เป็นไปได้ที่จะทำเอง แต่ฉันใช้โมดูล)
- 1x LM393 ไมโครโฟน
- 1x LDR
- 1x LED (สีใดก็ได้ แต่ฉันใช้สีน้ำเงิน)
- ตัวต้านทาน 4x1kΩ
- ตัวต้านทาน 1x 2, 7kΩ
- 1x เขียงหั่นขนม
- การ์ด micro SD 1x (ควรมีขนาดเล็ก (1 หรือ 2 gb))
- 1x สว่านไฟฟ้า.
- หัวสว่านขนาด 1x 16 มม. (เหมาะสำหรับเจาะโลหะ)
- หัวสว่านขนาด 1x 9 มม. (ควรทำขึ้นสำหรับการเจาะโลหะด้วย)
- หัวสว่าน 1x 1 มม. (ควรทำขึ้นอีกครั้งสำหรับการเจาะโลหะ)
- 1x โมเดลรถถัง (ฉันใช้ขนาด 1:35 เสือดาว 2 แต่กรณีอื่นก็ใช้ได้เช่นกัน)
- ซุปเปอร์กลู / กาวร้อน
- และสายไฟบางเส้นควรมีสีต่างกัน
- เคเบิ้ลไทร์ (อุปกรณ์เสริม)
ขั้นตอนที่ 2: การเดินสายไฟ
เราต้องเริ่มด้วยการเดินสาย รูปภาพเป็นภาพวาดทางเทคนิคของวิธีการต่อสายทั้งหมด สิ่งนี้ควรทำหน้าที่เป็นพิมพ์เขียวของคุณ หมายเหตุ: พอร์ต Arduino ทั้งหมดมีชื่อว่า AP# สำหรับแต่ละพอร์ต ดังนั้นพอร์ตที่ 4 บน Arduino คือ AP4 พอร์ต A0 คือ APA0 และพอร์ต 6~ คือ AP6~ ฯลฯ พอร์ตอื่นๆ ทั้งหมดจะถูกตั้งชื่อตามที่ปรากฏบนโมดูลเอง
ขั้นตอนที่ 3: Pre Code Things
ก่อนที่เราจะสามารถเริ่มใช้โค้ดได้ เราจำเป็นต้องมี stuf ฉันแนะนำให้คุณทำตามบทช่วยสอนนี้ตั้งแต่ขั้นตอนที่ 2 ถึง 4
www.electronoobs.com/eng_arduino_tut8.php
อย่างไรก็ตาม เราจะไม่ใช้รหัสของเขา เนื่องจากเรากำลังจะใช้ของเราเอง โปรดทราบว่าลำโพงบางตัวใช้ความถี่ต่างกัน ลำโพงของฉันใช้ไฟล์เสียง 16 บิต 32kHz ดังนั้น ถ้าคำพูดของคุณส่งเสียงแต่ไม่ได้เล่นไฟล์ของคุณ ให้ลองเล่นด้วยความถี่ของคุณ
ขั้นตอนที่ 4: รหัส
ตอนนี้เรากำลังจะอัปโหลดโค้ดไปยัง Arduino ให้คัดลอกทั้งหมดแล้ววางลงใน Arduino IDE แล้วอัปโหลดไปยัง Arduino ของคุณ
//รวมไลบรารีสำหรับเครื่องอ่านการ์ด SD#include "Wtv020sd16p.h" //รวมไลบรารีที่จำเป็นสำหรับเซ็นเซอร์โซนาร์ #include //กำหนดพินสำหรับ Arduino int resetPin = 4; int clockPin = 5; int dataPin = 6; int busyPin = 7; int soundDetectedPin = 12; int lightDetectedPin = A0; //กำหนดพินสำหรับไลบรารีการ์ด SD Wtv020sd16p wtv020sd16p (รีเซ็ตพิน, clockPin, dataPin, busyPin); //กำหนดพินสำหรับไลบรารีเซ็นเซอร์ Sonar NewPing โซนาร์ (11, 10); //ตั้งค่าอินพุตอื่นๆ และตั้งค่าบิตเรตของโปรแกรม การตั้งค่าเป็นโมฆะ () { wtv020sd16p.reset (); pinMode(lightDetectedPin, INPUT); pinMode(soundDetectedPin, INPUT); Serial.begin(9600); } //ส่วนหลักของโปรแกรม วงเป็นโมฆะ () {// ตั้งค่า intergers int lightDetectedVal = analogRead (lightDetectedPin); int distanceVal = sonar.ping_cm(); int soundDetectedVal = digitalRead (soundDetectedPin); // หน่วงเวลาเพื่อไม่ให้โปรเจ็กต์ที่โปรเจ็กต์ใช้ลำโพงต่อไปอย่างไม่มีที่สิ้นสุด ล่าช้า (30000); //พิมพ์แบบอนุกรมและเส้นพิมพ์ เพื่อให้คุณสามารถดูค่าที่โมดูลเซ็นเซอร์ใช้ได้อย่างง่ายดาย Serial.print("ค่าเสียง: "); //Multiple if statement เพื่อให้โปรแกรมเล่นไฟล์เสียงที่แตกต่างกันขึ้นอยู่กับค่าที่วัดโดยโมดูลเซ็นเซอร์ ถ้า (soundDetectedVal == 0) { Serial.println (soundDetectedVal); Serial.print("ระยะทาง: "); ถ้า (distanceVal == 0) { Serial.println (distanceVal); Serial.print("ค่าแสง: "); ถ้า (lightDetectedVal >= 1000) { Serial.println (lightDetectedVal); wtv020sd16p.playVoice(1); // การพิมพ์แบบอนุกรมอื่นเพื่อให้คุณสามารถดูว่าไฟล์เสียงใดที่เล่นอยู่ Serial.println("1 --------"); // หน่วงเวลาให้ไฟล์เสียงเล่นเต็มความยาวอีกครั้ง ล่าช้า (5000); } else if (lightDetectedVal >= 900) { Serial.println(lightDetectedVal); wtv020sd16p.playVoice(2); Serial.println("2-------"); ล่าช้า (5000); } else if (lightDetectedVal >= 800) { Serial.println(lightDetectedVal); wtv020sd16p.playVoice(3); Serial.println("3 --------"); ล่าช้า (5000); } else if (lightDetectedVal >= 700) { Serial.println(lightDetectedVal); wtv020sd16p.playVoice(4); Serial.println("4 --------"); ล่าช้า (5000); } อื่น if (lightDetectedVal >= 600) { Serial.println (lightDetectedVal); wtv020sd16p.playVoice(5); Serial.println("5 --------"); ล่าช้า (5000); } อื่น if (lightDetectedVal >= 500 || lightDetectedVal 0 || distanceVal == NULL) { Serial.println (distanceVal); Serial.print("ค่าแสง: "); ถ้า (lightDetectedVal >= 1000) { Serial.println (lightDetectedVal); wtv020sd16p.playVoice(7); Serial.println("7 --------"); ล่าช้า (5000); } else if (lightDetectedVal >= 900) { Serial.println(lightDetectedVal); wtv020sd16p.playVoice(8); Serial.println("8 --------"); ล่าช้า (8000); } else if (lightDetectedVal >= 800) { Serial.println(lightDetectedVal); wtv020sd16p.playVoice(9); Serial.println("9 --------"); ล่าช้า (5000); } else if (lightDetectedVal >= 700) { Serial.println(lightDetectedVal); wtv020sd16p.playVoice(10); Serial.println("10 --------"); ล่าช้า (8000); } อื่น if (lightDetectedVal >= 600) { Serial.println (lightDetectedVal); wtv020sd16p.playVoice(11); Serial.println("11 --------"); ล่าช้า (6000); } อื่น if (lightDetectedVal >= 500 || lightDetectedVal <= 1000) { Serial.println(lightDetectedVal); wtv020sd16p.playVoice(13); Serial.println("13 --------"); ล่าช้า (5000); } else if (lightDetectedVal >= 900) { Serial.println(lightDetectedVal); wtv020sd16p.playVoice(14); Serial.println("14 --------"); ล่าช้า (5000); } else if (lightDetectedVal >= 800) { Serial.println(lightDetectedVal); wtv020sd16p.playVoice(15); Serial.println("15 --------"); ล่าช้า (5000); } else if (lightDetectedVal >= 700) { Serial.println(lightDetectedVal); wtv020sd16p.playVoice(16); Serial.println("16 --------"); ล่าช้า (5000); } อื่น if (lightDetectedVal >= 600) { Serial.println (lightDetectedVal); wtv020sd16p.playVoice(17); Serial.println("17-------"); ล่าช้า (5000); } อื่น if (lightDetectedVal >= 500 || lightDetectedVal 0 || distanceVal == NULL || distanceVal >= 150) { Serial.println (distanceVal); Serial.print("ค่าแสง: "); ถ้า (lightDetectedVal >= 1000) { Serial.println (lightDetectedVal); wtv020sd16p.playVoice(19); Serial.println("19 --------"); ล่าช้า (5000); } else if (lightDetectedVal >= 900) { Serial.println(lightDetectedVal); wtv020sd16p.playVoice(20); Serial.println("20 --------"); ล่าช้า (5000); } else if (lightDetectedVal >= 800) { Serial.println(lightDetectedVal); wtv020sd16p.playVoice(21); Serial.println("21 --------"); ล่าช้า (5000); } else if (lightDetectedVal >= 700) { Serial.println(lightDetectedVal); wtv020sd16p.playVoice(22); Serial.println("22 --------"); ล่าช้า (5000); } else if (lightDetectedVal >= 600) { Serial.println(lightDetectedVal); wtv020sd16p.playVoice(23); Serial.println("23 --------"); ล่าช้า (5000); } อื่น if (lightDetectedVal >= 500 || lightDetectedVal << 500) { Serial.println (lightDetectedVal); wtv020sd16p.playVoice(24); Serial.println("24-------"); ล่าช้า (5000); } } } }
ขั้นตอนที่ 5: คดี
ตอนนี้มาถึงส่วนที่ซับซ้อนจริง
การติดตั้งทั้งหมดในกรณีอาจยุ่งยากเล็กน้อย ขึ้นอยู่กับว่าคุณติดตั้งทุกอย่างเข้ากับเขียงหั่นขนมของคุณอย่างไรหรือวิธีที่คุณบัดกรีสิ่งต่าง ๆ เข้าด้วยกัน แต่คุณจะต้องสร้างรูสองสามรูเพื่อให้เซ็นเซอร์ติดแน่น ฉันใส่ไมโครโฟน (ต้องใช้สว่าน 9 มม.) และโมดูลโซนาร์ (ต้องใช้สว่าน 6 มม.) ที่ด้านหลังและ LDR ที่ด้านหน้าของถัง แต่คุณสามารถวางไมโครโฟนไว้อย่างมีประสิทธิภาพได้ทุกเมื่อหากคุณมีพื้นที่
ตรวจสอบให้แน่ใจว่าได้เจาะรูในตัวโมเดลเพื่อให้สามารถเชื่อมต่อ Arduino ของคุณกับสายต่อได้
ฉันขอแนะนำให้วางลำโพงในป้อมปืน เพราะน่าจะมีที่ว่างเหลืออยู่พอสมควร
ภาพด้านซ้ายด้านบนเป็นวิธีที่ฉันติดตั้ง Arduino และงานพิมพ์ที่ฉันบัดกรีในรุ่น Leopard 2 ภาพด้านขวาเป็นภาพที่มีการเดินสายส่วนใหญ่
สิ่งที่คุณทำได้คือเจาะรูเล็กๆ ที่ด้านล่างของโมเดลเพื่อยึด Arduino ด้วยสายเคเบิล
แต่ถ้าจำไม่ผิดตอนนี้น่าจะเสร็จ
แนะนำ:
WiFi Oil Tank Monitor: 6 ขั้นตอน (พร้อมรูปภาพ)
WiFi Oil Tank Monitor: มีหลายวิธีในการตรวจสอบว่ายังมีน้ำมันเหลืออยู่ในถังน้ำมันสำหรับทำความร้อน วิธีที่ง่ายที่สุดคือการใช้ก้านวัดระดับน้ำมัน แม่นยำมาก แต่ไม่สนุกมากนักในวันที่อากาศหนาวเย็น รถถังบางคันมีการติดตั้งท่อสายตา อีกครั้งเพื่อบ่งชี้โดยตรง o
วิธีสร้างหุ่นยนต์ SMARS - Arduino Smart Robot Tank Bluetooth: 16 ขั้นตอน (พร้อมรูปภาพ)
วิธีสร้างหุ่นยนต์ SMARS - Arduino Smart Robot Tank Bluetooth: บทความนี้ได้รับการสนับสนุนอย่างภาคภูมิใจโดย PCBWAY.PCBWAY สร้าง PCB ต้นแบบคุณภาพสูงสำหรับผู้คนทั่วโลก ลองด้วยตัวคุณเองและรับ 10 PCBs เพียง $5 ที่ PCBWAY ด้วยคุณภาพที่ยอดเยี่ยมมาก ขอบคุณ PCBWAY Motor Shield สำหรับ Arduino Uno
3d Printed RC Controlled Tank!!: 8 ขั้นตอน (พร้อมรูปภาพ)
รถถังบังคับด้วย RC พิมพ์ลาย 3 มิติ!!: คุณเคยต้องการที่จะมียานพาหนะที่ควบคุมจากระยะไกลที่สามารถออกนอกถนนและคุณยังสามารถมองเห็นได้จากกล้องมองคนแรกหรือไม่ รถถังคันนี้ยอดเยี่ยมสำหรับคุณ รางบนถังน้ำมันช่วยให้ยึดเกาะได้ดีเมื่อขับขี่บนภูมิประเทศเช่นดินและ
Arduino Tank Kit: 11 ขั้นตอน
Arduino Tank Kit: เรารวบรวมเครื่องมือทั้งหมดที่เราต้องการ - อยู่ทางด้านซ้ายของภาพ อย่าลืมที่ชาร์จแบตเตอรี่! ทางด้านขวาของภาพคือ Tank Kit ที่เราได้มาจากร้าน ArrowDot กรุงพนมเปญ
RC Tank พร้อมกล้อง FPV เคลื่อนไหว: 9 ขั้นตอน (พร้อมรูปภาพ)
RC Tank พร้อมกล้อง FPV เคลื่อนไหว: สวัสดี ในคำแนะนำนี้ฉันแสดงวิธีสร้างถังควบคุมระยะไกลด้วยกล้อง FPV ตอนแรกฉันสร้างเฉพาะถัง RC โดยไม่มีกล้อง FPV แต่เมื่อฉันขับมันอยู่ในบ้าน ฉันไม่เห็นว่ามันอยู่ที่ไหน เลยนึกขึ้นมาได้ว่าจะเพิ่ม