Innehållsförteckning:

Mars spaningsrobot: 4 steg
Mars spaningsrobot: 4 steg

Video: Mars spaningsrobot: 4 steg

Video: Mars spaningsrobot: 4 steg
Video: Soldiers Launch Tactical Reconnaissance Drone 2024, Juli
Anonim
Mars spaningsrobot
Mars spaningsrobot

This Instructable är en steg-för-steg-guide för att programmera och styra Mars Reconnaissance Robot.

För att börja måste man få en lista över följande material: En laddad iRobot-skapelse anpassad av Tickle College of Eningeering University of Tennessee, ett trådlöst nätverk som är anslutet till Raspberry Pi i iRobot, UTK iRobot-laddare, Wifi-kompatibel dator med tillgång till MATLAB och internet.

Steg 1: Roomba Toolbox

Roomba verktygslåda
Roomba verktygslåda

Öppna MATLAB och skapa en ny mapp för kodfilerna som ska lagras från ditt projekt. I MATLAB, öppna ett nytt skript och kör koden nedan. När manuset har körts lägger du till den nya mappen i katalogen där MATLAB letar efter filer.

Koda:

funktionsrumbaInstallclc; % lista över filer att installera filer = {'roomba.m', 'roombaSim.m', 'roombaSimGUI.m', 'roombaSimGUI.fig'}; % plats att installera från alternativ = weboptions ('CertificateFilename', ''); % berätta att den ignorerar certifikatkrav server = 'https://ef.engr.utk.edu/ef230/projects/roomba-f2016/install/'; dlgTitle = 'Roomba -installation/uppdatering'; % display purpose and get confirm prompt = {'Detta program hämtar dessa EF 230 Roomba -filer:' '' strjoin (files, '') '' 'till den här mappen:' '' cd '' 'Vill du fortsätta? '}; pip; yn = questdlg (prompt,… dlgTitle,… "Ja", "Nej", "Ja");

om ~ strcmp (yn, 'Ja'), returnera; slutet

% få lista över filer som finns eksisterende_filer = filer (cellfun (@exist, filer)> 0); om ~ isempty (eksisterende_filer) % se till att det verkligen är ok att byta ut dem prompt = {'Du byter ut dessa filer:' '' strjoin (befintliga_filer, '') '' 'OK att ersätta?' }; pip; yn = questdlg (prompt,… dlgTitle,… "Ja", "Nej", "Ja"); om ~ strcmp (yn, 'Ja'), returnera; slutet slut

% ladda ner filerna cnt = 0; för i = 1: längd (filer) f = filer {i}; disp (['Hämtar' f]); prova url = [server f]; webbspara (f, url, alternativ); % tillagda alternativ för att undvika säkerhetsfel cnt = cnt + 1; catch disp (['Fel vid nedladdning' f]); dummy = [f '.html']; if exist (dummy, 'file') == 2 delete (dummy) end end end

if cnt == length (files) msg = 'Installation lyckades'; waitfor (msgbox (msg, dlgTitle)); else msg = 'Installationsfel - se kommandofönstret för mer information'; waitfor (errordlg (msg, dlgTitle)); slutet

slutet %roombaInstall

Steg 2: Förbered för anslutning

Förbereder anslutning
Förbereder anslutning
Förbereder anslutning
Förbereder anslutning

Anslut mikro-USB som sticker ut från roboten till den nedre porten på Raspberry Pi. Håll sedan upp dock- och spotknapparna på ovansidan av Roomba samtidigt tills lampan på Roomba dämpas. Du bör höra en elektronisk skala från Roomba när du släpper.

Steg 3: Anslutning till roboten

Ansluter till roboten
Ansluter till roboten

Öppna tillgängliga nätverk på din dator och välj det befintliga nätverket mellan datorn och Raspberry Pi. I MATLABs nuvarande mapp, högerklicka på din nuvarande projektmapp och välj roomba verktygslåda som laddades ner i steg 1 och lägg till i sökvägen. I ett nätverk som är utformat för flera Pi -anslutningar, ange din robot genom att skapa ett objekt av klass Roomba. Se exemplet nedan

Om du har en Roomba tilldelad nummer 7 anger du följande:

r = roomba (7)

%Kom ihåg att denna variabel nu är tilldelad roomba, varje kommando som ges till roboten måste ledas av den tilldelade variabeln.

Steg 4: Kod

Koda
Koda

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

Spara alla.m -filer med länken ovan i den angivna mappen där huvudprogrammet ska köras. Länken ska vara öppen för alla som har länken. Öppna ett nytt skript i den aktuella mappen och kör mycontrolprogram.m enligt nedan:

funktion mycontrolprogram (r) global m m = mobiledev; emailInit (); kör = 1; global f global count count = 0; f = r; global direc direc = 0; r.getAngle; r.getDistance; global curLoc curLoc = [0, 0]; globala punkter pts = nollor (1, 2, 2); manual = true; graphObs (1); v = 0,15; medan räkna <50 if (manual == false) obsDetect (r, v, pts); direc = direc + r.getAngle; r.setLEDDigits (num2str (count)); annars direc = direc + r.getAngle; manualDrive (); ändänd figSend (); slutet

Roboten ska nu utföra sitt konstruerade jobb.

Rekommenderad: