Სარჩევი:

უოლესის ავტონომიური რობოტი - ნაწილი 4 - დაამატეთ IR მანძილი და "ამპერი" სენსორები: 6 ნაბიჯი
უოლესის ავტონომიური რობოტი - ნაწილი 4 - დაამატეთ IR მანძილი და "ამპერი" სენსორები: 6 ნაბიჯი

ვიდეო: უოლესის ავტონომიური რობოტი - ნაწილი 4 - დაამატეთ IR მანძილი და "ამპერი" სენსორები: 6 ნაბიჯი

ვიდეო: უოლესის ავტონომიური რობოტი - ნაწილი 4 - დაამატეთ IR მანძილი და
ვიდეო: წარმოგიდგენთ გაერთიანებული სამეფოს შემდეგი თაობის გამანადგურებელს 2024, ნოემბერი
Anonim
Image
Image
დამხმარე მიკროსქემის დამატება (MCP3008)
დამხმარე მიკროსქემის დამატება (MCP3008)

გამარჯობა, დღეს ჩვენ ვიწყებთ უოლასის შესაძლებლობების გაუმჯობესების მომდევნო ფაზას. კერძოდ, ჩვენ ვცდილობთ გავაუმჯობესოთ ინფრაწითელი მანძილის სენსორების გამოყენებით დაბრკოლებების გამოვლენისა და თავიდან აცილების შესაძლებლობა და ასევე ვისარგებლოთ Roboclaw- ის საავტომობილო კონტროლერის დენით მონიტორინგის უნარით და ვირტუალური (პროგრამული უზრუნველყოფის) "სენსორად" გადაქცევით. დაბოლოს, ჩვენ შევხედავთ როგორ ნავიგაცია SLAM (ერთდროული მდებარეობა და რუქა) გარეშე (ამ დროისთვის), რადგან რობოტს ჯერ არ აქვს IMU (ინერციის საზომი ერთეული) ან ToF (ფრენის დრო) სენსორები.

ნავიგაციის საშუალებით, თავდაპირველად ეს იქნება მხოლოდ ორი ძირითადი მიზანი:

  1. დაბრკოლებების თავიდან აცილება
  2. აღიარეთ, როდესაც ის სადღაც არის ჩარჩენილი და არ აკეთებს რაიმე პროგრესს. ("პროგრესი" ნიშნავს იმას, რომ მან წინ მიიწია რაიმე მნიშვნელოვანი მანძილი)
  3. მე -3 მიზანი შეიძლება იყოს ის, რომ შეეცადოს კედლის კვადრატულ გასწორებას.

ეს პროექტი დაიწყო რობოტის ნაკრებით და კლავიატურის და ssh კავშირის გამოყენებით ძირითადი მოძრაობების მუშაობით.

მეორე ეტაპი იყო საკმარისი დამხმარე სქემის დამატება მრავალი სენსორის დამატებისთვის მოსამზადებლად.

წინა ინსტრუქციებში, ჩვენ დავამატეთ რამდენიმე HCSR04 აკუსტიკური სენსორი და რობოტს შეუძლია თავიდან აიცილოს დაბრკოლებები, როდესაც ის მოძრაობს ბინაში.

მიუხედავად იმისა, რომ ის კარგად მუშაობს სამზარეულოში და დერეფანში კარგი, მყარი ბრტყელი ზედაპირით, სასადილო ოთახთან მიახლოებისას სრულიად ბრმაა. მას არ შეუძლია "დაინახოს" მაგიდა და სკამის ფეხები.

ერთი გაუმჯობესება შეიძლება იყოს ტიპიური საავტომობილო დენების თვალყურის დევნება და თუ ღირებულებები გადახტება, მაშინ რობოტს რაღაც უნდა მოხვდეს. ეს არის კარგი "გეგმა B" ან თუნდაც C. მაგრამ ეს ნამდვილად არ უწყობს ხელს სასადილოში ნავიგაციას.

(განახლება: ფაქტობრივად, ჯერჯერობით, მიმდინარე მონიტორინგი არის გეგმა A უკუქცევისას, რადგან მე დროებით ამოვიღე და უკანა სენსორები).

ამ განყოფილების ვიდეო წარმოადგენს დაბრკოლებების თავიდან აცილების სენსორების ბოლო ფაზას.

რასაც ხედავთ ვიდეოში არის ექვსი წინა HCSR04 აკუსტიკური სენსორი და ორი მკვეთრი IR სენსორი. IR სენსორები დიდად არ გამოჩნდა ვიდეოში. მათი სიძლიერე ძირითადად მაშინ ხდება, როდესაც რობოტი აღმოჩნდება სასადილო ზონაში, მაგიდისა და სკამის ფეხების წინ.

სენსორების გარდა, ამჟამინდელი მონიტორი განსაკუთრებით უკუსვლის დროს გამოჩნდა, თუ ის რაღაცას გადაეყრება.

დაბოლოს, ის იყენებს ბოლო 100 ნაბიჯის ისტორიას და რამდენიმე ძირითად ანალიზს ერთ კითხვაზე პასუხის გასაცემად:

"ახლახან მოხდა წინსვლის რეალური პროგრესი (ან ის ჩამორჩა ზოგიერთ განმეორებით ცეკვას)?"

ასე რომ, ვიდეოში, როდესაც ხედავთ, რომ წინსვლა უკანაა გამეორებული, მაშინ ის ბრუნდება, ეს ნიშნავს, რომ მან აღიარა შემობრუნების ნიმუში, რითაც ცდილობს სხვა რამეს.

პროგრამული უზრუნველყოფის ამ ვერსიის ერთადერთი დაპროგრამებული მიზანი იყო უწყვეტი პროგრესის მიღწევა და დაბრკოლებების თავიდან აცილება.

ნაბიჯი 1: დაამატეთ დამხმარე წრე (MCP3008)

დამხმარე მიკროსქემის დამატება (MCP3008)
დამხმარე მიკროსქემის დამატება (MCP3008)
დამხმარე მიკროსქემის დამატება (MCP3008)
დამხმარე მიკროსქემის დამატება (MCP3008)
დამხმარე მიკროსქემის დამატება (MCP3008)
დამხმარე მიკროსქემის დამატება (MCP3008)

სანამ ჩვენ დავამატებთ IR სენსორებს, ჩვენ გვჭირდება ინტერფეისის სქემა მათსა და Raspberry Pi- ს შორის.

ჩვენ დავამატებთ MCP3008 ანალოგურ-ციფრულ გადამყვანს. არსებობს მრავალი ონლაინ რესურსი, თუ როგორ უნდა დაუკავშიროთ ეს ჩიპი Raspberry Pi- ს, ასე რომ მე აქ ბევრს არ შევეხები.

არსებითად, ჩვენ გვაქვს არჩევანი. თუ IR სენსორების ვერსია მუშაობს 3V- ზე, ასევე შეუძლია MCP3008 და ჩვენ შეგვიძლია მაშინვე დავუკავშიროთ ჟოლოს.

[3V IR სენსორი] - [MCP3008] - [Raspberrry Pi]

ჩემს შემთხვევაში, მე ვმუშაობ ძირითადად 5V– ზე, ასე რომ, ეს ნიშნავს ორ მიმართულებით მიმართულების დონის შეცვლას.

[5V IR სენსორი]-[MCP3008]-[5V-to-3V ორმხრივი ავტობუსი]-[Raspberry Pi]

შენიშვნა: IR სენსორიდან არის მხოლოდ ერთი სიგნალი. ის პირდაპირ მიდის MCP3008- ის ერთ -ერთი შეყვანის ანალოგური სიგნალის ხაზზე. MCP3008– დან არის 4 მონაცემთა ხაზი, რომელიც ჩვენ უნდა დავუკავშიროთ (ორმხრივი ავტობუსის საშუალებით) Raspberry Pi– სთან.

ამ დროისთვის, ჩვენი რობოტი აპირებს მუშაობას მხოლოდ ორი IR სენსორის გამოყენებით, მაგრამ ჩვენ შეგვიძლია მარტივად დავამატოთ მეტი. MCP3008 რვა ანალოგური შეყვანის არხი.

ნაბიჯი 2: დაამონტაჟეთ IR სენსორები

მთა IR სენსორები
მთა IR სენსორები
მთა IR სენსორები
მთა IR სენსორები
მთა IR სენსორები
მთა IR სენსორები
მთა IR სენსორები
მთა IR სენსორები

Sharp ქმნის რამდენიმე სხვადასხვა IR სენსორს და მათ აქვთ განსხვავებული დიაპაზონი და დაფარვის არე. მე შემთხვევით შევუკვეთე GP2Y0A60SZLF მოდელი. თქვენს მიერ არჩეული მოდელი გავლენას მოახდენს სენსორის განთავსებაზე და ორიენტაციაზე. ჩემდა სამწუხაროდ, მე ნამდვილად არ გამოვიკვლიე ზუსტად რომელი სენსორები მივიღო. ეს უფრო იყო "რომელი პირობა შემიძლია მივიღო გონივრულ დროში და ფასად რეპუტაციის წყაროდან, მათგან, რასაც ისინი გვთავაზობენ".

(განახლება: თუმცა, ამას შეიძლება არ ჰქონდეს მნიშვნელობა, რადგან როგორც ჩანს, ეს სენსორი დაბნეულია ინტერიერის გარე განათებით. მე მაინც ვიკვლევ ამ საკითხს)

ამ სენსორების რობოტზე დამონტაჟების მინიმუმ სამი გზა არსებობს.

  1. განათავსეთ ისინი ფიქსირებულ მდგომარეობაში, წინ, ერთმანეთისგან ოდნავ მოშორებით.
  2. განათავსეთ ისინი სერვოზე, წინ, ერთმანეთისგან ოდნავ მოშორებით.
  3. მოათავსეთ ისინი ფიქსირებულ მდგომარეობაში, წინა, მაგრამ მარცხენა და მარჯვენა უკიდურეს კუთხეებში, ერთმანეთისკენ დახრილი.

არჩევანის #1 არჩევან #3 -თან შედარებისას, მე ვფიქრობ, რომ #3 უფრო მეტი ფარავს შეჯახების არეალს. თუ გადახედავთ სურათებს, არჩევანი #3 შეიძლება გაკეთდეს არა მხოლოდ ისე, რომ სენსორული ველები გადაფაროს, არამედ მათ შეუძლიათ დაფარონ რობოტის ცენტრი და გარე სიგანე.

არჩევანის #1, რაც უფრო მეტად დაშორებულია სენსორები ერთმანეთისაგან, მით უფრო ბრმა წერტილია ცენტრში.

ჩვენ შეგვიძლია გავაკეთოთ #2, (მე დავამატე რამოდენიმე სურათი სერვოთი, როგორც შესაძლებლობა) და მივცეთ მათ გაწმენდა, და ცხადია, რომ ეს შეიძლება მოიცავდეს ყველაზე დიდ ტერიტორიას. თუმცა, მინდა სერვოს გამოყენება რაც შეიძლება დიდხანს გადავადო, სულ მცირე ორი მიზეზის გამო:

  • ჩვენ გამოვიყენებთ ერთ – ერთ PWM საკომუნიკაციო არხს Raspberry Pi– ზე. (შესაძლებელია ამის გაძლიერება, მაგრამ მაინც …)
  • სერვოზე მიმდინარე გათამაშება შეიძლება მნიშვნელოვანი იყოს
  • ეს უფრო მეტს მატებს ტექნიკასა და პროგრამულ უზრუნველყოფას

მე მინდა დავტოვო servo ვარიანტი მოგვიანებით, როდესაც დავამატებ უფრო მნიშვნელოვან სენსორებს, როგორიცაა Time-of-Flight (ToF), ან შესაძლოა კამერა.

არსებობს კიდევ ერთი შესაძლო უპირატესობა #2 არჩევანით, რომელიც არ არის ხელმისაწვდომი სხვა ორ არჩევანთან ერთად. ეს IR სენსორები შეიძლება დაბნეული იყოს, ეს დამოკიდებულია განათებაზე. შესაძლოა, რობოტი კითხულობდეს იმ ობიექტს, რომელიც უახლოეს მომავალში ახლოსაა, როდესაც სინამდვილეში არ არის ახლომდებარე ობიექტი. არჩევანის #3, ვინაიდან მათი ველები შეიძლება გადახურულ იქნეს, ორივე სენსორმა შეიძლება დაარეგისტრიროს ერთი და იგივე ობიექტი (სხვადასხვა კუთხიდან).

ჩვენ ვაპირებთ განლაგების არჩევანს #3.

ნაბიჯი 3: გამოცდის დრო

Image
Image

მას შემდეგ რაც დავამყარეთ ყველა კავშირი Raspberry Pi- ს, MCP3008 ADC- სა და Sharp IR სენსორებს შორის, დროა შევამოწმოთ. უბრალოდ მარტივი ტესტი იმის დასადასტურებლად, რომ სისტემა მუშაობს ახალ სენსორებთან.

როგორც წინა ინსტრუქციებში, მე მაქსიმალურად ვიყენებ wiringPi C ბიბლიოთეკას. ამარტივებს საქმეს. რაღაც, რაც აშკარად არ ჩანს wiringPi ვებსაიტის განხილვისას, არის ის, რომ არსებობს პირდაპირი მხარდაჭერა MCP3004/3008.

ამის გარეშეც, თქვენ შეგიძლიათ გამოიყენოთ SPI გაფართოება. მაგრამ არ არის საჭირო. თუ ყურადღებით დააკვირდებით გორდონის git საცავს wiringPi– სთვის, თქვენ წააწყდებით მხარდაჭერილი ჩიპების ჩამონათვალს, რომელთაგან ერთ – ერთია MCP3004/3008– ისთვის.

მე გადავწყვიტე კოდის მიმაგრება, როგორც ფაილი, რადგან ვერ მოვახერხე მისი სწორად ჩვენება ამ გვერდზე.

ნაბიჯი 4: ვირტუალური სენსორი - AmpSensor

რაც უფრო განსხვავებული გზებით შეგიძლიათ რობოტი მიიღოთ ინფორმაცია გარე სამყაროს შესახებ, მით უკეთესი.

რობოტს ამჟამად აქვს რვა HCSR04 აკუსტიკური სონარის სენსორი (ისინი არ არიან ამ ინსტრუქციის ყურადღების ცენტრში) და ახლა მას აქვს ორი მკვეთრი IR დისტანციის სენსორი. როგორც უკვე აღვნიშნეთ, ჩვენ შეგვიძლია სხვა რამით ვისარგებლოთ: რობოკლავის საავტომობილო დენების მგრძნობიარე ფუნქციით.

ჩვენ შეგვიძლია შეკითხვის ზარი მოვახდინოთ საავტომობილო კონტროლერთან C ++ კლასში და ვუწოდოთ მას AmpSensor.

პროგრამული უზრუნველყოფის ზოგიერთი "ჭკუის" დამატებით, ჩვენ შეგვიძლია მონიტორინგი და მორგება ტიპიური დენის გათამაშებაზე სწორი მოძრაობის დროს (წინ, უკან), ასევე ბრუნვის მოძრაობებზე (მარცხნივ, მარჯვნივ). მას შემდეგ, რაც ჩვენ ვიცით ამპერების დიაპაზონი, ჩვენ შეგვიძლია შევარჩიოთ კრიტიკული მნიშვნელობა, ასე რომ, თუ AmpSensor მიიღებს მიმდინარე მაჩვენებელს საავტომობილო კონტროლერისგან, რომელიც აღემატება ამ მნიშვნელობას, ჩვენ ვიცით, რომ ძრავები ალბათ გაჩერებულია და ეს ჩვეულებრივ მიუთითებს რობოტის დარტყმაზე რაღაცაში.

თუ ჩვენ დავამატებთ გარკვეულ მოქნილობას პროგრამულ უზრუნველყოფაზე (ბრძანების ხაზის არგები და / ან კლავიატურის შეყვანა ოპერაციის დროს), მაშინ ჩვენ შეგვიძლია გავზარდოთ / შევამციროთ "კრიტიკული ამპერების" ბარიერი ექსპერიმენტისას, მხოლოდ რობოტის მოძრაობის და ობიექტების შეჯახების საშუალებას. როგორც პირდაპირ, ისე ბრუნვის დროს.

ვინაიდან პროგრამული უზრუნველყოფის ნავიგაციის ნაწილმა იცის მოძრაობის მიმართულება, ჩვენ შეგვიძლია გამოვიყენოთ მთელი ეს ინფორმაცია, რომ შევაჩეროთ მოძრაობა და შევეცადოთ გადავაბრუნოთ მოძრაობა მცირე ხნით, სანამ სხვა რამეს შევეცდებით.

ნაბიჯი 5: ნავიგაცია

რობოტი ამჟამად შეზღუდულია რეალურ სამყაროში გამოხმაურებით. მას აქვს რამოდენიმე ახლო დისტანციის სენსორი დაბრკოლებების თავიდან აცილების მიზნით და მას აქვს ახლო მანძილზე მონიტორინგის ტექნიკა, თუ მანძილის სენსორებმა ხელი შეუშალეს დაბრკოლებას.

მას არ აქვს ძრავები კოდირებით და მას არ აქვს IMU (ინერციული-საზომი ერთეული), რაც უფრო ართულებს იმის გაგებას, მართლა მოძრაობს თუ ბრუნავს და რამდენად.

მიუხედავად იმისა, რომ რობოტზე არსებულ სენსორებთან მანძილზე რაიმე სახის მითითების მიღება შესაძლებელია, მათი ხედვის არეალი ფართოა და არაპროგნოზირებადი. აკუსტიკური სონარი შეიძლება სწორად არ აისახოს უკან; ინფრაწითელი შეიძლება დაბნეული იყოს სხვა განათებით, ან თუნდაც მრავალ ამრეკლ ზედაპირზე. მე არ ვარ დარწმუნებული, რომ ღირს იმ უბედურება, როდესაც თქვენ ნამდვილად ცდილობთ თვალყური ადევნოთ დისტანციის ცვლილებას, როგორც ტექნიკას, რომ იცოდეთ მოძრაობს რობოტი და რამდენად და რა მიმართულებით.

მე მიზანმიმართულად ავირჩიე არ გამოვიყენო მიკრო კონტროლერი, როგორიცაა არდუინო, რადგან ა) მე არ მომწონს psuedo-C ++ გარემო, ბ) და რომ ძალიან ბევრი განვითარება დაითრგუნებს წაკითხულ-წერის მეხსიერებას (?), და რომ მე დასჭირდება მასპინძელი კომპიუტერი (?). ან იქნებ მე უბრალოდ Raspberry Pi- ს ვგავარ.

Pi, რომელიც მუშაობს Raspbian– ით, არ არის რეალურ დროში ოპერაციული სისტემა, ამიტომ ამ სენსორების არასტაბილურობასა და OS– ს შორის, რომელიც არ კითხულობს ზუსტად ყოველ ჯერზე, ვიგრძენი, რომ ამ სენსორების დანიშნულება უფრო შეეფერებოდა დაბრკოლებებს და არა ფაქტობრივი მანძილის გაზომვა.

ეს მიდგომა რთული ჩანდა და არც ისე დიდი სარგებლით, როდესაც ჩვენ შეგვიძლია გამოვიყენოთ უკეთესი ToF (ფრენის დრო) სენსორები (მოგვიანებით) ამ მიზნით (SLAM).

ერთი მიდგომა, რომელიც ჩვენ შეგვიძლია გამოვიყენოთ, არის გარკვეული სახის თვალყურის დევნება იმისა, თუ რა მოძრაობის ბრძანებებია გაცემული ბოლო X წამში ან ბრძანებები.

მაგალითად, თქვით, რომ რობოტი დიაგონალზე კუთხისკენ არის მიბმული. სენსორების ერთი ნაკრები მას ეუბნება, რომ ის ძალიან ახლოს არის ერთ კედელთან, ამიტომ ბრუნავს, მაგრამ შემდეგ სენსორების სხვა ნაკრები მას ეუბნება, რომ ის ძალიან ახლოს არის მეორე კედელთან. იგი სრულდება მხოლოდ მეორეს მხარის ნიმუშის გამეორებით.

ზემოთ მოყვანილი მაგალითი მხოლოდ ერთი ძალიან მარტივი შემთხვევაა. ზოგიერთი ჭკვიანების დამატებამ შეიძლება უბრალოდ განმეორებითი ნიმუში ახალ დონეზე აიყვანოს, მაგრამ რობოტი კუთხეში ჩერდება.

მაგალითი, ნაცვლად წინ და უკან ბრუნვისა, ის ბრუნავს ერთი მიმართულებით, აკეთებს წამიერად შებრუნებას (რაც შემდეგ აშორებს კრიტიკულ მანძილზე მითითებებს) და მაშინაც კი, თუ ის სხვა მიმართულებით ბრუნავს, ის მაინც წინ მიდის კუთხით უკან კუთხეში არსებითად ერთიდაიგივეს უფრო რთული ნათქვამის გამეორება.

ეს ნიშნავს, რომ ჩვენ ნამდვილად შეგვიძლია გამოვიყენოთ ბრძანებების ისტორია და შევხედოთ როგორ გამოვიყენოთ და გამოვიყენოთ ეს ინფორმაცია.

მე შემიძლია მოვიფიქრო მოძრაობის ისტორიის გამოყენების ორი ძალიან ძირითადი (რუდიმენტული) გზა.

  • გადაადგილების ბოლო X რიცხვისთვის, ემთხვევა თუ არა ისინი Y ნიმუშს. მარტივი მაგალითი შეიძლება იყოს (და ეს მოხდა) "წინ, უკან, წინ, უკან, … …". ასე რომ, ეს არის შესატყვისი ფუნქცია, რომელიც აბრუნებს TRUE (ნიმუში ნაპოვნია) ან FALSE (არ მოიძებნა). თუ TRUE, პროგრამის სანავიგაციო ნაწილში, სცადეთ სხვა მოძრაობის თანმიმდევრობა.
  • გადაადგილების ბოლო X რიცხვისთვის არის ზოგადი ან წმინდა წინსვლა. როგორ შეიძლება დადგინდეს რა არის რეალური წინსვლა? კარგად.. ერთი მარტივი შედარება ის არის, რომ ბოლო X გადაადგილებისთვის "FORWARD" ხდება უფრო მეტს, ვიდრე "REVERSE". მაგრამ ეს არ უნდა იყოს ერთადერთი. რას იტყვით ამაზე: "მარჯვნივ, მარჯვნივ, მარცხნივ, მარჯვნივ". ამ შემთხვევაში, რობოტს უნდა მოუხვიოს მარჯვენა მოსახვევი კუთხიდან გასასვლელად, ან იმის გამო, რომ იგი კედელს კუთხით მიუახლოვდა, რაც შეიძლება ჩაითვალოს რეალურ წინსვლას. მეორეს მხრივ, "მარცხნივ, მარჯვნივ, მარცხნივ, მარჯვნივ …" შეიძლება არ ჩაითვალოს რეალურ წინსვლად. ამრიგად, თუ "RIGHT" ხდება უფრო მეტს, ვიდრე "LEFT", ან "LEFT ხდება უფრო მეტს, ვიდრე" RIGHT ", მაშინ ეს შეიძლება იყოს რეალური პროგრესი.

ამ ინსტრუქციის დასაწყისში მე აღვნიშნე, რომ შესაძლო მე -3 გოლი შეიძლება იყოს კვადრატი ან კედლის გასწორება. ამისათვის ჩვენ გვჭირდება უფრო მეტი ვიდრე "ვართ თუ არა რაიმე ობიექტთან ახლოს". მაგალითად, თუ ჩვენ შეგვიძლია მივიღოთ ორი აკუსტიკური სენსორი (ამ სტატიის ყურადღების ცენტრში არ არის), რათა გონივრულად კარგი, სტაბილური პასუხები მივიღოთ მანძილზე, ცხადია, თუ ერთი მეორესთან შედარებით ბევრად განსხვავებულ მნიშვნელობას იძახის, რობოტი კედელთან მივიდა. კუთხით და შეიძლება მანევრირება სცადოს იმის დასადგენად, უახლოვდება თუ არა ეს ღირებულებები ერთმანეთს (კედლის კვადრატულად).

ნაბიჯი 6: საბოლოო აზრები, შემდეგი ეტაპი…

ვიმედოვნებ, რომ ამ ინსტრუქციამ მისცა იდეები.

მეტი სენსორის დამატება წარმოგიდგენთ ზოგიერთ უპირატესობას და გამოწვევას.

ზემოაღნიშნულ შემთხვევაში, ყველა აკუსტიკური სენსორი კარგად მუშაობდა ერთად და ეს იყო საკმაოდ პირდაპირ პროგრამულ უზრუნველყოფასთან.

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

ასე რომ, გამოწვევა იყო რა უნდა გავაკეთოთ, თუ აკუსტიკური სენსორი გვეუბნება, რომ არ არსებობს დაბრკოლება, მაგრამ IR სენსორი არის.

ჯერჯერობით, ცდა-შეცდომის შემდეგ, ყველაფერი ამ პრიორიტეტით დასრულდა:

  1. გამაძლიერებელი
  2. IR- შეგრძნება
  3. აკუსტიკური შეგრძნება

და რაც მე გავაკეთე იყო მხოლოდ IR სენსორების მგრძნობელობის დაქვეითება, რათა მათ აღმოაჩინონ მხოლოდ ძალიან ახლო ობიექტები (მაგალითად, სკამის მოახლოებული ფეხები)

ჯერჯერობით, არ იყო საჭირო რაიმე პროგრამული უზრუნველყოფის გაკეთება მრავალფუნქციური ძაფებით ან შეწყვეტით, თუმცა ხანდახან ვხვდები კონტროლის დაკარგვას Raspberry Pi- სა და Roboclaw საავტომობილო კონტროლერს შორის (სერიული კომუნიკაციების დაკარგვა).

ეს არის ის, სადაც E-Stop წრე (იხ. წინა ინსტრუქციები) ჩვეულებრივ გამოიყენებოდა. თუმცა, მას შემდეგ, რაც მე არ მსურს (ჯერ კიდევ) უნდა შემექმნას რობოკლავის გადატვირთვისას განვითარების პროცესში და რობოტი არც ისე სწრაფად მიდის, და მე ვარ მისი მონიტორინგისთვის და დახურვისთვის, დაუკავშირა E-Stop.

საბოლოოდ, მრავალფუნქციური ძაფი, სავარაუდოდ, საჭირო იქნება.

Შემდეგი ნაბიჯები…

გმადლობთ, რომ აქამდე მიაღწიეთ.

მე მივიღე რამოდენიმე VL53L1X IR ლაზერული ToF (ფრენის დრო) სენსორები, ასე რომ, სავარაუდოდ, ეს არის შემდეგი ინსტრუქციის თემა, სერვოსთან ერთად.

გირჩევთ: