Kazalo:

Marsov izvidniški robot: 4 koraki
Marsov izvidniški robot: 4 koraki

Video: Marsov izvidniški robot: 4 koraki

Video: Marsov izvidniški robot: 4 koraki
Video: СТРАННЫЕ НОВОСТИ НЕДЕЛИ - 44 | Таинственный | Вселенная | НЛО | Паранормальный 2024, Julij
Anonim
Mars izvidniški robot
Mars izvidniški robot

Ta Instructable je vodnik po korakih za programiranje in upravljanje Mars Reconnaissance Robot.

Za začetek je treba pridobiti seznam naslednjih materialov: Napolnjen iRobot, ustvarjen po meri Tickle College of Eningeering Univerisity v Tennesseeju, Brezžično omrežje, ki je povezano z Raspberry Pi v iRobotu, UTK iRobot ustvarja polnilec, ki podpira Wi-Fi računalnik z dostopom do MATLAB -a in interneta.

Korak: Roomba Toolbox

Orodjarna Roomba
Orodjarna Roomba

Odprite MATLAB in ustvarite novo mapo za kodne datoteke, ki bodo shranjene v vašem projektu. V MATLAB -u odprite nov skript in zaženite spodnjo kodo. Ko se skript zažene, dodajte novo mapo v imenik, kjer MATLAB išče datoteke.

Koda:

funkcija roombaInstallclc; % seznam datotek za namestitev datotek = {'roomba.m', 'roombaSim.m', 'roombaSimGUI.m', 'roombaSimGUI.fig'}; % lokacija za namestitev iz možnosti = weboptions ('CertificateFilename', ''); % mu povejte, naj prezre zahteve za certifikate server = 'https://ef.engr.utk.edu/ef230/projects/roomba-f2016/install/'; dlgTitle = 'Namestitev/posodobitev Roombe'; % display name in get prompt prompt = {'Ta program bo prenesel te datoteke EF 230 Roomba:' '' strjoin (files, '') '' '' v to mapo: '' 'cd' '' Ali želite nadaljevati? '}; pisk; yn = questdlg (poziv, … dlgTitle,… 'Da', 'Ne', 'Da');

če ~ strcmp (yn, 'Da'), vrni; konec

% get seznam datotek, ki obstajajo obstoječe_files = datoteke (cellfun (@exist, files)> 0); if ~ isempty (existing_files) % se prepričajte, da jih je res v redu zamenjati prompt = {'Zamenjate te datoteke (datoteke):' '' strjoin (existing_files, '') '' 'OK to replace?' }; pisk; yn = questdlg (poziv, … dlgTitle,… 'Da', 'Ne', 'Da'); če ~ strcmp (yn, 'Da'), vrni; konec konec

% prenese datoteke cnt = 0; za i = 1: dolžina (datoteke) f = datoteke {i}; disp (['Prenos' f]); poskusite url = [strežnik f]; websave (f, url, možnosti); % dodanih možnosti za izogibanje varnostnim napakam cnt = cnt + 1; catch disp (['Napaka pri nalaganju' f]); lutka = [f '.html']; če obstaja (lažna, 'datoteka') == 2 izbriši (lažna) konec end end

if cnt == length (files) msg = 'Namestitev je uspela'; waitfor (msgbox (msg, dlgTitle)); else msg = 'Napaka pri namestitvi - za podrobnosti glej ukazno okno'; waitfor (errordlg (msg, dlgTitle)); konec

end %roombaInstall

2. korak: Priprava na povezavo

Priprava na povezavo
Priprava na povezavo
Priprava na povezavo
Priprava na povezavo

Priključite mikro-USB, ki štrli iz robota, na spodnja vrata Raspberry Pi. Nato na vrhu Roombe hkrati pritisnite in pridržite gumbe za priklopno postajo in spot, dokler lučka na Roombi ne zatemni. Ko izdate Roombo, bi morali slišati elektronsko tehtnico.

3. korak: Povežite se z robotom

Povezovanje z robotom
Povezovanje z robotom

Odprite razpoložljiva omrežja v računalniku in izberite obstoječe omrežje med računalnikom in Raspberry Pi. V trenutni mapi MATLAB z desno miškino tipko kliknite trenutno mapo projekta in izberite orodno zbirko roomba, preneseno v 1. koraku, in jo dodajte na pot. V omrežju, ki je zasnovano za več povezav Pi, podajte svojega robota tako, da ustvarite predmet razreda Roomba. Glej spodnji primer

Če imate številko 7 dodeljeno Roombo, vnesite naslednje:

r = roomba (7)

%Ne pozabite, da je ta spremenljivka zdaj dodeljena roombi, vsak ukaz, ki ga poda robot, mora voditi dodeljena spremenljivka.

4. korak: Koda

Koda
Koda

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

S pomočjo zgornje povezave shranite vse datoteke.m v dano mapo, kjer se bo zagnal glavni program. Povezava mora biti odprta za vse, ki jo imajo. Odprite nov skript v trenutni mapi in zaženite mycontrolprogram.m, kot je prikazano spodaj:

funkcija mycontrolprogram (r) globalno m m = mobiledev; emailInit (); tek = 1; globalno f globalno štetje = 0; f = r; globalni direc direc = 0; r.getAngle; r.getDistance; globalni curLoc curLoc = [0, 0]; globalne točke pts = ničle (1, 2, 2); ročno = res; graphObs (1); v = 0,15; medtem ko šteje <50, če (ročno == napačno) obsDetect (r, v, pts); direc = direc + r.getAngle; r.setLEDDigits (num2str (count)); else direc = direc + r.getAngle; manualDrive (); konec konec figSend (); konec

Robot bi moral zdaj opravljati svoje načrtovano delo.

Priporočena: