Съдържание:
Видео: Localino Tracks Roomba IRobot, Картира околната среда и позволява контрол: 4 стъпки
2024 Автор: John Day | [email protected]. Последно модифициран: 2024-01-30 07:54
За да изградите WiFi-UART моста, можете да проверите това github репо:
Има добра основа за начало. Уверете се, че сте прочели добре ръководството, защото Roomba VCC по време на зареждане увеличава до 20 волта! Ако добавите ESP8266 без подходящ доларов конвертор, който работи дори до 20V и понижава преобразуването до 3.3V, ще повредите вашия ESP.
Също така не забравяйте да използвате превключвател на нивата (например с помощта на делител на напрежение), за да изместите 5V UART логическите нива от Roomba на 3.3V, които се използват от ESP.
Друг важен детайл е, че доларовият преобразувател трябва да има 300mA, но много по -малко или много повече (в зависимост от самия конвертор). Има някои, които могат да направят много повече ток, но причиняват срив на Roomba, защото те черпят твърде много ток по време на стартиране. Разбрахме, че регулаторът на понижаващо напрежение Pololu 3.3V, 300mA (D24V3F3) работи просто перфектно. Алтернативните версии, които имат 500mA / 600mA, доведоха до срив на интерфейса на Roomba UART. По принцип Roomba реагира на натискане на бутон, но не и на команди чрез интерфейса UART. След като това се случи, трябваше да извадим батерията на Roomba и да рестартираме Roomba на студено с монтиран WiFi-UART мост. Само D24V3F3 обаче работи добре.
Освен тези технически подробности, трябва да добавите допълнителни команди към кода, които можете да намерите в спецификациите на отворения интерфейс на Roomba. Ще трябва да добавите всички команди, на които искате вашата roomba да реагира (например назад, напред, скорост и т.н.).
примери в 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); }
ако пишете на lua, изглежда малко по -различно, пример за ляв завой ще изглежда така:
ако (_GET.pin == "НАЛЯВО") след това отпечатайте ('\ 137'); -ВОР
tmr.delay (100);
print ('\ 00'); -Скорост = 200 = 0x00C8 -> 0 и 200
tmr.delay (100);
print ('\ 200'); - Скорост
tmr.delay (100);
print ('\ 254'); - Радиус = 500 = 0x01F4 = 0x01 0xF4 = 1 244
tmr.delay (100);
print ('\ 12'); - Обърни се
край
Уверете се, че трябва да коригирате отвореното описание на интерфейса за вашата Roomba. Налични са поне две спецификации на отворен интерфейс.
за серия Roomba 5xx:
за серия Roomba 6xx:
След като изградите своя WiFi-UART мост и тествате командите, направихте голяма крачка напред. Това видео показва, че приложението и подходът работят. Бяхме малко мързеливи, на уеб интерфейса липсват всички други команди за управление, като напред, назад, скорост, надясно, наляво и така нататък, но можете да издавате командите чрез http. Както и да е, това е само демонстрация, че дистанционното управление на Roomba работи с лесен хардуер и софтуер, използвайки ESP8266.
Тъй като можете да контролирате Roomba дистанционно от компютърно приложение, единственото нещо, което липсва, е локализацията на закрито. Нуждаем се от това, за да затворим цикъла за обратна връзка, защото нашата цел беше да насочим робота в определена посока. Да го направим.
Стъпка 3: Настройте вашата система за локализиране на закрито
За да затворим веригата за обратна връзка, използваме вътрешна локализационна система. Използваме Localino за това. Системата Localino се състои от „котви“и „тагове“. Котвите са разположени на фиксирани места в помещението и локализират позицията на подвижния етикет (който се поставя върху Roomba). Обработката на местоположението се извършва в компютърно приложение. Това е от голямо предимство, защото можете също да управлявате Roomba от същия компютър! Наличен е безплатен изходен код от уебсайта Localino, той е написан на python, а има и поток в реално време, който предлага XYZ координатите на маркера. Потокът от данни е достъпен чрез UDP мрежа, но можете също да добавите MQTT или други фантастични неща, които харесвате. Ако познавате Python, има куп библиотеки, които ви помагат.
В това видео е показано локализирането на Roomba. Следователно имаме 4 котви в стаята на фиксирани места, които позволяват 3D позициониране на Roomba. Като цяло бихме искали само 3 котви, тъй като Roomba вероятно няма да се движи по оста Z, следователно 2D би било достатъчно. Но тъй като анкерите са разположени на височината на главния щепсел на променлив ток (което е приблизително 30 см над земята), 2D настройката би причинила малки грешки при оценката на позицията. Затова решихме да имаме 4 котви и да ги локализираме в 3D.
След като имаме позицията на Roomba, следващата ни стъпка е да контролираме Roomba от същото приложение. Идеята е да се използва земната истина и да се изчисли перфектният път за почистване на робота. С помощта на Localino можем да затворим цикъла за обратна връзка и да управляваме робота от компютърното приложение.
Забележки за настройката
Поставете котвите Localino в стаята в различни позиции x, y и три от тях в една и съща позиция z. Поставете една от четирите котви на различна височина z на стая. Уверете се, че има добро покритие от маркера Localino, който ще се движи с Roomba.
Всички котви имат уникален идентификатор на котва, който се показва на баркода на Localino и може да бъде прочетен с инструмента „localino configuration“.
Забележете позициите в X, Y, Z и идентификационните номера на котвата. Това е необходимо за софтуера за локален процесор и трябва да се адаптира във файла „localino.ini“в папката „LocalinoProcessor“
Котвите трябва да сочат нагоре или надолу в Z (когато зоната XY е покрита), но не и в посоката на покритата зона. Котвите също не трябва да бъдат покрити с метал или друг материал, нарушаващ безжичния сигнал. Ако това не е възможно, трябва да има и известна въздушна междина между всеки материал и котвата.
…има още.
Стъпка 4: Адаптирайте софтуера Python
следете. има още.
Препоръчано:
Максимален генератор на околната среда на MSP: 19 стъпки
Max MSP Ambient Loop Generator: Това е урок за това как да започнете да създавате генератор на околна среда в Max MSP, Този урок очаква да имате основни познания за Max MSP, DAW интерфейси и обработка на сигнали. Ако искате да използвате програмата, създадена в този урок
Консумация на електроенергия и мониторинг на околната среда чрез Sigfox: 8 стъпки
Консумация на електроенергия и мониторинг на околната среда чрез Sigfox: Описание Този проект ще ви покаже как да включите електрическата консумация на помещение в трифазно разпределение на енергия и след това да го изпратите до сървър, използващ мрежата Sigfox на всеки 10 минути. Имаме три токови скоби от
Направете свой собствен MQTT EInk дисплей за време, новини и данни за околната среда: 7 стъпки
Направете свой собствен MQTT EInk дисплей за време, новини и данни за околната среда: „THE“е мини MQTT информационен дисплей за време, новини и информация за околната среда. Използвайки 4.2-инчов екран eInk, неговата концепция е проста-да показва информация на ротационен принцип, като се актуализира на всеки няколко минути. Данните могат да бъдат всякакви емисии - f
Нов безжичен сензорен слой IOT за домашна система за мониторинг на околната среда: 5 стъпки (със снимки)
Нов безжичен сензорен IOT слой за домашна система за мониторинг на околната среда: Тази инструкция описва по-евтин, безжичен IOT сензорен слой, захранван от батерии, за моята по-ранна инструкция: LoRa IOT домашна система за мониторинг на околната среда. Ако все още не сте гледали този по -ранен Instructable, препоръчвам да прочетете въведението
Система за мониторинг на околната среда, базирана на модул OBLOQ-IoT: 4 стъпки
Система за мониторинг на околната среда, базирана на модул OBLOQ-IoT: Този продукт се прилага главно в електронна лаборатория за наблюдение и контрол на индикатори като температура, влажност, светлина и прах и своевременно ги качва в облачното пространство за данни, за да се постигне дистанционен мониторинг и контрол на изсушителя , въздушен чист