INHOUDSOPGAWE:
- Stap 1: Stap 1: materiaal benodig
- Stap 2: Stap 2: Stel kode op vir Roomba
- Stap 3: Stap 3: Die oprigting van kransensors/LED -ligte
- Stap 4: Stap 4: Kontroleer op hindernisse
- Stap 5: Stap 5: Plot
Video: Roomba MATLAB -projek: 5 stappe
2024 Outeur: John Day | [email protected]. Laas verander: 2024-01-30 07:26
Die huidige plan wat NASA vir die Mars -rover het, is dat dit 'n data -insamelaar moet wees en rondom Mars kan rondloop en monsters van die grond kan versamel om na die aarde terug te bring, sodat wetenskaplikes kan sien of daar vorige lewensvorme op die planeet bestaan. Boonop stuur die rover beelde terug na wetenskaplikes, sodat hulle kan help om die rover te navigeer en probleme op te los.
Ons groep se idee vir ons projek is dat die rover dieselfde moet doen as die NASA -rover wat die aarde in 2020 sal verlaat, maar ook om die geografie van die land in kaart te bring. Die roomba kan kranse aanvoel en homself stop voordat dit val, en dan terugdraai, draai en sy koers verander sodat dit nie val en beskadig word nie. Ons ander idee wat in ons projek geïntegreer is, is dat die roomba die landmerke wat hy sien, kan uitteken en 'n plot kan wys elke keer as die lus klaar is en die loop daarvan is.
Hierdie instruksie is vir almal wat dieselfde tipe kode vir hul roomba wil skep.
Stap 1: Stap 1: materiaal benodig
Jy sal nodig hê:
- 'N Kamer
- MATLAB
- Hierdie lêer om die roomba
- 'N Plat oppervlak
- 'N Tafeloppervlak om as 'n "krans" te dien
Stap 2: Stap 2: Stel kode op vir Roomba
U skerm sal so lyk sodra u die lêers ingevoer het.
Stap 3: Stap 3: Die oprigting van kransensors/LED -ligte
Hierdie kode sal jou roomba presies vertel watter hoek om te draai, die battery -inligting nagaan, jou kamerba vertel hoe vinnig om te gaan en om na 'n persoon deur die kameraba se kamera te kyk. Dit sal ook piep as dit 'n persoon identifiseer en homself stop voordat hy van 'n krans afklim.
% probeer rob.setLEDDigits ('') x = 0; y = 0; theta = 0; hindernis = ; siklus = 1; AngCorr = @(x) x + 3.059.*X.^0.4205; %Funksie om draaihoeke reg te stel terwyl rob.getBatteryInfo.percent> 15 rob.setLEDDigits ('') rob.setDriveVelocity (0.1) %Gaan %Kontroleer of persoon as AA_checkperson (rob) rob.beep eind %Kontroleer Cliff Sensor as AA_cliffcheck (rob) rob.stop rob.setLEDDigits ('Cliff') pouse (0.5) hindernis (siklus) = 2; AA_cliffbeep (rob) %Rugsteun en draai rob.moveDistance (-. 15) rob.turnAngle (30) einde
Stap 4: Stap 4: Kontroleer op hindernisse
Hierdie kode sal die roomba laat kontroleer of daar items rondom is en die stampsensor kontroleer om seker te maak dat dit stop voordat dit homself beskadig.
Gaan die ligsensor na as AA_lightcheck (rob) rob.stop rob.setLEDDigits ('muur') pouse (0.5) hindernis (siklus) = 1; %Wall AA_wallbeep (rob) %Back-up and Turn rob.moveDistance (-. 15) rob.turnAngle (30) end %Check Bump Sensor if AA_bumpcheck (rob) rob.stop rob.setLEDDigits ('Wall') pause (0.5) hindernis (siklus) = 1; %Muur AA_wallbeep (rob) %Maak 'n rugsteun en draai rob.moveDistance (-. 15) rob.turnAngle (30) end %As dit nie een is as dit 'n hindernis (siklus) = 0 is nie; elseif lengte (hindernis) <siklus hindernis (siklus) = 0; einde
Stap 5: Stap 5: Plot
Hierdie kode sal u roomba vertel om uit te vind wat dit op sy reis teëkom. 'N Plot soos hierdie sal verskyn nadat die roomba gestop het.
%Kry posisie d = rob.getDistance; as siklus == 1 theta (siklus) = 0; x (siklus) = d.*cosd (theta (siklus)); % totale afstand afgelê in x y (siklus) = d.*sin (theta (siklus)); % totale afstand afgelê in y anders theta (siklus) = theta (siklus-1) + rob.getAngle; x (siklus) = d.*cosd (theta (siklus)) + x (siklus-1); % totale afstand afgelê in x y (siklus) = d.*sin (theta (siklus)).*d + y (siklus-1); %totale afstand afgelê in y einde %Onderbrekingstoestand as rob.getButtons.clean break end %Toenamesiklus siklus = siklus + 1; eindig rob.stop vir i = 1: fiets as hindernis (i) == 1 %Muur plot (x (i), y (i), 'Marker', 'square', 'MarkerEdgeColor', 'r') anders as hindernis (i) == 2 %Cliff plot (x (i), y (i), 'Marker', 'o', 'MarkerEdgeColor', 'k') eindteks (.9, 0.9, sprintf ('Square = Wall / nCircle = Cliff '),' Units ',' normalized ') hou aan end % Distress Signal terwyl true rob.beep pause (3) if rob.getButtons.clean break end end % catch % rob.stop % end
Aanbeveel:
Verander jou Roomba in 'n Mars Rover: 5 stappe
Omskep jou Roomba in 'n Mars Rover:
Roomba Bot the Bulider: 5 stappe (met foto's)
Roomba Bot die Bulider: Bot die Bouwer is 'n roomba, wat met " grabbers " aan die voorkant geheg, kan voorwerpe rondbeweeg. Die kode daarmee is ingestel om die eerste beweging op te neem met 'n GUI -boks wat u met slegs 'n klik van u muis kan beheer. Na
MATLAB -beheerde Roomba: 5 stappe
MATLAB -beheerde Roomba: Die doel van hierdie projek is om MATLAB sowel as 'n aangepaste iRobot -programmeerbare robot te gebruik. Ons groep het ons koderingsvaardighede gekombineer om 'n MATLAB -script te skep wat baie funksies van die iRobot gebruik, insluitend die kransensors, bumper sens
Van Roomba tot Rover in net 5 stappe !: 5 stappe
Van Roomba tot Rover in net 5 stappe !: Roomba -robotte is 'n prettige en maklike manier om u tone in die wêreld van robotika te dompel. In hierdie instruksies sal ons verduidelik hoe u 'n eenvoudige Roomba kan omskep in 'n beheerbare rover wat sy omgewing gelyktydig ontleed
Roomba With MATLAB: 4 stappe (met foto's)
Roomba With MATLAB: Hierdie projek maak gebruik van MATLAB en 'n programmeerbare robot van iRobot Create2. Deur ons kennis van MATLAB op die proef te stel, kan ons die Create2 programmeer om beelde te interpreteer en seine op te spoor. Die funksionaliteit van die robot hang hoofsaaklik af van die