Indholdsfortegnelse:
- Trin 1: Forbrugsvarer
- Trin 2: Problemformuleringen
- Trin 3: Bluetooth fjernbetjening
- Trin 4: Impact Recognition
- Trin 5: Livsgenkendelse
- Trin 6: Kør det
Video: Mars Roomba: 6 trin
2024 Forfatter: John Day | [email protected]. Sidst ændret: 2024-01-30 08:28
Denne instruks vil guide dig i retning af betjening af en Raspberry Pi kontrolleret Roomba vakuumbot. Det operativsystem, vi vil bruge, er via MATLAB.
Trin 1: Forbrugsvarer
Hvad du skal samle for at gennemføre dette projekt:
- iRobot's Create2 Roomba støvsuger bot
- Hindbær Pi
- Hindbær Pi kamera
- Den nyeste version af MATLAB
- Roomba -installationsværktøjskassen til MATLAB
- MATLAB -applikation til en mobilenhed
Trin 2: Problemformuleringen
Vi fik til opgave at bruge MATLAB til at udvikle en rover, der kunne bruges på Mars for at hjælpe forskere med at indsamle planetdata. De funktioner, vi behandlede i vores projekt, var fjernbetjening, genkendelse af genstande, vandgenkendelse, livsgenkendelse og billedbehandling. For at opnå disse bedrifter kodede vi ved hjælp af Roomba -værktøjskassekommandoer til at manipulere de mange funktioner i iRobots Create2 Roomba.
Trin 3: Bluetooth fjernbetjening
Dette dias vil gennemgå koden for at styre Roombas bevægelse ved hjælp af Bluetooth-funktioner på din smartphone-enhed. For at begynde skal du downloade MATLAB -applikationen til din smartphone og logge ind på din Mathworks -konto. Når du er logget ind, skal du gå til "mere", "indstillinger", og oprette forbindelse til din computer ved hjælp af dens IP -adresse. Når du er tilsluttet, skal du gå tilbage til "mere" og vælge "sensorer". Tryk på den tredje sensor på den øverste værktøjslinje på skærmen, og tryk på start. Nu er din smartphone en fjernbetjening!
Koden er som følger:
mens 0 == 0
pause (.5)
PhoneData = M. Orientation;
Azi = PhoneData (1);
Pitch = PhoneData (2);
Side = PhoneData (3);
bump = r.getBumpers;
hvis Side> 80 || Side <-80
r. stop
r.bip ('C, E, G, C^, G, E, C')
pause
elseif Side> 20 && Side <40
r.turnAngle (-5);
ellers side> 40
r.turnAngle (-25);
ellers side-40
r.turnAngle (5);
elseif Side <-40
r.turnAngle (25);
ende
hvis Pitch> 10 && Pitch <35
r.moveDistance (.03)
elseif Pitch> -35 && Pitch <-10
r.moveDistance (-. 03)
ende
ende
Trin 4: Impact Recognition
En anden funktion, som vi implementerede, var at registrere Roomba's indvirkning på et objekt og derefter korrigere dets nuværende sti. For at gøre dette måtte vi bruge betingelser med aflæsninger fra kofangersensorerne til at afgøre, om et objekt blev ramt. Hvis robotten rammer et objekt, vil den bakke op.2 meter og rotere i en vinkel bestemt af hvilken kofanger der blev ramt. Når et element er blevet ramt, vises en menu med ordet "oof".
Koden er vist herunder:
mens 0 == 0
bump = r.getBumpers;
r.setDriveVelocity (.1)
hvis bumps.left == 1
msgbox ('Åh!');
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 ('Åh!');
r.moveDistance (-0,2)
r.setTurnVelocity (.2)
r.turnAngle (35)
r.setDriveVelocity (.2)
ende
ende
Trin 5: Livsgenkendelse
Vi kodede et livsgenkendelsessystem til at læse farverne på objekter foran det. De tre slags liv, som vi kodede for, er planter, vand og rumvæsner. For at gøre dette kodede vi sensorerne for at beregne gennemsnitsværdierne rød, blå, grøn eller hvid. Disse værdier blev sammenlignet med de tærskler, der manuelt blev indstillet for at bestemme den farve, kameraet ser på. Koden ville også plotte stien til objektet og oprette et kort.
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 = middelværdi (middelværdi (img (:,:, 1)));
blue_mean = middelværdi (middelværdi (img (:,:, 3)));
green_mean = middelværdi (middelværdi (img (:,:, 2)));
white_mean = (blue_mean + green_mean + red_mean) / 3; %vil have denne værdi cirka 100
ni_plus_ten = 21;
grøn_grænse = 125;
blue_threshold = 130;
hvid_grænse = 124;
rød_grænse = 115;
mens nine_plus_ten == 21 %grøn - liv
hvis green_mean> green_threshold && blue_mean <blue_threshold && red_mean <red_threshold
r.moveDistance (-. 1)
a = msgbox ('mulig livskilde fundet, placering plottet');
pause (2)
slet (a)
[y2, Fs2] = lydlæsning ('z_speak2.wav');
lyd (y2, Fs2)
pause (2)
%plante = r.getImage; %imshow (plante);
%save ('plant_img.mat', plant ');
%grundplacering i grønt
i = 5;
pause
andet
ni_plus_ten = 19;
ende
ende
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 ('der er fundet en vandkilde, afbildet placering');
pause (2)
slet (a)
[y3, Fs3] = lydlæsning ('z_speak3.wav');
lyd (y3, Fs3);
%woder = r.getImage; %imshow (woder)
%spar ('water_img.mat', woder)
%grundplacering i blåt
i = 5;
pause
andet
ni_plus_ten = 19;
ende
ende
ni_plus_ten = 21;
mens nine_plus_ten == 21 %hvid - aliens monkaS
hvis white_mean> white_threshold && blue_mean <blue_threshold && green_mean <green_threshold
[y5, Fs5] = lydlæsning ('z_speak5.wav');
lyd (y5, Fs5);
pause (3)
r.setDriveVelocity (0,.5)
[ys, Fss] = lydlæsning ('z_scream.mp3');
lyd (ys, Fss);
pause (3)
r. stop
% alien = r.getImage; %imshow (fremmed);
% gem ('alien_img.mat', alien);
i = 5;
pause
andet
ni_plus_ten = 19;
ende
ende
hvis jeg == 5
a = 1; %drejer vinkel
t = 9; %afslutter stor sløjfe
i = 0;
ende
ende
Trin 6: Kør det
Når al koden er skrevet, kombineres det hele til en fil og voila! Din Roomba -bot vil nu være fuldt funktionsdygtig og fungere som annonceret! Bluetooth -kontrollen skal dog enten være i en separat fil eller adskilt fra resten af koden med %%.
Nyd at bruge din robot !!
Anbefalede:
Gør din Roomba til en Mars Rover: 5 trin
Gør din Roomba til en Mars Rover:
Mars Rover ved hjælp af Raspberry Pi: 5 trin
Mars Rover Brug af Raspberry Pi: Kære alle store lærere, jeg er altid nysgerrig efter at vide om mars rover, der har 6 hjul, der kan gå hele overfladen af mars og udforske ting fra jorden. Jeg vil også undersøge tingene ved at sidde på min bærbare computer. Så nu synes jeg det er det rigtige tidspunkt at klare det og
Raspberry Pi - Autonom Mars Rover Med OpenCV Object Tracking: 7 trin (med billeder)
Raspberry Pi - Autonom Mars Rover Med OpenCV Object Tracking: Drevet af en Raspberry Pi 3, Open CV objektgenkendelse, Ultrasonic sensorer og gearede DC motorer. Denne rover kan spore ethvert objekt, den er trænet til, og bevæge sig på ethvert terræn
Mars Roomba Project UTK: 4 trin
Mars Roomba -projekt UTK: ANSVARSFRASKRIVELSE: DETTE KUN KUN ARBEJDE, HVIS ROOMBAEN ER OPSÆTTET I GENNEMFØRENDE SPECIFIK MÅDE, DENNE INSTRUKTABLE VAR SKABT TIL OG TIL AT BRUGES AF UNIVERSITETET I TENNESSEE -STUDENTER OG FAKULTYT Denne kode bruges til at oprette lokalt skrevet og s
Mars Reconnaissance Robot: 4 trin
Mars Reconnaissance Robot: This Instructable er en trin-for-trin guide til programmering og kommando af Mars Reconnaissance Robot. For at starte skal man få listen over følgende materialer: En ladet iRobot-skabt tilpasset af Tickle College of Eningeering Univerisity of Ten