Talaan ng mga Nilalaman:
- Hakbang 1: Kailangan ng Mga Materyales
- Hakbang 2: Pag-setup / Pag-download
- Hakbang 3: Bahagi ng Code 1: Pag-andar ng Pagsubaybay
- Hakbang 4: Bahagi ng Code 2: Habang Mag-loop
- Hakbang 5: Bahagi ng Code 3: Seksyon ng Email
Video: UTK EF 230 MarsRoomba Project Fall 2018: 5 Hakbang
2024 May -akda: John Day | [email protected]. Huling binago: 2024-01-30 13:14
Sa kasalukuyan, ginagamit ang Mars rovers upang mangolekta ng data sa ibabaw ng Mars sa pamamagitan ng iba't ibang mga pamamaraan, sa huling pagtatapos ng pag-alam nang higit pa tungkol sa potensyal ng planeta para sa buhay na microbial. Pangunahin na ginagamit ng mga Rovers ang mga tool sa pagkuha ng litrato at pagsusuri sa lupa para sa koleksyon ng data, ngunit nagsasama rin ang mga rovers ng mga instrumento sa nabigasyon, mga detector ng radiation, mga sensor ng atmospera, at isang laser para sa rock sample na pagsingaw. Ang layunin ng nakaplanong 2020 rover misyon ay halos pareho, ngunit may espesyal na gawain na "mangolekta ng mga sample ng lupa at bato at i-cache ang mga ito sa ibabaw para sa potensyal na pagbabalik sa Earth ng isang hinaharap na misyon," ayon sa NASA.
Gayunpaman, sa ilalim ng saligan na gagamitin ang mga rovers sa hinaharap para sa tulong ng tao, isinasaalang-alang ng aming koponan kung anong mga aspeto ng mga tao ang maaaring subaybayan ng rover. Napagpasyahan namin na dapat ang ilang emerhensiya ay walang malay na isang astronaut na may pagkabigo sa suporta at mga kagamitan sa buhay, ang aming rover ay maaaring magsilbing isang mobile mayday beacon sa pamamagitan ng pagmamasid na ang sinusundan na astronaut ay hindi kumikilos at nagpapasa ng isang mensahe ng pagkabalisa. Upang sundin ang tao at matukoy ang kawalang-kilos, ang rover ay kukuha ng mga input tulad ng kulay ng sapatos ng tao at ang kanilang galaw. Ang isa pang input na isasaalang-alang ay na maaalala nito ang landas nito upang makapag-relay ng isang signal ng pagkabalisa sa kaso ng emerhensiya. Natutugunan ng aming rover ang isang pangangailangan sa Mars na ang pagtatangka ng isang napakahalagang misyon sa naturang banyagang lupain ay nangangailangan ng maraming mga layer ng mga kabiguan, at kung ang isang astronaut ay hindi makakakuha ng kanilang sariling tulong dahil sa nababagay sa hindi gumana o walang malay, ang rover ay maaaring alertuhan ang iba.
Ang Instructable na ito ay dinisenyo upang tulungan ang mambabasa sa pagprograma ng kanyang Roomba upang matagumpay na sundin ang isang "astronaut" at upang magpadala ng isang signal ng pagkabalisa kung naaangkop.
Hakbang 1: Kailangan ng Mga Materyales
1) Computer / laptop na naa-access sa Internet
2) MATLAB_R2018a
3) Pag-download ng Roomba at Roomba
Hakbang 2: Pag-setup / Pag-download
Patakbuhin ang script na ito sa MATLAB upang mai-download ang software na kinakailangan upang ma-access ang Roomba (nai-save sa sarili nitong file sa folder ng proyekto)
Karagdagang Tulong:
% Programang Pag-install para sa EF 230 Roomba Project% Huling pag-update: Setyembre 13, 2017 (Naayos ang mga isyu sa seguridad na nauugnay sa https server at inalis ang babala sa pag-delete ng file kung may naganap na mga error) function roombaInstall clc; % listahan ng mga file upang mai-install ang mga file = {'roomba.m', 'roombaSim.m', 'roombaSimGUI.m', 'roombaSimGUI.fig'}; % lokasyon upang mai-install mula sa mga pagpipilian = weboptions ('CertificateFilename', ''); % sabihin ito upang huwag pansinin ang mga kinakailangan ng sertipiko server = 'https://ef.engr.utk.edu/ef230/projects/roomba-f2016/install/'; dlgTitle = 'Roomba Install / Update'; % layunin ng pagpapakita at makakuha ng prompt na kumpirmasyon = {'Ang program na ito ay mag-download ng mga EF 230 Roomba file:' '' strjoin (mga file, '') '' 'sa folder na ito:' '' cd '' 'Nais mo bang magpatuloy? '}; beep; yn = questdlg (prompt,… dlgTitle, … 'Oo', 'Hindi', 'Oo');
kung ~ strcmp (yn, 'Oo'), bumalik; magtapos
% makakuha ng listahan ng mga file na umiiral na mga_files = file (cellfun (@exist, mga file)> 0); kung ~ isempty (existing_files)% siguraduhin na ok lang talaga na palitan ang mga ito prompt = {'Pinapalitan mo ang (mga) file na ito:' '' strjoin (existing_files, '') '' 'OK upang palitan?' }; beep; yn = questdlg (prompt,… dlgTitle, … 'Oo', 'Hindi', 'Oo'); kung ~ strcmp (yn, 'Oo'), bumalik; pagtatapos ng wakas
% i-download ang mga file cnt = 0; para sa i = 1: haba (mga file) f = mga file {i}; disp (['Pagda-download' f]); subukan ang url = [server f]; websave (f, url, mga pagpipilian); % nagdagdag ng mga pagpipilian upang maiwasan ang mga error sa seguridad cnt = cnt + 1; catch disp (['Error sa pag-download ng' f]); dummy = [f '.html']; kung mayroon (dummy, 'file') == 2 tanggalin (dummy) ang end end end
kung cnt == haba (mga file) msg = 'Matagumpay na Pag-install'; waitfor (msgbox (msg, dlgTitle)); else msg = 'Error sa Pag-install - tingnan ang window ng utos para sa mga detalye'; waitfor (errordlg (msg, dlgTitle)); magtapos
magtapos% roombaInstall
Hakbang 3: Bahagi ng Code 1: Pag-andar ng Pagsubaybay
Ang pagpapaandar na ito ay tumatagal ng variable ng Roomba at ang larawan mula sa camera sa Roomba at hahanapin ang gitna xy mga coordinate ng na-track na object
I-save ang code na ito sa isa pang file sa parehong folder.
function [xm, ym] = trackingblue (r)% Inputs: variable ng roomba% Mga Output: x at y halaga ng gitna ng sumusunod na bagay% Layunin: hahanapin ang gitna ng isang asul na bagay na binigyan ng isang imahe% Paggamit [x halaga, y halaga] = trackingblue (variable ng roomba) img = r.getImage; % basahin ang camera off ng robot subplot (1, 2, 2) subimage (img); % ay nagpapakita ng imahe sa parehong window ng pamagat ng path ('Imahe ng Pagsubaybay') pula = img (:,:, 1); berde = img (:,:, 2); asul = img (:,:, 3); justBlue = asul - berde / 2 - pula / 2; bw = justBlue> 40; hawakan ang subplot (1, 2, 2) subimage (bw); [x, y] = hanapin (bw); kung ~ isempty (x) && ~ isempty (y) xm = bilog (mean (x)); ym = bilog (ibig sabihin (y)); xx = max (1, xm-5): min (xm + 5, laki (bw, 1)); yy = max (1, ym-5): min (ym + 5, laki (bw, 2)); bwbw = zero (laki (bw), 'uint8'); bwbw (xx, yy) = 255; hawakan ang subplot (1, 2, 2) subimage (justBlue + bwbw); magtapos
Hakbang 4: Bahagi ng Code 2: Habang Mag-loop
Hinahatid ng code na ito ang Roomba batay sa lokasyon ng x at y ng bagay mula sa pag-andar ng pagsubaybay. Gagawin nitong bantayan ang Roomba para sa mga dingding at bangin, habang naghahanap ng asul. Dadalhin din nito ang x at y na mga coordinate ng Roomba path at lilikha ng isang kaukulang plot na may imahe ng pagsubaybay. Kung ang sensor ng paga ay naisaaktibo ito ay lilipat sa seksyon ng email
% Ng Rover Project
% Jonah Zahn, Wade Presyo, Noah Sloan% jzahn2, wprice15, nsloan1% Mga input: halaga ng roomba, data ng camera, paga, ilaw at sensor ng dingding% Layunin: Sumusunod sa astronaut at iniiwasan ang mga hadlang. Kung nakaalerto, nagpapadala ang roomba ng isang email% na nagdedetalye ng isang mapa at kung saan ito ayon sa panimulang posisyon. % Paggamit: patakbuhin lamang ang programa na may pagdeklara ng variable ng roomba, mayroon ding% na gumagalaw na berdeng bagay% Mga Output: nagpapakita ng larawan ng pagsubaybay sa imahe, mga mapa ng email at teksto sa gumagamit %% Sumusunod sa Seksyon b = 0; % Inisyal ang mga variable c = 0; x = 0; y = 0; theta = 0; habang c == 0% Loop upang makita ito ng asul na object at mga hadlang na t = r.timeGet; d = r.getDistansya; [xval, yval] = trackingblue (r); bangin = getCliffSensors (r); % na nagpapasimula ng mga istraktura para sa sensor na nagkakahalaga ng ilaw = getLightBumpers (r); paga = getBumpers (r); kung light.leftCenter> = 10 || light.rightCenter> = 10% Senses kung mayroong dingding na malapit sa r.stop r.setLEDDigits ('help') c = 1% habang b == 0% kung bump. Right == 1 || bump.left == 1 || bump.front == 1% Senses kung may nabunggo na bagay pagkatapos nitong maramdaman ang isang pader% c = 1% b = 1% disp ('bump')% end% end elseif bump.right == 1 || bump.left == 1 || bump.front == 1% Senses kung may nabunggo na bagay, kung gayon, magpapadala ito ng isang email r.stop c = 1 b = 1 elseif cliff.leftFront <= 100 || cliff. RightFront <= 100 || cliff.left <= 100 || cliff. Right <= 100% Senses kung mayroong isang bangin na malapit sa r.stop c = 1 r.setLEDDigits ('tulong') iba pa% Itinatakda ang mga bilis ng biyahe upang sundin ang asul kung yval = 100 r.setDriveVelocity (0.1) kung hindi man 400 r.turnAngle (-5) end end theta = theta + r.getAngle; x = d. * cosd (theta) + x; % x coordinate ng roomba y = d. * sind (theta). * d + y; % y coordinate of the roomba subplot (1, 2, 1) plot (x, y, 'bd')% plot the path at nagdadagdag ng pamagat ng pamagat ('Roomba Path') na hawakan; magtapos
Hakbang 5: Bahagi ng Code 3: Seksyon ng Email
Dadalhin nito ang naka-plot na landas at imahe at ipadala ito sa isang tinukoy na email address
(Ipinapakita rito na may halimbawang email)
%% na Seksyon ng Email
kung b == 1 saveas (gcf, 'rovermap.png')% nai-save ang figure setpref ('Internet', 'SMTP_Server', 'smtp.gmail.com'); setpref ('Internet', 'E_mail', '[email protected]'); % mail account upang ipadala mula sa setpref ('Internet', 'SMTP_Username', '[email protected]'); % mga nagpadala username setpref ('Internet', 'SMTP_Password', 'gssegsse'); % Mga nagpadala ng password props = java.lang. System.getProperties; props.setProperty ('mail.smtp.auth', 'totoo'); props.setProperty ('mail.smtp.socketFactory.class', 'javax.net.ssl. SSLSocketFactory'); props.setProperty ('mail.smtp.socketFactory.port', '465'); sendmail ('halimbawang email', 'RoverBeacon', 'Ang astronaut ay tumigil sa paggalaw. Para sa paggaling, sundin ang mga direksyon sa naka-attach na file.', 'rovermap.png') disp ('ipinadala ang email') na pagtatapos
Inirerekumendang:
Robot Project UTK 2017: 3 Mga Hakbang
Robot Project UTK 2017: Mission: Ang aming koponan ng mga inhinyero ay tinanggap ng Froogle, isang pundasyong Nonprofit para sa pagpapaunlad ng teknolohiyang bukas na mapagkukunan, upang makabuo ng isang makabagong Human Helping Mars Rover.-Out na mga koponan " rover " ay isang roomba na naka-code upang maipatupad ang isang serye o
Venus Flytrap - ITM Fall 2019: 5 Hakbang
Venus Flytrap - ITM Fall 2019: Ano ang nawawala sa desk ng lahat? Isang mekanikal na Venus Flytrap na may hawak na mga lapis, panulat, at iba pang mga bagay
Mars Roomba Project UTK: 4 na Hakbang
Mars Roomba Project UTK: DISCLAIMER: ITO LANG ANG GAGAWIN KUNG ANG ROOMBA AY NA-SET UP SA LABING LALATANG PARAAN, ANG INSTRUCTABLE NA ITO AY GINAWA AT INGILING GAMIT NG UNIVERSITY OF TENNESSEE STUDENTS AND FACULTYAng code na ito ay ginagamit upang mag-set up ng isang Roomba upang tumakbo nang lokal. nakasulat at s
Paano Maglagay ng Pasadyang Imahe sa Iyong Xbox 360 Dashboard. (Pre Fall 08 Update): 8 Hakbang
Paano Maglagay ng Pasadyang Imahe sa Iyong Xbox 360 Dashboard. (Pre Fall 08 Update): Sa itinuturo na ito ay ipapakita ko sa iyo kung paano maglagay ng isang pasadyang imahe bilang iyong background sa iyong xbox 360. Mayroong parehong mga hakbang para sa paggawa nito sa ang bago at lumang dashboard. kapag nakakuha ako ng isang pagkakataon i-update ko ang buong bagay sa mga bagong larawan
Paano Gumawa ng Apple Garland para sa Fall o Bumalik sa Paaralan: 13 Hakbang (na may Mga Larawan)
Paano Gumawa ng Apple Garland para sa Fall o Bumalik sa Paaralan: Ginawa ni Anjeanette, ng RootsAndWingsCo ang kaibig-ibig na garland na ito ng mansanas mula sa nadama at materyal. Ito ay isang simpleng proyekto na kahit na ang mga nagsabing hindi nila kayang manahi ay maaaring gawin! (Hangga't maaari mong i-thread ang iyong karayom.)