Съдържание:
- Стъпка 1: Материали
- Стъпка 2: Свързване
- Стъпка 3: Логично създаване на MATLAB код за използване на сензори
- Стъпка 4: Тестване на кода и робота
- Стъпка 5: Разпознаване на грешка
- Стъпка 6: Заключение
Видео: Паркинг за Roomba: 6 стъпки
2024 Автор: John Day | [email protected]. Последно модифициран: 2024-01-30 07:52
Този проект използва iRobot Create програмируема roomba, MATLAB r2018a и MATLAB mobile. Използвайки тези три среди и нашите познания за кодиране, ние програмирахме iRobot Create за тълкуване на цветовете и използване на вградени сензори за изпълнение на задачи. Тези проекти зависят от комуникацията на Raspberry Pi и MATLAB за изпълнение на тези задачи.
Стъпка 1: Материали
1. iRobot Създаване на робот
2. MATLAB r2018a
3. Малина Пи
4. Модул за камера
5. 3-D отпечатана стойка за стабилизатор на камерата
6. Смартфон с инсталиран мобилен MATLAB
7. Лаптоп/компютър с инсталиран MATLAB
Стъпка 2: Свързване
Тази стъпка е свързана с Raspberry Pi към робота, второ свързване на робота към вашия компютър и свързване на смартфона към компютъра.
Най -лесната част от този процес е свързването на Raspberry Pi към вашия робот, тъй като Raspberry Pi е монтиран на върха на робота. Има един кабел от робота, който трябва само да включите отстрани на Raspberry Pi.
Следващата стъпка е свързването на робота към компютъра, така че да можете да изпълнявате команди, които роботът да изпълнява. Първото нещо, което трябва да направите, е да свържете компютъра си към безжичната мрежа, която създава вашата румба. Сега се препоръчва да използвате иконата Set Path в MATLAB, за да зададете пътя, така че да можете да използвате функциите в инструментариума Roomba от MATLAB. Всеки път, когато започвате и приключвате използването с робота, трябва да извършите твърдо нулиране на робота „Салют с два пръста“, което означава, че трябва да задържите докинг и бутоните за десет секунди, докато светлината угасне, което показва освобождаването. Успех с това твърдо нулиране, ако чуете робота да свири кратка скала. След това трябва да се свържете с roomba, като използвате ред код като този „r = roomba (x)“, където „x“е номерът, определен за робота, който имате.
И накрая, трябва да изтеглите MATLAB mobile на всяко мобилно устройство, което ще използвате за този проект, и това приложение е достъпно както на устройства с Android, така и на Apple. След като приложението е инсталирано, ще трябва да влезете, като използвате вашите идентификационни данни. След това трябва да свържете това устройство към компютъра си, като използвате раздела с надпис „Още“-> след това щракнете върху „настройки“-> след това щракнете върху „Добавяне на компютър“, това трябва да покаже екрана, показан на снимките по -горе. След като видите това, Следващата стъпка, която трябва да преминете, е просто включване и преглеждане на информацията, която иска. След като се свържете успешно, ще можете да извикате функции, които сте определили на вашия компютър на телефона си, за да управлявате робота си.
Стъпка 3: Логично създаване на MATLAB код за използване на сензори
Кодът ще бъде най -лесният за създаване, когато по -голямата част от него е в рамките на цикъл while, така че roomba да може постоянно да актуализира валидни стойности, които разглежда. Ако има грешка, MATLAB ще покаже грешка и къде се появява в кода, което прави отстраняването на неизправности сравнително лесно.
Проектиран в r2018a MATLAB, този код използва стандартните кутии с инструменти, iRobot Create toolbox, както и мобилния набор от инструменти MATLAB. Roomba, използвана в този пример, е обозначена като 26, а r = roomba (26) трябва да се изпълнява само веднъж, за да комуникира напълно с roomba.
Код:
функция parkassist (x), ако x == 1
r = roomba (26) % се свързва с roomba
докато е вярно
r.setDriveVelocity (.05,.05) % задава roomba на по -бавна скорост на шофиране
bump = r.getBumpers % получава данните от сензорите за удар
cliff = r.getCliffSensors % получава данните от сензорите за скали
light = r.getLightBumpers % получава данните от сензорите за светлинен удар
img = r.getImage;% чете камерата от робота
red_mean = средно (средно (img (:,:, 1))) % чете средното количество червени пиксели
green_mean = mean (mean (img (:,:, 2))) % чете средното количество зелени пиксели
blue_mean = mean (mean (img (:,:, 3))) % чете средното количество сини пиксели
ако bump.front == 1 %чете сензорите отпред
r.stop %спира roomba
msgbox ('Пътят е скрит!', 'Съобщение на асистент при паркиране') % показва съобщение, че пътят е затъмнен прекъсване % прекратява цикъла
иначе ако green_mean> 150
r.stop %спира roomba
cont = questdlg ('Продължи?', 'Пътят завършен') %показва полето с въпроси с молба за продължаване
ако cont == 'Да'
parkassist (1) %рестартира кода
иначе
край
break % завършва цикъла
иначе ако red_mean> 140
r.turnAngle (45) %завърта roomba на 45 градуса
r.timeStart %стартира брояч на време
докато е вярно
r.setDriveVelocity (.05,.05) %задава скоростта на roomba
time = r.timeGet %присвоява времето на променлива
bump = r.getBumpers % получава данните от сензорите за удар
cliff = r.getCliffSensors % получава данните от сензорите за скали
light = r.getLightBumpers % получава данните от сензорите за светлинен удар
img = r.getImage;% чете камерата от робота
red_mean = средно (средно (img (:,:, 1))) % чете средното количество червени пиксели
green_mean = mean (mean (img (:,:, 2))) % чете средното количество зелени пиксели
blue_mean = mean (mean (img (:,:, 3))) % чете средното количество сини пиксели
ако blue_mean> 120
r.moveDistance (-0.01) % премества roomba назад с определена дистанция
msgbox ('Water Found!', 'Message Assistant Message') % показва съобщение, че водата е намерена r.turnAngle (-80) % завърта roomba 80 градуса
break % завършва текущия цикъл
elseif light.rightFront> 25 || light.leftFront> 25 %чете сензори за леки удари
r.moveDistance (-0.01) % премества roomba назад на зададено разстояние
r.turnAngle (-35) % завърта roomba на 35 градуса
break %завършва текущия цикъл
elseif cliff.rightFront <2500 && cliff.leftFront <2500 %чете и двата сензора за скали
r.moveDistance (-0.1) % премества roomba назад на зададено разстояние
r.turnAngle (-80) %завърта roomba на 80 градуса
break % завършва текущия цикъл
иначе време> = 3
r.stop %спира roomba
contin = questdlg ('Station Free, Continue?', 'Message Assistant Message') %пита дали roomba трябва да продължи, ако contin == 'Yes'
r.turnAngle (-90) % завърта roomba на 90 градуса
parkassist (1) %рестартира функцията
иначе
r.stop % спира roomba
край
иначе
край
край
elseif cliff.rightFront <2500 && cliff.leftFront <2500 %чете и двата сензора за скали
r.moveDistance (-0.1) %премества roomba назад на зададено разстояние
r.turnAngle (-90) %завърта roomba на 90 градуса
elseif cliff.rightFront <2500 %чете десния сензор за скали
r.turnAngle (-5) %леко завърта roomba в обратната посока на сензора за скалите
elseif cliff.leftFront <2500 %чете сензора за лявата скала
r.turnAngle (5) %леко завърта roomba в обратната посока на сензора за скалите
иначе
край
край
край
Стъпка 4: Тестване на кода и робота
След като кодът беше разработен, следващата стъпка беше да тествате кода и робота. Тъй като в кода могат да се направят много различни корекции, като ъгъла, който роботът завърта, скоростта, в която се движи, и праговете за всеки цвят, най -добрият начин да разберете тези стойности за вашия робот е да тествате ги и се променяйте, докато вървите. За всеки работен ден, който имахме, ние непрекъснато променяхме тези стойности, тъй като някои от тях разчитат на средата, в която работи вашият робот. Най -добрият начин, който открихме, беше да поставим roomba по пътя, който искате да следва, и да имате бариера достатъчно висока, така че камерата да не може да открие цветове, които не искате. Следващата стъпка е да го пуснете и да му покажете цветовете, които искате, когато искате да изпълни тази задача. Докато вървите, ако видите проблем, най -добре е да натиснете предната броня, като я спрете, след това променете параметъра, с който сте имали проблеми.
Стъпка 5: Разпознаване на грешка
С всеки завършен проект винаги има източници на грешки. За нас изпитахме грешка с простия факт, че роботът не е точен с ъгъла, под който се завърта, така че ако му кажете да завърти 45 градуса, това няма да е точно. Друг източник на грешка за нас беше, че понякога роботът се повреди и вие имате трудно да го нулирате, преди да заработи отново. Основният последен източник на грешка за нас беше, че един и същ код няма да има същия ефект върху различните роботи, така че може да се наложи да бъдете търпеливи и да го коригирате съответно.
Стъпка 6: Заключение
Сега имате всички инструменти, с които можете да играете с вашата ромба, което означава, че можете да манипулирате кода така, както искате да постигнете целите, които желаете. Това трябва да е най -хубавата част от деня ви, така че се забавлявайте и шофирайте безопасно!
Препоръчано:
Превръщане на вашата Roomba в марсоход: 5 стъпки
Превръщане на вашата Roomba в марсоход:
Карта за студентски паркинг на университетския кампус: 7 стъпки (със снимки)
Карта за студентско паркиране в университетския кампус: Много студенти се чудят къде могат да паркират в университетския кампус. За да разреша този проблем, създадох светваща карта за паркиране на основната зона на кампуса на държавния университет в Юта. Картата е за учениците да разгледат набързо какви опции за паркиране са
Интелигентен паркинг с помощта на Raspberry Pi: 5 стъпки
Интелигентен паркинг с помощта на Raspberry Pi: В тези инструкции ще създадем напълно автоматична система за паркиране, свързана към уеб интерфейс. Ще можете да видите какво място е заето, да решите кой влиза и кой излиза и е оборудвано с автоматична система за осветление
Решение за зони без паркинг: 5 стъпки
Решение за зони без паркинг: Този проект е резултат от вдъхновението, което екипът ми получи от статия във вестник. В статията се говори за хора, които паркират автомобилите си в зони за паркиране. Това се превърна в голям проблем, който води до задръствания и неудобства за другите
От Roomba до Rover само за 5 стъпки !: 5 стъпки
От Roomba до Rover само за 5 стъпки !: Роботите Roomba са забавен и лесен начин да потопите пръстите на краката си в света на роботиката. В тази инструкция ще опишем подробно как да превърнем обикновена Roomba в управляем роувър, който едновременно анализира околностите си. Списък на части1.) MATLAB2.) Roomb