INHOUDSOPGAWE:

Mars -verkenningsrobot: 4 stappe
Mars -verkenningsrobot: 4 stappe

Video: Mars -verkenningsrobot: 4 stappe

Video: Mars -verkenningsrobot: 4 stappe
Video: Колонизация Марса - ужасная идея: так давайте сделаем это! 2024, November
Anonim
Mars verkenningsrobot
Mars verkenningsrobot

Hierdie instruksie is 'n stap-vir-stap gids vir die programmering en bevel van die Mars-verkenningsrobot.

Om mee te begin, moet u die lys van die volgende materiaal verkry: 'n Laad iRobot-skep wat aangepas is deur die Tickle College of Eningeering University of Tennessee, 'n draadlose netwerk wat met die Raspberry Pi in die iRobot verbind is, UTK iRobot-laaier, Wifi-geskik rekenaar met toegang tot MATLAB en die internet.

Stap 1: Roomba Toolbox

Roomba Toolbox
Roomba Toolbox

Maak MATLAB oop en skep 'n nuwe gids vir die kodelêers wat uit u projek gestoor moet word. Maak 'n nuwe script in MATLAB oop en voer die onderstaande kode uit. Sodra die script uitgevoer is, voeg die nuwe gids by die gids waar MATLAB lêers soek.

Kode:

funksie roombaInstallclc; % lys lêers om lêers te installeer = {'roomba.m', 'roombaSim.m', 'roombaSimGUI.m', 'roombaSimGUI.fig'}; % plek om van opsies te installeer = webopsies ('CertificateFilename', ''); % gee dit aan om die sertifikaatvereistes te vergeet server = 'https://ef.engr.utk.edu/ef230/projects/roomba-f2016/install/'; dlgTitle = 'Roomba installering/opdatering'; % vertoondoel en kry bevestiging prompt = {'Hierdie program sal hierdie EF 230 Roomba -lêers:' '' strjoin (lêers, '') '' 'na hierdie vouer aflaai:' '' cd '' 'Wil u voortgaan? '}; biep; yn = questdlg (prompt, … dlgTitle, … 'Ja', 'Nee', 'Ja');

as ~ strcmp (yn, 'Ja'), gee terug; einde

% kry 'n lys met lêers wat bestaan bestaande lêers = lêers (cellfun (@exist, lêers)> 0); as ~ isempty (existing_files) % seker maak dat dit regtig ok is om hulle prompt te vervang = {'U vervang hierdie lêer (s):' '' strjoin (existing_files, '') '' 'OK om te vervang?' }; biep; yn = questdlg (prompt, … dlgTitle, … 'Ja', 'Nee', 'Ja'); as ~ strcmp (yn, 'Ja'), gee terug; einde einde

% laai die lêers af cnt = 0; vir i = 1: lengte (lêers) f = lêers {i}; disp (['Aflaai' f]); probeer url = [bediener f]; websave (f, url, opsies); % het opsies bygevoeg om sekuriteitsfoute te vermy cnt = cnt + 1; catch disp (['Fout tydens aflaai' f]); dummy = [f '.html']; as daar bestaan (dummy, 'file') == 2 delete (dummy) end end end

if cnt == length (files) msg = 'Installasie suksesvol'; wag vir (msgbox (msg, dlgTitle)); else msg = 'Installasie fout - sien opdrag venster vir meer inligting'; wag vir (errordlg (msg, dlgTitle)); einde

eind %roombaInstall

Stap 2: Berei voor om aan te sluit

Berei voor om aan te sluit
Berei voor om aan te sluit
Berei voor om aan te sluit
Berei voor om aan te sluit

Koppel die mikro-USB wat van die robot uitsteek aan die onderste poort van die Raspberry Pi. Houd dan bo -op die Roomba gelyktydig die dok- en spotknoppies ingedruk totdat die lig op die Roomba verdof. U behoort 'n elektroniese weegskaal van die Roomba te hoor sodra u dit vrystel.

Stap 3: Koppel aan die robot

Koppel aan die robot
Koppel aan die robot

Maak die beskikbare netwerke op u rekenaar oop en kies die bestaande netwerk tussen die rekenaar en Raspberry Pi. Klik in die huidige gids van MATLAB met die rechtermuisknop op u huidige projekmap en kies die roomba -gereedskapskis wat in stap 1 afgelaai is, en voeg dit by die pad. Spesifiseer u robot in 'n netwerk wat ontwerp is vir verskeie Pi -verbindings deur 'n voorwerp van die klas Roomba te skep. Sien voorbeeld hieronder

As u 'n Roomba aan nommer 7 toewys, voer die volgende in:

r = roomba (7)

%Onthou dat hierdie veranderlike nou aan die roomba toegeken word; enige opdrag wat aan die robot gegee word, moet gelei word deur die toegewysde veranderlike.

Stap 4: Kode

Kode
Kode

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

Stoor al die.m -lêers met behulp van die skakel hierbo in die gegewe gids waar die hoofprogram uitgevoer sal word. Die skakel moet oop wees vir almal wat die skakel het. Open 'n nuwe script in die huidige gids en voer mycontrolprogram.m uit soos hieronder gesien:

funksie mycontrolprogram (r) global m m = mobiledev; emailInit (); hardloop = 1; globale f globale telling telling = 0; f = r; globale direc direc = 0; r.getAngle; r.getDistance; globale curLoc curLoc = [0, 0]; globale punte pts = nulle (1, 2, 2); handleiding = waar; graphObs (1); v = 0,15; terwyl tel <50 if (manual == false) obsDetect (r, v, pts); direc = direc + r.getAngle; r.setLEDDigits (num2str (telling)); anders direc = direc + r.getAngle; manualDrive (); end end figSend (); einde

Die robot behoort nou sy ontwerpte werk te verrig.

Aanbeveel: