Obsah:

Mars Roomba: 6 krokov
Mars Roomba: 6 krokov

Video: Mars Roomba: 6 krokov

Video: Mars Roomba: 6 krokov
Video: ✅ Los MEJORES ROBOT ASPIRADOR en CALIDAD PRECIO del 2023 // GUIA DEFINITIVA 2024, Júl
Anonim
Mars Roomba
Mars Roomba

Tento návod vás prevedie návodom na obsluhu vákuového robota Roomba ovládaného Raspberry Pi. Operačný systém, ktorý budeme používať, je prostredníctvom MATLABu.

Krok 1: Spotrebný materiál

Čo budete potrebovať na realizáciu tohto projektu:

  • Robot vysávača iRobot Create2 Roomba
  • Malinový koláč
  • Kamera Raspberry Pi
  • Najnovšia verzia MATLABu
  • Sada nástrojov na inštaláciu Roomba pre MATLAB
  • Aplikácia MATLAB pre mobilné zariadenie

Krok 2: Vyhlásenie o probléme

Vyhlásenie o probléme
Vyhlásenie o probléme

Dostali sme za úlohu použiť MATLAB na vývoj rovera, ktorý by bolo možné použiť na Marse, aby sme pomohli vedcom pri zbere údajov o planétach. V našom projekte sme sa zaoberali funkciami diaľkového ovládania, rozpoznávania nárazov na objekty, rozpoznávania vody, rozpoznávania života a spracovania obrazu. Aby sme dosiahli tieto úspechy, kódovali sme pomocou príkazov sady nástrojov Roomba na manipuláciu s mnohými funkciami programu Create2 Roomba od iRobot.

Krok 3: Diaľkové ovládanie Bluetooth

Bluetooth diaľkové ovládanie
Bluetooth diaľkové ovládanie

Táto snímka prevedie kód na ovládanie pohybu robota Roomba pomocou funkcií Bluetooth vášho zariadenia smartphone. Na začiatku si stiahnite aplikáciu MATLAB do svojho smartfónu a prihláste sa do svojho účtu Mathworks. Po prihlásení prejdite na „viac“, „nastavenia“a pripojte sa k počítaču pomocou jeho adresy IP. Po pripojení sa vráťte k „ďalším“a vyberte „senzory“. Klepnite na tretí senzor na hornom paneli s nástrojmi obrazovky a klepnite na spustenie. Teraz je váš smartphone diaľkovým ovládaním!

Kód je nasledujúci:

pričom 0 == 0

pauza (.5)

PhoneData = M. Orientácia;

Azi = PhoneData (1);

Rozteč = údaje o telefóne (2);

Strana = údaje o telefóne (3);

hrbole = r.getBumpers;

ak Strana> 80 || Strana <-80

r.stop

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

prestávka

elseif Strana> 20 && Strana <40

r.turnAngle (-5);

elseif Strana> 40

r.turnAngle (-25);

elseif Side-40

r.turnAngle (5);

elseif Strana <-40

r.turnAngle (25);

koniec

ak je rozstup> 10 && rozstup <35

r.moveDistance (.03)

elseif Rozteč> -35 && Rozteč <-10

r.moveDistance (-. 03)

koniec

koniec

Krok 4: Rozpoznávanie nárazov

Rozpoznávanie nárazov
Rozpoznávanie nárazov

Ďalšou funkciou, ktorú sme implementovali, bolo zistiť náraz Roomby do objektu a potom opraviť jeho aktuálnu cestu. Aby sme to urobili, museli sme použiť podmienené údaje z údajov zo snímačov nárazníka, aby sme zistili, či došlo k zasiahnutiu predmetu. Ak robot narazí na predmet, ustúpi o 0,2 metra a otočí sa v uhle určenom na nárazník. Po stlačení položky sa otvorí ponuka so slovom „off“.

Kód je zobrazený nižšie:

pričom 0 == 0

hrbole = r.getBumpers;

r.setDriveVelocity (.1)

ak bumps.left == 1

msgbox ('Uff!');

r.moveDistance (-0,2)

r.setTurnVelocity (.2)

r.turnAngle (-35)

r.setDriveVelocity (.2)

elseif bumps.front == 1

msgbox ('Uff!');

r.moveDistance (-0,2)

r.setTurnVelocity (.2)

r.turnAngle (90)

r.setDriveVelocity (.2)

elseif bumps.right == 1

msgbox ('Uff!');

r.moveDistance (-0,2)

r.setTurnVelocity (.2)

r.turnAngle (35)

r.setDriveVelocity (.2)

elseif bumps.leftWheelDrop == 1

msgbox ('Uff!');

r.moveDistance (-0,2)

r.setTurnVelocity (.2)

r.turnAngle (-35)

r.setDriveVelocity (.2)

elseif bumps.rightWheelDrop == 1

msgbox ('Uff!');

r.moveDistance (-0,2)

r.setTurnVelocity (.2)

r.turnAngle (35)

r.setDriveVelocity (.2)

koniec

koniec

Krok 5: Rozpoznanie života

Uznanie života
Uznanie života

Kódovali sme systém rozpoznávania života, aby čítal farby predmetov pred ním. Tri druhy života, pre ktoré sme kódovali, sú rastliny, voda a mimozemšťania. Za týmto účelom sme zakódovali senzory na výpočet priemerných hodnôt červenej, modrej, zelenej alebo bielej farby. Tieto hodnoty boli porovnané s prahovými hodnotami, ktoré boli manuálne nastavené na určenie farby, na ktorú sa fotoaparát pozerá. Kód by tiež vykreslil cestu k objektu a vytvoril mapu.

Kód je nasledujúci:

t = 10;

i = 0;

pričom t == 10

img = r.getImage; imshow (img)

pauza (0,167)

i = i + 1;

red_mean = priemer (priemer (obrázok (:,:, 1)));

blue_mean = priemer (priemer (obrázok (:,:; 3)));

green_mean = priemer (priemer (obrázok (:,:; 2)));

white_mean = (blue_mean + green_mean + red_mean) / 3; %chce túto hodnotu približne 100

nine_plus_ten = 21;

green_threshold = 125;

blue_threshold = 130;

white_threshold = 124;

red_threshold = 115;

zatiaľ čo deväť_plus_ten == 21 %zelene - život

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

r.moveDistance (-. 1)

a = msgbox ('nájdený možný zdroj života, vykreslená poloha');

pauza (2)

vymazať (a)

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

zvuk (y2, Fs2)

pauza (2)

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

%save ('plant_img.mat', závod ');

%umiestnenia pozemku v zeleni

i = 5;

prestávka

inak

nine_plus_ten = 19;

koniec

koniec

nine_plus_ten = 21;

zatiaľ čo nine_plus_ten == 21 %modrá - woder

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

r.moveDistance (-. 1)

a = msgbox („zdroj vody bol nájdený, poloha je zakreslená“);

pauza (2)

vymazať (a)

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

zvuk (y3, Fs3);

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

%save ('water_img.mat', woder)

%umiestnenia pozemku modrou farbou

i = 5;

prestávka

inak

nine_plus_ten = 19;

koniec

koniec

nine_plus_ten = 21;

pričom deväť_plus_ten == 21 %biely - mimozemšťania monkaS

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

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

zvuk (y5, Fs5);

pauza (3)

r.setDriveVelocity (0, 0,5)

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

zvuk (ys, Fss);

pauza (3)

r.stop

% alien = r.getImage; %imshow (mimozemšťan);

% save ('alien_img.mat', mimozemšťan);

i = 5;

prestávka

inak

nine_plus_ten = 19;

koniec

koniec

ak i == 5

a = 1; %uhla otáčania

t = 9; %ukončiť veľkú slučku

i = 0;

koniec

koniec

Krok 6: Spustite to !

Po napísaní celého kódu skombinujte všetko do jedného súboru a voila! Váš robot Roomba bude teraz plne funkčný a bude fungovať podľa reklamy! Ovládací prvok Bluetooth by však mal byť buď v samostatnom súbore, alebo by mal byť od zvyšku kódu oddelený pomocou %%.

Užívajte si robota !!

Odporúča: