Мазмуну:
- 1 -кадам: Берилиштер
- 2 -кадам: Проблеманын билдирүүсү
- 3 -кадам: Bluetooth Алыстан башкаруу
- 4 -кадам: таасирди таануу
- 5 -кадам: Жашоону таануу
- 6 -кадам: Run
Video: Марс Roomba: 6 кадам
2024 Автор: John Day | [email protected]. Акыркы өзгөртүү: 2024-01-30 10:41
Бул Instructable сизге Raspberry Pi көзөмөлдөгөн Roomba вакуумдук ботун иштетүү боюнча көрсөтмөлөрдү берет. Биз колдоно турган операциялык система MATLAB аркылуу.
1 -кадам: Берилиштер
Бул долбоорду ишке ашыруу үчүн эмне чогултуу керек:
- iRobotтун Create2 Roomba чаң соргуч боту
- Raspberry Pi
- Raspberry Pi камерасы
- MATLABнын акыркы версиясы
- MATLAB үчүн Roomba орнотуу куралы
- Уюлдук түзмөк үчүн MATLAB тиркемеси
2 -кадам: Проблеманын билдирүүсү
Бизге планетанын маалыматтарын чогултууда окумуштууларга жардам берүү үчүн Марста колдонула турган роверди иштеп чыгуу үчүн MATLABты колдонуу тапшырылган. Долбоорубузда караган функциялар алыстан башкаруу, объекттердин таасирин таануу, сууну таануу, жашоону таануу жана сүрөттү иштетүү болгон. Бул жетишкендиктерге жетүү үчүн, биз iRobotтун Create2 Roomba көптөгөн функцияларын башкаруу үчүн Roomba инструменттер кутусунун буйруктарын колдонуп код алдык.
3 -кадам: Bluetooth Алыстан башкаруу
Бул слайд смартфонуңуздун Bluetooth мүмкүнчүлүктөрүн колдонуп Roombанын кыймылын көзөмөлдөө үчүн кодду аралап өтөт. Баштоо үчүн MATLAB тиркемесин смартфонуңузга жүктөп алып, Mathworks эсебиңизге кириңиз. Киргенден кийин, "көбүрөөк", "жөндөөлөргө" өтүңүз жана компьютериңизге анын IP дарегин колдонуп туташыңыз. Туташкандан кийин, "көбүрөөккө" кайтып, "сенсорлорду" тандаңыз. Экрандын жогорку панелиндеги үчүнчү сенсорго тийип, жана баштоону таптаңыз. Эми, смартфонуңуз алыстан башкаруу!
Код төмөнкүчө:
ал эми 0 == 0
тындыруу (.5)
PhoneData = M. Orientation;
Azi = PhoneData (1);
Pitch = PhoneData (2);
Side = PhoneData (3);
бүдүр = r.getBampers;
if Side> 80 || Side <-80
r.stop
r.beep ('C, E, G, C^, G, E, C')
тыныгуу
elseif Side> 20 && Side <40
r.turnAngle (-5);
elseif Side> 40
r.turnAngle (-25);
elseif Side-40
r.turnAngle (5);
elseif Side <-40
r.turnAngle (25);
аяктоо
эгер Pitch> 10 && Pitch <35
r.moveDistance (.03)
elseif Pitch> -35 && Pitch <-10
r.moveDistance (-. 03)
аяктоо
аяктоо
4 -кадам: таасирди таануу
Биз ишке ашырган дагы бир функция - бул Roombанын объектке тийгизген таасирин аныктоо, андан кийин анын азыркы жолун оңдоо. Бул үчүн бампер сенсорлорунун көрсөткүчтөрү менен шарттуу нерселерди колдонуп, бир нерсенин урулганын аныктоого туура келди. Эгерде робот бир нерсеге урунса, ал 2 метр артка жылат жана кайсы бамперге тийгенин аныктаган бурчта айланат. Бир нерсе урулганда, меню "уф" деген сөздү көрсөтөт.
Код төмөндө көрсөтүлгөн:
ал эми 0 == 0
бүдүр = r.getBampers;
r.setDriveVelocity (.1)
эгер шишиктер.солго == 1
msgbox ('Ой!');
r.moveDistance (-0.2)
r.setTurnVelocity (.2)
r.turn (-35)
r.setDriveVelocity (.2)
elseif bumps.front == 1
msgbox ('Ой!');
r.moveDistance (-0.2)
r.setTurnVelocity (.2)
r.turnAngle (90)
r.setDriveVelocity (.2)
elseif bumps.right == 1
msgbox ('Ой!');
r.moveDistance (-0.2)
r.setTurnVelocity (.2)
r.turnAngle (35)
r.setDriveVelocity (.2)
elseif bumps.leftWheelDrop == 1
msgbox ('Ой!');
r.moveDistance (-0.2)
r.setTurnVelocity (.2)
r.turn (-35)
r.setDriveVelocity (.2)
elseif bumps.rightWheelDrop == 1
msgbox ('Ой!');
r.moveDistance (-0.2)
r.setTurnVelocity (.2)
r.turnAngle (35)
r.setDriveVelocity (.2)
аяктоо
аяктоо
5 -кадам: Жашоону таануу
Биз анын алдындагы нерселердин түстөрүн окуу үчүн жашоону таануу системасын коддоштурдук. Биз коддогон жашоонун үч түрү - бул өсүмдүктөр, суу жана келгиндер. Бул үчүн биз сенсорлорго кызыл, көк, жашыл же актын орточо маанилерин эсептөө үчүн код койдук. Бул баалуулуктар камера карап жаткан түстү аныктоо үчүн кол менен коюлган чектерге салыштырылды. Код ошондой эле объектинин жолун түзүп, карта түзмөк.
Код төмөнкүчө:
t = 10;
i = 0;
ал эми t == 10
img = r.getImage; imshow (img)
тындыруу (0.167)
i = i + 1;
red_mean = орточо (орточо (img (:,,:, 1))));
blue_mean = орточо (орточо (img (:,,, 3))));
green_mean = орточо (орточо (img (:,,: 2))));
white_mean = (blue_mean + green_mean + red_mean) / 3; %бул бааны болжол менен 100гө чейин каалашат
nine_plus_ten = 21;
green_threshold = 125;
blue_threshold = 130;
white_threshold = 124;
red_threshold = 115;
байхад nine_plus_ten == 21 %жашыл - жашоо
эгер жашыл_ман> жашыл_шеги && көк_манасы <көк_босо && кызыл_манасы <кызыл_босго
r.moveDistance (-. 1)
a = msgbox ('мүмкүн болгон жашоо булагы табылды, жайгашкан жери');
пауза (2)
жок кылуу (а)
[y2, Fs2] = аудио окуу ('z_speak2.wav');
үн (y2, Fs2)
пауза (2)
%өсүмдүк = r.getImage; %imshow (өсүмдүк);
%үнөмдөө ('plant_img.mat', өсүмдүк ');
%участкасынын жашыл түсү
i = 5;
тыныгуу
башка
nine_plus_ten = 19;
аяктоо
аяктоо
nine_plus_ten = 21;
nine_plus_ten == 21 %көк - woder
эгер blue_mean> blue_ босого && green_mean <green_threshold && white_mean <white_threshold && red_mean <red_threshold
r.moveDistance (-. 1)
a = msgbox ('суу булагы табылды, жайгашкан жери пландалган');
пауза (2)
жок кылуу (а)
[y3, Fs3] = аудио окуу ('z_speak3.wav');
үн (y3, Fs3);
%woder = r.getImage; %imshow (woder)
%үнөмдөө ('water_img.mat', woder)
%участогунун жайгашкан жери көк
i = 5;
тыныгуу
башка
nine_plus_ten = 19;
аяктоо
аяктоо
nine_plus_ten = 21;
байхад nine_plus_ten == 21 %ак - келгиндер monkaS
if white_mean> white_ босого && blue_mean <blue_threshold && green_mean <green_threshold
[y5, Fs5] = аудио окуу ('z_speak5.wav');
үн (y5, Fs5);
пауза (3)
r.setDriveVelocity (0,.5)
[ys, Fss] = audioread ('z_scream.mp3');
үн (ys, Fss);
пауза (3)
r.stop
% келгин = r.getImage; %imshow (келгин);
% сактоо ('alien_img.mat', келгин);
i = 5;
тыныгуу
башка
nine_plus_ten = 19;
аяктоо
аяктоо
эгер мен == 5
a = 1; %бурулуш бурчу
t = 9; %чоң циклди токтотот
i = 0;
аяктоо
аяктоо
6 -кадам: Run
Бардык код жазылгандан кийин, баарын бир файлга жана voilaга бириктириңиз! Сиздин Roomba ботуңуз азыр толугу менен иштейт жана жарнамалангандай иштейт! Бирок, Bluetooth көзөмөлү өзүнчө файлда болушу керек же коддун калган бөлүгүнөн %% менен ажыратылышы керек.
Роботту колдонуудан ырахат алыңыз !!
Сунушталууда:
Roomba -ны Mars Roverге айландыруу: 5 кадам
Roombaңызды Mars Roverге айлантуу:
Roomba Bot Bulider: 5 кадам (Сүрөттөр менен)
Roomba Bot Bulider: Bot Builder - бул " кармагычтар менен " фронтко бекитилген нерселер айланасында кыймылдай алат. Анын коду чычкандын бир чыкылдатуусу менен башкара турган GUI кутусу менен биринчи кыймылды жазууга коюлган. Афте
MATLAB көзөмөлдөгөн Roomba: 5 кадам
MATLAB Controlled Roomba: Бул долбоордун максаты MATLAB, ошондой эле өзгөртүлгөн iRobot программалуу роботту колдонуу. Биздин топ коддоо жөндөмүбүздү бириктирип, iRobotтун көптөгөн функцияларын колдонгон MATLAB сценарийин, анын ичинде жар жарак сенсорлорун, бампер сенсорун
Марс Roomba долбоору UTK: 4 кадам
Mars Roomba Project UTK: DISCLAIMER: БУЛ ГАНА ИШТЕЙТ, эгер РОМБА АРКАНДАЙ ЖОЛДО ОРНОТУЛСА, БУЛ НАСААТ ТЕННИСИ СТУДЕНТТЕР УНИВЕРСИТЕТИ ЖАНА КОЛДОНУУ ҮЧҮН КОЛДОНУЛГАН. жазылган жана
Марс чалгындоо роботу: 4 кадам
Марс чалгындоо роботу: Бул көрсөтмө Марс чалгындоо роботун программалоо жана буйрук берүү үчүн этап-этабы менен көрсөтмө болуп саналат. Баштоо үчүн, төмөнкү материалдардын тизмесин алуу керек: Заряддалган iRobot, Тикин университетинин Онинг Университети