Мазмұны:
- 1 -қадам: Сізге қажет нәрселер:
- 2-қадам: Python ортасын орнату:
- 3 -қадам: Python сценарийі:
- 4 -қадам: Arduino коды:
- 5-қадам: еңкейту механизмі:-
- 6 -қадам: Байланыс орнату:
- 7 -қадам: СЫНАУ:
Бейне: ARDUINO ПАЙДАЛАНУ БЕТІН БАҚЫЛАУ !!!: 7 қадам
2024 Автор: John Day | [email protected]. Соңғы өзгертілген: 2024-01-30 10:23
Алдыңғы нұсқаулықта мен «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)
Бағдарламалық қамтамасыз ету талаптары:
- Python 2.7 (Орнату керек, Linux ОЖ әдетте оны алдын ала орнатады)
- OpenCV (Сіз оны бөлек жүктей аласыз немесе «pip install» арқылы орната аласыз, әрі қарай түсіндіріледі)
- pyserial (pip арқылы орнатуға болады)
- ессіз
- Хааркаскад.
Барлығы жиналғаннан кейін біз орнату қадамына көшеміз …
2-қадам: 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 сценарийі:
Кодты жазуды бастамас бұрын, бірінші кезекте жаңа қалта жасау керек, себебі барлық кодты сол қалтада сақтау қажет. Сондықтан жаңа қалта жасаңыз, оны қалағаныңызша атаңыз. төменнен '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 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 -қадам: Байланыс орнату:
Цикл өте қарапайым. Ардуиноға екі серво қоссаңыз болғаны.
- 5 -ші пинге тік
- 6 -түйреуішке көлденең
- +5В кернеуі
- GND негізі
Анықтама үшін схеманы тексеріңіз.
7 -қадам: СЫНАУ:
- Барлығы аяқталғаннан кейін, оның жұмыс істейтінін тексеру керек. Алдымен тестілеу үшін сервистердің arduino -ға дұрыс қосылғанына және эскиз жүктелгеніне көз жеткізіңіз.
- Эскиз жүктелгеннен кейін IDE -ді жабуды ұмытпаңыз, осылайша порт python -ға еркін қосылады.
- Енді Python IDLE көмегімен 'face.py' ашыңыз және кодты іске қосу үшін 'F5' басыңыз. Arduino -ға қосылу үшін бірнеше секунд қажет, содан кейін сіз веб -камера ағып жатқан терезені көре аласыз. Енді код сіздің бетіңізді анықтайды және сервос оны қадағалайды.
- Серво объектіні жылжытқанда қозғалуы керек. Енді камераны сервоприводтарға бекітіңіз, сонда ол сервоспен бірге жылжиды.
Рақмет сізге.
Ұсынылған:
NodeMCU көмегімен IoT негізіндегі топырақ ылғалдылығын бақылау мен бақылау жүйесі: 6 қадам
NodeMCU көмегімен IoT негізіндегі топырақтағы ылғалдылықты бақылау мен бақылау жүйесі: Бұл оқулықта біз ESP8266 WiFi модулін, яғни NodeMCU көмегімен IoT негізіндегі топырақ ылғалдылығын бақылау мен бақылау жүйесін енгізетін боламыз. Бұл жобаға қажет компоненттер: ESP8266 WiFi модулі- Amazon (334/- INR) реле модулі- Amazon (130/- INR
MQTT қолдауымен ESP32 CAM бетін тану - AI-ойлаушы: 4 қадам
MQTT қолдауымен ESP32 CAM бетін тану | AI-ойлаушы: Сәлеметсіз бе, мен MQTT-ге деректерді жібере алатын, ESP CAM-мен жүзді тану керек болса, мен жобаның кодын бөліскім келді. Жақсы .. мүмкін 7 сағаттан кейін бірнеше кодтық мысалдарды қарап, не екенін іздеп, менде финал бар
Opencv бетін тану: 4 қадам
Opencv Бетті тану: Қазіргі кезде смартфондар, көптеген электронды гаджеттер сияқты көптеген қосымшаларда бетті тану өте кең таралған. Мұндай технология көптеген алгоритмдер мен құралдарды қамтиды, ол Raspberry сияқты ендірілген SOC платформаларын қолданады
Arduino/ESP Config веб -бетін бұлттан жүктеңіз: 7 қадам
Arduino/ESP Config веб -бетін бұлттан жүктеңіз: Arduino/ESP (ESP8266/ESP32) жобасын жасаған кезде сіз бәрін қатаң кодтай аласыз. Көбінесе бірдеңе пайда болады, және сіз IoT құрылғысын IDE-ге қайта қосуды аяқтайсыз. Немесе сізде конфигурацияға кіретін адамдар көп болды
Xbox Controller арқылы бетті бақылау және бақылау арқылы қайырымдылық робот - Arduino: 9 қадам (суреттермен)
Xbox Controller арқылы бетті бақылау және бақылау арқылы қайыршы робот - Arduino: Біз қайыршы робот жасамақпыз. Бұл робот тітіркендіруге немесе өтіп бара жатқан адамдардың назарын аударуға тырысады. Бұл олардың беттерін анықтап, оларға лазермен оқ атуға тырысады. Егер сіз роботқа тиын берсеңіз, ол ән айтып, би билейді. Роботқа қажет болады