Indholdsfortegnelse:

Mars Reconnaissance Robot: 4 trin
Mars Reconnaissance Robot: 4 trin

Video: Mars Reconnaissance Robot: 4 trin

Video: Mars Reconnaissance Robot: 4 trin
Video: Assembling the 4tronix M.A.R.S. Rover Kit 2024, November
Anonim
Mars Reconnaissance Robot
Mars Reconnaissance Robot

Denne instruerbare er en trin-for-trin guide til programmering og kommando af Mars Reconnaissance Robot.

For at starte skal man få en liste over følgende materialer: En opladet iRobot-skabt tilpasset af Tickle College of Eningeering University of Tennessee, et trådløst netværk, der er forbundet til Raspberry Pi i iRobot, UTK iRobot-oplader, Wifi-kompatibel computer med adgang til MATLAB og internettet.

Trin 1: Roomba Toolbox

Roomba værktøjskasse
Roomba værktøjskasse

Åbn MATLAB, og opret en ny mappe til kodefilerne, der skal gemmes fra dit projekt. I MATLAB skal du åbne et nyt script og køre koden herunder. Når scriptet er kørt, skal du tilføje den nye mappe til det bibliotek, hvor MATLAB leder efter filer.

Kode:

funktion roombaInstallclc; % liste over filer til installation af filer = {'roomba.m', 'roombaSim.m', 'roombaSimGUI.m', 'roombaSimGUI.fig'}; % placering at installere fra optioner = weboptioner ('CertificateFilename', ''); % bed den om at ignorere certifikatkrav server = 'https://ef.engr.utk.edu/ef230/projects/roomba-f2016/install/'; dlgTitle = 'Roomba -installation/opdatering'; % visningsformål og få bekræftelsesprompt = {'Dette program vil downloade disse EF 230 Roomba -filer:' '' strjoin (filer, '') '' 'til denne mappe:' '' cd '' 'Vil du fortsætte? '}; bip; yn = questdlg (prompt,… dlgTitle,… 'Ja', 'Nej', 'Ja');

hvis ~ strcmp (yn, 'Ja'), returneres; ende

% få liste over filer, der findes eksisterende_filer = filer (cellfun (@exist, filer)> 0); hvis ~ isempty (eksisterende_filer) % sørg for, at det virkelig er ok at udskifte dem prompt = {'Du erstatter disse fil (er):' '' strjoin (eksisterende_filer, '') '' 'OK at erstatte?' }; bip; yn = questdlg (prompt,… dlgTitle,… 'Ja', 'Nej', 'Ja'); hvis ~ strcmp (yn, 'Ja'), returneres; ende ende

% download filerne cnt = 0; for i = 1: længde (filer) f = filer {i}; disp (['Downloader' f]); prøv url = [server f]; websave (f, url, muligheder); % tilføjede muligheder for at undgå sikkerhedsfejl cnt = cnt + 1; catch disp (['Fejl ved download' f]); dummy = [f '.html']; hvis findes (dummy, 'fil') == 2 slet (dummy) ende ende ende

if cnt == length (files) msg = 'Installation vellykket'; waitfor (msgbox (msg, dlgTitle)); else msg = 'Installationsfejl - se kommandovinduet for detaljer'; waitfor (errordlg (msg, dlgTitle)); ende

slut %roombaInstall

Trin 2: Forberedelse af tilslutning

Forbereder tilslutning
Forbereder tilslutning
Forbereder tilslutning
Forbereder tilslutning

Tilslut mikro-USB, der stikker ud fra robotten, til bundporten på Raspberry Pi. Tryk derefter på dock- og spotknapperne samtidigt på toppen af Roomba, indtil lyset på Roomba dæmpes. Du bør høre en elektronisk vægt fra Roomba, når du slipper.

Trin 3: Tilslutning til robotten

Tilslutning til robotten
Tilslutning til robotten

Åbn de tilgængelige netværk på din computer, og vælg det eksisterende netværk mellem computeren og Raspberry Pi. I MATLABs aktuelle mappe skal du højreklikke på din aktuelle projektmappe og vælge roomba -værktøjskassen, der blev downloadet i trin 1, og tilføje til stien. I et netværk, der er designet til flere Pi -forbindelser, skal du angive din robot ved at oprette et objekt i klassen Roomba. Se eksempel herunder

Hvis du har en Roomba tildelt nummer 7, skal du indtaste følgende:

r = roomba (7)

%Husk, at denne variabel nu er tildelt roomba, enhver kommando, der er givet til robotten, skal ledes af den tildelte variabel.

Trin 4: Kode

Kode
Kode

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

Brug linket ovenfor til at gemme alle.m -filer i den givne mappe, hvor hovedprogrammet køres. Linket skal være åbent for alle, der har linket. Åbn et nyt script i den aktuelle mappe, og kør mycontrolprogram.m som vist nedenfor:

funktion mycontrolprogram (r) global m m = mobiledev; emailInit (); løb = 1; globalt f globalt tælletal = 0; f = r; global direc direc = 0; r.getAngle; r.getDistance; global curLoc curLoc = [0, 0]; globale pts pts = nuller (1, 2, 2); manual = sand; graphObs (1); v = 0,15; mens tælling <50 if (manual == false) obsDetect (r, v, pts); direc = direc + r.getAngle; r.setLEDDigits (num2str (count)); ellers direc = direc + r.getAngle; manualDrive (); ende ende figSend (); ende

Robotten skal nu udføre sit designede job.

Anbefalede: