Kazalo:
- 1. korak: Zaloge
- 2. korak: Izjava o težavi
- Korak: Daljinski upravljalnik Bluetooth
- 4. korak: Prepoznavanje vpliva
- 5. korak: Prepoznavanje življenja
- 6. korak: Zaženite !
Video: Mars Roomba: 6 korakov
2024 Avtor: John Day | [email protected]. Nazadnje spremenjeno: 2024-01-30 12:05
Ta Instructable vas bo vodil v smeri delovanja vakuumskega robota Roomba, ki ga upravlja Raspberry Pi. Operacijski sistem, ki ga bomo uporabljali, je prek programa MATLAB.
1. korak: Zaloge
Za izvedbo tega projekta boste morali zbrati:
- iRobotov bot sesalnika Create2 Roomba
- Malina Pi
- Raspberry Pi kamera
- Najnovejša različica programa MATLAB
- Orodjarna za namestitev Roomba za MATLAB
- MATLAB aplikacija za mobilno napravo
2. korak: Izjava o težavi
Nalogo smo imeli uporabiti MATLAB za razvoj roverja, ki bi ga lahko uporabili na Marsu, da bi znanstvenikom pomagali pri zbiranju podatkov o planetih. Naloge, ki smo jih obravnavali v našem projektu, so bile daljinsko upravljanje, prepoznavanje vpliva objekta, prepoznavanje vode, prepoznavanje življenja in obdelava slik. Da bi dosegli te podvige, smo z ukazi orodne vrstice Roomba kodirali za upravljanje številnih funkcij iRobotove datoteke Create2 Roomba.
Korak: Daljinski upravljalnik Bluetooth
Ta diapozitiv bo predstavil kodo za nadzor gibanja Roombe z zmožnostjo Bluetooth vaše pametne naprave. Za začetek prenesite aplikacijo MATLAB v pametni telefon in se prijavite v svoj račun Mathworks. Ko ste prijavljeni, pojdite na "več", "nastavitve" in se povežite z računalnikom z njegovim naslovom IP. Ko ste povezani, se vrnite na "več" in izberite "senzorji". Dotaknite se tretjega senzorja v zgornji orodni vrstici zaslona in tapnite Start. Zdaj je vaš pametni telefon daljinski upravljalnik!
Koda je naslednja:
medtem ko je 0 == 0
premor (.5)
PhoneData = M. Orientation;
Azi = PhoneData (1);
Nagib = PhoneData (2);
Stranska stran = PhoneData (3);
izbokline = r.getBumpers;
če je stran> 80 || Stransko <-80
r.stop
r.beep ('C, E, G, C^, G, E, C')
prekiniti
elseif Side> 20 && Side <40
r.turnAngle (-5);
drugače stran> 40
r.turnAngle (-25);
elseif Side-40
r.turnAngle (5);
elseif stran <-40
r.turnAngle (25);
konec
če je Pitch> 10 && Pitch <35
r.moveDistance (.03)
elseif Nagib> -35 && Nagib <-10
r.moveDistance (-. 03)
konec
konec
4. korak: Prepoznavanje vpliva
Druga funkcija, ki smo jo izvedli, je bila zaznati vpliv Roombe na objekt in nato popraviti njegovo trenutno pot. Da bi to naredili, smo morali uporabiti pogojne vrednosti z odčitki senzorjev odbijača, da smo ugotovili, ali je bil predmet udarjen. Če robot zadene predmet, se bo umaknil za 0,2 metra in se vrtel pod kotom, ki ga določi udarci v odbijač. Ko pritisnete element, se prikaže meni z besedo "oof".
Koda je prikazana spodaj:
medtem ko je 0 == 0
izbokline = r.getBumpers;
r.setDriveVelocity (.1)
če 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)
konec
konec
5. korak: Prepoznavanje življenja
Kodirali smo sistem za prepoznavanje življenja za branje barv predmetov pred njim. Tri vrste življenja, za katere smo kodirali, so rastline, voda in tujci. V ta namen smo senzorje kodirali za izračun povprečnih vrednosti rdeče, modre, zelene ali bele barve. Te vrednosti so primerjali s pragi, ki so bili ročno nastavljeni za določitev barve, ki jo kamera gleda. Koda bi narisala tudi pot do predmeta in ustvarila zemljevid.
Koda je naslednja:
t = 10;
i = 0;
medtem ko je t == 10
img = r.getImage; imshow (img)
premor (0,167)
i = i + 1;
rdeče_pomen = povprečje (povprečje (img (:,:, 1)));
modro_pomen = povprečje (povprečje (img (:,:, 3)));
zeleno_pomen = povprečje (povprečje (img (:,:, 2)));
white_mean = (blue_mean + green_mean + red_mean) / 3; %želi ta val približno 100
nine_plus_ten = 21;
green_threshold = 125;
blue_threshold = 130;
white_threshold = 124;
red_threshold = 115;
medtem ko nine_plus_ten == 21 %zeleno - življenje
če green_mean> green_threshold && blue_mean <blue_threshold && red_mean <red_threshold
r.moveDistance (-. 1)
a = msgbox ('možen vir življenja najden, lokacija narisana');
premor (2)
izbriši (a)
[y2, Fs2] = zvočno branje ('z_speak2.wav');
zvok (y2, Fs2)
premor (2)
%rastlina = r.getImage; %imshow (obrat);
%prihranka ('plant_img.mat', rastlina ');
%lokacije parcele v zeleni barvi
i = 5;
prekiniti
drugače
nine_plus_ten = 19;
konec
konec
nine_plus_ten = 21;
medtem ko nine_plus_ten == 21 %modra - woder
če blue_mean> blue_threshold && green_mean <green_threshold && white_mean <white_threshold && red_mean <red_threshold
r.moveDistance (-. 1)
a = msgbox ('vir vode je bil najden, lokacija narisana');
premor (2)
izbriši (a)
[y3, Fs3] = zvočno branje ('z_speak3.wav');
zvok (y3, Fs3);
%woder = r.getImage; %imshow (woder)
%prihranka ('water_img.mat', woder)
%lokacije ploskve v modri barvi
i = 5;
prekiniti
drugače
nine_plus_ten = 19;
konec
konec
nine_plus_ten = 21;
medtem ko nine_plus_ten == 21 %bela - tujci monkaS
če white_mean> white_threshold && blue_mean <blue_threshold && green_mean <green_threshold
[y5, Fs5] = zvočno branje ('z_speak5.wav');
zvok (y5, Fs5);
premor (3)
r.setDriveVelocity (0,.5)
[ys, Fss] = zvočno branje ('z_scream.mp3');
zvok (ys, Fss);
premor (3)
r.stop
% tujec = r.getImage; %imshow (tujec);
% prihrani ('alien_img.mat', tujec);
i = 5;
prekiniti
drugače
nine_plus_ten = 19;
konec
konec
če je i == 5
a = 1; %kot zavoja
t = 9; %konča veliko zanko
i = 0;
konec
konec
6. korak: Zaženite !
Ko je koda napisana, jo združite v eno datoteko in voila! Vaš Roomba bot bo zdaj popolnoma funkcionalen in bo deloval, kot je oglaševano! Kontrolnik Bluetooth mora biti bodisi v ločeni datoteki bodisi ločen od preostale kode z %%.
Uživajte v uporabi svojega robota !!
Priporočena:
Pretvarjanje vaše Roombe v Mars Rover: 5 korakov
Pretvarjanje vaše Roombe v Mars Rover:
Mars Rover z uporabo Raspberry Pi: 5 korakov
Mars Rover z uporabo Raspberry Pi: Dragi vsi odlični učenci, vedno me zanima, kakšen je Mars rover, ki ima 6 koles, ki lahko gredo po vsej površini Marsa in raziskujejo stvari z Zemlje. Rad bi raziskal tudi to, da sedim na prenosnem računalniku. Zato mislim, da je pravi čas, da to naredim in
Raspberry Pi - avtonomni Mars Rover s sledenjem objektom OpenCV: 7 korakov (s slikami)
Raspberry Pi - avtonomni Mars Rover s sledenjem objektov OpenCV: Poganja ga Raspberry Pi 3, funkcija prepoznavanja odprtih CV -jev, ultrazvočni senzorji in motorji z enosmernim tokom. Ta rover lahko sledi vsakemu objektu, za katerega je usposobljen, in se premika po katerem koli terenu
Mars Roomba Project UTK: 4 koraki
Mars Roomba Project UTK: OPOZORILO: TO BO DELOVALO SAMO, ČE JE ROOMBA NA VSAK POSEBEN NAČIN NASTAVLJENA, TO NAVODILO JE USTVARIL IN NAMENUJAL UPORABLJATI UNIVERZA TENENZENCEV UČENCEV IN FACULTY To kodo uporabite za to napisano in s
IRobot Create-Mars Expedition Rover Mark I: 4 koraki
IRobot Create-Mars Expedition Rover Mark I: Ta navodila vas bodo naučila, kako nastaviti iRobot Create s kodiranjem MatLab. Vaš robot bo imel možnost iskanja mineralov z razlikovanjem oblik, manevriranjem po neravnem terenu s pomočjo senzorjev pečine in zmožnostjo