Բովանդակություն:

Մուրացկան ռոբոտ ՝ դեմքի հետևումով և վերահսկիչով Xbox Controller- ով - Arduino. 9 քայլ (նկարներով)
Մուրացկան ռոբոտ ՝ դեմքի հետևումով և վերահսկիչով Xbox Controller- ով - Arduino. 9 քայլ (նկարներով)

Video: Մուրացկան ռոբոտ ՝ դեմքի հետևումով և վերահսկիչով Xbox Controller- ով - Arduino. 9 քայլ (նկարներով)

Video: Մուրացկան ռոբոտ ՝ դեմքի հետևումով և վերահսկիչով Xbox Controller- ով - Arduino. 9 քայլ (նկարներով)
Video: Горюны. Профессиональные нищие Российской империи 2024, Հուլիսի
Anonim
Image
Image
OpenCV և C ++ տեղադրում և կազմաձևում
OpenCV և C ++ տեղադրում և կազմաձևում

Մենք պատրաստվում ենք մուրացկան ռոբոտ պատրաստել: Այս ռոբոտը կփորձի գրգռել կամ ուշադրություն գրավել անցնող մարդկանց վրա: Այն կբացահայտի նրանց դեմքերը և կփորձի լազերներ կրակել նրանց վրա: Եթե ռոբոտին մետաղադրամ նվիրեք, նա երգ ու երգի: Ռոբոտին անհրաժեշտ կլինի arduino, ֆոտոխցիկի և համակարգչի ուղիղ հոսք ՝ openCV- ն գործարկելու համար: Ռոբոտը կկարողանա վերահսկվել նաև xBox վերահսկիչով, եթե միացված է համակարգչին:

Քայլ 1: Նյութեր

Էլեկտրոնային սարքավորում

  • Arduino NANO կամ UNO
  • USB 2.0 տեսախցիկ
  • Թռիչքային մալուխներ (արական և իգական)
  • 2 x Servo - Ընդհանուր (ենթաօրենսդրական չափ)
  • 2 x LED - RGB CATHODE 5 մմ
  • 2 x 5 մՎտ լազեր
  • 1 x Կարմիր LED 5 մմ
  • 1 x Breadboard
  • 4 x 220Ω դիմադրություն
  • 1 x 1KΩ դիմադրություն
  • 1 x նախատախտակ
  • 1 x Sonar տվիչ 4 կապում
  • Xbox վերահսկիչ

Ապարատային անալոգ

  • Փայտե տուփ (15 x 15 x 7 սմ)
  • Սոսինձ
  • Էլեկտրական ժապավեն

Ծրագրային ապահովում

  • Arduino IDE
  • Տեսողական ստուդիա 2017 թ
  • 3Ds Max (կամ ցանկացած այլ 3D մոդելավորման ծրագրակազմ)
  • Preform 2.14.0 կամ ավելի ուշ
  • OpenCV 3.4.0 կամ ավելի ուշ

Գործիքներ

  • Sոդման սարքավորումներ
  • Սղոցել և փորել
  • Մետաղալար կտրիչ

Քայլ 2. OpenCV և C ++ տեղադրում և կազմաձևում

OpenCV և C ++ տեղադրում և կազմաձևում
OpenCV և C ++ տեղադրում և կազմաձևում

Քայլ 2.1. Tingրագրաշարի ձեռքբերում

Visual studio 2017: Ներբեռնեք Visual studio Comunity 2017 բաց CV 3.4.0 Win փաթեթ. Գնացեք պաշտոնական ներբեռնման էջ

Քայլ 2.2. OpenCV2.2.1- ի տեղադրում. ZIP ֆայլը հանեք ձեր Windows (: C) կրիչից: 2.2.2. Գնացեք ձեր առաջադեմ համակարգի կարգավորումներ: Սա կարելի է գտնել ձեր win10 որոնման գործառույթում: 2.2.3. Տեղադրեք «Ուղի» շրջակա միջավայրը և սեղմեք խմբագրել:.2.2.4. Այժմ մենք պետք է «աղբարկղի քարտեզի» գտնվելու վայրը ավելացնենք շրջակա միջավայրի նոր փոփոխականին: Եթե դուք տեղադրել եք CC սկավառակի վրա openCV, ուղին կարող է ընթանալ հետևյալ կերպ.

Քայլ 2.3. C ++ 2.3.1 վիզուալ ստուդիայի կազմաձևում. Կատարեք նոր տեսողական C ++ նախագիծ: Դարձրեք այն դատարկ win32 Console Application project.2.3.2. Աղբյուրի ֆայլերի ներդիրում աջ սեղմեք և ավելացրեք նոր C ++ ֆայլ (.cpp) և անվանեք այն «main.cpp»: 2.3.3. Աջ սեղմեք նախագծի վրա- անունը Solution Explorer- ում և ընտրեք Properties.2.3.4. Մենք պետք է ավելացնենք լրացուցիչ Include Directories- ը: Սա ընդհանրապես կարելի է գտնել C/C ++ ներդիրում: Պատճենեք հետևյալ ուղին ՝ C: / opencv / build / include և տեղադրեք այն «AID» - ի հետևում և կտտացրեք կիրառել: 2.3.5. Նույն պատուհանում մենք պետք է ընտրեք «Linker» ներդիրը: ընդհանուր առմամբ, մենք պետք է կազմենք այլ Լրացուցիչ գրադարաններ: Տեղադրեք հետևյալ ուղին «AID» C: / opencv / build / x64 / vc14 / lib- ի հետևում և նորից սեղմեք «կիրառել»: Կտտացրեք «Լրացուցիչ կախվածություններ> խմբագրել» և տեղադրեք հետևյալ ֆայլը opencv_world320d.lib և xinput.lib (վերահսկիչի համար) և կրկին սեղմեք կիրառել: Փակեք պատուհանը: Այժմ ձեր C ++ ֆայլը պատրաստ է աշխատել:

Քայլ 3: Arduino- ի կարգավորում

Arduino- ի կարգավորում
Arduino- ի կարգավորում
Arduino- ի կարգավորում
Arduino- ի կարգավորում
Arduino- ի կարգավորում
Arduino- ի կարգավորում
Arduino- ի կարգավորում
Arduino- ի կարգավորում

