Obsah:
- Krok 1: Věci, které budete potřebovat:
- Krok 2: Nastavení prostředí Pythonu:
- Krok 3: Python Script:
- Krok 4: Arduino kód:
- Krok 5: Mechanismus naklápění:-
- Krok 6: Provádění připojení:
- Krok 7: TESTOVÁNÍ:
Video: SLEDOVÁNÍ TVÁŘE S POUŽITÍM ARDUINA !!!: 7 kroků
2024 Autor: John Day | [email protected]. Naposledy změněno: 2024-01-30 08:19
V předchozím pokynu jsem sdílel, jak můžete komunikovat mezi Arduino a Python pomocí modulu 'pyserial' a ovládat LED. Pokud jste to neviděli, podívejte se sem: KOMUNIKACE MEZI ARDUINEM A PYTHONEM!
A jak můžete detekovat barvu objektu a sledovat jej na obrazovce, podívejte se sem: COLOR DETECTION pomocí OPENCV a PYTHON.
V tomto Instructable vám ukážu, jak sledovat tváře pomocí Arduino a Python a přimět kameru sledovat obličej. Může to znít obtížně, ale věřte mi, že není, vše, co potřebujete, je základní znalost Arduina a Pythonu.
Začněme tedy…
Krok 1: Věci, které budete potřebovat:
Požadavky jsou minimální. Zde jsem poskytl dílčí seznam všeho, co potřebujete:
Hardwarový požadavek:
- Arduino UNO (Amazon USA / Amazon EU)
- Webová kamera (Amazon USA / Amazon EU)
- Serva x 2 (Amazon USA / Amazon EU)
- Breadboard (Amazon USA / Amazon EU)
- Servo Pan Tilt Kit (Amazon USA / Amazon EU)
Softwarový požadavek:
- Python 2.7 (Měl by být nainstalován, Linux OS ho obvykle má předinstalovaný)
- OpenCV (Můžete si jej stáhnout samostatně nebo nainstalovat pomocí 'pip install' Vysvětleno dále)
- pyserial (lze nainstalovat pomocí pip)
- otupělý.
- Haarcascade.
Jakmile je vše shromážděno, můžeme přejít ke kroku instalace…
Krok 2: Nastavení prostředí Pythonu:
Instalace Pythonu:
Nejprve tedy potřebujeme zprovoznit Python 2.7. Chcete -li to provést, nejprve si stáhněte a nainstalujte python 2.7.14. Chcete -li zkontrolovat, zda je nainstalován správně, přejděte na: Windows Search >> Zadejte „IDLE“>> Stiskněte Enter. Měl by se objevit Python Shell.
NEBO
Do vyhledávacího pole zadejte „CMD“a stisknutím klávesy Enter otevřete příkazový řádek. V CMD zadejte >> python a stiskněte Enter, mělo by se zobrazit rozhraní Pythonu.
Pokud v CMD vidíte chybu, nepropadejte panice, pravděpodobně budete muset nastavit proměnnou prostředí. Pomocí tohoto tutoriálu můžete nastavit proměnnou prostředí.
Instalace 'pyserial', 'OpenCV "a" numpy "v pythonu:
K instalaci těchto modulů použijeme použití pip install, Nejprve otevřete CMD a zadejte následující kódy:-
pip install serial
pip install opencv-python> pip install numpy
tyto příkazy nainstalují potřebné moduly. Nyní můžeme přejít k kódovací části …
Krok 3: Python Script:
Než začnete psát kód, musíte nejprve vytvořit novou složku, protože celý kód musí být uložen ve stejné složce. Vytvořte si tedy novou složku, pojmenujte ji libovolně. a níže si stáhněte „Haarcascade“a vložte jej do složky.
Nyní otevřete poznámkový blok a napište níže uvedený skript, uložte jej jako 'face.py' do stejné složky jako haarcascade. (Níže uvedený soubor si můžete stáhnout níže):
#importujte všechny požadované moduly
import numpy as np import serial serial time import import sys import cv2 #Setup Komunikační cesta pro arduino (Místo 'COM5' vložte port, ke kterému je připojeno vaše arduino) arduino = serial. Serial ('COM5', 9600) time.sleep (2) tisk („Připojeno k arduino…“) #import Haarcascade pro detekci obličeje face_cascade = cv2. CascadeClassifier ('haarcascade_frontalface_default.xml') #Zachycení video streamu z webové kamery. cap = cv2. VideoCapture (0) #Přečtěte si zachycený obrázek, převeďte jej na šedý obraz a najděte obličeje, zatímco 1: ret, img = cap.read () cv2.resizeWindow ('img', 500, 500) cv2.line (obr., (500, 250), (0, 250), (0, 255, 0), 1) cv2.line (obr., (250, 0), (250, 500), (0, 255, 0), 1) cv2.circle (img, (250, 250), 5, (255, 255, 255), -1) grey = cv2.cvtColor (img, cv2. COLOR_BGR2GRAY) tváře = face_cascade.detectMultiScale (šedá, 1.3) # detekovat obličej a udělat kolem něj obdélník. pro (x, y, w, h) v plochách: cv2.rectangle (img, (x, y), (x+w, y+h), (0, 255, 0), 5) roi_gray = šedá [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)) tisk (' Y: '+str (y)) tisk (' x+w: '+str (x+w)) tisk (' y+h: '+str (y+h)) # Střed roi (Obdélník) xx = int (x+(x+h))/2 rr = int (y+(y+w))/2 tisk (xx) tisk (rr) střed = (xx, rr) # odesílání dat na arduino print („Center of Rectangle is:", center) data = "X {0: d} Y {1: d} Z".format (xx, yy) print ("output = '" +data + "'") arduino.write (data) #Zobrazit stream. cv2.imshow ('img', img) #Hit 'Esc' pro ukončení provádění k = cv2.waitKey (30) & 0xff if k == 27: break
Jakmile to bude hotovo, pokračujte v psaní kódu pro arduino …
Krok 4: Arduino kód:
Poté, co je skript pythonu připraven, potřebujeme k ovládání serva skicu arduina. Prostudujte si níže uvedený kód, vložte jej do Arduino IDE a uložte jako 'servo.ino' do stejné složky jako face.py a haarcascade. nahrajte kód a přejděte k dalšímu kroku k vytvoření připojení.
(Níže uvedený soubor ke stažení)
#zahrnout
Servo servoVer; // Vertikální servo servo servoHor; // Horizontální servo int x; int y; int předchozíX; int prevY; neplatné nastavení () {Serial.begin (9600); servoVer.attach (5); // Připojte vertikální servo na pin 5 servoHor.attach (6); // Připojte horizontální servo na pin 6 servoVer.write (90); servoHor.write (90); } void Pos () {if (prevX! = x || prevY! = y) {int servoX = mapa (x, 600, 0, 70, 179); int servoY = mapa (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 (); }}}
Krok 5: Mechanismus naklápění:-
Použil jsem snadno dostupnou soupravu pro Pan-Tilt. Pokud chcete, můžete si jej vyrobit sami pomocí dřeva/plastu nebo dokonce 3D tisku.
Ten, který jsem použil, je docela levný a velmi snadno se skládá. Pokud však chcete návod, jak na to, najdete ho zde.
Krok 6: Provádění připojení:
Okruh je docela jednoduchý. Stačí k arduinu připojit dvě serva.
- Svisle na kolík 5
- Vodorovně ke kolíku 6
- Napájení na +5V
- Zem k GND
Zkontrolujte schéma zapojení.
Krok 7: TESTOVÁNÍ:
- Poté, co je vše hotové, poslední věc, kterou musíte udělat, je vyzkoušet, zda to funguje. Chcete -li nejprve otestovat, ujistěte se, že jsou serva správně připojena k arduinu a načte se skica.
- Po nahrání skici nezapomeňte zavřít IDE, aby se port mohl volně připojit k pythonu.
- Nyní otevřete 'face.py' s Python IDLE a stiskněte 'F5' pro spuštění kódu. Připojení k arduinu bude trvat několik sekund a poté byste měli vidět okno streamující webovou kameru. Nyní kód detekuje vaši tvář a serva ji budou sledovat a sledovat ji.
- Servo by se mělo pohybovat při pohybu objektu. Nyní stačí připojit kameru k servům, aby se pohybovala společně se servy.
Děkuji.
Doporučuje:
ATtiny85 Nositelné vibrační sledování aktivity Sledování a programování ATtiny85 s Arduino Uno: 4 kroky (s obrázky)
ATtiny85 Wearable Vibration Activity Tracking Watch & Programming ATtiny85 With Arduino Uno: How to make the wearable activity tracking watch? Toto je nositelný gadget navržený tak, aby vibroval, když detekuje stagnaci. Trávíte většinu času na počítači jako já? Sedíte hodiny, aniž byste si to uvědomovali? Pak je toto zařízení f
Sady inteligentních robotů pro sledování robotů Sledování automobilů Fotosenzitivní: 7 kroků
Sady inteligentních robotů pro sledování robotů Sledovací auto Fotosenzitivní: Design od SINONING ROBOT Můžete si koupit od sledovacího robota carTheoryLM393 čip porovnat dva fotorezistory, když je na jedné straně LED dioda fotorezistoru na BÍLÉ, strana motoru se okamžitě zastaví, druhá strana motoru roztočit, aby
Robot pro sledování linek bez Arduina: 4 kroky
Robot pro sledování linek bez Arduina: V tomto návodu vás naučím, jak vytvořit robota sledujícího čáru bez použití arduina. K vysvětlení použiji velmi snadné kroky. Tento robot bude pro sledování čáry používat IR senzor přiblížení. Nebudete potřebovat žádné druh zkušeností s programováním pro
Lehké sledování a vyhýbání se robotu na základě Arduina: 5 kroků
Světlo sledující a vyhýbající se robot založený na Arduinu: Jedná se o jednoduchý projekt, který následuje nebo se vyhýbá světlu. Tuto simulaci jsem vytvořil v Proteus 8.6 pro. Požadované součásti: -1) Arduino uno.2) 3 LDR.3) 2 Dc Gear Motors. 4) Jedno servo. 5) Tři rezistory 1k. 6) Jeden H-Bridge l290D7) Jeden na & Vypínač [f
Inatel - SmartHome - SH2Y - Sledování systému a sledování prostředí: 6 kroků
Inatel - SmartHome - SH2Y - Sledování systému a prostředí Ambiente: Foen desenvolvido um & Sistema de Monitoramento e Seguran ç a F í sica de Ambiente " para Smart Homes, což je intuitivní monitorování stavu vari á veis como "Temperatura", "Luminosidade" e " Senzor