Sadržaj:
- Korak 1: Potrošni materijal
- Korak 2: Izjava o problemu
- Korak 3: Bluetooth daljinski upravljač
- Korak 4: Prepoznavanje uticaja
- Korak 5: Prepoznavanje života
- Korak 6: Pokrenite ga
Video: Mars Roomba: 6 koraka
2024 Autor: John Day | [email protected]. Zadnja izmjena: 2024-01-30 08:07
Ovaj Instructable vodit će vas u smjerovima rada s Roomba vakuumskim botom kontroliranim Raspberry Pi -jem. Operativni sistem koji ćemo koristiti je preko MATLAB -a.
Korak 1: Potrošni materijal
Šta ćete morati prikupiti da biste realizirali ovaj projekt:
- iRobotov bot za usisavanje Create2 Roomba
- Raspberry Pi
- Raspberry Pi kamera
- Najnovija verzija MATLAB -a
- Roomba set alata za instalaciju za MATLAB
- MATLAB aplikacija za mobilni uređaj
Korak 2: Izjava o problemu
Zadatak nam je bio da pomoću MATLAB -a razvijemo rover koji bi se mogao koristiti na Marsu kako bi pomogli naučnicima u prikupljanju podataka o planeti. Funkcije kojima smo se bavili u našem projektu bile su daljinsko upravljanje, prepoznavanje udara objekta, prepoznavanje vode, prepoznavanje života i obrada slike. Da bismo postigli ove uspjehe, kodirali smo pomoću naredbi Roomba toolbox za manipuliranje mnogim funkcijama iRobotove Create2 Roombe.
Korak 3: Bluetooth daljinski upravljač
Ovaj slajd će proći kroz kod za kontrolu kretanja Roombe koristeći 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 se prijavite, idite na "više", "postavke" i povežite se s računarom koristeći njegovu IP adresu. Nakon povezivanja vratite se na "više" i odaberite "senzori". Dodirnite treći senzor na gornjoj traci sa alatkama na ekranu i dodirnite početak. Sada je vaš pametni telefon daljinski upravljač!
Kod je sljedeći:
dok je 0 == 0
pauza (.5)
PhoneData = M. Orientation;
Azi = PhoneData (1);
Nagib = PhoneData (2);
Side = PhoneData (3);
neravnine = r.getBumpers;
ako je stranica> 80 || Strana <-80
r.stop
r.beep ('C, E, G, C^, G, E, C')
break
elseif Side> 20 && Side <40
r.turnAngle (-5);
elseif Side> 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 uticaja
Druga funkcija koju smo implementirali bila je otkrivanje utjecaja Roombe na objekt, a zatim ispravljanje njegove trenutne putanje. Da bismo to učinili, morali smo upotrijebiti uvjete s očitanjima senzora branika kako bismo utvrdili je li predmet udario. 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 meni koji prikazuje riječ "oof".
Kôd je prikazan ispod:
dok je 0 == 0
neravnine = r.getBumpers;
r.setDriveVelocity (.1)
ako bumps.left == 1
msgbox ('Uf!');
r.moveDistance (-0.2)
r.setTurnVelocity (.2)
r.turnAngle (-35)
r.setDriveVelocity (.2)
elseif bumps.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 bumps.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 sistem 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. Ove vrijednosti su uspoređene s pragovima koji su ručno postavljeni za određivanje boje koju kamera gleda. Kod bi također iscrtao putanju do objekta i stvorio mapu.
Kod je sljedeći:
t = 10;
i = 0;
dok je t == 10
img = r.getImage; imshow (img)
pauza (0.167)
i = i + 1;
red_mean = mean (mean (img (:,:, 1)));
blue_mean = mean (mean (img (:,:, 3)));
green_mean = mean (mean (img (:,:, 2)));
white_mean = (blue_mean + green_mean + red_mean) / 3; %želi ovaj val otprilike 100
nine_plus_ten = 21;
green_threshold = 125;
blue_threshold = 130;
white_threshold = 124;
red_threshold = 115;
dok je devet_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');
pauza (2)
izbrisati (a)
[y2, Fs2] = audiočitavanje ('z_speak2.wav');
zvuk (y2, Fs2)
pauza (2)
%biljka = r.getImage; %imshow (postrojenje);
%uštede ('plant_img.mat', biljka ');
%lokacija parcele u zelenoj boji
i = 5;
break
else
nine_plus_ten = 19;
kraj
kraj
nine_plus_ten = 21;
dok je devet_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');
pauza (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 placa
i = 5;
break
else
nine_plus_ten = 19;
kraj
kraj
nine_plus_ten = 21;
dok je devet_plus_ten == 21 %bijelih - vanzemaljci monkaS
ako bijelo_smjer> bijelo_prag && plavo_srednje <plavo_prazno && zeleno_srednje <zeleno_pragove
[y5, Fs5] = audiočitavanje ('z_speak5.wav');
zvuk (y5, Fs5);
pauza (3)
r.setDriveVelocity (0,.5)
[ys, Fss] = audiočitavanje ('z_scream.mp3');
zvuk (ys, Fss);
pauza (3)
r.stop
% alien = r.getImage; %imshow (vanzemaljac);
% save ('alien_img.mat', alien);
i = 5;
break
else
nine_plus_ten = 19;
kraj
kraj
ako je i == 5
a = 1; %ugao okretanja
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 eto! 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čuje se:
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 preći svu površinu Marsa i istraživati stvari sa Zemlje. Takođe želim da istražim stvar sedeći na laptopu. Pa sad mislim da je pravo vrijeme da to napravim i
Raspberry Pi - Autonomni Mars Rover sa OpenCV praćenjem objekata: 7 koraka (sa slikama)
Raspberry Pi - Autonomni Mars Rover sa OpenCV praćenjem objekata: Pokreće ga Raspberry Pi 3, Open CV prepoznavanje objekata, ultrazvučni senzori i motori sa istosmjernim pogonom. Ovaj rover može pratiti bilo koji objekt za koji je obučen i kretati se po bilo kojem terenu
Mars Roomba projekat UTK: 4 koraka
Mars Roomba Project UTK: ODRICANJE OD ODGOVORNOSTI: OVO ĆE RADITI SAMO AKO JE ROOMBA POSTAVLJENA NA JAKO ODREĐEN NAČIN, OVO UPUTSTVO JE STVORENO I NAMJERENO KORISTITI UNIVERZITET UČENIKA TENESA I FAKULTETOva šifra se koristi za postavljanje napisano i s
Roomba roomba upravljani preglednikom sa Raspberry Pi modelom 3 A+: 6 koraka (sa slikama)
Roomba robotski upravljani Roomba robot s Raspberry Pi modelom 3 A+: PregledOva instrukcija će se fokusirati 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. Ja nemam