Obsah:
- Krok 1: Potřebné materiály
- Krok 2: Nastavení/stažení
- Krok 3: Část kódu 1: Funkce sledování
- Krok 4: Kód Část 2: Zatímco smyčka
- Krok 5: Část 3 kódu: Sekce e -mailu
Video: UTK EF 230 MarsRoomba Project Fall 2018: 5 Steps
2024 Autor: John Day | [email protected]. Naposledy změněno: 2024-01-30 08:22
V současné době se rovery na Marsu používají ke sběru dat na povrchu Marsu různými metodami, až do konečného konce, kdy se dozvíte více o potenciálu planety pro mikrobiální život. Rovers používají pro sběr dat především nástroje pro fotografování a analýzu půdy, ale rovery také zahrnují navigační nástroje, detektory záření, atmosférické senzory a laser pro odpařování vzorků hornin. Plánovaný cíl mise rover 2020 je většinou stejný, ale se zvláštním úkolem „sbírat vzorky půdy a hornin a ukládat je do mezipaměti na povrchu pro případný návrat na Zemi budoucí misí“, uvádí NASA.
Za předpokladu, že budoucí rovery budou použity pro lidskou pomoc, náš tým zvážil, jaké aspekty lidí by rover mohl sledovat. Dospěli jsme k závěru, že v případě nouze, která způsobí, že astronaut bude v bezvědomí s nedostatečnou podporou života a vybavením, by náš rover mohl sloužit jako mobilní majákový maják pozorováním, že astronaut, kterého sledoval, je nehybný a předává zprávu o tísni. Aby rover následoval člověka a určil nehybnost, vzal si vstupy, jako je barva lidských bot a jejich pohyb. Dalším vstupem, který je třeba vzít v úvahu, je, že by si musel pamatovat svou cestu, aby v případě nouze vyslal nouzový signál. Náš rover splňuje potřebu na Marsu v tom, že pokus o tak nákladnou misi v takovém cizím terénu vyžaduje několik vrstev bezpečnostních trezorů, a pokud by astronaut nemohl získat vlastní pomoc kvůli nesprávné funkci obleku nebo bezvědomí, může rover upozornit ostatní.
Tento instruktáž je navržen tak, aby pomohl čtenáři při programování jeho robota, aby úspěšně následoval „astronauta“a vyslal nouzový signál, je -li k dispozici.
Krok 1: Potřebné materiály
1) Počítač/notebook s přístupem na internet
2) MATLAB_R2018a
3) Roomba a Roomba ke stažení
Krok 2: Nastavení/stažení
Spusťte tento skript v MATLABu a stáhněte si software potřebný pro přístup k robotu Roomba (uložený ve vlastním souboru ve složce projektu)
Další nápověda:
% Instalační program pro EF 230 Roomba Project% Poslední aktualizace: 13. září 2017 (Opraveny problémy se zabezpečením spojené se serverem https a upozornění na odstranění odstraněného souboru, pokud došlo k chybám) funkce roombaInstall clc; % 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 3: Část kódu 1: Funkce sledování
Tato funkce převezme proměnnou Roomba a obrázek z kamery na Roombě a najde středové souřadnice xy sledovaného objektu
Uložte tento kód do jiného souboru ve stejné složce.
funkce [xm, ym] = trackingblue (r) %Vstupy: proměnná roomba %Výstupy: x a y hodnota středu následujícího objektu %Účel: najde střed modrého objektu s daným obrázkem %Využití [hodnota x, y hodnota] = trackingblue (proměnná roomba) img = r.getImage; % přečte kameru z dílčího obrázku (1, 2, 2) robota (obr.); %zobrazuje obrázek ve stejném okně jako název cesty ('Tracking Image') red = img (:,:, 1); zelená = img (:,:, 2); modrá = img (:,:,, 3); justBlue = modrá - zelená/2 - červená/2; bw = justBlue> 40; podržet subplot (1, 2, 2) subimage (bw); [x, y] = find (bw); pokud ~ je prázdný (x) && ~ prázdný (y) xm = kulatý (průměr (x)); ym = kulatý (průměr (y)); xx = max (1, xm-5): min (xm+5, velikost (bw, 1)); yy = max (1, ym-5): min (ym+5, velikost (bw, 2)); bwbw = nuly (velikost (bw), 'uint8'); bwbw (xx, yy) = 255; podržet subplot (1, 2, 2) subimage (justBlue + bwbw); konec
Krok 4: Kód Část 2: Zatímco smyčka
Tento kód řídí robot Roomba na základě umístění objektu x a y z funkce sledování. Díky tomu bude Roomba dávat pozor na stěny a útesy a hledat modrou. To také vezme souřadnice x a y cesty Roomba a vytvoří odpovídající graf se sledovacím obrázkem. Pokud je snímač nárazu aktivován, přejde do sekce e -mailu
%Projekt Rover
%Jonah Zahn, Wade Price, Noah Sloan %jzahn2, wprice15, nsloan1 %Vstupy: hodnota roomba, data z kamery, nárazy, světelné a nástěnné senzory %Účel: Sleduje astronauta a vyhýbá se překážkám. Pokud je varován, roomba odešle e -mail %s podrobností o mapě a o tom, kde se nachází, podle počáteční polohy. %Použití: stačí spustit program s deklarovanou proměnnou roomba, také %mít pohybující se zelený objekt %Výstupy: zobrazí obrázek sledující obrázek, mapu e -mailů a text uživateli %% Za sekcí b = 0; %Inicializační proměnné c = 0; x = 0; y = 0; theta = 0; zatímco c == 0 %smyčka, aby detekovala modrý objekt a překážky t = r.timeGet; d = r.getDistance; [xval, yval] = trackingblue (r); cliff = getCliffSensors (r); %inicializace struktur pro hodnoty senzorů light = getLightBumpers (r); bump = getBumpers (r); pokud light.leftCenter> = 10 || light.rightCenter> = 10 % Rozpozná, pokud je v blízkosti r.stop r.setLEDDigits ('help') c = 1 %, zatímco b == 0 % pokud bump.right == 1 || bump.left == 1 || bump.front == 1 % Rozpozná, pokud něco narazilo poté, co zjistilo, že zeď % c = 1 % b = 1 % disp ('bump') % end % end elseif bump.right == 1 || bump.left == 1 || bump.front == 1 %Rozpozná, pokud něco narazilo, pokud ano, odešle e -mail r.stop c = 1 b = 1 elseif cliff.leftFront <= 100 || cliff.rightFront <= 100 || cliff.left <= 100 || cliff.right <= 100 %Rozpozná, pokud se poblíž útesu nachází útes c = 1 r.setLEDDigits ('help') else %Nastaví rychlosti pohonu podle modré, pokud yval = 100 r.setDriveVelocity (0,1) elseif yval 400 r.turnAngle (-5) end end theta = theta + r.getAngle; x = d.*cosd (theta) + x; % x souřadnice roomba y = d.*sind (theta).*d + y; Souřadnice % y souřadnice podplochy (1, 2, 1) roomba (1, 2, 1) (x, y, 'bd') % vykreslí cestu a přidá název titulu ('Roomba Path'), počkejte; konec
Krok 5: Část 3 kódu: Sekce e -mailu
To vezme vykreslenou cestu a obrázek a odešle jej na zadanou e -mailovou adresu
(Zde je uvedeno s příkladem e -mailu)
%% e -mailová sekce
if b == 1 saveas (gcf, 'rovermap.png') %save the figure setpref ('Internet', 'SMTP_Server', 'smtp.gmail.com'); setpref ('Internet', 'E_mail', '[email protected]'); % poštovní účet k odeslání ze setpref ('Internet', 'SMTP_Username', '[email protected]'); % odesílatelů uživatelské jméno setpref ('Internet', 'SMTP_Password', 'gssegsse'); % Odesílatel heslo props = java.lang. System.getProperties; props.setProperty ('mail.smtp.auth', 'true'); props.setProperty ('mail.smtp.socketFactory.class', 'javax.net.ssl. SSLSocketFactory'); props.setProperty ('mail.smtp.socketFactory.port', '465'); sendmail ('ukázkový e -mail', 'RoverBeacon', 'Astronaut se přestal pohybovat. Pro obnovu postupujte podle pokynů v přiloženém souboru.', 'rovermap.png') disp ('email sent') end
Doporučuje:
Robot Project UTK 2017: 3 kroky
Robot Project UTK 2017: Mission: Náš tým inženýrů byl najat společností Froogle, neziskovou nadací pro vývoj technologií s otevřeným zdrojovým kódem, s cílem vyvinout inovativní týmy pro lidskou pomoc Mars Rover.-Out „rover“je roomba, kterou jsme zakódovali k provedení série
Generátor - Fidget Spinner napájející 9W LED žárovku 230 V: 3 kroky (s obrázky)
Generátor - Fidget Spinner napájející 9W LED žárovku 230 V: V níže uvedených řádcích chceme ukázat, jak lze vytvořit výkonný generátor fidget spinnerů. Na začátku bude generovat 100 voltů střídavého proudu a bude schopna rozsvítit LED žárovku 230 V 9 W. Vzdělávací projekt s použitím několika materiálů. Najít
Venus Flytrap - ITM Fall 2019: 5 kroků
Venus Flytrap - ITM podzim 2019: Co chybí každému na stole? Mechanická mucholapka Venus, která pojme tužky, pera a další předměty
Mars Roomba Project UTK: 4 kroky
Mars Roomba Project UTK: UPOZORNĚNÍ: TOTO BUDE FUNGOVAT POUZE POKUD JE ROOMBA NASTAVENA V PŘÍPADNÉM ZVLÁŠTNÍM ZPŮSOBU, TENTO NÁVOD BYL VYTVOŘEN A URČEN K POUŽITÍ UNIVERZITOU ŽÁKŮ TENNESSEE STUDENTŮ A FACULTY Tento kód slouží k místnímu spuštění místnosti napsáno a
Páni !! Spusťte krokový motor bez ovladače -- New Idea 2018: 4 Steps (with Pictures)
Páni !! Spusťte krokový motor bez ovladače || New Idea 2018: Ahoj! V tomto návodu vás naučím, jak nepřetržitě provozovat krokový motor vysokou rychlostí bez obvodu řidiče nebo napájecího zdroje arduino nebo AC. Také výměnou kabeláže jej můžete provozovat v obou taktech- moudrý & proti směru hodinových ručiček