Përmbajtje:
- Hapi 1: Furnizimet
- Hapi 2: Deklarata e problemit
- Hapi 3: Telekomanda Bluetooth
- Hapi 4: Njohja e Ndikimit
- Hapi 5: Njohja e jetës
- Hapi 6: Drejtojeni !
Video: Mars Roomba: 6 hapa
2024 Autor: John Day | [email protected]. E modifikuara e fundit: 2024-01-30 12:20
Ky udhëzues do t'ju udhëzojë në drejtimet e funksionimit të një boti vakumi Roomba të kontrolluar nga Raspberry Pi. Sistemi operativ që do të përdorim është përmes MATLAB.
Hapi 1: Furnizimet
Çfarë ju nevojitet për të mbledhur për të realizuar këtë projekt:
- bot iRobot's Create2 Roomba fshesë me korrent
- Mjedër Pi
- Kamera Raspberry Pi
- Versioni i fundit i MATLAB
- Kutia e veglave të instalimit Roomba për MATLAB
- Aplikimi MATLAB për një pajisje celulare
Hapi 2: Deklarata e problemit
Ne u ngarkuam të përdorim MATLAB për të zhvilluar një rover që mund të përdoret në Mars në mënyrë që të ndihmojmë shkencëtarët në mbledhjen e të dhënave të planetit. Funksionet që trajtuam në projektin tonë ishin kontrolli në distancë, njohja e ndikimit të objektit, njohja e ujit, njohja e jetës dhe përpunimi i imazhit. Për të arritur këto arritje, ne koduam duke përdorur komandat e kutisë së veglave Roomba për të manipuluar me shumë funksione të iRobot's Create2 Roomba.
Hapi 3: Telekomanda Bluetooth
Ky rrëshqitje do të përshkojë kodin për të kontrolluar lëvizjen e Roomba duke përdorur aftësitë Bluetooth të pajisjes tuaj smartphone. Për të filluar, shkarkoni aplikacionin MATLAB në smartphone tuaj dhe regjistrohuni në llogarinë tuaj Mathworks. Pasi të jeni regjistruar, shkoni te "më shumë", "cilësimet" dhe lidheni me kompjuterin tuaj duke përdorur adresën e tij IP. Pasi të lidheni, kthehuni te "më shumë" dhe zgjidhni "sensorë". Trokitni lehtë mbi sensorin e tretë në shiritin e sipërm të veglave të ekranit dhe trokitni lehtë mbi fillimin. Tani, smartphone juaj është një telekomandë!
Kodi është si më poshtë:
ndërsa 0 == 0
pauzë (.5)
Të dhëna telefonike = M. Orientimi;
Azi = Të dhënat telefonike (1);
Fusha = Të dhënat telefonike (2);
Ana = Të dhënat e telefonit (3);
gunga = r.getBumpers;
nëse Ana> 80 || Ana <-80
r.ndaloj
r.beep ('C, E, G, C^, G, E, C')
pushim
elseif Ana> 20 && Ana <40
r.krahAngle (-5);
elseif Ana> 40
r.rryp Këndi (-25);
elseif Ana-40
r. ktheseAngle (5);
elseif Ana <-40
r.krahAngle (25);
fund
nëse katran> 10 && katran <35
r.moveDistanca (.03)
elseif Fusha> -35 && Katran <-10
r.moveDistanca (-. 03)
fund
fund
Hapi 4: Njohja e Ndikimit
Një funksion tjetër që ne zbatuam ishte zbulimi i ndikimit të Roomba në një objekt dhe më pas korrigjimi i rrugës së tij aktuale. Për ta bërë këtë, na u desh të përdorim kushte me leximet nga sensorët e parakolpit për të përcaktuar nëse objekti ishte goditur. Nëse roboti godet një objekt, ai do të mbështetet.2 metra dhe do të rrotullohet në një kënd të përcaktuar nga i cili është goditur parakolpi. Pasi një artikull është goditur, shfaqet një meny që shfaq fjalën "oof".
Kodi është treguar më poshtë:
ndërsa 0 == 0
gunga = r.getBumpers;
r.setDriveVelocity (.1)
nëse përplaset.majtas == 1
msgbox ('Oof!');
r.moveDistanca (-0.2)
r.setTurnVelocity (.2)
r.tornAngle (-35)
r.setDriveVelocity (.2)
goditjet elseif.front == 1
msgbox ('Oof!');
r.moveDistanca (-0.2)
r.setTurnVelocity (.2)
r. turnAngle (90)
r.setDriveVelocity (.2)
gunga elseif.djathtas == 1
msgbox ('Oof!');
r.moveDistanca (-0.2)
r.setTurnVelocity (.2)
r. turnAngle (35)
r.setDriveVelocity (.2)
gunga elseif.leftDheelDrop == 1
msgbox ('Oof!');
r.moveDistanca (-0.2)
r.setTurnVelocity (.2)
r.tornAngle (-35)
r.setDriveVelocity (.2)
goditjet elseif.drejtaRrotaDrop == 1
msgbox ('Oof!');
r.moveDistanca (-0.2)
r.setTurnVelocity (.2)
r. ktheseAngle (35)
r.setDriveVelocity (.2)
fund
fund
Hapi 5: Njohja e jetës
Ne koduam një sistem të njohjes së jetës për të lexuar ngjyrat e objekteve para tij. Tre llojet e jetës për të cilat kemi koduar janë bimët, uji dhe alienët. Për ta bërë këtë, ne koduam sensorët për të llogaritur vlerat mesatare të kuqe, blu, jeshile ose të bardhë. Këto vlera u krahasuan me pragjet që u vendosën manualisht për të përcaktuar ngjyrën që shikon kamera. Kodi gjithashtu do të vizatojë rrugën drejt objektit dhe krijimin e një harte.
Kodi është si më poshtë:
t = 10;
i = 0;
ndërsa t == 10
img = r.getImage; imshow (img)
pauzë (0.167)
i = i + 1;
e kuqe_kuptim = mesatarja (mesatarja (img (:,:, 1)));
blu_kuptimi = mesatarja (mesatarja (img (:,,, 3)));
gjelbër_kuptimi = mesatarja (mesatarja (img (:,,, 2))));
kuptimi_bardhë = (kuptimi_ blu] + kuptimi jeshil + kuptimi i kuq] / 3; %e duan këtë vlerë përafërsisht 100
nëntë_plus_dhjetë = 21;
pragu_gjelbër = 125;
pragu_ blu = 130;
pragu_bardhë = 124;
pragu i kuq = 115;
ndërsa nëntë_plus_ten == 21 %e gjelbër - jetë
nëse green_mean> pragu i_gjelbër && blue_mean <blu_threshold && red_mean <red_threshold
r.moveDistanca (-. 1)
a = msgbox ('burimi i mundshëm i jetës u gjet, vendndodhja e vizatuar');
pauzë (2)
fshi (a)
[y2, Fs2] = audioread ('z_speak2.wav');
tingull (y2, Fs2)
pauzë (2)
%bimë = r.getImage; %imshow (bimë);
%kurse ('plant_img.mat', bimë ');
%vendndodhja e komplotit me ngjyrë të gjelbër
i = 5;
pushim
tjeter
nëntë_plus_dhe = 19;
fund
fund
nëntë_plus_dhjetë = 21;
ndërsa nine_plus_ten == 21 %blu - mëndafsh
nëse blu_mean> pragu_ blu && green_mean <gjelbër_thresh && white_mean <bardhë_threshold && red_mean <red_threshold
r.moveDistanca (-. 1)
a = msgbox ('është gjetur një burim uji, vendndodhja e planifikuar');
pauzë (2)
fshi (a)
[y3, Fs3] = audioread ('z_speak3.wav');
tingull (y3, Fs3);
%woder = r.getImage; %imshow (woder)
%kursim ('water_img.mat', fshirje me ujë)
%vendndodhja e komplotit në ngjyrë blu
i = 5;
pushim
tjeter
nëntë_plus_dhe = 19;
fund
fund
nëntë_plus_dhjetë = 21;
ndërsa nine_plus_ten == 21 %e bardhë - alienet monkaS
nëse white_mean> pragu_ i bardhë && blu_mean <blu_threshold && green_mean <green_threshold
[y5, Fs5] = audioread ('z_speak5.wav');
tingull (y5, Fs5);
pauzë (3)
r.setDriveVelocity (0,.5)
[ys, Fss] = audioread ('z_scream.mp3');
tingull (ys, Fss);
pauzë (3)
r.ndaloj
% alien = r.getImage; %imshow (i huaj);
% kurse ('alien_img.mat', alien);
i = 5;
pushim
tjeter
nëntë_plus_dhe = 19;
fund
fund
nëse i == 5
a = 1; %kthesë në kënd
t = 9; %përfundojë lak të madh
i = 0;
fund
fund
Hapi 6: Drejtojeni !
Pasi të jetë shkruar i gjithë kodi, kombinojini të gjitha në një skedar dhe voila! Boti juaj Roomba tani do të jetë plotësisht funksional dhe do të funksionojë siç reklamohet! Sidoqoftë, kontrolli Bluetooth duhet ose të jetë në një skedar të veçantë ose të ndahet nga pjesa tjetër e kodit me %%.
Kënaquni duke përdorur robotin tuaj !!
Recommended:
Ktheni dhomën tuaj në një Mars Rover: 5 hapa
Ktheni dhomën tuaj në një Mars Rover:
Mars Rover duke përdorur Raspberry Pi: 5 hapa
Mars Rover Duke përdorur Raspberry Pi: I dashur Mësues i Madh, unë jam gjithmonë kurioz të di për mars rover, Duke pasur 6 rrota që mund të kalojnë në të gjithë sipërfaqen e Marsit dhe të eksplorojnë gjëra nga Toka. Unë gjithashtu dua të eksploroj diçka duke u ulur në laptopin tim. Pra, tani e kuptoj se është koha e duhur për ta bërë atë dhe
Raspberry Pi - Mars Rover Autonome me Ndjekje Objekti OpenCV: 7 hapa (me fotografi)
Raspberry Pi - Mars Rover Autonom me Ndjekjen e Objekteve OpenCV: Mundësuar nga Raspberry Pi 3, Njohja e objekteve të CV të hapura, sensorë tejzanor dhe motorë DC të drejtuar. Ky rover mund të gjurmojë çdo objekt për të cilin është stërvitur dhe të lëvizë në çdo terren
Projekti Mars Roomba UTK: 4 hapa
Projekti Mars Roomba UTK: Mospranimi: KJO VETLM PUN NFSE ROOMBA SSHT PRFUNDUAR NAY MAYNYR SHUM SPECIFIKE, K INT IN UDHZUESE SHT C KRIJUAR DHE Q T PEDRDORUR PR UNIVERSITETIN E STUDENTVE TEN TENENCIS AND DHE FAKULTETI Ky kod përdoret për lokalizim. e shkruar dhe s
IRobot Krijo-Mars Expedition Rover Mark I: 4 hapa
IRobot Create-Mars Expedition Rover Mark I: Ky udhëzues do t'ju mësojë se si të konfiguroni iRobot Create duke përdorur kodimin MatLab. Roboti juaj do të ketë aftësinë për të kërkuar minerale duke dalluar format, manovruar në terren të thyer përmes përdorimit të sensorëve të shkëmbinjve dhe ka aftësinë