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

ด้วยชิ้นส่วนรีไซเคิลสองสามชิ้น โล่มอเตอร์ Arduino และซอฟต์แวร์คอมพิวเตอร์ Dlib คุณสามารถสร้างเครื่องยิงลูกกวาดตรวจจับใบหน้าที่ใช้งานได้
วัสดุ:
- กรอบไม้
- แล็ปท็อป / คอมพิวเตอร์ (ควรมีประสิทธิภาพมากกว่า Raspberry Pi!)
- Arduino (ควรเป็น Uno หรือตัวที่เหมาะกับมอเตอร์ชิลด์ของคุณ)
- Arduino motor shield (ฉันใช้ Adafruit shield ตัวเก่า เนื่องจากยังขายอยู่ที่นี่)
- เว็บแคมมาตรฐานทั่วไป
- เครื่องซักผ้าขนาดเล็ก
ชิ้นส่วนรีไซเคิล:
- ปลอก (กล่องเหล็กเก่าใช้งานได้ดี)
- สเต็ปเปอร์มอเตอร์, มอเตอร์กระแสตรงจากเครื่องพิมพ์เก่าที่ถอดประกอบ
- แหล่งจ่ายไฟเครื่องพิมพ์เก่า
- เครื่องจ่ายขนม (ภาชนะโยเกิร์ตขนาดใหญ่)
อวัยวะภายในของผลิตภัณฑ์สำเร็จรูปจะค่อนข้างเหมือนกับภาพรวมที่แนบมา
คำเตือน
ตรวจสอบให้แน่ใจว่าคุณได้ถอดปลั๊กไฟไปยัง Arduino/การตั้งค่ามอเตอร์ก่อนเดินสาย/เดินสายใหม่ อย่าลืมเสียบปลั๊กไฟในขั้วที่ถูกต้อง!
นี่เป็นโครงการระดับกลางโดยใช้ Arduino และซอฟต์แวร์ที่คุณต้องติดตั้งหรือคอมไพล์บนคอมพิวเตอร์ของคุณ คำแนะนำอาจแตกต่างกันไปและผ่านการทดสอบการทำงานบน Ubuntu แล้ว
คุณอาจต้องปรับโค้ด Arduino ให้เป็นมอเตอร์ชิลด์ที่คุณใช้ หากคุณไม่ได้ใช้มอเตอร์ชิลด์ Adafruit แบบเก่า
ขั้นตอนที่ 1: เจาะ เชื่อมต่อ และเมาท์มอเตอร์


เจาะรูในกล่อง ติดสเต็ปเปอร์มอเตอร์เพื่อให้เว็บแคมสามารถเคลื่อนที่ไปด้านบนได้ และตัวจ่ายน้ำสามารถหมุนไปรอบๆ ที่ด้านล่างได้
สเต็ปเปอร์มอเตอร์สามารถเคลื่อนที่ได้ทีละน้อย (4 สาย) ซึ่งแตกต่างจากมอเตอร์กระแสตรง (2 สาย) ที่วิ่งถอยหลัง/ไปข้างหน้า ไม่ใช่เป็นขั้น
มอเตอร์กระแสตรงมีสายไฟ 2 เส้น (วิ่งทั้งสองทาง) สเต็ปเปอร์มอเตอร์เสริมจะมี 4 ใน 2 คอยส์ (ทดสอบด้วยมิเตอร์วัดความต้านทานมัลติมิเตอร์เพื่อดูว่ามีสายคอยล์อยู่ที่ใด ตามที่อธิบายไว้ที่นี่)
หากคุณกำลังใช้โล่ Adafruit แบบเก่าในตัวอย่างของฉัน คุณควรเชื่อมต่อมอเตอร์สปินเนอร์ DC Candy กับมอเตอร์ #3 และสเต็ปเปอร์กับมอเตอร์สองตัวแรก (#1, #2) ตามที่อธิบายไว้ในเอกสารประกอบ
เมื่อเชื่อมต่อแล้ว ให้ต่อมอเตอร์เข้ากับ Arduino Motor Shield ที่ต่อกับ Arduino เพื่อผลลัพธ์ที่ดีที่สุด ขอแนะนำให้ใช้แหล่งจ่ายไฟสำรองให้กับมอเตอร์ ซึ่งคุณสามารถต่อสายไฟเข้ากับเอาต์พุต DC กับหูดที่ผนังราคา $2 จากร้านขายของมือสอง
ขั้นตอนที่ 2: การแนบคอนเทนเนอร์




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

เมื่อติดสปินเนอร์อย่างถูกต้องแล้ว ให้ใช้ปลายมีดแหลมเพื่อร่างรูเล็กๆ เพื่อให้ลูกกวาดถูกโยนออกจากส่วนท้าย - ควรอยู่เหนือด้านล่างตรงที่ปากอยู่
(เพื่อผลลัพธ์ที่ดีที่สุด สามารถใส่ขนมได้ประมาณ 30 ชิ้นลงบนปลายฝาของเครื่องจ่าย ซึ่งจะอยู่ด้านล่างสุด)
ค่อย ๆ ร่างโครงร่างด้วยมีดคม ๆ จนกว่าจะโผล่ออกมา ปล่อยให้เป็นรูเล็ก ๆ (คุณสามารถขยายรูได้ในภายหลังตามความจำเป็น)
ขั้นตอนที่ 4: การตั้งค่า Arduino
หากคุณยังไม่ได้ติดตั้งซอฟต์แวร์ Arduino ให้ดาวน์โหลดจาก
www.arduino.cc/en/Main/Software
เวอร์ชันล่าสุดควรใช้งานได้
ทดสอบ DC/Stepper motor ด้วยตัวอย่างที่ให้ไว้ในโค้ดตัวอย่างของ Arduino Shield
หากคุณบังเอิญใช้เกราะนี้ (ยังคงมีให้จากผู้ค้าปลีกบางราย) คุณสามารถใช้รหัสของฉันได้โดยตรง:
github.com/programmin1/HowToTrainYourRobot…
เมื่อคุณได้ทดสอบและสามารถแจกจ่ายลูกกวาดได้โดยป้อน "d" ในหน้าต่างอนุกรม Arduino ก็ถึงเวลาเชื่อมต่อสิ่งนี้กับตัวจำแนกลายมือของ Dlib
ขั้นตอนที่ 5: การตั้งค่า Dlib
Dlib (https://dlib.net/) มีไลบรารีโอเพนซอร์สที่ใช้งานง่ายสำหรับการจดจำภาพ ติดตั้งโมดูล Python Dlib โดยใช้:
sudo pip ติดตั้ง Dlib
- หรือ -
sudo easy_install Dlib
รอให้ Dlib ติดตั้งและคอมไพล์ (คุณจะต้องใช้คอมพิวเตอร์ที่มี RAM อย่างน้อยสองสามกิ๊ก มิฉะนั้นคุณจะต้องรอเป็นเวลานานและขยายพื้นที่สว็อป) รหัสยังใช้ OpenCV สำหรับโมดูลเว็บแคม ดังนั้นให้เรียกใช้:
sudo apt-get ติดตั้ง python-opencv
ขั้นตอนการติดตั้งอาจแตกต่างกันไปหากคุณใช้ MacOS หรือระบบปฏิบัติการอื่น
ตอนนี้ดึงข้อมูลจุดสังเกตของการตรวจจับใบหน้าจาก
dlib.net/files/shape_predictor_68_face_land…
เปิดเครื่องรูด (ด้วย Archive Manager / 7zip) และวางไว้ใน HOME/Downloads/shape_predictor_68_face_landmarks.dat
ขั้นตอนที่ 6: เชื่อมต่อตัวจดจำใบหน้ากับหุ่นยนต์ของคุณ

เสียบ USB ควบคุม Arduino เข้ากับคอมพิวเตอร์และตรวจสอบว่าไฟล์ "/dev/ttyACM0" มีอยู่แล้ว (นี่คืออุปกรณ์ที่จะส่งคำสั่งซีเรียลไปให้) หากไม่ได้ผลและมีไดเร็กทอรีอื่นที่มีชื่อคล้ายกันซึ่งแสดงใน /dev เมื่อคุณเสียบปลั๊ก ให้แทนที่ /dev/ttyACM0 ในไฟล์ faceDetectThreadCorrelationCV2FaceSmile.py ใน repo
เสียบเว็บแคม (หากไม่มีเว็บแคมในตัวอยู่ในคอมพิวเตอร์ที่คุณกำลังใช้) และเรียกใช้ไฟล์.py นั้นในบรรทัดคำสั่งหรือด้วยคำสั่ง Run/F5 ในโปรแกรมแก้ไขข้อความ Geany หากคุณต้องการใช้เว็บแคมตัวที่สอง/ภายนอกบนแล็ปท็อป คุณอาจต้องการเปลี่ยน "VideoCapture(0)" เป็น "VideoCapture(1)" เพื่อใช้เว็บแคมตัวที่สอง ซึ่งคุณสามารถวางบนสเต็ปเปอร์มอเตอร์บนกล่องของหุ่นยนต์.
หากทุกอย่างเป็นไปด้วยดี คุณจะเห็นโครงร่างของรอยยิ้มเมื่อใบหน้าอยู่หน้าเว็บแคม
อ่านภาพรวมและซอร์สโค้ดของไฟล์.py เพื่อดูคณิตศาสตร์ว่าการตรวจจับรอยยิ้มทำงานอย่างไรจากจุดที่ Dlib มอบให้จากฟังก์ชันจุดสังเกตใบหน้า:)
แนะนำ:
ติดตาม: ศูนย์สื่อขั้นสูงพร้อม Odroid N2 และ Kodi (รองรับ 4k และ HEVC): 3 ขั้นตอน

ติดตาม: Advanced Media Center พร้อม Odroid N2 และ Kodi (รองรับ 4k และ HEVC): บทความนี้เป็นบทความต่อจากบทความก่อนหน้าของฉันที่ประสบความสำเร็จค่อนข้างมากเกี่ยวกับการสร้างศูนย์สื่ออเนกประสงค์ โดยอ้างอิงจาก Raspberry PI ที่ได้รับความนิยมมากในตอนแรก แต่ ในภายหลัง เนื่องจากไม่มีเอาต์พุตที่สอดคล้องกับ HEVC, H.265 และ HDMI 2.2 จึงมีสวิตช์
Blinds Control ด้วย ESP8266, Google Home และ Openhab Integration และ Webcontrol: 5 ขั้นตอน (พร้อมรูปภาพ)

การควบคุมมู่ลี่ด้วย ESP8266, Google Home และ Openhab Integration และ Webcontrol: ในคำแนะนำนี้ ฉันจะแสดงให้คุณเห็นว่าฉันเพิ่มระบบอัตโนมัติให้กับมู่ลี่ของฉันอย่างไร ฉันต้องการเพิ่มและลบระบบอัตโนมัติได้ ดังนั้นการติดตั้งทั้งหมดจึงเป็นแบบหนีบ ส่วนหลักคือ: สเต็ปเปอร์มอเตอร์ ตัวขับสเต็ปควบคุม bij ESP-01 เกียร์และการติดตั้ง
DIY IBeacon และ Beacon Scanner ด้วย Raspberry Pi และ HM13: 3 ขั้นตอน

DIY IBeacon และ Beacon Scanner ด้วย Raspberry Pi และ HM13: Story A beacon จะส่งสัญญาณอย่างต่อเนื่องเพื่อให้อุปกรณ์บลูทู ธ อื่น ๆ รู้ว่ามีอยู่ และฉันอยากได้บีคอนบลูทูธเพื่อติดตามกุญแจมาตลอด เพราะฉันลืมเอามันมาเหมือน 10 ครั้งในปีที่แล้ว และฉันก็เกิดขึ้น
RuuviTag และ PiZero W และ Blinkt! เทอร์โมมิเตอร์แบบ Bluetooth Beacon: 3 ขั้นตอน (พร้อมรูปภาพ)

RuuviTag และ PiZero W และ Blinkt! เครื่องวัดอุณหภูมิที่ใช้ Bluetooth Beacon: คำแนะนำนี้อธิบายวิธีการอ่านข้อมูลอุณหภูมิและความชื้นจาก RuuviTag โดยใช้ Bluetooth กับ Raspberry Pi Zero W และเพื่อแสดงค่าเป็นเลขฐานสองบน Pimoroni กะพริบตา! pHAT.หรือเรียกสั้นๆ ว่า จะสร้างสถานะอย่างไร
วิธีการสร้าง Quadcoptor (NTM 28-30S 800kV 300W และ Arducopter APM 2.6 & 6H GPS 3DR Radio และ FlySky TH9X): 25 ขั้นตอน (พร้อมรูปภาพ)

วิธีการสร้าง Quadcoptor (NTM 28-30S 800kV 300W และ Arducopter APM 2.6 & 6H GPS 3DR Radio และ FlySky TH9X): นี่คือบทแนะนำเกี่ยวกับวิธีการสร้าง Quadcopter โดยใช้มอเตอร์ NTM 28-30S 800kV 300W และ Arducopter APM 2.6 & 6H GPS & วิทยุ 3DR ฉันพยายามอธิบายแต่ละขั้นตอนด้วยรูปภาพจำนวนหนึ่ง หากคุณมีคำถามหรือความคิดเห็นใด ๆ โปรดตอบกลับ