Innholdsfortegnelse:
- Trinn 1: Rekvisita
- Trinn 2: Problemerklæringen
- Trinn 3: Bluetooth fjernkontroll
- Trinn 4: Virkningsgjenkjenning
- Trinn 5: Livsgjenkjenning
- Trinn 6: Kjør det
Video: Mars Roomba: 6 trinn
2024 Forfatter: John Day | [email protected]. Sist endret: 2024-01-30 11:23
Denne instruksen vil guide deg i instruksjonene for bruk av en Raspberry Pi -kontrollert Roomba vakuumbot. Operativsystemet vi skal bruke er gjennom MATLAB.
Trinn 1: Rekvisita
Hva du må samle for å gjennomføre dette prosjektet:
- iRobot's Create2 Roomba støvsuger bot
- Bringebær Pi
- Raspberry Pi -kamera
- Den siste versjonen av MATLAB
- Roomba installasjonsverktøykasse for MATLAB
- MATLAB -applikasjon for en mobilenhet
Trinn 2: Problemerklæringen
Vi fikk i oppgave å bruke MATLAB til å utvikle en rover som kan brukes på Mars for å hjelpe forskere med å samle inn planetdata. Funksjonene vi tok for oss i prosjektet vårt var fjernkontroll, gjenkjenning av gjenstander, gjenkjenning av vann, livsgjenkjenning og bildebehandling. For å oppnå disse bragdene, kodet vi ved hjelp av Roomba -verktøykassekommandoene for å manipulere de mange funksjonene i iRobots Create2 Roomba.
Trinn 3: Bluetooth fjernkontroll
Dette lysbildet vil gå gjennom koden for å kontrollere Roombas bevegelse ved hjelp av Bluetooth-funksjonene til smarttelefonenheten. For å begynne, last ned MATLAB -applikasjonen til smarttelefonen din og logg inn på Mathworks -kontoen din. Når du er logget inn, går du til "mer", "innstillinger" og kobler til datamaskinen din ved hjelp av IP -adressen. Når du er tilkoblet, går du tilbake til "mer" og velger "sensorer". Trykk på den tredje sensoren på den øverste verktøylinjen på skjermen, og trykk på start. Nå er smarttelefonen din en fjernkontroll!
Koden er som følger:
mens 0 == 0
pause (.5)
PhoneData = M. Orientation;
Azi = PhoneData (1);
Pitch = PhoneData (2);
Side = PhoneData (3);
støt = r.getBumpers;
hvis side> 80 || Side <-80
r. stopp
r. pip ('C, E, G, C^, G, E, C')
gå i stykker
elseif Side> 20 && Side <40
r.turnAngle (-5);
annet side> 40
r.turnAngle (-25);
annet side-40
r.turnAngle (5);
elseif Side <-40
r.turnAngle (25);
slutt
hvis Pitch> 10 && Pitch <35
r.moveDistance (.03)
elseif Pitch> -35 && Pitch <-10
r.moveDistance (-. 03)
slutt
slutt
Trinn 4: Virkningsgjenkjenning
En annen funksjon vi implementerte var å oppdage virkningen av Roomba i et objekt og deretter korrigere den nåværende banen. For å gjøre dette måtte vi bruke betingelser med avlesningene fra støtfangersensorene for å avgjøre om et objekt ble truffet. Hvis roboten treffer et objekt, vil den sikkerhetskopiere.2 meter og rotere i en vinkel bestemt av hvilken støtfanger som ble truffet. Når et element har blitt truffet, dukker det opp en meny som viser ordet "oof".
Koden er vist nedenfor:
mens 0 == 0
støt = r.getBumpers;
r.setDriveVelocity (.1)
if bumps.left == 1
msgbox ('Oof!');
r.moveDistance (-0,2)
r.setTurnVelocity (.2)
r.turnAngle (-35)
r.setDriveVelocity (.2)
elseif bumps.front == 1
msgbox ('Oof!');
r.moveDistance (-0,2)
r.setTurnVelocity (.2)
r.turnAngle (90)
r.setDriveVelocity (.2)
elseif bumps.right == 1
msgbox ('Oof!');
r.moveDistance (-0,2)
r.setTurnVelocity (.2)
r.turnAngle (35)
r.setDriveVelocity (.2)
elseif bumps.leftWheelDrop == 1
msgbox ('Oof!');
r.moveDistance (-0,2)
r.setTurnVelocity (.2)
r.turnAngle (-35)
r.setDriveVelocity (.2)
elseif bumps.rightWheelDrop == 1
msgbox ('Oof!');
r.moveDistance (-0,2)
r.setTurnVelocity (.2)
r.turnAngle (35)
r.setDriveVelocity (.2)
slutt
slutt
Trinn 5: Livsgjenkjenning
Vi kodet et system for livsgjenkjenning for å lese fargene på objektene foran det. De tre livsstilene vi koder for er planter, vann og romvesener. For å gjøre dette, kodet vi sensorene for å beregne gjennomsnittsverdiene for rødt, blått, grønt eller hvitt. Disse verdiene ble sammenlignet med tersklene som ble satt manuelt for å bestemme fargen som kameraet ser på. Koden vil også plotte banen til objektet og lage et kart.
Koden er som følger:
t = 10;
i = 0;
mens t == 10
img = r.getImage; imshow (img)
pause (0.167)
i = i + 1;
red_mean = mean (mean (img (:,:, 1)));
blue_mean = mean (mean (img (:,:, 3)));
green_mean = mean (mean (img (:,:, 2)));
white_mean = (blue_mean + green_mean + red_mean) / 3; %vil ha denne verdien ca 100
ni_plus_ten = 21;
grønn_grense = 125;
blue_threshold = 130;
hvit_grense = 124;
rød_grense = 115;
mens nine_plus_ten == 21 %grønt - liv
hvis green_mean> green_threshold && blue_mean <blue_threshold && red_mean <red_threshold
r.moveDistance (-. 1)
a = msgbox ('mulig livskilde funnet, plassering plottet');
pause (2)
slett (a)
[y2, Fs2] = lydlesing ('z_speak2.wav');
lyd (y2, Fs2)
pause (2)
%plant = r.getImage; %imshow (plante);
%save ('plant_img.mat', plant ');
%tomtsted i grønt
i = 5;
gå i stykker
ellers
ni_plus_ten = 19;
slutt
slutt
ni_plus_ten = 21;
mens nine_plus_ten == 21 %blå - woder
hvis blue_mean> blue_threshold && green_mean <green_threshold && white_mean <white_threshold && red_mean <red_threshold
r.moveDistance (-. 1)
a = msgbox ('en vannkilde er funnet, plassering plottet');
pause (2)
slett (a)
[y3, Fs3] = lydlesing ('z_speak3.wav');
lyd (y3, Fs3);
%woder = r.getImage; %imshow (woder)
%spare ('water_img.mat', woder)
%tomtplassering i blått
i = 5;
gå i stykker
ellers
ni_plus_ten = 19;
slutt
slutt
ni_plus_ten = 21;
mens nine_plus_ten == 21 %hvite - aliens monkaS
hvis white_mean> white_threshold && blue_mean <blue_threshold && green_mean <green_threshold
[y5, Fs5] = lydlesing ('z_speak5.wav');
lyd (y5, Fs5);
pause (3)
r.setDriveVelocity (0,.5)
[ys, Fss] = lydlesing ('z_scream.mp3');
lyd (ys, Fss);
pause (3)
r. stopp
% alien = r.getImage; %imshow (alien);
% lagre ('alien_img.mat', alien);
i = 5;
gå i stykker
ellers
ni_plus_ten = 19;
slutt
slutt
hvis jeg == 5
a = 1; %svinger vinkel
t = 9; %avslutter stor sløyfe
i = 0;
slutt
slutt
Trinn 6: Kjør det
Etter at koden er skrevet, kombinerer du alt i en fil og voila! Roomba -boten din vil nå være fullt funksjonell og fungere som annonsert! Bluetooth -kontrollen bør imidlertid enten være i en egen fil eller atskilt fra resten av koden med %%.
Kos deg med roboten din !!
Anbefalt:
Gjør Roomba til en Mars Rover: 5 trinn
Gjør Roomba til en Mars Rover:
Mars Rover som bruker Raspberry Pi: 5 trinn
Mars Rover ved hjelp av Raspberry Pi: Kjære alle store lærere, jeg er alltid nysgjerrig på å vite om mars rover, med 6 hjul som kan gå over hele Mars og utforske ting fra jorden. Jeg vil også utforske ting ved å sitte på den bærbare datamaskinen min. Så nå synes jeg det er på tide å gjøre det og
Raspberry Pi - Autonom Mars Rover med OpenCV -objektsporing: 7 trinn (med bilder)
Raspberry Pi - Autonom Mars Rover med OpenCV -objektsporing: Drevet av en Raspberry Pi 3, åpen CV -gjenkjenning, ultralydsensorer og DC -motorer med gir. Denne roveren kan spore ethvert objekt den er trent for og bevege seg i alle terreng
Mars Roomba Project UTK: 4 trinn
Mars Roomba Project UTK: ANSVARSFRASKRIVELSE: DETTE KUNNE VIRKE HVIS ROOMBA ER SET OPP I AVERY SPECIFIC WAY, DENNE INSTRUKTABLE VAR SKAPT FOR OG HENSIKT TIL BRUK AV UNIVERSITETET I TENNESSEE STUDENTER OG FAKULTYT Denne koden brukes til å sette opp en lokal skrevet og s
Mars rekognoseringsrobot: 4 trinn
Mars Reconnaissance Robot: This Instructable er en trinnvis veiledning for å programmere og kommandere Mars Reconnaissance Robot. For å starte må man skaffe seg listen over følgende materialer: En ladet iRobot laget tilpasset av Tickle College of Eningeering Univerisity of Ten