Სარჩევი:

მათხოვარი რობოტი სახის კონტროლით და კონტროლით Xbox Controller - Arduino: 9 ნაბიჯი (სურათებით)
მათხოვარი რობოტი სახის კონტროლით და კონტროლით Xbox Controller - Arduino: 9 ნაბიჯი (სურათებით)

ვიდეო: მათხოვარი რობოტი სახის კონტროლით და კონტროლით Xbox Controller - Arduino: 9 ნაბიჯი (სურათებით)

ვიდეო: მათხოვარი რობოტი სახის კონტროლით და კონტროლით Xbox Controller - Arduino: 9 ნაბიჯი (სურათებით)
ვიდეო: Поход во вторую деревню ► 4 Прохождение The Legend of Zelda: Breath of the Wild (Nintendo Wii U) 2024, ივლისი
Anonim
Image
Image
OpenCV და C ++ დაყენება და კონფიგურაცია
OpenCV და C ++ დაყენება და კონფიგურაცია

ჩვენ ვაპირებთ მათხოვრის რობოტის შექმნას. ეს რობოტი შეეცდება გააღიზიანოს ან მიიქციოს მიმდებარე ადამიანების ყურადღება. ის გამოავლენს მათ სახეებს და შეეცდება მათზე ლაზერების გადაღებას. თუ რობოტს მონეტას აძლევთ, ის იმღერებს სიმღერას და იცეკვებს. რობოტს დასჭირდება არდუინო, კამერის პირდაპირი ჩართვა და კომპიუტერი openCV- ზე გასაშვებად. რობოტს ასევე შეეძლება გააკონტროლოს xBox კონტროლერი კომპიუტერთან დაკავშირების შემთხვევაში.

ნაბიჯი 1: მასალები

აპარატურა ელექტრონული

  • არდუინო ნანო ან გაერო
  • USB 2.0 კამერა
  • ჯუმბერის კაბელები (მამრობითი და მდედრობითი)
  • 2 x სერვო - ზოგადი (ქვე -მიკრო ზომა)
  • 2 x LED - RGB CATHODE 5 მმ
  • 2 x 5 მგვტ ლაზერი
  • 1 x წითელი LED 5 მმ
  • 1 x პურის დაფა
  • 4 x 220Ω რეზისტორი
  • 1 x 1KΩ რეზისტორი
  • 1 x პროტობორდი
  • 1 x Sonar სენსორი 4 ქინძისთავით
  • Xbox კონტროლერი

აპარატურის ანალოგი

  • ხის ყუთი (15 x 15 x 7 სმ)
  • წებო
  • ელექტრო ფირზე

პროგრამული უზრუნველყოფა

  • Arduino IDE
  • ვიზუალური სტუდია 2017 წ
  • 3Ds Max (ან ნებისმიერი სხვა 3D მოდელირების პროგრამა)
  • პრეფორმირებული 2.14.0 ან უფრო გვიან
  • OpenCV 3.4.0 ან უფრო გვიან

ინსტრუმენტები

  • შედუღების მოწყობილობა
  • ხერხი და საბურღი
  • მავთულის საჭრელი

ნაბიჯი 2: OpenCV და C ++ - ის დაყენება და კონფიგურაცია

OpenCV და C ++ დაყენება და კონფიგურაცია
OpenCV და C ++ დაყენება და კონფიგურაცია

ნაბიჯი 2.1: პროგრამული უზრუნველყოფის მიღება

Visual studio 2017: ჩამოტვირთეთ Visual studio Comunity 2017 გახსენით CV 3.4.0 Win პაკეტი: გადადით ოფიციალურ ჩამოსატვირთ გვერდზე

ნაბიჯი 2.2: OpenCV2.2.1- ის დაყენება: ამოიღეთ zipfile თქვენს Windows (: C) დისკზე..2.2.2: გადადით თქვენი მოწინავე სისტემის პარამეტრებზე. ეს შეიძლება მოიძებნოს თქვენი win10 ძებნის ფუნქციაში..2.2.3: ჩვენ გვჭირდება გარემოს ახალი ცვლადების დაყენება. იპოვნეთ გარემოს "ბილიკი" და დააჭირეთ რედაქტირებას..2.2.4: ახლა ჩვენ უნდა დავამატოთ "ურნის რუქის" მდებარეობა ახალ ცვლადს გარე გარემოში. თუ თქვენ დაინსტალირებული გაქვთ openCV თქვენს C დისკზე, ბილიკი შეიძლება ასე წავიდეს: C: / opencv / build / x64 / vc14 / bin ჩასვით ბილიკი და დააჭირეთ ღილაკს "OK" ყველა ფანჯარაში, რომელიც შეიძლება გახსნათ ამ პროცესის განმავლობაში.

ნაბიჯი 2.3: ვიზუალური სტუდიის კონფიგურაცია C ++ 2.3.1: შექმენით ახალი ვიზუალური C ++ პროექტი. გააკეთეთ ის ცარიელი win32 კონსოლის განაცხადის პროექტი. 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" - ის უკან და დააწკაპუნეთ apply.2.3.5: იმავე ფანჯარაში ჩვენ გვჭირდება აირჩიეთ "ლინკერის" ჩანართი. ზოგადად, ჩვენ უნდა შევქმნათ სხვა დამატებითი ბიბლიოთეკები. ჩასვით შემდეგი გზა "AID" C: / opencv / build / x64 / vc14 / lib და დააჭირეთ კვლავ Apply. 2.3.6: იმავე Linker ჩანართის ქვეშ შეარჩიეთ "Input" ჩანართი. და დააჭირეთ ღილაკს "დამატებითი დამოკიდებულებები> რედაქტირება" და ჩასვით შემდეგი ფაილი opencv_world320d.lib და xinput.lib (კონტროლერისთვის) და კვლავ დააჭირეთ აპლიკაციას. დახურეთ ფანჯარა. ახლა თქვენი C ++ ფაილი მზადაა სამუშაოდ.

ნაბიჯი 3: არდუინოს დაყენება

არდუინოს დაყენება
არდუინოს დაყენება
არდუინოს დაყენება
არდუინოს დაყენება
არდუინოს დაყენება
არდუინოს დაყენება
არდუინოს დაყენება
არდუინოს დაყენება

სერვისების შეხვედრა: სერვოებს შეუძლიათ ~ 160 ° ბრუნვა. მათ უნდა ჰქონდეთ 4, 8 და 6, 0 ვოლტი, რომ ნორმალურად იმუშაონ. სერვოს აქვს 3 ქინძისთავები: მიწა, 4, 8 - 6, 0 ვოლტიანი პინი და მონაცემები პინი. ჩვენი პროექტისთვის ჩვენ ვაპირებთ დავაყენოთ მონაცემთა ქინძისთავები servos ციფრული 9 და 10.

შეხვედრა RGB ხელმძღვანელებთან: RGB led– ებს აქვთ 4 ქინძისთავები. წითელი, მწვანე, ლურჯი და დაფის ქინძისთავები. არდუინოზე სივრცის დაზოგვის მიზნით, ჩვენ შეგვიძლია დავუკავშიროთ 2 RGB led. ასე რომ, ჩვენ მხოლოდ 3 ქინძისთავს გამოვიყენებთ. ჩვენ შეგვიძლია დავუკავშიროთ და შევაერთოთ RGB ლიდერები პროტობორდზე, როგორც სურათზეა.

შეხვედრა პიეზო ზუზერთან: ჩვენი პატარა რობოტი აპირებს რაღაც ხმაურს. ამის გასაკეთებლად ჩვენ უნდა მივცეთ მას ხმა! ჩვენ შეგვიძლია ავირჩიოთ, რომ ის მართლაც ხმამაღლა გამოვიდეს. ან შეგვიძლია პიეზო ზუზუნაზე დავდოთ 220Ω რეზისტორი, რათა ის ნაკლებად საზიზღარი გახდეს. ჩვენ ვტოვებთ პიეზოს ზუზერს პურის დაფაზე. ასე რომ, არ არის საჭირო შედუღება. ჩვენ ვაკავშირებთ მონაცემთა პინ (+) ციფრულ პინ 2 -ს და დაფის პინს პურის დაფაზე.

შეხვედრა სონართან: იმისათვის, რომ რობოტი არ შეეცადოს მიზნად ისახოს ადამიანი, რომელიც 10 მეტრითაა დაშორებული. ჩვენ შეგვიძლია რობოტს მივცეთ მანძილის დიაპაზონი, საიდანაც ის შეძლებს ადამიანებისკენ მიმართვას. ჩვენ ამას ვაკეთებთ სონარის სენსორით. VCC => 5 ვოლტი ტრიგ => ციფრული პინი 6 ექო => ციფრული პინი 5 გნდ => გრუნტი

შეხვედრა მონეტების დეტექტორთან: ჩვენ ვაპირებთ გავაკეთოთ მონეტის დეტექტორი. მონეტების დეტექტორი იმუშავებს იმის გამოვლენით, არის თუ არა წრე დახურული ან გატეხილი. ის თითქმის იმუშავებს როგორც გადამრთველი. მაგრამ ჩვენ ფრთხილად უნდა ვიყოთ. თუ ამას არასწორად გავაკეთებთ, არდუინო დაგვიჯდება. პირველი: შეაერთეთ AnalogPin A0 5 ვოლტ კაბელთან. მაგრამ დარწმუნდით, რომ დააყენეთ 1KΩ რეზისტორი მას შორის. მეორე: შეაერთეთ მავთული მიწასთან. ჩვენ შეგვიძლია დაუყოვნებლივ შევაერთოთ მავთულები და რეზისტორი იმავე პროტობორდზე, როგორც RGB- მა გამოიწვია. ახლა თუ ჩვენ 2 მავთულს შევეხებით არდუინო გამოავლენს დახურულ წრეს. ეს ნიშნავს, რომ არის მონეტა! შეხვედრა განწირვის ლაზერებთან. რობოტს სჭირდება მისი იარაღი გასროლისთვის! სივრცის დაზოგვის მიზნით, მე 2 ლაზერი შევაერთე. ისინი შესანიშნავად მოერგებიან კამერის ჩარჩოს. შეაერთეთ ისინი ციფრულ პინ 11 -თან და მიწასთან. დაანთეთ პატარა ბიჭი!

სურვილისამებრ. ჩვენ შეგვიძლია მოვათავსოთ წითელი LED მონეტის ქვეშ. ეს იქნება სახალისო პატარა ხრიკი, როდესაც ბნელა. შეაერთეთ მავთული ციფრულ პინ 8 -თან და განათავსეთ 220Ω რეზისტორი შუქდიოდსა და მავთულს შორის, რათა თავიდან აიცილოთ მისი აფეთქება. შეაერთეთ LED- ის მოკლე პინი მიწასთან.

ნაბიჯი 4: C ++ კოდი

ნაბიჯი 4.1: main.cpp კოდის დაყენება 4.1.1.1: ჩამოტვირთეთ "main.cpp" და დააკოპირეთ კოდი თქვენს საკუთარ main.cpp.4.1.2- ში: მე -14 ხაზზე შეცვალეთ "com" com- ში arduino იყენებს. "\. / COM (შეცვალეთ ეს)" 4.1.3: 21 -ე და 22 -ე ხაზებზე მიუთითეთ სწორი გზა ფაილების "haarcascade_frontalface_alt.xml" და "haarcascade_eye_tree_eyeglasses.xml" თუ CC დისკზე დაინსტალირებულია openCV, ეს ფაილები შეიძლება განთავსდეს აქ: "C: / opencv / build / etc / haarcascades \" შეინახეთ ორმაგი უკანა ხაზები ან დაამატეთ ერთი იქ, სადაც მხოლოდ ერთია.

ნაბიჯი 4.2: დაამატეთ tserial.h და Tserial.cpp ეს 2 ფაილი იზრუნებს არდუინოსა და კომპიუტერს შორის კომუნიკაციაზე.4.2.1: ჩამოტვირთეთ tserial.h და Tserial.cpp.4.2.2: განათავსეთ ეს 2 ფაილი პროექტში დირექტორია Solution Explorer– ში დააწკაპუნეთ მარჯვენა ღილაკით პროექტზე და აირჩიეთ დამატება> არსებული ერთეული. ამომხტარი ფანჯარაში შეარჩიეთ ორი ფაილი, რომელიც უნდა დაემატოს.

ნაბიჯი 4.2: დაამატეთ CXBOXController.h და CXBOXController.h ეს ფაილები მიიღებენ პროექტის მაკონტროლებელს. ამომხტარი ფანჯარაში აირჩიეთ ორი ფაილი. C ++ ფაილები დაყენებულია.

ნაბიჯი 5: Arduino კოდი

ნაბიჯი 5.1: NewPing ბიბლიოთეკა 5.1.1: ჩამოტვირთეთ ArduinoCode.ino და გახსენით ის arduino IDE.5.1.2: გადადით "ესკიზი> ჩართეთ წიგნები> ლიბარის მართვა".5.1.3: მოძებნეთ ფილტრის ყუთში "NewPing" და დააინსტალირეთ ეს ბიბლიოთეკა.

ნაბიჯი 5.2: ბიბლიოთეკა pitches.txt ახალ ჩანართში და შეინახეთ როგორც "pitches.h". Arduino კოდი შეიქმნა

ნაბიჯი 6: 3D ბეჭდვა და ბეჭდვის დახვეწა

3D ბეჭდვა და ბეჭდვის დახვეწა
3D ბეჭდვა და ბეჭდვის დახვეწა
3D ბეჭდვა და ბეჭდვის დახვეწა
3D ბეჭდვა და ბეჭდვის დახვეწა

ნაბიჯი 6.1: დაბეჭდეთ 3D ფაილი გახსენით printfile.form და შეამოწმეთ ყველაფერი კარგად არის თუ არა. თუ ყველაფერი კარგადაა, გაგზავნეთ ბეჭდვის სამუშაო პრინტერზე. თუ რამე მოგეჩვენებათ ან გსურთ მოდელის შეცვლა. მე ჩავრთე 3Ds მაქს ფაილები და OBJ ფაილები, რომელთა რედაქტირებაც შეგიძლიათ.

ნაბიჯი 6.2: მოდელის დახვეწა 6.2.1: დაბეჭდვის დასრულების შემდეგ დაასველეთ 2 მოდელი 70% ალკოჰოლში, რომ ამოიღოთ ბეჭდვა. მოდელის გამკვრივება. ან შეგიძლიათ გამოიყენოთ ულტრაიისფერი ნათურა მოდელის გასაძლიერებლად. ეს უნდა გაკეთდეს, რადგან მოდელი წებოვანი იქნება.

6.2.3: ამოიღეთ მხარდაჭერის ჩარჩო. ეს შეიძლება გაკეთდეს მავთულის საჭრელით. ან ნებისმიერი სხვა ინსტრუმენტი, რომელსაც შეუძლია პლასტმასის მოჭრა. 6.2.4: 3D ბეჭდვის ზოგიერთი ნაწილი მაინც შეიძლება იყოს რბილი. მაშინაც კი, თუ მოდელი იყო ბევრი ულტრაიისფერი შუქი. ნაწილები, რომლებიც შეიძლება იყოს რბილი, არის ის ნაწილები, რომლებიც ახლოს არის დამხმარე ჩარჩოებთან. განათავსეთ მოდელი ულტრაიისფერი სხივების უფრო მზის ქვეშ, რათა გაძლიერდეს. შეგიძლიათ სცადოთ servos ჩარჩოში მოთავსება. თუ ისინი არ ჯდება, შეგიძლიათ გამოიყენოთ დრემელი მასალის მოსაშორებლად. გახადე მორგებული.

ნაბიჯი 7: ყუთის მშენებლობა

ყუთის მშენებლობა
ყუთის მშენებლობა
ყუთის მშენებლობა
ყუთის მშენებლობა

ნაბიჯი 7.1: ხვრელების გაკეთება გეგმა არ არის ფართომასშტაბიანი, მაგრამ ყველა ზომა სწორია.7.1.1: დაიწყეთ ყველა ადგილას სწორი ხვრელების მარკირებით.7.1.2: გაბურღეთ ყველა ხვრელი. უფრო დიდი ხვრელები შეიძლება გაკეთდეს ზომით დრემელის საშუალებით.7.1.3: კვადრატული ხვრელების გაბურღვაც შესაძლებელია. მაგრამ იმისათვის, რომ ისინი კვადრატული იყოს, შეგიძლიათ მოათავსოთ დრემელი პატარა ფაილით და გადმოწეროთ მკვეთრი კუთხეები. თუ ისინი მოერგება, კარგია წასვლა! 7.1.5: ფრთხილად იყავით ხის ნატეხებისთვის. გამოიყენეთ ქვიშის ქაღალდი მათ მოსაშორებლად.

ნაბიჯი 7.2: შეღებვა 7.2.1: დაიწყეთ სახურავის დაფარვით. ჩვენ გვჭირდება საღებავი, რომ წებოვდეს.7.2.2: აიღეთ ქსოვილი და დადეთ მასზე ცოტა ტურპენტინი, რათა გაასუფთაოთ ყუთი.

ნაბიჯი 8: დასრულება

დასრულება Up
დასრულება Up
დასრულება Up
დასრულება Up
დასრულება Up
დასრულება Up

ახლა ჩვენ უნდა მოვათავსოთ ყველაფერი და გავაკეთოთ ის რაც არის. ნაბიჯი 8.1: მონეტის დეტექტორი.3: შეამოწმეთ კავშირი მონეტასთან. თუ არ არის დახურული წრე, მიამაგრეთ მავთულები ზღვარზე. ნაბიჯი 8.2: პროტობორდი და RGB leds 8.2.1: მოათავსეთ პროტობორდი ზედა მარჯვენა კუთხეში და დააკოპირეთ! პროტობორდიდან! 8.2.3: შეაერთეთ ყველა მავთული პროტობორდიდან არდუინოსთან. ნაბიჯი 8.3: სონარის სენსორი 8.3.1: მოათავსეთ სენსორი ჩვენს მიერ გაკეთებულ ხვრელებში. თუ თქვენ გაქვთ მამრობითი და მდედრობითი ხტომა, შეგიძლიათ გამოტოვოთ 8.3.28.3.2: გაჭერით მამრობითი და მდედრობითი მავთულები შუაზე და შეაერთეთ მდედრობითი და მამრობითი მავთულები ერთმანეთთან ერთად, რათა გავაკეთოთ ერთი კაბელი, რომლის საშუალებითაც შეგვიძლია სენსორი არდუინოს დავუკავშიროთ. 8.3.3: შეაერთეთ სენსორი არდუინოსთან

ნაბიჯი 8.4: ლაზერები და კამერა დარწმუნდით, რომ ის თავდაყირაა.8.4.2: ჩადეთ ჩარჩოში ლაზერიც. მიამაგრეთ ისინი ისე, რომ მტერმა არ მოიპაროს ისინი!

ნაბიჯი 8.5: სერვო და 3D ბეჭდვა პატარა მრგვალი პლატო. განათავსეთ ეს სერვოზე სახურავში.8.5.4: განათავსეთ დიდი 3D ანაბეჭდი სერვოზე და პლატოზე და მჭიდროდ გაახურეთ ისინი ხრახნით. 8.5.6: განათავსეთ კამერა ადგილზე და ყველაფერი მზად არის წასასვლელად!

ნაბიჯი 9: დაიწყეთ პროგრამა

რობოტის დასაწყებად გახსენით C ++ ფაილი Visual studio- ში. დარწმუნდით, რომ ხართ "გამართვის რეჟიმში" ატვირთეთ arduino ფაილი arduino- ში. მას შემდეგ რაც აიტვირთება პრეს თამაში ვიზუალურ სტუდიაში. და რობოტი გაისროლებს და შეაგროვებს მსოფლიოს ყველა მონეტას !!!

გირჩევთ: