Kazalo:

Roomba Park Pal: 6 korakov
Roomba Park Pal: 6 korakov

Video: Roomba Park Pal: 6 korakov

Video: Roomba Park Pal: 6 korakov
Video: Playful Kiss - Playful Kiss: Full Episode 10 (Official & HD with subtitles) 2024, Julij
Anonim
Roomba Parkirišče Pal
Roomba Parkirišče Pal

Ta projekt uporablja iRobot Create programabilno roombo, MATLAB r2018a in MATLAB mobile. Z uporabo teh treh medijev in znanja o kodiranju smo programirali iRobot Create za razlago barv in uporabo vgrajenih senzorjev za dokončanje nalog. Za izvedbo teh nalog so ti projekti odvisni od komunikacije Raspberry Pi in MATLAB.

1. korak: Materiali

Materiali
Materiali
Materiali
Materiali

1. iRobot Ustvari robota

2. MATLAB r2018a

3. Malina Pi

4. Modul kamere

5. 3-D tiskano stojalo za stabilizacijo kamere

6. Pametni telefon z nameščenim mobilnim telefonom MATLAB

7. Prenosni računalnik/računalnik z nameščenim MATLAB -om

2. korak: Povezava

Ta korak je namenjen povezovanju Raspberry Pi z robotom, drugič povezovanju robota z računalnikom in povezovanju pametnega telefona z računalnikom.

Najlažji del tega procesa je povezovanje Raspberry Pi z vašim robotom, saj je Raspberry Pi nameščen na vrh robota. Od robota je kabel, ki ga morate le priklopiti na rob Raspberry Pi.

Naslednji korak je povezovanje robota z računalnikom, tako da lahko zaženete ukaze za izvajanje robota. Najprej morate povezati računalnik z brezžičnim omrežjem, ki ga ustvarja roomba. Zdaj je priporočljivo, da z ikono Set Path v MATLAB nastavite pot, tako da lahko uporabite funkcije v orodjarni Roomba iz MATLAB -a. Vsakič, ko začnete in končate uporabo z robotom, morate robot ponastaviti s pritiskom na "Pozdrav z dvema prstoma", kar pomeni, da držite gumbe priklopne postaje in tipke za deset sekund, dokler lučka ne zatemni, kar kaže, da se sprosti. S to ponastavitvijo ste bili uspešni, če ste slišali, da je robot igral kratko lestvico. Nato se morate povezati z roombo z vrstico kode, kot je ta "r = roomba (x)", kjer je "x" številka, določena za robota, ki ga imate.

Nazadnje morate prenesti MATLAB mobile na katero koli mobilno napravo, ki jo boste uporabljali za ta projekt, in ta aplikacija je na voljo v napravah Android in Apple. Ko je aplikacija nameščena, se boste morali prijaviti s svojimi poverilnicami. Nato morate to napravo povezati z računalnikom na zavihku z oznako »Več« -> nato kliknite »nastavitve« -> nato kliknite »Dodaj računalnik«, to bi moralo prikazati zaslon, prikazan na zgornjih slikah. Ko vidite to Naslednji korak, ki ga morate opraviti, je samo priklop in preverjanje podatkov, ki jih zahteva.

3. korak: Logično ustvarjanje kode MATLAB za uporabo senzorjev

Logično ustvarjanje kode MATLAB za uporabo senzorjev
Logično ustvarjanje kode MATLAB za uporabo senzorjev

Kodo bo najlažje ustvariti, ko je večina znotraj zanke while, tako da lahko roomba nenehno posodablja veljavne vrednosti, ki jih išče. Če pride do napake, bo MATLAB prikazal napako in kjer se pojavi v kodi, zaradi česar je odpravljanje težav relativno preprosto.

Ta koda, zasnovana v r2018a MATLAB, uporablja standardne nabore orodij, nabor orodij iRobot Create in mobilno orodje MATLAB. Roomba, uporabljena v tem primeru, je označena kot 26, r = roomba (26) pa je treba zagnati le enkrat za popolno komunikacijo z roombo.

Koda:

funkcija parkassist (x), če je x == 1

r = roomba (26) % se poveže z roombo

medtem ko je res

r.setDriveVelocity (.05,.05) % nastavi roombo na počasnejšo hitrost vožnje

bump = r.getBumpers % dobi podatke od senzorjev udarcev

cliff = r.getCliffSensors % dobi podatke od senzorjev pečine

light = r.getLightBumpers % dobi podatke iz senzorjev svetlobnih udarcev

img = r.getImage;% prebere kamero z robota

red_mean = mean (mean (img (:,:, 1))) % bere povprečno količino rdečih slikovnih pik

green_mean = mean (mean (img (:,:, 2))) % bere povprečno količino zelenih slikovnih pik

blue_mean = mean (mean (img (:,:, 3))) % bere povprečno količino modrih slikovnih pik

če bump.front == 1 %bere sprednja senzorja udarcev

r.stop %ustavi roombo

msgbox ('Pot zatemnjena!', 'Sporočilo pomočnika pri parkiranju') % prikaže sporočilo, da je pot zakrita, prelom % konča zanko

drugače če zeleno_pomeni> 150

r.stop %ustavi roombo

cont = questdlg ('Nadaljuj?', 'Pot dokončana') %prikaže polje z vprašanjem, ki zahteva nadaljevanje

if cont == 'Da'

parkassist (1) %znova zažene kodo

drugače

konec

break % konča zanko

drugače če rdeče_pomeni> 140

r.turnAngle (45) %obrne roombo za 45 stopinj

r.timeStart %zažene števec časa

medtem ko je res

r.setDriveVelocity (.05,.05) %nastavi hitrost roombe

time = r.timeGet %dodeli čas spremenljivki

bump = r.getBumpers % dobi podatke od senzorjev udarcev

cliff = r.getCliffSensors % dobi podatke od senzorjev pečine

light = r.getLightBumpers % dobi podatke iz senzorjev svetlobnih udarcev

img = r.getImage;% prebere kamero z robota

red_mean = mean (mean (img (:,:, 1))) % bere povprečno količino rdečih slikovnih pik

green_mean = mean (mean (img (:,:, 2))) % bere povprečno količino zelenih slikovnih pik

blue_mean = mean (mean (img (:,:, 3))) % bere povprečno količino modrih slikovnih pik

če je modro_pomeni> 120

r.moveDistance (-0.01) % premakne roombo nazaj za določeno razdaljo skladba Play (r, 'T400, C, D, E, F, G, A, B, C^', 'true') % predvaja naraščajočo glasbeno lestvico

msgbox ('Voda je najdena!', 'Sporočilo pomočnika pri parkiranju') % prikaže sporočilo, da je voda najdena r.turnAngle (-80) % vrti roombo 80 stopinj

break % konča trenutno zanko

elseif light.rightFront> 25 || light.leftFront> 25 %bere svetlobne senzorje

r.moveDistance (-0.01) % premakne roombo nazaj za nastavljeno razdaljo

r.turnAngle (-35) % vrti roombo za 35 stopinj

break %konča trenutno zanko

elseif cliff.rightFront <2500 && cliff.leftFront <2500 %bere oba senzorja pečine

r.moveDistance (-0.1) % premakne roombo nazaj za nastavljeno razdaljo

r.turnAngle (-80) %vrti roombo za 80 stopinj

break % konča trenutno zanko

sicer če je čas> = 3

r.stop %ustavi roombo

contin = questdlg ('Station Free, Continue?', 'Message Assistant Message') %vpraša, ali naj se roomba nadaljuje, če je contin == 'Da'

r.turnAngle (-90) % vrti roombo za 90 stopinj

parkassist (1) %znova zažene funkcijo

drugače

r.stop % ustavi roombo

konec

drugače

konec

konec

elseif cliff.rightFront <2500 && cliff.leftFront <2500 %bere oba senzorja pečine

r.moveDistance (-0.1) %premakne roombo nazaj za nastavljeno razdaljo

r.turnAngle (-90) %vrti roombo za 90 stopinj

elseif cliff.rightFront <2500 %bere desni senzor pečine

r.turnAngle (-5) %rahlo obrne roombo v nasprotni smeri senzorja pečine

elseif cliff.leftFront <2500 %bere senzor leve pečine

r.turnAngle (5) %rahlo obrne roombo v nasprotni smeri senzorja pečine

drugače

konec

konec

konec

4. korak: Preizkusite kodo in robota

Testiranje kode in robota
Testiranje kode in robota
Testiranje kode in robota
Testiranje kode in robota
Testiranje kode in robota
Testiranje kode in robota

Po razvoju kode je bil naslednji korak preizkus kode in robota. Ker je v kodi mogoče narediti veliko različnih prilagoditev, kot so kot, ki ga robot obrača, hitrost premikanja in pragovi za vsako barvo, je najboljši način, da te vrednosti ugotovite za svojega robota, da preizkusite jih spremenite. Za vsak delovnik, ki smo ga imeli, smo te vrednosti nenehno spreminjali, saj se nekatere od njih opirajo na okolje, v katerem vaš robot deluje. Najboljši način, ki smo ga našli, je bil postaviti roombo na pot, ki ji želite slediti, in imeti pregrado dovolj visoko, da fotoaparat ne zazna barv, ki jih ne želite. Naslednji korak je, da se zažene in mu pokažete želene barve, ko želite, da dokonča to nalogo. Če opazite težavo, je najbolje, da sprednji odbijač potisnete in ustavite, nato pa spremenite parameter, s katerim ste imeli težave.

5. korak: Prepoznavanje napake

Ko je vsak projekt dokončan, vedno obstajajo viri napak. Pri nas smo doživeli napako pri preprostem dejstvu, da robot ni natančen s kotom, pod katerim se obrača, zato če mu poveš, da se obrne za 45 stopinj, ne bo natančen. Drug vir napak za nas je bil, da včasih pride do okvare robota, zato ga morate težko ponastaviti, preden spet deluje. Glavni zadnji vir napak za nas je bil, da ista koda ne bo imela enakega učinka na različne robote, zato boste morda morali biti potrpežljivi in se temu ustrezno prilagoditi.

6. korak: Zaključek

Zdaj imate vsa orodja za igranje s svojo roombo, kar pomeni, da lahko s kodo manipulirate tako, da želite doseči želene cilje. To bi moral biti najboljši del vašega dneva, zato se zabavajte in varno vozite!

Priporočena: