Obsah:

Průzkumný robot Mars: 4 kroky
Průzkumný robot Mars: 4 kroky

Video: Průzkumný robot Mars: 4 kroky

Video: Průzkumný robot Mars: 4 kroky
Video: Sonda Perseverance přistála na planetě Mars. Robotický průzkumník americké vesmírné agentury NASA 2 2024, Listopad
Anonim
Průzkumný robot Mars
Průzkumný robot Mars

This Instructable is a step-by-step guide to program and command the Mars Reconnaissance Robot.

Chcete-li začít, musíte získat seznam následujících materiálů: Nabitý iRobot vytvořený přizpůsobený Tickle College of Eningeering Univerisity v Tennessee, Bezdrátová síť, která je připojena k Raspberry Pi v iRobot, UTK iRobot create nabíječka, Wifi počítač s přístupem k MATLABu a internetu.

Krok 1: Roomba Toolbox

Sada nástrojů Roomba
Sada nástrojů Roomba

Otevřete MATLAB a vytvořte novou složku pro soubory kódů, které mají být uloženy z vašeho projektu. V MATLABu otevřete nový skript a spusťte níže uvedený kód. Jakmile je skript spuštěn, přidejte novou složku do adresáře, kde MATLAB hledá soubory.

Kód:

funkce roombaInstallclc; % seznam souborů k instalaci souborů = {'roomba.m', 'roombaSim.m', 'roombaSimGUI.m', 'roombaSimGUI.fig'}; % umístění k instalaci z options = weboptions ('CertificateFilename', ''); % řekněte, aby ignoroval požadavky na certifikát server = 'https://ef.engr.utk.edu/ef230/projects/roomba-f2016/install/'; dlgTitle = 'Instalace/aktualizace Roomba'; % účel zobrazení a výzva k potvrzení = {'Tento program stáhne tyto soubory EF 230 Roomba:' '' strjoin (soubory, '') '' 'do této složky:' '' cd '' 'Chcete pokračovat? '}; pípnutí; yn = questdlg (výzva, … dlgTitle, … 'Ano', 'Ne', 'Ano');

if ~ strcmp (yn, 'Yes'), return; konec

% získat seznam existujících souborů existing_files = files (cellfun (@exist, files)> 0); pokud ~ isempty (existing_files) % ujistěte se, že je opravdu v pořádku nahradit je prompt = {'Nahrazujete tyto soubory:' '' strjoin (existing_files, '') '' 'OK to replace?' }; pípnutí; yn = questdlg (výzva, … dlgTitle, … 'Ano', 'Ne', 'Ano'); if ~ strcmp (yn, 'Yes'), return; konec konec

% stáhnout soubory cnt = 0; pro i = 1: délka (soubory) f = soubory {i}; disp (['Stahování' f]); zkusit url = [server f]; websave (f, URL, možnosti); % přidané možnosti, jak se vyhnout chybám zabezpečení cnt = cnt + 1; catch disp (['Chyba při stahování' f]); atrapa = [f '.html']; pokud existuje (figurína, 'soubor') == 2 smazat (atrapu) konec konec konec

pokud cnt == délka (soubory) msg = 'Instalace byla úspěšná'; waitfor (msgbox (msg, dlgTitle)); else msg = 'Chyba instalace - podrobnosti najdete v příkazovém okně'; waitfor (errordlg (msg, dlgTitle)); konec

konec %roombaInstall

Krok 2: Příprava na připojení

Příprava na připojení
Příprava na připojení
Příprava na připojení
Příprava na připojení

Připojte mikro USB vyčnívající z robota ke spodnímu portu Raspberry Pi. Poté na horní části robota Roomba současně stiskněte a podržte tlačítka doku a bodu, dokud světlo na robotu Roomba nezhasne. Jakmile robot Roomba uvolníte, měli byste slyšet elektronickou váhu.

Krok 3: Připojení k robotu

Připojení k robotu
Připojení k robotu

Otevřete dostupné sítě v počítači a vyberte stávající síť mezi počítačem a Raspberry Pi. V aktuální složce MATLABu klikněte pravým tlačítkem na aktuální složku projektu a vyberte sadu nástrojů roomba staženou v kroku 1 a přidejte ji na cestu. V síti, která je navržena pro více připojení Pi, určete svého robota vytvořením objektu třídy Roomba. Viz příklad níže

Pokud máte robot Roomba přiřazený k číslu 7, zadejte následující:

r = roomba (7)

%Pamatujte, že tato proměnná je nyní přiřazena robotu Roomba, každý příkaz daný robotovi musí být veden přiřazenou proměnnou.

Krok 4: Kód

Kód
Kód

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

Pomocí výše uvedeného odkazu uložte všechny soubory.m do dané složky, kde bude spuštěn hlavní program. Odkaz by měl být otevřen všem, kdo ho mají. Otevřete nový skript v aktuální složce a spusťte mycontrolprogram.m, jak je vidět níže:

funkce mycontrolprogram (r) global m m = mobiledev; emailInit (); běh = 1; global f global count count = 0; f = r; global direc direc = 0; r.getAngle; r.getDistance; globální curLoc curLoc = [0, 0]; global pts pts = nuly (1, 2, 2); manuál = true; graphObs (1); v = 0,15; while count <50 if (manual == false) obsDetect (r, v, pts); direc = direc + r.getAngle; r.setLEDDigits (num2str (počet)); else direc = direc + r.getAngle; manualDrive (); konec konec figSend (); konec

Robot by nyní měl vykonávat svou navrženou práci.

Doporučuje: