Indholdsfortegnelse:

Localino Spor Roomba IRobot, kortlægger miljøet og tillader kontrol .: 4 trin
Localino Spor Roomba IRobot, kortlægger miljøet og tillader kontrol .: 4 trin

Video: Localino Spor Roomba IRobot, kortlægger miljøet og tillader kontrol .: 4 trin

Video: Localino Spor Roomba IRobot, kortlægger miljøet og tillader kontrol .: 4 trin
Video: Mario + Rabbids Kingdom Battle - Easy Allies Review 2024, Juli
Anonim
Image
Image

For at bygge WiFi-UART-broen kan du tjekke denne github-repo:

Det har et godt grundlag at starte med. Sørg for at læse vejledningen godt, for Roomba VCC under opladning stiger op til 20 volt! Hvis du tilføjer en ESP8266 uden en ordentlig buck-converter, der fungerer selv op til 20V og ned-konverterer til 3.3V, vil du beskadige din ESP.

Sørg også for at bruge en niveauskifter (f.eks. Ved hjælp af en spændingsdeler) til at flytte 5V UART logiske niveauer fra Roomba til 3,3V, som bruges af ESP.

En anden vigtig detalje er, at bukkomformeren skal have 300mA, men endnu meget mindre eller meget mere (afhængigt af selve bukkomformeren). Der er nogle derude, der kan gøre meget mere strøm, men får Roomba til at gå ned, fordi de trækker for meget strøm under opstart. Vi fandt ud af, at Pololu 3.3V, 300mA Step-Down Voltage Regulator (D24V3F3) fungerer helt perfekt. De alternative versioner, der har 500mA / 600mA, fik Roomba UART -grænsefladen til at gå ned. Grundlæggende reagerede Roomba ved tryk på knapper, men ikke på kommandoer via UART -grænsefladen. Når dette skete, måtte vi fjerne Roomba-batteriet og kold genstarte Roomba med WiFi-UART-broen vedhæftet. Imidlertid fungerede kun D24V3F3 godt.

Bortset fra den tekniske detalje skal du tilføje yderligere kommandoer til koden, som du kan finde i Roomba -specifikationerne for åbent interface. Du skal tilføje alle kommandoer, som du vil have din roomba til at reagere på (f.eks. Baglæns, fremad, hastighed osv.).

eksempler inden for 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 lidt anderledes ud, et eksempel på en VENSTRE drejning ville se sådan ud:

hvis (_GET.pin == "LEFT") derefter udskrive ('\ 137'); --VOR

tmr.forsinkelse (100);

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

tmr.forsinkelse (100);

print ('\ 200'); - Hastighed

tmr.forsinkelse (100);

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

tmr.forsinkelse (100);

print ('\ 12'); - Drej

ende

Sørg for, at du skal rette den åbne grænsefladebeskrivelse for din Roomba. Der er mindst to åbne grænsefladespecifikationer tilgængelige.

til Roomba 5xx -serien:

til Roomba 6xx -serien:

Når du har bygget din WiFi-UART-bro og testet kommandoerne, har du taget et stort skridt videre. Denne video viser, at applikationen og tilgangen fungerer. Vi var lidt dovne, webinterfacet mangler alle andre kontrolkommandoer, som fremad, bagud, hastighed, højre, venstre og så videre, men du kan udstede kommandoerne via http. Under alle omstændigheder er det bare en demonstration af, at fjernbetjeningen til Roomba fungerer med et let stykke hardware og software ved hjælp af en ESP8266.

Når du nu kan styre din Roomba eksternt fra en pc -applikation, mangler det eneste den indendørs lokalisering. Vi har brug for dette for at lukke feedback -loop, fordi vores mål var at styre robotten til en bestemt retning. Lad os gøre det.

Trin 3: Konfigurer dit indendørs lokaliseringssystem

For at lukke feedback -sløjfen gør vi brug af et indendørs lokaliseringssystem. Vi bruger Localino til dette. Localino -systemet består af "ankre" og "mærker". Ankerne er placeret på faste steder inde i rummet og lokaliserer positionen for det bevægelige mærke (som er placeret på Roomba). Placeringsbehandlingen udføres i en pc -applikation. Det er en stor fordel, fordi du også kan styre Roomba fra den samme pc! Der er gratis kildekode tilgængelig fra Localino-webstedet, den er skrevet i python, og der er også en real-time stream tilgængelig, der tilbyder tagget XYZ-koordinater. Datastrømmen er tilgængelig via UDP -netværk, men du kan også tilføje MQTT eller andre smarte ting, du kan lide. Hvis du kender Python, er der masser af biblioteker, der hjælper dig.

I denne video demonstreres lokaliseringen af Roomba. Derfor har vi 4 ankre opsat i rummet på faste steder, som tillader 3D -positionering af Roomba. Generelt ville vi kun kræve 3 ankre, fordi Roomba sandsynligvis ikke bevæger sig i Z-aksen, derfor ville 2D være tilstrækkeligt. Men fordi ankre er placeret i vekselstrømsstikkets højde (som er ca. 30 cm over jorden), ville en 2D -opsætning forårsage små positionsestimeringsfejl. Så vi besluttede at have 4 ankre og lokalisere i 3D.

Nu da vi har Roomba's position, er vores næste trin at styre Roomba fra den samme applikation. Ideen er at bruge jordens sandhed og estimere en perfekt rengøringsvej for robotten. Med brugen af Localino kan vi lukke feedback loop og styre robotten fra pc applikationen.

Opsætningsbemærkninger

Placer Localino ankre inde i rummet i forskellige x, y positioner og tre af dem på samme z position. Placer et ud af fire ankre i en anden højde z pr. Værelse. Sørg for, at der er god dækning fra Localino -mærket, der vil bevæge sig med Roomba.

Alle ankre har et unikt anker -id, som vises på stregkoden for Localino og kan læses med værktøjet "localino -konfiguration".

Bemærk positionerne i X, Y, Z og anker -id'erne. Dette er påkrævet for Localino -processorsoftwaren og skal tilpasses i filen "localino.ini" i mappen "LocalinoProcessor"

Ankerne skal pege opad eller nedad i Z (når XY -området er dækket), men ikke i retning af det overdækkede område. Ankerne bør heller ikke være dækket af metal eller andet trådløst signalforstyrrende materiale. Hvis dette ikke er muligt, bør der også være en vis luftspalte mellem ethvert materiale og ankeret.

…mere på vej.

Trin 4: Tilpas Python -softwaren

Bliv hængende. mere på vej.

Anbefalede: