Indholdsfortegnelse:
Video: Localino Spor Roomba IRobot, kortlægger miljøet og tillader kontrol .: 4 trin
2024 Forfatter: John Day | [email protected]. Sidst ændret: 2024-01-30 08:29
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:
Lav et billedsensoriseret spor på få minutter!: 10 trin (med billeder)
Lav et billedsensoriseret spor på få minutter !: I min tidligere Instructable viste jeg dig, hvordan du laver et modeltoglayout med automatiseret sidespor. Det brugte et sporsegment, der hedder 'sensored track'. Det er en ganske nyttig ting at have i et modelbanelayout. Jeg kan bruges til følgende: Bloker
Spor COVID-19-udbrud af ESP8266: 11 trin (med billeder)
Spor COVID-19-udbrud af ESP8266: Denne lille gadget hjælper dig med at være opdateret om coronavirusudbruddet og situationen i dit land. Dette er et IoT-baseret projekt, der viser data i realtid om tilfælde, dødsfald og genoprettede mennesker som følge af coronavirus (COVID-19)
Spor luftkvalitet ved hjælp af Grafana og Raspberry Pi: 7 trin
Spor luftkvalitet ved hjælp af Grafana og Raspberry Pi: Jeg ledte efter et lille lille IOT-projekt, og en ven anbefalede, at jeg tjekkede denne vejledning: https: //dzone.com/articles/raspberry-pi-iot-sensor…I stærkt anbefaler at følge selvstudiet for at følge med i opsætningen af en Raspberry Pi til overvågning
Selvstændige Rover-spor: 3 trin
Selvstændige Rover-spor: Dette er et selvstændigt 3D-printbart roverspor, der kan genbruges på dine projekter. Mange gange har jeg designet og downloadet allerede designede rovere til 3D-print. Normalt er der ingen isolation mellem roversporene og resten af kroppen. Dette
Find gratis elektronik, mad og hjælp til miljøet: 11 trin
Scavenge gratis elektronik, mad og hjælp til miljøet: Ok, så du mangler penge, og du har brug for gratis ting, eller måske vil du bare have noget gratis elektronikudstyr og mad. Så vi viser dig hvordan at rydde gratis ting! Med lidt øvelse kan oprydning og genbrug af affald blive liv