Satura rādītājs:

Marsa iepazīšanās robots: 4 soļi
Marsa iepazīšanās robots: 4 soļi

Video: Marsa iepazīšanās robots: 4 soļi

Video: Marsa iepazīšanās robots: 4 soļi
Video: Mars Sample Return: Bringing Mars Rock Samples Back to Earth 2024, Jūlijs
Anonim
Marsa izlūkošanas robots
Marsa izlūkošanas robots

Šī pamācība ir pakāpeniska rokasgrāmata Marsa izlūkošanas robota programmēšanai un komandēšanai.

Lai sāktu, jums jāiegūst šādu materiālu saraksts: Uzlādēts iRobot izveidojums, ko pielāgojusi Tenesī Eninggeering Universitātes Tickle College, Bezvadu tīkls, kas ir savienots ar Raspberry Pi iRobot, UTK iRobot izveidot lādētāju, Wifi dators ar piekļuvi MATLAB un internetam.

1. darbība: Roomba Toolbox

Roomba Toolbox
Roomba Toolbox

Atveriet MATLAB un izveidojiet jaunu mapi kodu failiem, kas tiks saglabāti no jūsu projekta. Programmā MATLAB atveriet jaunu skriptu un palaidiet zemāk esošo kodu. Kad skripts ir izpildīts, pievienojiet jauno mapi direktorijai, kurā MATLAB meklē failus.

Kods:

funkcija roombaInstallclc; % instalējamo failu saraksts = {'roomba.m', 'roombaSim.m', 'roombaSimGUI.m', 'roombaSimGUI.fig'}; % atrašanās vieta, ko instalēt no options = weboptions ('CertificateFilename', ''); % sakiet, lai tas ignorētu sertifikātu prasību serveri = 'https://ef.engr.utk.edu/ef230/projects/roomba-f2016/install/'; dlgTitle = 'Roomba instalēšana/atjaunināšana'; % displeja mērķis un saņemt apstiprinājuma uzvedni = {'Šī programma lejupielādēs šos EF 230 Roomba failus:' '' strjoin (faili, '') '' '' šajā mapē: '' 'cd' '' Vai vēlaties turpināt? '}; pīkstiens; yn = questdlg (uzvedne,… dlgTitle,… 'Jā', 'Nē', 'Jā');

ja ~ strcmp (yn, 'Jā'), atgriezties; beigas

% get to failu saraksts, kas pastāv esošie_files = faili (cellfun (@exist, files)> 0); ja ~ isempty (esošie_faili) % pārliecinieties, vai tiešām ir pareizi tos nomainīt. }; pīkstiens; yn = questdlg (uzvedne,… dlgTitle,… 'Jā', 'Nē', 'Jā'); ja ~ strcmp (yn, 'Jā'), atgriezties; beigas beigas

% lejupielādēt failus cnt = 0; i = 1: garums (faili) f = faili {i}; disp (['Lejupielāde' f]); mēģiniet url = [serveris f]; tīmekļa saglabāšana (f, url, opcijas); % pievienotas iespējas, lai izvairītos no drošības kļūdām cnt = cnt + 1; catch disp (['Kļūda lejupielādējot' f]); fiktīvs = [f '.html']; ja pastāv (fiktīvs, 'fails') == 2 dzēst (fiktīvu) beigas beigas

if cnt == garums (faili) msg = 'Instalēšana veiksmīga'; gaidīt (msgbox (msg, dlgTitle)); else msg = 'Instalācijas kļūda - sīkāku informāciju skatīt komandu logā'; waitfor (errordlg (msg, dlgTitle)); beigas

end %roombaInstall

2. darbība. Sagatavošanās savienojumam

Gatavošanās savienojumam
Gatavošanās savienojumam
Gatavošanās savienojumam
Gatavošanās savienojumam

Pievienojiet mikro-USB, kas izvirzīts no robota, ar Raspberry Pi apakšējo portu. Pēc tam Roomba augšpusē vienlaikus nospiediet un turiet dokstacijas un vietas pogas, līdz Roomba gaisma izgaist. Pēc atbrīvošanas no Roomba vajadzētu dzirdēt elektronisko svaru.

3. darbība: izveidojiet savienojumu ar robotu

Savienojuma izveide ar robotu
Savienojuma izveide ar robotu

Atveriet datorā pieejamos tīklus un atlasiet esošo tīklu starp datoru un Raspberry Pi. MATLAB pašreizējā mapē ar peles labo pogu noklikšķiniet uz pašreizējās projekta mapes un atlasiet roomba rīkjoslu, kas lejupielādēta 1. darbībā un pievienota ceļam. Tīklā, kas paredzēts vairākiem Pi savienojumiem, norādiet savu robotu, izveidojot Roomba klases objektu. Skatiet piemēru zemāk

Ja jums ir Roomba piešķirts numurs 7, ievadiet šādu informāciju:

r = roomba (7)

Atcerieties, ka šis mainīgais tagad ir piešķirts roomba, jebkurai robotam dotajai komandai ir jāvada piešķirtais mainīgais.

4. solis: kods

Kods
Kods

drive.google.com/drive/folders/1OVR5oTHUsn…

Izmantojot iepriekš minēto saiti, saglabājiet visus.m failus attiecīgajā mapē, kurā tiks palaista galvenā programma. Saitei jābūt atvērtai visiem, kam ir saite. Atveriet jaunu skriptu pašreizējā mapē un palaidiet mycontrolprogram.m, kā redzams zemāk:

funkcija mycontrolprogram (r) global m m = mobiledev; emailInit (); skriešana = 1; globālais f globālais skaits = 0; f = r; globālais tiešais virziens = 0; r.getAngle; r.getDistance; globālais curLoc curLoc = [0, 0]; globālais pts pts = nulle (1, 2, 2); rokasgrāmata = taisnība; graphObs (1); v = 0,15; kamēr skaits <50, ja (manuāli == nepatiesi) obsDetect (r, v, pts); directc = direct + r.getAngle; r.setLEDDigits (num2str (skaits)); cits Direc = Direc + r.getAngle; manualDrive (); end end figSend (); beigas

Robotam tagad vajadzētu veikt savu paredzēto darbu.

Ieteicams: