Obsah:
- Krok 1: Potrebný materiál
- Krok 2: Nastavenie/stiahnutie
- Krok 3: Kód Časť 1: Funkcia sledovania
- Krok 4: Kód Časť 2: Pri slučke
- Krok 5: Kód, časť 3: Sekcia e -mailu
Video: UTK EF 230 MarsRoomba Project Fall 2018: 5 Steps
2024 Autor: John Day | [email protected]. Naposledy zmenené: 2024-01-30 11:59
V súčasnej dobe sa rovery na Marse používajú na zber údajov o povrchu Marsu rôznymi metódami, až do konečného cieľa dozvedieť sa viac o potenciáli planéty pre mikrobiálny život. Na zber údajov používajú rovery predovšetkým nástroje na fotografovanie a analýzu pôdy, ale medzi rovery patria aj navigačné nástroje, detektory žiarenia, atmosférické senzory a laser na odparovanie vzoriek hornín. Plánovaný cieľ misie rovera 2020 je väčšinou rovnaký, ale so špeciálnou úlohou „zbierať vzorky pôdy a hornín a ukladať ich do vyrovnávacej pamäte na povrchu pre potenciálny návrat na Zem budúcou misiou“, uvádza NASA.
Za predpokladu, že budúce rovery budú použité na ľudskú pomoc, náš tím zvážil, aké aspekty ľudí môže rover monitorovať. Dospeli sme k záveru, že v prípade núdze, ktorá spôsobí, že astronaut bude v bezvedomí s nedostatočnou životnou podporou a vybavením, by náš rover mohol slúžiť ako mobilný maják na máj pozorovaním, že astronaut, ktorého nasledoval, je nehybný a odovzdáva správu o tiesni. Aby nasledoval človeka a určil nehybnosť, rover by bral vstupy, ako napríklad farbu ľudských topánok a ich pohyb. Ďalší vstup, ktorý je potrebné zvážiť, je, že by si musel pamätať svoju cestu, aby v prípade núdze mohol vysielať núdzový signál. Náš rover spĺňa potrebu na Marse v tom, že pokus o takú nákladnú misiu v takom cudzom teréne vyžaduje viac vrstiev núdzových trezorov a ak by astronaut nemohol získať vlastnú pomoc z dôvodu poruchy obleku alebo bezvedomia, môže vozítko upozorniť ostatných.
Tento inštrukčný návod je navrhnutý tak, aby pomohol čitateľovi v programovaní jeho robota Roomba, aby úspešne nasledoval „astronauta“a vyslal v prípade potreby núdzový signál.
Krok 1: Potrebný materiál
1) Počítač/prenosný počítač s prístupom na internet
2) MATLAB_R2018a
3) Roomba a Roomba na stiahnutie
Krok 2: Nastavenie/stiahnutie
Spustite tento skript v MATLABe a stiahnite si softvér potrebný na prístup k robotu Roomba (uložený vo vlastnom súbore v priečinku projektu)
Ďalšia pomoc:
% Inštalačný program pre projekt EF 230 Roomba% Posledná aktualizácia: 13. septembra 2017 (Opravené problémy so zabezpečením súvisiace so serverom https a upozornením na odstránenie odstráneného súboru, ak sa vyskytnú chyby) funkcia roombaInstall clc; % zoznam súborov na inštaláciu súborov = {'roomba.m', 'roombaSim.m', 'roombaSimGUI.m', 'roombaSimGUI.fig'}; % umiestnenia na inštaláciu z options = weboptions ('CertificateFilename', ''); % povedzte, aby ignoroval požiadavky na certifikát server = 'https://ef.engr.utk.edu/ef230/projects/roomba-f2016/install/'; dlgTitle = 'Inštalácia/aktualizácia Roomba'; % účel zobrazenia a výzva na potvrdenie = {'Tento program stiahne tieto súbory EF 230 Roomba:' '' strjoin (súbory, '') '' 'do tohto priečinka:' '' cd '' 'Chcete pokračovať? '}; pípnutie; yn = questdlg (prompt, … dlgTitle, … 'Yes', 'No', 'Yes');
if ~ strcmp (yn, 'Yes'), return; koniec
% získať zoznam existujúcich súborov existing_files = files (cellfun (@exist, files)> 0); if ~ isempty (existing_files) % uistite sa, že je skutočne v poriadku ich nahradiť prompt = {'Nahrádzate tieto súbory:' '' strjoin (existing_files, '') '' 'OK to replace?' }; pípnutie; yn = questdlg (prompt, … dlgTitle, … 'Yes', 'No', 'Yes'); if ~ strcmp (yn, 'Yes'), return; koniec koniec
% stiahnuť súbory cnt = 0; pre i = 1: dĺžka (súbory) f = súbory {i}; disp (['sťahovanie' f]); skúste url = [server f]; websave (f, URL, možnosti); % pridané možnosti, ako sa vyhnúť chybám zabezpečenia cnt = cnt + 1; catch disp (['Chyba pri sťahovaní' f]); atrapa = [f '.html']; ak existujú (atrapa, 'súbor') == 2 vymazať (atrapu) koniec koniec koniec
ak cnt == dĺžka (súbory) msg = 'Inštalácia bola úspešná'; čakať (msgbox (msg, dlgTitle)); else msg = 'Chyba inštalácie - podrobnosti nájdete v príkazovom okne'; čakať na (errordlg (msg, dlgTitle)); koniec
koniec %roombaInštalácia
Krok 3: Kód Časť 1: Funkcia sledovania
Táto funkcia vezme premennú Roomba a obrázok z kamery na Roombe a nájde stredové súradnice xy sledovaného objektu
Uložte tento kód do iného súboru v rovnakom priečinku.
funkcia [xm, ym] = trackingblue (r) %Vstupy: premenná roomba %Výstupy: x a y hodnota stredu nasledujúceho objektu %Účel: vyhľadá stred modrého objektu vzhľadom na obrázok %Použitie [hodnota x, y hodnota] = trackingblue (premenná roomba) img = r.getImage; % číta kameru mimo podobrazu (1, 2, 2) robota (obr.); %zobrazuje obrázok v rovnakom okne ako názov cesty („sledovací obrázok“) red = img (:,:, 1); zelená = img (:,:, 2); modrá = img (:,:,, 3); justBlue = modrá - zelená/2 - červená/2; bw = justBlue> 40; podržať podkres (1, 2, 2) podobraz (bw); [x, y] = find (bw); ak ~ je prázdny (x) && ~ prázdny (y) xm = okrúhly (priemer (x)); ym = okrúhly (priemer (y)); xx = max (1, xm-5): min (xm+5, veľkosť (telesná hmotnosť, 1)); yy = max (1, ym-5): min (ym+5, veľkosť (bw, 2)); bwbw = nuly (veľkosť (bw), 'uint8'); bwbw (xx, yy) = 255; podržať podkres (1, 2, 2) podobraz (justBlue + bwbw); koniec
Krok 4: Kód Časť 2: Pri slučke
Tento kód poháňa robot Roomba na základe umiestnenia objektu x a y z funkcie sledovania. Vďaka tomu bude Roomba pri hľadaní modrej dávať pozor na steny a útesy. To tiež zoberie súradnice x a y cesty Roomba a vytvorí zodpovedajúci graf so sledovacím obrázkom. Ak je snímač nárazov aktivovaný, prejde do sekcie e -mailu
%Rover Project
%Jonah Zahn, Wade Price, Noah Sloan %jzahn2, wprice15, nsloan1 %Vstupy: hodnota roomba, údaje z kamery, snímače nárazov, svetla a steny %Účel: Nasleduje astronauta a vyhýba sa prekážkam. V prípade varovania roomba pošle e -mail s %podrobným popisom mapy a toho, kde sa nachádza, podľa jej počiatočnej polohy. %Použitie: stačí spustiť program s deklarovanou premennou roomba, tiež %mať pohybujúci sa zelený objekt %Výstupy: zobrazí obrázok sledujúci obrázok, mapu e -mailov a text používateľovi %% Podľa sekcie b = 0; %Inicializačné premenné c = 0; x = 0; y = 0; theta = 0; zatiaľ čo c == 0 %slučka, aby detekovala modrý objekt a prekážky t = r.timeGet; d = r.getDistance; [xval, yval] = trackingblue (r); cliff = getCliffSensors (r); %inicializácia štruktúr pre hodnoty senzora light = getLightBumpers (r); bump = getBumpers (r); ak light.leftCenter> = 10 || light.rightCenter> = 10 % Rozpozná, ak sa v blízkosti r.stop r.setLEDDigits ('pomoc') nachádza múr c = 1 %, zatiaľ čo b == 0 % ak bump.right == 1 || bump.left == 1 || bump.front == 1 % Zistí, ak narazilo na niečo potom, čo rozcítilo stenu % c = 1 % b = 1 % disp ('bump') % end % end elseif bump.right == 1 || bump.left == 1 || bump.front == 1 %Zistí, ak na niečo narazilo, ak áno, pošle e -mail r.stop c = 1 b = 1 elseif cliff.leftFront <= 100 || cliff.rightFront <= 100 || cliff.left <= 100 || cliff.right <= 100 %Rozpozná, ak sa v blízkosti bodu r.stop nachádza c = 1 r.setLEDDigits ('help') else %Nastaví rýchlosti pohonu podľa modrej, ak yval = 100 r.setDriveVelocity (0,1) inak 400 r.turnAngle (-5) koncový koniec theta = theta + r.getAngle; x = d.*cosd (theta) + x; % x súradnice roomba y = d.*sind (theta).*d + y; Súradnica % y súradnice podkresa Roomba (1, 2, 1) (x, y, 'bd') % vykreslí cestu a pridá názov titulu ('Cesta Roomba'), podržte sa; koniec
Krok 5: Kód, časť 3: Sekcia e -mailu
Odošle sa vykreslená cesta a obrázok a odošle sa na zadanú e -mailovú adresu
(Tu je zobrazené s príkladom e -mailu)
%% e -mailová sekcia
ak b == 1 saveas (gcf, 'rovermap.png') %uloží údaj setpref ('internet', 'SMTP_Server', 'smtp.gmail.com'); setpref ('Internet', 'E_mail', '[email protected]'); % poštový účet na odoslanie zo setpref ('Internet', 'SMTP_Username', '[email protected]'); % odosielateľov užívateľské meno setpref ('Internet', 'SMTP_Password', 'gssegsse'); % Heslo pre odosielateľov = 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 ('príklad e -mailu', 'RoverBeacon', 'Astronaut sa prestal pohybovať. Pri obnove postupujte podľa pokynov v priloženom súbore.', 'rovermap.png') disp ('email sent') end
Odporúča:
Premena žiarovky 230 V AC na USB! 6 krokov (s obrázkami)
Konvertovanie žiarovky 230 V AC na USB!: Na eBay som narazil na tieto úhľadné žiarovky s efektom plameňa, ktoré blikajú a majú v sebe zabudovanú jemnú animáciu. Obvykle sú napájané sieťovým vstupom 85-265 V striedavého prúdu, ale pre prenosné aplikácie, ako je falošná horiaca lampa alebo lampa to nie je ideálne. Upravujem
Projekt robota UTK 2017: 3 kroky
Robot Project UTK 2017: Misia: Náš tím inžinierov bol najatý spoločnosťou Froogle, neziskovou nadáciou pre vývoj technológií s otvoreným zdrojovým kódom, s cieľom vyvinúť inovatívny tím „rover“tímu Mars Rover.-Out, ktorý pomáha ľuďom. je roomba, ktorý sme kódovali na spustenie série
Generátor - Fidget Spinner napájajúci 9W LED žiarovku 230 V: 3 kroky (s obrázkami)
Generátor - Fidget Spinner napájajúci 9W LED žiarovku 230 V: V nasledujúcich riadkoch chceme ukázať, ako je možné vytvoriť výkonný generátor fidget spinnerov. Na začiatku bude generovať 100 voltov striedavého prúdu a bude schopné zapáliť LED žiarovku 230 V 9 W. Vzdelávací projekt s použitím iba niekoľkých materiálov. Nájsť
EF 230: Home System 3000, návod: 4 kroky
EF 230: Home System 3000 Návod: Home System 3000 je zariadenie, ktoré používa Arduino, snímač teploty, piezoelektrický bzučiak, optický detektor/fototranzistor a servo na zobrazenie spôsobov, ako zlepšiť energetickú účinnosť domácnosti
Projekt Mars Roomba UTK: 4 kroky
Mars Roomba Project UTK: UPOZORNENIE: TOTO BUDE FUNGOVAŤ IBA AK JE ROOMBA NASTAVENÁ V RIADNOM ŠPECIÁLNOM SPÔSOBE, TENTO INŠTRUKTÍV VYTVORILA A URČILA POUŽÍVAŤ UNIVERZITA V TENNESSEE ŠTUDENTOCH A FACULTY Tento kód sa používa na miestne nainštalovanie miestnosti. napísané a