Innholdsfortegnelse:

Localino sporer Roomba IRobot, kartlegger miljøet og tillater kontroll .: 4 trinn
Localino sporer Roomba IRobot, kartlegger miljøet og tillater kontroll .: 4 trinn

Video: Localino sporer Roomba IRobot, kartlegger miljøet og tillater kontroll .: 4 trinn

Video: Localino sporer Roomba IRobot, kartlegger miljøet og tillater kontroll .: 4 trinn
Video: Отзыв и обзор iRobot Roomba 780. Робот-пылесос от iRobot. 2024, Juli
Anonim
Image
Image

For å bygge WiFi-UART-broen kan du sjekke ut denne github-repoen:

Den har et fint grunnlag til å begynne med. Sørg for å lese retningslinjene godt, for Roomba VCC under lading øker opp til 20 volt! Hvis du legger til en ESP8266 uten en skikkelig buck-converter som fungerer selv opp til 20V og ned-konverterer til 3.3V, vil du skade ESP.

Sørg også for å bruke en nivåskifter (f.eks. Ved hjelp av en spenningsdeler) for å flytte 5V UART -logikknivåene fra Roomba til 3,3V, som brukes av ESP.

En annen viktig detalj er at bukkomformeren skal ha 300mA, men enda mye mindre eller mye mer (avhengig av selve bukkomformeren). Det er noen der ute som kan gjøre mye mer strøm, men får Roomba til å krasje fordi de trekker for mye strøm under oppstart. Vi fant ut at Pololu 3.3V, 300mA Step-Down Voltage Regulator (D24V3F3) fungerer helt perfekt. De alternative versjonene som har 500mA / 600mA forårsaket at Roomba UART -grensesnittet krasjet. I utgangspunktet reagerte Roomba ved knappetrykk, men ikke på kommandoer via UART -grensesnittet. Når dette skjedde, måtte vi fjerne Roomba-batteriet og starte kaldt på nytt med WiFi-UART-broen. Imidlertid fungerte bare D24V3F3 bra.

Bortsett fra den tekniske detaljen, må du legge til flere kommandoer i koden, som du finner i Roomba -spesifikasjonene for åpent grensesnitt. Du må legge til alle kommandoene du vil at din roomba skal reagere på (for eksempel bakover, fremover, hastighet, etc.).

eksempler i arduino IDE:

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}; Serial.print (c); }

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

Hvis du skriver i lua ser det litt annerledes ut, et eksempel på en VENSTRE sving vil se slik ut:

hvis (_GET.pin == "LEFT"), så skriv ut ('\ 137'); --VOR

tmr.forsinkelse (100);

print ('\ 00'); -Hastighet = 200 = 0x00C8 -> 0 og 200

tmr.forsinkelse (100);

print ('\ 200'); -- Hastighet

tmr.forsinkelse (100);

print ('\ 254'); - Radius = 500 = 0x01F4 = 0x01 0xF4 = 1244

tmr.forsinkelse (100);

print ('\ 12'); - Snu

slutt

Sørg for at du må korrigere beskrivelsen av det åpne grensesnittet for Roomba. Det er minst to åpne grensesnittspesifikasjoner tilgjengelig.

for Roomba 5xx -serien:

for Roomba 6xx -serien:

Når du har bygget din WiFi-UART-bro og testet kommandoene, tok du et stort skritt videre. Denne videoen viser at applikasjonen og tilnærmingen fungerer. Vi var litt late, webgrensesnittet mangler alle andre kontrollkommandoer, som forover, bakover, hastighet, høyre, venstre og så videre, men du kan utstede kommandoene via http. Uansett, det er bare en demonstrasjon av at fjernkontrollen til Roomba fungerer med en enkel maskinvare og programvare som bruker en ESP8266.

Nå som du kan styre Roomba eksternt fra en PC -applikasjon, mangler det eneste innendørs lokalisering. Vi trenger dette for å lukke tilbakemeldingssløyfen, fordi målet vårt var å styre roboten til en bestemt retning. La oss gjøre dette.

Trinn 3: Sett opp ditt innendørs lokaliseringssystem

For å lukke tilbakemeldingssløyfen bruker vi et innendørs lokaliseringssystem. Vi bruker Localino til dette. Localino -systemet består av "ankere" og "tagger". Ankrene er plassert på faste steder inne i rommet og lokaliserer posisjonen til den bevegelige taggen (som er plassert på Roomba). Stedsbehandlingen utføres i en PC -applikasjon. Det er en stor fordel, fordi du også kan kontrollere Roomba fra samme PC! Det er gratis kildekode tilgjengelig fra Localino-nettstedet, den er skrevet i python, og det er også en sanntidsstrøm tilgjengelig som tilbyr XYZ-koordinatene til taggen. Datastrømmen er tilgjengelig via UDP -nettverk, men du kan også legge til MQTT eller andre flotte ting du liker. Hvis du kjenner Python, er det mange biblioteker som hjelper deg.

I denne videoen demonstreres lokaliseringen av Roomba. Derfor har vi 4 ankre installert i rommet på faste steder, som tillater 3D -posisjonering av Roomba. Generelt vil vi bare kreve 3 ankre, fordi Roomba sannsynligvis ikke vil bevege seg i Z-aksen, derfor ville 2D være tilstrekkelig. Men fordi ankrene er plassert i AC -pluggenes høyde (som er omtrent 30 cm over bakken), ville et 2D -oppsett forårsake lite posisjonsestimeringsfeil. Så vi bestemte oss for å ha 4 ankre og lokalisere i 3D.

Nå som vi har posisjonen til Roomba, er vårt neste trinn å kontrollere Roomba fra den samme applikasjonen. Tanken er å bruke bakken sannheten og estimere en perfekt rengjøringsbane for roboten. Med bruk av Localino kan vi lukke tilbakemeldingssløyfen og kontrollere roboten fra PC -applikasjonen.

Oppsettsmerknader

Plasser Localino -ankre inne i rommet i forskjellige x-, y -posisjoner og tre av dem i samme z -posisjon. Plasser ett av fire ankre i en annen høyde z per rom. Sørg for at det er god dekning fra Localino -taggen, som vil bevege seg med Roomba.

Alle ankere har en unik anker -ID, som vises på strekkoden til Localino og kan leses ut med verktøyet "localino -konfigurasjon".

Legg merke til posisjonene i X, Y, Z og anker -ID -ene. Dette er nødvendig for Localino -prosessorprogramvaren og må tilpasses i filen "localino.ini" i mappen "LocalinoProcessor"

Forankringene skal peke oppover eller nedover i Z (når XY -området er dekket), men ikke i retning av det dekkede området. Forankringene skal heller ikke dekkes av metall eller annet trådløst signalforstyrrende materiale. Hvis dette ikke er mulig, bør det også være en viss luftspalte mellom materiale og ankeret.

…mer kommer.

Trinn 4: Tilpass Python -programvaren

Følg med. mer kommer.

Anbefalt: