Სარჩევი:
- ნაბიჯი 1: საჭირო ნაწილები
- ნაბიჯი 2: ფაილები და კამერის კონფიგურაცია
- ნაბიჯი 3: საწყისი ოთახის ტესტირება
- ნაბიჯი 4: მაგალითი MATLAB კოდი
ვიდეო: ასტრონავტების დამხმარე რუმბა: 4 ნაბიჯი
2024 ავტორი: John Day | [email protected]. ბოლოს შეცვლილი: 2024-01-30 10:19
ეს პროექტი დამზადებულია Raspberry Pi 3 -ის გამოყენებით iRobot ვერსიის შექმნისას 2. MATLAB გამოიყენება რობოტის დასაპროგრამებლად, რათა დაიცვას კონკრეტული მითითებები მისი სენსორებისა და კამერის გამოყენებით. სენსორები და კამერები გამოიყენება კონკრეტული ამოცანების შესასრულებლად, რომლებიც ასტრონავტს მოჰყვება და მისცემს მას შესაძლებლობას, დაუკავშირდეს საკუთარ ბაზას, თუ რამე არასწორედ წავა.
ნაბიჯი 1: საჭირო ნაწილები
1. iRobot შექმნა ვერსია 2
IRobot Create არის ამ პროექტის ყველაზე მნიშვნელოვანი ნაწილი, ვინაიდან ის არის პროგრამირებადი და შეიძლება იყოს შესანიშნავი წარმომადგენელი ნამდვილი როვერისთვის, რომელიც მიჰყვება ასტრონავტებს და ეხმარება მათ მომავალში
2. ჟოლო პი 3
Raspberry Pi იყო პროგრამირებადი, რომელიც გამოიყენებოდა ამ პროექტისათვის. კოდი განკუთვნილია Pi- სთვის და Pi- ის თანდართული ვერსია არის 3 (მოდელი B). სხვა პროგრამირებადი დაფები, როგორიცაა არდუინო, გამოსაყენებელია, თუმცა, არდუინოსა და სხვა დაფების უმეტესობას დასჭირდება განსხვავებული კოდირება, ვიდრე აღწერილია სხვა საფეხურზე
3. ჟოლო Pi კამერის მოდული
ერთადერთი ექსტრაორდინალური კავშირი Raspberry Pi– სთან, რომელიც საჭიროა ამ პროექტისათვის არის კამერის მოდული. კამერის მოდული არის ამ პროექტის განუყოფელი ნაწილი, ვინაიდან roomba შეასრულებს დავალებებს მხოლოდ იმის საფუძველზე, რასაც ხედავს კამერაში
4. MATLAB 2018 ა
MATLAB– ის მეორე უახლესი ვერსია, 2018a, გამოიყენებოდა ამ კონფიგურაციაში ჩართული კოდირებისათვის. სავარაუდოა, რომ MATLAB– ის მრავალი სხვა ვერსია იმუშავებს ამით, რადგან roomba პროგრამირება უკვე დიდი ხანია რაც არსებობს
ნაბიჯი 2: ფაილები და კამერის კონფიგურაცია
1. ჟოლოს Pi და კამერის კავშირი ოთახთან
- Pi– ს შეუძლია iRobot– თან დაკავშირება პირდაპირ მიკრო USB– ით. ეს არის ყველაფერი რაც ის მზად უნდა იყოს გამოსაყენებლად. თუმცა, მიზანშეწონილია, რომ ის უსაფრთხოდ იყოს განთავსებული ოთახის ოთახში, როგორც ეს ნაჩვენებია სურათებში აქამდე წარმოდგენილი პრეზენტაციის განმავლობაში.
- კამერას აქვს პირდაპირი კავშირი Raspberry Pi– სთან და რეკომენდირებულია, რომ რაღაც იყიდოს ან გააკეთოს იმისათვის, რომ კამერა პირდაპირ მაღლა დაიჭიროს. კამერას არანაირი აზრი არ აქვს, თუკი ის არ შეიძლება დაიჭიროს იმის საჩვენებლად, თუ რას ხედავს ოთახის ოთახი.
2. ფაილები
- ყველაფრის დაყენებისა და დაკავშირების შემდეგ, დარწმუნდით, რომ რობოტი გადატვირთულია და მზად არის წასასვლელად, 10 წამის ერთად დაჭერით "Spot" და "Dock" ღილაკები.
- სწორედ აქ არის საჭირო MATLAB. Roomba– ს ფაილები ჯერ უნდა იყოს დაინსტალირებული და ამ ფაილების გასაშვებად საჭიროა მხოლოდ ამ ბმულზე მოცემული კოდი:
- https://ef.engr.utk.edu/ef230-2017-08//projects/ro…
ნაბიჯი 3: საწყისი ოთახის ტესტირება
რამოდენიმე პირველადი შემოწმებაა ჩასატარებელი რუმბაზე იმისათვის რომ დავრწმუნდეთ რომ მუშაობს.
1. დარწმუნდით, რომ დაკავშირებული ხართ იმავე WiFi ქსელთან, როგორც roomba. ამის გარეშე, თქვენ არასოდეს დაუკავშირდებით MATLAB– ის საშუალებით.
2. გაარკვიეთ რა ნომერზეა დანიშნული თქვენი roomba, ასე რომ თქვენ შეგიძლიათ კონკრეტულად დაუკავშიროთ თქვენს მიერ არჩეულ roombaba- ს. მაგალითად, თუ თქვენი ოთახის ნომერი არის 30, თქვენ დაუკავშირდებით მას ოთახის (30) აკრეფით ბრძანების ფანჯარაში MATLAB.
3. ოთახის კონტროლი შესაძლებელია MATLAB- ის სტრუქტურების საშუალებით. მაგალითად, თუ თქვენ დააყენებთ თქვენს კოდს roomba (30) ცვლადზე 'r', რობოტი შეიძლება წინ წაიწიოს r.moveDistance ბრძანებით (0.2, 0.1).
4. არსებობს მრავალი განსხვავებული ბრძანება, რომელთა გადაცემა შესაძლებელია ოთახის ოთახთან და მათი ნახვა შესაძლებელია ბრძანების ფანჯარაში „doc roomba“აკრეფით.
5. სინათლის, დარტყმის და კლდის კითხვის სენსორები შეიძლება წაიკითხოთ „doc roomba“- ში ნაჩვენები ბრძანებების გამოყენებით, მაგრამ სენსორის მონაცემების სანახავად მუდმივი, სისუფთავე მენიუ შეგიძლიათ იხილოთ „r.testSensors“- ის გამოყენებით. '.
6. ამ ყველაფრის შემოწმების შემდეგ, რობოტის გამოსახულების შეგროვების პროგრამული უზრუნველყოფა შეიძლება გამოყენებულ იქნას გადაღებული სურათების წასაკითხად და სანახავად. ამის ძირითადი კოდი იქნება img = r.getImage და imshow (img); რა
7. სურათის RGB მნიშვნელობები გვხვდება კოდებით red_mean = საშუალო (საშუალო (საშუალო (img (:,,, 1))));
green_mean = საშუალო (საშუალო (img (:,,, 2))); და blue_mean = საშუალო (საშუალო (img (:,,, 3))); რა
ნაბიჯი 4: მაგალითი MATLAB კოდი
ამ მომენტში, თქვენ მზად ხართ გამოიყენოთ სენსორები და გამოსახულების აღების პროგრამული უზრუნველყოფა, რათა შექმნათ თქვენი საკუთარი ტრიალი ადამიანის დამხმარე პროტოტიპ მარს როვერზე. ჩვენი მაგალითია მივყვეთ ასტრონავტს თეთრი ფერის თვალყურის დევნებით და მისკენ მოძრაობით. რობოტი იძახის, თუ მისი სენსორები კითხულობენ მაღალ მნიშვნელობებს ისე, რომ ასტრონავტმა შეძლოს რობოტის გადატვირთვა, თუ ის ჩარჩენილია, ან წადით, აიღეთ და გადატვირთეთ, თუ იგი კლდეზეა ჩარჩენილი. თუმცა, ის მხოლოდ კითხულობს ამ შეცდომებს, სანამ თეთრს ხედავს. თეთრი ფერის დანახვის გარეშე, რობოტი შევა შეცდომის რეჟიმში. დაპროგრამებულია ორი განსხვავებული სახის ელ.ფოსტის გაგზავნა სახლის ბაზაზე იმისდა მიხედვით, თუ რას ხედავს იგი. თუ ის ხედავს ასტრონავტის კანის ფერს, ეს აშკარად არ არის კარგი, ამიტომ ის გააფრთხილებს სახლის ბაზას, თუ ასტრონავტს აქვს კანი კოსტიუმის გაუმართაობით. სხვა შეტყობინება მზადდება, თუ ასტრონავტი უბრალოდ გაქრება მხედველობიდან. თუ კამერებისათვის არ ჩანს თეთრი ან კანის ფერი, რობოტი დატრიალდება და გამოგზავნის სხვა, მაგრამ განსხვავებულ ელ.წერილს. სურათები, სადაც ოთახები ვერ ხედავენ ასტრონავტს, გაიგზავნება წერილებთან ერთად. ჩვენი პროექტის კოდი ნაჩვენებია ქვემოთ:
for i = 1:.1: 3 img = r.getImage; სურათი (img) red_mean = საშუალო (საშუალო (img (:,:, 1))); green_mean = საშუალო (საშუალო (img (:,,, 2))); blue_mean = საშუალო (საშუალო (img (:,,, 3))); თუ red_mean> 110 && red_mean 110 && blue_mean 110 && green_mean0 || bump.left> 0 || bump.front> 0 r.beep () r.beep () r.beep () r.stop elseif cliff.left <10 || cliff.left წინა <10 || cliff.right წინა <10 || cliff.right700 || მსუბუქი. მარცხენა წინა> 700 || light.leftCenter> 700 || light.rightCenter> 700 || მსუბუქი. მარჯვნივ წინა> 700 || light.right> 700 r.epep () r.beep () r.beep () r.beep () r.beep () r. შეაჩერე სხვა i = 1: 2 r.move დისტანცია (0.2, 0.1) r setDriveVelocity (.3,.2) r. შეაჩერე ბოლომდე დასრულება, თუ მწვანე_მნიშვნელობა <35 && blue_mean <35 %კანის ფერი გამოჩნდება (საჭიროა ასტრონავტის კანის ფერის მიხედვით მორგება) r.beep (); r. beep (); r. beep (); ფოსტა = '[email protected]'; %აგზავნის ელ.წერილს, რომ სარჩელი გამორთულია psswd = 'ჰო'; მასპინძელი = 'smtp.gmail.com'; პორტი = '465'; emailto = '[email protected]'; m_subject = 'საგანი'; m_text = 'ტესტი'; setpref ('ინტერნეტი', 'E_mail', ფოსტა); setpref ("ინტერნეტი", "SMTP_Server", მასპინძელი); setpref ("ინტერნეტი", "SMTP_Username", ფოსტა); setpref ("ინტერნეტი", "SMTP_Password", psswd); props = java.lang. System.getProperties; props.setProperty ('mail.smtp.user', ფოსტა); props.setProperty ('mail.smtp.host', მასპინძელი); props.setProperty ('mail.smtp.port', პორტი); props.setProperty ('mail.smtp.starttls.enable', 'true'); props.setProperty ('mail.smtp.debug', 'true'); props.setProperty ('mail.smtp.auth', 'true'); props.setProperty ('mail.smtp.socketFactory.port', პორტი); props.setProperty ('mail.smtp.socketFactory.class', 'javax.net.ssl. SSLSocketFactory'); props.setProperty ('mail.smtp.socketFactory.fallback', 'false'); sendmail (emailto, 'Help!', 'ასტრონავტების ფორმა გამორთულია!', img); დასრულდება, თუკი red_mean 135 || მწვანე_მნიშვნელობა 135 || blue_mean 135 j = 1: 2 %თუ თეთრი ვერ მოიძებნება რობოტის მიერ r.turnAngle (360) mail = '[email protected]'; psswd = 'კი'; მასპინძელი = 'smtp.gmail.com'; პორტი = '465'; emailto = '[email protected]'; m_subject = 'საგანი'; m_text = 'ტესტი'; setpref ('ინტერნეტი', 'E_mail', ფოსტა); setpref ("ინტერნეტი", "SMTP_Server", მასპინძელი); setpref ("ინტერნეტი", "SMTP_Username", ფოსტა); setpref ("ინტერნეტი", "SMTP_Password", psswd); props = java.lang. System.getProperties; props.setProperty ('mail.smtp.user', ფოსტა); props.setProperty ('mail.smtp.host', მასპინძელი); props.setProperty ('mail.smtp.port', პორტი); props.setProperty ('mail.smtp.starttls.enable', 'true'); props.setProperty ('mail.smtp.debug', 'true'); props.setProperty ('mail.smtp.auth', 'true'); props.setProperty ('mail.smtp.socketFactory.port', პორტი); props.setProperty ('mail.smtp.socketFactory.class', 'javax.net.ssl. SSLSocketFactory'); props.setProperty ('mail.smtp.socketFactory.fallback', 'false'); sendmail (emailto, 'Help!', 'ასტრონავტი ვერ მოიძებნა!', img); r.stop ბოლოს დასასრული დასასრული
ცხადია, აქ ბინძურია, მაგრამ კოპირებისთანავე ის უნდა გაფუჭდეს. ამისათვის პაროლები და წერილები უნდა მიეწოდოს მათ, ვინც აშკარად აკეთებს ამ პროექტს.
თუმცა, ჩვენი მაგალითი მხოლოდ ერთ -ერთია იმ მრავალი გზადან, რომლითაც ამ რობოტს არეულობთ, რათა ის ყველას მოერგოს. ბევრი სხვადასხვა რამ არის გასაკეთებელი, რაც შეგიძლია მოერგო საკუთარ თავს.
გირჩევთ:
წვრილმანი გარაჟის კარის გამხსნელი + სახლის დამხმარე ინტეგრაცია: 5 ნაბიჯი
წვრილმანი გარაჟის კარის გამხსნელი + სახლის დამხმარე ინტეგრაცია: გახადეთ თქვენი ნორმალური ავტოფარეხის კარი ჭკვიანური ამ წვრილმანი პროექტის გამოყენებით. მე გაჩვენებთ, თუ როგორ უნდა ავაშენოთ და გავაკონტროლოთ ის სახლის ასისტენტის გამოყენებით (MQTT– ით) და გექნებათ შესაძლებლობა ავტომატურად გააღოთ და დახუროთ თქვენი ავტოფარეხის კარი. მე ვიყენებ ESP8266 დაფას სახელწოდებით Wemos
მარტივი შედუღების /დამხმარე ხელების სადგური: 4 ნაბიჯი
მარტივი შედუღების /დამხმარე ხელების სადგური: აი გარიგება. თქვენ დაათვალიერეთ ვებ – გვერდი, რათა ისწავლოთ როგორ გააკეთოთ შედუღების /დამხმარე სადგურები. და თქვენ დაეშვით ამ საიტზე. საუკეთესო წვრილმანი მომხმარებლის მიერ გენერირებული საიტი პლანეტის ბრაუზერში. ახლა მე გირჩევთ კონკრეტულად მოძებნოთ ინსტრუქციის საიტზე შედუღების სამუშაოები
საბოლოო ელექტრონიკის დამხმარე -- ცვალებადი სადგამი PSU დამხმარე ხელებით: 12 ნაბიჯი (სურათებით)
საბოლოო ელექტრონიკის დამხმარე || ცვალებადი სადგამი PSU დამხმარე ხელებით: ელექტრონიკასთან მუშაობისას თითქმის ყოველთვის საჭიროა ორი ინსტრუმენტი. დღეს ჩვენ შევქმნით ამ ორ აუცილებელს. ჩვენ ასევე გადავდგამთ ამას კიდევ ერთი ნაბიჯით წინ და გავაერთიანებთ ამ ორს ერთადერთ ელექტრონიკის საბოლოო დამხმარედ! მე რა თქმა უნდა ვსაუბრობ
მარს რუმბა: 6 ნაბიჯი
Mars Roomba: ეს ინსტრუქცია გაგიძღვებათ Raspberry Pi კონტროლირებადი Roomba ვაკუუმური ბოტის მუშაობის მიმართულებით. ოპერაციული სისტემა, რომელსაც ჩვენ ვიყენებთ, არის MATLAB
ინსპექტორი რუმბა: 6 ნაბიჯი (სურათებით)
ინსპექტორი რუმბა: უმეტესობა ჩვენგანი იყენებს iRobot Roomba რობოტებს მხოლოდ მტვერსასრუტისთვის, მაგრამ ცოტამ თუ იცის, რომ ეს არის დიდი ბაზა ახალი რობოტული პროექტებისთვის. ყველა შემქმნელმა უნდა სცადოს Roomba Open Interface (OI), რათა გაარკვიოს რამდენად ადვილია ამ რობოტის გაკონტროლება. ამ ინსტრუქციაში თქვენ