Turinys:
- 1 žingsnis: 1 žingsnis: reikalingos medžiagos
- 2 veiksmas: 2 veiksmas: „Roomba“kodo nustatymas/gavimas
- 3 veiksmas: 3 žingsnis: uolų jutiklių/LED žibintų nustatymas
- 4 žingsnis: 4 žingsnis: kliūčių tikrinimas
- 5 žingsnis: 5 žingsnis: braižymas
Video: „Roomba MATLAB“projektas: 5 žingsniai
2024 Autorius: John Day | [email protected]. Paskutinį kartą keistas: 2024-01-30 10:47
Dabartinis NASA planas, skirtas Marso roveriui, yra tai, kad jis yra duomenų rinkėjas ir klaidžioja aplink Marsą, renka dirvožemio mėginius, kad juos sugrąžintų į Žemę, kad mokslininkai galėtų pamatyti, ar planetoje buvo ankstesnių gyvybės formų. Be to, roveris siunčia vaizdus mokslininkams, kad jie galėtų padėti naršyti roverį ir išspręsti galimas problemas.
Mūsų grupės idėja mūsų projektui yra tai, kad roveris padarys tą patį, ką NASA roveris, kuris 2020 m. Paliks žemę, bet taip pat suplanuos žemės geografiją. „Roomba“galėtų pajusti uolas ir sustoti, kol nenukris, o tada atsitraukti, pasukti ir pakeisti savo eigą, kad ji nenukristų ir nebūtų pažeista. Kita mūsų idėja, integruota į mūsų projektą, yra tai, kad „roomba“galėtų nubrėžti matomus orientyrus ir parodyti sklypą kiekvieną kartą, kai ciklas baigiamas ir jo eiga paleidžiama.
Ši instrukcija skirta visiems kitiems, kurie norėtų sukurti to paties tipo kodą savo „roomba“.
1 žingsnis: 1 žingsnis: reikalingos medžiagos
Jums reikės:
- Kambarys
- MATLAB
- Šis failas skirtas paleisti „roomba“
- Plokščias paviršius
- Stalo paviršius veikia kaip „skardis“
2 veiksmas: 2 veiksmas: „Roomba“kodo nustatymas/gavimas
Įvedus failus, ekranas atrodys taip.
3 veiksmas: 3 žingsnis: uolų jutiklių/LED žibintų nustatymas
Šis kodas jūsų kambariui tiksliai nurodys, kokiu kampu pasukti, patikrins baterijos informaciją, nurodys, kaip greitai eiti, ir patikrins, ar nėra žmogaus per „roomba“kamerą. Jis taip pat pypsės, jei atpažins asmenį, ir sustos prieš nusileisdamas nuo uolos.
% pabandykite rob.setLEDDigits ('') x = 0; y = 0; teta = 0; kliūtis = ; ciklas = 1; AngCorr = @(x) x + 3.059.*X.^0.4205; %Funkcija posūkio kampams taisyti, kai rob.getBatteryInfo.percent> 15 rob.setLEDDigits ('') rob.setDriveVelocity (0,1) %Go %Patikrinkite asmenį, jei AA_checkperson (rob) rob.beep end %Patikrinkite uolos jutiklį, jei AA_cliffcheck (rob) rob.stop rob.setLEDDigits ('Cliff') pauzė (0.5) kliūtis (ciklas) = 2; AA_cliffbeep (rob) %Atsarginė kopija ir posūkis rob.moveDistance (-. 15) rob.turnAngle (30) pabaiga
4 žingsnis: 4 žingsnis: kliūčių tikrinimas
Šis kodas patikrins „roomba“, kad patikrintų aplink esančius daiktus, ir patikrins smūgio jutiklį, kad įsitikintų, jog jis sustoja prieš sugadindamas save.
%Patikrinkite šviesos jutiklį, jei AA_lightcheck (rob) rob.stop rob.setLEDDigits ('Siena') pauzė (0,5) kliūtis (ciklas) = 1; %Wall AA_wallbeep (rob) %Back Up And Turn rob.moveDistance (-. 15) rob.turnAngle (30) end %Patikrinkite smūgio jutiklį, jei AA_bumpcheck (rob) rob.stop rob.setLEDDigits ('Wall') pauzė (0.5) kliūtis (ciklas) = 1; %Siena AA_wallbeep (apiplėšti) %Atsarginė kopija ir posūkis rob.moveDistance (-. 15) rob.turnAngle (30) pabaiga %Jei nėra, jei tuščia (kliūtis) kliūtis (ciklas) = 0; elseif ilgis (kliūtis) <ciklo kliūtis (ciklas) = 0; galas
5 žingsnis: 5 žingsnis: braižymas
Šis kodas lieps jūsų „roomba“išsiaiškinti, su kuo susiduria savo kelionės metu. Toks siužetas pasirodys sustojus „roomba“.
%Gauti poziciją d = rob.getDistance; jei ciklas == 1 teta (ciklas) = 0; x (ciklas) = d.*cosd (teta (ciklas)); % viso nuvažiuoto atstumo x y (ciklas) = d.*sind (teta (ciklas)); % viso nuvažiuoto atstumo % teta (ciklas) = teta (ciklas-1) + rob.getAngle; x (ciklas) = d.*cosd (teta (ciklas)) + x (ciklas-1); % viso nuvažiuoto atstumo x y (ciklas) = d.*sind (teta (ciklas)).*d + y (ciklas-1); %viso nuvažiuoto atstumo %y % %Pertraukos sąlyga, jei rob.getButtons.clean break end % pabaiga rob.stop, kai i = 1: ciklas, jei kliūtis (i) == 1 %Sienos sklypas (x (i), y (i), „Žymeklis“, „kvadratas“, „MarkerEdgeColor“, „r“) kita kliūtis (i) == 2 %uolos brėžinys (x (i), y (i), „Marker“, „o“, „MarkerEdgeColor“, „k“) pabaigos tekstas (.9, 0,9, sprintf ('Square = Wall / nCircle = Cliff '),' Units ',' normalized ') palaiko pabaigos % nelaimės signalą, o tiesa rob.beep pauzė (3), jei rob.getButtons.clean break end end % catch % rob.stop % end
Rekomenduojamas:
„MATLAB“valdoma „Roomba“: 5 žingsniai
„MATLAB“valdoma „Roomba“: Šio projekto tikslas yra panaudoti MATLAB ir modifikuotą programuojamą robotą „iRobot“. Mūsų grupė sujungė mūsų kodavimo įgūdžius, kad sukurtume MATLAB scenarijų, kuris naudoja daugybę „iRobot“funkcijų, įskaitant uolų jutiklius, buferio jutiklį
„Mars Roomba“projektas UTK: 4 žingsniai
„Mars Roomba“projektas UTK: ATSISAKYMAS: ŠIS TIKS TIK TAI, KAI ROOMBA NUSTATYTA KONKREČIU BŪDU, ŠI INSTRUKCIJA buvo sukurta ir ją ketino naudoti TENESIO STUDENTŲ UNIVERSITETAS IR FAKULTETAS Šis kodas naudojamas norint nustatyti parašyta ir
„Roomba“projektas: 5 žingsniai (su nuotraukomis)
„Roomba“projektas: šis nurodymas buvo sukurtas vykdant Pietų Floridos universiteto „Makecourse“projekto reikalavimą (www.makecourse.com). Ši instrukcija apims visus būtinus veiksmus ir komponentus, reikalingus mano „Roomba“projektui surinkti
„Roomba“su MATLAB: 4 žingsniai (su nuotraukomis)
„Roomba“su MATLAB: Šiame projekte naudojamas MATLAB ir programuojamas robotas „iRobot Create2“. Išbandę savo žinias apie MATLAB, mes galime užprogramuoti „Create2“, kad jis interpretuotų vaizdus ir aptiktų signalus. Roboto funkcionalumas daugiausia priklauso nuo
USB degiklis! Šis projektas gali sudegti per plastiką / medieną / popierių (įdomus projektas taip pat turi būti labai plonas medis): 3 žingsniai
USB degiklis! Šis projektas gali sudegti per plastiką / medieną / popierių (įdomus projektas taip pat turi būti labai plonas medis): NEDARYKITE ŠIO NAUDOTI USB! iš visų komentarų sužinojau, kad tai gali pakenkti jūsų kompiuteriui. mano kompiuteris gerai. Naudokite 600 mA 5v telefono įkroviklį. Aš tai naudoju ir jis veikia gerai, ir niekas negali būti sugadintas, jei naudosite apsauginį kištuką, kad sustabdytumėte maitinimą