Përmbajtje:

Localino Tracks Roomba IRobot, Hartat e Mjedisit dhe Lejon Kontrollin .: 4 Hapa
Localino Tracks Roomba IRobot, Hartat e Mjedisit dhe Lejon Kontrollin .: 4 Hapa

Video: Localino Tracks Roomba IRobot, Hartat e Mjedisit dhe Lejon Kontrollin .: 4 Hapa

Video: Localino Tracks Roomba IRobot, Hartat e Mjedisit dhe Lejon Kontrollin .: 4 Hapa
Video: Mario + Rabbids Kingdom Battle - Easy Allies Review 2024, Nëntor
Anonim
Image
Image

Për të ndërtuar urën WiFi-UART, mund të shikoni këtë repo github:

Ka një bazë të mirë për të filluar. Sigurohuni që e keni lexuar mirë udhëzuesin, sepse Roomba VCC gjatë karikimit rritet deri në 20 Volt! Nëse shtoni një ESP8266 pa një konvertues të duhur që punon edhe deri në 20V dhe konvertohet në 3.3V, ju do të dëmtoni ESP-në tuaj.

Gjithashtu sigurohuni që të përdorni një ndërrues niveli (p.sh. duke përdorur një ndarës tensioni) për të zhvendosur nivelet logjike 5V UART nga Roomba në 3.3V, të cilat përdoren nga ESP.

Një detaj tjetër i rëndësishëm është, se konvertuesi i dollarit duhet të ketë 300mA, por jo më pak ose shumë më tepër (në varësi të vetë konvertuesit të dollarit). Ka disa atje që mund të bëjnë shumë më tepër aktuale, por bëjnë që Roomba të rrëzohet sepse tërheqin shumë rrymë gjatë fillimit. Ne zbuluam se Rregullatori i Tensionit Hapës poshtë Pololu 3.3V, 300mA (D24V3F3) funksionon në mënyrë perfekte. Versionet alternative të cilat kanë 500mA / 600mA shkaktuan ndërprerjen e ndërfaqes Roomba UART. Në thelb Roomba po reagonte në shtypjen e butonit, por jo në komandat përmes ndërfaqes UART. Pasi kjo ndodhi, na u desh të hiqnim baterinë Roomba dhe të rinisnim të ftohtë Roomba me urën WiFi-UART të bashkangjitur. Sidoqoftë, vetëm D24V3F3 funksionoi mirë.

Përveç atij detaji teknik, duhet të shtoni komanda shtesë në kod, të cilat mund t'i gjeni në specifikimet e ndërfaqes së hapur Roomba. Ju do të duhet të shtoni të gjitha komandat në të cilat dëshironi të reagojë dhoma juaj (për shembull, prapa, përpara, shpejtësia, etj.).

shembuj brenda 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); }

nëse shkruani në lua duket pak më ndryshe, një shembull për një kthesë të majtë do të duket kështu:

nëse (_GET.pin == "LEFT") atëherë printoni ('\ 137'); --VOR

tmr.vonesa (100);

print ('\ 00'); -Shpejtësia = 200 = 0x00C8 -> 0 dhe 200

tmr.vonesa (100);

print ('\ 200'); - Shpejtësia

tmr.vonesa (100);

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

tmr.vonesa (100);

print ('\ 12'); - Ktheni

fund

Sigurohuni që duhet të korrigjoni përshkrimin e ndërfaqes së hapur për Roomba tuaj. Ekzistojnë të paktën dy specifikime të ndërfaqes së hapur.

për seritë Roomba 5xx:

për seritë Roomba 6xx:

Pasi të keni ndërtuar urën tuaj WiFi-UART dhe të keni testuar komandat që keni bërë një hap të madh më tej. Kjo video demonstron që aplikacioni dhe qasja funksionojnë. Ne ishim pak dembelë, në webinterface mungojnë të gjitha komandat e tjera të kontrollit, si përpara, prapa, shpejtësia, djathtas, majtas dhe kështu me radhë, por ju mund t'i lëshoni komandat përmes http. Sidoqoftë, është vetëm një demonstrim që telekomanda e Roomba punon me një pjesë të lehtë të pajisjeve dhe softuerit duke përdorur një ESP8266.

Tani pasi mund ta kontrolloni Roomba -n tuaj nga distanca nga një aplikacion PC, e vetmja gjë që mungon është lokalizimi i brendshëm. Ne kemi nevojë për këtë për të mbyllur lakun e reagimeve, sepse qëllimi ynë ishte ta drejtonim robotin në një drejtim të caktuar. Le ta bejme kete.

Hapi 3: Konfiguroni sistemin tuaj të lokalizimit të brendshëm

Për të mbyllur lakun e reagimeve ne përdorim një sistem lokalizimi të brendshëm. Ne përdorim Localino për këtë. Sistemi Localino përbëhet nga "spiranca" dhe "etiketa". Spirancat vendosen në vende fikse brenda dhomës dhe gjejnë pozicionin e etiketës lëvizëse (e cila vendoset në Roomba). Përpunimi i vendndodhjes bëhet në një aplikacion PC. Ky është një avantazh i madh, sepse ju gjithashtu mund të kontrolloni Roomba nga i njëjti kompjuter! Ekziston një kod burimi falas i disponueshëm nga faqja e internetit Localino, është shkruar në python dhe ekziston gjithashtu një transmetim në kohë reale që ofron koordinatat XYZ të etiketës. Rrjedha e të dhënave është e disponueshme përmes rrjetit UDP, por gjithashtu mund të shtoni MQTT ose ndonjë gjë tjetër të zbukuruar që ju pëlqen. Nëse e njihni Python, ka shumë biblioteka që ju ndihmojnë.

Në këtë video, demonstrohet lokalizimi i Roomba. Prandaj ne kemi 4 spiranca të vendosura në dhomë në vende të caktuara, të cilat lejojnë pozicionimin 3D të Roomba. Në përgjithësi, ne do të kërkonim vetëm 3 spiranca, sepse Roomba ndoshta nuk do të lëvizë në boshtin Z, prandaj 2D do të ishte e mjaftueshme. Por për shkak se spirancat janë të vendosura në lartësinë e prizave kryesore AC (e cila është afërsisht 30 cm mbi tokë) një konfigurim 2D do të shkaktonte pak gabime në vlerësimin e pozicionit. Kështu që ne vendosëm të kishim 4 spiranca dhe të lokalizoheshim në 3D.

Tani pasi kemi pozicionin e Roomba hapi ynë tjetër është të kontrollojmë Roomba nga i njëjti aplikacion. Ideja është të përdorni të vërtetën themelore dhe të vlerësoni një rrugë të përsosur pastrimi për robotin. Me përdorimin e Localino ne mund të mbyllim lakin e reagimeve dhe të kontrollojmë robotin nga aplikacioni i PC.

Vërejtjet e konfigurimit

Poziciononi spirancat Localino brenda dhomës në pozicione të ndryshme x, y dhe tre prej tyre në të njëjtin pozicion z. Poziciononi një nga katër spiranca në një lartësi të ndryshme z për dhomë. Sigurohuni që ka mbulim të mirë nga etiketa Localino, që do të lëvizë me Roomba.

Të gjitha spirancat kanë një ID spirancë unike, e cila shfaqet në barkodin e Localino dhe mund të lexohet me mjetin "konfigurimi localino".

Vini re pozicionet në X, Y, Z dhe ID -të e ankorimit. Kjo kërkohet për Softuerin e Përpunuesit Localino dhe duhet të përshtatet në skedarin "localino.ini" në dosjen "LocalinoProcessor"

Spirancat duhet të drejtohen lart ose poshtë në Z (kur zona XY është e mbuluar), por jo në drejtim të zonës së mbuluar. Spirancat gjithashtu nuk duhet të mbulohen nga metali ose ndonjë material tjetër shqetësues i sinjalit pa tel. Nëse kjo nuk është e mundur, duhet të ketë gjithashtu një hendek të caktuar ajri midis çdo materiali dhe spirancës.

… Më shumë për të ardhur.

Hapi 4: Përshtatni Softuerin Python

rri i sintonizuar. më shumë për të ardhur.

Recommended: