Sisukord:

Localino jälgib Roomba IRobot'i, kaardistab keskkonda ja võimaldab juhtimist .: 4 sammu
Localino jälgib Roomba IRobot'i, kaardistab keskkonda ja võimaldab juhtimist .: 4 sammu

Video: Localino jälgib Roomba IRobot'i, kaardistab keskkonda ja võimaldab juhtimist .: 4 sammu

Video: Localino jälgib Roomba IRobot'i, kaardistab keskkonda ja võimaldab juhtimist .: 4 sammu
Video: Лучшая прогулка по Карибскому региону Чагуана Тринидад и Тобаго с охватом основных улиц 2024, Juuli
Anonim
Image
Image

WiFi-UART-silla ehitamiseks saate vaadata seda githubi repot:

Alustuseks on sellel kena alus. Lugege kindlasti juhendit hästi, sest Roomba VCC suurendab laadimise ajal kuni 20 volti! Kui lisate ESP8266 ilma korraliku buck-muundurita, mis töötab isegi kuni 20 V ja muundab alla 3,3 V, kahjustate oma ESP-d.

Kasutage kindlasti ka nivoolülitit (nt pingejaguri abil), et nihutada 5 V UART loogikatasemed Roombalt 3,3 V -le, mida kasutab ESP.

Veel üks oluline detail on see, et buck -muunduril peaks olema 300 mA, kuid palju vähem või palju rohkem (sõltuvalt buck -muundurist endast). Seal on mõned, mis suudavad palju rohkem voolu teha, kuid põhjustavad Roomba krahhi, kuna tõmbavad käivitamisel liiga palju voolu. Saime teada, et Pololu 3.3V, 300mA astmelise pinge regulaator (D24V3F3) töötab lihtsalt ideaalselt. Alternatiivsed versioonid, mille võimsus on 500 mA / 600 mA, põhjustasid Roomba UART -liidese krahhi. Põhimõtteliselt reageeris Roomba nupuvajutusele, kuid mitte käskudele UART -liidese kaudu. Kui see juhtus, pidime eemaldama Roomba aku ja taaskäivitama Roomba koos ühendatud WiFi-UART-sillaga. Kuid ainult D24V3F3 töötas hästi.

Lisaks sellele tehnilisele detailile peate koodile lisama täiendavaid käske, mille leiate Roomba avatud liidese spetsifikatsioonidest. Peate lisama kõik käsud, millele soovite oma roomba reageerida (näiteks tagurpidi, edasi, kiirus jne).

näited arduino IDE -st:

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

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

tühine spinLeft () {char c = {137, 0x00, 0xc8, 0x00, 0x01}; Seeriatrükk (c); }

tühine spinRight () {char c = {137, 0x00, 0xc8, 0xff, 0xff}; Seeriatrükk (c); }

kui kirjutate lua keeles, näeb see natuke teistsugune välja, näide VASAKU pöörde kohta näeks välja selline:

kui (_GET.pin == "LEFT"), siis prindi ('\ 137'); -VOR

tmr.viivitus (100);

print ('\ 00'); -Kiirus = 200 = 0x00C8 -> 0 ja 200

tmr.viivitus (100);

print ('\ 200'); - Kiirus

tmr.viivitus (100);

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

tmr.viivitus (100);

print ('\ 12'); - Pööra

lõpp

Veenduge, et peaksite oma Roomba avatud liidese kirjeldust parandama. Saadaval on vähemalt kaks avatud liidese spetsifikatsiooni.

Roomba 5xx seeria jaoks:

Roomba 6xx seeria jaoks:

Kui olete oma WiFi-UART-silla üles ehitanud ja käsklusi testinud, astusite suure sammu edasi. See video näitab rakenduse ja lähenemisviisi toimimist. Olime natuke laisad, veebiliidesel puuduvad kõik muud juhtimiskäsud, nagu edasi, tagasi, kiirus, parem, vasak ja nii edasi, kuid saate käske väljastada http kaudu. Igatahes on see lihtsalt demonstratsioon, et Roomba kaugjuhtimispult töötab koos lihtsa riist- ja tarkvaraga, kasutades ESP8266.

Nüüd, kui saate oma Roombat juhtida eemalt arvutirakendusest, jääb puudu vaid siseruumide lokaliseerimine. Me vajame seda tagasisideahela sulgemiseks, sest meie eesmärk oli robot teatud suunas suunata. Teeme ära.

3. samm: siseruumides paikneva lokaliseerimissüsteemi seadistamine

Tagasisideahela sulgemiseks kasutame siseruumides paiknevat lokaliseerimissüsteemi. Selleks kasutame Localino. Localino süsteem koosneb "ankrutest" ja "siltidest". Ankrud on paigutatud ruumis kindlatesse kohtadesse ja leiavad liikuva sildi (mis on paigutatud Roombale). Asukoha töötlemine toimub arvutirakenduses. Sellest on suur eelis, sest saate Roomba juhtida ka samast arvutist! Localino veebisaidilt on saadaval tasuta lähtekood, see on kirjutatud pythonis ja saadaval on ka reaalajas voog, mis pakub märgendi XYZ-koordinaate. Andmevoog on saadaval UDP -võrgu kaudu, kuid saate lisada ka MQTT -d või muid meelepäraseid asju. Kui teate Pythoni, on teid hunnikutega raamatukogudest, mis teid aitavad.

Selles videos demonstreeritakse Roomba lokaliseerimist. Seetõttu on meil ruumis fikseeritud kohtades 4 ankrut, mis võimaldavad Roomba 3D -positsioneerimist. Üldiselt vajaksime ainult 3 ankrut, sest Roomba Z-teljel tõenäoliselt ei liigu, seega piisab 2D-st. Kuid kuna ankrud asuvad vahelduvvoolu põhipistikute kõrgusel (mis on umbes 30 cm maapinnast), põhjustaks 2D seadistus vähe asukohavigade vigu. Nii otsustasime omada 4 ankrut ja lokaliseerida 3D -vormingus.

Nüüd, kui meil on Roomba positsioon, on meie järgmine samm Roomba juhtimine samast rakendusest. Idee on kasutada põhitõde ja hinnata roboti jaoks täiuslikku puhastusteed. Localino abil saame tagasisideahela sulgeda ja robotit arvutirakendusest juhtida.

Seadistusmärkused

Asetage Localino ankrud ruumi sisse erinevatesse x, y asenditesse ja kolm neist samasse z -asendisse. Asetage üks neljast ankrust ruumi erineval kõrgusel z. Veenduge, et Roominoga liigutav Localino silt hõlmaks hästi.

Kõigil ankrutel on unikaalne ankru ID, mis kuvatakse Localino vöötkoodil ja mida saab lugeda tööriista „localino configuration” abil.

Pange tähele positsioone X, Y, Z ja ankru ID -sid. See on vajalik Localino protsessoritarkvara jaoks ja seda tuleb kohandada kaustas „LocalinoProcessor” olevas failis „localino.ini”.

Ankrud peaksid olema suunatud Z suunas üles või alla (kui XY ala on kaetud), kuid mitte kaetud ala suunas. Samuti ei tohiks ankrud olla kaetud metalli ega muu traadita signaali häiriva materjaliga. Kui see pole võimalik, peaks mis tahes materjali ja ankru vahel olema ka teatav õhupilu.

… Veel tulemas.

Samm: kohandage Pythoni tarkvara

püsige lainel. veel tulemas.

Soovitan: