Tartalomjegyzék:
- 1. lépés: Kellékek
- 2. lépés: A problémajelentés
- 3. lépés: Bluetooth távirányító
- 4. lépés: Hatásfelismerés
- 5. lépés: Életfelismerés
- 6. lépés: Futtassa
Videó: Mars Roomba: 6 lépés
2024 Szerző: John Day | [email protected]. Utoljára módosítva: 2024-01-30 09:42
Ez az utasítás elvezeti Önt a Raspberry Pi vezérelt Roomba vákuum bot működtetésének irányába. Az operációs rendszer, amelyet használni fogunk, a MATLAB.
1. lépés: Kellékek
Amit össze kell gyűjtenie a projekt megvalósításához:
- Az iRobot Create2 Roomba porszívó botja
- Raspberry Pi
- Raspberry Pi kamera
- A MATLAB legújabb verziója
- A Roomba telepítő eszköztára a MATLAB számára
- MATLAB alkalmazás mobil eszközhöz
2. lépés: A problémajelentés
Azt a feladatot kaptuk, hogy a MATLAB segítségével kifejlesszük a Marson használható rover -t, hogy segítsünk a tudósoknak a bolygóadatok gyűjtésében. A projektünkben tárgyalt funkciók a távvezérlés, az objektumütközés -felismerés, a vízfelismerés, az életfelismerés és a képfeldolgozás voltak. Ezen teljesítmények eléréséhez a Roomba eszköztár parancsaival kódoltuk az iRobot Create2 Roomba számos funkciójának manipulálását.
3. lépés: Bluetooth távirányító
Ez a dia végigvezeti a Roomba mozgásának vezérlésére szolgáló kódot az okostelefon Bluetooth funkcióinak segítségével. Először is töltse le a MATLAB alkalmazást okostelefonjára, és jelentkezzen be Mathworks -fiókjába. Bejelentkezés után lépjen a "továbbiak", "beállítások" menüpontra, és csatlakozzon a számítógéphez az IP -címe segítségével. A csatlakoztatás után térjen vissza a "több" részhez, és válassza az "érzékelők" lehetőséget. Érintse meg a képernyő felső eszköztárának harmadik érzékelőjét, majd a start gombot. Most az okostelefon egy távirányító!
A kód a következő:
míg 0 == 0
szünet (.5)
PhoneData = M. Orientation;
Azi = Telefonadatok (1);
Hangmagasság = Telefonadatok (2);
Oldal = Telefonadatok (3);
dudorok = r.getBumpers;
ha az oldal> 80 || Oldal <-80
r.megáll
r. hangjelzés ('C, E, G, C^, G, E, C')
szünet
elseif oldal> 20 && oldal <40
r.fordulószög (-5);
Egyéb oldal> 40
ford.szög (-25);
elseif Side-40
r.fordulószög (5);
elseif Oldala <-40
r.fordulószög (25);
vége
ha Pitch> 10 && Pitch <35
r.moveDistance (.03)
elseif Pitch> -35 && Pitch <-10
r.moveDistance (-. 03)
vége
vége
4. lépés: Hatásfelismerés
Egy másik funkció, amelyet megvalósítottunk, az volt, hogy érzékeljük a Roomba becsapódását egy objektumba, majd korrigáljuk annak aktuális útvonalát. Ehhez feltételeseket kellett használnunk a lökhárító szenzorok leolvasásával, hogy megállapítsuk, elütött -e egy tárgyat. Ha a robot eltalál egy tárgyat, akkor 0,2 métert hátrál, és olyan szögben forog, amelyet a lökhárító üt. Miután egy elemet eltaláltak, megjelenik egy menü, amelyben megjelenik az "oof" szó.
A kód az alábbiakban látható:
míg 0 == 0
dudorok = r.getBumpers;
r.setDriveVelocity (.1)
ha dudorok.balra == 1
msgbox ('Hoppá!');
r.moveDistance (-0,2)
r.setTurnVelocity (.2)
r.turnAngle (-35)
r.setDriveVelocity (.2)
elseif dudorok.front == 1
msgbox ('Hoppá!');
r.moveDistance (-0,2)
r.setTurnVelocity (.2)
r.turnAngle (90)
r.setDriveVelocity (.2)
elseif dudorok.jobb == 1
msgbox ('Hoppá!');
r.moveDistance (-0,2)
r.setTurnVelocity (.2)
r.turnAngle (35)
r.setDriveVelocity (.2)
elseif dudorok.leftWheelDrop == 1
msgbox ('Hoppá!');
r.moveDistance (-0,2)
r.setTurnVelocity (.2)
r.turnAngle (-35)
r.setDriveVelocity (.2)
elseif dudorok.rightWheelDrop == 1
msgbox ('Hoppá!');
r.moveDistance (-0,2)
r.setTurnVelocity (.2)
r.turnAngle (35)
r.setDriveVelocity (.2)
vége
vége
5. lépés: Életfelismerés
Életfelismerő rendszert kódoltunk, hogy leolvassuk az előtte lévő tárgyak színeit. A háromféle élet, amelyet kódoltunk, a növények, a víz és az idegenek. Ehhez kódoltuk az érzékelőket, hogy kiszámítsuk a piros, kék, zöld vagy fehér átlagértékeket. Ezeket az értékeket összehasonlították a küszöbértékekkel, amelyeket manuálisan állítottak be a kamera által nézett szín meghatározásához. A kód az objektum elérési útját és a térkép létrehozását is ábrázolja.
A kód a következő:
t = 10;
i = 0;
míg t == 10
img = r.getImage; imshow (img)
szünet (0,167)
i = i + 1;
red_mean = átlag (átlagos (img (:,:, 1)));
blue_mean = átlag (átlag (img (:,:, 3)));
zöld_érték = átlag (átlag (img (:,:, 2)));
white_mean = (blue_mean + green_mean + red_mean) / 3; %szeretné ezt a val kb 100 -at
nine_plus_ten = 21;
zöld_küszöb = 125;
kék_küszöb = 130;
fehér_küszöb = 124;
piros_küszöb = 115;
míg nine_plus_ten == 21 %zöld - élet
if green_mean> green_threshold && blue_mean <blue_threshold && red_mean <red_threshold
r.moveDistance (-. 1)
a = msgbox ('lehetséges életforrás megtalálva, a hely ábrázolva');
szünet (2)
törlés (a)
[y2, Fs2] = audioread ('z_speak2.wav');
hang (y2, Fs2)
szünet (2)
%növény = r.getImage; %imshow (növény);
%mentés ('plant_img.mat', plant ');
%telek elhelyezkedése zöld színben
i = 5;
szünet
más
nine_plus_ten = 19;
vége
vége
nine_plus_ten = 21;
míg nine_plus_ten == 21 %kék - woder
if blue_mean> blue_threshold && green_mean <green_threshold && white_mean <white_threshold && red_mean <red_threshold
r.moveDistance (-. 1)
a = msgbox ('vízforrást találtak, helyét ábrázolták');
szünet (2)
törlés (a)
[y3, Fs3] = hangolvasás ('z_speak3.wav');
hang (y3, Fs3);
%woder = r.getImage; %imshow (woder)
%mentés ('water_img.mat', woder)
%telekhely kékkel
i = 5;
szünet
más
nine_plus_ten = 19;
vége
vége
nine_plus_ten = 21;
míg nine_plus_ten == 21 %fehér - idegenek monkaS
if white_mean> white_threshold && blue_mean <blue_threshold && green_mean <green_threshold
[y5, Fs5] = hangolvasás ('z_speak5.wav');
hang (y5, Fs5);
szünet (3)
r.setDriveVelocity (0,.5)
[ys, Fss] = audioread ('z_scream.mp3');
hang (ys, Fss);
szünet (3)
r.megáll
% idegen = r.getImage; %imshow (idegen);
% save ('alien_img.mat', idegen);
i = 5;
szünet
más
nine_plus_ten = 19;
vége
vége
ha i == 5
a = 1; %fordulási szög
t = 9; %nagy ciklus befejezése
i = 0;
vége
vége
6. lépés: Futtassa
Miután az összes kódot megírta, egyesítse mindezt egy fájlba, és íme! A Roomba botja most teljesen működőképes lesz, és a hirdetések szerint fog működni! A Bluetooth -vezérlőnek azonban külön fájlban kell lennie, vagy %% -val kell elválasztania a kód többi részétől.
Élvezze a robot használatát !!
Ajánlott:
A Roomba átalakítása Mars Roverré: 5 lépés
A Roomba átalakítása Mars Roverré:
Mars Rover a Raspberry Pi használatával: 5 lépés
Mars Rover a Raspberry Pi használatával: Kedves Nagy Tanuló! Mindig kíváncsi vagyok a Mars roverre, amelynek 6 kereke van, amelyek képesek a Mars minden felszínére eljutni és felfedezni a Földről származó dolgokat. Azt is szeretném felfedezni, hogy a laptopomon ülök. Úgyhogy most úgy érzem, itt az ideje, hogy elkészítsem és
Raspberry Pi - Autonóm Mars Rover OpenCV objektumkövetéssel: 7 lépés (képekkel)
Raspberry Pi - Autonóm Mars Rover OpenCV objektumkövetéssel: Raspberry Pi 3, Open CV objektumfelismerés, ultrahangos érzékelők és hajtóműves egyenáramú motorok. Ez a rover képes követni minden olyan tárgyat, amelyre kiképezték, és bármilyen terepen mozoghat
Mars Roomba Project UTK: 4 lépés
Mars Roomba Project UTK: NYILATKOZAT: EZ CSAK MŰKÖDIK, HA A ROOMBA NAGYON MEGHATÁROZOTT módon van beállítva, EZT AZ INSTRUKCIÓT LÉTREHOZTATTÁK ÉS SZÁNDÉKOLTÁK A TENNESSEE DIÁK UNIVERSITÁJA ÉS A FACULTY Ez a kód a beállításhoz használatos írt és s
Mars felderítő robot: 4 lépés
Mars Reconnaissance Robot: Ez az Instructable lépésről lépésre ismerteti a Mars Reconnaissance Robot programozását és irányítását. A kezdéshez meg kell szereznie a következő anyagok listáját: Töltött iRobot, amelyet a Tickle College of Eningeering Univerisity of Ten személyre szabott