Përmbajtje:

Roomba Parking Pal: 6 hapa
Roomba Parking Pal: 6 hapa

Video: Roomba Parking Pal: 6 hapa

Video: Roomba Parking Pal: 6 hapa
Video: Диана как принцесса собирается на бал 2024, Nëntor
Anonim
Roomba Parking Pal
Roomba Parking Pal

Ky projekt përdor një iRobot Krijo dhomë të programueshme, MATLAB r2018a dhe celular MATLAB. Duke përdorur këto tre mediume dhe njohuritë tona për kodimin, ne programuam iRobot Create për të interpretuar ngjyrat dhe për të përdorur sensorë në bord për të përfunduar detyrat. Ky projekt varet nga komunikimi Raspberry Pi dhe MATLAB për të kryer këto detyra.

Hapi 1: Materialet

Materiale
Materiale
Materiale
Materiale

1. iRobot Krijo Robot

2. MATLAB r2018a

3. Mjedër Pi

4. Moduli i kamerës

5. Qëndruesi i Stabilizuesit të Kamerave të printuar 3-D

6. Smartphone me celular MATLAB të instaluar

7. Laptop/Kompjuter me MATLAB të instaluar

Hapi 2: Lidhja

Ky hap ka të bëjë me lidhjen e Raspberry Pi me robotin, së dyti lidhjen e robotit me kompjuterin tuaj dhe lidhjen e smartphone -it me kompjuterin.

Pjesa më e lehtë e këtij procesi është lidhja e Raspberry Pi me robotin tuaj, pasi Raspberry Pi është montuar në krye të robotit. Ekziston një kordon nga roboti që gjithçka që duhet të bëni është ta lidhni me anën e Raspberry Pi.

Hapi tjetër është lidhja e robotit me kompjuterin tuaj në mënyrë që të mund të ekzekutoni komandat që roboti të kryejë. Gjëja e parë që duhet të bëni është të lidhni kompjuterin tuaj me rrjetin pa tel që krijon dhoma juaj. Tani, rekomandohet që të përdorni ikonën Set Path në MATLAB për të vendosur rrugën në mënyrë që të mund të përdorni funksionet në kutinë e veglave Roomba nga MATLAB. Sa herë që filloni dhe përfundoni përdorimin me robotin, duhet të bëni një "Përshëndetje me dy gishta" duke e rivendosur me forcë robotin, që do të thotë se ju mbani të shtypur butonat e stacionit dhe të njollosjes për dhjetë sekonda derisa drita të zbehet duke treguar të lëshohet. Ju keni qenë të suksesshëm me këtë rivendosje të fortë nëse dëgjoni që roboti të luajë në një shkallë të shkurtër. Tjetra ju duhet të lidheni me roomba duke përdorur një linjë kodesh si kjo "r = roomba (x)" ku 'x' është numri i caktuar për robotin që keni.

Së fundmi, duhet të shkarkoni celularin MATLAB në çfarëdo pajisje celulare që do të përdorni për këtë projekt, dhe ky aplikacion është i disponueshëm si në pajisjet Android ashtu edhe në Apple. Pasi të jetë instaluar aplikacioni, do të duhet të identifikoheni duke përdorur kredencialet tuaja. Pastaj ju duhet ta lidhni këtë pajisje me kompjuterin tuaj, duke përdorur skedën e etiketuar "Më shumë" -> pastaj klikoni "cilësimet" -> pastaj klikoni "Shto një kompjuter" kjo duhet të shfaq ekranin e treguar në fotot e mësipërme. Pasi ta shihni këtë hapi tjetër që duhet të kaloni është thjesht lidhja dhe fikja e informacionit që kërkon. Pasi të jeni lidhur me sukses, do të jeni në gjendje të thërrisni funksionet që përcaktoni në kompjuterin tuaj në telefonin tuaj për të kontrolluar robotin tuaj.

Hapi 3: Krijimi logjik i një Kodi MATLAB për Përdorimin e Sensorëve

Logjikisht Krijimi i një Kodi MATLAB për Përdorimin e Sensorëve
Logjikisht Krijimi i një Kodi MATLAB për Përdorimin e Sensorëve

Kodi do të jetë më i lehtë për t'u krijuar kur shumica e tij është brenda lakut while, kështu që roomba mund të përditësojë vazhdimisht vlerat e vlefshme që po shikon. Nëse ka një gabim, MATLAB do të shfaqë një gabim dhe ku shfaqet në kod, duke e bërë zgjidhjen e problemeve relativisht të thjeshtë.

I krijuar në r2018a MATLAB, ky kod përdor kutitë standarde të veglave, kutinë e veglave iRobot Krijo, si dhe kutinë e veglave mobile MATLAB. Roomba e përdorur në këtë shembull përcaktohet si 26, dhe r = roomba (26) duhet të ekzekutohet vetëm një herë për të komunikuar plotësisht me dhomën.

Kodi:

funksioni parkassist (x) nëse x == 1

r = roomba (26) % lidhet me roomba

ndërsa e vërtetë

r.setDriveVelocity (.05,.05) % vendos roomba në një shpejtësi më të ngadaltë të vozitjes

bump = r.getBumpers % merr të dhënat nga sensorët e përplasjes

cliff = r.getCliffSensors % merr të dhënat nga sensorët e shkëmbit

drita = r.getLightBumpers % merr të dhënat nga sensorët e përplasjes së dritës

img = r.getImage;% lexon kamerën e fikur të robotit

red_mean = mesatarja (mesatarja (img (:,,, 1))) % lexon sasinë mesatare të pikselave të kuq

green_mean = mesatarja (mesatarja (img (:,,, 2))) % lexon sasinë mesatare të pikselëve të gjelbër

blu_mean = mesatarja (mesatarja (img (:,,, 3))) % lexon sasinë mesatare të pikselëve blu

nëse bump.front == 1 %lexon sensorë të përplasjes së përparme

r.ndal %ndalon roomba

msgbox ('Rruga e errësuar!', 'Mesazhi i Ndihmës në Parkim') % shfaq mesazhin duke thënë se rruga është e errësuar prishet % përfundon lakun

elseif green_mean> 150

r.ndal %ndalon roomba

cont = questdlg ('Vazhdoni?', 'Rruga e përfunduar') %shfaq kutinë e pyetjeve që kërkon të vazhdojë

nëse vazhdon == 'Po'

parkassist (1) %rinis kodin

tjeter

fund

pushimi % përfundon lakun

elseif red_mean> 140

r.turnAngle (45) %e kthen dhomën 45 gradë

r.timeStart %fillon një numërues të kohës

ndërsa e vërtetë

r.setDriveVelocity (.05,.05) %vendos shpejtësinë e dhomës

koha = r.timeGet %i cakton kohën një ndryshoreje

bump = r.getBumpers % merr të dhënat nga sensorët e përplasjes

cliff = r.getCliffSensors % merr të dhënat nga sensorët e shkëmbit

drita = r.getLightBumpers % merr të dhënat nga sensorët e përplasjes së dritës

img = r.getImage;% lexon kamerën e fikur të robotit

red_mean = mesatarja (mesatarja (img (:,,, 1))) % lexon sasinë mesatare të pikselave të kuq

green_mean = mesatarja (mesatarja (img (:,,, 2))) % lexon sasinë mesatare të pikselëve të gjelbër

blu_mean = mesatarja (mesatarja (img (:,,, 3))) % lexon sasinë mesatare të pikselëve blu

nëse blu_mean> 120

r.moveDistanca (-0.01) % e zhvendos dhomën mbrapsht në një distancë të caktuar këngë Luani (r, 'T400, C, D, E, F, G, A, B, C^', 'e vërtetë') % luan një shkallë muzikore në rritje

msgbox ("Uji u gjet!", "Mesazhi i ndihmësit të parkimit") % shfaq një mesazh duke thënë se uji është gjetur r.turnAngle (-80) % rrotullohet në dhomë 80 gradë

prishet % përfundon lakun aktual

elseif drita.djathtasPara> 25 || light.leftF front> 25 %lexon sensorë të goditjes së dritës

r.moveDistance (-0.01) % lëviz dhomën mbrapsht në një distancë të caktuar

r.turnAngle (-35) % rrotullon dhomën me 35 gradë

prishet %përfundon lakun aktual

elseif cliff.right Përpara <2500 && cliff.leftF front <2500 %lexon të dy sensorët e shkëmbit

r.moveDistanca (-0.1) % lëviz dhomën mbrapsht në një distancë të caktuar

r.turnAngle (-80) %rrotullohet në dhomë 80 gradë

prishet % përfundon lakun aktual

koha tjetër> = 3

r.ndal %ndalon roomba

Contin = questdlg ('Stacioni Falas, Vazhdo?', 'Mesazhi i Asistentit të Parkimit') %pyet nëse dhoma e dhomës duhet të vazhdojë nëse vazhdon == 'Po'

r.turnAngle (-90) % rrotullon dhomën 90 gradë

parkassist (1) %rinis funksionin

tjeter

r.stop % ndal roomba

fund

tjeter

fund

fund

elseif cliff.right Përpara <2500 && cliff.leftF front <2500 %lexon të dy sensorët e shkëmbit

r.moveDistanca (-0.1) %lëviz dhomën mbrapsht në një distancë të caktuar

r.tornAngle (-90) %rrotullohet në dhomë 90 gradë

shkëmbi elseif.djathtas <2500 %lexon sensorin e djathtë të shkëmbit

r.turnAngle (-5) %e kthen pak dhomën në drejtim të kundërt të sensorit të shkëmbit

elseif cliff.leftP front <2500 %lexon sensorin e shkëmbit të majtë

r.turnAngle (5) %e kthen pak dhomën në drejtim të kundërt të sensorit të shkëmbit

tjeter

fund

fund

fund

Hapi 4: Testimi i Kodit dhe Robotit

Testimi i Kodit dhe Robotit
Testimi i Kodit dhe Robotit
Testimi i Kodit dhe Robotit
Testimi i Kodit dhe Robotit
Testimi i Kodit dhe Robotit
Testimi i Kodit dhe Robotit

Pasi u zhvillua kodi, hapi tjetër ishte testimi i kodit dhe robotit. Meqenëse ka shumë rregullime të ndryshme që mund të bëhen në kod, të tilla si këndi që roboti kthen, shpejtësia që lëviz dhe pragjet për secilën ngjyrë, mënyra më e mirë për të kuptuar këto vlera për robotin tuaj është të testoni ato dhe të ndryshojë si ju shkoni. Për çdo ditë pune që kishim, ne po i ndryshonim vazhdimisht këto vlera pasi disa prej tyre mbështeten në mjedisin ku punon roboti juaj. Mënyra më e mirë që gjetëm ishte të vendosnim dhomën në rrugën që dëshironi të ndiqni dhe të keni një pengesë mjaft e lartë në mënyrë që kamera të mos zbulojë ngjyrat që ju nuk dëshironi. Hapi tjetër është ta lini të funksionojë dhe t'i tregoni ngjyrat që dëshironi, kur dëshironi që ajo të përfundojë atë detyrë. Ndërsa ecni, nëse shihni një çështje gjëja më e mirë që mund të bëni është të shtyni parakolpin përpara, duke e bërë atë të ndalojë, atëherë ndryshoni parametrin me të cilin keni pasur probleme.

Hapi 5: Njohja e Gabimit

Me çdo projekt të përfunduar, ka gjithmonë burime gabimi. Për ne, ne kemi përjetuar gabim me faktin e thjeshtë se roboti nuk është i saktë me këndin në të cilin kthehet, kështu që nëse i thoni të kthehet në 45 gradë, nuk do të jetë i saktë. Një burim tjetër gabimi për ne ishte se ndonjëherë roboti nuk funksionon, dhe ju e keni rivendosur atë para se të funksionojë përsëri. Burimi kryesor i fundit i gabimit për ne ishte se i njëjti kod nuk do të ketë efekt të njëjtë në robotë të ndryshëm, kështu që ju mund të duhet të jeni të durueshëm me të dhe të përshtateni në përputhje me rrethanat.

Hapi 6: Përfundimi

Tani ju keni të gjitha mjetet për të luajtur me dhomën tuaj, që do të thotë se ju mund të manipuloni kodin në çdo mënyrë që dëshironi të arrini qëllimet që dëshironi. Kjo duhet të jetë pjesa më e mirë e ditës tuaj, kështu që argëtohuni dhe vozitni me siguri!

Recommended: