Мазмұны:

Roomba тұрағы: 6 қадам
Roomba тұрағы: 6 қадам

Бейне: Roomba тұрағы: 6 қадам

Бейне: Roomba тұрағы: 6 қадам
Бейне: Xiaomi Mijia 1C vs Yeedi 2 Hybrid vs Dreame F9: КАКОЙ РОБОТ-ПЫЛЕСОС ЛУЧШЕ? БОЛЬШОЙ ТЕСТ! 2024, Шілде
Anonim
Roomba паркинг Пал
Roomba паркинг Пал

Бұл жобада 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 кодын құру

Сенсорларды қолдану үшін логикалық түрде MATLAB кодын құру
Сенсорларды қолдану үшін логикалық түрде 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 -қадам: Қорытынды

Енді сізде комбинациямен ойнауға арналған барлық құралдар бар, бұл сіз қалаған мақсатқа жету үшін кез келген жағдайда кодты басқара алатындығыңызды білдіреді. Бұл сіздің күніңіздің ең жақсы бөлігі болуы керек, сондықтан көңілді жүріңіз және қауіпсіз көлік жүргізіңіз!

Ұсынылған: