Turinys:

Marso žvalgybos robotas: 4 žingsniai
Marso žvalgybos robotas: 4 žingsniai

Video: Marso žvalgybos robotas: 4 žingsniai

Video: Marso žvalgybos robotas: 4 žingsniai
Video: Робот 4-я часть Мастер-класс (крючком) авторская работа Ирины Земской 2024, Liepa
Anonim
Marso žvalgybos robotas
Marso žvalgybos robotas

Šis „Instructable“yra žingsnis po žingsnio „Mars Reconnaissance Robot“programavimo ir valdymo vadovas.

Norėdami pradėti, turite gauti šių medžiagų sąrašą: Įkrautas „iRobot“kūrinys, pritaikytas Tenesio „Eninggeering Univerisity“„Tickle College“, Belaidis tinklas, prijungtas prie „Raspberry Pi“„iRobot“, UTK „iRobot“įkroviklis, „Wi-Fi“kompiuteris su prieiga prie MATLAB ir interneto.

1 žingsnis: „Roomba“įrankių rinkinys

„Roomba“įrankių rinkinys
„Roomba“įrankių rinkinys

Atidarykite MATLAB ir sukurkite naują aplanką kodo failams, kurie bus saugomi iš jūsų projekto. Programoje MATLAB atidarykite naują scenarijų ir paleiskite žemiau esantį kodą. Kai scenarijus bus paleistas, pridėkite naują aplanką prie katalogo, kuriame MATLAB ieško failų.

Kodas:

funkcija roombaInstallclc; % failų, kuriuos reikia įdiegti, sąrašas = {'roomba.m', 'roombaSim.m', 'roombaSimGUI.m', 'roombaSimGUI.fig'}; % vieta įdiegti iš options = weboptions ('CertificateFilename', ''); % liepia ignoruoti sertifikatų reikalavimų serverį = 'https://ef.engr.utk.edu/ef230/projects/roomba-f2016/install/'; dlgTitle = '„Roomba“diegimas/atnaujinimas “; % rodymo tikslas ir gaukite patvirtinimo raginimą = {'Ši programa atsisiųs šiuos EF 230 Roomba failus:' '' strjoin (failai, '') '' '' į šį aplanką: '' 'cd' '' Ar norite tęsti? '}; pyptelėjimas; yn = questdlg (raginimas,… dlgTitle,… „Taip“, „Ne“, „Taip“);

jei ~ strcmp (yn, 'Taip'), grįžti; galas

% get failų, kurie egzistuoja, sąrašas jei ~ isempty (egzistuojantys_failai) % įsitikinkite, kad tikrai gerai juos pakeisti. }; pyptelėjimas; yn = questdlg (raginimas,… dlgTitle,… „Taip“, „Ne“, „Taip“); jei ~ strcmp (yn, 'Taip'), grįžti; pabaiga galas

% atsisiųsti failus cnt = 0; i = 1: ilgis (failai) f = failai {i}; disp (['Atsisiunčiama' f]); pabandykite url = [serveris f]; žiniatinklio išsaugojimas (f, url, parinktys); % pridėta parinkčių, kad būtų išvengta saugumo klaidų cnt = cnt + 1; catch disp (['Klaida atsisiunčiant' f]); manekenas = [f '.html']; jei egzistuoja (manekenas, 'failas') == 2 ištrinti (fiktyvus) pabaigos pabaigą

if cnt == ilgis (failai) msg = 'Sėkmingas diegimas'; laukti (msgbox (msg, dlgTitle)); else msg = 'Įdiegimo klaida - daugiau informacijos rasite komandų lange'; waitfor (errordlg (msg, dlgTitle)); galas

pabaiga %roombaInstall

2 žingsnis: Pasiruošimas prisijungti

Pasiruošimas prisijungti
Pasiruošimas prisijungti
Pasiruošimas prisijungti
Pasiruošimas prisijungti

Prijunkite iš roboto išsikišusį mikro-USB prie apatinio „Raspberry Pi“prievado. Tada „Roomba“viršuje vienu metu paspauskite ir laikykite prijungimo ir taškinius mygtukus, kol „Roomba“lemputė užges. Išleidę „Roomba“turėtumėte išgirsti elektroninę svarstyklę.

3 žingsnis: Prisijunkite prie roboto

Prisijungimas prie roboto
Prisijungimas prie roboto

Kompiuteryje atidarykite galimus tinklus ir pasirinkite esamą tinklą tarp kompiuterio ir „Raspberry Pi“. Dabartiniame MATLAB aplanke dešiniuoju pelės mygtuku spustelėkite dabartinį projekto aplanką ir pasirinkite 1 veiksme atsisiųstą „roomba“įrankių dėžę, kurią pridėsite prie kelio. Tinkle, skirtame keliems „Pi“ryšiams, nurodykite savo robotą sukurdami „Roomba“klasės objektą. Žr. Pavyzdį žemiau

Jei „Roomba“priskirta 7 numeriui, įveskite:

r = roomba (7)

Atminkite, kad šis kintamasis dabar priskiriamas „roomba“, bet kokiai robotui duotai komandai turi vadovauti priskirtas kintamasis.

4 žingsnis: kodas

Kodas
Kodas

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

Naudodamiesi aukščiau esančia nuoroda, išsaugokite visus.m failus į nurodytą aplanką, kuriame bus vykdoma pagrindinė programa. Nuoroda turėtų būti atvira visiems turintiems nuorodą. Atidarykite naują scenarijų dabartiniame aplanke ir paleiskite mycontrolprogram.m, kaip parodyta žemiau:

funkcija mycontrolprogram (r) global m m = mobiledev; emailInit (); bėgimas = 1; globalus f bendras skaičius = 0; f = r; pasaulinis tiesioginis tiesioginis = 0; r.getAngle; r.getDistance; visuotinis curLoc curLoc = [0, 0]; visuotinis pts pts = nuliai (1, 2, 2); vadovas = tiesa; graphObs (1); v = 0,15; o skaičiuoti <50, jei (rankinis == klaidingas) obsDetect (r, v, pts); directc = direct + r.getAngle; r.setLEDDigits (num2str (skaičius)); else direc = direct + r.getAngle; manualDrive (); pabaiga galas figSend (); galas

Dabar robotas turėtų atlikti savo numatytą darbą.

Rekomenduojamas: