Tartalomjegyzék:

A Localino nyomon követi a Roomba IRobot programot, feltérképezi a környezetet és lehetővé teszi az irányítást: 4 lépés
A Localino nyomon követi a Roomba IRobot programot, feltérképezi a környezetet és lehetővé teszi az irányítást: 4 lépés

Videó: A Localino nyomon követi a Roomba IRobot programot, feltérképezi a környezetet és lehetővé teszi az irányítást: 4 lépés

Videó: A Localino nyomon követi a Roomba IRobot programot, feltérképezi a környezetet és lehetővé teszi az irányítást: 4 lépés
Videó: Дэниел Шмахтенбергер: Уничтожат ли нас технологии? 2024, November
Anonim
Image
Image

A WiFi-UART híd megépítéséhez nézze meg ezt a github repót:

Kezdetnek szép alapja van. Ügyeljen arra, hogy jól olvassa el az útmutatót, mert a Roomba VCC töltés közben akár 20 voltra is megnő! Ha hozzáad egy ESP8266-ot megfelelő buck-konverter nélkül, amely akár 20 V-ig működik, és lefelé konvertál 3,3 V-ra, akkor károsítja az ESP-t.

Győződjön meg arról is, hogy szintváltót használ (pl. Feszültségosztó segítségével) az 5 V UART logikai szintek Roomba -ról 3,3 V -ra történő áthelyezéséhez, amelyeket az ESP használ.

Egy másik fontos részlet az, hogy a bak konverternek 300 mA -esnek kell lennie, de jóval kevesebbnek vagy sokkal többnek kell lennie (magától a bak -konvertertől függően). Vannak olyanok, amelyek sokkal nagyobb áramot tudnak termelni, de a Roomba összeomlik, mert túl nagy áramot húznak az indítás során. Megállapítottuk, hogy a Pololu 3.3V, 300mA lekapcsolható feszültségszabályozó (D24V3F3) tökéletesen működik. Az 500mA / 600mA alternatív változatok miatt a Roomba UART interfész összeomlott. A Roomba alapvetően a gombnyomásra reagált, de nem az UART interfészen keresztül adott parancsokra. Amint ez megtörtént, ki kellett venni a Roomba akkumulátort, és hidegen újra kellett indítani a Roomba-t a csatlakoztatott WiFi-UART híddal. Azonban csak a D24V3F3 működött jól.

Ezen a technikai részleten kívül további parancsokat kell hozzáadnia a kódhoz, amelyeket a Roomba nyílt interfész specifikációiban talál. Hozzá kell adnia minden olyan parancsot, amelyre a roomba -nak reagálnia kell (például hátra, előre, sebesség stb.).

példák az arduino IDE -n belül:

void goForward () {char c = {137, 0x00, 0xc8, 0x80, 0x00}; // 0x00c8 == 200 Serial.print (c); }

void goBackward () {char c = {137, 0xff, 0x38, 0x80, 0x00}; // 0xff38 == -200 Serial.print (c); }

void spinLeft () {char c = {137, 0x00, 0xc8, 0x00, 0x01}; Sorozatnyomat (c); }

void spinRight () {char c = {137, 0x00, 0xc8, 0xff, 0xff}; Sorozatnyomat (c); }

ha lua nyelven ír, akkor kicsit másképp néz ki, egy példa a BALRA forduláshoz így nézne ki:

ha (_GET.pin == "LEFT"), akkor print ('\ 137'); --VOR

tmr.késleltetés (100);

print ('\ 00'); -Sebesség = 200 = 0x00C8 -> 0 és 200

tmr.késleltetés (100);

print ('\ 200'); - Sebesség

tmr.késleltetés (100);

print ('\ 254'); - Sugár = 500 = 0x01F4 = 0x01 0xF4 = 1 244

tmr.késleltetés (100);

print ('\ 12'); - Fordulj

vége

Győződjön meg arról, hogy helyes a Roomba nyitott kezelőfelületének leírása. Legalább két nyílt interfész specifikáció áll rendelkezésre.

a Roomba 5xx sorozathoz:

a Roomba 6xx sorozathoz:

Miután felépítette a WiFi-UART hidat és tesztelte a parancsokat, nagy lépést tett előre. Ez a videó bemutatja, hogy az alkalmazás és a megközelítés működik. Kicsit lusták voltunk, a webes felületről hiányzik az összes többi vezérlési parancs, például előre, hátra, sebesség, jobb, bal és így tovább, de a parancsokat a http -en keresztül adhatja ki. Mindenesetre ez csak egy demonstráció, hogy a Roomba távirányítója egy egyszerű hardverrel és szoftverrel működik együtt az ESP8266 segítségével.

Most, hogy távolról vezérelheti Roomba -ját egy PC -alkalmazásból, már csak a beltéri lokalizáció hiányzik. Erre azért van szükségünk, hogy lezárjuk a visszacsatolási ciklust, mert az volt a célunk, hogy egy bizonyos irányba tereljük a robotot. Csináljuk.

3. lépés: A beltéri lokalizációs rendszer beállítása

A visszacsatolási ciklus lezárásához beltéri lokalizációs rendszert használunk. Ehhez a Localino -t használjuk. A Localino rendszer "horgonyokból" és "címkékből" áll. A horgonyok a helyiségben rögzített helyeken vannak elhelyezve, és meghatározzák a mozgó címke helyzetét (amely a Roomba -ra van helyezve). A helyfeldolgozás PC -alkalmazásban történik. Ez nagy előny, mert a Roomba -t ugyanarról a számítógépről is vezérelheti! Ingyenes forráskód érhető el a Localino webhelyről, pythonban van írva, és elérhető egy valós idejű adatfolyam is, amely a címke XYZ-koordinátáit kínálja. Az adatfolyam UDP hálózaton keresztül érhető el, de hozzáadhat MQTT -t vagy bármilyen más tetszetős dolgot. Ha ismeri a Python -ot, rengeteg könyvtár segít Önnek.

Ebben a videóban a Roomba lokalizációja látható. Ezért 4 horgony van a helyiségben rögzített helyeken, amelyek lehetővé teszik a Roomba 3D elhelyezését. Általában csak 3 horgonyra lenne szükségünk, mert a Roomba valószínűleg nem fog mozogni a Z-tengelyen, ezért a 2D elegendő. Mivel azonban a horgonyok a váltakozó áramú hálózati csatlakozódugók magasságában vannak (ami kb. 30 cm a talaj felett), a 2D -s beállítás kevés helyzetbecslési hibát okozna. Ezért úgy döntöttünk, hogy 4 horgonyunk van, és 3D -ben lokalizáljuk.

Most, hogy megvan a Roomba pozíciója, a következő lépés a Roomba vezérlése ugyanabból az alkalmazásból. Az ötlet az, hogy a földi igazságot felhasználva megbecsüljük a robot tökéletes tisztítási útvonalát. A Localino használatával bezárhatjuk a visszacsatolási ciklust és vezérelhetjük a robotot a PC alkalmazásból.

Beállítási megjegyzések

Helyezze a Localino horgonyokat a helyiségbe különböző x, y pozíciókba, és hármat ugyanabba a z pozícióba. A négy horgony közül egyet helyezzen el szobánként eltérő z magasságban. Győződjön meg arról, hogy a Roomba -val együtt mozgó Localino címke jól lefedi.

Minden horgonynak van egy egyedi horgonyazonosítója, amely megjelenik a Localino vonalkódján, és kiolvasható a „localino configuration” eszközzel.

Jegyezze fel az X, Y, Z pozíciókat és a horgonyazonosítókat. Ez szükséges a Localino processzor szoftverhez, és ezt a „localino.ini” fájlban kell módosítani a „LocalinoProcessor” mappában

A horgonyoknak felfelé vagy lefelé kell mutatniuk Z -ben (XY terület lefedése esetén), de nem a fedett terület irányába. A horgonyokat nem szabad fém vagy más vezeték nélküli jeleket zavaró anyaggal lefedni. Ha ez nem lehetséges, akkor bizonyos légrésnek kell lennie bármely anyag és a horgony között.

… Még jön.

4. lépés: A Python szoftver adaptálása

maradjon velünk. még jönni fog.

Ajánlott: