Talaan ng mga Nilalaman:

Sinusubaybayan ng Localino ang Roomba IRobot, Mga Mapa sa Kalikasan at Pinapayagan ang Pagkontrol .: 4 Mga Hakbang
Sinusubaybayan ng Localino ang Roomba IRobot, Mga Mapa sa Kalikasan at Pinapayagan ang Pagkontrol .: 4 Mga Hakbang

Video: Sinusubaybayan ng Localino ang Roomba IRobot, Mga Mapa sa Kalikasan at Pinapayagan ang Pagkontrol .: 4 Mga Hakbang

Video: Sinusubaybayan ng Localino ang Roomba IRobot, Mga Mapa sa Kalikasan at Pinapayagan ang Pagkontrol .: 4 Mga Hakbang
Video: 30 COOLEST Tech Gadgets you’ll NEED in 2024 – MUST HAVE 2024, Hulyo
Anonim
Image
Image

Upang maitayo ang tulay ng WiFi-UART, maaari mong suriin ang repo ng github na ito:

Mayroon itong magandang batayan upang magsimula sa. Tiyaking nabasa mo nang maayos ang patnubay, dahil ang Roomba VCC habang nagcha-charge ay tumataas hanggang sa 20 Volts! Kung nagdagdag ka ng isang ESP8266 nang walang tamang buck-converter na gumagana kahit hanggang sa 20V at down-convert sa 3.3V, mapinsala mo ang iyong ESP.

Siguraduhing gumamit din ng isang shifter sa antas (hal. Paggamit ng isang voltner divider) upang ilipat ang mga antas ng 5V UART na lohika mula sa Roomba patungong 3.3V, na ginagamit ng ESP.

Ang isa pang mahalagang detalye ay, na ang buck converter ay dapat magkaroon ng 300mA, ngunit noch mas mababa o mas marami (depende sa buck converter mismo). Mayroong ilang mga diyan na maaaring gumawa ng mas maraming kasalukuyang, ngunit maging sanhi ng pag-crash ng Roomba dahil gumuhit sila ng masyadong maraming kasalukuyang sa pagsisimula. Nalaman namin na ang Pololu 3.3V, 300mA Step-Down Voltage Regulator (D24V3F3) ay gumagana lamang perpekto. Ang mga kahaliling bersyon na mayroong 500mA / 600mA ay sanhi ng pag-crash ng Roomba UART interface. Karaniwan ang Roomba ay tumutugon sa pindutan ng pindutan, ngunit hindi sa mga utos sa pamamagitan ng interface ng UART. Sa sandaling ito ay magtapos kailangan naming alisin ang baterya ng Roomba at i-restart muli ang Roomba na may nakalakip na tulay ng WiFi-UART. Gayunpaman, ang D24V3F3 lamang ang mahusay na gumana.

Bukod sa detalyeng panteknikal na iyon, kailangan mong magdagdag ng mga karagdagang utos sa code, na maaari mong makita sa Roomba bukas na mga pagtutukoy ng interface. Kailangan mong idagdag ang lahat ng mga utos na nais mong reaksyon ng iyong roomba (halimbawa, paatras, pasulong, bilis, atbp.).

mga halimbawa sa loob ng 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); }

kung sumulat ka sa lua mukhang medyo magkakaiba ito, isang halimbawa para sa isang LEFT turn ay ganito ang hitsura:

kung (_GET.pin == "LEFT") pagkatapos ay i-print ('\ 137'); --VOR

tmr.delay (100);

i-print ('\ 00'); - bilis = 200 = 0x00C8 -> 0 und 200

tmr.delay (100);

i-print ('\ 200'); - bilis

tmr.delay (100);

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

tmr.delay (100);

i-print ('\ 12'); -- Lumiko

magtapos

Tiyaking kailangan mong iwasto ang bukas na paglalarawan ng interface para sa iyong Roomba. Mayroong hindi bababa sa dalawang bukas na pagtutukoy ng interface na magagamit.

para sa serye ng Roomba 5xx:

para sa serye ng Roomba 6xx:

Kapag nabuo mo na ang iyong tulay sa WiFi-UART at nasubukan ang mga utos na ginawa mo nang napakalaking hakbang. Ipinapakita ng video na ito na gumagana ang application at diskarte. Medyo tinatamad kami, nawawala sa webinterface ang lahat ng iba pang mga utos ng kontrol, tulad ng pasulong, paatras, bilis, kanan, kaliwa at iba pa, ngunit maaari mong ipalabas ang mga utos sa pamamagitan ng http. Anuman, ito ay isang pagpapakita lamang na ang remote control ng Roomba ay gumagana sa isang madaling piraso ng hardware at software gamit ang isang ESP8266.

Ngayon dahil makokontrol mo ang iyong Roomba mula sa isang application ng PC, ang tanging bagay lamang na nawawala ay ang lokalisasyong panloob. Kailangan namin ito upang isara ang loop ng feedback, dahil ang aming layunin ay upang patnubapan ang robot sa isang tiyak na direksyon. Gawin natin ito.

Hakbang 3: I-setup ang Iyong Panloob na Localization System

Upang isara ang feedback loop na ginagamit namin ng isang panloob na localization system. Ginagamit namin ang Localino para dito. Ang sistemang Localino ay binubuo ng "mga angkla" at "mga tag". Ang mga anchor ay nakaposisyon sa mga nakapirming lokasyon sa loob ng silid at hanapin ang posisyon ng gumagalaw na tag (na inilagay sa Roomba). Ang pagpoproseso ng lokasyon ay ginagawa sa isang aplikasyon ng PC. Iyon ay may malaking kalamangan, dahil maaari mo ring makontrol ang Roomba mula sa parehong PC! May magagamit na libreng code ng mapagkukunan mula sa website ng Localino, nakasulat ito sa sawa at mayroon ding isang real-time na stream na magagamit na nag-aalok ng mga coordinate ng XYZ ng tag. Ang datastream ay magagamit sa pamamagitan ng UDP network, ngunit maaari mo ring idagdag ang MQTT o anumang iba pang mga magagarang bagay na gusto mo. Kung alam mo ang Python, mayroong mga tambak na aklatan na makakatulong sa iyo.

Sa video na ito, ipinakita ang lokalisasyon ng Roomba. Samakatuwid mayroon kaming 4 na mga pag-setup ng mga angkla sa silid sa mga nakapirming lokasyon, na nagpapahintulot sa 3D na pagpoposisyon ng Roomba. Sa pangkalahatan, mangangailangan lamang kami ng 3 mga angkla, sapagkat ang Roomba ay marahil ay hindi lilipat sa Z-axis, samakatuwid ang 2D ay magiging sapat. Ngunit dahil ang mga anchor ay matatagpuan sa taas ng pangunahing mga plug ng AC (na tinatayang 30cm sa itaas ng lupa) ang isang 2D na pag-setup ay magiging sanhi ng kaunting mga error sa pagtatantya ng posisyon. Kaya't napagpasyahan naming magkaroon ng 4 na mga angkla at i-localize sa 3D.

Ngayon dahil mayroon kaming posisyon ng Roomba ang aming susunod na hakbang ay upang makontrol ang Roomba mula sa parehong application. Ang ideya ay ang paggamit ng ground katotohanan at tantyahin ang isang perpektong landas sa paglilinis para sa robot. Sa paggamit ng Localino maaari naming isara ang loop ng feedback at makontrol ang robot mula sa application ng PC.

Mga pangungusap sa pag-set up

Iposisyon ang mga Localino anchor sa loob ng silid sa magkakaibang x, y posisyon at tatlo sa mga ito sa parehong posisyon na z. Iposisyon ang isa sa apat na mga angkla sa ibang taas na z bawat silid. Tiyaking mayroong magandang saklaw mula sa tag ng Localino, lilipat iyon kasama ang Roomba.

Ang lahat ng mga anchor ay mayroong isang uniqe anchor ID, na ipinapakita sa barcode ng Localino at maaaring basahin gamit ang tool na "localino configure".

Tandaan ang mga posisyon sa X, Y, Z at ang mga ID ng anchor. Kinakailangan ito para sa Localino Processor Software at kailangang iakma sa "localino.ini" na file sa folder na "LocalinoProcessor"

Ang mga anchor ay dapat na magturo paitaas o pababa sa Z (kapag sakop ang XY area), ngunit hindi sa direksyon ng sakop na lugar. Ang mga anchor ay hindi rin dapat sakop ng metal o anumang iba pang materyal na nakakagambala na wireless signal. Kung hindi ito posible, dapat ding magkaroon ng isang tiyak na agwat ng hangin sa pagitan ng anumang materyal at ng angkla.

… Darating pa.

Hakbang 4: Iangkop ang Python Software

manatiling nakatutok. marami pang darating.

Inirerekumendang: