Sisukord:
- Samm: vajalikud materjalid
- Samm: seadistamine/allalaadimine
- 3. samm: kood 1. osa: jälgimisfunktsioon
- 4. samm: kood 2. osa: silmuse ajal
- 5. samm: kood 3. osa: e -posti jaotis
Video: UTK EF 230 MarsRoomba projekti sügis 2018: 5 sammu
2024 Autor: John Day | [email protected]. Viimati modifitseeritud: 2024-01-30 08:49
Praegu kasutatakse Marsi kulgureid andmete kogumiseks Marsi pinnal erinevate meetodite abil, et lõplikult õppida rohkem planeedi potentsiaalist mikroobide eluks. Roverid kasutavad andmete kogumiseks peamiselt fotograafiat ja pinnaseanalüüsi tööriistu, kuid roverite hulka kuuluvad ka navigeerimisseadmed, kiirgusdetektorid, atmosfääriandurid ja kivimiproovide aurustamiseks mõeldud laser. Kavandatava 2020. aasta roveri missiooni eesmärk on enamasti sama, kuid eriülesandega on NASA andmetel „koguda pinnase- ja kivimiproove ning salvestada need vahemällu, et tulevane missioon võimaldaks Maale tagasi pöörduda”.
Eeldusel, et tulevasi rovereid kasutatakse inimeste abistamiseks, kaalus meie meeskond, milliseid inimeste aspekte saab rover jälgida. Jõudsime järeldusele, et kui mõni hädaolukord peaks astronaudi teadvuseta jätma, kui elutoetus ja varustus on ebaõnnestunud, võiks meie kulgur olla mobiilne majakas, jälgides, et tema järgitud astronaut on liikumatu ja edastab hädasõnumi. Inimese jälgimiseks ja liikumatuse kindlakstegemiseks võtaks rover sisendeid, näiteks inimese kingade värvi ja nende liikumist. Teine sisend, mida tuleb arvestada, on see, et hädaolukorra korral hädasignaali edastamiseks peab see oma teed meeles pidama. Meie rover vastab Marsi vajadustele, kuna sellise kuluka missiooni proovimine sellisel võõral maastikul nõuab mitut kihti tõrkeseifi ja kui astronaut ei saa rikke või teadvusetuse tõttu ise abi saada, võib rover teisi hoiatada.
See juhend on mõeldud lugejale abiks oma Roomba programmeerimisel, et edukalt "astronauti" jälgida, ja vajadusel hädasignaali saatmiseks.
Samm: vajalikud materjalid
1) Interneti -juurdepääsuga arvuti/sülearvuti
2) MATLAB_R2018a
3) Roomba ja Roomba allalaadimine
Samm: seadistamine/allalaadimine
Käivitage see skript MATLABis, et alla laadida Roombale juurdepääsuks vajalik tarkvara (salvestatud projekti kausta oma faili)
Täiendav abi:
% EF 230 Roomba projekti installiprogramm% Viimane värskendus: 13. september 2017 (Parandatud https -serveriga seotud turvaprobleemid ja vigade ilmnemisel eemaldatud faili kustutamise hoiatus) function roombaInstall clc; % installitavate failide loendist = {'roomba.m', 'roombaSim.m', 'roombaSimGUI.m', 'roombaSimGUI.fig'}; % asukoht installimiseks valikutest = weboptions ('CertificateFilename', ''); % käsib tal ignoreerida sertifikaadi nõudeid server = 'https://ef.engr.utk.edu/ef230/projects/roomba-f2016/install/'; dlgTitle = 'Roomba installimine/värskendamine'; % kuva eesmärk ja saada kinnituse viip = {'See programm laadib alla need EF 230 Roomba failid:' '' strjoin (failid, '') '' '' sellesse kausta: '' 'cd' '' Kas soovite jätkata? '}; piiks; yn = questdlg (kiire,… dlgTitle,… 'Jah', 'Ei', 'Jah');
kui ~ strcmp (yn, 'Jah'), tagasta; lõpp
% saada olemasolevate failide loend olemasolevad_failid = failid (cellfun (@exist, files)> 0); kui ~ isempty (olemasolevad_failid) % veenduge, et nende asendamine on tõesti ok. }; piiks; yn = questdlg (kiire,… dlgTitle,… 'Jah', 'Ei', 'Jah'); kui ~ strcmp (yn, 'Jah'), tagasta; lõpp lõpp
% failide allalaadimine cnt = 0; i = 1 jaoks: pikkus (failid) f = failid {i}; disp (['Allalaadimine' f]); proovige url = [server f]; veebisalvestus (f, url, valikud); % lisatud võimalusi turvavigade vältimiseks cnt = cnt + 1; catch disp (['Viga allalaadimisel' f]); näiv = [f '.html']; kui on olemas (näiv, 'fail') == 2 kustuta (näiv) lõpp lõpp
if cnt == pikkus (failid) msg = 'Installimine õnnestus'; waitfor (msgbox (msg, dlgTitle)); else msg = 'Paigaldusviga - üksikasju vaata käsuaknast'; waitfor (errordlg (msg, dlgTitle)); lõpp
end %roombaInstall
3. samm: kood 1. osa: jälgimisfunktsioon
See funktsioon võtab Roomba muutuja ja pildi Roomba kaamerast ning leiab jälgitava objekti xy keskkoordinaadid
Salvestage see kood samasse kausta teise faili.
funktsioon [xm, ym] = trackingblue (r) %Sisendid: roomba muutuja %Väljundid: x ja y järgmise objekti keskpunkti väärtus %Eesmärk: otsib pildi järgi sinise objekti keskpunkti %Kasutus [x väärtus, y väärtus] = jälgimissinine (roomba muutuja) img = r.getImage; % loeb kaamera välja roboti alamjoonise (1, 2, 2) alampildilt (img); %näitab pilti samas aknas kui tee pealkiri ('Jälgipilt') red = img (:,:, 1); roheline = img (:,:, 2); sinine = img (:,:, 3); justBlue = sinine - roheline/2 - punane/2; bw = justBlue> 40; hoidke alamjoonist (1, 2, 2) alampilti (bw); [x, y] = leid (bw); kui ~ isempty (x) && ~ isempty (y) xm = round (mean (x)); ym = ümmargune (keskmine (y)); xx = max (1, xm-5): min (xm+5, suurus (bw, 1)); yy = max (1, ym-5): min (ym+5, suurus (bw, 2)); bwbw = nullid (suurus (bw), 'uint8'); bwbw (xx, yy) = 255; hoidke alamplaani (1, 2, 2) alampilti (justBlue + bwbw); lõpp
4. samm: kood 2. osa: silmuse ajal
See kood juhib Roomba jälgimisfunktsiooni objekti x ja y asukoha alusel. See paneb Roomba jälgima seinu ja kaljusid, otsides samal ajal sinist värvi. See võtab ka Roomba tee x- ja y -koordinaadid ning loob jälgimispildiga vastava graafiku. Kui põrkeandur on aktiveeritud, liigub see edasi e -posti sektsiooni
%Roveri projekt
%Jonah Zahn, Wade Price, Noah Sloan %jzahn2, wprice15, nsloan1 %Sisendid: roomba väärtus, kaamera andmed, löök, valguse ja seina andurid Kui hoiatatakse, saadab roomba e -kirja %, mis kirjeldab üksikasjalikult kaarti ja asukohta vastavalt lähtepositsioonile. %Kasutamine: lihtsalt käivitage programm, kus on deklareeritud roomba muutuja, samuti %on liikuv roheline objekt %Väljundid: kuvab kasutajale pildi jälgimise pildi, meilide kaardi ja teksti %% Pärast jaotist b = 0; %Muutujate initsialiseerimine c = 0; x = 0; y = 0; teeta = 0; samas c == 0 %Loop, et see tuvastaks sinise objekti ja takistused t = r.timeGet; d = r.getDistance; [xval, yval] = jälgimissinine (r); kalju = getCliffSensors (r); %struktuuride initsialiseerimine anduri väärtuste jaoks valgus = getLightBumpers (r); muhk = getBumpers (r); kui valgus.leftCenter> = 10 || light.rightCenter> = 10 % Tunnetab, kui r.stop r.setLEDDigits ('abi') lähedal on sein, c = 1 %, samas kui b == 0 %, kui põrkub. parem == 1 || muhk.vasak == 1 || bump.front == 1 % Tunnetab, kui on pärast seina tuvastamist midagi põrutanud % c = 1 % b = 1 % disp ('bump') % end % end elseif bump.right == 1 || muhk.vasak == 1 || bump.front == 1 %Tajub, kui on midagi põrutanud, kui jah, saadab ta meili r.stop c = 1 b = 1 elseif cliff.leftFront <= 100 || cliff.rightFront <= 100 || kalju.vasak <= 100 || cliff.right <= 100 %Tundub, kui kalju asub r.stop c = 1 r.setLEDDigits ('help') else %Määrab ajami kiirused, mis järgivad sinist, kui yval = 100 r.setDriveVelocity (0,1) elseif yval 400 r.turnAngle (-5) otsa lõpp theta = theta + r.getAngle; x = d.*cosd (teeta) + x; toa % x koordinaat y = d.*sind (teeta).*d + y; Roomba alamjoonise % y koordinaat (1, 2, 1) graafik (x, y, 'bd') % joonistab tee ja lisab pealkirja pealkirja ('Roomba tee') ootele; lõpp
5. samm: kood 3. osa: e -posti jaotis
See võtab joonistatud tee ja pildi ning saadab selle määratud e -posti aadressile
(Siin näidatud näite e -postiga)
%% Meilijaotis
kui b == 1 saveas (gcf, 'rovermap.png') %salvestab figuuri setpref ('Internet', 'SMTP_Server', 'smtp.gmail.com'); setpref ('Internet', 'E_mail', '[email protected]'); % meilikonto saatmiseks aadressilt setpref ('Internet', 'SMTP_Username', '[email protected]'); % saatjate kasutajanimi setpref ('Internet', 'SMTP_Password', 'gssegsse'); % Saatjate salasõna rekvisiidid = 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 ('näite e -post', 'RoverBeacon', 'Astronaut on liikumise lõpetanud. Taastumiseks järgige lisatud failis toodud juhiseid.', 'rovermap.png') disp ('e -kiri saadetud') lõpp
Soovitan:
230 V vahelduvvoolupirni muutmine USB -toiteallikaks!: 6 sammu (piltidega)
230 V vahelduvvoolupirni teisendamine USB-toiteallikaks !: leidsin eBayst need korralikud leegiefektiga pirnid, mis vilguvad ja on sisseehitatud peene animatsiooniga. Neid toidab tavaliselt 85–265 V vahelduvvooluvõrgu sisend, kuid kaasaskantavate rakenduste jaoks, näiteks võlts leekiv taskulamp või latern pole ideaalne. Ma muudan
Robotiprojekt UTK 2017: 3 sammu
Robotiprojekt UTK 2017: Missioon: meie inseneride meeskonna on palganud avatud lähtekoodiga tehnoloogiaarenduse mittetulundusühing Froogle, et töötada välja uuenduslik Human Assisting Mars Rover.-Out meeskonnad " rover " on roomba, mille kodeerisime sarja teostamiseks
Generaator - Fidget Spinner toidab 9 W LED -pirni 230 V: 3 sammu (koos piltidega)
Generaator - Fidget Spinner, mille toiteallikaks on 9 W LED -pirn 230 V: Allolevatel ridadel soovime näidata, kuidas saab luua võimsa nihestusgeneraatori. See tekitab alguses 100 volti vahelduvvoolu ja saab süüdata 230 V 9 W. LED -pirni. Hariv projekt, kasutades vaid mõnda materjali. Leia
Venus Flytrap - ITM sügis 2019: 5 sammu
Venus Flytrap - ITM sügis 2019: mis on puudu igaühe laualt? Mehaaniline Veenuse kärbsenäpp, kuhu mahuvad pliiatsid, pastakad ja muud esemed
Mars Roomba projekt UTK: 4 sammu
Mars Roomba Project UTK: LAHTIÜTLUS: See toimib ainult siis, kui ROOMBA seadistatakse väga konkreetsel viisil, see juhend loodi ja kavatseti kasutada TENNESSEE ÜLIKOOLI JA FACULTY poolt kirjutatud ja s