Tartalomjegyzék:
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
2024 Szerző: John Day | [email protected]. Utoljára módosítva: 2024-01-30 09:43
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:
A buborék ébresztőóra szórakoztatóvá teszi az ébredést (izh): 7 lépés (képekkel)
A buborék ébresztőóra szórakoztatóvá teszi az ébredést (izh): A zümmögő ébresztőóra felébredés szar. Én azok közé tartozom, akik nem szeretnek felkelni, mielőtt lemegy a nap (vagy már több órája kint van). Tehát mi lehet jobb módja annak, hogy az ébredés szórakoztatóbb legyen, mint egy buborékparti az ágyban! Egy arduino és egy
Hogyan készítsünk numerikus integrációs programot Pythonban: 10 lépés
Hogyan készítsünk numerikus integrációs programot a Pythonban: Ez egy oktatóanyag arról, hogyan lehet létrehozni és futtatni egy olyan programot, amely numerikus integrációs algoritmus segítségével értékeli a meghatározott integrálokat. A lépéseket 3 részre osztottam: a program elkészítéséhez használt algoritmus megértése, kódolása
A fagyasztó jég az altoidok dobozaiban merevebbé teszi őket a lyukak vágásához stb.: 3 lépés
A fagyos jég az Altoids dobozok belsejében merevebbé teszi őket a vágólyukakhoz stb. Ebben az utasításban egy egyszerű módot mutatunk be ezen altoid konzervdobozok fémének alátámasztására. A megközelítés
Csinosabbá teszi a csúnya fejhallgatót: 4 lépés
Csinosabbá teszi csúnya fejhallgatóját: Megkaptam ezt a fantasztikus fejhallgatót. Nos, félelmetesen hangzottak, de borzasztóan néztek ki. Ki visel narancssárgát és fehéret? Idiótának éreztem magam. Sok sötét színt hordok, és utálom a fehér műanyagot … ráadásul a márkanevet mindenhol vakolták
Több programot megnyitó kötegelt fájlok !: 5 lépés
Több programot megnyitó kötegelt fájlok !: Rendben, ez elég magától értetődő. Ez különösen akkor lehet hasznos, ha munkahelyen van, és olyan folyamaton megy keresztül, ahol például meg kell nyitnia; Microsoft Word, Microsoft PowerPoint, Microsoft Outlook, Internet Explorer, stb