Სარჩევი:
- ნაბიჯი 1: მასალები და მასალები:
- ნაბიჯი 2:
- ნაბიჯი 3: შეიკრიბეთ თქვენი "ბაღი"
- ნაბიჯი 4: კოდის წერა
- ნაბიჯი 5: დააკოპირეთ კოდი
ვიდეო: ბაღის დამხმარე რუმება ბოტი: 8 ნაბიჯი
2024 ავტორი: John Day | [email protected]. ბოლოს შეცვლილი: 2024-01-30 10:20
კიარა მაირსი, აჰმად ალღადირი და მედისონ ტიპეტი
მიზანი:
ეს ინსტრუქცია გასწავლით თუ როგორ უნდა დააპროგრამოთ Roomba Bot, MATLAB– ის გამოყენებით, ბაღში ნავიგაციისთვის, გამოავლინოთ წრიული ფორმის ხილი/ბოსტნეული, რომელიც საკმარისად მწიფეა მათი ზომის მიხედვით დასაკრეფად. ეს რობოტი ასევე გამოგიგზავნით ელ.წერილს, რომელიც გვაფრთხილებს რამდენი ხილის ასაღებად არის მზად და რა გზაზე გაიარა.
Მახასიათებლები:
- იყენებს სინათლის სენსორებს კედლების აღმოსაჩენად და ოდნავ შემობრუნებისთვის, რათა არ მოხდეს მათი დარტყმა
- იყენებს დარტყმის სენსორებს, რათა დაარღვიოს პროგრამა ბაღის ბოლოს კლდეში მოხვედრისას
- იყენებს სურათის დამუშავებას ბაღში წრის აღმოსაჩენად და შემდგომ მისი რადიუსის დასადგენად
- იყენებს კლდის სენსორებს ფერადი ლენტის გამოსავლენად, რომელიც მიუთითებს ხილის არსებობაზე
ნაბიჯი 1: მასალები და მასალები:
- ერთი ლეპტოპი
- MATLAB 2017
- რუმბას მტვერსასრუტი
- ჟოლო პი
- Ხის ბლოკები
- Თეთრი ქაღალდი
- შავი ქაღალდი
- ფერადი ლენტი/ფერადი ქაღალდის თხელი ზოლები
- დიდი როკი
ნაბიჯი 2:
ნაბიჯი 3: შეიკრიბეთ თქვენი "ბაღი"
- აიღეთ შავი ქაღალდი და გაჭერით სხვადასხვა ზომის წრეები
-
მიამაგრეთ ეს შავი წრეები დიდ თეთრ ქაღალდზე
ეს კონტრასტი აუცილებელი იქნება ხილის გამოვლენისას
-
გამოიყენეთ თქვენი ხის ბლოკები, რომ შექმნათ ლაბირინთის მსგავსი ბაღის ბილიკი თქვენი რობოტის ნავიგაციისთვის
ჩვენ ავირჩიეთ U- ფორმის ბილიკი, როგორც ზემოთ მოცემულია სურათზე
- თქვენი ბაღის ბოლოს დაამატეთ კლდე ან კარი ან სხვა ობიექტი თქვენს რობოტს, რომ იცოდეს, რომ ეს კეთდება
-
მიამაგრეთ თქვენი თეთრი ქაღალდი წრეზე ბაღის კედლებზე
ჩვენ ვიყენებდით თაიგულების ჩასაბარებლად, რადგან ჩვენი კედლები ძალიან მოკლე იყო კამერისთვის
- მიამაგრეთ ფერადი ლენტი/ფერადი ქაღალდის თხელი ზოლი მიწაზე ნაყოფის წინ
ნაბიჯი 4: კოდის წერა
ნავიგაცია ბაღში
Bump სენსორების გამოყენება: პროგრამის გასაშვებად, ჩვენ ვათავსებთ კოდირებას განცხადებაში, რომელიც გადადის სხვადასხვა if განცხადებებში, სანამ კოდი არ გატეხილია. თუ რომელიმე ბამპერს მოხვდა, ეს გამოიწვევს მათ მნიშვნელობას ჭეშმარიტთან (რაც ლოგინში არის მნიშვნელობა 1). If განაცხადი გამოიყენება კოდის შესამცირებლად, როდესაც მათი ერთი მნიშვნელობა უდრის 1 -ს.
Cliff სენსორების გამოყენება: while the statement- ში ჩვენ ვიყენებთ if დებულებას, რომ ვუთხრათ Roomba- ს, როდესაც ის მცენარის ადგილას მივიდა. Roomba ცნობს ფერად ლენტს იატაკზე წითელი ბარიერის შესწავლით, რომელსაც კლდის სენსორები იკავებენ. თუ მარცხენა ან მარჯვენა კლდის სენსორი ამოიცნობს ფერს უფრო დიდი ბარიერით ვიდრე მიწა, მაშინ ის გააჩერებს რობოტს 2 წამით (პაუზის ბრძანების გამოყენებით). ამ 2 წამის განმავლობაში, Roomba მიიღებს და აჩვენებს ნაყოფის გამოსახულებას. ბრძანებით აგებული imfindcircles გამოყენებით, დააყენეთ დიაპაზონი თქვენი წრეების რადიუსებისთვის და თქვენი Roomba იპოვის თქვენს ე.წ.
გამოსახულების დამუშავების გამოყენება: if განცხადებაში ჩვენ ჩავრთავთ სხვა if განცხადებას, რომელიც ამბობს: თუ რადიუსი გამოვლენილია, radii3 აღემატება ან უდრის მწიფე ხილის მინიმალურ მოთხოვნას, r1 (თქვენ გადაწყვიტეთ ეს), შემდეგ დაითვალეთ და აჩვენეთ Roomba რამდენი ხილი მზად არის და მოუხვიეთ და გააგრძელეთ ბაღში. თუ არა, რიგი გააგრძელეთ ბაღში. შენიშვნა: შეიძლება დაგჭირდეთ კუთხის მორგება, რადგან ყველა Roomba განსხვავებულია
სინათლის ბამპერების გამოყენება: მეორე if განცხადებაში, სინათლის ბამპერები გაანალიზებულია, რომ დარწმუნებული იყოს, რომ არცერთი მათგანი არ აღემატება ჩვენს განსაზღვრულ ბარიერს. თუ მარცხენა, მარჯვენა, მარცხენა ცენტრი, მარჯვენა ცენტრი, მარცხენა წინა, ან წინა წინა შუქის ბამპერი ზღურბლზე მაღლა მიდის, მაშინ Roomba ოდნავ მოტრიალდება შესაბამისი კუთხით, რათა თავიდან აიცილოს კედელზე დარტყმა. აქედან გამომდინარე, ლაბირინთში ნავიგაცია.
დანარჩენი კოდი გამოიყენება Roomba– ს მიერ განვლილი გზის დასადგენად და შემდეგ შედეგების გაგზავნა თქვენს ელ.ფოსტაზე
ნაბიჯი 5: დააკოპირეთ კოდი
მიზანი: მათი ზომებიდან გამომდინარე, roomba გაივლის ბაღს და განასხვავებს ბოსტნეულს/ხილს, რომელიც მზად არის ასაღებად. შეყვანა: Lightbump სენსორები, Cliff სენსორები, Bump სენსორები, გამოსახულება კამერიდან შედეგები: როდესაც სინათლის სენსორები ზღურბლზე მეტია, roomba გადატრიალდება და იღებს სურათს, იძახებს თუ ბოსტნეულის/ხილის რადიუსი კონკრეტულ დიაპაზონს შორისაა. კოდი იშლება, როდესაც roomba ეჯახება ობიექტს, აგზავნის ასტრონავტს ელ.წერილს, თუ რამდენი ხილი მზად არის ასაღებად და ოთახის მოძრაობის რუქაზე. გამოყენება: თუ და სანამ განცხადებები, შეთქმულების ბრძანებები, ელ.ფოსტის კოდი MATLAB– დან
k = 0
ტიკ
timerVal = ტიკ
მართალია
v =.2; % სიჩქარე r.setDriveVelocity (v, v);% roomba წავიდეთ წინ L = r.getLightBumpers; LC = L.leftCenter; Rr = L. მარჯვენა; Lf = L. მარცხენა; RC = L.rightCenter; LF = L. მარცხენა წინა; RF = L. მარჯვენა წინა; Q = 75; % ბარიერი. RTH = 30; %მაღალი წითელი ბარიერი RTL = 10; %დაბალი წითელი ბარიერი B = r.getBumpers S = r.getCliffSensors; r1 = 24; r3 = 10; PL1 = 1800; თუ S.leftFront> PL1 || S.rightFront> PL1 % ამოიცნობს თუ არა ფერი ადგილზე ბარიერის ზემოთ r. შეჩერება პაუზა (2) elapsedTime = toc (timerVal-2) tic timerVal = tic % პაუზა 2 წამი img = r.getImage; %სურათის გადაღება imshow (img)%გამოსახულების ჩვენება [cent3, radii3] = imfindcircles (img, [30 50], 'ObjectPolarity', 'dark', 'Sensitivity', 0.9); h = ბორბლები (ცენტრები 3, რადიუსი 3); %ეძებს რადიუსების წრეებს/გამოსახულების განსაზღვრულ დიაპაზონში, თუ radii3> = r1 T = 1 k = k+1 dist1 = 0.2.*გასული დრო %თუ აღმოჩენილი რადიუსი აღემატება ან ტოლია მწიფე ხილის მინიმალურ %მოთხოვნას, მაშინ Roomba ითვლის ამ ხილს
თუ T == 1 r.setLEDDigits (num2str (k)) r.beep r.beep r.beep r.turnAngle (78) %თუ ნაყოფი გამოვლინდა, მაშინ აჩვენე ნომერი Roomba- ზე, %ხმაური და ჩართე elseif T == 2 r.turnAngle (78) %თუ გამოვლენილია 2 ხილი, შემდეგ გადაუხვიეთ, რათა გააგრძელოთ %ბაღში სხვა r.turnAngle (78) %თუ ხილი არ არის გამოვლენილი, შემდეგ გადაუხვიეთ %ბაღის ბოლომდე გასაგრძელებლად თუ LC> Q r.stop r.turnAngle (-7) elseif RC> Q r.stop r.turnAngle (7) elseif LF> Q r.stop r.turnAngle (-7) elseif RF> Q r.stop r turnAngle (7) elseif Lf> Q r.stop r.turnAngle (-7) elseif Rr> Q r.stop r.turnAngle (7) end %თუ სინათლის ბამპერების რომელიმე მნიშვნელობა გადადის ბარიერის ზემოთ, მაშინ %Roomba ოდნავ მოტრიალდება შესაბამისი მიმართულებით, რათა თავიდან იქნას აცილებული კედელზე დარტყმა
თუ B.right == 1 || B. მარცხენა == 1 || B.front == 1 dist3 = 0.2.*ElapsedTime r.stop r.beep ('F#*2, F#*2, c, F#*2, F#*2') r.turnAngle (360) %თუ რომელიმე ბუმბულები მოხვდა, შემდეგ roomba უკრავს ხმას, ტრიალებს გარშემო, %და არღვევს კოდს
შესვენების დასასრული
ბოლოს გაფანტვა (0.533, 0, '^') გამართვა გაფანტვაზე (0.533, dist1, '<') გამართვა გაფანტვაზე (-dist2, dist1, 'v') გამართვა scatter (-dist2, 0, 'd') შემნახველი (gcf, 'Movement.png')
kmsg = num2str (k) mail = '[email protected]' პაროლი = 'Srsora123#' host = 'smtp.gmail.com' პორტი = '465'
setpref ('ინტერნეტი', 'E_mail', ფოსტა); setpref ("ინტერნეტი", "SMTP_Server", მასპინძელი) 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 (ფოსტა, 'გამარჯობა ასტრონავტ! ბაღში არის ამდენი ხილი', kmsg, {'Movement.png'})
გირჩევთ:
მანათობელი თერმომეტრი - ვიტამინიზირებული ბაღის შუქი (eNANO De Jardin): 6 ნაბიჯი
მანათობელი თერმომეტრი - ვიტამინირებული ბაღის შუქი (eNANO De Jardin): ვიტამინიზირებული ბაღის შუქი არდუინო ნანოთი და ტემპერატურის სენსორით BMP180. ჩვენს თავმდაბალ ბაღის შუქს ექნება საიდუმლო ძალა: ის შეძლებს გარე ტემპერატურის მითითებას ფერადი კოდის საშუალებით და მოციმციმე. მისი ოპერაცია ასეთია: ეს მე
ESP8266 - ბაღის მორწყვა ტაიმერით და დისტანციური მართვით ინტერნეტით / ESP8266: 7 ნაბიჯი (სურათებით)
ESP8266 - ბაღის მორწყვა ქრონომეტრითა და დისტანციური მართვის საშუალებით ინტერნეტით / ESP8266: ESP8266 - სარწყავი დისტანციური მართვით და დროით ბოსტნეულის ბაღებისთვის, ყვავილების ბაღებისთვის და გაზონებისთვის. იგი იყენებს ESP-8266 სქემას და ჰიდრავლიკურ / ელექტრო სარქველს სარწყავი საკვებისათვის. უპირატესობები: დაბალი ღირებულება (, 30,00 აშშ დოლარი) სწრაფი წვდომის ბრძანებები ov
მზის ბაღის სინათლის ველოსიპედით RBG– მდე: 7 ნაბიჯი (სურათებით)
მზის ველის ველოსიპედით RBG– ზე: Youtube– ზე არის ბევრი ვიდეო მზის ბაღის განათების შეკეთების შესახებ; მზის ბაღის შუქის ბატარეის ხანგრძლივობის გახანგრძლივება, ასე რომ ისინი უფრო დიდხანს მუშაობენ ღამით და მრავალი სხვა ჰაკერი. ეს ინსტრუქცია ოდნავ განსხვავდება იმათგან, რასაც თქვენ ნახავთ Y
ბაღის მონიტორი: 3 ნაბიჯი
ბაღის მონიტორი: ეს არის ჩემი ბაღის მონიტორების უახლესი და სრული ვერსია, მე გავაკეთე წინა ვერსიები სხვადასხვა გამოყენებისათვის, მაგალითად ერთი LCD– ით და მეორე ESP8266– ით. თუმცა, მე ეს ვერსია უკეთ მაქვს დოკუმენტირებული, ამიტომ გადავწყვიტე მისი ატვირთვა. როდესაც გ
საბოლოო ელექტრონიკის დამხმარე -- ცვალებადი სადგამი PSU დამხმარე ხელებით: 12 ნაბიჯი (სურათებით)
საბოლოო ელექტრონიკის დამხმარე || ცვალებადი სადგამი PSU დამხმარე ხელებით: ელექტრონიკასთან მუშაობისას თითქმის ყოველთვის საჭიროა ორი ინსტრუმენტი. დღეს ჩვენ შევქმნით ამ ორ აუცილებელს. ჩვენ ასევე გადავდგამთ ამას კიდევ ერთი ნაბიჯით წინ და გავაერთიანებთ ამ ორს ერთადერთ ელექტრონიკის საბოლოო დამხმარედ! მე რა თქმა უნდა ვსაუბრობ