สารบัญ:
- ขั้นตอนที่ 1: วัสดุ
- ขั้นตอนที่ 2: การติดตั้งและกำหนดค่า OpenCV และ C++
- ขั้นตอนที่ 3: การตั้งค่า Arduino
- ขั้นตอนที่ 4: รหัส C ++
- ขั้นตอนที่ 5: รหัส Arduino
- ขั้นตอนที่ 6: การพิมพ์ 3 มิติและการปรับแต่งการพิมพ์
- ขั้นตอนที่ 7: สร้างกล่อง
- ขั้นตอนที่ 8: เสร็จสิ้น
- ขั้นตอนที่ 9: เริ่มโปรแกรม
วีดีโอ: หุ่นยนต์ขอทานด้วยการติดตามและควบคุมใบหน้าโดย Xbox Controller - Arduino: 9 ขั้นตอน (พร้อมรูปภาพ)
2024 ผู้เขียน: John Day | [email protected]. แก้ไขล่าสุด: 2024-01-30 13:07
เรากำลังจะสร้างหุ่นยนต์ขอทาน หุ่นยนต์ตัวนี้จะพยายามทำให้ระคายเคืองหรือดึงความสนใจจากผู้คนที่ผ่านไปมา มันจะตรวจจับใบหน้าของพวกเขาและพยายามยิงเลเซอร์มาที่พวกเขา หากคุณให้เหรียญกับหุ่นยนต์ เขาจะร้องเพลงและเต้นรำ หุ่นยนต์จะต้องใช้ Arduino, ฟีดข้อมูลสดของกล้องและคอมพิวเตอร์เพื่อใช้งาน openCV หุ่นยนต์จะสามารถควบคุมโดยตัวควบคุม xBox หากเชื่อมต่อกับพีซี
ขั้นตอนที่ 1: วัสดุ
ฮาร์ดแวร์ อิเล็กทรอนิกส์
- Arduino NANO หรือ UNO
- กล้อง USB 2.0
- สายจัมเปอร์ (ชายและหญิง)
- 2 x Servo - ทั่วไป (ขนาดย่อยไมโคร)
- 2 x LED - RGB แคโทด 5 มม.
- เลเซอร์ 2 x 5mW
- 1 x LED สีแดง 5mm
- 1 x เขียงหั่นขนม
- ตัวต้านทาน 4 x 220Ω
- ตัวต้านทาน 1 x 1KΩ
- 1 x โปรโตบอร์ด
- 1 x โซนาร์เซนเซอร์ 4 พิน
- คอนโทรลเลอร์ Xbox
ฮาร์ดแวร์อนาล็อก
- กล่องไม้ (15 x 15 x 7 ซม.)
- กาว
- เทปพันสายไฟ
ซอฟต์แวร์
- Arduino IDE
- วิชวลสตูดิโอ 2017
- 3Ds Max (หรือซอฟต์แวร์ดัดแปลง 3 มิติอื่น ๆ)
- Preform 2.14.0 หรือใหม่กว่า
- OpenCV 3.4.0 หรือใหม่กว่า
เครื่องมือ
- อุปกรณ์บัดกรี
- เลื่อยและเจาะ
- เครื่องตัดลวด
ขั้นตอนที่ 2: การติดตั้งและกำหนดค่า OpenCV และ C++
ขั้นตอนที่ 2.1: รับซอฟต์แวร์
Visual studio 2017: ดาวน์โหลด Visual studio Comunity 2017openCV 3.4.0 Win pack: ไปที่หน้าดาวน์โหลดอย่างเป็นทางการ
ขั้นตอนที่ 2.2: การติดตั้ง OpenCV2.2.1: แตกไฟล์ zipfile ไปยังไดรฟ์ Windows(:C).2.2.2: ไปที่การตั้งค่าระบบขั้นสูงของคุณ สามารถพบได้ในฟังก์ชันการค้นหา win10 ของคุณ2.2.3: เราจำเป็นต้องตั้งค่าตัวแปรสิ่งแวดล้อมใหม่ ค้นหาสภาพแวดล้อม "เส้นทาง" และกด edit.2.2.4: ตอนนี้ เราต้องเพิ่มตำแหน่งของ "bin map" ให้กับตัวแปรใหม่ในสภาพแวดล้อมของเส้นทาง หากคุณติดตั้ง openCV บนไดรฟ์ C เส้นทางสามารถเป็นดังนี้: C:\opencv\build\x64\vc14\bin วางเส้นทางและกด "ตกลง" บนหน้าต่างทั้งหมดที่คุณอาจเปิดในระหว่างกระบวนการนี้
ขั้นตอนที่ 2.3: กำหนดค่า visual studio C++2.3.1: สร้างโปรเจ็กต์ Visual C++ ใหม่ ทำให้เป็น win32 Console Application project.2.3.2: ในแท็บไฟล์ต้นฉบับคลิกขวาและเพิ่มไฟล์ C ++ ใหม่ (.cpp) และตั้งชื่อว่า "main.cpp".2.3.3: คลิกขวาที่โครงการ- ในตัวสำรวจโซลูชันและเลือก Properties.2.3.4: เราจำเป็นต้องเพิ่ม Include Directory เพิ่มเติม สามารถพบได้ภายใต้แท็บ C/C++ โดยทั่วไป คัดลอกเส้นทางต่อไปนี้: C:\opencv\build\include แล้ววางด้านหลัง "AID" แล้วคลิก Apply.2.3.5: ในหน้าต่างเดียวกัน เราจำเป็นต้อง เลือกแท็บ "ตัวเชื่อมโยง" โดยทั่วไปเราจำเป็นต้องสร้างไดเร็กทอรี Libary เพิ่มเติมอื่น ๆ วางเส้นทางต่อไปนี้ด้านหลัง "AID" C:\opencv\build\x64\vc14\lib แล้วกด Apply อีกครั้ง 2.3.6: ภายใต้แท็บ Linker เดียวกัน ให้เลือกแท็บ "Input" และกด "Additional Dependencies > edit" แล้ววางไฟล์ต่อไปนี้ opencv_world320d.lib และ xinput.lib (สำหรับคอนโทรลเลอร์) แล้วกด Apply อีกครั้ง ปิดหน้าต่าง ตอนนี้ไฟล์ C++ ของคุณก็พร้อมใช้งานแล้ว
ขั้นตอนที่ 3: การตั้งค่า Arduino
พบกับเซอร์โว: เซอร์โวสามารถหมุนได้ ~ 160 ° โดยต้องมีระหว่าง 4, 8 และ 6, 0 โวลต์เพื่อให้ทำงานได้ตามปกติ เซอร์โวมี 3 พิน: กราวด์ 4, 8 - 6, 0 โวลต์พินและข้อมูล เข็มหมุด. สำหรับโครงการของเรา เราจะตั้งค่าหมุดข้อมูลสำหรับเซอร์โวบน DigitalPin 9 และ 10
พบกับไฟ LED RGB: ไฟ LED RGB มี 4 พินพินสีแดง, เขียว, น้ำเงินและกราวด์ เพื่อประหยัดพื้นที่บน Arduino เราสามารถเชื่อมต่อไฟ LED RGB 2 ดวงเข้าด้วยกัน ดังนั้นเราจะใช้ 3 พินเท่านั้น เราสามารถเชื่อมต่อและประสานไฟ LED RGB บนโปรโตบอร์ดเหมือนในภาพ ขาสีแดง => DigitalPin 3 (PWM) พินสีเขียว => DigitalPin 4 พินสีน้ำเงิน => DigitalPin 7
พบกับเสียง Piezo: หุ่นยนต์ตัวน้อยของเรากำลังจะส่งเสียง เพื่อที่จะทำสิ่งนี้เราต้องส่งเสียงให้เขา! เราสามารถเลือกที่จะทำให้เขาดังจริงๆ หรือเราสามารถใส่ตัวต้านทาน 220Ω ไว้ข้างหน้าเสียง Piezo เพื่อทำให้เขาดูน่ารังเกียจน้อยลง เรากำลังทิ้งเสียง Piezo ไว้บนเขียงหั่นขนม ไม่จำเป็นต้องบัดกรี เราเชื่อมต่อดาต้าพิน (+) กับ DigitalPin 2 และพินกราวด์กับกราวด์บนเขียงหั่นขนม
พบกับโซนาร์:เพื่อไม่ให้หุ่นยนต์พยายามเล็งไปที่บุคคลที่อยู่ห่างออกไป 10 เมตร เราสามารถกำหนดระยะให้หุ่นยนต์สามารถเล็งไปที่ผู้คนได้ เราทำสิ่งนี้ด้วยเซ็นเซอร์โซนาร์ VCC => 5 voltTrig => DigitalPin 6Echo => DigitalPin 5GND => กราวด์
พบกับเครื่องตรวจจับเหรียญ:เรากำลังจะสร้างเครื่องตรวจจับเหรียญ เครื่องตรวจจับเหรียญจะทำงานโดยการตรวจจับว่าวงจรปิดหรือขาดหรือไม่ มันเกือบจะทำงานเหมือนสวิตช์ แต่เราต้องระวัง หากเราทำผิด จะต้องใช้ Arduino อย่างแรก: เชื่อมต่อ AnalogPin A0 กับสายเคเบิล 5 โวลต์ แต่ให้แน่ใจว่าได้ใส่ตัวต้านทาน 1KΩ ระหว่างนั้น ประการที่สอง: ต่อสายเข้ากับกราวด์ เราสามารถประสานสายไฟและตัวต้านทานกับโปรโตบอร์ดเดียวกันกับไฟ LED RGB ได้ทันที หากเราสัมผัสสายไฟ 2 เส้นเข้าด้วยกัน Arduino จะตรวจจับวงจรปิด ซึ่งหมายความว่ามีเหรียญ!พบกับเลเซอร์แห่งความหายนะหุ่นยนต์ต้องการอาวุธในการยิง! เพื่อประหยัดพื้นที่ ฉันประสานเลเซอร์ 2 ตัวเข้าด้วยกัน พวกมันจะพอดีกับกรอบของกล้องอย่างสมบูรณ์แบบ เชื่อมต่อพวกมันเข้ากับ DigitalPin 11 และต่อกับกราวด์ ไล่เจ้าตัวเล็กออกไป!
กลไกเสริม เราสามารถใส่ไฟ LED สีแดงใต้ช่องเหรียญ นี่จะเป็นกลไกเล็กๆ น้อยๆ ที่สนุกเมื่ออยู่ในความมืด ต่อสายไฟเข้ากับ DigitalPin 8 และใส่ตัวต้านทาน 220Ω ระหว่าง LED กับสายไฟเพื่อป้องกันไม่ให้ไฟระเบิด ต่อขาสั้นของ LED กับกราวด์
ขั้นตอนที่ 4: รหัส C ++
ขั้นตอนที่ 4.1: การตั้งค่า main.cpp code4.1.1: ดาวน์โหลด "main.cpp" และคัดลอกรหัสไปยัง main.cpp.4.1.2 ของคุณเอง: ในบรรทัดที่ 14 เปลี่ยน "com" เป็น com ที่ Arduino ใช้ "\.\COM(เปลี่ยนสิ่งนี้)"4.1.3: ในบรรทัดที่ 21 และ 22 ให้กำหนดเส้นทางที่ถูกต้องสำหรับไฟล์ "haarcascade_frontalface_alt.xml" และ "haarcascade_eye_tree_eyeglasses.xml"หากติดตั้ง openCV บนไดรฟ์ C ไฟล์เหล่านี้สามารถอยู่ที่นี่: "C:\opencv\build\etc\haarcascades\" เก็บแบ็กสแลชคู่หรือเพิ่มไฟล์ที่มีไฟล์เดียวเท่านั้น
ขั้นตอนที่ 4.2: เพิ่ม tserial.h และ Tserial.cpp 2 ไฟล์นี้จะดูแลการสื่อสารระหว่าง Arduino และ PC.4.2.1: ดาวน์โหลด tserial.h และ Tserial.cpp.4.2.2: วาง 2 ไฟล์นี้ในโครงการ ไดเรกทอรี ในตัวสำรวจโซลูชัน ให้คลิกขวาที่โครงการและเลือก เพิ่ม > รายการที่มีอยู่ ในหน้าต่างป๊อปอัป ให้เลือกสองไฟล์ที่จะเพิ่ม
ขั้นตอนที่ 4.2: เพิ่ม CXBOXController.h และ CXBOXController.h ไฟล์เหล่านี้จะใช้กับส่วนควบคุมของโปรเจ็กต์ 4.2.1: ในตัวสำรวจโซลูชัน คลิกขวาที่โปรเจ็กต์และเลือก เพิ่ม > รายการที่มีอยู่ ในหน้าต่างป๊อปอัป ให้เลือกสองไฟล์ที่จะเพิ่ม ไฟล์ C++ ได้รับการตั้งค่าแล้ว
ขั้นตอนที่ 5: รหัส Arduino
ขั้นตอนที่ 5.1: NewPing library5.1.1: ดาวน์โหลด ArduinoCode.ino และเปิดใน arduino IDE.5.1.2: ไปที่ "Sketch > Include libary > Manage libaries".5.1.3: ค้นหาในกล่องตัวกรองเพื่อ "NewPing" และติดตั้งไลบรารีนี้
ขั้นตอนที่ 5.2: Pitches library5.2.1: ดาวน์โหลด pitches.txt และคัดลอกเนื้อหาของ pitches.txt.5.2.2: ใน Arduino IDE ให้กด CTRL+Shift+N เพื่อเปิด tab.5.2.3 ใหม่: วางโค้ดจาก pitches.txt ในแท็บใหม่และบันทึกเป็น "pitches.h" รหัส Arduino ได้รับการตั้งค่าแล้ว
ขั้นตอนที่ 6: การพิมพ์ 3 มิติและการปรับแต่งการพิมพ์
ขั้นตอนที่ 6.1: พิมพ์ไฟล์ 3D เปิด printfile.form และตรวจสอบว่าทุกอย่างเรียบร้อยหรือไม่ หากทุกอย่างเรียบร้อยดี ให้ส่งงานพิมพ์ไปที่เครื่องพิมพ์ หากมีอะไรเกิดขึ้นหรือคุณต้องการเปลี่ยนรุ่น ฉันได้รวมไฟล์ 3Ds Max และไฟล์ OBJ ให้คุณแก้ไขแล้ว
ขั้นตอนที่ 6.2: ปรับแต่ง model6.2.1: หลังจากพิมพ์เสร็จแล้วให้แช่ 2 รุ่นในแอลกอฮอล์ 70% เพื่อลบการพิมพ์ resedu.6.2.2: หลังจากพิมพ์แล้วให้วางนางแบบไว้กลางแดดสองสามชั่วโมงเพื่อให้แสงยูวี ทำให้โมเดลแข็งตัว หรือคุณสามารถใช้หลอด UV เพื่อทำให้โมเดลแข็งตัว ต้องทำอย่างนี้เพราะโมเดลจะเหนียว
6.2.3: ลบกรอบการสนับสนุน สามารถทำได้ด้วยเครื่องตัดลวด หรือเครื่องมืออื่นใดที่สามารถตัดพลาสติกได้ 6.2.4: บางส่วนของงานพิมพ์ 3 มิติยังสามารถนิ่มได้ แม้ว่าโมเดลจะอยู่ในแสงยูวีมากก็ตาม ชิ้นส่วนที่นุ่มได้ก็คือชิ้นส่วนที่อยู่ใกล้กับโครงรองรับ วางแบบจำลองไว้ภายใต้แสงแดดที่ส่องผ่านมากขึ้นเพื่อให้แข็งตัว 6..2.5: ด้วย "เดรเมล" คุณสามารถขจัดสิ่งเล็กๆ น้อยๆ ที่เกิดจากเฟรมเวิร์กออกไปได้ คุณสามารถลองใส่เซอร์โวเข้ากับเฟรมได้ หากไม่พอดี คุณสามารถใช้เดรเมลเพื่อขัดวัสดุได้ ทำให้พอดี
ขั้นตอนที่ 7: สร้างกล่อง
ขั้นตอนที่ 7.1: การทำหลุมฉันได้รวมพิมพ์เขียวของกล่องที่เป็นปัญหา พิมพ์เขียวไม่ถึงมาตราส่วน แต่ขนาดทั้งหมดถูกต้อง 7.1.1: เริ่มต้นด้วยการทำเครื่องหมายหลุมทั้งหมดในตำแหน่งที่ถูกต้อง7.1.2: เจาะรูทั้งหมด Dremel.7.1.3 สามารถเจาะรูที่ใหญ่ขึ้นได้: รูสี่เหลี่ยมก็สามารถเจาะได้เช่นกัน แต่เพื่อให้เป็นสี่เหลี่ยมจัตุรัส คุณสามารถใส่ Dremel ด้วยไฟล์ขนาดเล็กและตะไบออกในมุมที่แหลมได้ 7.1.4: พยายามใส่ส่วนประกอบทั้งหมดให้พอดี ถ้าพอดีก็ไปได้เลย! 7.1.5: ระวังเศษไม้ ใช้กระดาษทรายกำจัดมัน
ขั้นตอนที่ 7.2: การทาสี 7.2.1: เริ่มต้นด้วยการขัดฝา เราต้องการให้สีติด 7.2.2: ใช้ผ้าแล้วทาน้ำมันสนเล็กน้อยเพื่อทำความสะอาดกล่อง 7..2.3: ตอนนี้คุณสามารถพ่นสีกล่องตามที่คุณต้องการ
ขั้นตอนที่ 8: เสร็จสิ้น
ตอนนี้ เราต้องใส่ทุกอย่างเข้าที่และปล่อยให้มันเป็นอย่างนั้นขั้นตอนที่ 8.1: เครื่องตรวจจับเหรียญ8.1.1: กาวเหล็กดัดบาง ๆ สำหรับเครื่องตรวจจับเหรียญ 8.1.2: บัดกรีแต่ละเส้นจากขั้วต่อไปยังเหล็กค้ำยัน8.1.3: ทดสอบการเชื่อมต่อกับเหรียญ หากไม่มีวงจรปิด ให้บัดกรีสายไฟให้ชิดขอบมากขึ้น ขั้นตอนที่ 8.2: บอร์ดโปรโตบอร์ดและไฟ LED RGB 8.2.1: วางโปรโตบอร์ดที่มุมขวาบนแล้วปิดเทปไว้!8.2.2: เชื่อมต่อไฟ LED RGB กับสายไฟ จาก protoboard!8.2.3: เชื่อมต่อสายไฟทั้งหมดจาก protoboard tot the arduino ขั้นตอนที่ 8.3: เซ็นเซอร์โซนาร์ 8.3.1: วางเซ็นเซอร์ในรูที่เราสร้างขึ้นหากคุณมี jumpwires ตัวผู้กับตัวเมีย คุณสามารถข้ามได้ 8.3.28.3.2: ตัดสายตัวผู้และตัวเมียบางส่วนครึ่งหนึ่งแล้วประสานสายตัวเมียและตัวผู้เข้าด้วยกันเพื่อสร้างสายเส้นเดียวที่เราสามารถใช้เชื่อมต่อเซ็นเซอร์กับ Arduino.8.3.3: เชื่อมต่อเซ็นเซอร์กับ Arduino
ขั้นตอนที่ 8.4: เลเซอร์และกล้อง 8.4.1: กาวกรอบเล็กๆ กับกล้อง ตรวจสอบให้แน่ใจว่าตั้งตรง 8.4.2: ใส่เลเซอร์เข้าไปในเฟรมด้วย กาวพวกเขาลงเพื่อที่ศัตรูจะไม่ขโมยพวกเขา!
ขั้นตอนที่ 8.5: เซอร์โวและการพิมพ์ 3 มิติ 8.5.1: กาวเซอร์โวในรูของฝาปิด 8.5.2: อัปโหลดไฟล์ Arduino ไปยัง Arduino (ซึ่งจะทำให้เซอร์โวอยู่ในตำแหน่งที่ถูกต้อง) 8.5.3: เมื่อเซอร์โวมี a ที่ราบสูงทรงกลมเล็กน้อย วางสิ่งนี้บนเซอร์โวในฝา 8.5.4: วางงานพิมพ์ 3 มิติขนาดใหญ่บนเซอร์โวและที่ราบแล้วขันให้แน่นด้วยสกรู 8.5.5: วางเซอร์โวตัวที่สองบนงานพิมพ์ 3 มิติขนาดเล็กแล้วติดกาวเข้าด้วยกัน 8.5.6: วางกล้องให้เข้าที่แล้วทุกอย่างก็พร้อมลุย!
ขั้นตอนที่ 9: เริ่มโปรแกรม
ในการเริ่มหุ่นยนต์ให้เปิดไฟล์ C++ ใน Visual studio ตรวจสอบให้แน่ใจว่าคุณอยู่ใน "โหมดแก้ไขข้อบกพร่อง" อัปโหลดไฟล์ Arduino ไปยัง Arduino เมื่ออัปโหลดแล้วให้กดเล่นใน visual studio และหุ่นยนต์จะยิงและเก็บเหรียญทั้งหมดในโลก!!!
แนะนำ:
Xbox 360 Controller Accelerometer/gyro Steering Mod: 7 ขั้นตอน
Xbox 360 Controller Accelerometer/gyro Steering Mod: ฉันเคยเล่น Assetto Corsa ด้วยตัวควบคุม Xbox 360 ของฉันแล้ว น่าเสียดายที่การบังคับเลี้ยวด้วยแท่งอนาล็อกนั้นเทอะทะมาก และฉันไม่มีที่ว่างสำหรับตั้งล้อ ฉันพยายามคิดหาวิธีที่จะทำให้กลไกการบังคับเลี้ยวดีขึ้นในเ
ทำงานสนุก: การตั้งค่า Xbox Controller สำหรับ Autodesk Inventor: 6 ขั้นตอน
ทำงานสนุก: การตั้งค่า Xbox Controller สำหรับ Autodesk Inventor: ดังนั้น ก่อนอื่น ฉันมีเจ้านายที่ดีที่สุดในโลกที่ให้ฉันนำคอนโทรลเลอร์ XBOX มาใช้งานได้ ฝ่ายไอทีและผู้จัดการฝ่ายวิศวกรรมให้การอนุญาตแก่ฉันตราบเท่าที่ฉันใช้มันในการทำงาน ต่อไปนี้เป็นวิธีตั้งค่าตัวควบคุมเกมให้ทำงานกับ Autodesk
DIY Xbox One Controller ชุดแบตเตอรี่แบบชาร์จไฟได้ (โครงการอยู่ระหว่างดำเนินการ): 3 ขั้นตอน (พร้อมรูปภาพ)
DIY Xbox One Controller Rechargeable Battery Pack (โครงการอยู่ในความคืบหน้า): ก่อนที่เราจะเจาะลึกรายละเอียด ฉันต้องการกล่าวถึงชื่อ โปรเจ็กต์นี้อยู่ในระหว่างดำเนินการเนื่องจากการค้นพบบางอย่างหลังจากการทดสอบการออกแบบครั้งแรก ที่กล่าวว่าฉันกำลังออกแบบบอร์ดใหม่เพื่อรองรับการเปลี่ยนแปลงบางอย่างที่ฉันจะทำต่อไป ฉันครอบคลุม e
Xbox 360 Arcade Controller - โครงการ Gyokusho: 8 ขั้นตอน
Xbox 360 Arcade Controller - Project Gyokusho: นี่คือสิ่งที่ดูเหมือน ฉันได้แยกตัวควบคุม 360 แบบมีสายออกจากกัน ใส่ความกล้าลงในกล่องที่สวยงาม แล้วบัดกรีปุ่มอาร์เคดและจอยสติ๊กเข้าไป คิดว่าฉันจะเผยแพร่สิ่งนี้เพื่อให้คุณได้ทราบว่าจะทำอย่างไร
NES Controller Shuffle (Nintendo Controller MP3, V3.0): 5 ขั้นตอน (พร้อมรูปภาพ)
NES Controller Shuffle (Nintendo Controller MP3, V3.0): ฉันลอก ryan97128 ออกจากการออกแบบของเขาสำหรับ Nintendo Controller MP3 เวอร์ชัน 2.0 และฉันได้ยินมาว่าเขาได้แนวคิดมาจาก Morte_Moya ที่ฉลาดทั้งหมด ดังนั้นฉันจึงรับเครดิตไม่ได้ อัจฉริยะทั้งหมดของพวกเขา ฉันแค่ต้องการเพิ่มความสะดวกสบายและเติมเงิน -