Мазмуну:
- 1 -кадам: материалдар
- 2 -кадам: Туташуу
- 3 -кадам: Логикалык түрдө сенсорлорду колдонуу үчүн MATLAB кодун түзүү
- 4 -кадам: Кодду жана роботту тестирлөө
- 5 -кадам: катаны таануу
- 6 -кадам: Жыйынтык
Video: Roomba Parking Pal: 6 кадам
2024 Автор: John Day | [email protected]. Акыркы өзгөртүү: 2024-01-30 10:41
Бул долбоордо iRobot Create программалуу Roomba, MATLAB r2018a жана MATLAB mobile колдонулат. Бул үч каражатты жана коддоо боюнча билимибизди колдонууда биз iRobot Createти түстөрдү чечмелөө үчүн программалап, тапшырмаларды аткаруу үчүн борттогу сенсорлорду колдондук. Бул долбоорлор бул тапшырмаларды аткаруу үчүн Raspberry Pi жана MATLAB байланышына көз каранды.
1 -кадам: материалдар
1. iRobot Robot түзүү
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 toolbox, ошондой эле MATLAB мобилдик куралдар кутусун колдонот. Бул мисалда колдонулган Roomba 26 катары белгиленет жана r = roomba (26) бир гана жолу Roomba менен толук байланышуу үчүн иштетилиши керек.
Код:
паркассист (x) функциясы, эгерде x == 1
r = Roomba (26) % Roomba менен туташат
чын болсо
r.setDriveVelocity (.05,.05) % жай айдоо ылдамдыгына Roomba орнотот
bump = r.getBampers % дөмпөк сенсорлорунан маалыматтарды алат
cliff = r.getCliffSensors % жарды сенсорлордон маалыматтарды алат
light = r.getLightBampers % жарык сокку сенсорлорунан маалыматтарды алат
img = r.getImage;% роботтун камерасын окуйт
red_mean = орточо (орточо (img (:,:, 1))) % кызыл пикселдердин орточо суммасын окуйт
green_mean = орточо (орточо (img (:,:, 2))) % жашыл пикселдердин орточо суммасын окуйт
blue_mean = орточо (орточо (img (:,:, 3)))) % көк пикселдердин орточо суммасын окуйт
if 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) % Roomba артка белгиленген аралыкты ырды жылдырат 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) % Roomba'ны белгиленген аралыкка артка жылдырат
r.turnAngle (-35) % бөлмө 35 градуска айланат
break %учурдагы циклди аяктайт
elseif cliff.rightFront <2500 && cliff.leftFront <2500 %жардын эки сенсорун окуйт
r.moveDistance (-0.1) % Roomba'ны белгиленген аралыкка артка жылдырат
r.turnAngle (-80) %бөлмө 80 градуска айланат
break % учурдагы циклди аяктайт
башка убакыт> = 3
r.stop %Roomba токтойт
contin = questdlg ('Бекет бекер, Уланта бересизби?', 'Унаа токтотуучу жардамчынын билдирүүсү') %, эгер Contin == 'Ооба' болсо, Roomba улантууну сурайт.
r.turnAngle (-90) % бөлмө 90 градуска айланат
parkassist (1) %функцияны кайра баштайт
башка
r.stop % бөлмө ишин токтотот
аяктоо
башка
аяктоо
аяктоо
elseif cliff.rightFront <2500 && cliff.leftFront <2500 %жардын эки сенсорун окуйт
r.moveDistance (-0.1) %Roomba'ны белгиленген аралыкка артка жылдырат
r.turnAngle (-90) %бөлмө 90 градуска айланат
elseif cliff.rightFront <2500 %туура жардын сенсорун окуйт
r.turnAngle (-5) %бир аз бөлмөнү жардын сенсорунун карама-каршы жагына бурат
elseif cliff.leftFront <2500 %сол жардын сенсорун окуйт
r.turnAngle (5) %RoomBa'ны жардын сенсорунун карама -каршы жагына бир аз бурат
башка
аяктоо
аяктоо
аяктоо
4 -кадам: Кодду жана роботту тестирлөө
Код иштелип чыккандан кийин, кийинки кадам кодду жана роботту сыноо болду. Роботтун бурулуу бурчу, кыймылынын ылдамдыгы жана ар бир түстүн босогосу сыяктуу коддо ар кандай түзөтүүлөр көп болгондуктан, бул баалуулуктарды робот үчүн аныктоонун эң жакшы жолу - бул тест алар жана сиз барган сайын өзгөрөт. Биз өткөргөн ар бир иш күнү үчүн биз бул баалуулуктарды дайыма өзгөртүп турчубуз, анткени алардын айрымдары сиздин робот иштеп жаткан чөйрөгө таянат. Биз тапкан эң жакшы жол - бул бөлмөнүн бөлмөсүн сиз каалаган жолго салуу жана ээ болуу. камера сиз каалабаган түстөрдү аныктай албашы үчүн жетишерлик бийик тоскоолдук. Кийинки кадам - бул тапшырманы аткарышын каалаганда, аны иштетүүгө жана каалаган түстөрдү көрсөтүүгө уруксат берүү. Барып жатып, эгер сиз кандайдыр бир маселени көрсөңүз, анда эң жакшы нерсе - алдыңкы бамперди токтотуп, ичине түртүп коюу, анда сиз көйгөйгө туш болгон параметрди өзгөртүңүз.
5 -кадам: катаны таануу
Ар бир долбоор аяктаганда, ар дайым ката булактары бар. Биз үчүн, биз роботтун бурулуу бурчу так эмес экени менен ката кетирдик, андыктан 45 градуска бурууну айтсаңыз, ал так болбойт. Биз үчүн дагы бир ката булагы кээде роботтун иштебей калышы жана кайра иштебей туруп, аны кайра баштапкы абалга келтирүү болду. Биз үчүн катанын негизги акыркы булагы ошол эле код ар кандай роботторго бирдей таасирин тийгизбейт, андыктан чыдамдуу болуп, ошого жараша тууралашыңыз керек болот.
6 -кадам: Жыйынтык
Эми сизде Roomba менен ойноо үчүн бардык куралдар бар, демек сиз каалаган максаттарга жетүү үчүн каалаган учурда кодду башкара аласыз. Бул сиздин күнүңүздүн эң сонун бөлүгү болушу керек, андыктан көңүл ачып, коопсуз айдагыла!
Сунушталууда:
Arduino Car Reverse Parking Alert System - Кадамдар: 4 кадам
Arduino Car Reverse Parking Alert System | Кадамдар: Бул долбоордо мен Arduino UNO жана HC-SR04 Ultrasonic Sensor колдонуп, жөнөкөй Arduino Car Reverse Parking Sensor Circuit долбоорун түзөм. Бул Arduino негизделген Car Reverse эскертүү тутуму Автономдуу Навигация, Робот Аралыгы жана башка диапазондо колдонулушу мүмкүн
IoT негизделген Smart Parking System NodeMCU ESP8266 колдонуп: 5 кадам
NodeMCU ESP8266 колдонулган IoT негизделген акылдуу паркинг системасы: Учурда бош эмес жерлерде унаа токтотуучу жайларды табуу абдан кыйын жана онлайнда унаа токтотуучу жайдын чоо -жайын билүү системасы жок. Телефонуңузга унаа токтоочу жайдын бар экендиги тууралуу маалыматты ала алаарыңызды элестетип көрүңүз жана сизде текшерүү үчүн роуминг жок болсо
Roomba -ны Mars Roverге айландыруу: 5 кадам
Roombaңызды Mars Roverге айлантуу:
Arduino Smart Parking: 4 кадам
Arduino Smart Parking: Bill Blankenship, Willam Bailey, Hannah Hargrove Arduino тактасын колдонуу менен биздин топ жарык сенсорлоруна унаа бош турган жерди же боштукту аныктоого мүмкүндүк бере турган системаны түзүүгө жетишти. Алтымыш сегиз саптан кийин, биз
MIDI Pod-Pal: 4 кадам
MIDI Pod-Pal: *** UPDATE 4/22/'21 ****** Мен курулушка жардам берүү үчүн зымдардын баарын көрсөткөн толук схеманы коштум. *** Мен күлкүлүү суммага кирбейм курулуш бөлүгүнүн тереңдигинде, менин ниетим Arduino негизделген MIди куруунун дагы бир мисалын көрсөтүү болчу