Tartalomjegyzék:
- 1. lépés: Szükséges alkatrészek
- 2. lépés: Fájlok és kamera konfigurálása
- 3. lépés: Kezdeti Roomba tesztelés
- 4. lépés: Példa MATLAB kódra
Videó: Űrhajóssegítő Roomba: 4 lépés
2024 Szerző: John Day | [email protected]. Utoljára módosítva: 2024-01-30 09:42
Ez a projekt a Raspberry Pi 3 használatával készült az iRobot Create 2. verziójában. A MATLAB segítségével a robotot az érzékelők és a kamera segítségével programozhatja, hogy kövesse az utasításokat. Az érzékelőket és a kamerákat speciális feladatok elvégzésére használják, amelyek egy űrhajóst követnek, és lehetővé teszik számára, hogy kommunikáljon otthoni bázisával, ha valami baj történik.
1. lépés: Szükséges alkatrészek
1. iRobot Create 2. verzió
Az iRobot Create a projekt leglényegesebb része, mivel programozható, és remek ábrázolása lehet egy tényleges rovernek, aki követi az űrhajósokat és segíti őket a jövőben
2. Málna Pi 3
A Raspberry Pi volt a programozható program ebben a projektben. A kódot a Pi -re tervezték, és a csatolt Pi verzió a 3 (B modell). Más programozható táblák, például az arduino is használhatók, azonban az arduino és a legtöbb más kártya más kódolást igényel, mint egy másik lépésben leírtak
3. Málna Pi kamera modul
Az egyetlen külső kapcsolat a Raspberry Pi -hez, amely ehhez a projekthez szükséges, a kamera modul. A kamera modul a projekt szerves része, mivel a roomba csak a kamerában látottak alapján hajt végre feladatokat
4. MATLAB 2018a
A beállításhoz használt kódoláshoz a MATLAB második legutóbbi verzióját, a 2018a -t használták. Valószínű, hogy a MATLAB számos más verziója is működni fog ezzel, mivel a roomba programozás már egy ideje létezik
2. lépés: Fájlok és kamera konfigurálása
1. Raspberry Pi és Camera csatlakozók a roomba -hoz
- A Pi közvetlenül csatlakoztatható az iRobothoz mikro USB -n keresztül. Ennyi kell ahhoz, hogy használatra kész legyen. Javasoljuk azonban, hogy az eddigi bemutató során biztonságosan helyezze el a roomba, például a képeken.
- A fényképezőgép közvetlenül kapcsolódik a Raspberry Pi -hez, és erősen ajánlott, hogy vásároljon vagy készítsen valamit annak érdekében, hogy a fényképezőgépet közvetlenül felfelé tartsa. Nincs értelme a kamerának, ha nem lehet a helyén tartani, hogy megmutassa, mit lát a Roomba.
2. Fájlok
- Miután mindent beállított és csatlakoztatott, győződjön meg arról, hogy a robot alaphelyzetbe áll és készen áll a használatra, tartsa lenyomva a "Spot" és a "Dock" gombokat 10 másodpercig.
- Itt van először szükség a MATLAB -ra. Először a roomba fájljait kell telepíteni, és a fájlok futtatásához csak az ezen a linken található kódra van szükség:
- https://ef.engr.utk.edu/ef230-2017-08//projects/ro…
3. lépés: Kezdeti Roomba tesztelés
Sok előzetes ellenőrzést kell elvégezni a roomban, hogy megbizonyosodjon arról, hogy működik -e.
1. Győződjön meg arról, hogy ugyanahhoz a WiFi hálózathoz csatlakozik, mint a roomba. E nélkül soha nem fog csatlakozni a MATLAB -on keresztül.
2. Tudja meg, hogy a roomba milyen számhoz van rendelve, így kifejezetten csatlakozhat a kiválasztott roomba -hoz. Például, ha a roomba száma 30, akkor csatlakozzon hozzá úgy, hogy beírja a roomba (30) parancsot a MATLAB parancsablakába.
3. A roomba a MATLAB struktúráin keresztül vezérelhető. Például, ha a roomba (30) kódját az „r” változóra állítja, akkor a robot az r.moveDistance paranccsal (0,2, 0,1) mozgatható előre.
4. Sok különböző parancsot lehet közölni a roomba -val, és ezek megtekinthetők a 'doc roomba' begépelésével a parancsablakba.
5. A fény-, ütés- és sziklaolvasási érzékelők mind a „doc roomba” parancsaival olvashatók le, de az „r.testSensors” segítségével látható az állandó, tiszta menü az érzékelőadatok megtekintéséhez '.
6. Mindezek tesztelése után a robot képgyűjtő szoftvere használható a készített képek olvasására és megtekintésére. Ennek alapkódja az img = r.getImage és imshow (img);.
7. A kép RGB értékei megtalálhatók a red_mean = átlag kódokkal (átlag (img (:,:, 1)));
zöld_érték = átlag (átlag (img (:,:, 2))); és blue_mean = átlag (átlag (img (:,:, 3)));.
4. lépés: Példa MATLAB kódra
Ezen a ponton készen áll arra, hogy az érzékelőket és a képfelvételi szoftvert felhasználva saját pörgetést hozzon létre egy emberi segítő Mars Rover prototípuson. Példánk az, hogy kövessük az űrhajóst úgy, hogy nyomon követjük a fehér színt, és felé haladunk. A robot sípolni fog, ha az érzékelői magas értékeket olvasnak, hogy az űrhajós vissza tudja állítani a robotot, ha elakadt, vagy menjen, vegye fel és állítsa vissza, ha egy sziklán ragadt. Ezeket a hibákat azonban csak addig olvassa, amíg fehéret lát. Anélkül, hogy látná a fehér színt, a robot hibaüzemmódba lép. Úgy van programozva, hogy két különböző típusú e -mailt küld vissza a kezdőállomásra, attól függően, hogy mit lát. Ha látja az űrhajós bőrszínét, az nyilvánvalóan nem jó, ezért figyelmezteti az otthoni bázist, ha az űrhajós bőröndje öltönyhibával rendelkezik. A másik üzenet akkor készül el, ha az űrhajós egyszerűen eltűnik a szeme elől. Ha a kamerákon nem jelenik meg fehér vagy bőrszín, a robot megpördül, és küld egy másik, de más e -mailt. Azokat a képeket, amelyeken a Roomba nem látja az űrhajósokat, az e -mailekben található üzenettel együtt küldjük el. Projektünk kódja az alábbiakban látható:
mert i = 1:.1: 3 img = r.getImage; kép (img) red_mean = átlag (átlag (img (:,:, 1))); zöld_érték = átlag (átlag (img (:,:, 2))); blue_mean = átlag (átlag (img (:,:, 3))); ha red_mean> 110 && red_mean 110 && blue_mean 110 && green_mean0 || ütés.bal> 0 || bump.front> 0 r.beep () r.beep () r.beep () r.stop elseif cliff.left <10 || cliff.leftFront <10 || cliff.rightFront <10 || szikla.jobb700 || light.leftFront> 700 || light.leftCenter> 700 || light.rightCenter> 700 || light.rightFront> 700 || light.right> 700 r.beep () r.beep () r.beep () r.beep () r.beep () r.stop else for i = 1: 2 r.moveDistance (0.2, 0.1) r. setDriveVelocity (.3,.2) r.stop vége vég, ha green_mean <35 && blue_mean <35 %bőrszín jelenik meg (az űrhajós bőrszíne alapján kell módosítani) r.beep (); r.beep (); r.beep (); mail = '[email protected]'; %e -mailt küld annak jelzésére, hogy a ruha ki van kapcsolva psswd = 'ja'; host = 'smtp.gmail.com'; port = '465'; emailto = '[email protected]'; m_subject = 'tárgy'; m_text = 'teszt'; setpref ('Internet', 'E_mail', mail); setpref ('Internet', 'SMTP_Server', gazdagép); setpref ('Internet', 'SMTP_felhasználónév', mail); setpref ('Internet', 'SMTP_Password', psswd); kellékek = java.lang. System.getProperties; props.setProperty ('mail.smtp.user', mail); props.setProperty ('mail.smtp.host', gazdagép); props.setProperty ('mail.smtp.port', port); props.setProperty ('mail.smtp.starttls.enable', 'true'); props.setProperty ('mail.smtp.debug', 'true'); props.setProperty ('mail.smtp.auth', 'true'); props.setProperty ('mail.smtp.socketFactory.port', port); props.setProperty ('mail.smtp.socketFactory.class', 'javax.net.ssl. SSLSocketFactory'); props.setProperty ('mail.smtp.socketFactory.fallback', 'false'); sendmail (emailto, 'Help!', 'The astronauts uniform is off!', img); vége, ha red_mean 135 || green_mean 135 || blue_mean 135, ha j = 1: 2 %, ha a robot nem talál fehér színt. r.turnAngle (360) mail = '[email protected]'; psswd = 'igen'; host = 'smtp.gmail.com'; port = '465'; emailto = '[email protected]'; m_subject = 'tárgy'; m_text = 'teszt'; setpref ('Internet', 'E_mail', mail); setpref ('Internet', 'SMTP_Server', gazdagép); setpref ('Internet', 'SMTP_felhasználónév', mail); setpref ('Internet', 'SMTP_Password', psswd); kellékek = java.lang. System.getProperties; props.setProperty ('mail.smtp.user', mail); props.setProperty ('mail.smtp.host', gazdagép); props.setProperty ('mail.smtp.port', port); props.setProperty ('mail.smtp.starttls.enable', 'true'); props.setProperty ('mail.smtp.debug', 'true'); props.setProperty ('mail.smtp.auth', 'true'); props.setProperty ('mail.smtp.socketFactory.port', port); props.setProperty ('mail.smtp.socketFactory.class', 'javax.net.ssl. SSLSocketFactory'); props.setProperty ('mail.smtp.socketFactory.fallback', 'false'); sendmail (emailto, 'Segítség!', 'Az űrhajós nem található!', img); r.megáll vég vége vége
Nyilvánvalóan rendetlen itt, de a másolás után ki kell kopni. A jelszavakat és e -maileket nyilvánvalóan azoknak kell megadniuk, akik ezt a projektet végzik.
A mi példánk azonban csak egy a sok lehetőség közül, hogy összezavarjuk ezt a robotot, hogy mindenkinek megfeleljen. Sok különböző dolgot kell elvégezni, amelyeket saját magának is megfelelhet.
Ajánlott:
A Roomba átalakítása Mars Roverré: 5 lépés
A Roomba átalakítása Mars Roverré:
Roomba Bot the Bulider: 5 lépés (képekkel)
Roomba Bot the Bulider: A Bot the Builder egy roomba, amely " grabbers " az elejére rögzítve képes lesz tárgyakat mozgatni. A vele ellátott kód úgy van beállítva, hogy rögzítse az első mozdulatot egy GUI dobozzal, amelyet csak egérkattintással vezérelhet. Utána
MATLAB vezérelt Roomba: 5 lépés
MATLAB vezérelt Roomba: A projekt célja a MATLAB és egy módosított iRobot programozható robot használata. Csoportunk egyesítette kódolási készségeinket, hogy létrehozzon egy MATLAB szkriptet, amely az iRobot számos funkcióját használja, beleértve a sziklaérzékelőket, a lökhárító érzékelőt
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
Roomba parkoló Pal: 6 lépés
Roomba Parking Pal: Ez a projekt egy iRobot Create programozható roomba, MATLAB r2018a és MATLAB mobil eszközt használ. E három médium és a kódolási ismereteink felhasználásával programoztuk az iRobot Create-et a színek értelmezésére és a fedélzeti érzékelők használatára a feladatok elvégzéséhez. Ezt