Daftar Isi:

PELACAKAN WAJAH MENGGUNAKAN ARDUINO !!!: 7 Langkah
PELACAKAN WAJAH MENGGUNAKAN ARDUINO !!!: 7 Langkah

Video: PELACAKAN WAJAH MENGGUNAKAN ARDUINO !!!: 7 Langkah

Video: PELACAKAN WAJAH MENGGUNAKAN ARDUINO !!!: 7 Langkah
Video: Membuat Alat GPS Pelacak Lokasi Ukuran Mini Arduino - PCBWAY.COM 2024, Juli
Anonim
PELACAKAN WAJAH MENGGUNAKAN ARDUINO !!!
PELACAKAN WAJAH MENGGUNAKAN ARDUINO !!!

Dalam instruksi sebelumnya saya membagikan bagaimana Anda dapat berkomunikasi antara Arduino dan Python menggunakan modul 'pyserial' dan mengontrol LED. Jika Anda belum melihatnya, periksa di sini: KOMUNIKASI ANTARA ARDUINO & PYTHON !

Dan bagaimana Anda dapat mendeteksi warna suatu objek dan melacaknya di layar, Lihat di sini: DETEKSI WARNA MENGGUNAKAN OPENCV DAN PYTHON.

Dalam Instruksi ini saya akan menunjukkan kepada Anda cara melacak wajah menggunakan Arduino & Python dan membuat Kamera mengikuti wajah. Ini mungkin terdengar sulit tetapi percayalah tidak, Yang Anda butuhkan hanyalah pengetahuan dasar tentang Arduino dan Python.

Jadi mari kita mulai…

Langkah 1: Hal-hal yang Anda Butuhkan:

Hal-hal yang Anda Butuhkan
Hal-hal yang Anda Butuhkan
Hal-hal yang Anda Butuhkan
Hal-hal yang Anda Butuhkan
Hal-hal yang Anda Butuhkan
Hal-hal yang Anda Butuhkan

Persyaratannya minimal. Di sini saya telah menyediakan daftar bagian dari semua yang Anda butuhkan:

Persyaratan Perangkat Keras:

  • Arduino UNO (Amazon AS / Amazon UE)
  • Web Cam (Amazon AS / Amazon UE)
  • Servos x 2 (Amazon AS / Amazon UE)
  • Papan tempat memotong roti (Amazon AS / Amazon UE)
  • Servo Pan Tilt Kit (Amazon AS / Amazon UE)

Persyaratan Perangkat Lunak:

  1. Python 2.7 (Harus diinstal, OS Linux biasanya sudah diinstal sebelumnya)
  2. OpenCV (Anda dapat mengunduhnya secara terpisah atau menginstal menggunakan 'pip install' Dijelaskan lebih lanjut)
  3. pyserial (Dapat diinstal dengan pip)
  4. mati rasa.
  5. Haarkaskade.

Setelah semuanya terkumpul, kita dapat melanjutkan ke Langkah Instalasi…

Langkah 2: Menyiapkan Lingkungan Python:

Menyiapkan Lingkungan Python
Menyiapkan Lingkungan Python
Menyiapkan Lingkungan Python
Menyiapkan Lingkungan Python
Menyiapkan Lingkungan Python
Menyiapkan Lingkungan Python

Menginstal Python:

Jadi pertama-tama kita perlu Python 2.7 aktif dan berjalan. Untuk melakukan ini, unduh terlebih dahulu dan Instal python 2.7.14. Untuk memeriksa apakah sudah terpasang dengan benar Goto: Windows Search >> Ketik "IDLE" >> Tekan Enter. Shell Python akan muncul.

ATAU

Dalam pencarian ketik 'CMD' dan tekan enter untuk membuka Command Prompt. Dalam tipe CMD >> python dan tekan enter, antarmuka Python akan menampilkan file.

Jika Anda melihat kesalahan di CMD, Jangan panik Anda mungkin perlu mengatur variabel lingkungan. Anda dapat mengikuti tutorial ini Di Sini untuk mengatur Variabel Lingkungan.

Menginstal 'pyserial', 'OpenCV" dan "numpy" di python:

Untuk menginstal modul ini kita akan menggunakan use pip install, Pertama buka CMD dan ketik kode berikut: -

pip instal serial

pip install opencv-python >pip install numpy

perintah ini akan menginstal modul yang diperlukan. Sekarang kita bisa pindah ke bagian pengkodean…

Langkah 3: Skrip Python:

Skrip Python
Skrip Python

Sebelum mulai menulis kode hal pertama yang harus dilakukan adalah membuat folder baru karena semua kode harus disimpan dalam folder yang sama. Jadi buat folder baru, beri nama apa pun yang Anda inginkan. dan unduh 'Haarcascade' dari bawah dan tempel di folder.

Sekarang buka notepad dan tulis skrip yang diberikan di bawah ini, Simpan sebagai 'face.py' di folder yang sama dengan haarcascade. (Anda dapat mengunduh kode yang telah saya sediakan file di bawah ini):

#import semua modul yang diperlukan

import numpy as np import serial import time import sys import cv2 #Setup Jalur komunikasi untuk arduino (Sebagai ganti 'COM5' letakkan port yang terhubung dengan arduino Anda) arduino = serial. Serial('COM5', 9600) time.sleep (2) print("Connected to arduino…") #importing Haarcascade untuk deteksi wajah face_cascade = cv2. CascadeClassifier('haarcascade_frontalface_default.xml') #Untuk merekam aliran video dari webcam. cap = cv2. VideoCapture(0) #Baca gambar yang diambil, ubah menjadi gambar Gray dan temukan wajah saat 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) abu-abu = cv2.cvtColor(img, cv2. COLOR_BGR2GRAY) wajah = face_cascade.detectMultiScale(abu-abu, 1.3) # mendeteksi wajah dan membuat persegi panjang di sekitarnya. untuk (x, y, w, h) di wajah: cv2.rectangle(img, (x, y), (x+w, y+h), (0, 255, 0), 5) roi_gray = abu-abu[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)) # Pusat roi (Persegi Panjang) xx = int(x+(x+h))/2 yy = int(y+(y+w))/2 print (xx) print (yy) center = (xx, yy) # mengirim data ke arduino print("Pusat Persegi Panjang adalah:", center) data = "X{0:d}Y{1:d}Z".format(xx, yy) print ("output = '" +data+ "'") arduino.write(data) #Menampilkan aliran. cv2.imshow('img', img) #Tekan 'Esc' untuk menghentikan eksekusi k = cv2.waitKey(30) & 0xff jika k == 27: break

Setelah ini selesai, lanjutkan untuk menulis kode untuk arduino…

Langkah 4: Kode Arduino:

Kode Arduino
Kode Arduino

Setelah skrip python siap, kita perlu sketsa arduino untuk mengontrol servo. Lihat kode di bawah ini, paste di Arduino IDE dan simpan sebagai 'servo.ino' di folder yang sama dengan face.py dan haarcascade. unggah kode dan lanjutkan ke langkah berikutnya untuk membuat koneksi.

(File yang dapat diunduh diberikan di bawah)

#termasuk

Servo servoVer; //Servo Servo Servo Vertikal servoHor; //Servo Horizontal int x; int y; int sebelumnya; int sebelumnya; void setup() { Serial.begin(9600); servoVer.attach(5); //Lampirkan Servo Vertikal ke Pin 5 servoHor.attach(6); //Lampirkan Servo Horizontal ke 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 = peta(y, 450, 0, 179, 95); servoX = min(servoX, 179); servoX = maks(servoX, 70); servoY = min(servoY, 179); servoY = maks(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(); } } }

Langkah 5: Mekanisme Pan-Tilt:-

Mekanisme Pan-Tilt
Mekanisme Pan-Tilt
Mekanisme Pan-Tilt
Mekanisme Pan-Tilt

Saya telah menggunakan kit yang tersedia untuk Pan-Tilt. Jika mau, Anda bisa membuatnya sendiri menggunakan kayu/Plastik atau bahkan cetak 3D.

Yang saya gunakan cukup murah, dan sangat mudah dirakit. Namun jika Anda menginginkan petunjuk tentang cara melakukannya, Anda dapat menemukannya di sini.

Langkah 6: Membuat Koneksi:

Membuat Koneksi
Membuat Koneksi
Membuat Koneksi
Membuat Koneksi

Sirkuit ini cukup sederhana. Cukup pasang dua servos ke arduino.

  1. Vertikal ke Pin 5
  2. Horizontal ke Pin 6
  3. Daya ke +5V
  4. Tanah ke GND

Periksa diagram sirkuit untuk referensi.

Langkah 7: PENGUJIAN:

  • Setelah semuanya selesai, hal terakhir yang harus dilakukan adalah menguji apakah itu berfungsi. Untuk menguji terlebih dahulu pastikan bahwa servos terhubung dengan benar ke arduino dan sketsa diunggah.
  • Setelah sketsa diunggah pastikan untuk menutup IDE sehingga port bebas untuk terhubung ke python.
  • Sekarang buka 'face.py' dengan Python IDLE dan tekan 'F5' untuk menjalankan kode. Ini akan memakan waktu beberapa detik untuk terhubung ke arduino dan kemudian Anda akan dapat melihat jendela streaming web cam. Sekarang kode akan mendeteksi wajah Anda dan servos akan melacaknya.
  • Servo harus bergerak saat Anda memindahkan objek. Sekarang cukup pasang kamera ke servos sehingga akan bergerak bersama dengan servos.

Terima kasih.

Direkomendasikan: