Мазмуну:

AI LEGO EV3 Maze-Driving Robot: 13 кадам
AI LEGO EV3 Maze-Driving Robot: 13 кадам

Video: AI LEGO EV3 Maze-Driving Robot: 13 кадам

Video: AI LEGO EV3 Maze-Driving Robot: 13 кадам
Video: Как охотиться на людей ► 1 Прохождение Manhunt (PS2) 2024, Июль
Anonim
Image
Image
Лабиринт кантип чечилет
Лабиринт кантип чечилет

Бул кандайдыр бир жасалма интеллектке ээ, жөнөкөй, автономдуу робот. Бул лабиринтти изилдөө жана кире беришке кайра жайгаштырылганда, чыгууга чейин баруу жана туюк жерлерден качуу үчүн иштелип чыккан. Бул менин мурунку проектиме караганда алда канча татаал, ал лабиринт аркылуу жөнөдү. Бул жерде робот басып өткөн жолун эстеп, туюк жерлерди алып салып, жаңы жолду сактап, анан жаңы жолго түшүшү керек.

Менин мурунку роботум бул жерде сүрөттөлгөн:

Робот LEGO Mindstorms EV3 жардамы менен курулган. EV3 программасы компьютерде иштейт жана программаны түзөт, андан кийин EV3 кыш деп аталган микроконтроллерге жүктөлөт. Программалоо ыкмасы иконаларга негизделген жана жогорку деңгээлде. Бул абдан жеңил жана ар тараптуу.

Жабдуулар

БӨЛҮКТӨР

  1. LEGO Mindstorms EV3 топтому
  2. LEGO Mindstorms EV3 УЗИ сенсору. Бул EV3 топтомуна киргизилген эмес.
  3. Лабиринт үчүн гофр картон. Эки картон жетиштүү болушу керек.
  4. Кичине жука картон кээ бир бурчтарды жана дубалдарды турукташтырууга жардам берет.
  5. Картон кесимдерин бириктирүү үчүн клей жана лента.
  6. Лабиринттин чыгышын аныктоо үчүн кызыл куттуктоо баракчасы.

КУРАЛДАР

  1. Картон кесүү үчүн пайдалуу бычак.
  2. Болот сызгыч кесүү процессине жардам берет.

ПРОГРАММА

Программа бул жерде:

1 -кадам: лабиринт кантип чечилет

MAZE-АЙДОО ЫКМАСЫ

Лабиринтте чабыттоонун бир нече ыкмалары бар. Эгер сиз аларды изилдөөгө кызыкдар болсоңуз, алар төмөнкү Википедия макаласында абдан жакшы сүрөттөлгөн:

Мен сол жактагы дубалды ээрчүү ыкмасын тандадым. Идея робот лабиринттен өтүп баратканда төмөнкү чечимдерди кабыл алуу менен дубалды сол капталында кармап турат:

  1. Эгерде солго бурулушу мүмкүн болсо, анда муну жасаңыз.
  2. Болбосо, мүмкүн болсо түз барыңыз.
  3. Эгерде ал солго же түз бара албаса, мүмкүн болсо, оңго буруңуз.
  4. Эгерде жогоруда айтылгандардын бири да мүмкүн болбосо, бул туюк болуш керек. Айлануу.

Бир сактык, лабиринтте илмек болсо, бул ыкма ишке ашпай калышы мүмкүн. Укуруктун жайгашуусуна жараша, робот айланып, айланып жүрө бермек. Бул көйгөйдүн мүмкүн болгон чечими, роботтун бир циклде бара жатканын түшүнсө, оң колу менен дубал ээрчиген эрежеге өтүшү болмок. Мен бул тактоону долбоорума кошкон жокмун.

ТУЗ ЖОЛДУ ТАБУУ МАЗАЗАСЫН ЧЕЧҮҮ

Лабиринтте баратып робот жүрүп бара жаткан жолду жаттап, туюк жерлерди жок кылышы керек. Бул муну ар бир бурулушту жана кесилиштерди массивде сактоо, бурулуштар менен кесилиштердин белгилүү айкалыштарын текшерүү жана туюкту камтыган айкалыштарды алмаштыруу аркылуу ишке ашырат. Бурулуштардын жана кесилиштердин акыркы тизмеси лабиринттен өткөн түз жол.

Мүмкүн болгон бурулуштар: Солго, Оңго, Артка (туюкта) жана Түз (бул кесилиш).

Комбинациялар төмөнкүчө алмаштырылат:

  • "Солго, Артка, Солго" "Түз" болуп калат.
  • "Солго, Артка, Оңго" "Артка" айланат.
  • "Солго, Артка, Түз" "Оңго" айланат.
  • "Оңго, Артка, Солго" "Артка" айланат.
  • "Түз, Артка, Солго" "Оңго" айланат.
  • "Түз, Артка, Түз" "Артка" айланат.

РОБОТ КАНТИП менин лабиринамды башкарат

  1. Робот айдай баштаганда оң жагындагы боштукту көрөт жана массивдеги тизмеде Straightти сактайт.
  2. Андан кийин ал солго бурулуп, Солго тизмеге кошот. Тизмеде азыр камтылган: Түз, Сол.
  3. Туюк менен, ал артка бурулуп, кайра тизмеге кошулат. Тизмеде азыр камтылган: Түз, Сол, Артка.
  4. Кире бериштен колдонгон тилкеден өтүп, тизмеге Түз кошулат. Тизмеде азыр камтылган: Түз, Сол, Артка, Түз. Бул айкалышты тааныйт жана Солго, Артка, Түздөн Оңго өзгөртөт. Тизмеде азыр түз, оң бар.
  5. Туюк менен, ал артка бурулуп, кайра тизмеге кошулат. Тизмеде азыр бар: Түз, Оңго, Артка.
  6. Сол бурулгандан кийин тизмеде Түз, Оң, Арт, Сол бар. Бул айкалышты тааныйт жана Оңго, Артка, Солдон Артка өзгөрөт. Тизмеде азыр түз, артка камтылган.
  7. Кийинки солго бурулгандан кийин тизмеде Түз, Артка, Солго бар. Бул оң комбинацияны өзгөртөт. Тизмеде азыр бир гана Укук бар.
  8. Ал боштукту өткөрүп, түз тизмеге кошот. Тизмеде азыр Оң, Түз бар.
  9. Оңго бурулгандан кийин тизмеде түз, туура, туура, оң бар.

2 -кадам: Роботту программалоодо эске алуу

КАНДАЙ МИКРОКОНТРОЛЬЕРГЕ КАРОО

Робот бурулууну чечкенде, ал кең бурулуш жасашы керек, же бурулганга чейин жана бурулгандан кийин сенсорду текшербестен, кыска аралыкка кайра алдыга жылуу керек. Биринчи кыска аралыктын себеби - робот бурулуштан кийин дубалга урунбашы керек, экинчи кыска аралыктын себеби - робот бурулгандан кийин сенсор жаңы келген боштукту көрмөк., жана робот кайра бурулушу керек деп ойлойт, бул туура эмес.

Робот оң жактагы кесилишти сезгенде, бирок бул оңго бурулуш эмес, мен роботтун сенсорлорун текшербестен, 25 дюймга жакын алдыга жылдырганы жакшы экенин байкадым.

LEGO MINDSTORMS EV3 КӨРСӨТМӨЛӨРҮ

LEGO Mindstorms EV3 абдан ар тараптуу болгону менен, бир кирпичке туташтырылган сенсорлордун ар бир түрүнөн көп эмес. Эки же андан көп кирпич чынжырлуу болушу мүмкүн, бирок мен башка кирпич сатып алгым келбеди, ошондуктан мен төмөнкү сенсорлорду (үч ультрадыбыштуу сенсордун ордуна) колдондум: инфракызыл сенсор, түстүү сенсор жана УЗИ сенсору. Бул жакшы иштеди.

Бирок түстүү сенсордун өтө кыска диапазону бар, болжол менен 2 дюйм (5 см), бул төмөндө сүрөттөлгөндөй бир нече өзгөчө ойлорду алып келет:

  1. Түс сенсору алдыдагы дубалды аныктап, робот оңго же артка бурулууну чечкенде, дубалга урунбастан бурула турган орун берүү үчүн, биринчи кезекте артка кайтуусу керек.
  2. Кээ бир "Түз" кесилиштерде татаал маселе пайда болот. Түс сенсорунун диапазону кыска болгондуктан, робот туура "Түз" кесилишти же оңго бурулушту сезе аларын аныктай албайт. Мен робот бир сезген сайын тизмеде "Түздү" сактоо программасын коюп, андан кийин тизмеде бир нече "Түздү" жок кылып, бул маселени чечүүгө аракет кылдым. Бул оң бурулуш лабиринттеги "Түздөн" кийинки абалды жөнгө салат, бирок анын алдында "Түз" жок оң бурулуш болгон кырдаалды эмес. Мен ошондой эле "Оңго" чейин болсо, "Түздү" жок кылуу программасын орнотууга аракет кылдым, бирок оң бурулуш "Түздөн" кийин иштебейт. Мен бардык учурларга ылайыктуу чечим таба алган жокмун, бирок робот басып өткөн аралыкты карап (мотордун айлануу сенсорлорун окуп) жана анын "Түз" же туура экендигин чечиши мүмкүн деп ойлойм буруу Бул татаалдык бул долбоордо AI түшүнүгүн көрсөтүү максатында жасоого татыктуу деп ойлогон эмесмин.
  3. Түстүү сенсордун артыкчылыгы - бул дубалдын күрөңү менен мен чыгууда колдонгон тосмонун кызылын айырмалап, роботко лабиринттин качан бүткөнүн чечүүнүн оңой жолу.

3 -кадам: Негизги программа

Негизги программа
Негизги программа

LEGO Mindstorms EV3 сөлөкөткө негизделген абдан ыңгайлуу программалоо ыкмасына ээ. Блоктор компьютердеги дисплей экрандын ылдый жагында көрсөтүлөт жана программаны куруу үчүн программалоо терезесине сүйрөп барып таштап койсо болот. EV3 Кирпич компьютерге USB кабели, Wi-Fi же Bluetooth аркылуу туташтырылышы мүмкүн, андан кийин программа компьютерден Кирпичке жүктөлүп алынышы мүмкүн.

Программа негизги программадан жана бир нече "Менин блокторумдан" турат, алар чакан программалар. Жүктөлүп берилген файлда программаны толугу менен камтыйт:

Негизги программанын кадамдары төмөнкүчө:

  1. Кезек саноочу өзгөрмөнү жана массивди аныктоо жана инициализациялоо.
  2. 5 секунд күтө туруңуз жана "Бар" деп айтыңыз.
  3. Цикл баштаңыз.
  4. Лабиринттен айдап өтүңүз. Чыгууга жеткенде, цикл чыгып кетет.
  5. Кирпичтин экранында дисплей, буга чейин лабиринтте табылган кесилиштер.
  6. Жолду кыскартуу керек экенин текшериңиз.
  7. Кыскартылган жолдо кесилиштерди көрсөтүү.
  8. 4 -кадамга кайтыңыз.
  9. Укуруктан кийин түз жолго түшүңүз.

Скриншот бул негизги программаны көрсөтөт.

4 -кадам: Менин блокторум (Программалар)

Менин блокторум (Программалар)
Менин блокторум (Программалар)

Роботтун лабиринттен кантип айдаганын көзөмөлдөгөн Navigate My Block көрсөтүлөт. Басып чыгаруу өтө кичинекей жана окулбай калышы мүмкүн. Бирок бул if-операторлорунун канчалык универсалдуу жана күчтүү экенинин жакшы мисалы (LEGO EV3 тутумундагы которгучтар деп аталат).

  1. No1 жебе инфракызыл сенсор объекти белгилүү бир аралыктан алда канча алыс көрөрүн текшерүүчү которгучту көрсөтөт. Андай болсо, блоктордун жогорку сериясы аткарылат. Эгер андай болбосо, анда көзөмөл чоң жуп блокторго өткөрүлүп берилет, ал жерде #2 жебе жайгашкан.
  2. 2 -жебе түс сенсорунун кандай түстө экенин текшерүүчү которгучту көрсөтөт. 3 учур бар: үстүндө түс жок, ортосунда кызыл, асты күрөң.
  3. №3 эки жебе УЗИге туташат, алар ультрадыбыштуу сенсор белгилүү бир аралыктан алысыраак объектти көрүп жатканын текшерет. Андай болсо, блоктордун жогорку сериясы аткарылат. Болбосо, анда башкаруу блоктордун төмөнкү сериясына өтөт.

Жолду кыскартуу жана түз жолду башкаруу үчүн Менин блокторум татаалыраак жана таптакыр окулбайт, ошондуктан алар бул документке кирбейт.

5 -кадам: роботту курууну баштоо: база

Роботту курууну баштоо: база
Роботту курууну баштоо: база
Роботту курууну баштоо: база
Роботту курууну баштоо: база

Мурда да айтылгандай, LEGO Mindstorms EV3 бир кирпичке туташкан сенсордун ар бир түрүнөн ашпоого мүмкүндүк берет. Мен төмөнкү сенсорлорду (үч УЗИ сенсорунун ордуна) колдондум: инфракызыл сенсор, түстүү сенсор жана УЗИ сенсору.

Төмөндөгү сүрөттөрдүн жуптары роботту кантип жасоону көрсөтөт. Ар бир жуптун биринчи сүрөтү керектүү бөлүктөрдү көрсөтөт, ал эми экинчи сүрөттө ошол эле бөлүктөр бири -бири менен байланышкан.

Биринчи кадам көрсөтүлгөн бөлүктөрдү колдонуу менен роботтун базасын куруу болуп саналат. Робот базасы өйдө каратып көрсөтүлгөн. Роботтун арт жагындагы кичинекей L формасындагы бөлүк далыга таяныч болуп саналат. Ал робот жылган сайын жылат. Бул жакшы иштейт. EV3 комплектинде тоголок шар түрүндөгү бөлүк жок.

6 -кадам: базанын үстү, 1

Базанын үстү, 1
Базанын үстү, 1
Базанын үстү, 1
Базанын үстү, 1

Бул кадам жана кийинки 2 кадам роботтун негизинин үстү үчүн, түстүү сенсор жана кабелдер, алар баары 10 дюймдук (26 см) кабелдер.

7 -кадам: базанын чокусу, 2

Базанын үстү, 2
Базанын үстү, 2
Базанын үстү, 2
Базанын үстү, 2

8 -кадам: базанын чокусу, 3

Базанын үстү, 3
Базанын үстү, 3
Базанын үстү, 3
Базанын үстү, 3

9 -кадам: Инфракызыл жана УЗИ сенсорлору

Инфракызыл жана УЗИ сенсорлору
Инфракызыл жана УЗИ сенсорлору
Инфракызыл жана УЗИ сенсорлору
Инфракызыл жана УЗИ сенсорлору

Кийинки, инфракызыл сенсор (роботтун сол жагында) жана УЗИ сенсору (оңдо). Ошондой эле, кирпичти үстүнө бекитүү үчүн 4 казык.

Инфракызыл жана УЗИ сенсорлору кадимки горизонталдын ордуна тигинен жайгашкан. Бул дубалдардын бурчтарын же учтарын жакшыраак аныктоону камсыздайт.

10 -кадам: Кабелдер

Кабелдер
Кабелдер

Кабелдер Кирпичке төмөнкүчө туташат:

  • Порт В: сол чоң мотор.
  • Порт С: оң чоң мотор.
  • Порт 2: УЗИ сенсор.
  • Порт 3: түстүү сенсор.
  • 4 -порт: инфракызыл сенсор.

11 -кадам: Роботту куруунун акыркы кадамы: Декорация

Роботту куруунун акыркы кадамы: Декорация
Роботту куруунун акыркы кадамы: Декорация
Роботту куруунун акыркы кадамы: Декорация
Роботту куруунун акыркы кадамы: Декорация

Канаттары менен сүзгүчтөрү жасалгалоо үчүн гана.

12 -кадам: лабиринт жасаңыз

Maze куруу
Maze куруу
Maze куруу
Maze куруу

Лабиринт үчүн эки гофр картон жетиштүү болушу керек. Мен лабиринттин дубалын 5 дюйм (12,5 см) бийиктикке чыгардым, бирок эгерде гофр картон жетишпей жатса, 10 дюйм (4 дюйм) ошондой иштеши керек.

Биринчиден, түбүнөн 25 дюйм (25 сантиметр) болгон картондордун дубалдарын кесип алдым. Анан дубалдын түбүн 5 дюймга тегерете кесип алдым. Бул бир нече 5 дюймдук дубалдарды камсыз кылат. Ошондой эле, стабилдүүлүк үчүн дубалдарга 2,5 дюймга жакын тирөөчтөрдү калтырып, картондордун түбүн кесип алдым.

Ар кандай бөлүктөр лабиринтти түзүү үчүн керектүү жерде кесилип, желимделип же скотч менен жазылышы мүмкүн. Каптал дубалдардын ортосунда тупик менен бүткөн жолдо 11 же 12 дюймдук (30 см) боштук болушу керек. Узундугу 25 дюймдан кем болбошу керек. Бул аралыктар роботтун айлануусу үчүн керек.

Лабиринттин кээ бир бурчтарын күчөтүү керек болушу мүмкүн, ошондой эле кээ бир түз дубалдар картон бурчун камтыса, аларды ийилүүдөн сактоо керек. Жука картондун кичинекей кесимдери көрсөтүлгөн жерлерге түбүнө жабыштырылышы керек.

Чыгышта көрсөтүлгөндөй кызыл тосмонун жарымы кызыл куттуктоо баракчасы жана 2 даана жука картондон жасалган база бар.

13 -кадам: Лабиринт

Maze
Maze

Бир сактык лабиринт чоң болбошу керек. Эгерде роботтун бурулушу туура келгенден бир аз бурчта болсо, анда бир нече бурулуштан кийин дал келбестиктер кошулат жана робот дубалга кирип кетиши мүмкүн. Мен жасаган кичинекей лабиринт аркылуу да ийгиликтүү дискке жетүү үчүн, мен бир нече жолу бурулуштардын айлануу жөндөөлөрү менен скрипка жасоого туура келди.

Бул маселени чечүүнүн жолу-роботту сол дубалдан белгилүү бир аралыкта кармап турган жолду түздөө тартибин киргизүү. Мен муну кошкон жокмун. Программа мурункудай татаал жана бул долбоордо AI түшүнүгүн көрсөтүү үчүн жетиштүү.

Жыйынтыктоочу эскертүү

Бул кызыктуу долбоор жана чоң окуу тажрыйбасы болду. Сизге да кызыктуу болот деп ишенем.

Сунушталууда: