สารบัญ:

HackerBox 0024: Vision Quest: 11 ขั้นตอน
HackerBox 0024: Vision Quest: 11 ขั้นตอน

วีดีโอ: HackerBox 0024: Vision Quest: 11 ขั้นตอน

วีดีโอ: HackerBox 0024: Vision Quest: 11 ขั้นตอน
วีดีโอ: HackerBox #0024: Vision Quest 2024, พฤศจิกายน
Anonim
HackerBox 0024: Vision Quest
HackerBox 0024: Vision Quest

Vision Quest - ในเดือนนี้ HackerBox Hackers กำลังทดลองใช้ Computer Vision และ Servo Motion Tracking คำแนะนำนี้มีข้อมูลสำหรับการทำงานกับ HackerBox #0024 ซึ่งคุณสามารถรับได้ที่นี่จนกว่าของจะหมด นอกจากนี้ หากคุณต้องการรับ HackerBox แบบนี้ในกล่องจดหมายของคุณทุกเดือน โปรดสมัครสมาชิกที่ HackerBoxes.com และเข้าร่วมการปฏิวัติ!

หัวข้อและวัตถุประสงค์การเรียนรู้สำหรับ HackerBox 0024:

  • ทดลองกับคอมพิวเตอร์วิชั่น
  • การตั้งค่า OpenCV (คอมพิวเตอร์วิทัศน์)
  • การเขียนโปรแกรม Arduino Nano จาก Arduino IDE
  • การควบคุมเซอร์โวมอเตอร์ด้วย Arduino Nano
  • การประกอบชุดกลไกแพนและเอียง
  • การควบคุม Pan และ Tilt Motion ด้วยไมโครคอนโทรลเลอร์
  • การติดตามใบหน้าโดยใช้ OpenCV

HackerBoxes เป็นบริการกล่องสมัครสมาชิกรายเดือนสำหรับอุปกรณ์อิเล็กทรอนิกส์ DIY และเทคโนโลยีคอมพิวเตอร์ เราเป็นมือสมัครเล่น ผู้สร้าง และผู้ทดลอง เราคือผู้ใฝ่ฝัน แฮ็คดาวเคราะห์!

ขั้นตอนที่ 1: HackerBox 0024: เนื้อหาในกล่อง

HackerBox 0024: เนื้อหาในกล่อง
HackerBox 0024: เนื้อหาในกล่อง
  • HackerBoxes #0024 การ์ดอ้างอิงสำหรับสะสม
  • สามขายึดแพนและชุดเอียง
  • เซอร์โว MG996R สองตัวพร้อมอุปกรณ์เสริม
  • ตัวเชื่อมต่อเซอร์โวแบบวงกลมอลูมิเนียมสองตัว
  • Arduino Nano V3 - 5V, 16MHz, MicroUSB
  • ชุดประกอบกล้องดิจิตอลพร้อมสาย USB
  • เลนส์สามตัวพร้อมคลิปเมาท์อเนกประสงค์
  • ไฟปากกาตรวจสุขภาพ
  • จัมเปอร์ Dupont ชาย/หญิง
  • สาย MicroUSB
  • สติ๊กเกอร์ OpenCV สุดพิเศษ
  • สติ๊กเกอร์ Dia de Muertos สุดพิเศษ

สิ่งอื่น ๆ ที่จะเป็นประโยชน์:

  • เศษไม้กระดานขนาดเล็กสำหรับฐานกล้อง
  • หัวแร้ง หัวแร้ง และเครื่องมือบัดกรีพื้นฐาน
  • คอมพิวเตอร์สำหรับใช้งานเครื่องมือซอฟต์แวร์

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

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

ขั้นตอนที่ 2: คอมพิวเตอร์วิทัศน์

วิสัยทัศน์คอมพิวเตอร์
วิสัยทัศน์คอมพิวเตอร์

คอมพิวเตอร์วิทัศน์เป็นสาขาสหวิทยาการที่เกี่ยวข้องกับการที่คอมพิวเตอร์ได้รับความเข้าใจในระดับสูงจากภาพหรือวิดีโอดิจิทัล จากมุมมองของวิศวกรรม คอมพิวเตอร์วิทัศน์พยายามที่จะทำงานอัตโนมัติที่ระบบการมองเห็นของมนุษย์สามารถทำได้ ตามระเบียบวินัยทางวิทยาศาสตร์ คอมพิวเตอร์วิทัศน์เกี่ยวข้องกับทฤษฎีเบื้องหลังระบบประดิษฐ์ที่ดึงข้อมูลจากภาพ ข้อมูลภาพมีได้หลายรูปแบบ เช่น ลำดับวิดีโอ มุมมองจากกล้องหลายตัว หรือข้อมูลหลายมิติจากเครื่องสแกนทางการแพทย์ ในฐานะที่เป็นวินัยทางเทคโนโลยี คอมพิวเตอร์วิทัศน์พยายามที่จะใช้ทฤษฎีและแบบจำลองในการสร้างระบบการมองเห็นด้วยคอมพิวเตอร์ โดเมนย่อยของการมองเห็นด้วยคอมพิวเตอร์ ได้แก่ การสร้างฉากขึ้นใหม่ การตรวจจับเหตุการณ์ การติดตามวิดีโอ การจดจำวัตถุ การประเมินท่าทาง 3 มิติ การเรียนรู้ การสร้างดัชนี การประมาณการเคลื่อนไหว และการฟื้นฟูภาพ

เป็นที่น่าสนใจที่จะสังเกตว่าการมองเห็นด้วยคอมพิวเตอร์อาจถือได้ว่าเป็นสิ่งที่ตรงกันข้ามกับคอมพิวเตอร์กราฟิก

ขั้นตอนที่ 3: การประมวลผลและ OpenCV

การประมวลผลและ OpenCV
การประมวลผลและ OpenCV

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

OpenCV (Open Source Computer Vision Library) เป็นวิสัยทัศน์คอมพิวเตอร์โอเพ่นซอร์สและไลบรารีซอฟต์แวร์การเรียนรู้ของเครื่อง OpenCV สร้างขึ้นเพื่อจัดเตรียมโครงสร้างพื้นฐานทั่วไปสำหรับแอปพลิเคชันการมองเห็นด้วยคอมพิวเตอร์ และเพื่อเร่งการใช้การรับรู้ของเครื่องในผลิตภัณฑ์เชิงพาณิชย์ ไลบรารี OpenCV มีอัลกอริธึมที่ปรับให้เหมาะสมมากกว่า 2,500 แบบ ซึ่งรวมถึงชุดคอมพิวเตอร์วิทัศน์แบบคลาสสิกและล้ำสมัยและอัลกอริธึมการเรียนรู้ด้วยเครื่องที่ครอบคลุมทั้งแบบคลาสสิกและล้ำสมัย อัลกอริทึมเหล่านี้สามารถใช้เพื่อตรวจจับและจดจำใบหน้า ระบุวัตถุ จำแนกการกระทำของมนุษย์ในวิดีโอ ติดตามการเคลื่อนไหวของกล้อง ติดตามวัตถุที่เคลื่อนไหว และอื่นๆ

ติดตั้ง OpenCV ภายในการประมวลผลจากเมนู File > Examples โดยเลือก "Add Examples" จากนั้นภายใต้แท็บ Libraries ติดตั้งทั้งวิดีโอและไลบรารี OpenCV เปิดตัวอย่าง LiveCamTest สำหรับการติดตามใบหน้าขั้นพื้นฐาน ลองดูตัวอย่าง OpenCV สำหรับการประมวลผลอื่นๆ ที่นี่

แหล่งข้อมูลเพิ่มเติม:

การเริ่มต้นใช้งาน Computer Vision เป็นโครงการหนังสือที่ให้จุดเริ่มต้นที่ง่ายสำหรับการทดลองเชิงสร้างสรรค์ด้วยคอมพิวเตอร์วิทัศน์ แนะนำรหัสและแนวคิดที่จำเป็นในการสร้างโครงการวิชันซิสเต็มคอมพิวเตอร์

การเขียนโปรแกรม Computer Vision with Python เป็นหนังสือของ O'Reilly บน PCV ซึ่งเป็นโมดูล Python แบบโอเพนซอร์สสำหรับคอมพิวเตอร์วิทัศน์

การเรียนรู้ OpenCV

คอมพิวเตอร์วิทัศน์: อัลกอริทึมและแอปพลิเคชัน

การเรียนรู้ OpenCV

Stanford Course CS231n Convolutional Neural Networks เพื่อการจดจำภาพ (16 วิดีโอ)

Chris Urmson TED Talk รถยนต์ไร้คนขับมองเห็นถนนได้อย่างไร

ขั้นตอนที่ 4: แพลตฟอร์มไมโครคอนโทรลเลอร์ Arduino Nano

แพลตฟอร์มไมโครคอนโทรลเลอร์ Arduino นาโน
แพลตฟอร์มไมโครคอนโทรลเลอร์ Arduino นาโน

เราสามารถใช้แพลตฟอร์ม microntroller ทั่วไปในการควบคุมเซอร์โวในเมาท์กล้องแพนและเอียงของเรา Arduino Nano เป็นบอร์ด Arduino ขนาดเล็กที่ยึดติดกับพื้นผิว เป็นมิตรกับบอร์ดบอร์ด พร้อม USB ในตัว มันมีคุณสมบัติครบถ้วนอย่างน่าอัศจรรย์และแฮ็คได้ง่าย

คุณสมบัติ:

  • ไมโครคอนโทรลเลอร์: Atmel ATmega328P
  • แรงดันไฟฟ้า: 5V
  • พิน I/O ดิจิตอล: 14 (6 PWM)
  • พินอินพุตแบบอะนาล็อก: 8
  • กระแสไฟตรงต่อขา I/O: 40 mA
  • หน่วยความจำแฟลช: 32 KB (2KB สำหรับ bootloader)
  • SRAM: 2 KB
  • EEPROM: 1 KB
  • ความเร็วสัญญาณนาฬิกา: 16 MHz
  • ขนาด: 17mm x 43mm

Arduino Nano รุ่นพิเศษนี้คือการออกแบบ Robotdyn สีดำ อินเทอร์เฟซใช้พอร์ต MicroUSB ออนบอร์ดที่เข้ากันได้กับสาย MicroUSB เดียวกันกับที่ใช้กับโทรศัพท์มือถือและแท็บเล็ตจำนวนมาก

Arduino Nanos มีชิปบริดจ์ USB/ซีเรียลในตัว สำหรับรุ่นพิเศษนี้ ชิปบริดจ์คือ CH340G โปรดทราบว่ามีชิปบริดจ์ USB/ซีเรียลประเภทอื่นๆ ที่ใช้กับบอร์ด Arduino ประเภทต่างๆ ชิปเหล่านี้อนุญาตให้พอร์ต USB ของคอมพิวเตอร์สื่อสารกับอินเทอร์เฟซแบบอนุกรมบนชิปตัวประมวลผลของ Arduino

ระบบปฏิบัติการของคอมพิวเตอร์ต้องใช้ไดรเวอร์อุปกรณ์เพื่อสื่อสารกับชิป USB/ซีเรียล ไดรเวอร์ช่วยให้ IDE สามารถสื่อสารกับบอร์ด Arduino ไดรเวอร์อุปกรณ์เฉพาะที่จำเป็นขึ้นอยู่กับทั้งเวอร์ชันของระบบปฏิบัติการและประเภทของชิป USB/ซีเรียล สำหรับชิป CH340 USB/Serial มีไดรเวอร์สำหรับระบบปฏิบัติการหลายระบบ (UNIX, Mac OS X หรือ Windows) ผู้ผลิต CH340 เป็นผู้จัดหาไดรเวอร์เหล่านั้นที่นี่

