
Სარჩევი:
2025 ავტორი: John Day | [email protected]. ბოლოს შეცვლილი: 2025-01-23 14:50


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




MATLAB 2018 ა
-MATLAB– ის 2018 წლის ვერსია არის ყველაზე სასურველი ვერსია, ძირითადად იმიტომ, რომ ის საუკეთესოდ მუშაობს კოდთან, რომელიც უკავშირდება მობილურ მოწყობილობას. ამასთან, ჩვენი კოდის უმეტესობის ინტერპრეტაცია შესაძლებელია MATLAB ვერსიების უმეტესობაში.
iRobot მოწყობილობის შექმნა
-ეს მოწყობილობა არის სპეციალური მოწყობილობა, რომლის ერთადერთი დანიშნულებაა პროგრამირება და კოდირება. (ეს არ არის ნამდვილი ვაკუუმი)
ჟოლო პი (კამერით)
- ეს არის ძვირადღირებული კომპიუტერის დაფა, რომელიც მუშაობს როგორც iRobot- ის ტვინი. ეს შეიძლება იყოს პატარა, მაგრამ შეუძლია ბევრი რამის გაკეთება. კამერა არის დამატებითი დანამატი. იგი ასევე იყენებს ჟოლოს pi ყველა მისი ფუნქციების და ბრძანებების მისაღებად. ზემოთ გამოსახული კამერა დამონტაჟებულია 3D დაბეჭდილ სტენდზე, შექმნილი ტენესის უნივერსიტეტის საინჟინრო საფუძვლების განყოფილებების მიერ
ნაბიჯი 2: Roomba მონაცემთა ბაზის ფაილი

არის მთავარი ფაილი, რომელიც დაგჭირდებათ იმისათვის, რომ გამოიყენოთ თქვენი ოთახის შესაბამისი ფუნქციები და ბრძანებები. ეს ფაილი არის ადგილი, სადაც დაწერილი კოდი იღებს ფუნქციებს, რათა გახადოს უფრო ეფექტური თქვენი ოთახი.
შეგიძლიათ ჩამოტვირთოთ ფაილი ამ ბმულზე ან გადმოსაწერი ფაილი ქვემოთ
ef.engr.utk.edu/ef230-2017-08/projects/roomba-s/setup-roomba-instructable.php
ნაბიჯი 3: რუმბასთან დაკავშირება
პირველ რიგში, თქვენ უნდა დარწმუნდეთ, რომ თქვენი რობოტი დაკავშირებულია თქვენს ჟოლოს დაფაზე მიკრო USB დანამატის გამოყენებით. შემდეგ თქვენ უნდა სწორად დააკავშიროთ თქვენი კომპიუტერი და რობოტი იმავე WiFi- ს. ამის დასრულების შემდეგ, თქვენ შეგიძლიათ ჩართოთ თქვენი რობოტი და დაუკავშირდეთ მას რობოტის მონაცემთა ბაზის ფაილში მოცემული ბრძანების გამოყენებით. (ყოველთვის ძნელი გადატვირთეთ თქვენი რობოტი გამოყენებამდე და მის შემდეგ). მაგალითად, ჩვენ ვიყენებთ ბრძანებას "r.roomba (19)" ჩვენს რობოტთან დასაკავშირებლად და ვანიჭებთ ცვლადს r ჩვენს მოწყობილობას. ეს ეხება მონაცემთა ბაზის ფაილს, რომელიც ქმნის ჩვენს ცვლადს, როგორც სტრუქტურას, რომლის მითითებაც ჩვენ შეგვიძლია ნებისმიერ მომენტში.
ნაბიჯი 4: კოდი


ჩვენ დაურთეთ სრული კოდი ქვემოთ, მაგრამ აქ არის მოკლე მიმოხილვა, რომელიც ხაზს უსვამს ჩვენს სკრიპტის მნიშვნელოვან ელემენტებს. ჩვენ გამოვიყენეთ ყველა სენსორი, ასევე კამერა, რომ მაქსიმალურად გავზარდოთ ჩვენი რობოტის პოტენციალი. ჩვენ ასევე შევიტანეთ კოდი, რომელიც გვაძლევს საშუალებას დავუკავშიროთ მობილური მოწყობილობა ჩვენს რობოტს და მისი გრიოსკოპი გამოვიყენოთ ხელით გასაკონტროლებლად.
ჩვენ დავიწყეთ მარტივი ბრძანებით "r.setDriveVelocity (.06)", რომელიც ადგენს რობოტის წინსვლის სიჩქარეს.06 მ/წმ. ეს მხოლოდ იმისთვისაა, რომ რობოტი წინასწარ მოძრაობდეს
შემდეგ, ჩვენი მთავარი სკრიპტი იწყება ციკლის მარყუჟით, რომელიც იძენს მოცემული რობოტის მონაცემებს სტრუქტურების შექმნით, რომელსაც ჩვენ შეგვიძლია მივმართოთ და გამოვიყენოთ ქვემოთ მოცემულ პირობით განცხადებებში, რაც საშუალებას მოგვცემს ვუთხრათ რობოტს შეასრულოს გარკვეული ბრძანება სტრუქტურის მონაცემებზე დაყრდნობით რობოტი კითხულობს თავისი სენსორებით. ჩვენ შევქმენით ის ისე, რომ რობოტმა წაიკითხოს თავისი კლდის სენსორები და მიჰყვეს შავ გზას
ხოლო true % while loop მიდის მანამ, სანამ რაღაც „ყალბი“არ მოხდება (ამ შემთხვევაში ის უსასრულოდ გრძელდება) მონაცემები = r.getCliffSensors; data2 = r.getBumpers; % იღებს მუდმივად მონაცემებს კლდის სენსორის მნიშვნელობების შესახებ და ანიჭებს მათ ცვლადს % img = r.getImage; იღებს სურათს დამონტაჟებული კამერიდან % image (img); % აჩვენებს გადაღებულ სურათს % red_mean = საშუალო (საშუალო (img (:,,, 1))); % იღებს საშუალო მნიშვნელობას მწვანე ფერისთვის data.rightFront <2000 r.turnAngle (-2); % აქცევს Roomba- ს დაახლოებით.2 გრადუს CW მას შემდეგ, რაც მარჯვენა წინა კლდის სენსორების ღირებულება 2000 რ. ქვემოთ ჩამოდის. setDriveVelocity (.05); elseif data.leftFront data.leftFront && 2000> data.rightFront r.moveDistance (.1); % ეუბნება Roomba- ს გააგრძელოს წინსვლა დაახლოებით.2 მ/წმ, თუ ორივე წინა და მარცხენა წინა სენსორების მნიშვნელობები 2000 % r.turnAngle (0) ქვემოთ ჩამოდის; % ეუბნება Roomba- ს, არ გადაუხვიოს თუ ზემოთ ჩამოთვლილი პირობები მართალია
elseif data2.right == 1 r.moveDistance (-. 12); r.turnAngle (160); r.setDriveVelocity (.05); elseif data2.left == 1 r.moveDistance (-. 2); r.turnAngle (5); r.setDriveVelocity (.05); elseif data2.front == 1 r.moveDistance (-. 12); r.turnAngle (160); r.setDriveVelocity (.05);
ამ მარყუჟის შემდეგ, ჩვენ შევდივართ სხვა მარყუჟში, რომელიც იწვევს კამერის საშუალებით მიღებულ მონაცემებს. ჩვენ ვიყენებთ if განცხადებას ამ მარყუჟის შიგნით, რომელიც ამოიცნობს სურათს კონკრეტული პროგრამის (alexnet) გამოყენებით და სურათის იდენტიფიცირებისთანავე მაშინვე ააქტიურებს მობილურ მოწყობილობას დისტანციურ მართვას
anet = alexnet; % ანიჭებს alexnet ღრმა სწავლებას ცვლადი, ხოლო ჭეშმარიტი % Infinite while loop img = r.getImage; img = imresize (img, [227, 227]); label = კლასიფიკაცია (anet, img); თუ ეტიკეტი == "ქაღალდის პირსახოცი" || label == "მაცივარი" label = "წყალი"; დასასრულის სურათი (img); სათაური (სიმბოლო (ეტიკეტი)); დახატვა;
While მარყუჟი, რომელიც საშუალებას გვაძლევს გავაკონტროლოთ მოწყობილობა ჩვენი ტელეფონით, ვიღებთ მონაცემებს ტელეფონის გიროსკოპიდან და ვამაგრებთ მას მატრიცაში, რომელიც უწყვეტ რეჟიმში გადასცემს მონაცემებს კომპიუტერში MATLAB- ში. ჩვენ ვიყენებთ if განცხადებას, რომელიც კითხულობს მატრიცის მონაცემებს და იძლევა გამომავალს, რომელიც მოძრაობს მოწყობილობაზე ტელეფონის გიროსკოპის გარკვეული მნიშვნელობების საფუძველზე. მნიშვნელოვანია ვიცოდეთ, რომ ჩვენ გამოვიყენეთ მობილური მოწყობილობის ორიენტაციის სენსორები. სამივე ზემოთ ხსენებული მატრიცა კატეგორიზებულია ტელეფონის ორიენტაციის სენსორების თითოეული ელემენტის მიხედვით, რაც არის აზიმუტი, სიმაღლე და გვერდი. თუ დებულებებმა შექმნეს პირობები, სადაც ნათქვამია, როდესაც მხარე აღემატება 50 მნიშვნელობებს ან ეცემა ქვემოთ -50, მაშინ რობოტი მოძრაობს გარკვეულ მანძილზე წინ (დადებითი 50) ან უკან (უარყოფითი 50). და იგივე ეხება მოედნის ღირებულებას. თუ საფეხურის ღირებულება აღემატება 25 – ის ქვემოთ დაცემას 25 – ზე დაბლა, რობოტი ბრუნავს 1 გრადუსიანი კუთხით (დადებითი 25) ან უარყოფითი 1 გრადუსით (უარყოფითი 25)
ხოლო ჭეშმარიტი პაუზა (.1) %. პაუზა.5 წამი თითოეული მნიშვნელობის მიღებამდე Controller = iphone. Orientation; % ანიჭებს მატრიცას iPhone- ის ორიენტაციის მნიშვნელობებზე ცვლადი Azimuthal = Controller (1); % ანიჭებს მატრიცის პირველ მნიშვნელობას ცვლად Pitch = Controller (2); % ანიჭებს მატრიცის მეორე მნიშვნელობას ცვლადზე (იხრება წინ და უკან, როდესაც iPhone გვერდითაა გამართული) გვერდი = კონტროლერი (3); % მიანიჭებს მატრიცის მესამე მნიშვნელობას ცვლადზე (დახრილობა მარცხნივ და მარჯვნივ, როდესაც iPhone ინახება გვერდულად) % იწვევს გამომუშავებას ტელეფონის ორიენტაციის საფუძველზე, თუ გვერდი> 130 || მხარე 25 r.move დისტანცია (-. 1) % გადააქვს Roomba უკან დაახლოებით.1 მეტრი თუ iPhone დაიხრება უკან მინიმუმ 25 degress სხვა მხრივ დახრილია მინიმუმ 25 გრადუსი სხვაგვარად < / b> <25 r. turnAngle (1) % გადააქვს Roomba დაახლოებით 1 გრადუსი CW თუ iPhone დახრილია მინიმუმ 25 გრადუსი ბოლომდე
ეს მხოლოდ ჩვენი კოდის ძირითადი ნაწილების მაჩვენებლებია, რომლებიც ჩვენ შევიტანეთ, თუ თქვენ დაგჭირდებათ განყოფილების სწრაფად კოპირება და ჩასმა თქვენს სასარგებლოდ. თუმცა, საჭიროების შემთხვევაში, ჩვენი სრული კოდი თანდართულია ქვემოთ
ნაბიჯი 5: დასკვნა
ეს კოდი, რომელიც ჩვენ დავწერეთ, სპეციალურად შექმნილია ჩვენი რობოტისთვის, ასევე პროექტის საერთო ხედვისთვის. ჩვენი მიზანი იყო გამოვიყენოთ ჩვენი MATLAB კოდირების ყველა უნარი, რათა შევქმნათ კარგად შემუშავებული სკრიპტი, რომელიც იყენებს რობოტის უმეტეს მახასიათებლებს. ტელეფონის კონტროლერის გამოყენება არც ისე რთულია, როგორც თქვენ გგონიათ და ჩვენ ვიმედოვნებთ, რომ ჩვენი კოდი დაგეხმარებათ უკეთ გაიგოთ iRobot- ის კოდირების კონცეფცია.
გირჩევთ:
წვრილმანი Arduino Bluetooth კონტროლირებადი მანქანა: 6 ნაბიჯი (სურათებით)

წვრილმანი Arduino Bluetooth კონტროლირებადი მანქანა: გამარჯობა მეგობრებო! მე მქვია ნიკოლასი, მე ვარ 15 წლის და ვცხოვრობ ათენში, საბერძნეთი. დღეს მე გაჩვენებთ თუ როგორ უნდა გააკეთოთ 2 ბორბლიანი Bluetooth კონტროლირებადი მანქანა Arduino Nano– ს, 3D პრინტერისა და რამდენიმე მარტივი ელექტრონული კომპონენტის გამოყენებით! აუცილებლად უყურე ჩემს
MATLAB კონტროლირებადი მიკროკონტროლი (Arduino MKR1000): 4 ნაბიჯი

MATLAB კონტროლირებადი მიკროკონტროლერი (Arduino MKR1000): ჩვენი პროექტის მიზანი იყო გამოვიყენოთ MATLAB ისევე როგორც Arduino MKR1000 ჩვენი შესაძლებლობების მაქსიმალურად. ჩვენი მიზანი იყო შევქმნათ სკრიპტი, რომელიც არდუინოს გარკვეულ მახასიათებლებს საშუალებას მისცემდა შეასრულოს გარკვეული გამომუშავება კონკრეტული შეყვანის საფუძველზე. ჩვენ გამოვიყენეთ ბევრი
ბრაუზერით კონტროლირებადი Roomba Robot Raspberry Pi Model 3 A+: 6 ნაბიჯი (სურათებით)

ბრაუზერის კონტროლირებადი Roomba Robot Raspberry Pi Model 3 A+: მიმოხილვა ეს ინსტრუქცია ყურადღებას გაამახვილებს იმაზე, თუ როგორ უნდა მივცეთ გარდაცვლილ Roomba– ს ახალი ტვინი (ჟოლო Pi), თვალები (ვებკამერა) და ვებ – ბრაუზერისგან ყველაფრის კონტროლის საშუალება. არსებობს Roomba– ს მრავალი გატეხვა, რომელიც საშუალებას იძლევა გააკონტროლოს სერიული ინტერფეისი. Მე არ მაქვს
Roomba MATLAB პროექტი: 5 ნაბიჯი

Roomba MATLAB პროექტი: ახლანდელი გეგმა, რომელიც NASA- ს აქვს მარსზე, არის მონაცემების შემგროვებელი და ტრიალებს მარსზე, აგროვებს ნიადაგის ნიმუშებს დედამიწაზე დასაბრუნებლად, რათა მეცნიერებმა დაინახონ არსებობდა თუ არა სიცოცხლის წინა ფორმები პლანეტა. დამატებითი
Roomba ერთად MATLAB: 4 ნაბიჯი (სურათებით)

Roomba With MATLAB: ეს პროექტი იყენებს MATLAB- ს და iRobot Create2 პროგრამირებადი რობოტს. MATLAB- ის ცოდნის გამოცდაში ჩვენ შეგვიძლია დავპროგრამოთ Creat2 სურათების ინტერპრეტაციისა და სიგნალების გამოვლენის მიზნით. რობოტის ფუნქციონირება ძირითადად დამოკიდებულია