Სარჩევი:
- ნაბიჯი 1: მარაგი
- ნაბიჯი 2: პრობლემის განცხადება
- ნაბიჯი 3: Bluetooth დისტანციური მართვა
- ნაბიჯი 4: ზემოქმედების აღიარება
- ნაბიჯი 5: სიცოცხლის აღიარება
- ნაბიჯი 6: გაუშვით
ვიდეო: მარს რუმბა: 6 ნაბიჯი
2024 ავტორი: John Day | [email protected]. ბოლოს შეცვლილი: 2024-01-30 10:18
ეს ინსტრუქცია გაგიძღვებათ Raspberry Pi კონტროლირებადი Roomba ვაკუუმ ბოტის მუშაობის მიმართულებით. ოპერაციული სისტემა, რომელსაც ჩვენ ვიყენებთ, არის MATLAB.
ნაბიჯი 1: მარაგი
რა უნდა შეაგროვოთ ამ პროექტის განსახორციელებლად:
- iRobot's Create2 Roomba მტვერსასრუტი ბოტი
- ჟოლო პი
- ჟოლო პი კამერა
- MATLAB- ის უახლესი ვერსია
- Roomba დააინსტალირეთ ინსტრუმენტები MATLAB– ისთვის
- MATLAB პროგრამა ფიჭური მოწყობილობისთვის
ნაბიჯი 2: პრობლემის განცხადება
ჩვენ გვქონდა დავალება გამოვიყენოთ MATLAB როვერის შესაქმნელად, რომელიც შეიძლება გამოყენებულ იქნას მარსზე, რათა დავეხმაროთ მეცნიერებს პლანეტის მონაცემების შეგროვებაში. ჩვენს პროექტში განხილული ფუნქციები იყო დისტანციური მართვა, ობიექტზე ზემოქმედების ამოცნობა, წყლის ამოცნობა, სიცოცხლის ამოცნობა და სურათის დამუშავება. ამ მიღწევების მისაღწევად, ჩვენ დავწერეთ Roomba ინსტრუმენტების ყუთის ბრძანებები iRobot- ის Create2 Roomba– ს მრავალი ფუნქციის მანიპულირებისთვის.
ნაბიჯი 3: Bluetooth დისტანციური მართვა
ეს სლაიდი გაივლის კოდს, რომ გააკონტროლოს Roomba– ს მოძრაობა თქვენი სმარტფონის მოწყობილობის Bluetooth შესაძლებლობების გამოყენებით. დასაწყებად, ჩამოტვირთეთ MATLAB პროგრამა თქვენს სმარტფონში და შედით თქვენს მათემატიკის ანგარიშზე. სისტემაში შესვლისთანავე გადადით "მეტი", "პარამეტრები" და დაუკავშირდით თქვენს კომპიუტერს მისი IP მისამართის გამოყენებით. დაკავშირების შემდეგ დაუბრუნდით "სხვას" და აირჩიეთ "სენსორები". შეეხეთ ეკრანის ზედა პანელის მესამე სენსორს და შეეხეთ დაწყებას. ახლა, თქვენი სმარტფონი არის დისტანციური მართვა!
კოდი ასეთია:
ხოლო 0 == 0
პაუზა (.5)
PhoneData = M. ორიენტაცია;
Azi = PhoneData (1);
მოედანი = PhoneData (2);
გვერდი = PhoneData (3);
მუწუკები = r.getBumpers;
თუ გვერდი> 80 || მხარე <-80
რ. გაჩერება
r.beep ('C, E, G, C^, G, E, C')
შესვენება
elseif გვერდი> 20 && მხარე <40
r.turnAngle (-5);
elseif გვერდი> 40
r.turnAngle (-25);
elseif გვერდი -40
r.turnAngle (5);
elseif გვერდი <-40
r.turnAngle (25);
დასასრული
თუ Pitch> 10 && Pitch <35
r.moveDistance (.03)
elseif Pitch> -35 && Pitch <-10
r.moveDistance (-. 03)
დასასრული
დასასრული
ნაბიჯი 4: ზემოქმედების აღიარება
კიდევ ერთი ფუნქცია, რომელიც ჩვენ განვახორციელეთ, იყო Roomba- ს ზემოქმედების გამოვლენა ობიექტზე და შემდეგ მისი მიმდინარე გზის გასწორება. ამისათვის ჩვენ უნდა გამოვიყენოთ პირობითი ბამპერის სენსორების კითხვით, რათა დადგინდეს, დაარტყა თუ არა ობიექტმა. თუ რობოტი მოხვდება ობიექტს, ის უკან დაიხევს.2 მეტრს და ბრუნავს იმ კუთხით, რომელიც განსაზღვრულია ბამპერის დარტყმის შედეგად. მას შემდეგ, რაც ერთეულს მოხვდა, მენიუ ჩნდება, რომელშიც ნაჩვენებია სიტყვა "ოფ".
კოდი ნაჩვენებია ქვემოთ:
ხოლო 0 == 0
მუწუკები = r.getBumpers;
r.setDriveVelocity (.1)
თუ bumps.left == 1
msgbox ('ოფ!');
r.moveDistance (-0.2)
r.setTurnVelocity (.2)
r.turnAngle (-35)
r.setDriveVelocity (.2)
elseif bumps.front == 1
msgbox ('ოფ!');
r.moveDistance (-0.2)
r.setTurnVelocity (.2)
r.turnAngle (90)
r.setDriveVelocity (.2)
elseif bumps.right == 1
msgbox ('ოფ!');
r.moveDistance (-0.2)
r.setTurnVelocity (.2)
r.turnAngle (35)
r.setDriveVelocity (.2)
elseif bumps.leftWheelDrop == 1
msgbox ('ოფ!');
r.moveDistance (-0.2)
r.setTurnVelocity (.2)
r.turnAngle (-35)
r.setDriveVelocity (.2)
elseif bumps.rightWheelDrop == 1
msgbox ('ოფ!');
r.moveDistance (-0.2)
r.setTurnVelocity (.2)
r.turnAngle (35)
r.setDriveVelocity (.2)
დასასრული
დასასრული
ნაბიჯი 5: სიცოცხლის აღიარება
ჩვენ დავწერეთ სიცოცხლის ამოცნობის სისტემა, რომ წავიკითხოთ მის წინ არსებული საგნები. სიცოცხლის სამი ტიპი, რომელზეც ჩვენ დავწერეთ, არის მცენარეები, წყალი და უცხოპლანეტელები. ამისათვის ჩვენ დავწერეთ სენსორები, რომ გამოვთვალოთ წითელი, ლურჯი, მწვანე ან თეთრი საშუალო მნიშვნელობები. ეს ღირებულებები შეადარეს იმ ზღურბლებს, რომლებიც ხელით იყო დადგენილი იმის დასადგენად, თუ რა ფერისაა კამერა. კოდი ასევე ასახავს ობიექტის გზას და ქმნის რუკას.
კოდი ასეთია:
t = 10;
i = 0;
ხოლო t == 10
img = r.getImage; ჩვენება (img)
პაუზა (0.167)
i = i + 1;
red_mean = საშუალო (საშუალო (img (:,:, 1)));
blue_mean = საშუალო (საშუალო (img (:,,, 3)));
green_mean = საშუალო (საშუალო (img (:,,, 2)));
თეთრი_მნიშვნელ = (ცისფერი_მნიშვნელობა + მწვანე_სიცოცხლისფერი + წითელი_სიტყვაობა) / 3; %-ს სურს ეს ღირებულება დაახლოებით 100
ცხრა_პლუს_თენი = 21;
მწვანე_ბარიერი = 125;
ლურჯი_ბარიერი = 130;
თეთრი_ბარიერი = 124;
წითელი_ბარიერი = 115;
ხოლო nine_plus_ten == 21 %მწვანე - სიცოცხლე
თუ green_mean> green_threshold && blue_mean <blue_threshold && red_mean <red_threshold
r.moveDistance (-. 1)
a = msgbox ('სიცოცხლის სავარაუდო წყარო ნაპოვნია, მდებარეობა შედგენილია');
პაუზა (2)
წაშლა (ა)
[y2, Fs2] = აუდიო გაცნობა ('z_speak2.wav');
ხმა (y2, Fs2)
პაუზა (2)
%მცენარე = r.getImage; %imshow (მცენარე);
%დაზოგვა ('plant_img.mat', მცენარე ');
ნაკვეთის ადგილმდებარეობა მწვანეში
i = 5;
შესვენება
სხვა
ცხრა_პლუს_თენი = 19;
დასასრული
დასასრული
ცხრა_პლუს_თენი = 21;
ხოლო nine_plus_ten == 21 %ცისფერი - მეწამული
თუ blue_mean> blue_threshold && green_mean <green_threshold && white_mean <white_threshold && red_mean <red_threshold
r.moveDistance (-. 1)
a = msgbox ("წყლის წყარო ნაპოვნია, ადგილმდებარეობა ნაჩვენებია");
პაუზა (2)
წაშლა (ა)
[y3, Fs3] = აუდიოროდი ('z_speak3.wav');
ხმა (y3, Fs3);
%woder = r.getImage; %imshow (woder)
%დაზოგვა ('water_img.mat', woder)
ნაკვეთის მდებარეობა ლურჯში
i = 5;
შესვენება
სხვა
ცხრა_პლუს_თენი = 19;
დასასრული
დასასრული
ცხრა_პლუს_თენი = 21;
ხოლო nine_plus_ten == 21 %თეთრი - უცხოპლანეტელები monkaS
თუ white_mean> white_threshold && blue_mean <blue_threshold && green_mean <green_threshold
[y5, Fs5] = აუდიო გაცნობა ('z_speak5.wav');
ხმა (y5, Fs5);
პაუზა (3)
r.setDriveVelocity (0,.5)
[ys, Fss] = audioread ('z_scream.mp3');
ხმა (ys, Fss);
პაუზა (3)
რ. გაჩერება
% alien = r.getImage; %imshow (უცხო);
% დაზოგვა ('alien_img.mat', უცხო);
i = 5;
შესვენება
სხვა
ცხრა_პლუს_თენი = 19;
დასასრული
დასასრული
თუ მე == 5
a = 1; %ბრუნვის კუთხე
t = 9; %შეწყვეტა დიდი მარყუჟი
i = 0;
დასასრული
დასასრული
ნაბიჯი 6: გაუშვით
მას შემდეგ, რაც ყველა კოდი დაიწერება, შეაერთეთ ეს ყველაფერი ერთ ფაილში და voila! თქვენი Roomba ბოტი ახლა იქნება სრულად ფუნქციონირებული და იმუშავებს როგორც რეკლამირებულია! ამასთან, Bluetooth კონტროლი უნდა იყოს ცალკე ფაილში ან გამოყოფილი დანარჩენი კოდისგან %%.
ისიამოვნეთ თქვენი რობოტის გამოყენებით !!
გირჩევთ:
თქვენი ოთახის გადაქცევა მარს როვერზე: 5 ნაბიჯი
გადააქციე შენი ოთახიბა მარს როვერზე:
მარს როვერი ჟოლოს პიის გამოყენებით: 5 ნაბიჯი
მარს როვერი ჟოლოს Pi გამოყენებით: ძვირფასო ყველასათვის, დიდი მცოდნე, მე ყოველთვის მაინტერესებს ვიცოდე მარს როვერის შესახებ, რომელსაც აქვს 6 ბორბალი, რომელსაც შეუძლია მარსის ყველა ზედაპირზე გასვლა და დედამიწის საგნების შესწავლა. მე ასევე მინდა რამის შესწავლა ჩემს ლეპტოპზე ჯდომით. ახლა მე ვხვდები, რომ ამის გაკეთების დროა და
Raspberry Pi - ავტონომიური მარს როვერი OpenCV ობიექტების თვალყურით: 7 ნაბიჯი (სურათებით)
Raspberry Pi - ავტონომიური მარს როვერი OpenCV ობიექტების თვალყურის დევნებით: იკვებება ჟოლოს პი 3 -ით, ღია CV ობიექტების ამოცნობა, ულტრაბგერითი სენსორები და გადაცემული DC ძრავები. ამ როვერს შეუძლია თვალყური ადევნოს ნებისმიერ საგანს, რომლისთვისაც იგი ვარჯიშობს და გადაადგილდეს ნებისმიერ რელიეფზე
ასტრონავტების დამხმარე რუმბა: 4 ნაბიჯი
ასტრონავტთა დახმარება Roomba: ეს პროექტი დამზადებულია iRobot ვერსიის Raspberry Pi 3 ბორტზე 2. MATLAB გამოიყენება რობოტის დასაპროგრამებლად, რომ დაიცვას კონკრეტული მითითებები მისი სენსორებისა და კამერის გამოყენებით. სენსორები და კამერები გამოიყენება კონკრეტული ამოცანების შესასრულებლად
ინსპექტორი რუმბა: 6 ნაბიჯი (სურათებით)
ინსპექტორი რუმბა: უმეტესობა ჩვენგანი იყენებს iRobot Roomba რობოტებს მხოლოდ მტვერსასრუტისთვის, მაგრამ ცოტამ თუ იცის, რომ ეს არის დიდი ბაზა ახალი რობოტული პროექტებისთვის. ყველა შემქმნელმა უნდა სცადოს Roomba Open Interface (OI), რათა გაარკვიოს რამდენად ადვილია ამ რობოტის გაკონტროლება. ამ ინსტრუქციაში თქვენ