Სარჩევი:
- ნაბიჯი 3: დააყენეთ თქვენი შიდა ლოკალიზაციის სისტემა
- ნაბიჯი 4: ადაპტირება პითონის პროგრამული უზრუნველყოფა
ვიდეო: Localino Tracks Roomba IRobot, რუკები გარემოს და საშუალებას იძლევა კონტროლი .: 4 ნაბიჯი
2024 ავტორი: John Day | [email protected]. ბოლოს შეცვლილი: 2024-01-30 10:20
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: ადაპტირება პითონის პროგრამული უზრუნველყოფა
ადევნეთ თვალყური. უფრო მეტი მოვა.
გირჩევთ:
საშუალებას გაძლევთ დააფიქსიროთ Fitbit Charge 2 ერთად. ხაზები ეკრანზე .: 3 ნაბიჯი
საშუალებას გაძლევთ დააფიქსიროთ Fitbit Charge 2 ერთად. ხაზები ეკრანზე .: ასე რომ, დაახლოებით 13 მთაზე, პირველი Fitbit– ის ყიდვის შემდეგ, დავიწყე ეკრანზე გასული ხაზების მიღება. ყოველდღე სხვა გამოჩნდა ზოგჯერ ერთზე მეტს. მე ძალიან კარგად ვუფრთხილდებოდი ჩემს Fitbit– ს, ვფიქრობდი და არ ვიცოდი რატომ დაიწყო. ერთხელ
წვრილმანი გარემოს კედლის განათება: 9 ნაბიჯი
DIY გარე კედლის განათება: გამარჯობა. მე ვარ ანონიმური კრევეტები, კეთილი იყოს თქვენი მობრძანება ამ არხიდან პირველი ინსტრუქციის სახელმძღვანელოში. თუ გსურთ ამის მეტი ნახვა, გადახედეთ ჩემს Youtube არხს აქ: https://bit.ly/3hNivF3Now, გაკვეთილზე. ეს კედლის შუქები კონტროლდება ერთი ლონით
გარემოს კედლის საათი: 11 ნაბიჯი (სურათებით)
გარემოს LED კედლის საათი: ბოლო დროს მე მინახავს ბევრი ადამიანი, რომლებიც აშენებენ უზარმაზარ LED მატრიცებს, რომლებიც აბსოლუტურად ლამაზად გამოიყურებიან, მაგრამ ისინი ან შედგებოდა რთული კოდისგან, ან ძვირადღირებული ნაწილებისგან, ან ორივესგან. ასე რომ, მე ვფიქრობდი აეშენებინა საკუთარი LED მატრიცა, რომელიც შედგებოდა ძალიან იაფი ნაწილებისგან და ძალიან
სიკაშკაშის კონტროლი PWM დაფუძნებული LED კონტროლი Push ღილაკების, ჟოლოს Pi და Scratch გამოყენებით: 8 ნაბიჯი (სურათებით)
სიკაშკაშის კონტროლი PWM დაფუძნებული LED კონტროლი Push Buttons, Raspberry Pi და Scratch გამოყენებით: მე ვცდილობდი მეპოვა გზა იმის ახსნა, თუ როგორ მუშაობდა PWM ჩემს მოსწავლეებზე, ამიტომ მე დავაყენე საკუთარი თავი ამოცანა ვცდილობდი გავაკონტროლო LED სიკაშკაშე 2 ღილაკის გამოყენებით - ერთი ღილაკი გაზრდის LED- ს სიკაშკაშეს და მეორე აფერხებს მას. წინსვლისთვის
ESP8266 RGB LED STRIP WIFI კონტროლი - NODEMCU როგორც IR დისტანციური მართვის წამყვანი ზოლისთვის, რომელიც კონტროლდება Wifi - RGB LED STRIP სმარტფონის კონტროლი: 4 ნაბიჯი
ESP8266 RGB LED STRIP WIFI კონტროლი | NODEMCU როგორც IR დისტანციური მართვის წამყვანი ზოლები Wifi- ზე კონტროლირებადი | RGB LED STRIP სმარტფონის კონტროლი: გამარჯობა ბიჭებო, ამ სახელმძღვანელოში ჩვენ ვისწავლით თუ როგორ გამოიყენოთ nodemcu ან esp8266 როგორც IR დისტანციური მართვა RGB LED ზოლის გასაკონტროლებლად და Nodemcu კონტროლდება სმარტფონის მიერ wifi– ზე. ასე რომ, ძირითადად თქვენ შეგიძლიათ აკონტროლოთ RGB LED STRIP თქვენი სმარტფონით