Мазмуну:
- 1 -кадам: Сизге керектүү нерселер:
- 2-кадам: Python чөйрөсүн орнотуу:
- 3 -кадам: Python Script:
- 4 -кадам: Arduino коду:
- 5-кадам: Pan-Tilt механизми:-
- 6 -кадам: Байланыштарды түзүү:
- 7 -кадам: СЫНОО:
Video: ARDUINO КОЛДОНУУ ЖҮЗҮНӨ ТАРТУУ !!!: 7 кадам
2024 Автор: John Day | [email protected]. Акыркы өзгөртүү: 2024-01-30 10:36
Мурунку көрсөтмөлөрдө мен "pyserial" модулу аркылуу Arduino менен Python ортосунда кантип байланышып, LEDди башкара алаарыңды айтып бергем. Эгер көрө элек болсоңуз, бул жерден текшериңиз: 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 Kit (Amazon US / Amazon EU)
Программалык камсыздоо талабы:
- Python 2.7 (Орнотулушу керек, Linux OS көбүнчө аны алдын ала орнотуп алган)
- OpenCV (Аны өзүнчө жүктөп алсаңыз болот же "pip install" аркылуу орнотсоңуз болот)
- pyserial (пип менен орнотсо болот)
- numpy.
- Haarcascade.
Баары чогултулгандан кийин, орнотуу кадамына өтүшүбүз мүмкүн …
2-кадам: Python чөйрөсүн орнотуу:
Python орнотуу:
Ошентип, адегенде бизге Python 2.7 иштеп, иштеши керек. Бул үчүн алгач python 2.7.14 жүктөп алып, орнотуңуз. Туура орнотулганын текшерүү үчүн Goto: Windows Издөө >> "IDLE" териңиз >> Enter баскычын басыңыз. Python Shell калкып чыгышы керек.
ЖЕ
Издөөдө 'CMD' териңиз жана Enter баскычын басып, Command Prompt ачыңыз. CMD түрүндө >> python жана enter басканда, Python интерфейси көрсөтүлүшү керек.
Эгерде сиз CMDде ката көрсөңүз, дүрбөлөңгө түшпөңүз, балким чөйрөнүн өзгөрмөсүн орнотушуңуз керек. Сиз бул үйрөткүчтү ээрчип, бул жерде айлана -чөйрөнүн өзгөрмөсүн орното аласыз.
Pythonдо 'pyserial', 'OpenCV' жана 'numpy' орнотуу:
Бул модулдарды орнотуу үчүн биз pip install колдонобуз, Адегенде CMD ачыңыз жана төмөнкү коддорду териңиз:-
pip орнотуу сериялык
pip install opencv-python> pip орнотуу numpy
бул буйруктар керектүү модулдарды орнотот. Эми биз коддоо бөлүгүнө өтө алабыз …
3 -кадам: Python Script:
Код жазууну баштоодон мурун, жаңы папканы жасоо керек, анткени бардык коддор ошол папкада сакталууга тийиш. Ошентип, жаңы папка түзүңүз, ага каалаган нерсеңизди коюңуз. жана астынан 'Haarcascade'ди жүктөп алып, папкага чаптаңыз.
Эми блокнотту ачып, төмөндө берилген сценарийди жазыңыз, аны "face.py" катары haarcascade менен бир папкага сактаңыз. (Мен берген файлды төмөндөгү файлды жүктөп алсаңыз болот):
#бардык керектүү модулдарды импорттоо
np импорттоо катары сериялык импорт убактысы импорт cv2 импорт cv2 #Орнотуу arduino үчүн байланыш жолу ('COM5' ордуна сиздин ардуино туташкан портуңузду коюңуз) 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.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 print (xx) print (yy) center = (xx, yy) # маалыматтарды arduino printке жөнөтүү ("Тик бурчтуктун борбору:", борбор) data = "X {0: d} Y {1: d} Z".формат (xx, yy) басып чыгаруу ("output = '" +data + "'") arduino.write (маалымат) #Агымды көрсөтүү. cv2.imshow ('img', img) #Аткарууну токтотуу үчүн "Esc" баскычын басыңыз k = cv2.waitKey (30) & 0xff if k == 27: break
Бул бүткөндөн кийин, arduino кодун жазууга өтүңүз …
4 -кадам: Arduino коду:
Питон скрипти даяр болгондон кийин, сервону көзөмөлдөө үчүн бизге arduino эскизи керек. Төмөндөгү кодду колдонуп, Arduino IDEге чаптаңыз жана face.py жана haarcascade папкасында "servo.ino" катары сактаңыз. кодду жүктөп, туташуу үчүн кийинки кадамга өтүңүз.
(Төмөндө жүктөлүп алынган файл)
#кошуу
Servo servoVer; // Vertical Servo Servo servoHor; // Horizontal Servo int x; int y; int prevX; int prevY; void setup () {Serial.begin (9600); servoVer.attach (5); // Vertical Servo тиркөө 5 pino servoHor.attach (6); // Горизонталдуу Сервону 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 механизми:-
Мен Pan-Tilt үчүн жеткиликтүү комплект колдондум. Кааласаңыз, жыгачтан/Пластиктен же 3D басып чыгаруудан өзүңүз жасай аласыз.
Мен колдонгон абдан арзан жана чогултуу абдан оңой. Бирок, эгер сиз муну кантип жасоо боюнча көрсөтмөлөрдү алгыңыз келсе, аны бул жерден таба аласыз.
6 -кадам: Байланыштарды түзүү:
Circuit абдан жөнөкөй. Жөн гана arduinoго эки сервону тиркеңиз.
- 5 -пинге тигинен
- 6 -пинге горизонталдуу
- Күч +5V
- GND үчүн негиз
Маалымдама үчүн райондук схеманы текшериңиз.
7 -кадам: СЫНОО:
- Баары бүткөндөн кийин, акыркы нерсе - анын иштээрин текшерүү. Сыноо үчүн, биринчи кезекте, серверлердин arduino менен туура туташканын жана эскиз жүктөлгөнүн текшериңиз.
- Эскиз жүктөлгөндөн кийин IDEди жабууну тактаңыз, андыктан порт pythonго туташуу бекер.
- Эми Python IDLE менен 'face.py' ачыңыз жана кодду иштетүү үчүн 'F5' басыңыз. Ардуиного туташуу үчүн бир нече секунд талап кылынат, андан кийин сиз веб -камераны агып жаткан терезени көрө алышыңыз керек. Эми код сиздин жүзүңүздү аныктайт жана сервос аны көзөмөлдөйт.
- Серво объектти жылдырган сайын жылышы керек. Эми жөн гана камераны сервоприводдорго бекиңиз, ошондо ал сервопростор менен бирге жылат.
Рахмат.
Сунушталууда:
Adafruit Shield менен робот тартуу (Конкурс жасоо): 10 кадам (Сүрөттөр менен)
Adafruit Shield менен сүрөт тартуу роботу (Конкурс жасаңыз): Саламатсызбы менин ысымым Жакып жана мен Улуу Британияда жашайбыз. Бул долбоордо мен сиз үчүн тарткан роботту курайын деп жатам. *Мен ишенем, көбүңөр көргүңөр келет, ошондуктан билгиңер келсе, экинчисине өтүңүз, акыркы кадамга өтүңүз, бирок бул жерге кайра келүүнү унутпаңыз
Компьютериңиздин экранын кантип сүрөткө тартуу керек !!: 5 кадам
Компьютериңиздин экранын кантип сүрөткө тартуу керек !!: Бул көрсөтмө сизге компьютериңиздин экранын сүрөткө тартып, компьютериңизге сактоонун тез жана оңой жолун көрсөтөт, сураныч, менин каналыма жазылыңыз Рахмат
IPhone менен видео тартуу жана аны Facebookка же YouTubeго жүктөө үчүн тез көрсөтмө: 9 кадам
IPhone менен видео жасоо жана аны Facebookка же YouTubeго жүктөө боюнча тез көрсөтмө: Бул жөнөкөй 5 кадам процессин колдонуңуз (Instructables аны чындыгынан көбүрөөк кадамдарга окшоштурат), биринчи YouTube же Facebook видеоңузду түзүү жана жүктөө үчүн - жөн гана колдонуу сенин iPhone
ESP32-CAM тактасын колдонуу менен видео тартуу: 4 кадам
ESP32-CAM тактасын колдонуу менен видео тартуу: Биз ESP32-CAM тактасына видео жаздырууну камсыз кылган абдан кызыктуу GitHub репозиторийин карап чыгабыз. Видео - бул кылдаттык менен белгиленген сүрөттөрдүн сериясынан башка нерсе эмес жана бул эскиз ошого негизделген. Команда ошондой эле FTP функциясын кошту
ARDUINO UNO R3 МЕНЕН АВТОМАТТЫК ЖАРЫК БУЛАГЫН ТАРТУУ: 5 кадам
ARDUINO UNO R3 МЕНЕН АВТОМАТТЫК ЖАРЫК БУЛАГЫН ТАРТУУ: Бул сабакта биз автоматтык түрдө көзөмөлдөөчү жарык булагы системасын чогултуу үчүн серво моторун, фоторезисторду жана ылдый каршылыкты колдонобуз