Sisällysluettelo:

Localino seuraa Roomba IRobotia, kartoittaa ympäristöä ja sallii hallinnan .: 4 vaihetta
Localino seuraa Roomba IRobotia, kartoittaa ympäristöä ja sallii hallinnan .: 4 vaihetta

Video: Localino seuraa Roomba IRobotia, kartoittaa ympäristöä ja sallii hallinnan .: 4 vaihetta

Video: Localino seuraa Roomba IRobotia, kartoittaa ympäristöä ja sallii hallinnan .: 4 vaihetta
Video: DREAME L10s Ultra Робот пылесос станция мытья пола и пылесоса 5300Pa 5200 mah 2024, Marraskuu
Anonim
Image
Image

Voit rakentaa WiFi-UART-sillan tarkistamalla tämän github-repon:

Sillä on mukava perusta aloittaa. Muista lukea ohjeet hyvin, koska Roomba VCC -laite kasvaa latauksen aikana jopa 20 volttiin! Jos lisäät ESP8266: n ilman asianmukaista buck-muunninta, joka toimii jopa 20 V: iin asti ja muuntaa alas 3,3 V: ksi, vahingoitat ESP: täsi.

Varmista myös, että käytät tasonsäädintä (esim. Käyttämällä jännitteenjakajaa) siirtääksesi 5 V: n UART -logiikkatasot Roombasta 3,3 V: iin, joita ESP käyttää.

Toinen tärkeä yksityiskohta on se, että buck -muuntimen pitäisi olla 300 mA, mutta paljon vähemmän tai paljon enemmän (riippuen itse buck -muuntimesta). Jotkut voivat tehdä paljon enemmän virtaa, mutta aiheuttaa Roomban kaatumisen, koska ne imevät liikaa virtaa käynnistyksen aikana. Huomasimme, että Pololu 3.3V, 300mA Step-Down Voltage Regulator (D24V3F3) toimii aivan täydellisesti. Vaihtoehtoiset versiot, joissa on 500mA / 600mA, aiheuttivat Roomban UART -käyttöliittymän kaatumisen. Pohjimmiltaan Roomba reagoi painikkeen painallukseen, mutta ei UART -liitännän kautta annettuihin komentoihin. Kun tämä tapahtui, meidän oli poistettava Roomba-akku ja käynnistettävä Roomba uudelleen kylmäkäynnistyksellä WiFi-UART-sillan kanssa. Kuitenkin vain D24V3F3 toimi hyvin.

Tämän teknisen yksityiskohdan lisäksi sinun on lisättävä koodiin lisäkomentoja, jotka löydät Roomban avoimen käyttöliittymän määrityksistä. Sinun on lisättävä kaikki komennot, joihin haluat Roomban reagoivan (esimerkiksi taaksepäin, eteenpäin, nopeus jne.).

esimerkkejä arduino IDE: stä:

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}; Sarjanjälki (c); }

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

Jos kirjoitat lua -kielellä, se näyttää hieman erilaiselta, esimerkki VASEN -käännöksestä näyttäisi tältä:

jos (_GET.pin == "VASEN"), tulosta ('\ 137'); -VOR

tmr -viive (100);

tulosta ('\ 00'); -Nopeus = 200 = 0x00C8 -> 0 ja 200

tmr -viive (100);

tulosta ('\ 200'); - Nopeus

tmr -viive (100);

tulosta ('\ 254'); - Säde = 500 = 0x01F4 = 0x01 0xF4 = 1 244

tmr -viive (100);

tulosta ('\ 12'); -- Vuoro

loppuun

Varmista, että sinun on korjattava Roomban avoimen käyttöliittymän kuvaus. Käytettävissä on vähintään kaksi avoimen käyttöliittymän määritystä.

Roomba 5xx -sarjalle:

Roomba 6xx -sarjalle:

Kun olet rakentanut WiFi-UART-sillan ja testannut komentojasi, otit suuren askeleen eteenpäin. Tämä video osoittaa, että sovellus ja lähestymistapa toimivat. Olimme hieman laiskoja, web -käyttöliittymästä puuttuu kaikki muut ohjauskomennot, kuten eteenpäin, taaksepäin, nopeus, oikea, vasen ja niin edelleen, mutta voit antaa komennot http: n kautta. Joka tapauksessa se on vain osoitus siitä, että Roomban kauko -ohjain toimii helpon laitteiston ja ohjelmiston kanssa ESP8266: n avulla.

Nyt kun voit ohjata Roombaasi etäyhteydellä PC -sovelluksesta, puuttuu vain sisätilojen lokalisointi. Tarvitsemme tämän palautesilmukan sulkemiseksi, koska tavoitteemme oli ohjata robotti tiettyyn suuntaan. Tehdään tämä.

Vaihe 3: Asenna sisätilojen lokalisointijärjestelmä

Palautussilmukan sulkemiseksi käytämme sisätilojen lokalisointijärjestelmää. Käytämme tähän Localinoa. Localino -järjestelmä koostuu "ankkureista" ja "tunnisteista". Ankkurit on sijoitettu kiinteisiin paikkoihin huoneen sisällä ja paikantavat liikkuvan tunnisteen (joka on sijoitettu Roomban päälle). Sijainnin käsittely suoritetaan PC -sovelluksessa. Tästä on suuri etu, koska voit myös ohjata Roombaa samalta tietokoneelta! Localino-verkkosivustolta on saatavana ilmainen lähdekoodi, se on kirjoitettu pythonilla ja saatavilla on myös reaaliaikainen virta, joka tarjoaa tunnisteen XYZ-koordinaatit. Datavirta on saatavana UDP -verkon kautta, mutta voit myös lisätä MQTT: tä tai mitä tahansa muita hienoja asioita, joista pidät. Jos tiedät Pythonin, on kasoja kirjastoja, jotka auttavat sinua.

Tässä videossa esitetään Roomban lokalisointi. Siksi huoneeseen on asennettu 4 ankkuria kiinteisiin paikkoihin, jotka mahdollistavat Roomban 3D -paikannuksen. Yleensä tarvitsemme vain 3 ankkuria, koska Roomba ei todennäköisesti liiku Z-akselilla, joten 2D riittää. Mutta koska ankkurit sijaitsevat vaihtovirtatulppien korkeudella (joka on noin 30 cm maanpinnan yläpuolella), 2D -asetus aiheuttaisi vähän sijainnin arviointivirheitä. Joten päätimme hankkia 4 ankkuria ja lokalisoida 3D: n.

Nyt kun meillä on Roomban asema, seuraava askel on ohjata Roombaa samasta sovelluksesta. Ajatuksena on käyttää totuutta ja arvioida robotin täydellinen puhdistusreitti. Localinon avulla voimme sulkea palautesilmukan ja ohjata robottia PC -sovelluksesta.

Asennushuomautuksia

Aseta Localino -ankkurit huoneen sisälle eri x, y -asentoihin ja kolme niistä samaan z -asentoon. Aseta yksi neljästä ankkurista eri korkeudelle z huonetta kohti. Varmista, että Roomban kanssa liikkuva Localino -tunniste peittää hyvin.

Kaikilla ankkureilla on yksilöllinen ankkuritunnus, joka näkyy Localinon viivakoodissa ja joka voidaan lukea “localino configuration” -työkalulla.

Huomaa X: n, Y: n ja Z: n sijainnit ja ankkuritunnukset. Tämä vaaditaan Localino -prosessoriohjelmistolle, ja se on mukautettava "localino.ini" -tiedostoon kansiossa "LocalinoProcessor"

Ankkurien tulee osoittaa ylös- tai alaspäin Z: ssä (kun XY -alue on peitetty), mutta ei katetun alueen suuntaan. Ankkureita ei myöskään saa peittää metallilla tai millään muulla langatonta signaalia häiritsevällä materiaalilla. Jos tämä ei ole mahdollista, materiaalin ja ankkurin väliin tulee myös jäädä tietty rako.

…lisää tulossa.

Vaihe 4: Sovita Python -ohjelmisto

pysy kanavalla. lisää tulossa.

Suositeltava: