Мазмұны:

ARDUINO ПАЙДАЛАНУ БЕТІН БАҚЫЛАУ !!!: 7 қадам
ARDUINO ПАЙДАЛАНУ БЕТІН БАҚЫЛАУ !!!: 7 қадам

Бейне: ARDUINO ПАЙДАЛАНУ БЕТІН БАҚЫЛАУ !!!: 7 қадам

Бейне: ARDUINO ПАЙДАЛАНУ БЕТІН БАҚЫЛАУ !!!: 7 қадам
Бейне: Control 10 output pins or relay using 10 push button switch with 1 Arduino input pin ANPB-V2 2024, Қараша
Anonim
ARDUINO ПАЙДАЛАНҒАН ЖҮЗДІ БАҚЫЛАУ !!!
ARDUINO ПАЙДАЛАНҒАН ЖҮЗДІ БАҚЫЛАУ !!!

Алдыңғы нұсқаулықта мен «pyserial» модулін пайдаланып Arduino мен Python арасында қалай байланысуға және жарықдиодты басқаруға болатынын айттым. Егер сіз оны көрмесеңіз, мына жерден қараңыз: ARDUINO мен PYTHON арасындағы байланыс!

Нысанның түсін қалай анықтауға және оны экранда бақылауға болатынын мына жерден қараңыз: OPENCV ЖӘНЕ ПИТОНДЫ ҚОЛДАНЫП ТҮСТІ анықтау.

Бұл нұсқаулықта мен сізге Arduino & Python көмегімен беттерді қалай бақылау керектігін және камераны бетке қарай қалай жасау керектігін көрсетемін. Бұл қиын сияқты көрінуі мүмкін, бірақ маған сеніңіз, бұл сізге қажет емес, тек Arduino мен Python туралы қарапайым білім.

Сонымен бастайық …

1 -қадам: Сізге қажет нәрселер:

Сізге қажет заттар
Сізге қажет заттар
Сізге қажет заттар
Сізге қажет заттар
Сізге қажет заттар
Сізге қажет заттар

Қойылатын талаптар минимум. Мен сізге қажет нәрсенің тізімін ұсындым:

Жабдыққа қойылатын талаптар:

  • Arduino UNO (Amazon US / Amazon EU)
  • Web Cam (Amazon US / Amazon EU)
  • Servos x 2 (Amazon US / Amazon EU)
  • Нан тақтасы (Amazon US / Amazon EU)
  • Servo Pan Tilt жиынтығы (Amazon US / Amazon EU)

Бағдарламалық қамтамасыз ету талаптары:

  1. Python 2.7 (Орнату керек, Linux ОЖ әдетте оны алдын ала орнатады)
  2. OpenCV (Сіз оны бөлек жүктей аласыз немесе «pip install» арқылы орната аласыз, әрі қарай түсіндіріледі)
  3. pyserial (pip арқылы орнатуға болады)
  4. ессіз
  5. Хааркаскад.

Барлығы жиналғаннан кейін біз орнату қадамына көшеміз …

2-қадам: Python ортасын орнату:

Python ортасын орнату
Python ортасын орнату
Python ортасын орнату
Python ортасын орнату
Python ортасын орнату
Python ортасын орнату

Python орнату:

Алдымен бізге Python 2.7 іске қосылуы керек. Мұны істеу үшін алдымен python 2.7.14 жүктеп алып, орнатыңыз. Оның дұрыс орнатылғанын тексеру үшін Goto: Windows іздеу >> «IDLE» теріңіз >> Enter пернесін басыңыз. Python Shell пайда болуы керек.

НЕМЕСЕ

Іздеуде «CMD» деп теріңіз және пәрмен жолын ашу үшін enter пернесін басыңыз. CMD түрінде >> python және enter пернесін басыңыз, Python интерфейсі көрсетілуі керек.

Егер сіз CMD -де қате көрсеңіз, дүрбелең болмаңыз, мүмкін, орта айнымалысын орнату қажет болуы мүмкін. Сіз қоршаған ортаның айнымалы мәнін орнату үшін мына оқулықты орындауға болады.

Python -да 'pyserial', 'OpenCV' және 'numpy' орнату:

Бұл модульдерді орнату үшін біз pip install қолданамыз, Алдымен CMD ашыңыз және келесі кодтарды теріңіз:-

сериялық орнату сериясы

pip install opencv-python> pip install numpy

бұл командалар қажетті модульдерді орнатады. Енді біз кодтау бөлігіне ауыса аламыз …

3 -қадам: Python сценарийі:

Python сценарийі
Python сценарийі

Кодты жазуды бастамас бұрын, бірінші кезекте жаңа қалта жасау керек, себебі барлық кодты сол қалтада сақтау қажет. Сондықтан жаңа қалта жасаңыз, оны қалағаныңызша атаңыз. төменнен 'Haarcascade' жүктеп алып, оны қалтаға қойыңыз.

Енді блокнотты ашып, төменде берілген сценарийді жазыңыз, оны «face.py» ретінде haarcascade қалтасына сақтаңыз. (Сіз төмендегі файлды берген кодты жүктей аласыз):

#барлық қажетті модульдерді импорттаңыз

np ретінде numpy импорттау сериялық импорттық уақыт импорт cv2 импорт cv2 #Setup Arduino үшін байланыс жолы ('COM5' орнына сіздің arduino қосылған портты қойыңыз) arduino = serial. Serial ('COM5', 9600) time.sleep (2) басып шығару («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.тіктөртбұрыш (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} басып шығару (arr) басып шығару ('X: '+str (x)) басып шығару (' Y: '+str (y)) басып шығару (' x+w: '+str (x+w)) басып шығару (' y+h: '+str (y+h))) # Рой орталығы (Тіктөртбұрыш) xx = int (x+(x+h))/2 yy = int (y+(y+w))/2 баспа (xx) баспа (yy) центр = (xx, yy) # деректерді arduino басып шығаруға жіберу («Тіктөртбұрыш орталығы:», орталық) data = «X {0: d} Y {1: d} Z».формат (xx, yy) басып шығару («output = '» +data + «'») arduino.write (деректер) #Ағынды көрсету. cv2.imshow ('img', img) #Орындауды тоқтату үшін «Esc» батырмасын басыңыз k = cv2.waitKey (30) & 0xff егер k == 27: үзіліс

Бұл аяқталғаннан кейін arduino кодын жазуға өтіңіз …

4 -қадам: Arduino коды:

Arduino коды
Arduino коды

Питон сценарийі дайын болғаннан кейін бізге сервопроекторды басқару үшін arduino эскизі қажет. Төмендегі кодты қараңыз, оны Arduino IDE қойыңыз және «servo.ino» ретінде face.py және haarcascade қалтасында сақтаңыз. кодты жүктеп, қосылымдарды орнату үшін келесі қадамға өтіңіз.

(Жүктелетін файл төменде берілген)

#қосу

ServoVer; // Servo Servo servoHor тік; // Көлденең Servo int x; int y; int prevX; int prevY; void setup () {Serial.begin (9600); servoVer.attach (5); // Vertical Servo to 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 = карта (у, 450, 0, 179, 95); servoX = мин (servoX, 179); servoX = max (servoX, 70); servoY = мин (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 -қадам: Байланыс орнату:

Қосылымдар жасау
Қосылымдар жасау
Қосылымдар жасау
Қосылымдар жасау

Цикл өте қарапайым. Ардуиноға екі серво қоссаңыз болғаны.

  1. 5 -ші пинге тік
  2. 6 -түйреуішке көлденең
  3. +5В кернеуі
  4. GND негізі

Анықтама үшін схеманы тексеріңіз.

7 -қадам: СЫНАУ:

  • Барлығы аяқталғаннан кейін, оның жұмыс істейтінін тексеру керек. Алдымен тестілеу үшін сервистердің arduino -ға дұрыс қосылғанына және эскиз жүктелгеніне көз жеткізіңіз.
  • Эскиз жүктелгеннен кейін IDE -ді жабуды ұмытпаңыз, осылайша порт python -ға еркін қосылады.
  • Енді Python IDLE көмегімен 'face.py' ашыңыз және кодты іске қосу үшін 'F5' басыңыз. Arduino -ға қосылу үшін бірнеше секунд қажет, содан кейін сіз веб -камера ағып жатқан терезені көре аласыз. Енді код сіздің бетіңізді анықтайды және сервос оны қадағалайды.
  • Серво объектіні жылжытқанда қозғалуы керек. Енді камераны сервоприводтарға бекітіңіз, сонда ол сервоспен бірге жылжиды.

Рақмет сізге.

Ұсынылған: