Mục lục:
- Bước 1: Những thứ bạn sẽ cần:
- Bước 2: Thiết lập môi trường Python:
- Bước 3: Tập lệnh Python:
- Bước 4: Mã Arduino:
- Bước 5: Cơ chế Pan-Tilt: -
- Bước 6: Tạo kết nối:
- Bước 7: KIỂM TRA:
Video: THEO DÕI MẶT BẰNG ARDUINO !!!: 7 bước
2024 Tác giả: John Day | [email protected]. Sửa đổi lần cuối: 2024-01-30 13:30
Trong một hướng dẫn trước, tôi đã chia sẻ cách bạn có thể giao tiếp giữa Arduino và Python bằng cách sử dụng mô-đun 'pyserial' và điều khiển đèn LED. Nếu bạn chưa xem, hãy xem tại đây: GIAO TIẾP GIỮA ARDUINO & PYTHON!
Và cách bạn có thể phát hiện màu sắc của một đối tượng và theo dõi nó trên màn hình, hãy xem điều đó tại đây: PHÁT HIỆN MÀU SẮC SỬ DỤNG OPENCV VÀ PYTHON.
Trong phần Có thể hướng dẫn này, tôi sẽ hướng dẫn bạn cách theo dõi khuôn mặt bằng Arduino & Python và làm cho Máy ảnh theo dõi khuôn mặt. Điều này nghe có vẻ khó nhưng hãy tin tôi không phải vậy, Tất cả những gì bạn cần là kiến thức cơ bản về Arduino và Python.
Vậy hãy bắt đầu…
Bước 1: Những thứ bạn sẽ cần:
Các yêu cầu là tối thiểu. Ở đây tôi đã cung cấp một phần danh sách mọi thứ bạn cần:
Yêu cầu phần cứng:
- Arduino UNO (Amazon US / Amazon EU)
- Web Cam (Amazon US / Amazon EU)
- Servos x 2 (Amazon US / Amazon EU)
- Breadboard (Amazon US / Amazon EU)
- Servo Pan Tilt Kit (Amazon US / Amazon EU)
Yêu cầu phần mềm:
- Python 2.7 (Nên cài đặt, hệ điều hành Linux thường được cài đặt sẵn)
- OpenCV (Bạn có thể tải xuống riêng hoặc cài đặt bằng cách sử dụng 'pip install'. Giải thích thêm)
- pyserial (Có thể được cài đặt bằng pip)
- numpy.
- Haarcascade.
Sau khi mọi thứ được thu thập, chúng ta có thể chuyển sang Bước Cài đặt…
Bước 2: Thiết lập môi trường Python:
Cài đặt Python:
Vì vậy, trước tiên chúng ta cần Python 2.7 thiết lập và chạy. Để thực hiện việc này, đầu tiên hãy tải xuống và cài đặt python 2.7.14. Để kiểm tra xem nó đã được cài đặt đúng chưa, Goto: Windows Search >> Gõ "IDLE" >> Nhấn Enter. Một Python Shell sẽ bật lên.
HOẶC
Trong tìm kiếm, nhập 'CMD' và nhấn enter để mở Command Prompt. Trong CMD gõ >> python và nhấn enter, giao diện Python sẽ hiển thị.
Nếu bạn thấy lỗi trong CMD, Đừng lo lắng, bạn có thể cần đặt biến môi trường. Bạn có thể làm theo hướng dẫn này Tại đây để thiết lập Biến môi trường.
Cài đặt 'pyserial', 'OpenCV "và" numpy "trong python:
Để cài đặt các mô-đun này, chúng tôi sẽ sử dụng cài đặt pip, Trước tiên hãy mở CMD và nhập các mã sau: -
pip cài đặt nối tiếp
pip cài đặt opencv-python> pip cài đặt numpy
các lệnh này sẽ cài đặt các mô-đun cần thiết. Bây giờ chúng ta có thể chuyển sang phần viết mã…
Bước 3: Tập lệnh Python:
Trước khi bắt đầu viết mã, điều đầu tiên cần làm là tạo một thư mục mới vì tất cả mã cần được lưu trữ trong cùng một thư mục. Vì vậy, hãy tạo một thư mục mới, đặt tên cho nó bất cứ thứ gì bạn muốn. và tải xuống 'Haarcascade' từ bên dưới và dán nó vào thư mục.
Bây giờ hãy mở notepad và viết tập lệnh được đưa ra bên dưới, Lưu nó dưới dạng 'face.py' trong cùng thư mục với haarcascade. (Bạn có thể tải xuống đoạn mã mà tôi đã cung cấp cho tệp bên dưới):
#import tất cả các mô-đun bắt buộc
import numpy as np import serial import time import sys import cv2 #Setup Đường dẫn giao tiếp cho arduino (Thay cho 'COM5' đặt cổng mà arduino của bạn được kết nối) arduino = serial. Serial ('COM5', 9600) time.sleep (2) print ("Đã kết nối với arduino…") # nhập Haarcascade để nhận diện khuôn mặt face_cascade = cv2. CascadeClassifier ('haarcascade_frontalface_default.xml') #Để thu luồng video từ webcam. cap = cv2. VideoCapture (0) # Đọc hình ảnh đã chụp, chuyển nó thành hình ảnh Xám và tìm khuôn mặt trong khi 1: ret, img = cap.read () cv2.resizeWindow ('img', 500, 500) cv2.line (img, (500, 250), (0, 250), (0, 255, 0), 1) cv2.line (img, (250, 0), (250, 500), (0, 255, 0), 1) cv2.circle (img, (250, 250), 5, (255, 255, 255), -1) gray = cv2.cvtColor (img, cv2. COLOR_BGR2GRAY) face = face_cascade.detectMultiScale (xám, 1.3) # phát hiện khuôn mặt và tạo một hình chữ nhật xung quanh nó. for (x, y, w, h) in the face: cv2.rectangle (img, (x, y), (x + w, y + h), (0, 255, 0), 5) roi_gray = gray [y: y + h, x: x + w] roi_color = img [y: y + h, x: x + w] arr = {y: y + h, x: x + w} print (arr) print ('X: '+ str (x)) print (' Y: '+ str (y)) print (' x + w: '+ str (x + w)) print (' y + h: '+ str (y + h)) # Tâm roi (Hình chữ nhật) xx = int (x + (x + h)) / 2 yy = int (y + (y + w)) / 2 print (xx) print (yy) center = (xx, yy) # gửi dữ liệu tới arduino print ("Tâm của Hình chữ nhật là:", center) data = "X {0: d} Y {1: d} Z".format (xx, yy) print ("output = '" + data + "'") arduino.write (dữ liệu) # Hiển thị luồng. cv2.imshow ('img', img) # Nhấn 'Esc' để chấm dứt thực thi k = cv2.waitKey (30) & 0xff if k == 27: break
Sau khi hoàn tất, hãy chuyển sang viết mã cho arduino…
Bước 4: Mã Arduino:
Sau khi tập lệnh python đã sẵn sàng, chúng ta cần phác thảo arduino để điều khiển servo. Tham khảo mã bên dưới, dán nó vào Arduino IDE và lưu nó dưới dạng 'servo.ino' trong cùng thư mục với face.py và haarcascade. tải lên mã và chuyển sang bước tiếp theo để tạo kết nối.
(Tệp có thể tải xuống được cung cấp bên dưới)
#bao gồm
Servo servoVer; // Dọc Servo Servo servoHor; // Servo ngang int x; int y; int presX; int trướcY; void setup () {Serial.begin (9600); servoVer.attach (5); // Gắn Servo dọc vào Pin 5 servoHor.attach (6); // Gắn Servo ngang vào Pin 6 servoVer.write (90); servoHor.write (90); } void Pos () {if (prevX! = x || prevY! = y) {int servoX = map (x, 600, 0, 70, 179); int servoY = map (y, 450, 0, 179, 95); servoX = min (servoX, 179); servoX = max (servoX, 70); servoY = min (servoY, 179); servoY = max (servoY, 95); servoHor.write (servoX); servoVer.write (servoY); }} void loop () {if (Serial.available ()> 0) {if (Serial.read () == 'X') {x = Serial.parseInt (); if (Serial.read () == 'Y') {y = Serial.parseInt (); Pos (); }} while (Serial.available ()> 0) {Serial.read (); }}}
Bước 5: Cơ chế Pan-Tilt: -
Tôi đã sử dụng một bộ dụng cụ có sẵn cho Pan-Tilt. Nếu bạn muốn, bạn có thể tự làm một cái bằng gỗ / nhựa hoặc thậm chí in 3D.
Cái tôi đã sử dụng khá rẻ và rất dễ lắp ráp. Tuy nhiên, nếu bạn muốn hướng dẫn về cách làm điều đó, bạn có thể tìm thấy nó ở đây.
Bước 6: Tạo kết nối:
Mạch khá đơn giản. Chỉ cần gắn hai Servos vào arduino.
- Dọc đến Ghim 5
- Ngang đến chân 6
- Nguồn đến + 5V
- Mặt đất đến GND
Kiểm tra sơ đồ mạch để tham khảo.
Bước 7: KIỂM TRA:
- Sau khi mọi thứ hoàn thành, việc cuối cùng cần làm là kiểm tra xem nó có hoạt động không. Để kiểm tra, trước tiên hãy đảm bảo rằng các servos được kết nối đúng cách với arduino và bản phác thảo được tải lên.
- Sau khi bản phác thảo được tải lên, hãy đảm bảo đóng IDE để cổng có thể kết nối với python.
- Bây giờ hãy mở 'face.py' bằng Python IDLE và nhấn 'F5' để chạy mã. Sẽ mất một vài giây để kết nối với arduino và sau đó bạn sẽ có thể thấy một cửa sổ phát trực tuyến web cam. Bây giờ mã sẽ phát hiện khuôn mặt của bạn và các servos sẽ theo dõi nó theo dõi nó.
- Servo sẽ di chuyển khi bạn di chuyển đối tượng. Bây giờ chỉ cần gắn máy ảnh vào servos để nó sẽ di chuyển cùng với Servos.
Cảm ơn bạn.
Đề xuất:
MẶT TRỜI MẶT TRỜI LÀM BỘ THEO DÕI TẦM NHÌN: 7 bước (có hình ảnh)
MẶT TRỜI MẶT TRỜI NHƯ MÁY THEO DÕI TẦM NHÌN: Độ lớn cơ bản được sử dụng trong Vật lý và các ngành khoa học khác để mô tả chuyển động cơ học là tốc độ. Đo lường nó đã là một hoạt động thường xuyên trong các lớp thực nghiệm. Tôi thường sử dụng máy quay video và phần mềm TRACKER để nghiên cứu chuyển động của certa
Theo dõi & theo dõi các cửa hàng nhỏ: 9 bước (có hình ảnh)
Theo dõi & theo dõi cho các cửa hàng nhỏ: Đây là một hệ thống dành cho các cửa hàng nhỏ được cho là gắn vào xe đạp điện hoặc xe tay ga điện tử để giao hàng trong phạm vi ngắn, ví dụ như một tiệm bánh muốn giao bánh ngọt. Theo dõi và theo dõi nghĩa là gì? Theo dõi và theo dõi là một hệ thống được sử dụng bởi ca
Bộ dụng cụ theo dõi xe ô tô tự làm bằng rô bốt thông minh Theo dõi ô tô cảm quang: 7 bước
Tự làm bộ dụng cụ theo dõi rô bốt thông minh theo dõi ô tô Theo dõi ô tô cảm quang: Thiết kế bởi SINONING ROBOT Bạn có thể mua từ rô bốt theo dõi ô tô ChipLM393 so sánh hai điện trở quang, khi có một đèn LED cảm quang một bên TRẮNG thì bên của động cơ sẽ dừng ngay lập tức, bên kia của động cơ quay lên, để
Cách tạo bộ theo dõi năng lượng mặt trời bằng Arduino và động cơ Servo: 4 bước
Cách tạo Bộ theo dõi năng lượng mặt trời bằng Arduino và Động cơ Servo: Truy cập kênh Youtube của tôi Trong bài đăng này, tôi sẽ nói về " Bộ theo dõi năng lượng mặt trời " mà tôi đã thực hiện bằng cách sử dụng servo Arduino UNO và SG90. Trước khi đọc bài viết, vui lòng kiểm tra video từ kênh của tôi, nó cung cấp 70% Ý tưởng về dự án.
Theo dõi thời tiết M5Stack M5stick C dựa trên ESP32 với DHT11 - Theo dõi nhiệt độ độ ẩm & chỉ số nhiệt trên M5stick-C với DHT11: 6 bước
Theo dõi thời tiết M5Stack M5stick C dựa trên ESP32 với DHT11 | Theo dõi nhiệt độ độ ẩm và chỉ số nhiệt trên M5stick-C Với DHT11: Xin chào các bạn, trong phần hướng dẫn này, chúng ta sẽ học cách giao tiếp cảm biến nhiệt độ DHT11 với m5stick-C (một bảng phát triển của m5stack) và hiển thị nó trên màn hình của m5stick-C. Vì vậy, trong hướng dẫn này, chúng ta sẽ đọc nhiệt độ, độ ẩm & nhiệt tôi