Përmbajtje:

Roomba MATLAB Projekti: 5 hapa
Roomba MATLAB Projekti: 5 hapa

Video: Roomba MATLAB Projekti: 5 hapa

Video: Roomba MATLAB Projekti: 5 hapa
Video: Do matlab simulink and matlab projects - Best Other service 2024, Nëntor
Anonim
Projekti Roomba MATLAB
Projekti Roomba MATLAB

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

Hapi 1: Materialet e nevojshme
Hapi 1: Materialet e nevojshme
Hapi 1: Materialet e nevojshme
Hapi 1: Materialet e nevojshme

Do t'ju duhet:

  1. Një dhomë
  2. MATLAB
  3. Ky skedar për të ekzekutuar roomba
  4. Një sipërfaqe e sheshtë
  5. Një sipërfaqe tavoline për të vepruar si një "shkëmb"

Hapi 2: Hapi 2: Vendosja/Marrja e Kodit për Roomba

Hapi 2: Vendosja/Marrja e Kodit për Roomba
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

Hapi 5: Komplotimi
Hapi 5: Komplotimi

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

Recommended: