Innehållsförteckning:
- Steg 1: Tillbehör
- Steg 2: Problemmeddelandet
- Steg 3: Bluetooth -fjärrkontroll
- Steg 4: Impact Recognition
- Steg 5: Livsigenkänning
- Steg 6: Kör det !
Video: Mars Roomba: 6 steg
2024 Författare: John Day | [email protected]. Senast ändrad: 2024-01-30 12:45
Denna instruktionsbok guidar dig i riktningarna för att använda en Raspberry Pi -kontrollerad Roomba vakuumbot. Operativsystemet vi kommer att använda är via MATLAB.
Steg 1: Tillbehör
Vad du behöver samla för att genomföra detta projekt:
- iRobots Create2 Roomba dammsugare bot
- Raspberry Pi
- Raspberry Pi -kamera
- Den senaste versionen av MATLAB
- Roomba installerar verktygslåda för MATLAB
- MATLAB -applikation för en mobil enhet
Steg 2: Problemmeddelandet
Vi fick i uppgift att använda MATLAB för att utveckla en rover som kan användas på Mars för att hjälpa forskare att samla in planetdata. Funktionerna som vi tog upp i vårt projekt var fjärrkontroll, objektpåverkansigenkänning, vattenigenkänning, livsigenkänning och bildbehandling. För att uppnå dessa bedrifter kodade vi med hjälp av Roomba -verktygslådekommandon för att manipulera de många funktionerna i iRobots Create2 Roomba.
Steg 3: Bluetooth -fjärrkontroll
Denna bild kommer att gå igenom koden för att styra Roombas rörelse med hjälp av Bluetooth-funktioner på din smartphone-enhet. För att börja, ladda ner MATLAB -applikationen till din smartphone och logga in på ditt Mathworks -konto. När du har loggat in går du till "mer", "inställningar" och ansluter till din dator med dess IP -adress. När du är ansluten, gå tillbaka till "mer" och välj "sensorer". Knacka på den tredje sensorn i skärmens övre verktygsfält och tryck på start. Nu är din smartphone en fjärrkontroll!
Koden är följande:
medan 0 == 0
paus (.5)
PhoneData = M. Orientation;
Azi = PhoneData (1);
Pitch = PhoneData (2);
Sida = PhoneData (3);
gupp = r.getBumpers;
om sidan> 80 || Sida <-80
r. stopp
r. pip ('C, E, G, C^, G, E, C')
ha sönder
annarsif sida> 20 && sida <40
r.turnAngle (-5);
annars sidan> 40
r.turnAngle (-25);
annars sidan-40
r.turnAngle (5);
annarsif sida <-40
r.turnAngle (25);
slutet
om Pitch> 10 && Pitch <35
r.moveDistance (.03)
elseif Pitch> -35 && Pitch <-10
r.moveDistance (-. 03)
slutet
slutet
Steg 4: Impact Recognition
En annan funktion som vi implementerade var att upptäcka påverkan av Roomba i ett objekt och sedan korrigera dess nuvarande väg. För att göra detta måste vi använda villkor med avläsningar från stötfångarsensorerna för att avgöra om ett föremål träffades. Om roboten träffar ett objekt kommer den att backa.2 meter och rotera i en vinkel som bestäms av vilken stötfångare som träffades. När ett objekt har träffats visas en meny som visar ordet "oof".
Koden visas nedan:
medan 0 == 0
gupp = r.getBumpers;
r.setDriveVelocity (.1)
if bumps.left == 1
msgbox ('Oj!');
r.moveDistance (-0,2)
r.setTurnVelocity (.2)
r.turnAngle (-35)
r.setDriveVelocity (.2)
elseif bumps.front == 1
msgbox ('Oj!');
r.moveDistance (-0,2)
r.setTurnVelocity (.2)
r.turnAngle (90)
r.setDriveVelocity (.2)
elseif bumps.right == 1
msgbox ('Oj!');
r.moveDistance (-0,2)
r.setTurnVelocity (.2)
r.turnAngle (35)
r.setDriveVelocity (.2)
elseif bumps.leftWheelDrop == 1
msgbox ('Oj!');
r.moveDistance (-0,2)
r.setTurnVelocity (.2)
r.turnAngle (-35)
r.setDriveVelocity (.2)
elseif bumps.rightWheelDrop == 1
msgbox ('Oj!');
r.moveDistance (-0,2)
r.setTurnVelocity (.2)
r.turnAngle (35)
r.setDriveVelocity (.2)
slutet
slutet
Steg 5: Livsigenkänning
Vi kodade ett system för livsigenkänning för att läsa färgerna på föremål framför det. De tre sorters liv som vi kodade för är växter, vatten och utomjordingar. För att göra detta kodade vi sensorerna för att beräkna medelvärdena för rött, blått, grönt eller vitt. Dessa värden jämfördes med trösklarna som manuellt sattes för att bestämma färgen som kameran tittar på. Koden skulle också rita vägen till objektet och skapa en karta.
Koden är följande:
t = 10;
i = 0;
medan t == 10
img = r.getImage; imshow (img)
paus (0,167)
i = i + 1;
red_mean = medelvärde (medelvärde (img (:,:, 1)));
blue_mean = medelvärde (medelvärde (img (:,:, 3)));
green_mean = medelvärde (medelvärde (img (:,:, 2)));
white_mean = (blue_mean + green_mean + red_mean) / 3; %vill ha detta värde cirka 100
nine_plus_ten = 21;
green_threshold = 125;
blue_threshold = 130;
white_threshold = 124;
röd_tröskel = 115;
medan nine_plus_ten == 21 %grönt - liv
om green_mean> green_threshold && blue_mean <blue_threshold && red_mean <red_threshold
r.moveDistance (-. 1)
a = msgbox ('möjlig livskälla hittad, plats plottad');
paus (2)
radera (a)
[y2, Fs2] = ljudläsning ('z_speak2.wav');
ljud (y2, Fs2)
paus (2)
%plant = r.getImage; %imshow (växt);
%spara ('plant_img.mat', plant ');
%tomtplats i grönt
i = 5;
ha sönder
annan
nine_plus_ten = 19;
slutet
slutet
nine_plus_ten = 21;
medan nine_plus_ten == 21 %blå - woder
om blue_mean> blue_threshold && green_mean <green_threshold && white_mean <white_threshold && red_mean <red_threshold
r.moveDistance (-. 1)
a = msgbox ('en vattenkälla har hittats, platsen ritad');
paus (2)
radera (a)
[y3, Fs3] = ljudläsning ('z_speak3.wav');
ljud (y3, Fs3);
%woder = r.getImage; %imshow (woder)
%spara ('water_img.mat', woder)
%tomtplats i blått
i = 5;
ha sönder
annan
nine_plus_ten = 19;
slutet
slutet
nine_plus_ten = 21;
medan nine_plus_ten == 21 %vit - aliens monkaS
om white_mean> white_threshold && blue_mean <blue_threshold && green_mean <green_threshold
[y5, Fs5] = ljudläsning ('z_speak5.wav');
ljud (y5, Fs5);
paus (3)
r.setDriveVelocity (0,.5)
[ys, Fss] = ljudläsning ('z_scream.mp3');
ljud (ys, Fss);
paus (3)
r. stopp
% alien = r.getImage; %imshow (alien);
% spara ('alien_img.mat', alien);
i = 5;
ha sönder
annan
nine_plus_ten = 19;
slutet
slutet
om jag == 5
a = 1; %vänder vinkel
t = 9; %avsluta stor slinga
i = 0;
slutet
slutet
Steg 6: Kör det !
När all koden har skrivits kombinerar du allt till en fil och voila! Din Roomba -bot kommer nu att fungera fullt ut och fungera som annonserat! Bluetooth -kontrollen bör dock antingen vara i en separat fil eller åtskild från resten av koden med %%.
Njut av att använda din robot !!
Rekommenderad:
Förvandla din Roomba till en Mars Rover: 5 steg
Förvandla din Roomba till en Mars Rover:
Mars Rover med Raspberry Pi: 5 steg
Mars Rover Använda Raspberry Pi: Kära alla stora lärare, jag är alltid nyfiken på att veta om mars rover, med 6 hjul som kan gå överallt på Mars och utforska saker från jorden. Jag vill också utforska saken genom att sitta på min bärbara dator. Så nu tycker jag att det är rätt tid att göra det och
Raspberry Pi - Autonom Mars Rover med OpenCV Object Tracking: 7 steg (med bilder)
Raspberry Pi - Autonom Mars Rover med OpenCV Object Tracking: Drivs av en Raspberry Pi 3, Open CV -objektigenkänning, ultraljudssensorer och växlade DC -motorer. Denna rover kan spåra alla föremål den är utbildad för och röra sig på vilken terräng som helst
Mars Roomba Project UTK: 4 steg
Mars Roomba Project UTK: ANSVARSFRISKRIVNING: DETTA KOMMER ENDAST ATT ROOMBA INSTALLERAS PÅ AVERY SPECIFIK SÄTT, DENNA INSTRUKTABEL SKAPADE FÖR OCH AVSIKTAD ATT ANVÄNDAS AV UNIVERSITETEN I TENNESSEE STUDENTER OCH FAKULTYT Denna kod används för att ställa in lokalt skrivet och s
Mars spaningsrobot: 4 steg
Mars Reconnaissance Robot: This Instructable är en steg-för-steg-guide för att programmera och styra Mars Reconnaissance Robot. För att starta måste man få en lista över följande material: En laddad iRobot-skapad skräddarsydd av Tickle College of Eningeering Univerisity of Ten