Tartalomjegyzék:

Roomba MATLAB -tal: 4 lépés (képekkel)
Roomba MATLAB -tal: 4 lépés (képekkel)

Videó: Roomba MATLAB -tal: 4 lépés (képekkel)

Videó: Roomba MATLAB -tal: 4 lépés (képekkel)
Videó: Сможет ли iRobot Roomba i7+ убрать 1 КГ риса БЕЗ замены пылесборника? 2024, November
Anonim
Roomba MATLAB -tal
Roomba MATLAB -tal

Ez a projekt a MATLAB -ot és egy iRobot Create2 programozható robotot használja. A MATLAB ismereteit próbára téve képesek vagyunk a Create2 programozására a képek értelmezésére és a jelek észlelésére. A robot funkcionalitása elsősorban a MATLAB mobilalkalmazástól és egy Raspberry Pi kameramodultól függ.

1. lépés: Alkatrészek és anyagok

Alkatrészek és anyagok
Alkatrészek és anyagok
Alkatrészek és anyagok
Alkatrészek és anyagok
Alkatrészek és anyagok
Alkatrészek és anyagok
Alkatrészek és anyagok
Alkatrészek és anyagok

1. iRobot Create, 2. verzió

- Ez egy programozható robot, amely úgy néz ki, mint egy Roomba. Ne feledje, hogy ez az iRobot termék nem vákuum. A felhasználó egyéni programozására szolgál.

2. MATLAB 2017a

- A legtöbb régebbi verzió kompatibilis lesz az alább használt kóddal. A MATLAB azonosít egy olyan parancsot, amely nem kompatibilis az Ön verziójával, és javaslatot tesz a legjobban illeszkedő parancsra.

3. Raspberry Pi 3 B modell, 1.2 verzió

- Ellenőrizze, hogy melyik Raspberry Pi kompatibilis az Ön iRobotjával. További segítségért lásd ezt a linket: https://www.irobotweb.com/~/media/MainSite/PDFs/A… Ez az utasítás feltételezi, hogy előre programozott Raspberry Pi -vel dolgozik. Kérjük, vegye figyelembe, hogy az alábbi lépések működéséhez előre programozott Pi -vel kell dolgoznia. Az előre programozott Pi használatával minden kódolást egyedül a MATLAB -ban hajthat végre.

4. Kamera modul V2 (Raspberry Pi esetén)

- Meglepődhet; mérete ellenére a Raspberry Pi kamera modul nagyon jó minőségű. Ez a legolcsóbb és leginkább kompatibilis opció ehhez a projekthez.

Opcionális: 3D nyomtatott állvány. Ez a kamera stabilizálására szolgál. Ez nem befolyásolja a robot működését, de segít a kódolásban, ha képalkotó adatokat szeretne használni a szín- és/vagy objektumfelismeréshez.

2. lépés: Konfiguráció

Konfiguráció
Konfiguráció
Konfiguráció
Konfiguráció

1. A Raspberry Pi és a kameramodul csatlakoztatása (hardver)

- A Raspberry Pi tápellátásához egy mikro végű USB -csatlakozót kell futtatnia a mikrovezérlő női tápcsatlakozójához. Opcionális: Feszültségszabályozó használható annak biztosítására, hogy a feszültség ne haladja meg az 5 V -ot. A Raspberry Pi bekapcsolása után csatlakoztathatja azt a robotjához úgy, hogy az alaplapból a férfi USB -végét futtatja az alaplapról a mikrokontroller A -portjára.

- A Pi és a Roomba csatlakoztatása után a kamera készen áll a telepítésre. A kamera modul sokkal kisebb lesz, mint amire számít. Ne feledje, hogy az objektív érzékelőre van szerelve, és fehér szalag húzódik ki a fényképezőgépből. NE távolítsa el vagy szakítsa meg a szalagot! Ez a kábel szükséges a Raspberry Pi csatlakoztatásához. Először fogja meg a szalag végét, és keresse meg az ezüst csatlakozókat és a kék kábelt. Ezek ellentétes oldalon vannak. Ezután keresse meg a Raspberry Pi ethernet és HDMI portjai közötti rést. Vegye figyelembe, hogy egy kis, fehér zár borítja. Lassan emelje fel a zárat, de ne vegye ki a nyílásból, mert bepattan és véglegesen megsérül. Miután felemelte a zárat, fogja meg a szalagot, és fordítsa az ezüst csatlakozókat a HDMI -porthoz. A kék oldal az Ethernet port felé néz. Lassan csúsztassa a szalagot a nyílásba, amíg az még nincs feloldva. Nem kell erőltetni a nyílásba. Behelyezés után nyomja vissza a zárat. Ha a fényképezőgép megfelelően rögzítve van, képesnek kell lennie arra, hogy (óvatosan) meghúzza a szalagot, és érezze a feszültséget. A szalag nem lehet laza. Miután csatlakoztatta a kamerát a Pi -hez, észreveheti, hogy mennyire laza. Ezért használtuk a 3D nyomtatott rögzítést a rögzítéshez. Az Ön döntése, hogy milyen anyagokat szeretne használni, hogy a fényképezőgép mozdulatlan maradjon a kiváló minőségű képalkotáshoz.

2. Megfelelő fájlok telepítése és a Roomba csatlakoztatása a számítógéphez Miután az összes hardver konfigurálva lett, továbbléphet a MATLAB telepítéséhez a kapcsolódó m-fájlokkal együtt, amelyek lehetővé teszik a kommunikációt a robottal. Ehhez nyissa meg a MATLAB alkalmazást, és hozzon létre egy új mappát az összes kapcsolódó fájl együtt tartásához. Használja ezt a szkriptet a szükséges fájlok telepítéséhez/frissítéséhez:

- Az összes fájlnak meg kell jelennie a létrehozott mappában. Kattintson a jobb gombbal az Aktuális mappa ablakban, és válassza a „Hozzáadás az útvonalhoz” lehetőséget, hogy hozzáadja az elérési utat azon könyvtárak listájához, ahol a MATLAB fájlokat keres. Győződjön meg arról, hogy az összes fájl a megfelelő elérési úton van.

3. A fájlok telepítése után elkezdheti a robothoz való csatlakozást. Kezdje azzal, hogy bekapcsolja a robotot, majd alaphelyzetbe állítja azt közvetlenül az indítás után (ne felejtse el alaposan visszaállítani a robotot minden használat előtt és után). Másodszor, csatlakoztassa a robotot és a laptopot ugyanahhoz a wifi hálózathoz. Ezt követően beszélünk az előre programozott Raspberry Pi -vel a MATLAB -on keresztül, a Roomba hívásával és a roomba funkcióval. Például a 28 -as robothoz a következő sor használatával csatlakoznék: R = roomba (28).

- Figyelje meg, hogyan rendeltem hozzá az objektumot egy R változóhoz. Most már hozzá tudok férni a kapcsolódó Roomba funkciókhoz a telepítőfájlból úgy, hogy az R változót struktúrának tekintem.

- R.turnAngle (90) Ha minden jól ment, zenei hangnak kell megszólalnia, megerősítve a kapcsolatot.

3. lépés: MATLAB logika

A lépés alján található PDF dokumentum a MATLAB kódolási folyamatának részletes logikai folyamatábrája. Aktiváltuk a szikla-, fény- és fényütés -érzékelőket, hogy a robot kommunikálhasson velünk, amikor észlel egy tárgyat a közvetlen közelében. Például, amikor a robot előrehalad, a fényérzékelői keresik az útjában lévő tárgyakat a vektor szerint, amelyen halad. Kiválasztottuk a robot számára a távolság küszöbértékét, hogy amikor közeledik egy tárgyhoz, akkor megfordul, ahelyett, hogy ütközne vele. Robotunk a Twitteren is konfigurálva van, amelyet a kódolási folyamatunkban adtunk meg (ez alább látható).

Az élmény fokozása érdekében a MATLAB alkalmazást használtuk mobil eszközeinken, hogy csak a telefonunk döntésével tudjuk irányítani a robot mozgását. Ez egy opcionális tevékenység, mivel biztosan mozgathatja a robotot, ha helyette a MATLAB kódszegmensben lévő moveDistance parancsot használja. Ne feledje, hogy a MATLAB parancsok használata a robot irányításához előnyös, ha célja pontos. Ha azt szeretné, hogy a robotot úgy célozza meg, hogy a kamera egy adott helyen készítsen képet, akkor jobb lehet a robot mozgását kódolni a MATLAB -ban. Bár szórakoztató, a MATLAB alkalmazás használata a robot vezérlésére nem kívánatos a pontosság érdekében.

A Kód megparancsolja a Roomba -nak, hogy végezzen el egy alapbeállítást, majd folytassa a folyamatos cikluson keresztül. Kezdetben a laptop a Roomba () paranccsal kapcsolatot létesít a Roomba -val. Ezenkívül létrehozza a twitter kapcsolatot a MATLAB webwrite () parancsával. A ciklus öt fő logikai folyamatot tartalmaz a Roomba környezetétől függően. Először a Roomba ellenőrzi az akadályokat, és ha akadályba ütközik, visszafelé igazít. A hurokba ágyazva a második útvonal figyelmezteti a felhasználókat a Roomba elhurcolására. Fontos segédprogram a zord Marsi Warzone -ban. Miután a Roomba megállapította, hogy helyzete biztonságos, a mobileszközre néz, hogy meghatározza a következő mozgását. Ha a mobileszköz előre van döntve, akkor a gördülési mérés súlyosságától függően kiszámítja az alapsebességet, majd beállítja az egyes keréksebességeket a dőlésszög alapján. A telefon fordítva is mozgathatja a Roomba -t. A semleges mobilkészülék állapota zárja az utolsó két utat. A pihenő Roomba keres egy idegen zászlót, és ennek megfelelően figyelmezteti a felhasználót.

Az alábbiakban a kódunk található (MATLAB 2017a)

%bemenet: Tájékozódási adatok egy wifi csatlakoztatott eszközről, kameráról

%információ, érzékelő adatok

%kimenet: a mozgást a wifi -hez csatlakoztatott eszköz és a mozgás vezérli

% biztonságosan ellenőrizve van az érzékelő adatainak olvasásával. Ha a kamera észleli

% idegen lobogó, akkor a roomba az ellenség zászlójának tweetelésével válaszol

% kiszúrva.

%cél: eszközünk nem él semmi céllal, kivéve azok védelmét, akik

% hozta létre, szolgálja az alkotóját és teszi

% pontosan azt mondta.

Használat: lényegében a program magától fog futni.

mindent töröl, mindent bezár, clc

%Objektumok és változók inicializálása

r = roomba (28);

m = mobildev;

%use response = webwrite (gazdagépnév, adatok)

hostname = 'https://api.thingspeak.com/apps/thingtweet/1/statuses/update';

API = 'SGZCTNQXCWAHRCT5';

tweet = 'A RoboCop működőképes … Várakozás a parancsra';

data = strcat ('api_key =', API, '& status =', tweet);

reponse = webwrite (gazdagépnév, adatok);

%folyamatosan futó hurok

míg 1 == 1

Relavent adatokat tartalmazó struktúrák %-a

o = m.orientáció; A mobileszköz %-os tájolása

fény = r.getLightBumpers (); %Könnyű lökhárító értékek

a = r.getCliffSensors (); %CLiff érzékelő értékek

bump = r.getBumpers (); %Lökhárító érzékelők

%ellenőrző ütközők

ha bump.right == 1 || bump.left == 1 || bump.front == 1

r.moveDistance (-. 2,.2);

%ellenőrző lámpa Érzékelők

elseif light.bal> 60 || light.leftFront> 60 || light.leftCenter> 60 || könnyű.jobb> 60 || light.rightFront> 60 || fény.jobbközpont> 60

r.moveDistance (-. 2,.2);

%ellenőrzés Cliff érzékelők

Lopásgátló jelzés és értesítés

elseif a.left <300 && a.right <300 && a.leftFront <300 && a.rightFront <300

r.stop ();

r.beep ();

tweet = 'A RoboCop -ot feloldották!'

data = strcat ('api_key =', API, '& status =', tweet);

reponse = webwrite (gazdagépnév, adatok);

%Normál sziklakerülő művelet

elseif a.bal <300 || a. jobb <300 || a.leftFront <300 || a.jobb elöl <300

r.moveDistance (-. 2,.2);

%Roomba megfelelt az ellenőrzéseken, és most normál működéssel fog futni.

%Kezdetben a készülék tekercsét mérik, és bázissá válik

%sebesség, amelyet a kerék fordulatszámának kiszámítására használnak

%Előre mozgás

elseif o (3)> = 0 && o (3) <= 60

baseVel = (-. 5/60)*(o (3) -60);

ha o (2)> =-70 && o (2) <0

r.setDriveVelocity (baseVel+(. 3/50)*abs (o (2)), baseVel-(. 3/50)*abs (o (2)));

elseif o (2) = 0

r.setDriveVelocity (baseVel-(. 3/50)*abs (o (2)), baseVel+(. 3/50)*abs (o (2)));

egyébként r.stop

vége

%Visszafelé irányuló mozgás

elseif o (3)> 100 && o (3) <150

r.setDriveVelocity (-. 2, -.2)

r.beep ();

r.beep ();

%resting roomba megkeresi a fluoreszkálóként megjelölt Idegen zászlót

%zöld Papírdarab

más

r.megáll

img = r.getImage (); %készítsen képet

küszöb = szürke (img (200: 383,:, 2))+. 1; %kalkulált zöld szint

ha küszöb>.42

tweet = 'Ellenség foltos !!'

data = strcat ('api_key =', API, '& status =', tweet);

reponse = webwrite (gazdagépnév, adatok);

más

r.megáll

vége

vége

vége

4. lépés: Következtetés

Ne feledje, használhatja a fentebb írt szkriptet, de bármikor módosíthatja azt az igényeinek megfelelően. Nem kell, hogy a telefonod vezérelje! (Ez azonban szórakoztatóbbá teszi.) Válassza ki, hogy melyik módszert használja a robot irányításához. Vezess körbe a robottal és élvezd!

Ajánlott: