Sisukord:
- Samm: materjalid ja tarvikud:
- 2. samm:
- Samm: aia kokkupanek
- Samm: koodi kirjutamine
- Samm: kopeerige kood
Video: Aiaabiline Roomba Bot: 8 sammu
2024 Autor: John Day | [email protected]. Viimati modifitseeritud: 2024-01-30 08:49
Kiara Myers, Ahmad Alghadeer ja Madison Tippet
Eesmärk:
See juhend õpetab teile, kuidas programmeerida Roomba Bot MATLAB-i abil aias navigeerimiseks, tuvastades ringikujulised puuviljad/köögiviljad, mis on piisavalt küpsed, et neid nende suuruse järgi korjata. See robot saadab teile ka meili, hoiatades teid, kui palju puuvilju on valmis korjama ja millisel teel see kulges.
Funktsioonid:
- Kasutab valgusandureid seinte tuvastamiseks ja kergeks pööramiseks, et vältida nende löömist
- Kasutab põrkumisandureid, et katkestada programm, kui see tabab aia otsas asuvat kivi
- Kasutab pilditöötlust, et tuvastada ring aias ja seejärel määrata selle raadius
- Kasutab kaljuandureid, et tuvastada värviline lint, mis näitab vilja olemasolu
Samm: materjalid ja tarvikud:
- Üks sülearvuti
- MATLAB 2017
- Roomba tolmuimeja
- Vaarika Pi
- Puitklotsid
- Valge paber
- Must paber
- Värviline lint/õhuke riba värvilisest paberist
- Suur kivi
2. samm:
Samm: aia kokkupanek
- Võtke must paber ja lõigake erineva suurusega ringid
-
Kleepige need mustad ringid suurele valgele paberile
See kontrast on vajalik puuviljade avastamisel
-
Kasutage oma puitplokke, et ehitada oma robotile navigeerimiseks labürindisarnane aiatee
Valisime U-kujulise tee, nagu ülaltoodud pildil
- Lisage oma aia lõppu kivi, uks või mõni muu ese, et robot saaks teada, et see on tehtud
-
Kleepige oma valge paber ringiga aia seintele
Teipimiseks kasutasime ämbreid, kuna meie seinad olid kaamera jaoks liiga lühikesed
- Pange värviline lint/õhuke värvilise paberi riba vilja ette maapinnale
Samm: koodi kirjutamine
Aias navigeerimine
Pumpamissensorite kasutamine: programmi käivitamiseks paigutame kodeeringu mõnda aega lause, mis vaatab läbi erinevaid if -avaldusi, kuni kood on katki. Kui mõni põrkeraud tabatakse, on nende väärtus võrdne tõesega (mis on Booleanis väärtus 1). Kui lauset kasutatakse koodi murdmiseks, kui üks nende väärtustest on 1.
Cliff Sensorite kasutamine: avalduse while ajal kasutame lause if, et öelda Roombale, kui see on jõudnud tehase asukohta. Roomba tuvastab põrandal oleva värvilindi, uurides punase läve, mille kaljuandurid üles võtavad. Kui vasaku või parema kaljuandur tuvastab värvi, mille lävi on suurem kui maapinnal, peatab see roboti 2 sekundiks (kasutades pausi käsku). Nende kahe sekundi jooksul võtab Roomba ette ja kuvab puuvilja pildi. Kasutades sisseehitatud käsklusi, määrake ringide raadiuste vahemik ja teie Roomba leiab teie niinimetatud vilja.
Pilditöötluse kasutamine: kui kasutame lauset if, sisestame teise if -lause, mis ütleb: kui tuvastatud raadius, raadius3, on suurem või võrdne meie küpsete puuviljade miinimumnõudega r1 (teie otsustate selle), siis loendage ja kuvage Roomba, kui palju puuvilju on valmis ja pöörduge aias jätkamiseks. Kui ei, siis pööre jätkata läbi aia. Märkus. Võimalik, et peate muutma pöördenurka, kuna iga Roomba on erinev
Kergete kaitseraudade kasutamine: teises juhul, kui väide, analüüsitakse kergeid kaitseraudasid, et olla kindel, et ükski neist ei ületa meie määratud läve. Kui vasak-, parem-, vasakpoolne keskosa, parempoolne kesk, vasakpoolne eesmine või parempoolne esitulede kaitseraud lähevad üle künnise, pöördub Roomba seina sobiva nurga all veidi sobivas nurgas. Seega labürindis navigeerimine.
Ülejäänud koodi kasutatakse Roomba valitud tee joonistamiseks ja tulemuste saatmiseks teie e -posti aadressile
Samm: kopeerige kood
Eesmärk: Roomba läbib nende suuruse põhjal aia ja eristab korjamiseks valmis köögivilju/puuvilju. % Sisendid: Lightbump andurid, Cliff andurid, Bump andurid, pilt kaamerast % Väljundid: Kui valgusandurid on üle läve, pöörab roomba ja teeb pildi, piiksub, kui % köögivilja/puuvilja raadius jääb teatud vahemikku. Kood puruneb, kui roomba põrkub % objekti, saadab astronaudile e -kirja selle kohta, kui palju puuvilju on valmis ära võtma ja roomba liikumise kaardistamiseks. % Kasutamine: Kui ja avalduste ajal, käskude joonistamine, e -posti kood MATLABist
k = 0
tic
timerVal = tic
kuigi tõsi
v = 0,2; % velocity r.setDriveVelocity (v, v);% roomba edasi L = r.getLightBumpers; LC = L. vasakpoolne keskus; Rr = L.õigus; Lf = L.vasak; RC = L. paremkeskus; LF = L. vasakpoolne; RF = L. paremal ees; Q = 75; % lävi. RTH = 30; %Kõrge punane lävi RTL = 10; %Madal punane lävi B = r.getBumpers S = r.getCliffSensors; rl = 24; r3 = 10; PL1 = 1800; kui S.leftFront> PL1 || S.rightFront> PL1 % tuvastab, kas maapinna värv ületab läve r.stop paus (2) möödunudTime = toc (timerVal-2) tic timerVal = tic % paus 2 sekundiks img = r.getImage; %pildista imshow (img)%kuva pilt [keskused3, raadius3] = imfindcircles (img, [30 50], 'ObjectPolarity', 'dark', 'Sensitivity', 0,9); h = viscircles (keskused3, raadius3); %otsige raadiust ringidega, mille raadius on määratud vahemikus, kui raadius3> = r1 T = 1 k = k+1 dist1 = 0,2.*kulunudTime %Kui tuvastatud raadius on suurem või võrdne küpse vilja minimaalse %-nõudega, siis arvestab Roomba selle vilja muud raadiused3 <= r3 T = 0 muud T = 0 dist2 = 0,2.*kulunud aeg %Kui ei, siis see ei loe vilja lõppu
kui T == 1 r.setLEDDigits (num2str (k)) r.beep r.beep r.beep r.turnAngle (78) %Kui avastati puu, näidake numbrit Roombal, %teeb müra ja pöörab elseif T == 2 r.turnAngle (78) %Kui tuvastatakse 2 vilja, siis pöörake, et jätkata läbi %aia muust r.turnAngle (78) %Kui vilju ei tuvastata, keerake, et jätkata läbi %aiaotsa kui 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 %Kui mõni kaitseraudade väärtus ületab läve, siis %Roomba keerab veidi sobivas suunas, et vältida %seinale löömist
kui B.õigus == 1 || B.vasak == 1 || B. front == 1 dist3 = 0.2.*Kulunud aeg r.stop r.beep ('F#*2, F#*2, c, F#*2, F#*2') r.turnAngle (360) %Kui mõni pommitajad saavad pihta, siis roomba mängib heli, keerutab ringi, %ja rikub koodi
murda lõpp
lõpp-hajumine (0,533, 0, '^') hoidke hajumist (0,533, dist1, '<') hoidke laiali (-dist2, dist1, 'v') hoidke hajumist (-dist2, 0, 'd') saveas (gcf, "Movement.png")
kmsg = num2str (k) mail = '[email protected]' parool = 'Srsora123#' host = 'smtp.gmail.com' port = '465'
setpref ('Internet', 'E_mail', post); setpref ('Internet', 'SMTP_Server', host) props = java.lang. System.getProperties; props.setProperty ('mail.smtp.user', post); props.setProperty ('mail.smtp.host', host); props.setProperty ('mail.smtp.port', 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', port); props.setProperty ('mail.smtp.socketFactory.class', 'javax.net.ssl. SSLSocketFactory'); props.setProperty ('mail.smtp.socketFactory.fallback', 'false'); sendmail (mail, 'Tere astronaut! Aias on nii palju vilju', kmsg, {'motion.png'})
Soovitan:
Roomba muutmine Mars Roveriks: 5 sammu
Oma Roomba muutmine Mars Roveriks:
Roomba Bot the Bulider: 5 sammu (koos piltidega)
Roomba Bot the Bulider: Bot the Builder on roomba, mis koos " grabbers " esiosa külge kinnitatud saab objekte ringi liigutada. Sellega kood on seatud salvestama esimest liikumist graafilise kasutajaliidese kastiga, mida saate juhtida vaid hiireklõpsuga. Pärast
MATLABi juhitav Roomba: 5 sammu
MATLAB -i juhitav Roomba: Selle projekti eesmärk on kasutada MATLAB -i ja modifitseeritud programmeeritavat iRoboti robotit. Meie rühm ühendas meie kodeerimisoskused, et luua MATLAB -skript, mis kasutab paljusid iRoboti funktsioone, sealhulgas kaljuandureid, kaitseraua sensorit
Mars Roomba projekt UTK: 4 sammu
Mars Roomba Project UTK: LAHTIÜTLUS: See toimib ainult siis, kui ROOMBA seadistatakse väga konkreetsel viisil, see juhend loodi ja kavatseti kasutada TENNESSEE ÜLIKOOLI JA FACULTY poolt kirjutatud ja s
Roomba parkimine Pal: 6 sammu
Roomba Parking Pal: See projekt kasutab iRobot Create programmeeritavat roomba, MATLAB r2018a ja MATLAB mobile. Kasutades neid kolme meediumit ja oma teadmisi kodeerimisest, programmeerisime iRobot Createi värvide tõlgendamiseks ja ülesannete täitmiseks rongisiseseid andureid. See