Mündəricat:

Localino Roomba IRobot -u izləyir, Ətraf Mühitin Xəritələrini Götürür və Nəzarətə İzin Verir .: 4 Addım
Localino Roomba IRobot -u izləyir, Ətraf Mühitin Xəritələrini Götürür və Nəzarətə İzin Verir .: 4 Addım

Video: Localino Roomba IRobot -u izləyir, Ətraf Mühitin Xəritələrini Götürür və Nəzarətə İzin Verir .: 4 Addım

Video: Localino Roomba IRobot -u izləyir, Ətraf Mühitin Xəritələrini Götürür və Nəzarətə İzin Verir .: 4 Addım
Video: En İyi 5 Robot Süpürge 2022 | İzlemeden Almayın! (Her Bütçeye Uygun) 2024, Noyabr
Anonim
Image
Image

WiFi-UART körpüsünü qurmaq üçün bu github reposuna baxa bilərsiniz:

Başlamaq üçün gözəl bir əsas var. Təlimatı yaxşı oxuduğunuzdan əmin olun, çünki doldurma zamanı Roomba VCC 20 Volta qədər artır! 20V-ə qədər işləyən və 3.3V-ə qədər aşağı çevirən uyğun bir pul çeviricisi olmadan bir ESP8266 əlavə etsəniz, ESP-yə zərər verərsiniz.

ESP tərəfindən istifadə olunan 5V UART məntiq səviyyələrini Roomba'dan 3.3V -ə dəyişdirmək üçün bir səviyyə dəyişdiricisi (məsələn, bir gərginlik bölücü istifadə edərək) istifadə etdiyinizə əmin olun.

Başqa bir vacib detal budur ki, buck çeviricisinin 300mA olması lazımdır, lakin çox az və ya çoxdur (buck çeviricinin özündən asılı olaraq). Orada daha çox cərəyan edə bilən, lakin Roombanın qəzaya uğramasına səbəb olanları var, çünki işə salınma zamanı çox cərəyan çəkirlər. Öyrəndik ki, Pololu 3.3V, 300mA aşağı-aşağı gərginlik tənzimləyicisi (D24V3F3) sadəcə mükəmməl işləyir. 500mA / 600mA olan alternativ versiyalar Roomba UART interfeysinin çökməsinə səbəb oldu. Əsasən Roomba, UART interfeysi üzərindəki əmrlərə deyil, düymələrə basmağa reaksiya verdi. Bu baş verdikdən sonra, Roomba batareyasını çıxarmalı və WiFi-UART körpüsü bağlı olaraq Roombanı soyuq şəkildə yenidən başlamalı olduq. Ancaq yalnız D24V3F3 yaxşı işləyirdi.

Bu texniki detaldan başqa, koda Roomba açıq interfeys xüsusiyyətlərində tapa biləcəyiniz əlavə əmrlər əlavə etməlisiniz. Otağınızın reaksiya verməsini istədiyiniz bütün əmrləri əlavə etməlisiniz (məsələn, geriyə, irəli, sürət və s.).

arduino IDE nümunələri:

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

boş spinLeft () {char c = {137, 0x00, 0xc8, 0x00, 0x01}; Serial çapı (c); }

boş spinRight () {char c = {137, 0x00, 0xc8, 0xff, 0xff}; Serial çapı (c); }

lua ilə yazsanız, bir az fərqli görünür, SOL dönmə nümunəsi belə görünür:

əgər (_GET.pin == "SOL") sonra çap et ('\ 137'); --VOR

tmr.delay (100);

çap ('\ 00'); -Sürət = 200 = 0x00C8 -> 0 və 200

tmr.delay (100);

çap ('\ 200'); - Sürət

tmr.delay (100);

çap ('\ 254'); - Yarıçap = 500 = 0x01F4 = 0x01 0xF4 = 1244

tmr.delay (100);

çap ('\ 12'); - Dönün

bitmək

Roomba üçün açıq interfeys təsvirini düzəltdiyinizə əmin olun. Ən azı iki açıq interfeys spesifikasiyası mövcuddur.

Roomba 5xx seriyası üçün:

Roomba 6xx seriyası üçün:

WiFi-UART körpünüzü qurduqdan və irəliyə addım atdığınız əmrləri sınadıqdan sonra. Bu video tətbiqin və yanaşmanın işlədiyini göstərir. Bir az tənbəl idik, veb -interfeysdə irəli, geriyə, sürət, sağa, sola və sairə kimi bütün digər nəzarət əmrləri yoxdur, ancaq əmrləri http vasitəsilə verə bilərsiniz. Hər halda, Roombanın uzaqdan idarə edilməsinin bir ESP8266 istifadə edərək asan bir hardware və proqram təminatı ilə işlədiyinin bir nümayişi.

İndi Roomba -nı bir PC tətbiqindən uzaqdan idarə edə bildiyiniz üçün çatışmayan tək şey daxili lokalizasiyadır. Geribildirim döngəsini bağlamaq üçün buna ehtiyacımız var, çünki məqsədimiz robotu müəyyən bir istiqamətə yönəltmək idi. Gəlin, bunu edək.

Addım 3: Daxili Yerləşdirmə Sisteminizi Qurun

Geribildirim döngəsini bağlamaq üçün qapalı lokalizasiya sistemindən istifadə edirik. Bunun üçün Localino istifadə edirik. Localino sistemi "çapa" və "etiket" dən ibarətdir. Çapalar otağın içərisində sabit yerlərdə yerləşdirilir və hərəkət edən etiketin yerini (Roomba üzərində yerləşdirilir) tapır. Yerin işlənməsi bir PC tətbiqində aparılır. Bunun böyük üstünlüyü var, çünki Roombanı eyni kompüterdən idarə edə bilərsiniz! Localino veb saytından əldə edilə bilən pulsuz mənbə kodu var, pythonda yazılmışdır və etiketin XYZ koordinatlarını təklif edən real vaxt axını da mövcuddur. Məlumat axını UDP şəbəkəsi vasitəsi ilə mövcuddur, ancaq MQTT və ya bəyəndiyiniz hər hansı digər xülya əşyaları da əlavə edə bilərsiniz. Python bilirsinizsə, sizə kömək edən çoxlu kitabxana var.

Bu videoda Roombanın lokalizasiyası nümayiş etdirilir. Buna görə otaqda sabit yerlərdə 4 ədəd çapa qurğusu var ki, bu da Roombanın 3D yerləşdirilməsinə imkan verir. Ümumiyyətlə, yalnız 3 lövbərə ehtiyacımız olacaq, çünki Roomba, ehtimal ki, Z oxunda hərəkət etməyəcək, buna görə də 2D kifayət edər. Çapalar AC əsas fişlərin hündürlüyündə yerləşdiyi üçün (yerdən təxminən 30 sm yüksəklikdə) 2D quruluşu kiçik bir mövqe qiymətləndirmə səhvlərinə səbəb olardı. Beləliklə, 4 çapa sahib olmağa və 3D -də lokallaşdırmağa qərar verdik.

İndi Roomba'nın mövqeyinə sahib olduğumuz üçün növbəti addımımız Roombanı eyni tətbiqdən idarə etməkdir. Fikir əsas həqiqətdən istifadə etmək və robot üçün mükəmməl bir təmizləmə yolu təxmin etməkdir. Localino istifadə edərək geribildirim döngəsini bağlaya və robotu PC tətbiqindən idarə edə bilərik.

Quraşdırma qeydləri

Localino lövbərlərini otaq daxilində müxtəlif x, y mövqelərində və üçü də eyni z mövqedə yerləşdirin. Dörd lövbərdən birini otaq başına fərqli bir yüksəklikdə yerləşdirin. Roomba ilə hərəkət edəcək Localino etiketindən yaxşı bir əhatə dairəsi olduğundan əmin olun.

Bütün lövbərlər, Localinonun barkodunda göstərilən və "localino konfiqurasiya" vasitəsi ilə oxunan unikal bir çapa identifikatoruna malikdir.

X, Y, Z və çapa şəxsiyyətlərindəki mövqelərə diqqət yetirin. Bu Localino Prosessor Proqramı üçün tələb olunur və "LocalinoProcessor" qovluğundakı "localino.ini" faylına uyğunlaşdırılmalıdır.

Çapalar Z -də yuxarıya və ya aşağıya işarə etməlidir (XY sahəsi örtülü olduqda), lakin örtülü sahə istiqamətində deyil. Çapalar da metal və ya digər simsiz siqnalları narahat edən materiallarla örtülməməlidir. Bu mümkün deyilsə, hər hansı bir material ilə anker arasında müəyyən bir hava boşluğu da olmalıdır.

… daha çox gələcək.

Addım 4: Python Proqramını uyğunlaşdırın

izləmədə qalın. daha çox gələcək.

Tövsiyə: