Sisällysluettelo:
2025 Kirjoittaja: John Day | [email protected]. Viimeksi muokattu: 2025-01-13 06:57
Nykyinen suunnitelma, jonka NASA on suunnitellut Mars -roverille, on se, että se on tiedonkerääjä ja vaeltaa Marsin ympärillä keräämällä näytteitä maaperästä tuodakseen takaisin Maalle, jotta tiedemiehet voivat nähdä, onko planeetalla aiempia elämänmuotoja. Lisäksi rover lähettää kuvia tiedemiehille, jotta he voivat auttaa navigoimaan roverissa ja korjaamaan mahdolliset ongelmat.
Ryhmämme ideana projektillemme on, että rover tekee saman kuin NASAn rover, joka lähtee maapallolta vuonna 2020, mutta myös kartoittaa maan maantieteellisen sijainnin. Roomba kykenisi havaitsemaan kallioita ja pysähtymään ennen kuin se putoaa, ja sitten perääntymään, kääntymään ja muuttamaan kurssiaan, jotta se ei putoa ja vahingoitu. Toinen ideamme, joka on integroitu projektiin, on, että roomba pystyy piirtämään näkemänsä maamerkit ja näyttämään juonen aina, kun silmukka on valmis ja sen kulku on suoritettu.
Tämä ohje on tarkoitettu kaikille muille, jotka haluavat luoda samantyyppisen koodin roomballeen.
Vaihe 1: Vaihe 1: Tarvittavat materiaalit
Tarvitset:
- Huone
- MATLAB
- Tämä tiedosto roomban suorittamiseen
- Tasainen pinta
- Pöytäpinta, joka toimii "kalliona"
Vaihe 2: Vaihe 2: Roomban koodin määrittäminen/saaminen
Näyttö näyttää tältä, kun syötät tiedostot.
Vaihe 3: Vaihe 3: Kalliosensorien/LED -valojen asentaminen
Tämä koodi kertoo roomballe tarkalleen, mihin kulmaan tulee kääntyä, tarkistaa akun tiedot, kertoo roomballesi kuinka nopeasti mennä ja tarkistaa, onko henkilö Roomban kameran kautta. Se myös piippaa, jos se tunnistaa henkilön, ja pysähtyy ennen kuin lähtee kalliolta.
% kokeile rob.setLEDDigits ('') x = 0; y = 0; teeta = 0; este = ; sykli = 1; AngCorr = @(x) x + 3,059.*X.^0,4205; %Toiminto kääntökulmien korjaamiseksi rob.getBatteryInfo.percent> 15 rob.setLEDDigits ('') rob.setDriveVelocity (0,1) %Go %Tarkista henkilö jos AA_checkperson (rob) rob.beep end %Tarkista Cliff Sensor jos AA_cliffcheck (rob) rob.stop rob.setLEDDigits ('Cliff') tauko (0,5) este (sykli) = 2; AA_cliffbeep (ryöstö) %Varmuuskopioi ja käännä rob.moveDistance (-. 15) rob.turnAngle (30) end
Vaihe 4: Vaihe 4: Esteiden tarkistaminen
Tämä koodi saa roomban tarkistamaan ympärillään olevat kohteet ja tarkistaa törmäysanturin varmistaakseen, että se pysähtyy ennen kuin se vahingoittaa itseään.
%Tarkista valotunnistin, jos AA_lightcheck (ryöstö) rob.stop rob.setLEDDigits ('Seinä') tauko (0,5) este (sykli) = 1; %Wall AA_wallbeep (ryöstö) %Varmuuskopioi ja käännä rob.moveDistance (-. 15) rob.turnAngle (30) end %Tarkista Bump Sensor jos AA_bumpcheck (rob) rob.stop rob.setLEDDigits ('Wall') tauko (0.5) este (sykli) = 1; %Seinä AA_seinäpiippaus (ryöstö) %Varmuuskopioi ja käännä rob.moveDistance (-. 15) rob.turnAngle (30) end %Jos ei mitään, jos tyhjä (este) este (sykli) = 0; elseif pituus (este) <pyöräilyesto (sykli) = 0; loppuun
Vaihe 5: Vaihe 5: Piirustus
Tämä koodi kehottaa roombaasi piirtämään, mitä se kohtaa matkansa aikana. Tällainen juoni tulee näkyviin, kun roomba on pysähtynyt.
%Hae sijainti d = rob.getDistance; jos sykli == 1 teeta (sykli) = 0; x (sykli) = d.*cosd (teeta (sykli)); % kokonaismatkasta x y (sykli) = d.*sind (theta (sykli)); % kokonaismatka y muussa teetassa (sykli) = teeta (sykli-1) + rob.getAngle; x (sykli) = d.*cosd (teeta (sykli)) + x (sykli-1); % kokonaismatkasta x y (sykli) = d.*sind (theta (sykli)).*d + y (sykli-1); %kokonaismatka y lopussa %Tauko -ehto, jos rob.getButtons.clean break end %Lisäysjakso = sykli + 1; loppuun rob.stop i = 1: pyöräile, jos este (i) == 1 %Seinäkaavio (x (i), y (i), 'Marker', 'square', 'MarkerEdgeColor', 'r') elseif este (i) == 2 %Cliff plot (x (i), y (i), 'Marker', 'o', 'MarkerEdgeColor', 'k') lopun teksti (.9, 0.9, sprintf ('Square = Wall) nCircle = Cliff '),' Units ',' normalized ') odottavat % % hätäsignaalia, kun taas tosi rob.beep pause (3) if rob.getButtons.clean break end end % catch % rob.stop % end