Марсты барлау роботы: 4 қадам
Марсты барлау роботы: 4 қадам
Anonim
Марсты барлауға арналған робот
Марсты барлауға арналған робот

Бұл нұсқаулық Марс барлау роботын бағдарламалау мен басқаруға арналған қадамдық нұсқаулық болып табылады.

Бастау үшін келесі материалдардың тізімін алу қажет: Теннесси штатындағы Эннингинг Университетінің Тикле колледжі реттейтін зарядталған iRobot, iRobot-та Raspberry Pi-ге қосылған сымсыз желі, UTK iRobot зарядтағышын жасайтын, Wi-Fi бар MATLAB және интернетке кіруге болатын компьютер.

1 -қадам: Roomba Toolbox

Roomba құралдар тақтасы
Roomba құралдар тақтасы

MATLAB ашыңыз және сіздің жобаңыздан сақталатын код файлдары үшін жаңа қалта жасаңыз. MATLAB -та жаңа сценарий ашып, төмендегі кодты іске қосыңыз. Сценарий іске қосылғаннан кейін MATLAB файлдарды іздейтін каталогқа жаңа қалтаны қосыңыз.

Код:

roombaInstallclc функциясы; % файлдарды орнататын файлдар тізімі = {'roomba.m', 'roombaSim.m', 'roombaSimGUI.m', 'roombaSimGUI.fig'}; опциялардан орнатылатын % орын = weboptions ('CertificateFilename', ''); % сертификат талаптарын елемеуді айтады сервер = 'https://ef.engr.utk.edu/ef230/projects/roomba-f2016/install/'; dlgTitle = 'Roomba орнату/жаңарту'; % display мақсаты және растау шақыруын алу = {'Бұл бағдарлама EF 230 Roomba файлдарын жүктейді:' '' strjoin (файлдар, '') '' 'мына қалтаға:' '' cd '' 'Жалғастырғыңыз келе ме? '}; дыбыстық сигнал; yn = questdlg (шақыру,… dlgTitle,… 'Иә', 'Жоқ', 'Иә');

if ~ strcmp (yn, 'Yes'), қайтару; Соңы

% бұрыннан бар файлдардың тізімін алады_files = файлдар (cellfun (@exist, files)> 0); if ~ isempty (existing_files) % оларды ауыстырудың дұрыс екеніне көз жеткізіңіз шақыру = {'Сіз бұл файлдарды ауыстырасыз:' '' strjoin (existing_files, '') '' 'Ауыстыруға болады ма?' }; дыбыстық сигнал; yn = questdlg (шақыру,… dlgTitle,… 'Иә', 'Жоқ', 'Иә'); if ~ strcmp (yn, 'Yes'), қайтару; соңы соңы

% файлдарды жүктеу 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 = 'Орнату сәтті болды'; күту (msgbox (msg, dlgTitle)); else msg = 'Орнату қателігі - мәліметтерді командалық терезеден қараңыз'; күту (errordlg (msg, dlgTitle)); Соңы

end %roombaInstall

2 -қадам: қосылуға дайындық

Қосылуға дайындалуда
Қосылуға дайындалуда
Қосылуға дайындалуда
Қосылуға дайындалуда

Роботтан шығатын micro-USB Raspberry Pi төменгі портына қосыңыз. Содан кейін Roomba жоғарғы жағында қондырғы мен нүкте түймелерін Roomba шамы сөнгенше басып тұрыңыз. Босатқаннан кейін сіз Roomba электронды таразысын естуіңіз керек.

3 -қадам: роботқа қосылу

Роботқа қосылу
Роботқа қосылу

Компьютердегі қол жетімді желілерді ашып, компьютер мен Raspberry Pi арасындағы желіні таңдаңыз. MATLAB ағымдағы қалтасында ағымдағы жоба қалтасын тінтуірдің оң жақ түймесімен нұқыңыз және 1 -қадамда жүктелген Roomba құралдар тақтасын таңдап, жолға қосыңыз. Бірнеше Pi қосылымына арналған желіде Roomba класының объектісін құру арқылы роботыңызды көрсетіңіз. Төмендегі мысалды қараңыз

Егер сізде 7 нөміріне тағайындалған Roomba болса, келесіні енгізіңіз:

r = бөлмеба (7)

Есіңізде болсын, бұл айнымалы енді бөлме бөлмесіне тағайындалған, роботқа берілген кез келген команда тағайындалған айнымалымен басқарылуы керек.

4 -қадам: код

Код
Код

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

Жоғарыдағы сілтемені пайдаланып, барлық.m файлдарын негізгі бағдарлама орындалатын қалтаға сақтаңыз. Сілтеме бар барлық адамдарға ашық болуы керек. Ағымдағы қалтада жаңа сценарийді ашып, төменде көрсетілгендей mycontrolprogram.m іске қосыңыз:

mycontrolprogram (r) жаһандық m m = mobiledev функциясы; emailInit (); жүгіру = 1; жаһандық f жаһандық санау саны = 0; f = r; жаһандық direc direc = 0; r.getAngle; r.getDistance; жаһандық curLoc curLoc = [0, 0]; жаһандық pts pts = нөлдер (1, 2, 2); нұсқаулық = ақиқат; graphObs (1); v = 0,15; while <50 if (manual == false) obsDetect (r, v, pts); direc = direc + r.getAngle; r.setLEDDigits (num2str (санау)); else direc = direc + r.getAngle; manualDrive (); figSend () соңы; Соңы

Енді робот өзінің тапсырмасын орындауы керек.

Ұсынылған: