Mundarija:

Localino Roomba IRobot -ni kuzatib boradi, atrof -muhitni xaritaga kiritadi va nazorat qilish imkonini beradi: 4 qadam
Localino Roomba IRobot -ni kuzatib boradi, atrof -muhitni xaritaga kiritadi va nazorat qilish imkonini beradi: 4 qadam

Video: Localino Roomba IRobot -ni kuzatib boradi, atrof -muhitni xaritaga kiritadi va nazorat qilish imkonini beradi: 4 qadam

Video: Localino Roomba IRobot -ni kuzatib boradi, atrof -muhitni xaritaga kiritadi va nazorat qilish imkonini beradi: 4 qadam
Video: Отзыв и обзор iRobot Roomba 780. Робот-пылесос от iRobot. 2024, Noyabr
Anonim
Image
Image

WiFi-UART ko'prigini qurish uchun siz github repo-ni tekshirishingiz mumkin:

Buni boshlash uchun yaxshi asos bor. Qo'llanmani yaxshi o'qiganingizga ishonch hosil qiling, chunki zaryadlash paytida Roomba VCC 20 voltgacha ko'tariladi! Agar siz ESP8266-ni mos keladigan pul o'tkazgichisiz qo'shsangiz, u hatto 20Vgacha ishlaydi va 3.3V ga pastga o'zgartiradi, siz ESP-ga zarar etkazasiz.

5V UART mantiq darajasini ESP tomonidan ishlatilgan Roomba -dan 3.3V -ga o'tkazish uchun, shuningdek, daraja almashtirgichidan (masalan, kuchlanish taqsimlagichidan) foydalaning.

Yana bir muhim tafsilot shundaki, konvertor 300mA ga ega bo'lishi kerak, lekin undan kam yoki ko'p emas (konvertorning o'ziga bog'liq). Ba'zilar borki, ular ko'proq oqim o'tkaza oladilar, lekin Roomba qulab tushishiga olib keladi, chunki ular ishga tushirish vaqtida juda ko'p oqim tortadi. Biz bildikki, Pololu 3.3V, 300mA pastga tushadigan kuchlanish regulyatori (D24V3F3) juda zo'r ishlaydi. 500mA / 600mA bo'lgan muqobil versiyalar Roomba UART interfeysining ishdan chiqishiga olib keldi. Asosan, Roomba tugmalarni bosish bilan javob berdi, lekin UART interfeysi orqali buyruqlarga emas. Bu sodir bo'lgach, biz Roomba batareyasini olib tashlashimiz va WiFi-UART ko'prigi ulangan holda Roombani sovuq qaytadan ishga tushirishimiz kerak edi. Biroq, faqat D24V3F3 yaxshi ishladi.

Texnik tafsilotlardan tashqari, siz kodga Roomba ochiq interfeysining texnik xususiyatlaridan topishingiz mumkin bo'lgan qo'shimcha buyruqlarni qo'shishingiz kerak. Siz xonangizga javob berishni xohlagan barcha buyruqlarni kiritishingiz kerak bo'ladi (masalan, orqaga, oldinga, tezlik va boshqalar).

arduino IDE ichidagi misollar:

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'sh spinLeft () {char c = {137, 0x00, 0xc8, 0x00, 0x01}; Ketma -ket chop etish (c); }

bo'sh spinRight () {char c = {137, 0x00, 0xc8, 0xff, 0xff}; Ketma -ket chop etish (c); }

agar siz lua bilan yozsangiz, bu biroz boshqacha ko'rinadi, chapga burilish misoli shunday bo'ladi:

agar (_GET.pin == "LEFT") keyin chop eting ('\ 137'); --VOR

tmr.delay (100);

chop etish ('\ 00'); -Tezlik = 200 = 0x00C8 -> 0 va 200

tmr.delay (100);

bosib chiqarish ('\ 200'); - Tezlik

tmr.delay (100);

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

tmr.delay (100);

bosib chiqarish ('\ 12'); - Burilish

oxiri

Roomba uchun ochiq interfeys tavsifini to'g'rilashingizga ishonch hosil qiling. Kamida ikkita ochiq interfeys spetsifikatsiyasi mavjud.

Roomba 5xx seriyasi uchun:

Roomba 6xx seriyasi uchun:

WiFi-UART ko'prigini qurganingizdan va buyruqlarni sinab ko'rganingizdan so'ng, siz katta qadam tashladingiz. Bu video dastur va yondashuv ishlayotganini ko'rsatadi. Biz biroz dangasa edik, veb -interfeysda oldinga, orqaga, tezlikka, o'ngga, chapga va boshqalarga o'xshash boshqa boshqaruv buyruqlari yo'q, lekin siz buyruqlarni http orqali berishingiz mumkin. Qanday bo'lmasin, bu Roomba -ning masofadan boshqarish pulti ESP8266 yordamida oson apparat va dasturiy ta'minot bilan ishlashining ko'rsatuvidir.

Endi siz Roomba -ni kompyuter dasturidan masofadan boshqarishingiz mumkin, chunki etishmayotgan yagona narsa - bu ichki lokalizatsiya. Bu bizga teskari aloqa davrasini yopish uchun kerak, chunki bizning maqsadimiz robotni ma'lum bir yo'nalishga yo'naltirish edi. Keling buni qilamiz.

3 -qadam: yopiq lokalizatsiya tizimini o'rnating

Qayta aloqa tizimini yopish uchun biz yopiq lokalizatsiya tizimidan foydalanamiz. Buning uchun Localino -dan foydalanamiz. Localino tizimi "langarlar" va "teglar" dan iborat. Ankrajlar xona ichidagi aniq joylarga joylashtiriladi va harakatlanuvchi tegning joylashishini aniqlaydi (u Roombaga joylashtirilgan). Joylashuvni qayta ishlash kompyuter dasturida amalga oshiriladi. Bu katta afzallik, chunki siz Roomba -ni bitta kompyuterdan boshqarishingiz mumkin! Localino veb-saytida bepul manba kodi mavjud, u pythonda yozilgan, shuningdek, tegning XYZ koordinatalarini taklif qiladigan real vaqtda oqim mavjud. Ma'lumotlar oqimi UDP tarmog'i orqali mavjud, lekin siz MQTT yoki sizga yoqadigan boshqa narsalarni qo'shishingiz mumkin. Agar siz Python -ni bilsangiz, sizga yordam beradigan ko'plab kutubxonalar mavjud.

Ushbu videoda Roombaning lokalizatsiyasi ko'rsatilgan. Shunday qilib, bizda xonada 4 ta langar o'rnatiladi, bu Roomba -ni 3D joylashuvini aniqlash imkonini beradi. Umuman olganda, bizga faqat 3 ta langar kerak bo'ladi, chunki Roomba ehtimol Z o'qida harakat qilmaydi, shuning uchun 2D etarli bo'ladi. Langarlar AC asosiy vilkalari balandligida joylashganligi sababli (erdan taxminan 30 sm balandlikda), 2D o'rnatish joyni aniqlashda xatolarga olib keladi. Shunday qilib, biz 4 ta langarga ega bo'lishga va 3D formatida lokalizatsiya qilishga qaror qildik.

Endi biz Roomba -ning pozitsiyasiga ega bo'lganimizda, keyingi qadamimiz - Roombani xuddi shu ilovadan boshqarishdir. Maqsad - bu haqiqatdan foydalanish va robot uchun mukammal tozalash yo'lini baholash. Localino yordamida biz teskari aloqa davrini yopamiz va kompyuter dasturidan robotni boshqaramiz.

O'rnatish izohlari

Localino langarlarini xona ichidagi har xil x, y va uchtasini bir xil z pozitsiyasiga joylashtiring. Har bir z balandlikdagi to'rtta langardan birini joylashtiring. Roomba bilan harakatlanadigan Localino tegidan yaxshi qamrov mavjudligiga ishonch hosil qiling.

Barcha langarlarning identifikatori identifikatorga ega, u Localino shtrix -kodida ko'rsatiladi va uni "localino konfiguratsiyasi" vositasi yordamida o'qish mumkin.

X, Y, Z va langar identifikatorlari pozitsiyalariga e'tibor bering. Bu Localino protsessor dasturiy ta'minoti uchun talab qilinadi va "LocalinoProcessor" papkasidagi "localino.ini" fayliga moslashtirilishi kerak.

Ankrajlar Z bilan yuqoriga yoki pastga ishora qilishi kerak (XY maydoni yopilganda), lekin yopiq maydon yo'nalishi bo'yicha emas. Langarlar metall yoki boshqa simsiz signalni bezovta qiladigan materiallar bilan yopilmasligi kerak. Agar buning iloji bo'lmasa, har qanday material va langar o'rtasida ma'lum bir havo bo'shlig'i bo'lishi kerak.

… yana oldinda.

4 -qadam: Python dasturini moslashtiring

yangiliklarni kuzatib boring, xabardor bo'lib boring; Biz bilan qoling. yana keladi.

Tavsiya: