Sadržaj:
- Korak 1: Opskrba
- Korak 2: Izjava o problemu
- Korak 3: Bluetooth daljinski upravljač
- Korak 4: Prepoznavanje utjecaja
- Korak 5: Prepoznavanje života
- Korak 6: Pokrenite ga
Video: Mars Roomba: 6 koraka
2024 Autor: John Day | [email protected]. Zadnja promjena: 2024-01-30 09:35
Ovaj Instructable vodit će vas u smjerovima rada s vakuumskim botom Roomba s kontrolom Raspberry Pi. Operativni sustav koji ćemo koristiti je putem MATLAB -a.
Korak 1: Opskrba
Što ćete morati prikupiti za provedbu ovog projekta:
- iRobotov bot usisavača Create2 Roomba
- Malina Pi
- Raspberry Pi kamera
- Najnovija verzija MATLAB -a
- Roomba set alata za instalaciju za MATLAB
- MATLAB aplikacija za stanični uređaj
Korak 2: Izjava o problemu
Imali smo zadatak koristiti MATLAB za razvoj rovera koji bi se mogao koristiti na Marsu kako bismo pomogli znanstvenicima u prikupljanju podataka o planeti. Funkcije kojima smo se bavili u našem projektu bile su daljinsko upravljanje, prepoznavanje utjecaja objekta, prepoznavanje vode, prepoznavanje života i obrada slike. Da bismo postigli ove uspjehe, kodirali smo pomoću naredbi Roomba toolbox za upravljanje mnogim funkcijama iRobotovog Create2 Roomba.
Korak 3: Bluetooth daljinski upravljač
Ovaj slajd će proći kroz kôd za upravljanje kretanjem Roombe pomoću Bluetooth mogućnosti vašeg pametnog telefona. Za početak preuzmite aplikaciju MATLAB na svoj pametni telefon i prijavite se na svoj račun Mathworks. Nakon što ste prijavljeni, idite na "više", "postavke" i povežite se s računalom koristeći njegovu IP adresu. Nakon povezivanja vratite se na "više" i odaberite "senzori". Dodirnite treći senzor na gornjoj alatnoj traci zaslona i dodirnite Start. Sada je vaš pametni telefon daljinski upravljač!
Kod je sljedeći:
dok je 0 == 0
stanka (0,5)
PhoneData = M. Orijentacija;
Azi = PhoneData (1);
Nagib = PhoneData (2);
Side = PhoneData (3);
izbočine = r.getBumpers;
ako je stranica> 80 || Bočno <-80
r.stop
r.bip ('C, E, G, C^, G, E, C')
pauza
elseif Side> 20 && Side <40
r.turnAngle (-5);
inače strana> 40
r.turnAngle (-25);
elseif Side-40
r.turnAngle (5);
elseif Strana <-40
r.turnAngle (25);
kraj
ako je Pitch> 10 && Pitch <35
r.moveDistance (.03)
elseif Nagib> -35 && Nagib <-10
r.moveDistance (-. 03)
kraj
kraj
Korak 4: Prepoznavanje utjecaja
Druga funkcija koju smo implementirali bila je otkriti utjecaj Roombe na objekt, a zatim ispraviti njezin trenutni put. Da bismo to učinili, morali smo upotrijebiti uvjete s očitanjima senzora odbojnika kako bismo utvrdili je li udario neki predmet. Ako robot udari u neki objekt, povući će se unatrag 0,2 metra i rotirat će se pod kutom koji je određen udarcem u branik. Nakon što je stavka pogođena, pojavit će se izbornik koji prikazuje riječ "oof".
Kôd je prikazan ispod:
dok je 0 == 0
izbočine = r.getBumpers;
r.setDriveVelocity (.1)
ako neravnine.lijevo == 1
msgbox ('Uf!');
r.moveDistance (-0.2)
r.setTurnVelocity (.2)
r.turnAngle (-35)
r.setDriveVelocity (.2)
elseif neravnine.front == 1
msgbox ('Uf!');
r.moveDistance (-0.2)
r.setTurnVelocity (.2)
r.turnAngle (90)
r.setDriveVelocity (.2)
elseif bumps.right == 1
msgbox ('Uf!');
r.moveDistance (-0.2)
r.setTurnVelocity (.2)
r.turnAngle (35)
r.setDriveVelocity (.2)
elseif neravnine.leftWheelDrop == 1
msgbox ('Uf!');
r.moveDistance (-0.2)
r.setTurnVelocity (.2)
r.turnAngle (-35)
r.setDriveVelocity (.2)
elseif bumps.rightWheelDrop == 1
msgbox ('Uf!');
r.moveDistance (-0.2)
r.setTurnVelocity (.2)
r.turnAngle (35)
r.setDriveVelocity (.2)
kraj
kraj
Korak 5: Prepoznavanje života
Kodirali smo sustav za prepoznavanje života za čitanje boja objekata ispred njega. Tri vrste života za koje smo kodirali su biljke, voda i vanzemaljci. Da bismo to učinili, kodirali smo senzore za izračunavanje prosječnih vrijednosti crvene, plave, zelene ili bijele boje. Te su vrijednosti uspoređene s pragovima koji su ručno postavljeni za određivanje boje koju kamera gleda. Kod bi također iscrtao put do objekta i stvorio kartu.
Kod je sljedeći:
t = 10;
i = 0;
dok je t == 10
img = r.getImage; imshow (img)
stanka (0,167)
i = i + 1;
red_mean = mean (mean (img (:,:, 1)));
plavo_sredstvo = srednja vrijednost (srednja vrijednost (img (:,:, 3)));
zeleno_sredstvo = srednja vrijednost (srednja vrijednost (img (:,:, 2)));
white_mean = (blue_mean + green_mean + red_mean) / 3; %želi ovaj val cca 100
nine_plus_ten = 21;
green_threshold = 125;
plavi_prag = 130;
bijeli_prag = 124;
crveni_prag = 115;
dok nine_plus_ten == 21 %zeleno - život
ako green_mean> green_threshold && blue_mean <blue_threshold && red_mean <red_threshold
r.moveDistance (-. 1)
a = msgbox ('mogući izvor života pronađen, lokacija iscrtana');
stanka (2)
izbrisati (a)
[y2, Fs2] = audiočitavanje ('z_speak2.wav');
zvuk (y2, Fs2)
stanka (2)
%biljka = r.getImage; %imshow (biljka);
%uštede ('plant_img.mat', biljka ');
%lokacije parcele u zelenoj boji
i = 5;
pauza
drugo
nine_plus_ten = 19;
kraj
kraj
nine_plus_ten = 21;
dok je nine_plus_ten == 21 %plavo - woder
ako blue_mean> blue_threshold && green_mean <green_threshold && white_mean <white_threshold && red_mean <red_threshold
r.moveDistance (-. 1)
a = msgbox ('izvor vode je pronađen, lokacija iscrtana');
stanka (2)
izbrisati (a)
[y3, Fs3] = audiočitavanje ('z_speak3.wav');
zvuk (y3, Fs3);
%woder = r.getImage; %imshow (woder)
%uštede ('water_img.mat', woder)
%lokacije parcele u plavoj boji
i = 5;
pauza
drugo
nine_plus_ten = 19;
kraj
kraj
nine_plus_ten = 21;
dok nine_plus_ten == 21 %bijelaca - vanzemaljci monkaS
ako white_mean> white_threshold && blue_mean <blue_threshold && green_mean <green_threshold
[y5, Fs5] = audiočitavanje ('z_speak5.wav');
zvuk (y5, Fs5);
stanka (3)
r.setDriveVelocity (0,.5)
[ys, Fss] = audiočitavanje ('z_scream.mp3');
zvuk (ys, Fss);
stanka (3)
r.stop
% vanzemaljac = r.getImage; %imshow (vanzemaljac);
% spremi ('alien_img.mat', vanzemaljac);
i = 5;
pauza
drugo
nine_plus_ten = 19;
kraj
kraj
ako je i == 5
a = 1; %zavoja kuta
t = 9; %prekinuti veliku petlju
i = 0;
kraj
kraj
Korak 6: Pokrenite ga
Nakon što je sav kod napisan, spojite ga u jednu datoteku i voila! Vaš Roomba bot sada će biti potpuno funkcionalan i raditi kako je oglašeno! Međutim, Bluetooth kontrola trebala bi biti ili u zasebnoj datoteci ili odvojena od ostatka koda s %%.
Uživajte u korištenju svog robota !!
Preporučeni:
Pretvaranje vaše Roombe u Mars Rover: 5 koraka
Pretvaranje vaše Roombe u Mars Rover:
Mars Rover koji koristi Raspberry Pi: 5 koraka
Mars Rover koji koristi Raspberry Pi: Dragi svi, veliki učeniče, uvijek me zanima znati o mars roveru, koji ima 6 kotača koji mogu prijeći svu površinu Marsa i istraživati stvari sa Zemlje. Također želim istražiti stvar sjedeći na laptopu. Pa sad mislim da je pravo vrijeme da to napravim i
Raspberry Pi - Autonomni Mars Rover s OpenCV praćenjem objekata: 7 koraka (sa slikama)
Raspberry Pi - Autonomni Mars Rover s OpenCV praćenjem objekata: Pokreće ga Raspberry Pi 3, prepoznavanje otvorenih CV objekata, ultrazvučni senzori i istosmjerni motori. Ovaj rover može pratiti svaki objekt za koji je osposobljen i kretati se po bilo kojem terenu
Mars Roomba projekt UTK: 4 koraka
Projekt Mars Roomba UTK: ODRICANJE OD ODGOVORNOSTI: OVO ĆE RADITI SAMO AKO JE ROOMBA POSTAVLJENA NA JAKO POSEBAN NAČIN, OVO UPUTSTVO JE STVORENO I NAMJERENO KORISTITI SVEUČILIŠTE UČENIKA TENESA I FAKULTET napisano i s
Roomba Roomba upravljani preglednikom s Raspberry Pi modelom 3 A+: 6 koraka (sa slikama)
Roomba Roomba upravljani preglednikom robot s modelom Raspberry Pi 3 A+: pregledOva instrukcija će se usredotočiti na to kako mrtvoj Roombi dati novi mozak (Raspberry Pi), oči (web kamera) i način da kontrolirate sve iz web preglednika. Postoji mnogo Roomba hakova koji omogućuju kontrolu putem serijskog sučelja. Nisam