Sisällysluettelo:

Mars Roomba: 6 vaihetta
Mars Roomba: 6 vaihetta

Video: Mars Roomba: 6 vaihetta

Video: Mars Roomba: 6 vaihetta
Video: МАЛЬДИВЫ, которые в самое сердце. Большой выпуск. 4K 2024, Marraskuu
Anonim
Mars Roomba
Mars Roomba

Tämä opas opastaa sinua Raspberry Pi -ohjatun Roomba -tyhjiöbotin käytön suuntiin. Käyttämämme käyttöjärjestelmä on MATLABin kautta.

Vaihe 1: Tarvikkeet

Mitä sinun on kerättävä tämän projektin toteuttamiseksi:

  • iRobotin Create2 Roomba -imurin botti
  • Raspberry Pi
  • Raspberry Pi -kamera
  • MATLABin uusin versio
  • Roomban asennustyökalupakki MATLABille
  • MATLAB -sovellus mobiililaitteelle

Vaihe 2: Ongelmalausunto

Ongelmalausunto
Ongelmalausunto

Saimme tehtäväksi kehittää MATLABin avulla roverin, jota voitaisiin käyttää Marsissa auttaaksemme tutkijoita planeetatietojen keräämisessä. Projektissamme käsitellyt toiminnot olivat kaukosäädin, esinevaikutusten tunnistus, veden tunnistus, elämän tunnistus ja kuvankäsittely. Näiden saavutusten saavuttamiseksi koodasimme Roomban työkalupakkikomennoilla manipuloidaksemme iRobotin Create2 Roomban monia toimintoja.

Vaihe 3: Bluetooth -kaukosäädin

Bluetooth -kaukosäädin
Bluetooth -kaukosäädin

Tämä dia kulkee koodin läpi Roomban liikkeen ohjaamiseksi älypuhelimesi Bluetooth-ominaisuuksien avulla. Aloita lataamalla MATLAB -sovellus älypuhelimeesi ja kirjautumalla sisään Mathworks -tilillesi. Kun olet kirjautunut sisään, siirry "lisää", "asetukset" ja muodosta yhteys tietokoneeseen sen IP -osoitteen avulla. Kun yhteys on muodostettu, palaa "lisää" -kohtaan ja valitse "anturit". Napauta näytön yläreunan työkalupalkin kolmatta anturia ja napauta sitten Käynnistä. Älypuhelimesi on nyt kaukosäädin!

Koodi on seuraava:

kun taas 0 == 0

tauko (.5)

PhoneData = M. Orientation;

Azi = Puhelintiedot (1);

Pitch = Puhelintiedot (2);

Sivu = Puhelintiedot (3);

kuoppia = r.getBumpers;

jos sivu> 80 || Sivu <-80

r. stop

r. piippaus ('C, E, G, C^, G, E, C')

tauko

elseif Sivu> 20 && Sivu <40

r.kierroskulma (-5);

muuten jos puoli> 40

r.kierroskulma (-25);

elseif Side-40

r. kääntökulma (5);

elseif Sivu <-40

r.kierroskulma (25);

loppuun

jos Pitch> 10 && Pitch <35

r.moveDistance (.03)

elseif Pitch> -35 && Pitch <-10

r.moveDistance (-. 03)

loppuun

loppuun

Vaihe 4: Vaikutusten tunnistaminen

Vaikutusten tunnistaminen
Vaikutusten tunnistaminen

Toinen toteuttamamme toiminto oli havaita Roomban vaikutus esineeseen ja korjata sen nykyinen polku. Tätä varten meidän täytyi käyttää ehtoja puskurianturien lukemilla sen määrittämiseksi, osuiko kohde. Jos robotti osuu esineeseen, se perääntyy.2 metriä ja pyörii kulmassa, jonka mukaan puskuri osui. Kun kohde on osunut, näkyviin tulee valikko, jossa näkyy sana "oof".

Koodi näkyy alla:

kun taas 0 == 0

kuoppia = r.getBumpers;

r.setDriveVelocity (.1)

jos kolhuja.vasen == 1

msgbox ('Oho!');

r.moveDistance (-0,2)

r.setTurnVelocity (.2)

r.turnAngle (-35)

r.setDriveVelocity (.2)

elseif bumps.front == 1

msgbox ('Oho!');

r.moveDistance (-0,2)

r.setTurnVelocity (.2)

r.turnAngle (90)

r.setDriveVelocity (.2)

elseif kuoppia. oikea == 1

msgbox ('Oho!');

r.moveDistance (-0,2)

r.setTurnVelocity (.2)

r.turnAngle (35)

r.setDriveVelocity (.2)

elseif bumps.leftWheelDrop == 1

msgbox ('Oho!');

r.moveDistance (-0,2)

r.setTurnVelocity (.2)

r.turnAngle (-35)

r.setDriveVelocity (.2)

elseif bumps.rightWheelDrop == 1

msgbox ('Oho!');

r.moveDistance (-0,2)

r.setTurnVelocity (.2)

r.turnAngle (35)

r.setDriveVelocity (.2)

loppuun

loppuun

Vaihe 5: Elämän tunnistaminen

Elämän tunnustaminen
Elämän tunnustaminen

Koodasimme elämän tunnistusjärjestelmän lukemaan sen edessä olevien esineiden värit. Kolme elämäntapaa, jotka koodasimme, ovat kasvit, vesi ja muukalaiset. Tätä varten koodasimme anturit punaisen, sinisen, vihreän tai valkoisen keskiarvon laskemiseksi. Näitä arvoja verrattiin kynnyksiin, jotka asetettiin manuaalisesti määrittämään väri, jota kamera katsoo. Koodi piirtää myös polun kohteeseen ja luo kartan.

Koodi on seuraava:

t = 10;

i = 0;

kun taas t == 10

img = r.getImage; imshow (img)

tauko (0,167)

i = i + 1;

red_mean = keskiarvo (keskiarvo (img (:,:, 1)));

blue_mean = keskiarvo (keskiarvo (img (:,:, 3)));

green_mean = keskiarvo (keskiarvo (img (:,:, 2)));

white_mean = (blue_mean + green_mean + red_mean) / 3; %haluaa tämän arvon noin 100

nine_plus_ten = 21;

vihreä_kynnys = 125;

sininen_kynnys = 130;

valkoinen_kynnys = 124;

punainen_kynnys = 115;

kun taas nine_plus_ten == 21 %vihreä - elämää

jos green_mean> green_threshold && blue_mean <blue_threshold && red_mean <red_threshold

r.moveDistance (-. 1)

a = msgbox ('mahdollinen elämän lähde löydetty, sijainti piirretty');

tauko (2)

poista (a)

[y2, Fs2] = ääniluku ('z_speak2.wav');

ääni (y2, Fs2)

tauko (2)

%kasvi = r.getImage; %imshow (kasvi);

%säästä ('plant_img.mat', plant ');

%tontin sijainti vihreänä

i = 5;

tauko

muu

nine_plus_ten = 19;

loppuun

loppuun

nine_plus_ten = 21;

kun taas nine_plus_ten == 21 %sininen - woder

jos blue_mean> blue_threshold && green_mean <green_threshold && white_mean <white_threshold && red_mean <red_threshold

r.moveDistance (-. 1)

a = msgbox ('vesilähde on löydetty, sijainti on piirretty');

tauko (2)

poista (a)

[y3, Fs3] = ääniluku ('z_speak3.wav');

ääni (y3, Fs3);

%woder = r.getImage; %imshow (woder)

%säästö ('water_img.mat', woder)

%tontin sijainti sinisenä

i = 5;

tauko

muu

nine_plus_ten = 19;

loppuun

loppuun

nine_plus_ten = 21;

kun taas nine_plus_ten == 21 %valkoinen - aliens monkaS

jos white_mean> white_threshold && blue_mean <blue_threshold && green_mean <green_threshold

[y5, Fs5] = ääniluku ('z_speak5.wav');

ääni (y5, Fs5);

tauko (3)

r.setDriveVelocity (0,.5)

[ys, Fss] = ääniluku ('z_scream.mp3');

ääni (ys, Fss);

tauko (3)

r. stop

% ulkomaalainen = r.getImage; %imshow (ulkomaalainen);

% save ('alien_img.mat', ulkomaalainen);

i = 5;

tauko

muu

nine_plus_ten = 19;

loppuun

loppuun

jos i == 5

a = 1; %kääntökulmaa

t = 9; %lopettaa suuren silmukan

i = 0;

loppuun

loppuun

Vaihe 6: Suorita se

Kun kaikki koodit on kirjoitettu, yhdistä ne kaikki yhdeksi tiedostoksi ja voila! Roomba -robotti on nyt täysin toimiva ja toimii mainostetun mukaisesti! Bluetooth -ohjaimen on kuitenkin oltava joko erillisessä tiedostossa tai erotettuna muusta koodista %%: lla.

Nauti robotin käytöstä !!

Suositeltava: