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


Ouch เป็นผู้ช่วยต้อกระจกไร้ประโยชน์รอบทิศทางส่วนบุคคลของคุณ ในขณะที่การจดจำใบหน้ามาถึง Zeitgeist OUCH ก็มาถึงคุณ! OUCH ไม่เพียงแต่รู้ว่าคุณหน้าตาเป็นอย่างไร แต่ยังรู้ว่าต้องน่ารำคาญด้วย! เครื่องนี้แตกต่างจากพี่ใหญ่ตรงที่มองเห็นได้ชัดเจนและบรรลุจุดประสงค์เดียวเท่านั้น: เพื่อทำให้ชีวิตของคุณน่าขยะแขยงขึ้นเล็กน้อย คุณเคยลืมแว่นกันแดดที่บ้านและรู้สึกประหลาดใจกับแสงสะท้อนที่สดใสหรือไม่? OUCH ให้คุณหวนคิดถึงช่วงเวลานี้ครั้งแล้วครั้งเล่า การสะท้อนแสงจากแหล่งกำเนิดแสงที่สว่างที่สุดรอบตัวคุณโดยตรงบนใบหน้าของคุณ จะช่วยให้แน่ใจว่าคุณจะไม่สนุกกับช่วงเวลาหนึ่งที่อยู่รอบๆ ตัวคุณ
ระวัง มิฉะนั้น OUCH อาจเป็นสิ่งสุดท้ายที่คุณจะได้เห็น!
โครงการนี้ดำเนินการเป็นส่วนหนึ่งของการสัมมนาการออกแบบคอมพิวเตอร์และการผลิตดิจิทัลในหลักสูตรปริญญาโทของ ITECH
สิงหาคม Lehrecke | Max Zorn
เสบียง
ชิ้นส่วนอิเล็กทรอนิกส์:
Arduino
-
Arduino UNO
- 2x Reely Mini-Servo S0009
- โฟโตรีซีสเตอร์ 4 เท่า
- ตัวต้านทาน 4x 10k
- 2x โพเทนชิโอมิเตอร์
- 1x สาย USB เครื่องพิมพ์
ราสเบอร์รี่ปี่
-
ราสเบอร์รี่ Pi 4
- 1x RaspiCam
- 4x Reely Mini-Servo S0009
- 1x PCA9685 16-Channel 12-bit PWM ไดร์เวอร์เซอร์โว
- แหล่งจ่ายไฟภายนอก 5v DC
- 1x Rasberry Pi 5.1V - แหล่งจ่ายไฟ 3Amp (หรือเทียบเท่าภายนอก)
- 1x MAKERFACTORY HC-SR05 อัลตราชัลล์เซนเซอร์ (MF-6402156)
- ตัวต้านทาน 1x470 โอห์ม
- ตัวต้านทาน 1x320 โอห์ม
ชิ้นส่วนที่พิมพ์ 3 มิติ:
OUCH มาในรูปทรงและขนาดต่างๆ สำหรับเวอร์ชันนี้ เราใช้เครื่องพิมพ์ 3 มิติเพื่อพิมพ์กลไกแบบกำหนดเอง
- 4 x ขาตั้ง
- 2 x ฐาน S
- 1 x ฐาน L
- 2 x ฐานหมุนดับเบิล
- 1 x ฐานหมุนเดี่ยว
- 1 x ชุดแกนรองรับ S
- 1 x ชุดแกนรองรับ M
- 1 x ชุดแกนรองรับ L
- 1 x กล้อง Mount
- 1 x เมาท์ไลท์
- 1 x ที่ยึดกระจก
คุณสามารถใช้การออกแบบ Tower ที่มีให้เพื่อรวมส่วนประกอบเพื่อ:
- 1 x ทาวเวอร์ (แทน 4 x ขาตั้ง)
- 1 x ฐาน S & 1x ฐาน M (แทนที่จะเป็น 2 x ฐาน S)
ส่วนอื่นๆ:
- Mylar
- 1 x ยางรัด
- 1 x ซิปรูด
- สกรูหัวแบน 12 M5 x 160
- สกรูหัวแบน 2 M5 x 80
เครื่องมือ:
- เครื่องพิมพ์ 3 มิติ
- ไขควง H3.0
- ปืนกาวร้อน
ขั้นตอนที่ 1: ขั้นตอนที่ 1: การพิมพ์ชิ้นส่วน
หากคุณมีสิทธิ์เข้าถึงเครื่องพิมพ์ 3 มิติ คุณสามารถพิมพ์กลไกแบบกำหนดเองเพื่อติดตั้งเซอร์โวและติดตั้งส่วนประกอบหลักสามส่วนได้
สำหรับองค์ประกอบใบหน้า เราต้องการ:
- 2 x ขาตั้ง
- 1 x ฐาน L
- 1 x ฐานหมุน Double
- 1 x ชุดแกนรองรับ M
- 1 x กล้อง & ระยะทาง เซนเซอร์ Mount
ส่วนประกอบ Light ต้องการ:
- 1 x ขาตั้ง
- 1 x ฐาน S
- 1 x ฐานหมุน Double
- 1 x ชุดแกนรองรับ S
- 1 x เมาท์ไลท์
ส่วนประกอบของกระจกเงาประกอบด้วยสิ่งต่อไปนี้:
- 1 x ขาตั้ง
- 1 x ฐาน S
- 1 x ฐานหมุนเดี่ยว
- 1 x ชุดแกนรองรับ L
- ติดกระจก
สุดท้ายนี้ คุณยังสามารถพิมพ์หอคอยที่ให้มาได้อีกด้วย
หากคุณต้องการใช้เป็นฐานสำหรับองค์ประกอบทั้งสาม คุณจะต้องปรับคณิตศาสตร์เวกเตอร์ในโค้ดให้สอดคล้องกัน นอกจากนี้ ให้เชื่อมต่อส่วนประกอบ Face กับ Base M แทน Base L เข้ากับหอคอย
ขั้นตอนที่ 2: ขั้นตอนที่ 2: การสร้างกระจก


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




องค์ประกอบใบหน้า
- กาวร้อน กำปั้น Servo ในการตัดออกจากฐานหมุน
- กาวขั้วต่อเซอร์โวลงในร่องซึ่งอยู่ที่ด้านล่างของส่วนฐาน
- ประกอบชิ้นส่วนฐานทั้งสองเข้าด้วยกัน เพื่อให้เซอร์โวเชื่อมต่อกับขั้วต่อ
- ใช้สกรูของเซอร์โวเพื่อยึดคอนเนคเตอร์กับเซอร์โว
- กาวร้อนส่วนเชื่อมต่อที่สองลงในร่องตามซึ่งอยู่ที่ด้านบนของแกนรองรับ
- ใช้สลักเกลียว M5 4 ตัวเพื่อขันแกนรองรับกับฐานหมุน
- ติดกาวเซอร์โวตัวที่สองเข้ากับเมาท์
- เลื่อนกล้องไปที่หมุด
- ติดเซ็นเซอร์วัดระยะอัลตราโซนิกเข้ากับเมาท์ ไม่ว่าจะด้วยการขันสกรูหรือการติดกาวร้อน
- เชื่อมต่อตัวยึดกล้อง / เซ็นเซอร์เข้ากับแกนรองรับ Servo อีกครั้งต้องเลื่อนเข้าไปในชิ้นส่วนเชื่อมต่อ
- ใช้สกรูของเซอร์โวเพื่อยึดคอนเนคเตอร์กับเซอร์โว
- ขัน Raspberry Pi และไดรเวอร์เซอร์โวเข้ากับแผ่นไม้อัด (ตรวจสอบให้แน่ใจว่าระยะห่างตรงกับรูของฐาน L)
- ขันสกรูส่วนหน้าเข้ากับขาตั้ง โดยใช้สลักเกลียว M5
ส่วนประกอบกระจก
- ทำตามขั้นตอนที่ 1 ถึง 7
- เชื่อมต่อกระจกกับแกนรองรับ
- กาวขาตั้งกระจกกับไม้อัด เพื่อให้ส่วนประกอบกระจกและใบหน้าอยู่ในแนวเดียวกัน
- ขันสกรูส่วนประกอบกระจกเข้ากับขาตั้ง โดยใช้สลักเกลียว M5
ส่วนประกอบแสง
- ทำตามขั้นตอนที่ 1 ถึง 7 จากด้านบน
- ร้อยเซ็นเซอร์แสงผ่านรูยึดที่ด้านล่างของช่องบังแสง
- เชื่อมต่อแรเงากากบาทเข้ากับแกนรองรับ Servo อีกครั้งต้องเลื่อนเข้าไปในชิ้นส่วนเชื่อมต่อ
- ใช้สกรูของเซอร์โวเพื่อยึดคอนเนคเตอร์กับเซอร์โว
- กาวขาตั้งกับไม้อัดเพื่อให้ส่วนประกอบ Light, Mirror และ Face อยู่ในแนวเดียวกันและ Mirror อยู่ระหว่างส่วนประกอบ Face และ Light
- ขันสกรูส่วนหน้าเข้ากับขาตั้ง โดยใช้สลักเกลียว M5
*ส่วนประกอบทั้งหมดสามารถติดเข้ากับทาวเวอร์ได้ โปรดพิจารณาถึงความซับซ้อนในการเข้ารหัสและการเดินสายที่เพิ่มขึ้น รวมถึงเวลาในการพิมพ์ หากคุณต้องการใช้หอคอย ให้ใช้ส่วนฐาน M แทนส่วนฐาน L สำหรับส่วนประกอบใบหน้า และขันส่วนฐานเข้ากับหอคอยโดยใช้รูร้อยและสลักเกลียว M5
ขั้นตอนที่ 4: ขั้นตอนที่ 4: กำหนดค่าบอร์ด



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

รหัสสำหรับโครงการนี้สามารถแบ่งออกเป็นสองส่วน: รหัสติดตามแสง Arduino และรหัสติดตามใบหน้าหลาม / รหัสตำแหน่งกระจก
รหัส Arduino:
รหัสนี้เป็นรุ่นที่แก้ไขเล็กน้อยของโครงการติดตามดวงอาทิตย์จาก geobruce เป็นข้อมูลอ้างอิงที่ยอดเยี่ยมในการค้นหาข้อมูลเพิ่มเติมเกี่ยวกับองค์ประกอบการติดตามแสงอาทิตย์และรายละเอียดเพิ่มเติมสามารถพบได้ในหน้าคำแนะนำนี้ ค่าความเข้มของแสงจะถูกนำเข้ามาจากตัวต้านทานภาพถ่าย 4 ตัวและนำมาเฉลี่ยเพื่อหาบริเวณที่สว่างที่สุดและปรับเซอร์โวให้เหมาะสม จากนั้นเราจะเขียนค่ามุมเซอร์โวไปยังพอร์ตอนุกรม
รหัสหลาม:
โค้ดนี้รวม CV แบบเปิดเพื่อสร้างกลไกการแพนเพื่อติดตามใบหน้าและขับเคลื่อนเซอร์โวสำหรับกระจก คุณจะต้องทำตามขั้นตอนบางอย่างเพื่อดาวน์โหลด CV แบบเปิดบน Raspberry pi ของคุณ มีแหล่งข้อมูลมากมายสำหรับสิ่งนี้ แต่ฉันชอบแหล่งข้อมูลนี้มากจาก pyimagesearch คุณสามารถดูขั้นตอนทั้งหมดได้ที่นี่ หมายเหตุ: เราได้ดาวน์โหลดไลบรารี CV แบบเปิดลงในสภาพแวดล้อมเสมือนที่เราเรียกใช้โค้ดทั้งหมด หากคุณตัดสินใจที่จะทำเช่นนี้ ตรวจสอบให้แน่ใจว่าได้ดาวน์โหลดการพึ่งพาทั้งหมดลงในสภาพแวดล้อมเสมือนที่คุณใช้งานโปรแกรมอยู่ ไม่ใช่ Pi นั้นเอง
เมื่อคุณดาวน์โหลด open CV แล้ว โค้ดนี้จะต้องมีการพึ่งพาเพิ่มเติม (ติดตั้งบนสภาพแวดล้อมเฉพาะที่คุณใช้งานอยู่) เพื่อเรียกใช้:
- Adafruit ServoKit: สามารถอ่านหน้าเต็มของกระบวนการดาวน์โหลด Raspberry Pi ได้ที่นี่
- imutils
- งี่เง่า
- gpiozero (หากใช้เซ็นเซอร์วัดระยะทาง)
สำหรับการติดตามใบหน้า สคริปต์ต้องมีอาร์กิวเมนต์ (--faces) ซึ่งเป็นไฟล์.xml ที่ openCv ใช้เพื่อค้นหาใบหน้า คุณจะต้องวางไฟล์นี้ในไดเร็กทอรีเดียวกันกับสคริปต์หลาม ฉันได้ให้ไว้ในการดาวน์โหลดและสามารถพบได้ที่นี่
ขั้นตอนที่ 6: เรียกใช้โค้ด


เมื่อคุณดาวน์โหลดโค้ดทั้งหมดในไดเร็กทอรีเดียวกันและตั้งค่าสภาพแวดล้อมเสมือนด้วย open CV คุณก็พร้อมที่จะเรียกใช้
- เปิดพรอมต์คำสั่งบน pi. ของคุณ
- พิมพ์ workon cv (หรือชื่อใดก็ตามที่คุณเลือกสำหรับสภาพแวดล้อมเสมือนของคุณ)
- เปลี่ยนไดเร็กทอรีเป็นที่จัดเก็บไฟล์ของคุณ (cd (พาธไปยังไฟล์))
- บรรทัดสุดท้ายรันโปรแกรมและระบุไฟล์ haar cascade (python Face3.py --faces haarcascade_frontalface_default.xml)
เมื่อคุณเรียกใช้ คุณจะเห็นสตรีมวิดีโอจาก picam ปรากฏขึ้นบนหน้าจอ และพรอมต์คำสั่งจะเริ่มพิมพ์ค่าเซอร์โวจากเซอร์โวทั้งหก
และคุณทำเสร็จแล้ว! ขึ้นอยู่กับคุณภาพของเซอร์โวที่คุณมี คุณอาจต้องการปรับเทียบเซอร์โวแต่ละตัวโดยเฉพาะ เพื่อปรับปรุงความแม่นยำของระบบของคุณ สุดท้ายเราต้องปรับแต่งช่วง PWM ทั้งหมดเพื่อให้ทำงานได้อย่างถูกต้อง
แนะนำ:
การออกแบบเกมในการสะบัดใน 5 ขั้นตอน: 5 ขั้นตอน

การออกแบบเกมในการสะบัดใน 5 ขั้นตอน: การตวัดเป็นวิธีง่ายๆ ในการสร้างเกม โดยเฉพาะอย่างยิ่งเกมปริศนา นิยายภาพ หรือเกมผจญภัย
การตรวจจับใบหน้าบน Raspberry Pi 4B ใน 3 ขั้นตอน: 3 ขั้นตอน

การตรวจจับใบหน้าบน Raspberry Pi 4B ใน 3 ขั้นตอน: ในคำแนะนำนี้ เราจะทำการตรวจจับใบหน้าบน Raspberry Pi 4 ด้วย Shunya O/S โดยใช้ Shunyaface Library Shunyaface เป็นห้องสมุดจดจำใบหน้า/ตรวจจับใบหน้า โปรเจ็กต์นี้มีจุดมุ่งหมายเพื่อให้เกิดความเร็วในการตรวจจับและจดจำได้เร็วที่สุดด้วย
วิธีการติดตั้งปลั๊กอินใน WordPress ใน 3 ขั้นตอน: 3 ขั้นตอน

วิธีการติดตั้งปลั๊กอินใน WordPress ใน 3 ขั้นตอน: ในบทช่วยสอนนี้ ฉันจะแสดงขั้นตอนสำคัญในการติดตั้งปลั๊กอิน WordPress ให้กับเว็บไซต์ของคุณ โดยทั่วไป คุณสามารถติดตั้งปลั๊กอินได้สองวิธี วิธีแรกคือผ่าน ftp หรือผ่าน cpanel แต่ฉันจะไม่แสดงมันเพราะมันสอดคล้องกับ
การลอยแบบอะคูสติกด้วย Arduino Uno ทีละขั้นตอน (8 ขั้นตอน): 8 ขั้นตอน

การลอยแบบอะคูสติกด้วย Arduino Uno ทีละขั้นตอน (8 ขั้นตอน): ตัวแปลงสัญญาณเสียงล้ำเสียง L298N Dc ตัวเมียอะแดปเตอร์จ่ายไฟพร้อมขา DC ตัวผู้ Arduino UNOBreadboardวิธีการทำงาน: ก่อนอื่น คุณอัปโหลดรหัสไปยัง Arduino Uno (เป็นไมโครคอนโทรลเลอร์ที่ติดตั้งดิจิตอล และพอร์ตแอนะล็อกเพื่อแปลงรหัส (C++)
เครื่อง Rube Goldberg 11 ขั้นตอน: 8 ขั้นตอน

เครื่อง 11 Step Rube Goldberg: โครงการนี้เป็นเครื่อง 11 Step Rube Goldberg ซึ่งออกแบบมาเพื่อสร้างงานง่ายๆ ในรูปแบบที่ซับซ้อน งานของโครงการนี้คือการจับสบู่ก้อนหนึ่ง