เมื่อคุณเสียบ Arduino Nano เข้ากับพอร์ต USB ของคอมพิวเตอร์เป็นครั้งแรก ไฟสีเขียวจะสว่างขึ้น และหลังจากไฟ LED สีฟ้าจะเริ่มกะพริบช้าๆ ไม่นาน สิ่งนี้เกิดขึ้นเนื่องจาก Nano ถูกโหลดไว้ล่วงหน้าด้วยโปรแกรม BLINK ซึ่งทำงานบน Arduino Nano ใหม่ล่าสุด

ขั้นตอนที่ 5: Arduino Integrated Development Environment (IDE)

สภาพแวดล้อมการพัฒนาแบบบูรณาการของ Arduino (IDE)
สภาพแวดล้อมการพัฒนาแบบบูรณาการของ Arduino (IDE)

หากคุณยังไม่ได้ติดตั้ง Arduino IDE คุณสามารถดาวน์โหลดได้จาก Arduino.cc

หากคุณต้องการข้อมูลเบื้องต้นเพิ่มเติมสำหรับการทำงานในระบบนิเวศ Arduino เราขอแนะนำให้ตรวจสอบคำแนะนำสำหรับ HackerBoxes Starter Workshop

เสียบนาโนเข้ากับสายเคเบิล MicroUSB และปลายอีกด้านของสายเคเบิลเข้ากับพอร์ต USB บนคอมพิวเตอร์ เปิดซอฟต์แวร์ Arduino IDE เลือกพอร์ต USB ที่เหมาะสมใน IDE ภายใต้เครื่องมือ>พอร์ต (น่าจะเป็นชื่อที่มี "wchusb" อยู่ในนั้น). เลือก "Arduino Nano" ใน IDE ภายใต้ tools>board

สุดท้าย โหลดโค้ดตัวอย่างบางส่วน:

ไฟล์->ตัวอย่าง->พื้นฐาน->กะพริบ

นี่คือรหัสที่โหลดไว้ล่วงหน้าบน Nano และควรจะทำงานในขณะนี้เพื่อกะพริบไฟ LED สีน้ำเงินอย่างช้าๆ ดังนั้น หากเราโหลดโค้ดตัวอย่างนี้ จะไม่มีอะไรเปลี่ยนแปลง ให้ปรับเปลี่ยนโค้ดเล็กน้อยแทน

เมื่อมองใกล้ ๆ คุณจะเห็นว่าโปรแกรมเปิดไฟ LED รอ 1,000 มิลลิวินาที (หนึ่งวินาที) ปิดไฟ LED รออีกหนึ่งวินาทีแล้วทำทุกอย่างอีกครั้ง - ตลอดไป

แก้ไขโค้ดโดยเปลี่ยนคำสั่ง "delay(1000)" ทั้งคู่เป็น "delay(100)" การปรับเปลี่ยนนี้จะทำให้ LED กะพริบเร็วขึ้น 10 เท่า จริงไหม?

มาโหลดโค้ดที่แก้ไขแล้วลงใน Nano โดยคลิกปุ่ม UPLOAD (ไอคอนลูกศร) เหนือโค้ดที่คุณแก้ไข ดูรหัสด้านล่างสำหรับข้อมูลสถานะ: "กำลังรวบรวม" แล้ว "กำลังอัปโหลด" ในที่สุด IDE ควรระบุว่า "การอัปโหลดเสร็จสมบูรณ์" และไฟ LED ของคุณควรกะพริบเร็วขึ้น

ถ้าเป็นเช่นนั้นขอแสดงความยินดี! คุณเพิ่งแฮ็คโค้ดฝังตัวชิ้นแรกของคุณ

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

ขั้นตอนที่ 6: เซอร์โวมอเตอร์

เซอร์โวมอเตอร์
เซอร์โวมอเตอร์

โดยทั่วไปแล้วเซอร์โวมอเตอร์จะถูกควบคุมโดยชุดของพัลส์ไฟฟ้าที่เกิดซ้ำ โดยที่ความกว้างของพัลส์ระบุตำแหน่งของเซอร์โว สัญญาณควบคุมความกว้างพัลส์ (PWM) มักถูกสร้างขึ้นโดยไมโครคอนโทรลเลอร์ทั่วไป เช่น Arduino

เซอร์โวขนาดเล็กสำหรับงานอดิเรก เช่น MG996R เชื่อมต่อผ่านการเชื่อมต่อแบบสามสายมาตรฐาน: สายไฟสองเส้นสำหรับแหล่งจ่ายไฟ DC และสายหนึ่งเส้นสำหรับควบคุมพัลส์ควบคุม เซอร์โว MG996R มีแรงดันไฟในการทำงาน 4.8-7.2 VDC

ขั้นตอนที่ 7: การประกอบกลไกแพนและเอียง

การประกอบกลไกแพนและเอียง
การประกอบกลไกแพนและเอียง
  1. ดึงเซอร์โว MG996R ทั้งสองออกจากกระเป๋าและเก็บอุปกรณ์เสริมที่ให้มาไว้ตอนนี้
  2. ติดตัวเชื่อมเซอร์โวแบบวงกลมอลูมิเนียมเข้ากับเซอร์โวแต่ละตัว โปรดทราบว่าข้อต่อมาในถุงแยกจากเซอร์โว ข้อต่อเป็นแบบรัดแน่นมาก เริ่มต้นด้วยการกดตัวต่อเข้ากับส่วนท้ายของเอาต์พุตเซอร์โว จากนั้นขันสกรูเข้าที่รูตรงกลาง ขันเกลียวให้แน่นเพื่อดึงข้อต่อเข้ากับเอาต์พุตเซอร์โว
  3. โปรดทราบว่ามีตัวยึดสามตัวสำหรับการประกอบแบบแพนเอียง - ตัวยึดแบบกล่องสองอันและตัวยึดรูปตัวยูหนึ่งอัน
  4. ติดตั้งตัวยึดกล่องตัวใดตัวหนึ่งเข้ากับวงกลมอลูมิเนียมสำหรับเซอร์โวตัวใดตัวหนึ่ง เราจะเรียกเซอร์โวนี้ว่าแพนเซอร์โว จัดวางโครงยึดกล่องโดยให้ผนังตรงกลางชิดกับวงกลมอะลูมิเนียม โดยให้ผนังอีกสองด้านของโครงยึดกล่องหันออกจากแพนเซอร์โว ใช้รูตรงกลางที่ผนังตรงกลางของโครงใส่กล่อง การจัดเรียงนี้ควรอนุญาตให้แพนเซอร์โวหมุนโครงยึดกล่องที่ติดอยู่รอบ ๆ เมื่อมีการกระตุ้น
  5. วางตำแหน่งเซอร์โวตัวอื่น (เอียงเซอร์โว) ลงในตัวยึดกล่องที่ติดอยู่กับวงกลมอลูมิเนียมของแพนเซอร์โว ใช้น็อตและสลักเกลียวอย่างน้อยสองตัวเพื่อติดเซอร์โวเอียง - หนึ่งอันในแต่ละด้าน
  6. จับ U-bracket ใส่ "แบริ่ง" ทองเหลืองจากด้านในของ U ผ่านรูยึดเดือยขนาดใหญ่ช่องใดช่องหนึ่ง
  7. วาง U-bracket พร้อมแบริ่งลงบนเซอร์โวแบบเอียงซึ่งอยู่ภายในฐานยึดกล่อง โดยให้รูติดตั้งเดือยขนาดใหญ่อีกอัน (อันที่ไม่มีแบริ่ง) อยู่ในแนวเดียวกับวงกลมอลูมิเนียมบนเซอร์โวแบบเอียง
  8. ใช้สกรูยึด U-bracket เข้ากับวงกลมอลูมิเนียมที่ด้านหนึ่งของ U-bracket
  9. อีกด้านหนึ่งของโครงรูปตัว U ให้ขันสกรูตัวเดียวผ่านตลับลูกปืนและเข้าไปในรูเล็กๆ ในโครงยึดกล่องด้านใน สิ่งนี้จะช่วยให้ U-bracket สามารถหมุนรอบ box-bracket ได้ในภายหลังเมื่อเอียง servo ถูกกระตุ้น

ขั้นตอนที่ 8: การติดตั้ง Pan and Tilt Assembly

การติดตั้งชุดแพนและเอียง
การติดตั้งชุดแพนและเอียง
การติดตั้งชุดแพนและเอียง
การติดตั้งชุดแพนและเอียง

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

ขั้นตอนที่ 9: ต่อสายและทดสอบชุดแพนและเอียง

ต่อสายและทดสอบชุดแพนและเอียง
ต่อสายและทดสอบชุดแพนและเอียง

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

นาโนไม่มีกระแสไฟเพียงพอสำหรับการจ่ายไฟ 5V เพื่อจ่ายไฟเซอร์โวจาก USB ดังนั้นจึงขอแนะนำให้ใช้แหล่งจ่ายไฟเพิ่มเติม สามารถเป็นอะไรก็ได้ในช่วง 4.8-7.2 โวลต์ ตัวอย่างเช่น แบตเตอรี่ AA สี่ก้อน (ในซีรีย์) จะทำงานได้ดี ม้านั่งสำรองหรือหูดที่ผนังก็เป็นทางเลือกที่ดีเช่นกัน

ตัวอย่างโค้ด Arduino ง่ายๆ ที่แนบมาที่นี่เป็น PanTiltTest.ino สามารถใช้ทดสอบการควบคุมเซอร์โวสองตัวจากมอนิเตอร์แบบอนุกรมบน Arduino IDE ตั้งค่าอัตราบอดของจอภาพให้ตรงกับ 9600bps ที่ตั้งไว้ในโค้ดตัวอย่าง การป้อนค่ามุมระหว่าง 0 ถึง 180 องศาจะจัดตำแหน่งเซอร์โวให้สอดคล้องกัน

สุดท้ายนี้ สามารถติดตั้งโมดูลกล้อง USB (หรือเซ็นเซอร์อื่นๆ) กับ U-Bracket ของ Pan-Tilt Assembly เพื่อใช้ในการติดตามแอปพลิเคชัน

ขั้นตอนที่ 10: การติดตามใบหน้าด้วย OpenCV

Image
Image
Hack the Planet
Hack the Planet

ระบบติดตามใบหน้าด้วยวิชันซิสเต็มสามารถนำไปใช้ได้โดยการรวมระบบย่อยตามที่แสดงในแผนภาพบล็อก ร่าง SerialServoControl สำหรับ Arduino สามารถพบได้ในบทช่วยสอน Sparkfun ต่อไปนี้พร้อมกับการสาธิตที่เกี่ยวข้องโดยใช้ OpenCV, การประมวลผล, Arduino, กล้อง USB และการประกอบ Pan/Tilt เพื่อติดตามใบหน้ามนุษย์ การสาธิตนี้ใช้เซอร์โวสองตัวเพื่อปรับตำแหน่งกล้องเพื่อให้ใบหน้าอยู่ในกรอบวิดีโอแม้ในขณะที่ผู้ใช้เคลื่อนที่ไปรอบๆ ห้อง ตัวอย่างเช่น โค้ดใน C# ให้ตรวจสอบที่เก็บ GitHub สำหรับวิดีโอ CamBot

ขั้นตอนที่ 11: แฮ็กดาวเคราะห์

หากคุณชอบคำแนะนำนี้และต้องการให้กล่องอิเล็กทรอนิกส์และโครงการเทคโนโลยีคอมพิวเตอร์ส่งตรงไปยังกล่องจดหมายของคุณทุกเดือนโปรดเข้าร่วมกับเราโดยสมัครที่นี่

ติดต่อและแบ่งปันความสำเร็จของคุณในความคิดเห็นด้านล่างหรือบนหน้า Facebook ของ HackerBoxes โปรดแจ้งให้เราทราบหากคุณมีคำถามหรือต้องการความช่วยเหลือ ขอบคุณที่เป็นส่วนหนึ่งของ HackerBoxes โปรดให้ข้อเสนอแนะและข้อเสนอแนะของคุณมา HackerBox เป็นกล่องของคุณ มาทำอะไรที่ยอดเยี่ยมกัน!

แนะนำ: