Sisällysluettelo:
- Vaihe 1: Tarvittavat materiaalit
- Vaihe 2: Asennus/lataus
- Vaihe 3: Koodi Osa 1: Seuranta
- Vaihe 4: Koodi Osa 2: Silmukka
- Vaihe 5: Koodi Osa 3: Sähköpostiosio
Video: UTK EF 230 MarsRoomba -hanke syksyllä 2018: 5 vaihetta
2024 Kirjoittaja: John Day | [email protected]. Viimeksi muokattu: 2024-01-30 09:02
Tällä hetkellä Mars -rovereita käytetään tietojen keräämiseen Marsin pinnalla eri menetelmillä, jotta voimme oppia lisää planeetan mahdollisuuksista mikrobielämään. Roverit käyttävät pääasiassa valokuvaus- ja maaperäanalyysityökaluja tietojen keräämiseen, mutta rovereihin kuuluu myös navigointivälineitä, säteilyilmaisimia, ilmakehän antureita ja laser kivinäytehöyrystystä varten. Suunniteltu rover -tehtävän 2020 tavoite on enimmäkseen sama, mutta sen erityistehtävänä on "kerätä näytteitä maaperästä ja kivestä ja tallentaa ne välimuistiin pinnalle tulevaa tehtävää varten palatakseen", NASAn mukaan.
Olettaen kuitenkin, että tulevia kulkijoita käytetään ihmisten avuksi, tiimimme pohti, mitä rovers -ihmisiä voisi seurata. Tulimme siihen johtopäätökseen, että jos jokin hätätilanteessa astronautti menettää tajuntansa, jos elintoimintoja ja varusteita ei ole, roverimme voisi toimia liikkuvana majakkavalona havaitsemalla, että sen seuraama astronautti on liikkumaton ja välittää hätäsanoman. Seuratakseen ihmistä ja määrittääkseen liikkumattomuuden rover ottaisi tietoja, kuten ihmisen kenkien värin ja niiden liikkeen. Toinen huomioon otettava tieto on, että sen on muistettava polkunsa voidakseen välittää hätäsignaalin hätätilanteessa. Kuljettajamme täyttää Marsin tarpeet siinä mielessä, että tällaisen kalliin tehtävän suorittaminen tällaisella vieraalla maastolla vaatii useita kerroksia vikasuojaa, ja jos astronautti ei pysty saamaan omaa apua toimintahäiriön tai tajuttomuuden vuoksi, rover voi varoittaa muita.
Tämä ohje on suunniteltu auttamaan lukijaa ohjelmoimaan Roombaansa seuraamaan "astronauttia" ja lähettämään tarvittaessa hätäsignaalin.
Vaihe 1: Tarvittavat materiaalit
1) Internet -yhteys tietokone/kannettava tietokone
2) MATLAB_R2018a
3) Lataa Roomba ja Roomba
Vaihe 2: Asennus/lataus
Suorita tämä komentosarja MATLABissa ladataksesi Roomban käyttämiseen tarvittavat ohjelmistot (tallennettu omaan tiedostoonsa projektikansioon)
Lisäapua:
% EF 230 Roomba Project -asennusohjelma% Viimeisin päivitys: 13. syyskuuta 2017 (Korjatut suojausongelmat, jotka liittyvät https -palvelimeen ja poistetun tiedoston poistovaroitus, jos virheitä ilmenee) function roombaInstall clc; % luettelo asennettavista tiedostoista = {'roomba.m', 'roombaSim.m', 'roombaSimGUI.m', 'roombaSimGUI.fig'}; % sijainti asennettavaksi vaihtoehdoista = weboptions ('CertificateFilename', ''); % käske ohittaa varmennevaatimukset palvelin = 'https://ef.engr.utk.edu/ef230/projects/roomba-f2016/install/'; dlgTitle = 'Roomban asennus/päivitys'; % näyttötarkoitus ja vahvistuskehote = {'Tämä ohjelma lataa nämä EF 230 Roomba -tiedostot:' '' strjoin (tiedostot, '') '' '' tähän kansioon: '' 'cd' '' Haluatko jatkaa? '}; piippaus; yn = questdlg (kehote,… dlgTitle,… 'Kyllä', 'Ei', 'Kyllä');
jos ~ strcmp (yn, 'Kyllä'), palaa; loppuun
% get luettelo tiedostoista olemassa olevista_files = files (cellfun (@exist, files)> 0); jos ~ isempty (olemassa olevat_tiedostot) % varmista, että on todella hyvä korvata ne. }; piippaus; yn = questdlg (kehote,… dlgTitle,… 'Kyllä', 'Ei', 'Kyllä'); jos ~ strcmp (yn, 'Kyllä'), palaa; loppu loppu
% lataa tiedostot cnt = 0; i = 1: pituus (tiedostot) f = tiedostot {i}; disp (['Ladataan' f]); kokeile url = [palvelin f]; web -tallennus (f, url, vaihtoehdot); % lisävaihtoehtoja suojausvirheiden välttämiseksi cnt = cnt + 1; catch disp (['Virhe ladattaessa' f]); nukke = [f '.html']; jos on olemassa (dummy, 'file') == 2 poista (dummy) end end end end
if cnt == pituus (tiedostot) msg = 'Asennus onnistui'; odota (msgbox (msg, dlgTitle)); else msg = 'Asennusvirhe - katso lisätietoja komentoikkunasta'; waitfor (errordlg (msg, dlgTitle)); loppuun
end %roombaInstall
Vaihe 3: Koodi Osa 1: Seuranta
Tämä toiminto ottaa Roomba -muuttujan ja Roomban kameran kuvan ja löytää seuratun kohteen keskikohdat xy
Tallenna tämä koodi samaan kansioon toiseen tiedostoon.
function [xm, ym] = trackingblue (r) %Tulot: roomba muuttuja %Lähdöt: x ja y seuraavan objektin keskipisteen arvo %Tarkoitus: löytää sinisen objektin keskipisteen, kun kuva on %Käyttö [x arvo, y value] = trackingblue (roomba -muuttuja) img = r.getImage; % lukee kameran pois robotin aliosasta (1, 2, 2) alikuvasta (img); %näyttää kuvan samassa ikkunassa kuin polun otsikko ('Seurantakuva') punainen = img (:,:, 1); vihreä = img (:,:, 2); sininen = img (:,:, 3); justBlue = sininen - vihreä/2 - punainen/2; bw = justBlue> 40; pidä alakuvauksessa (1, 2, 2) alikuvassa (bw); [x, y] = löytää (bw); jos ~ isempty (x) && ~ isempty (y) xm = pyöreä (keskiarvo (x)); ym = pyöreä (keskiarvo (y)); xx = max (1, xm-5): min (xm+5, koko (bw, 1)); yy = max (1, ym-5): min (ym+5, koko (bw, 2)); bwbw = nollia (koko (bw), 'uint8'); bwbw (xx, yy) = 255; pidä aliosaa (1, 2, 2) alikuvana (justBlue + bwbw); loppuun
Vaihe 4: Koodi Osa 2: Silmukka
Tämä koodi ajaa Roomban seurantatoiminnon objektin x- ja y -sijainnin perusteella. Tämä saa Roomban varomaan muureja ja kallioita etsiessään sinistä. Tämä ottaa myös Roomba -polun x- ja y -koordinaatit ja luo vastaavan kuvaajan seurantakuvan kanssa. Jos törmäysanturi aktivoidaan, se siirtyy sähköpostiosioon
%Rover -projekti
%Jonah Zahn, Wade Price, Noah Sloan %jzahn2, wprice15, nsloan1 %Tulot: roomba -arvo, kameratiedot, törmäys-, valo- ja seinäanturit %Tarkoitus: Seuraa astronauttia ja välttää esteitä. Jos hälytys lähetetään, roomba lähettää sähköpostiviestin, jossa kerrotaan kartasta ja missä se on lähtöasennon mukaan. %Käyttö: suorita vain ohjelma, jossa on ilmoitettu roomba -muuttuja, ja myös %: lla on liikkuva vihreä esine %Lähdöt: näyttää kuvan seurantakuvan, sähköpostin kartan ja tekstin käyttäjälle %% Seuraa osaa b = 0; %Alustetaan muuttujat c = 0; x = 0; y = 0; teeta = 0; kun taas c == 0 %Silmukka, jotta se havaitsee sinisen kohteen ja esteet t = r.timeGet; d = r.getDistance; [xval, yval] = seuranssininen (r); cliff = getCliffSensors (r); %rakenteiden alustaminen anturin arvoille valo = getLightBumpers (r); kolahtaa = getBumpers (r); jos valo.leftCenter> = 10 || light.rightCenter> = 10 % Tunnistaa, jos seinän lähellä on r.stop r.setLEDDigits ('help') c = 1 %, kun taas b == 0 %, jos kolahtaa.right == 1 || bump.left == 1 || bump.front == 1 % Tunnistaa, jos se on törmännyt johonkin sen jälkeen, kun se havaitsee seinän % c = 1 % b = 1 % disp ('bump') % end % end elseif bump.right == 1 || bump.left == 1 || bump.front == 1 %Tunnistaa, jos se on törmännyt johonkin, jos niin, se lähettää sähköpostia r.stop c = 1 b = 1 elseif cliff.leftFront <= 100 || cliff.rightFront <= 100 || kallio.vasen <= 100 || cliff.right <= 100 %Tunnistaa, jos kallio on lähellä r.stop c = 1 r.setLEDDigits ('help') else %Asettaa ajonopeudet seuraamaan sinistä, jos yval = 100 r.setDriveVelocity (0,1) elseif yval 400 r.turnAngle (-5) end end theta = theta + r.getAngle; x = d.*cosd (teeta) + x; % x huoneen koordinaatti y = d.*sind (theta).*d + y; % y -koordinaatti roomba -alitavasta (1, 2, 1) juoni (x, y, 'bd') % piirtää polun ja lisää otsikon otsikon ('Roomba -polku') odota; loppuun
Vaihe 5: Koodi Osa 3: Sähköpostiosio
Tämä vie piirretyn polun ja kuvan ja lähettää sen määritettyyn sähköpostiosoitteeseen
(Näytetään tässä esimerkkisähköpostilla)
%% Sähköposti -osio
jos b == 1 saveas (gcf, 'rovermap.png') %tallentaa luvun setpref ('Internet', 'SMTP_Server', 'smtp.gmail.com'); setpref ('Internet', 'Sähköposti', '[email protected]'); % sähköpostitili lähetettäväksi osoitteesta setpref ('Internet', 'SMTP_Username', '[email protected]'); % lähettäjien käyttäjätunnus setpref ('Internet', 'SMTP_Password', 'gssegsse'); % Lähettäjien salasana rekvisiitta = 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 ('esimerkki sähköposti', 'RoverBeacon', 'Astronautti on lakannut liikkumasta. Toipumiseen noudata liitteenä olevan tiedoston ohjeita.', 'rovermap.png') disp ('email sent') end
Suositeltava:
230 V AC -lampun muuntaminen USB -virtalähteeksi!: 6 vaihetta (kuvilla)
230 V AC-lampun muuntaminen USB-virtalähteeksi !: Löysin eBayssa nämä siistit liekkivaikutteiset lamput, jotka välkkyvät ja joissa on hienovarainen animaatio. Niiden virtalähteenä on yleensä 85-265 V: n verkkovirta, mutta kannettavat sovellukset, kuten väärennetty palava taskulamppu tai lyhty, tämä ei ole ihanteellinen
Robottiprojekti UTK 2017: 3 vaihetta
Robottiprojekti UTK 2017: Tehtävä: Froogle, joka on avoimen lähdekoodin teknologian kehittämisen voittoa tavoittelematon säätiö, on palkannut insinööritiimimme kehittämään innovatiivisen Human Assisting Mars Rover.-Out -tiimin " rover " on roomba, jonka koodasimme suorittamaan sarjan
Generaattori - Fidget Spinner 9W LED -lamppu 230 V: 3 vaihetta (kuvilla)
Generaattori - Fidget Spinner, virtalähde 9 W: n LED -lamppu 230 V: Alla olevilla riveillä haluamme näyttää, kuinka voimakas heilahdusgeneraattori voidaan luoda. Se tuottaa alussa 100 volttia vaihtovirtaa ja voi sytyttää 230 V 9 W. Löytö
EF 230: Kotijärjestelmä 3000 Ohjeellinen: 4 vaihetta
EF 230: Home System 3000 Ohjeellinen: Home System 3000 on laite, joka käyttää Arduinoa, lämpötila -anturia, pietsosummeria, optista ilmaisinta/valotransistoria ja servoa näyttääkseen tapoja parantaa kodin energiatehokkuutta
Mars Roomba Project UTK: 4 vaihetta
Mars Roomba -projekti UTK: VASTUUVAPAUSLAUSEKE: TÄMÄ TOIMII VAIN, JOS ROOMBA ON MÄÄRITETTY ERITTÄIN TÄLLÄ, TÄMÄ OHJE on luotu ja sen on tarkoitus käyttää TENNESSEE -YLIOPISTOJEN JA FACULTY -palvelun avulla. Tämän koodin avulla voidaan määrittää kirjoitettu ja s