สารบัญ:

หุ่นยนต์ขว้างลูกกวาดพร้อม Arduino, ชิ้นส่วนรีไซเคิล และ Dlib.: 6 ขั้นตอน
หุ่นยนต์ขว้างลูกกวาดพร้อม Arduino, ชิ้นส่วนรีไซเคิล และ Dlib.: 6 ขั้นตอน

วีดีโอ: หุ่นยนต์ขว้างลูกกวาดพร้อม Arduino, ชิ้นส่วนรีไซเคิล และ Dlib.: 6 ขั้นตอน

วีดีโอ: หุ่นยนต์ขว้างลูกกวาดพร้อม Arduino, ชิ้นส่วนรีไซเคิล และ Dlib.: 6 ขั้นตอน
วีดีโอ: ชุดสร้างหุ่นยนต์หลบหลีกสิ่งกีดขวางด้วย Arduino + Ultrasonic Obstacle Avoiding Robot 2024, พฤศจิกายน
Anonim
หุ่นยนต์ขว้างลูกกวาดพร้อม Arduino, ชิ้นส่วนรีไซเคิล และ Dlib
หุ่นยนต์ขว้างลูกกวาดพร้อม Arduino, ชิ้นส่วนรีไซเคิล และ Dlib

ด้วยชิ้นส่วนรีไซเคิลสองสามชิ้น โล่มอเตอร์ 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 มอบให้จากฟังก์ชันจุดสังเกตใบหน้า:)

แนะนำ: