Përmbajtje:
2025 Autor: John Day | [email protected]. E modifikuara e fundit: 2025-01-13 06:58
Plani aktual që ka NASA për roverin Mars është që ai të jetë një mbledhës i të dhënave dhe të bredhë rreth Marsit, duke mbledhur mostra të tokës për t’u sjellë përsëri në Tokë, në mënyrë që shkencëtarët të shohin nëse kishte ndonjë formë të mëparshme jete në planet. Për më tepër, roveri u dërgon imazhe shkencëtarëve, në mënyrë që ata të ndihmojnë të lundrojnë në rover dhe të rregullojnë çdo problem që mund të ketë.
Ideja e grupit tonë për projektin tonë është që roveri të bëjë të njëjtën gjë me roverin e NASA -s që do të largohet nga toka në vitin 2020, por edhe për të hartuar gjeografinë e tokës. Roomba do të jetë në gjendje të ndiejë shkëmbinjtë dhe të ndalojë veten para se të bjerë, dhe pastaj të kthehet, të kthehet dhe të ndryshojë rrjedhën e saj në mënyrë që të mos bjerë dhe të dëmtohet. Ideja jonë tjetër e integruar në projektin tonë është që roomba të jetë në gjendje të vizatojë pikat referuese që sheh dhe të tregojë një komplot sa herë që lak të ketë mbaruar dhe rrjedha e tij të jetë drejtuar.
Ky udhëzues është për këdo tjetër që do të donte të krijonte të njëjtin lloj kodi për dhomën e tyre.
Hapi 1: Hapi 1: Materialet e nevojshme
Do t'ju duhet:
- Një dhomë
- MATLAB
- Ky skedar për të ekzekutuar roomba
- Një sipërfaqe e sheshtë
- Një sipërfaqe tavoline për të vepruar si një "shkëmb"
Hapi 2: Hapi 2: Vendosja/Marrja e Kodit për Roomba
Ekrani juaj do të duket kështu sapo të futni skedarët.
Hapi 3: Hapi 3: Vendosja e Sensorëve të Shkëmbit/Dritave LED
Ky kod do t'i tregojë dhomës suaj saktësisht se në cilin kënd të kthehet, kontrolloni informacionin e baterisë, tregoni dhomës tuaj sa shpejt të ecni dhe të kontrolloni për një person përmes kamerës së dhomës. Gjithashtu do të bjerë nëse ai identifikon një person dhe ndalon veten para se të dalë nga një shkëmb.
% provo rob.setLEDDigits ('') x = 0; y = 0; theta = 0; pengesë = ; cikli = 1; AngCorr = @(x) x + 3.059.*X.^0.4205; %Funksioni për të korrigjuar këndet e kthesës gjatë rob.getBatteryInfo.percent> 15 rob.setLEDDigits ('') rob.setDriveVelocity (0.1) %Shko %Kontrolloni për Personin nëse AA_checkperson (grabit) rob.beep fund %Kontrolloni sensorin e shkëmbit nëse AA_cliffcheck (grabit) rob.stop rob.setLEDDigits ('Cliff') pauzë (0.5) pengesë (cikël) = 2; AA_cliffbeep (grabit) %Back Up And Turn rob.moveDistance (-.. 15) rob.turnAngle (30) fund
Hapi 4: Hapi 4: Kontrollimi i pengesave
Ky kod do të marrë dhomën për kontroll për artikujt rreth tij dhe do të kontrollojë sensorin e përplasjes për t'u siguruar që ndalet para se të dëmtojë vetveten.
%Kontrolloni Sensorin e Dritës nëse AA_lightcheck (grabit) rob.stop rob.setLEDDigits ('Wall') pauzë (0.5) pengesë (cikël) = 1; %Wall AA_wallbeep (rob) %Back Up And Turn rob.moveDistance (-. 15) rob.turnAngle (30) fund %Kontrolloni sensorin e përplasjes nëse AA_bumpcheck (grabit) rob.stop rob.setLEDDigits ('Wall') pauzë (0.5) pengesë (cikël) = 1; %Muri AA_wallbeep (grabitje) %Back Up And Turn rob.moveDistance (-. 15) rob.turnAngle (30) fund %Nëse nuk ka nëse pengesë (cikël) e zbrazët (pengesë) = 0; gjatësia elseif (pengesë) <pengesa e ciklit (cikli) = 0; fund
Hapi 5: Hapi 5: Komploti
Ky kod do t'i thotë dhomës suaj që të përshkruajë atë që has në udhëtimin e saj. Një komplot si ky do të shfaqet pasi roomba të ketë ndalur.
%Merr Pozicionin d = rob.getDistance; nëse cikli == 1 theta (cikli) = 0; x (cikli) = d.*cosd (theta (cikli)); % distanca totale e udhëtuar në x y (cikël) = d.*sind (theta (cikël)); % total dist i udhëtuar në y tjetër theta (cikël) = theta (cikël-1) + rob.getAngle; x (cikli) = d.*cosd (theta (cikli)) + x (cikli-1); % distanca totale e udhëtuar në x y (cikli) = d.*sind (theta (cikli)).*d + y (cikli-1); %dist i përgjithshëm i udhëtuar në fundin y përfundoni rob.stop për i = 1: cikli nëse pengesë (i) == 1 %Komploti i murit (x (i), y (i), 'Shënuesi', 'katrori', 'MarkerEdgeColor', 'r') tjetër pengesë (i) == 2 %Komploti i shkëmbit (x (i), y (i), 'Shënuesi', 'o', 'MarkerEdgeColor', 'k') teksti fundor (.9, 0.9, sprintf ('Sheshi = Muri / nRrethi = Shkëmbi '),' Njësitë ',' normalizuar ') mbaje deri në fund Sinjalin e shqetësimit ndërkohë që është i vërtetë rob. pau pauzë (3) nëse rob.getButtons.pushim i pastër përfundimi % kap % rob.stop % fund