Përmbajtje:
- Hapi 1: Materialet e nevojshme
- Hapi 2: Konfigurimi/Shkarkimi
- Hapi 3: Kodi Pjesa 1: Funksioni i Ndjekjes
- Hapi 4: Kodi Pjesa 2: Ndërsa Lak
- Hapi 5: Kodi Pjesa 3: Seksioni i Email -it
Video: Projekti UTK EF 230 MarsRoomba Vjeshtë 2018: 5 hapa
2024 Autor: John Day | [email protected]. E modifikuara e fundit: 2024-01-30 12:24
Aktualisht, roverët e Marsit përdoren për të mbledhur të dhëna në sipërfaqen e Marsit përmes metodave të ndryshme, për të përfunduar përfundimisht për të mësuar më shumë rreth potencialit të planetit për jetë mikrobike. Roverët përdorin kryesisht fotografi dhe mjete të analizës së tokës për mbledhjen e të dhënave, por roverët gjithashtu përfshijnë instrumente lundrimi, detektorë rrezatimi, sensorë atmosferikë dhe një lazer për avullimin e mostrës së shkëmbit. Qëllimi i misionit të planifikuar të rover 2020 është kryesisht i njëjtë, por me detyrën e veçantë për të "mbledhur mostra të tokës dhe shkëmbit dhe t'i ruajë ato në sipërfaqe për kthimin e mundshëm në Tokë nga një mision i ardhshëm", sipas NASA -s.
Sidoqoftë, nën premisën se roverët e ardhshëm do të përdoren për ndihmë njerëzore, ekipi ynë shqyrtoi se cilat aspekte të njerëzve roveri mund të monitoronte. Ne arritëm në përfundimin se nëse ndonjë urgjencë e bën një astronaut të pavetëdijshëm me ndihmën dhe pajisjet e dështuara të jetës, roveri ynë mund të shërbejë si një fener i lëvizshëm i mëngjesit duke vëzhguar se astronauti që ndoqi është i palëvizshëm dhe transmeton një mesazh shqetësimi. Për të ndjekur njeriun dhe për të përcaktuar palëvizshmërinë, roveri do të merrte informacione të tilla si ngjyra e këpucëve të njeriut dhe lëvizja e tyre. Një kontribut tjetër për t'u marrë parasysh është se do të duhej të mbante mend rrugën e tij në mënyrë që të transmetonte një sinjal shqetësimi në rast emergjence. Roveri ynë plotëson një nevojë në Mars në atë që përpjekja për një mision kaq të kushtueshëm në një terren të tillë të huaj kërkon shtresa të shumta të kasafortave, dhe nëse një astronaut nuk është në gjendje të marrë ndihmën e tyre për shkak të mosfunksionimit ose pavetëdijes, roveri mund të paralajmërojë të tjerët Me
Ky udhëzues është krijuar për të ndihmuar lexuesin në programimin e Roomba të tij ose të saj që të ndjekë me sukses një "astronaut" dhe të dërgojë një sinjal shqetësimi nëse është e aplikueshme.
Hapi 1: Materialet e nevojshme
1) Kompjuter/laptop me qasje në internet
2) MATLAB_R2018a
3) Roomba dhe Roomba Shkarko
Hapi 2: Konfigurimi/Shkarkimi
Drejtoni këtë skenar në MATLAB në mënyrë që të shkarkoni programin e nevojshëm për të hyrë në Roomba (i ruajtur në skedarin e tij në dosjen e projektit)
Ndihmë shtesë:
% Programi i instalimit për EF 230 Roomba Project% Përditësimi i fundit: 13 shtator 2017 (Çështje të rregulluara të sigurisë të lidhura me serverin https dhe heqjen e paralajmërimit të fshirjes së skedarit nëse ndodhin gabime) funksion roombaInstall clc; % lista e skedarëve për instalimin e skedarëve = {'roomba.m', 'roombaSim.m', 'roombaSimGUI.m', 'roombaSimGUI.fig'}; % vendndodhje për t'u instaluar nga opsionet = zgjedhjet në internet ('CertificateFilename', ''); % i thuaj që të injorojë kërkesat e certifikatës server = 'https://ef.engr.utk.edu/ef230/projects/roomba-f2016/install/'; dlgTitle = 'Instalo/Përditëso Roomba'; % shfaqja e qëllimit dhe marrja e kërkesës së konfirmimit = {'Ky program do të shkarkojë këto skedarë EF 230 Roomba:' '' strjoin (skedarët, '') '' 'në këtë dosje:' '' cd '' 'A doni të vazhdoni? '}; biep; yn = questdlg (shpejtë,… dlgTitle,… 'Po', 'Jo', 'Po');
nëse ~ strcmp (yn, 'Po'), kthehu; fund
% merrni listën e skedarëve që ekzistojnë_file ekzistues = skedarë (argëtimi i qelizave (@exist, skedarët)> 0); nëse ~ është i zbrazët (skedarët_ekzistues) % sigurohuni që është me të vërtetë mirë t'i zëvendësoni ato shpejtë = {'Po i zëvendësoni këto skedarë (e):' '' strjoin (skedarët_ ekzistues, '') '' 'OK për të zëvendësuar?' }; biep; yn = questdlg (shpejtë,… dlgTitle,… 'Po', 'Jo', 'Po'); nëse ~ strcmp (yn, 'Po'), kthehu; fund fund
% shkarko skedarët cnt = 0; për i = 1: gjatësia (skedarët) f = skedarët {i}; disp (['Shkarkimi' f]); provo url = [server f]; websave (f, url, opsionet); % opsione të shtuara për të shmangur gabimet e sigurisë cnt = cnt + 1; kap disp (['Gabim në shkarkim' f]); bedel = [f '.html']; nëse ekziston (bedel, 'file') == 2 fshini (bedel) fundin e fundit
nëse cnt == gjatësia (skedarët) msg = 'Instalimi është i suksesshëm'; waitfor (msgbox (msg, dlgTitle)); else msg = 'Gabim në instalim - shiko dritaren e komandës për detaje'; waitfor (errordlg (msg, dlgTitle)); fund
fund %roombaInstall
Hapi 3: Kodi Pjesa 1: Funksioni i Ndjekjes
Ky funksion merr ndryshoren Roomba dhe fotografinë nga kamera në Roomba dhe gjen koordinatat qendrore xy të objektit të gjurmuar
Ruajeni këtë kod në një skedar tjetër në të njëjtën dosje.
funksioni [xm, ym] = ndjekja e ngjyrës blu (r) %Inputet: variabli roomba %Rezultatet: vlera x dhe y e qendrës së objektit të mëposhtëm %Qëllimi: gjen qendrën e një objekti blu të dhënë një imazh %Përdorimi [vlera x, y vlera] = blu ndjekja (ndryshorja e dhomës) img = r.getImage; % lexon kamerën jashtë nën -komplotit robot (1, 2, 2) nën -imazh (img); %tregon imazhin në të njëjtën dritare me titullin e shtegut ('Tracking Image') red = img (:,,, 1); jeshile = img (:,:, 2); blu = img (:,,, 3); justBlue = blu - jeshile/2 - e kuqe/2; bw = vetëm Blu> 40; mbajeni nënlotën (1, 2, 2) nën -imazhin (bw); [x, y] = gjej (bw); nëse ~ e zbrazët (x) && ~ e zbrazët (y) xm = e rrumbullakët (mesatarja (x)); ym = e rrumbullakët (mesatarja (y)); xx = max (1, xm-5): min (xm+5, madhësia (bw, 1)); yy = max (1, ym-5): min (ym+5, madhësia (bw, 2)); bwbw = zero (madhësia (bw), 'uint8'); bwbw (xx, yy) = 255; mbaj nën -figurën (1, 2, 2) nën -imazh (justBlue + bwbw); fund
Hapi 4: Kodi Pjesa 2: Ndërsa Lak
Ky kod drejton Roomba bazuar në vendndodhjen x dhe y të objektit nga funksioni i gjurmimit. Kjo do ta bëjë Roomba të ketë kujdes për muret dhe shkëmbinjtë, ndërsa kërkon blu. Kjo gjithashtu do të marrë koordinatat x dhe y të shtegut Roomba dhe do të krijojë një komplot përkatës me imazhin e përcjelljes. Nëse sensori i përplasjes aktivizohet, ai do të kalojë në seksionin e postës elektronike
%Projekti Rover
%Jonah Zahn, Wade Price, Noah Sloan %jzahn2, wprice15, nsloan1 %Inputet: vlera e dhomës, të dhënat e kamerës, sensorët e përplasjes, dritës dhe murit %Qëllimi: Ndjek astronautin dhe shmang pengesat. Nëse paralajmërohet, roomba dërgon një email me detaje mbi një hartë dhe ku është sipas pozicionit të saj të fillimit. %Përdorimi: thjesht ekzekutoni programin duke deklaruar një ndryshore roomba, gjithashtu %kanë një objekt të gjelbër në lëvizje %Rezultatet: tregon figurën e përcjelljes së imazhit, hartën e postës elektronike dhe tekstin tek përdoruesi %% Pas Seksionit b = 0; %Fillimi i variablave c = 0; x = 0; y = 0; theta = 0; ndërsa c == 0 %Loop për ta bërë atë të zbulojë objektin blu dhe pengesat t = r.timeGet; d = r.getDistance; [xval, yval] = blu ndjekja (r); shkëmb = getCliffSensors (r); %inicializimi i strukturave për vlerat e sensorit drita = getLightBumpers (r); përplasem = getBumpers (r); nëse drita.leftCenter> = 10 || light.rightCenter> = 10 % Kupton nëse ka një mur pranë r.stop r.setLEDDigits ('ndihmë') c = 1 % ndërsa b == 0 % nëse përplasem.djathtas == 1 || përplasem.majtas == 1 || bump.front == 1 % Ndjen nëse ka përplasur diçka pasi ndjen një mur % c = 1 % b = 1 % disp ('përplasje') % fund % fund elseif përplasje.djathtas == 1 || përplasem.majtas == 1 || bump.front == 1 %Kupton nëse ka përplasur diçka, nëse po, do të dërgojë një email r.stop c = 1 b = 1 elseif cliff.leftFront <= 100 || shkëmb.djathtas Përpara <= 100 || shkemb.majtas <= 100 || cliff.right <= 100 %Kupton nëse ka një shkëmb pranë r.ndaloni c = 1 r.setLEDDigits ('ndihmë') tjetër %Vendos shpejtësitë e makinës për të ndjekur ngjyrën blu nëse yval = 100 r.setDriveVelocity (0.1) elseif yval 400 r. KtheseAngle (-5) fundi theta = theta + r.getAngle; x = d.*cosd (theta) + x; % x koordinata e dhomës y = d.*sind (theta).*d + y; koordinata % y e nënplotës së roomba (1, 2, 1) komplot (x, y, 'bd') % vizaton shtegun dhe shton një titull titulli ('Rruga Roomba') mbajeni; fund
Hapi 5: Kodi Pjesa 3: Seksioni i Email -it
Kjo do të marrë rrugën dhe imazhin e vizatuar dhe do t'i dërgojë në një adresë emaili të specifikuar
(Shfaqet këtu me shembull email)
%% Seksioni i Email -it
nëse b == 1 saveas (gcf, 'rovermap.png') %ruan setpref të figurës ('Internet', 'SMTP_Server', 'smtp.gmail.com'); setpref ('Internet', 'E_mail', '[email protected]'); % llogari postare për t'u dërguar nga setpref ('Internet', 'SMTP_Username', '[email protected]'); % dërgues i emrit të përdoruesit setpref ('Internet', 'SMTP_Password', 'gssegsse'); % Sends props password = java.lang. System.getProperties; props.setProperty ('mail.smtp.auth', 'true'); props.setProperty ('mail.smtp.socketFactory.class', 'javax.net.ssl. SSLSocketFactory'); props.setProperty ('mail.smtp.socketFactory.port', '465'); sendmail ('email shembull', 'RoverBeacon', 'Astronauti ka ndaluar së lëvizuri. Për shërim, ndiqni udhëzimet në skedarin e bashkangjitur.', 'rovermap.png') disp ('email u dërgua') fund
Recommended:
Projekti Robot UTK 2017: 3 Hapa
Projekti Robot UTK 2017: Misioni: Ekipi ynë i inxhinierëve është punësuar nga Froogle, një fondacion jofitimprurës për zhvillimin e teknologjisë me burim të hapur, për të zhvilluar një ekip inovativ Mars Assisting Human Rover.-Out " rover " është një roomba që kemi koduar për të ekzekutuar një seri
Venus Flytrap - ITM Vjeshtë 2019: 5 hapa
Venus Flytrap - ITM Vjeshtë 2019: Çfarë mungon në tryezën e të gjithëve? Një Venus Flytrap mekanik që mban lapsa, stilolapsa dhe objekte të tjera
Projekti ITTT 2018 - Toka: 5 hapa
Projekti ITTT 2018 | Toka: Përshëndetje! Shkolla ime më dha një projekt ku më duhej të krijoja një sistem interaktiv duke përdorur Arduino dhe ta ndërtoja atë në jetën reale. Vendosa të krijoj një glob botëror ku ndërveprimi juaj me sensorë dhe butona do të ndriçojë vendet dhe do ta bëjë globin të rrotullohet.
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
Si të bëni një Garland Apple për vjeshtë ose përsëri në shkollë: 13 hapa (me fotografi)
Si të bëni një kurorë molle për vjeshtë ose përsëri në shkollë: Anjeanette, e RootsAndWingsCo e bëri këtë kurorë të adhurueshme të mollës nga ndjerë dhe material. Ishte një projekt i thjeshtë që mund ta bëjnë edhe ata që thonë se nuk mund të qepin! (Për sa kohë që ju mund të lidhni gjilpërën tuaj.)