Оглавление:

Робот-разведчик Марса: 4 шага
Робот-разведчик Марса: 4 шага

Видео: Робот-разведчик Марса: 4 шага

Видео: Робот-разведчик Марса: 4 шага
Видео: Робот для Марса 2024, Июль
Anonim
Робот-разведчик Марса
Робот-разведчик Марса

Это руководство представляет собой пошаговое руководство по программированию и управлению роботом-разведчиком Марса.

Для начала необходимо получить список следующих материалов: заряженный iRobot, созданный по индивидуальному заказу Tickle College of Eningeering Univerisity, Теннесси, беспроводная сеть, которая подключена к Raspberry Pi в iRobot, UTK iRobot, создание зарядного устройства, поддержка Wi-Fi компьютер с доступом к MATLAB и Интернету.

Шаг 1. Панель инструментов Roomba

Набор инструментов Roomba
Набор инструментов Roomba

Откройте MATLAB и создайте новую папку для файлов кода, которые будут сохранены из вашего проекта. В MATLAB откройте новый скрипт и запустите приведенный ниже код. Как только сценарий запущен, добавьте новую папку в каталог, где MATLAB ищет файлы.

Код:

function roombaInstallclc; % список файлов для установки files = {'roomba.m', 'roombaSim.m', 'roombaSimGUI.m', 'roombaSimGUI.fig'}; % расположение для установки из options = weboptions ('CertificateFilename', ''); % скажите ему игнорировать требования к сертификату server = 'https://ef.engr.utk.edu/ef230/projects/roomba-f2016/install/'; dlgTitle = 'Установить / обновить Roomba'; % display destination и получить запрос подтверждения = {'Эта программа загрузит эти файлы EF 230 Roomba:' '' strjoin (files, '') '' 'в эту папку:' '' cd '' 'Вы хотите продолжить? '}; гудок; yn = questdlg (подсказка,… dlgTitle,… «Да», «Нет», «Да»);

если ~ strcmp (yn, 'Да'), возврат; конец

% получить список существующих файлов existing_files = files (cellfun (@exist, files)> 0); if ~ isempty (existing_files)% убедитесь, что их действительно можно заменить prompt = {'Вы заменяете эти файлы:' '' strjoin (existing_files, '') '' 'Можно заменить?' }; гудок; yn = questdlg (подсказка,… dlgTitle,… «Да», «Нет», «Да»); если ~ strcmp (yn, 'Да'), возврат; конец конец

% скачать файлы cnt = 0; для i = 1: длина (файлы) f = файлы {i}; disp (['Загрузка' f]); попробуйте url = [сервер f]; websave (f, url, варианты); % добавлены опции, позволяющие избежать ошибок безопасности cnt = cnt + 1; catch disp (['Ошибка загрузки' f]); фиктивный = [f '.html']; если существует (фиктивный, 'файл') == 2 удалить (фиктивный) конец конец конец

if cnt == length (files) msg = 'Установка прошла успешно'; waitfor (msgbox (msg, dlgTitle)); else msg = 'Ошибка установки - подробности см. в окне команд'; waitfor (errordlg (msg, dlgTitle)); конец

конец% roombaInstall

Шаг 2. Подготовка к подключению

Подготовка к подключению
Подготовка к подключению
Подготовка к подключению
Подготовка к подключению

Подключите micro-USB, выходящий из робота, к нижнему порту Raspberry Pi. Затем на верхней части Roomba одновременно нажмите и удерживайте кнопки док-станции и точечного пятна, пока не погаснет свет на Roomba. Как только вы отпустите Roomba, вы должны услышать электронные весы.

Шаг 3: Подключение к роботу

Подключение к роботу
Подключение к роботу

Откройте доступные сети на вашем компьютере и выберите существующую сеть между компьютером и Raspberry Pi. В текущей папке MATLAB щелкните правой кнопкой мыши папку текущего проекта и выберите набор инструментов roomba, загруженный на шаге 1, и добавьте в путь. В сети, которая предназначена для нескольких подключений Pi, укажите своего робота, создав объект класса Roomba. См. Пример ниже

Если у вас Roomba номер 7, введите следующее:

r = roomba (7)

% Помните, что эта переменная теперь назначена roomba, любая команда, отданная роботу, должна выполняться назначенной переменной.

Шаг 4: Код

Код
Код

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

Используя ссылку выше, сохраните все файлы.m в указанную папку, где будет запущена основная программа. Ссылка должна быть открыта для всех, у кого есть ссылка. Откройте новый скрипт в текущей папке и запустите mycontrolprogram.m, как показано ниже:

функция mycontrolprogram (r) global m m = mobiledev; emailInit (); бег = 1; global f global count count = 0; f = r; глобальный директ директ = 0; r.getAngle; r.getDistance; глобальный curLoc curLoc = [0, 0]; глобальные точки pts = нули (1, 2, 2); manual = true; graphObs (1); v = 0,15; while count <50 if (manual == false) obsDetect (r, v, pts); direc = direc + r.getAngle; r.setLEDDigits (num2str (количество)); иначе direc = direc + r.getAngle; manualDrive (); конец конец figSend (); конец

Теперь робот должен выполнить свою заданную работу.

Рекомендуемые: