Съдържание:
- Стъпка 1: Нещата, от които ще се нуждаете:
- Стъпка 2: Настройка на среда на Python:
- Стъпка 3: Python скрипт:
- Стъпка 4: Arduino код:
- Стъпка 5: Механизъм на накланяне:-
- Стъпка 6: Осъществяване на връзки:
- Стъпка 7: ИЗПИТВАНЕ:
Видео: ПРОСЛЕДВАНЕ НА ЛИЦЕ С ИЗПОЛЗВАНЕ НА ARDUINO !!!: 7 стъпки
2024 Автор: John Day | [email protected]. Последно модифициран: 2024-01-30 07:50
В предишна инструкция споделих как можете да комуникирате между Arduino и Python с помощта на модул „pyserial“и да контролирате светодиод. Ако не сте го виждали, проверете тук: КОМУНИКАЦИЯ МЕЖДУ ARDUINO & PYTHON!
И как можете да откриете цвета на обект и да го проследите на екрана, проверете това тук: ЦВЕТНО ОТКРИВАНЕ С ИЗПОЛЗВАНЕ НА OPENCV И ПИТОН.
В тази инструкция ще ви покажа как да проследявате лица с помощта на Arduino & Python и да накарам камерата да следва лицето. Това може да звучи трудно, но повярвайте ми, че не е. Всичко, от което се нуждаете, са основни познания за Arduino и Python.
Така че нека започнем…
Стъпка 1: Нещата, от които ще се нуждаете:
Изискванията са минимални. Тук съм предоставил списък с части от всичко, от което се нуждаете:
Хардуерни изисквания:
- Arduino UNO (Amazon САЩ / Amazon ЕС)
- Уеб камера (Amazon САЩ / Amazon ЕС)
- Серво х 2 (Amazon САЩ / Amazon ЕС)
- Платформа (Amazon САЩ / Amazon ЕС)
- Комплект за накланяне на Servo Pan (Amazon САЩ / Amazon ЕС)
Софтуерни изисквания:
- Python 2.7 (Трябва да бъде инсталиран, Linux OS обикновено го има предварително инсталиран)
- OpenCV (Можете да го изтеглите отделно или да инсталирате с помощта на „pip install“Обяснено допълнително)
- pyserial (Може да се инсталира с pip)
- буца.
- Харкаскада.
След като всичко е събрано, можем да преминем към стъпката за инсталиране …
Стъпка 2: Настройка на среда на Python:
Инсталиране на Python:
Така че първо имаме нужда от Python 2.7, работещ и работещ. За да направите това, първо изтеглете и инсталирайте python 2.7.14. За да проверите дали е инсталиран правилно Отидете: Търсене на Windows >> Въведете „IDLE“>> Натиснете Enter. Трябва да се появи Python Shell.
ИЛИ
При търсене въведете „CMD“и натиснете enter, за да отворите командния ред. В CMD тип >> python и натиснете enter, интерфейсът на Python трябва да се покаже.
Ако видите грешка в CMD, Не се паникьосвайте, вероятно трябва да зададете променлива на средата. Можете да следвате този урок тук, за да настроите променлива на околната среда.
Инсталиране на „pyserial“, „OpenCV“и „numpy“в python:
За да инсталираме тези модули ще използваме pip install, Първо отворете CMD и въведете следните кодове:-
pip install serial
pip install opencv-python> pip install numpy
тези команди ще инсталират необходимите модули. Сега можем да преминем към кодиращата част …
Стъпка 3: Python скрипт:
Преди да започнете да пишете код, първо трябва да направите нова папка, тъй като целият код трябва да се съхранява в същата папка. Затова създайте нова папка, наречете я както искате. и изтеглете „Haarcascade“отдолу и го поставете в папката.
Сега отворете бележника и напишете скрипта, даден по -долу, запишете го като 'face.py' в същата папка като haarcascade. (Можете да изтеглите кода, който съм предоставил по -долу):
#импортирайте всички необходими модули
import numpy като np импортиране на сериен импорт време за импортиране sys импортиране cv2 #Настройка Комуникационен път за arduino (На мястото на „COM5“поставете порта, към който е свързано вашето arduino) arduino = serial. Serial ('COM5', 9600) time.sleep (2) print ("Свързан с arduino …") #импортиране на Haarcascade за разпознаване на лица face_cascade = cv2. CascadeClassifier ('haarcascade_frontalface_default.xml') #За заснемане на видеопоток от уеб камера. cap = cv2. VideoCapture (0) #Прочетете заснетото изображение, преобразувайте го в сиво изображение и намерете лица, докато 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) сиво = cv2.cvtColor (img, cv2. COLOR_BGR2GRAY) лица = face_cascade.detectMultiScale (сиво, 1.3) # открийте лицето и направете правоъгълник около него. за (x, y, w, h) в лица: cv2.rectangle (img, (x, y), (x+w, y+h), (0, 255, 0), 5) roi_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)) # Център на roi (Правоъгълник) xx = int (x+(x+h))/2 yy = int (y+(y+w))/2 печат (xx) печат (yy) център = (xx, yy) # изпращане на данни към arduino print ("Center of Rectangle is:", center) data = "X {0: d} Y {1: d} Z".format (xx, yy) print ("output = '" +data + "'") arduino.write (data) #Показване на потока. cv2.imshow ('img', img) #Hit 'Esc' за прекратяване на изпълнението k = cv2.waitKey (30) & 0xff, ако k == 27: break
След като това стане, продължете да пишете кода за arduino …
Стъпка 4: Arduino код:
След като скриптът на python е готов, се нуждаем от скица на arduino, за да контролираме сервото. Вижте кода по -долу, поставете го в Arduino IDE и го запазете като „servo.ino“в същата папка като face.py и haarcascade. качете кода и преминете към следващата стъпка, за да осъществите връзките.
(Файл за изтегляне, даден по -долу)
#включва
Servo servoVer; // Вертикално серво серво сервоХор; // Хоризонтално Servo int x; int y; int prevX; int prevY; void setup () {Serial.begin (9600); servoVer.attach (5); // Прикрепете вертикално серво към Pin 5 servoHor.attach (6); // Прикрепете хоризонтално серво към 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 = карта (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 (); }}}
Стъпка 5: Механизъм на накланяне:-
Използвал съм наличен комплект за Pan-Tilt. Ако искате, можете да си направите сами, като използвате дърво/пластмаса или дори 3D печат.
Този, който използвах, е доста евтин и много лесен за сглобяване. И все пак, ако искате инструкции как да направите това, можете да го намерите тук.
Стъпка 6: Осъществяване на връзки:
Схемата е доста проста. Просто свържете два сервомотора към arduino.
- Вертикално към Pin 5
- Хоризонтално към Pin 6
- Захранване до +5V
- Заземяване към GND
Проверете електрическата схема за справка.
Стъпка 7: ИЗПИТВАНЕ:
- След като всичко е направено, последното нещо, което трябва да направите, е да проверите дали работи. За да тествате първо, уверете се, че сервомоторите са правилно свързани към arduino и е качена скица.
- След качване на скица не забравяйте да затворите IDE, така че портът да е свободен да се свърже с python.
- Сега отворете „face.py“с Python IDLE и натиснете „F5“, за да стартирате кода. Ще отнеме няколко секунди, за да се свържете с arduino и тогава трябва да можете да видите прозорец, който предава уеб камерата. Сега кодът ще открие лицето ви и сервомоторите ще го проследят.
- Сервото трябва да се движи, докато премествате обекта. Сега просто прикрепете камерата към сервомоторите, така че тя да се движи заедно със сервомоторите.
Благодаря ти.
Препоръчано:
Neopixel Ws2812 Rainbow LED Glow с M5stick-C - Стартиране на Rainbow на Neopixel Ws2812 Използване на M5stack M5stick C Използване на Arduino IDE: 5 стъпки
Neopixel Ws2812 Rainbow LED Glow с M5stick-C | Изпълнение на Rainbow на Neopixel Ws2812 Използване на M5stack M5stick C Използване на Arduino IDE: Здравейте момчета в тази инструкция ще се научим как да използваме неопиксели ws2812 светодиоди или LED лента или LED матрица или LED пръстен с m5stack m5stick-C платка за разработка с Arduino IDE и ние ще направим модел на дъга с него
Направи си сам „Измервателен уред за използване на компютър ROG Base“Използване на Arduino и Python: 5 стъпки (със снимки)
Направи си сам „Измерител за използване на компютър ROG Base“Използване на Arduino и Python: ************************************* +На първо място, тези инструкции са написани от неносещ англоговорящ … не е професор по английски, така че, моля, информирайте за някаква граматическа грешка, преди да ми се подигравате.: P +и моля, не имитирайте
АВТОМАТИЧНО ПРОСЛЕДВАНЕ НА ИЗТОЧНИК НА СВЕТЛИНА С ARDUINO UNO R3: 5 стъпки
АВТОМАТИЧНО ПРОСЛЕДВАНЕ НА ИЗТОЧНИК НА СВЕТЛИНА С ARDUINO UNO R3: В този урок ще използваме серво мотор, фоторезистор и падащ резистор, за да сглобим система за автоматично проследяване на източник на светлина
GPS ПРОСЛЕДВАНЕ НА КОЛА ИЛИ КОЛА ОТ СМАРТФОНА: 9 стъпки
GPS ПРОСЛЕДВАНЕ НА КОЛА ИЛИ АВТОМОБИЛ ОТ СМАРТФОНА: Здравейте, добре дошли в Creativity Buzz. Тук ви показвам как проследявате своя велосипед или кола. Можете да проследявате местоположението на мотора на живо с помощта на този уред. Можете да проследявате всеки мотор с помощта на този уред
IOT123 - СЛЪНЧЕВО ПРОСЛЕДВАНЕ - НАКЛЮЧВАНЕ/ПАН, ПАНЕЛНА РАМКА, LDR МОНТИ RIG: 9 стъпки (със снимки)
IOT123 - СЛЪНЧЕВО ПРОСЛЕДВАНЕ - НАКЛЮЧВАНЕ/ПАН, ПАНЕЛНА РАМКА, LDR МОНТИ РИГ: Повечето от проектите „направи си сам“за двуосни слънчеви проследяващи устройства " там " са базирани на 9G Micro Servo, които наистина са подценени, за да се движат около няколко слънчеви клетки, микроконтролера, батерията и корпуса. Можете да проектирате около