Innholdsfortegnelse:

Mars rekognoseringsrobot: 4 trinn
Mars rekognoseringsrobot: 4 trinn

Video: Mars rekognoseringsrobot: 4 trinn

Video: Mars rekognoseringsrobot: 4 trinn
Video: Collapse на МАРСЕ - ТОП 1 Offlane Mars Dota 2 2024, Juli
Anonim
Mars rekognoseringsrobot
Mars rekognoseringsrobot

Denne instruksjonsboken er en trinnvis veiledning for programmering og kommando av Mars Reconnaissance Robot.

For å starte må man skaffe seg listen over følgende materialer: En ladet iRobot-opprettelse tilpasset av Tickle College of Eningeering University of Tennessee, Et trådløst nettverk som er koblet til Raspberry Pi i iRobot, UTK iRobot-lader, Wifi-kompatibel datamaskin med tilgang til MATLAB og internett.

Trinn 1: Roomba Toolbox

Roomba verktøykasse
Roomba verktøykasse

Åpne MATLAB og opprett en ny mappe for kodefilene som skal lagres fra prosjektet ditt. I MATLAB åpner du et nytt skript og kjører koden nedenfor. Når skriptet er kjørt, legger du til den nye mappen i katalogen der MATLAB ser etter filer.

Kode:

funksjonsrombaInstallclc; % liste over filer for å installere filer = {'roomba.m', 'roombaSim.m', 'roombaSimGUI.m', 'roombaSimGUI.fig'}; % plassering å installere fra alternativer = weboptions ('CertificateFilename', ''); % be den om å ignorere sertifikatkrav server = 'https://ef.engr.utk.edu/ef230/projects/roomba-f2016/install/'; dlgTitle = 'Roomba Install/Update'; % visningsformål og få bekreftelsesprompt = {'Dette programmet vil laste ned disse EF 230 Roomba -filene:' '' strjoin (files, '') '' 'til denne mappen:' '' cd '' 'Vil du fortsette? '}; pip; yn = questdlg (ledetekst, … dlgTitle,… 'Ja', 'Nei', 'Ja');

hvis ~ strcmp (yn, 'Ja'), returner; slutt

% få liste over filer som eksisterer eksisterende_filer = filer (cellfun (@exist, filer)> 0); Hvis ~ isempty (eksisterende_filer) % sørg for at det virkelig er greit å bytte dem prompt = {'Du bytter ut disse filene:' '' strjoin (eksisterende_filer, '') '' 'OK å erstatte?' }; pip; yn = questdlg (ledetekst, … dlgTitle,… 'Ja', 'Nei', 'Ja'); hvis ~ strcmp (yn, 'Ja'), returner; ende ende

% last ned filene cnt = 0; for i = 1: lengde (filer) f = filer {i}; disp (['Laster ned' f]); prøv url = [server f]; websave (f, url, alternativer); % lagt til alternativer for å unngå sikkerhetsfeil cnt = cnt + 1; catch disp (['Feil ved nedlasting' f]); dummy = [f '.html']; hvis finnes (dummy, 'file') == 2 slett (dummy) end end end

if cnt == length (files) msg = 'Installasjon vellykket'; waitfor (msgbox (msg, dlgTitle)); else msg = 'Installasjonsfeil - se kommandovinduet for detaljer'; waitfor (errordlg (msg, dlgTitle)); slutt

slutt %roombaInstall

Trinn 2: Forbereder tilkobling

Forbereder tilkobling
Forbereder tilkobling
Forbereder tilkobling
Forbereder tilkobling

Koble mikro-USB-en som stikker ut fra roboten til den nederste porten på Raspberry Pi. Trykk deretter på og hold inne dock- og spotknappene samtidig på toppen av Roomba til lyset på Roomba dempes. Du bør høre en elektronisk skala fra Roomba når du slipper.

Trinn 3: Koble til roboten

Koble til roboten
Koble til roboten

Åpne de tilgjengelige nettverkene på datamaskinen din og velg det eksisterende nettverket mellom datamaskinen og Raspberry Pi. I MATLABs nåværende mappe, høyreklikk på din nåværende prosjektmappe og velg roomba -verktøykassen som ble lastet ned i trinn 1, og legg til banen. I et nettverk som er designet for flere Pi -tilkoblinger, spesifiser du roboten din ved å lage et objekt i klassen Roomba. Se eksempel nedenfor

Hvis du har en Roomba tildelt nummer 7, skriver du inn følgende:

r = roomba (7)

%Husk at denne variabelen nå er tilordnet roomba, enhver kommando gitt til roboten må ledes av den tildelte variabelen.

Trinn 4: Kode

Kode
Kode

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

Ved å bruke lenken ovenfor lagrer du alle.m -filene i den gitte mappen der hovedprogrammet skal kjøres. Lenken skal være åpen for alle som har lenken. Åpne et nytt skript i den nåværende mappen og kjør mycontrolprogram.m som vist nedenfor:

funksjon mycontrolprogram (r) global m m = mobiledev; emailInit (); kjører = 1; global f global telletall = 0; f = r; global direc direc = 0; r.getAngle; r.getDistance; global curLoc curLoc = [0, 0]; globale pts pt = nuller (1, 2, 2); manual = true; graphObs (1); v = 0,15; mens telling <50 if (manual == false) obsDetect (r, v, pts); direc = direc + r.getAngle; r.setLEDDigits (num2str (count)); annet direc = direc + r.getAngle; manualDrive (); ende ende figSend (); slutt

Roboten skal nå utføre den designede jobben.

Anbefalt: