Სარჩევი:

Localino Tracks Roomba IRobot, რუკები გარემოს და საშუალებას იძლევა კონტროლი .: 4 ნაბიჯი
Localino Tracks Roomba IRobot, რუკები გარემოს და საშუალებას იძლევა კონტროლი .: 4 ნაბიჯი

ვიდეო: Localino Tracks Roomba IRobot, რუკები გარემოს და საშუალებას იძლევა კონტროლი .: 4 ნაბიჯი

ვიდეო: Localino Tracks Roomba IRobot, რუკები გარემოს და საშუალებას იძლევა კონტროლი .: 4 ნაბიჯი
ვიდეო: iRobot Roomba i3+: подробный видеообзор робота-пылесоса для сухой уборки. Распаковка и тестирование. 2024, ნოემბერი
Anonim
Image
Image

WiFi-UART ხიდის ასაშენებლად შეგიძლიათ ნახოთ ეს github რეპო:

მას აქვს კარგი საფუძველი დასაწყებად. დარწმუნდით, რომ კარგად წაიკითხეთ სახელმძღვანელო, რადგან Roomba VCC დატენვის დროს იზრდება 20 ვოლტამდე! თუ თქვენ დაამატებთ ESP8266 სათანადო გადამყვანი კონვერტორის გარეშე, რომელიც მუშაობს თუნდაც 20 ვ-მდე და დაბლა გარდაქმნის 3.3 ვ-ზე, თქვენ დააზიანებთ თქვენს ESP- ს.

ასევე დარწმუნდით, რომ გამოიყენოთ დონის შემცვლელი (მაგ. ძაბვის გამყოფის გამოყენებით) 5V UART ლოგიკური დონეების გადატანა Roomba– დან 3.3V– ზე, რომელსაც იყენებს ESP.

კიდევ ერთი მნიშვნელოვანი დეტალი არის ის, რომ მამლის გადამყვანს უნდა ჰქონდეს 300mA, მაგრამ არა ბევრად ნაკლები ან ბევრად მეტი (ეს დამოკიდებულია თავად მამრის გადამყვანზე). არის ზოგი, რომელსაც შეუძლია გაცილებით მეტი მიმდინარეობა, მაგრამ გამოიწვიოს რუმბას ჩამონგრევა, რადგან გაშვების დროს ისინი ძალიან ბევრ დენს ხდიან. ჩვენ აღმოვაჩინეთ, რომ Pololu 3.3V, 300mA Step-Down Voltage Regulator (D24V3F3) მუშაობს იდეალურად. ალტერნატიულმა ვერსიებმა, რომლებსაც აქვთ 500mA / 600mA, გამოიწვია Roomba UART ინტერფეისის კრახი. ძირითადად Roomba რეაგირებდა ღილაკზე დაჭერით, მაგრამ არა ბრძანებებზე UART ინტერფეისით. მას შემდეგ რაც ეს მოხდა, ჩვენ მოგვიწია რუმბას ბატარეის ამოღება და ოთახის ცივი გადატვირთვა WiFi-UART ხიდით. თუმცა, მხოლოდ D24V3F3 მუშაობდა კარგად.

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

მაგალითები arduino IDE– ში:

void goForward () {char c = {137, 0x00, 0xc8, 0x80, 0x00}; // 0x00c8 == 200 Serial.print (გ); }

void goBackward () {char c = {137, 0xff, 0x38, 0x80, 0x00}; // 0xff38 == -200 სერიული. ბეჭდვა (გ); }

void spinLeft () {char c = {137, 0x00, 0xc8, 0x00, 0x01}; სერიული. ბეჭდვა (გ); }

void spinRight () {char c = {137, 0x00, 0xc8, 0xff, 0xff}; სერიული. ბეჭდვა (გ); }

თუ ლუას წერთ, ის ცოტა სხვანაირად გამოიყურება, მარცხენა მოსახვევის მაგალითი ასე გამოიყურება:

თუ (_GET.pin == "მარცხნივ") შემდეგ დაბეჭდეთ ('\ 137'); --VOR

tmr.dlay (100);

ბეჭდვა ('\ 00'); -სიჩქარე = 200 = 0x00C8 -> 0 და 200

tmr.dlay (100);

ბეჭდვა ('\ 200'); - სიჩქარე

tmr.dlay (100);

ბეჭდვა ('\ 254'); - რადიუსი = 500 = 0x01F4 = 0x01 0xF4 = 1 244

tmr.dlay (100);

ბეჭდვა ('\ 12'); -- Მობრუნება

დასასრული

დარწმუნდით, რომ თქვენ უნდა შეასწოროთ ღია ინტერფეისის აღწერა თქვენი Roomba– სთვის. სულ მცირე ორი ღია ინტერფეისის სპეციფიკაცია არსებობს.

Roomba 5xx სერიისთვის:

Roomba 6xx სერიისთვის:

მას შემდეგ რაც ააშენებთ თქვენს WiFi-UART ხიდს და შეამოწმებთ თქვენს წინ გადადგმულ ბრძანებებს. ეს ვიდეო აჩვენებს, რომ პროგრამა და მიდგომა მუშაობს. ჩვენ ცოტა ზარმაცი ვიყავით, ვებ ინტერფეისს აკლია ყველა სხვა საკონტროლო ბრძანება, როგორიცაა წინ, უკან, სიჩქარე, მარჯვნივ, მარცხნივ და ასე შემდეგ, მაგრამ ბრძანებების გაცემა შეგიძლიათ http– ის საშუალებით. ყოველ შემთხვევაში, ეს მხოლოდ იმის დემონსტრირებაა, რომ Roomba– ს დისტანციური მართვა მუშაობს მარტივი ტექნიკითა და პროგრამული უზრუნველყოფით ESP8266– ის გამოყენებით.

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

ნაბიჯი 3: დააყენეთ თქვენი შიდა ლოკალიზაციის სისტემა

დახურვის უკუკავშირის მარყუჟი ჩვენ ვიყენებთ შიდა ლოკალიზაციის სისტემას. ჩვენ ვიყენებთ Localino ამისათვის. Localino სისტემა შედგება "წამყვანებისა" და "ტეგებისგან". წამყვანები განლაგებულია ოთახის შიგნით დაფიქსირებულ ადგილას და იკვლევენ მოძრავი ტეგის პოზიციას (რომელიც განთავსებულია Roomba- ზე). ადგილმდებარეობის დამუშავება ხდება კომპიუტერულ პროგრამაში. ეს დიდი უპირატესობაა, რადგან თქვენ ასევე შეგიძლიათ გააკონტროლოთ Roomba იმავე კომპიუტერიდან! არის უფასო კოდის წყარო, რომელიც ხელმისაწვდომია Localino– ს ვებ – გვერდიდან, ის დაწერილია პითონში და ასევე არის რეალურ დროში ნაკადი, რომელიც გთავაზობთ ტეგის XYZ კოორდინატებს. მონაცემთა ნაკადი ხელმისაწვდომია UDP ქსელის საშუალებით, მაგრამ ასევე შეგიძლიათ დაამატოთ MQTT ან ნებისმიერი სხვა ლამაზი რამ, რაც მოგწონთ. თუ იცნობთ პითონს, არის უამრავი ბიბლიოთეკა, რომელიც დაგეხმარებათ.

ამ ვიდეოში ნაჩვენებია რუმბას ლოკალიზაცია. აქედან გამომდინარე, ჩვენ გვაქვს 4 წამყვანის დაყენება ოთახში ფიქსირებულ ადგილებში, რაც შესაძლებელს გახდის Roomba– ს 3D პოზიციონირებას. ზოგადად, ჩვენ გვჭირდება მხოლოდ 3 წამყვანი, რადგან Roomba ალბათ არ გადაადგილდება Z ღერძზე, ამიტომ 2D საკმარისი იქნება. მაგრამ იმის გამო, რომ წამყვანები განლაგებულია AC ძირითადი სანთლების სიმაღლეზე (რომელიც დაახლოებით 30 სმ სიმაღლეზეა), 2D დაყენება გამოიწვევს პოზიციის შეფასების მცირე შეცდომებს. ასე რომ, ჩვენ გადავწყვიტეთ გვქონდეს 4 წამყვანი და ლოკალიზებულ იქნას 3D.

ახლა, როდესაც ჩვენ გვაქვს Roomba– ს პოზიცია, ჩვენი შემდეგი ნაბიჯი არის Roomba– ს კონტროლი ერთი და იგივე პროგრამიდან. იდეა არის გამოიყენოს ძირითადი ჭეშმარიტება და შეაფასოს სრულყოფილი დასუფთავების გზა რობოტისთვის. Localino– ს გამოყენებით ჩვენ შეგვიძლია დავხუროთ უკუკავშირის მარყუჟი და გავაკონტროლოთ რობოტი კომპიუტერის აპლიკაციიდან.

დაყენების შენიშვნები

განათავსეთ Localino წამყვანები ოთახის შიგნით სხვადასხვა x, y პოზიციებზე და სამი მათგანი იმავე z პოზიციაზე. განათავსეთ ერთი ოთხი წამყვანიდან სხვადასხვა სიმაღლეზე z ოთახში. დარწმუნდით, რომ არის კარგი დაფარვა Localino ტეგიდან, რომელიც გადაადგილდება Roomba– სთან ერთად.

ყველა წამყვანს აქვს უნიკალური წამყვანის ID, რომელიც ნაჩვენებია Localino- ს შტრიხკოდზე და მისი წაკითხვა შესაძლებელია "localino configuration" ინსტრუმენტის საშუალებით.

გაითვალისწინეთ X, Y, Z პოზიციები და წამყვანის ID- ები. ეს საჭიროა Localino პროცესორის პროგრამისთვის და უნდა იყოს ადაპტირებული "localino.ini" ფაილში საქაღალდეში "LocalinoProcessor"

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

… კიდევ უფრო მეტი.

ნაბიჯი 4: ადაპტირება პითონის პროგრამული უზრუნველყოფა

ადევნეთ თვალყური. უფრო მეტი მოვა.

გირჩევთ: