Мазмұны:
- 1 -қадам: материалдар
- 2 -қадам: Қосылу
- 3 -қадам: датчиктерді пайдалану үшін логикалық түрде MATLAB кодын құру
- 4 -қадам: Код пен роботты тексеру
- 5 -қадам: қатені тану
- 6 -қадам: Қорытынды
Бейне: Roomba тұрағы: 6 қадам
2024 Автор: John Day | [email protected]. Соңғы өзгертілген: 2024-01-30 10:25
Бұл жобада iRobot Create бағдарламаланатын Roomba, MATLAB r2018a және MATLAB mobile қолданылады. Осы үш ортаны және кодтау туралы білімдерімізді қолдана отырып, біз iRobot Create бағдарламасын түстерді түсіндіруге және тапсырмаларды орындау үшін борттық сенсорларды қолдануға бағдарламаладық. Бұл жобалар осы тапсырмаларды орындау үшін Raspberry Pi мен MATLAB байланысына байланысты.
1 -қадам: материалдар
1. iRobot робот құру
2. MATLAB r2018a
3. Raspberry Pi
4. Камера модулі
5. 3-D басып шығарылған камера тұрақтандырғышының тірегі
6. MATLAB ұялы телефон орнатылған
7. MATLAB орнатылған ноутбук/компьютер
2 -қадам: Қосылу
Бұл қадам Raspberry Pi -ді роботқа қосу, екіншіден роботты компьютерге қосу және смартфонды компьютерге қосу туралы.
Бұл процестің ең оңай бөлігі - Raspberry Pi -ді сіздің роботқа қосу, себебі Raspberry Pi роботтың жоғарғы жағына орнатылған. Роботтың сымы бар, ол үшін Raspberry Pi -нің жағына жалғау жеткілікті.
Келесі қадам - роботты компьютерге қосу, осылайша сіз роботты орындау үшін командаларды орындай аласыз. Сіз істеу керек бірінші нәрсе - сіздің компьютеріңізді Roomba жасайтын сымсыз желіге қосу. Енді MATLAB -тен Roomba құралдар тақтасындағы функцияларды пайдалану үшін жолды орнату үшін MATLAB -та Жолды орнату белгішесін пайдалану ұсынылады. Сіз роботты қолдануды бастаған және аяқтаған сайын роботты «екі саусақпен сәлемдесу» режимін қалпына келтіруіңіз керек, бұл жарықтың түсуін көрсететін жарық сөнгенше қондыру және нүкте түймелерін он секунд ұстап тұрыңыз. Егер сіз роботтың қысқа масштабта ойнайтынын естіген болсаңыз, сіз бұл қалпына келтіруде сәтті болдыңыз. Содан кейін сіз «r = roomba (x)» сияқты код жолын қолданып, Roomba -ға қосылуыңыз керек, мұнда 'x' - бұл сізде бар роботқа берілген нөмір.
Ақырында, сіз MATLAB ұялы телефонын осы жоба үшін қолданылатын кез келген мобильді құрылғыға жүктеуіңіз керек және бұл қосымша Android және Apple құрылғыларында қол жетімді. Бағдарлама орнатылғаннан кейін сіз тіркелгі деректерін пайдаланып кіруіңіз керек. Содан кейін сіз бұл құрылғыны «Қосымша» -> қойындысын пайдаланып компьютерге қосуыңыз керек, содан кейін «параметрлер» ->, содан кейін «Компьютер қосу» түймесін басыңыз, бұл жоғарыдағы суреттерде көрсетілген экранды шығарады. Келесі қадам - сіз сұрайтын ақпаратты қосу және тексеру. Сіз сәтті қосылғаннан кейін сіз роботты басқару үшін телефонда компьютерде анықталған функцияларды шақыра аласыз.
3 -қадам: датчиктерді пайдалану үшін логикалық түрде MATLAB кодын құру
Код көпшілігі цикл ішінде болған кезде жасаудың ең оңай жолы болады, осылайша Roomba қарайтын мәндерді үнемі жаңарта алады. Егер қате болса, MATLAB қатені көрсетеді және ол кодта пайда болады, бұл ақауларды жоюды салыстырмалы түрде қарапайым етеді.
R2018a MATLAB -та жасалған бұл код стандартты құралдар қорапшасын, iRobot Create құралдар жинағын, сондай -ақ MATLAB мобильді құралдар қорабын қолданады. Бұл мысалда пайдаланылған Roomba 26 ретінде белгіленді, ал r = roomba (26) бөлме бөлмесімен толық байланысу үшін тек бір рет іске қосылуы керек.
Код:
паркассист (x) функциясы, егер x == 1 болса
r = roomba (26) % бөлме бөлмесіне қосылады
рас болса
r.setDriveVelocity (.05,.05) % бөлме жылдамдығын баяу қозғалыс жылдамдығына орнатады.
bump = r.getBampers % деректерді соққы сенсорларынан алады
cliff = r.getCliffSensors % деректерді қиғаш сенсорлардан алады
light = r.getLightBampers % деректерді жарық соққыларынан алады
img = r.getImage;% камераны роботтан оқиды
red_mean = орташа (орташа (img (:,:, 1))) % қызыл пикселдердің орташа мөлшерін оқиды
green_mean = орташа (орташа (img (:,:, 2))) % жасыл пикселдердің орташа мөлшерін оқиды
blue_mean = орташа (орташа (img (:,:, 3)))) % көк пикселдердің орташа мөлшерін оқиды
егер bump.front == 1 %алдыңғы соққы сенсорларын оқиды
r.stop %Roomba тоқтатады
msgbox ('Path Unscured!', 'Parking Assistant Message') % жолдың жасырын екенін білдіретін хабарды көрсетеді үзіліс % циклды аяқтайды.
elseif green_mean> 150
r.stop %Roomba тоқтатады
cont = questdlg ('Жалғастыру?', 'Жол аяқталды') %жалғастыруды сұрайтын сұрақ терезесін көрсетеді
егер cont == 'Иә'
parkassist (1) %кодты қайта бастайды
басқа
Соңы
break % циклды аяқтайды
140
r.turnAngle (45) %бөлмені 45 градусқа бұрады
r.timeStart %уақыт есептегішін бастайды
рас болса
r.setDriveVelocity (.05,.05) %бөлменің жылдамдығын орнатады
time = r.timeGet %уақытты айнымалыға тағайындайды
bump = r.getBampers % деректерді соққы сенсорларынан алады
cliff = r.getCliffSensors % деректерді қиғаш сенсорлардан алады
light = r.getLightBampers % деректерді жарық соққыларынан алады
img = r.getImage;% камераны роботтан оқиды
red_mean = орташа (орташа (img (:,:, 1))) % қызыл пикселдердің орташа мөлшерін оқиды
green_mean = орташа (орташа (img (:,:, 2))) % жасыл пикселдердің орташа мөлшерін оқиды
blue_mean = орташа (орташа (img (:,:, 3)))) % көк пикселдердің орташа мөлшерін оқиды
егер blue_mean> 120
r.moveDistance (-0.01) % бөлмені белгіленген қашықтықтағы әнді артқа жылжытады Play (r, 'T400, C, D, E, F, G, A, B, C^', 'true') % көтерілетін музыкалық масштабты ойнайды
msgbox ('Су табылды!', 'Тұрақ көмекшісінің хабарламасы') % су табылды деген хабарды көрсетеді r.turnAngle (-80) % бөлмені 80 градусқа бұрады
break % ағымдағы циклды аяқтайды
elseif light.rightFront> 25 || light.leftFront> 25 %жеңіл соққы сенсорларын оқиды
r.moveDistance (-0.01) % бөлмені белгіленген қашықтыққа артқа жылжытады
r.turnAngle (-35) % бөлмені 35 градусқа бұрады
break %ағымдағы циклды аяқтайды
elseif cliff.rightFront <2500 && cliff.leftFront <2500 %жартастың екі сенсорын оқиды
r.moveDistance (-0.1) % бөлмені белгіленген қашықтыққа артқа жылжытады
r.turnAngle (-80) %бөлмені 80 градусқа бұрады
break % ағымдағы циклды аяқтайды
басқа уақыт> = 3
r.stop %Roomba тоқтатады
Contin = questdlg ('Бекет бекетінде, Жалғастыру керек пе?', 'Тұрақ көмекшісінің хабарламасы') %, егер Contin == 'Иә' болса, бөлменің жұмысын жалғастыру керектігін сұрайды.
r.turnAngle (-90) % бөлмені 90 градусқа бұрады
паркассист (1) %функцияны қайта қосады
басқа
r.stop % бөлмені тоқтатады
Соңы
басқа
Соңы
Соңы
elseif cliff.rightFront <2500 && cliff.leftFront <2500 %жартастың екі сенсорын оқиды
r.moveDistance (-0.1) %бөлмені белгіленген қашықтыққа артқа жылжытады
r.turnAngle (-90) %бөлмені 90 градусқа бұрады
elseif cliff.rightFront <2500 %дұрыс қиғаш сенсорды оқиды
r.turnAngle (-5) %бөлмені қиғаш сенсорға қарама-қарсы бағытта сәл бұрады
elseif cliff.leftFront <2500 %сол жақ қиғаш сенсорды оқиды
r.turnAngle (5) %бөлмені қиғаш сенсорға қарама -қарсы бағытта сәл бұрады
басқа
Соңы
Соңы
Соңы
4 -қадам: Код пен роботты тексеру
Код әзірленгеннен кейін келесі қадам код пен роботты тексеру болды. Кодта роботтың бұрылу бұрышы, қозғалу жылдамдығы және әр түстің табалдырығы сияқты көптеген түрлі түзетулер енгізуге болатындықтан, сіздің робот үшін бұл мәндерді анықтаудың ең жақсы әдісі - тест. олар барады және өзгереді. Біз өткізген әрбір жұмыс күні үшін біз үнемі осы құндылықтарды өзгертіп отырдық, өйткені олардың кейбіреулері сіздің робот жұмыс істейтін ортаға сүйенеді. Біз тапқан ең жақсы әдіс - бөлмені өзіңіз қалаған жолға қою. камера сіз қаламайтын түстерді анықтай алмайтындай жоғары кедергі. Келесі қадам - бұл тапсырманы орындауды қалаған кезде оны іске қосуға және қалаған түстерді көрсетуге мүмкіндік беру. Сіз бара жатқанда, егер сіз мәселені көрсеңіз, ең жақсы нәрсе - алдыңғы бамперді итеріп, оны тоқтатыңыз, содан кейін сізде қиындық туындаған параметрді өзгертіңіз.
5 -қадам: қатені тану
Әр жоба аяқталған кезде әрқашан қате көздері болады. Біз үшін роботтың бұрылу бұрышы дәл емес екендігі туралы қателік болды, сондықтан егер сіз оған 45 градусқа бұрылуды айтсаңыз, ол дәл болмайды. Біз үшін қатенің тағы бір көзі - кейде роботтың дұрыс жұмыс істемеуі және оны қайтадан жұмыс жасамас бұрын оны қалпына келтіру қиын болды. Біз үшін қатенің негізгі соңғы көзі сол код әр түрлі роботтарға бірдей әсер етпейді, сондықтан оған шыдамдылық танытып, сәйкесінше реттеу қажет болуы мүмкін.
6 -қадам: Қорытынды
Енді сізде комбинациямен ойнауға арналған барлық құралдар бар, бұл сіз қалаған мақсатқа жету үшін кез келген жағдайда кодты басқара алатындығыңызды білдіреді. Бұл сіздің күніңіздің ең жақсы бөлігі болуы керек, сондықтан көңілді жүріңіз және қауіпсіз көлік жүргізіңіз!
Ұсынылған:
Roomba Bot Bulider: 5 қадам (суреттермен)
Roomba Bot Bulider: Bot Builder - бұл бөлме бөлмесі, ол " ұстаушылармен " алдыңғы жағына бекітілген заттар заттарды айналдыра алады. Ондағы код GUI терезесімен бірінші қозғалысты жазуға арналған, оны тінтуірдің бір рет басуымен басқаруға болады. Кейін
MATLAB басқарылатын Roomba: 5 қадам
MATLAB басқарылатын Roomba: Бұл жобаның мақсаты - MATLAB, сонымен қатар өзгертілген iRobot бағдарламаланатын роботы. Біздің топ iRobot -тың көптеген функцияларын қолданатын MATLAB сценарийін құру үшін кодтау дағдыларымызды біріктірді, соның ішінде жартасты сенсорлар, бампер сенсоры
Марс Roomba жобасы UTK: 4 қадам
Mars Roomba Project UTK: Жауапкершіліктен бас тарту: бұл тек жұмыс істейтін болады, егер робма әр түрлі жағдайда орнатылса, бұл нұсқаулық ТЕННЕСУЛАР УНИВЕРСИТЕТІ ЖӘНЕ ПАЙДАЛАНУҒА АРНАЛҒАН, бұл бөлмеде жергілікті код орнатылған. жазылған және
Roomba Explorer: 4 қадам
Roomba Explorer: MATLAB және iRobot -тың Create2 роботын қолдану арқылы бұл жоба белгісіз жердің әр түрлі аймақтарын зерттейді. Біз қауіпті рельефте маневр жасау үшін роботтағы сенсорларды қолдандық. Raspberry Pi -ден фотосуреттер мен бейнелер алу арқылы
Браузер басқаратын Roomba роботы Raspberry Pi Model 3 A+: 6 қадам (суреттермен)
Браузер бақылайтын Roomba роботы Raspberry Pi 3 A+үлгісімен: Шолу Бұл нұсқаулықта өлі Roomba -ға жаңа ми (Raspberry Pi), көз (веб -камера) және барлығын веб -браузерден қалай басқаруға болатындығы туралы айтылады. Сериялық интерфейс арқылы басқаруға мүмкіндік беретін Roomba хактары көп. Мен істеген жоқпын