Սպասարկիչների սպասարկում. Սպասարկիչները կարող են պտտվել ~ 160 °: Սովորաբար աշխատելու համար դրանք պետք է ունենան 4, 8 և 6, 0 վոլտ: Սերվոն ունի 3 կապում `հիմն, 4, 8 - 6, 0 վոլտ կապ և տվյալներ կապում: Մեր նախագծի համար մենք մտադիր ենք դնել DigitalPin 9 և 10 ծառայության սերվերի տվյալների կապերը:

Հանդիպում RGB- ի ղեկավարներին. RGB- ի լուսարձակները ունեն 4 կապում: Կարմիր, կանաչ, կապույտ և գրունտային քորոց: Արդուինոյի վրա որոշակի տարածք խնայելու համար մենք կարող ենք միացնել երկու RGB լուսարձակները միասին: Այսպիսով, մենք կօգտագործենք միայն 3 կապում: Մենք կարող ենք միացնել և կպցնել RGB լուսարձակները նախատախտակի վրա, ինչպես պատկերում է:

Հանդիպում Պիեզո ազդանշանի հետ. Մեր փոքրիկ ռոբոտը որոշ աղմուկ կբարձրացնի: Դա անելու համար մենք պետք է նրան ձայն տանք: Մենք կարող ենք ընտրել նրան իսկապես բարձրաձայն դարձնել: Կամ մենք կարող ենք 220Ω ռեզիստոր դնել պիեզո ազդանշանի առջև ՝ նրան մի փոքր ավելի նողկալի դարձնելու համար: Մենք թողնում ենք Piezo ազդանշանը սեղանի վրա: Այսպիսով, զոդման կարիք չկա: Մենք տվյալների կապը (+) միացնում ենք DigitalPin 2 -ին, իսկ գրունտը ՝ գետնատախտակին:

Հանդիպում սոնարի հետ. Մենք կարող ենք ռոբոտին տալ այնպիսի հեռավորության հեռավորություն, որտեղից նա կկարողանա մարդկանց թիրախավորել: Մենք դա անում ենք ձայնային սենսորով: VCC => 5 վոլտTrig => DigitalPin 6Echo => DigitalPin 5GND => հիմք

Հանդիպում մետաղադրամի դետեկտորի հետ: Մենք պատրաստվում ենք մետաղադրամ դետեկտոր պատրաստել: Մետաղադրամների դետեկտորը կգործի ՝ որոշելով, որ միացումը փակ է կամ կոտրված: Այն գրեթե կաշխատի որպես անջատիչ: Բայց մենք պետք է զգույշ լինենք: Եթե մենք դա սխալ անենք, դա մեզ կարժենա arduino: Նախ. AnalogPin A0- ը միացրեք 5 վոլտ մալուխի: Բայց համոզվեք, որ դրա միջև դրեք 1KΩ դիմադրություն: Երկրորդ. Լարը միացրեք գետնին: Մենք կարող ենք անմիջապես լարերը և դիմադրիչը միացնել նույն նախատախտակին, ինչ RGB- ն: Այժմ, եթե 2 լարերին դիպչենք, ապա արդուինոն կհայտնի փակ միացում: Սա նշանակում է, որ կա մի մետաղադրամ: Հանդիպում կործանման լազերներին: Ռոբոտին անհրաժեշտ են նրա զենքերը կրակելու համար: Որոշ տարածք խնայելու համար ես զոդեցի 2 լազերները: Նրանք հիանալի տեղավորվում են տեսախցիկի շրջանակում: Միացրեք դրանք DigitalPin 11 -ին և գետնին: Կրակե՛ք փոքրիկ տղա:

Լրացուցիչ հնարք: Մենք կարող ենք կարմիր LED տեղադրել մետաղադրամների տակ: Սա կլինի զվարճալի փոքրիկ հնարք, երբ մութ է: Մի մետաղալար միացրեք DigitalPin 8 -ին և տեղադրեք 220Ω դիմադրություն LED- ի և մետաղալարերի միջև, որպեսզի այն չփչանա: Միացրեք LED- ի կարճ քորոցը գետնին:

Քայլ 4: C ++ ծածկագիր

Քայլ 4.1. Տեղադրեք main.cpp կոդը 4.1.1. Ներբեռնեք «main.cpp» - ը և պատճենեք ձեր սեփական main.cpp.4.1.2 հասցեում: 14 -րդ տողում «com» - ը փոխեք arduino- ի օգտագործած com- ի: "\. / COM (փոխեք սա)" 4.1.3. 21 -րդ և 22 -րդ տողերում սահմանեք «haarcascade_frontalface_alt.xml» և «haarcascade_eye_tree_eyeglasses.xml» ֆայլերի ճիշտ ուղին, եթե C սկավառակի վրա տեղադրված է openCV, այս ֆայլերը կարող են տեղակայվել այստեղ.

Քայլ 4.2. Ավելացնել tserial.h և Tserial.cpp Այս 2 ֆայլերը կհոգան arduino- ի և համակարգչի միջև հաղորդակցության մասին: 4.2.1. տեղեկատու. Solution Explorer- ում աջ սեղմեք ծրագրի վրա և ընտրեք ավելացնել> առկա տարր: Բացվող պատուհանում ընտրեք երկու ֆայլ, որոնք պետք է ավելացվեն:

Քայլ 4.2. Ավելացնել CXBOXController.h և CXBOXController.h Այս ֆայլերը կվերցնեն նախագծի վերահսկիչ մասը: 4.2.1. Solution Explorer- ում աջ սեղմեք ծրագրի վրա և ընտրեք ավելացնել> առկա տարր: Բացվող պատուհանում ընտրեք երկու ֆայլ, որոնք պետք է ավելացվեն: C ++ ֆայլերը կարգավորվում են:

Քայլ 5. Arduino ծածկագիրը

Քայլ 5.1. NewPing գրադարան և տեղադրել այս գրադարանը:

Քայլ 5.2. Տեղահանումների գրադարան pitches.txt մտեք նոր ներդիրում և պահեք այն որպես «pitches.h»: Arduino կոդը ստեղծվել է:

Քայլ 6: 3D տպագրություն և տպագրության կատարելագործում

3D տպագրություն և տպագրության կատարելագործում
3D տպագրություն և տպագրության կատարելագործում
3D տպագրություն և տպագրության կատարելագործում
3D տպագրություն և տպագրության կատարելագործում

Քայլ 6.1. Տպեք 3D ֆայլը: Բացեք printfile.form- ը և ստուգեք, արդյոք ամեն ինչ կարգին է: Եթե ամեն ինչ լավ է թվում, ուղարկեք տպման աշխատանքը տպիչին: Եթե ինչ -որ բան թվում է կամ ցանկանում եք փոխել մոդելը: Ես ներառել եմ 3Ds Max ֆայլերը և OBJ ֆայլերը ՝ ձեր խմբագրման համար:

Քայլ 6.2. Կատարելագործեք մոդելը 6.2.1. Տպագրությունն ավարտվելուց հետո 2 մոդելները թրջեք 70% սպիրտով `ցանկացած տպագիր մնացորդը հեռացնելու համար: կարծրացրեք մոդելը: Կամ մոդելը կարծրացնելու համար կարող եք օգտագործել ուլտրամանուշակագույն լամպ: Դա պետք է արվի, քանի որ մոդելը կպչուն կլինի:

6.2.3. Հեռացրեք աջակցության շրջանակը: Դա կարելի է անել մետաղալարով: Կամ ցանկացած այլ գործիք, որը կարող է կտրել պլաստմասսա: Նույնիսկ եթե մոդելը շատ ուլտրամանուշակագույն ճառագայթների տակ է եղել: Այն մասերը, որոնք կարող են փափուկ լինել, այն մասերն են, որոնք մոտ են աջակցության շրջանակներին: Մոդելը դրեք ուլտրամանուշակագույն ճառագայթների ավելի արևի տակ, որպեսզի այն կարծրանա: 6.2.5. Դուք կարող եք փորձել սերվերը տեղավորել շրջանակի մեջ: Եթե դրանք չեն տեղավորվում, կարող եք օգտագործել Dremel- ը ՝ նյութը հեռացնելու համար: հարմարեցնել այն:

Քայլ 7: Արկղի կառուցում

Կառուցելով արկղը
Կառուցելով արկղը
Կառուցելով արկղը
Կառուցելով արկղը

Քայլ 7.1. Անցքերի պատրաստումԵս ներառել եմ տվյալ տուփի նախագիծը: Նախագիծը լայնածավալ չէ, բայց բոլոր չափերը ճիշտ են: 7.1.1. Սկսեք ՝ նշելով բոլոր անցքերը ճիշտ վայրերում: 7.1.2. Ավելի մեծ անցքեր կարելի է կատարել չափի Dremel- ով: 7.1.3. Բայց դրանք քառակուսի դարձնելու համար դուք կարող եք տեղադրել Dremel- ը փոքր ֆայլով և դուրս հանել սուր անկյուններ: 7.1.4. Փորձեք տեղավորել բոլոր բաղադրիչները: եթե դրանք տեղավորվում են, ապա լավ կլինի: 7.1.5. outգուշացեք փայտի բեկորներից: Դրանցից ազատվելու համար օգտագործեք ավազի թուղթ:

Քայլ 7.2. Ներկում 7.2.1. Սկսեք կափարիչը հղկելով: Մեզ պետք է, որ ներկը կպչի:

Քայլ 8: Ավարտում:

Ավարտելով վեր
Ավարտելով վեր
Ավարտելով վեր
Ավարտելով վեր
Ավարտելով վեր
Ավարտելով վեր

Այժմ մենք պետք է ամեն ինչ իր տեղը դնենք և թողնենք, որ դա անի: Քայլ 8.1. Մետաղադրամների դետեկտոր 8.1.1. Մետաղադրամների դետեկտորի համար մի քանի մետաղական ամրակներ կպցրեք:.3. Ստուգեք կապը մետաղադրամով: Եթե փակ շրջան չկա, լարերը ավելի ամրացրեք եզրին: Քայլ 8.2. Նախատախտակը և RGB լուսարձակները 8.2.3. Միացրեք նախալարից բոլոր լարերը arduino- ին: Քայլ 8.3. Սոնարային տվիչ 8.3.28.3.2. Կտրեք արական և իգական լարերը կիսով չափ և միացրեք էգ և արու լարերը միասին ՝ կազմելով մեկ մալուխ, որը մենք կարող ենք օգտագործել սենսորը arduino- ին միացնելու համար: 8.3.3. Միացրեք սենսորը arduino- ին

Քայլ 8.4. Լազերներ և տեսախցիկ 8.4.1. Կպչեք փոքր շրջանակը տեսախցիկին: Համոզվեք, որ այն ուղղաձիգ է: 8.4.2. Լազերները տեղադրեք նաև շրջանակի մեջ: Կպցրեք դրանք, որպեսզի թշնամին չգողանա դրանք:

Քայլ 8.5. Servos- ը և 3D տպումը փոքրիկ կլոր սարահարթ: Տեղադրեք սա սերվոյի վրա `կափարիչի մեջ: 8.5.6. Տեղադրեք տեսախցիկը տեղում, և ամեն ինչ պատրաստ է:

Քայլ 9: Սկսեք ծրագիրը

Ռոբոտը գործարկելու համար բացեք C ++ ֆայլը Visual studio- ում: Համոզվեք, որ գտնվում եք «կարգաբերման ռեժիմում»: Վերբեռնեք arduino ֆայլը arduino- ում: Երբ դա վերբեռնվի, մամուլը խաղացեք տեսողական ստուդիայում: Իսկ ռոբոտը կկրակի ու կհավաքի աշխարհի բոլոր մետաղադրամները !!!

Խորհուրդ ենք տալիս: