Spisu treści:

Robot rozpoznawczy Marsa: 4 kroki
Robot rozpoznawczy Marsa: 4 kroki

Wideo: Robot rozpoznawczy Marsa: 4 kroki

Wideo: Robot rozpoznawczy Marsa: 4 kroki
Wideo: Астронавты высадились на неизвестную планету, но оказалось что это Земля в 3978 году Н.Э. 2024, Lipiec
Anonim
Robot rozpoznawczy Marsa
Robot rozpoznawczy Marsa

Ten Instructable to przewodnik krok po kroku dotyczący programowania i dowodzenia robotem rozpoznawczym Marsa.

Na początek należy zaopatrzyć się w listę następujących materiałów: Naładowany iRobot stworzony dostosowany przez Tickle College of Eningeering Univerisity of Tennessee, Sieć bezprzewodowa połączona z Raspberry Pi w iRobot, UTK iRobot create ładowarka, Obsługa Wi-Fi komputer z dostępem do MATLAB i internetu.

Krok 1: Zestaw narzędzi Roomba

Przybornik Roomba
Przybornik Roomba

Otwórz MATLAB i utwórz nowy folder dla plików kodu, które mają być przechowywane z twojego projektu. W MATLAB otwórz nowy skrypt i uruchom poniższy kod. Po uruchomieniu skryptu dodaj nowy folder do katalogu, w którym MATLAB szuka plików.

Kod:

funkcja roombaInstallclc; % lista plików do zainstalowania pliki = {'roomba.m', 'roombaSim.m', 'roombaSimGUI.m', 'roombaSimGUI.fig'}; % lokalizacja do zainstalowania z options = weboptions('CertificateFilename', ''); % każ mu ignorować wymagania certyfikatu server = 'https://ef.engr.utk.edu/ef230/projects/roomba-f2016/install/'; dlgTitle = 'Instalacja/aktualizacja Roomba'; % wyświetl cel i otrzyma monit o potwierdzenie = { 'Ten program pobierze te pliki EF 230 Roomba:' '' strjoin(files, ' ') '' 'do tego folderu:' '' cd '' 'Czy chcesz kontynuować? ' }; brzęczyk; yn = questdlg(monit, … dlgTitle, … 'Tak', 'Nie', 'Tak');

if ~strcmp(yn, 'Tak'), zwróć; kończyć się

% pobierz listę istniejących plików istniejące_pliki = pliki(cellfun(@istnieje, pliki) > 0); if ~isempty(istniejące_pliki) % upewnij się, że naprawdę można je zastąpić prompt = {'Zastępujesz te pliki: ' '' strjoin(istniejące_pliki, ' ') '' 'Czy zamienić?' }; brzęczyk; yn = questdlg(monit, … dlgTitle, … 'Tak', 'Nie', 'Tak'); if ~strcmp(yn, 'Tak'), zwróć; koniec koniec

% pobierz pliki cnt = 0; dla i=1:długość(pliki) f=pliki{i}; disp(['Pobieranie' f]); spróbuj url = [serwer f]; websave(f, url, opcje); % dodanych opcji, aby uniknąć błędów bezpieczeństwa cnt = cnt + 1; catch disp(['Błąd pobierania' f]); manekin = [f '.html']; jeśli istnieje(atrapa, 'plik')==2 usuń(atrapa) end end end

if cnt == length(files) msg = 'Instalacja powiodła się'; waitfor(msgbox(msg, dlgTitle)); else msg = 'Błąd instalacji - szczegóły w oknie poleceń'; waitfor(errordlg(msg, dlgTitle)); kończyć się

zakończ %roombaInstall

Krok 2: Przygotowanie do połączenia

Przygotowanie do połączenia
Przygotowanie do połączenia
Przygotowanie do połączenia
Przygotowanie do połączenia

Podłącz micro-USB wystające z robota do dolnego portu Raspberry Pi. Następnie na górze Roomby naciśnij i przytrzymaj jednocześnie przyciski stacji dokującej i punktowej, aż lampka na Roombie zgaśnie. Po zwolnieniu robota Roomba powinna usłyszeć elektroniczną wagę.

Krok 3: Łączenie z robotem

Podłączanie do robota
Podłączanie do robota

Otwórz dostępne sieci na swoim komputerze i wybierz istniejącą sieć między komputerem a Raspberry Pi. W bieżącym folderze MATLAB kliknij prawym przyciskiem myszy folder bieżącego projektu i wybierz przybornik Roomba pobrany w kroku 1 i dodaj do ścieżki. W sieci, która jest zaprojektowana dla wielu połączeń Pi, określ swojego robota, tworząc obiekt klasy Roomba. Zobacz przykład poniżej

Jeśli masz robota Roomba przypisanego do numeru 7, wprowadź następujące informacje:

r=pokój(7)

%Pamiętaj, że ta zmienna jest teraz przypisana do Roomby, każde polecenie wydane robotowi musi być prowadzone przez przypisaną zmienną.

Krok 4: Kod

Kod
Kod

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

Korzystając z powyższego linku, zapisz wszystkie pliki.m w podanym folderze, w którym będzie uruchamiany główny program. Link powinien być otwarty dla wszystkich, którzy mają link. Otwórz nowy skrypt w bieżącym folderze i uruchom mycontrolprogram.m, jak pokazano poniżej:

funkcja mycontrolprogram(r)global m m = mobiledev; emailInit(); bieganie = 1; globalny f globalny licznik = 0; f = r; globalny direc direc = 0; r.getAngle; r.getDistance; globalne curLoc curLoc = [0, 0]; globalne pkt pkt = zera (1, 2, 2); ręczny = prawda; graphObs(1); v = 0,15; while count < 50 if(manual == false) obsDetect(r, v, pts); direc = direc + r.getAngle; r.setLEDDigits(num2str(liczba)); w przeciwnym razie direc = direc + r.getAngle; napęd manualny(); koniec koniec figSend(); kończyć się

Robot powinien teraz wykonać zaplanowaną pracę.

Zalecana: