Агуулгын хүснэгт:

LEGO EV3 Maze-Driving Robot дахь хиймэл оюун ухаан: 13 алхам
LEGO EV3 Maze-Driving Robot дахь хиймэл оюун ухаан: 13 алхам

Видео: LEGO EV3 Maze-Driving Robot дахь хиймэл оюун ухаан: 13 алхам

Видео: LEGO EV3 Maze-Driving Robot дахь хиймэл оюун ухаан: 13 алхам
Видео: Как охотиться на людей ► 1 Прохождение Manhunt (PS2) 2024, Долдугаар сарын
Anonim
Image
Image
Maze хэрхэн шийдэгддэг вэ
Maze хэрхэн шийдэгддэг вэ

Энэ бол хиймэл оюун ухаантай энгийн, бие даасан робот юм. Энэ нь лабиринтийг судалж, үүдэнд нь буцааж байрлуулах үед гарц руу машинаар явж, мухардмал байдлаас зайлсхийх зориулалттай юм. Энэ нь төөрөгдөлд оруулсан миний өмнөх төслөөс хамаагүй илүү төвөгтэй юм. Энд робот явсан замыг санаж, мухардсан замыг арилгаж, шинэ замыг хадгалж, дараа нь шинэ замаар явах ёстой.

Миний өмнөх роботыг энд тайлбарласан болно:

Энэхүү роботыг LEGO Mindstorms EV3 ашиглан бүтээжээ. EV3 програм хангамж нь компьютер дээр ажилладаг бөгөөд програмыг үүсгэдэг бөгөөд үүнийг EV3 тоосго гэж нэрлэдэг микроконтроллерт татаж авдаг. Програмчлалын арга нь дүрс дээр суурилсан бөгөөд өндөр түвшний арга юм. Энэ нь маш хялбар бөгөөд олон талт юм.

Хангамж

ХЭСЭГ

  1. LEGO Mindstorms EV3 багц
  2. LEGO Mindstorms EV3 хэт авианы мэдрэгч. Энэ нь EV3 багцад ороогүй болно.
  3. Лабиринтэд зориулсан Атираат картон. Хоёр хайрцаг хангалттай байх ёстой.
  4. Нимгэн картон жижиг хэсэг нь зарим булан, ханыг бэхжүүлэхэд тусалдаг.
  5. Картон хэсгүүдийг хооронд нь холбох цавуу ба соронзон хальс.
  6. Maze гарцыг тодорхойлох улаан мэндчилгээний картны дугтуй.

ХЭРЭГСЭЛ

  1. Картонон хайчлах хэрэгсэл.
  2. Зүсэх үйл явцад туслах ган захирагч.

ПРОГРАММ

Хөтөлбөр энд байна:

Алхам 1: Maze хэрхэн шийдэгддэг

ГАЗАР-ЖОЛООНЫ АРГА

Төөрөмдөөгөөр аялах хэд хэдэн арга байдаг. Хэрэв та тэдгээрийг судлах сонирхолтой байгаа бол тэдгээрийг дараах Википедиа нийтлэлд маш сайн тайлбарласан болно:

Би зүүн талын хана дагах аргыг сонгосон. Энэхүү робот нь лабиринт хийхдээ дараах шийдвэрүүдийг гаргаснаар зүүн талд хана барих болно гэсэн санаа юм.

  1. Хэрэв зүүн тийш эргэх боломжтой бол үүнийг хий.
  2. Үгүй бол боломжтой бол шууд яв.
  3. Хэрэв энэ нь зүүн эсвэл шууд явж чадахгүй бол боломжтой бол баруун тийш эргэ.
  4. Хэрэв дээр дурдсан зүйлсийн аль нь ч боломжгүй бол энэ нь мухардалд орох ёстой. Эргүүл.

Нэг болгоомжлох зүйл бол лабиринт дотор гогцоо байвал энэ арга нь бүтэлгүйтэх болно. Гогцоонуудын байршлаас хамааран робот тойрог болон тойрог замаа үргэлжлүүлж чадна. Энэ асуудлыг шийдэх боломжтой шийдэл бол робот нь гогцоонд явж байгааг ойлговол баруун талын хананд мөрдөх дүрэмд шилжих болно. Би энэ сайжруулалтыг төсөлдөө оруулаагүй болно.

ШУУД ЗАМ ХАЙХ ГАЗАРТАЙ ШИЙДВЭР

Лабиринт жолоодож байхдаа робот явж буй замаа цээжилж, мухардсан цэгүүдийг арилгах ёстой. Энэ нь эргэлт, огтлолцол бүрийг массивт хадгалах, эргэлт, огтлолцлын тодорхой хослолыг шалгаж, мухардалд орсон хослолуудыг орлуулах замаар үүнийг гүйцэтгэдэг. Эргэлт ба уулзваруудын эцсийн жагсаалт бол лабиринтаар дамжих шууд зам юм.

Боломжит эргэлтүүд нь: Зүүн, Баруун, Нуруу (мухардалд), Шулуун (уулзвар).

Хослолыг дараах байдлаар солино.

  • "Зүүн, Нуруу, Зүүн" нь "Шулуун" болж хувирдаг.
  • "Зүүн, Нуруу, Баруун" нь "Буцах" болж хувирдаг.
  • "Зүүн, Нуруу, Шулуун" нь "Баруун" болж хувирдаг.
  • "Баруун, Нуруу, Зүүн" нь "Буцах" болж хувирдаг.
  • "Шулуун, Нуруу, Зүүн" нь "Баруун" болж хувирдаг.
  • "Шулуун, Нуруу, Шулуун" нь "Буцах" болж хувирдаг.

РОБОТ МИНИЙ ТӨЛӨГЛӨЛИЙГ ХЭРХЭН БАРЬЖ БАЙНА

  1. Робот жолоодож эхлэхэд баруун тийш хоосон зай харагдан Straight -ийг массивын жагсаалтад хадгална.
  2. Дараа нь зүүн тийш эргэж, зүүн талд жагсаалтад нэмнэ. Жагсаалтанд одоо орсон байна: Шулуун, Зүүн.
  3. Төгсгөлийн төгсгөлд энэ нь эргэж, жагсаалтад буцаж орно. Жагсаалтанд одоо: Шулуун, Зүүн, Нуруу орсон байна.
  4. Орцноосоо ашиглаж байсан эгнээгээр дамжин өнгөрөхөд энэ нь Шулуун жагсаалтад нэмэгдэв. Жагсаалтанд одоо: Шулуун, Зүүн, Нуруу, Шулуун гэсэн хэсгүүд багтсан болно. Энэ нь хослолыг таньж, Зүүн, Нуруу, Шулуун руу баруун тийш өөрчилдөг. Жагсаалтанд одоо Straight, Right орсон байна.
  5. Төгсгөлийн төгсгөлд энэ нь эргэж, жагсаалтад буцаж орно. Жагсаалтанд одоо: Шулуун, Баруун, Нуруу орсон байна.
  6. Зүүн тийш эргэсний дараа жагсаалт нь Шулуун, Баруун, Нуруу, Зүүн гэсэн хэсгийг агуулна. Энэ нь хослолыг таньж, Баруун, Буцах, Зүүнээс Нуруу хүртэл өөрчилдөг. Жагсаалтанд одоо Straight, Back орсон байна.
  7. Дараагийн зүүн эргэлт хийсний дараа жагсаалт нь Шулуун, Буцах, Зүүн гэсэн хэсгийг агуулна. Энэ хослолыг баруун болгож өөрчилдөг. Жагсаалтанд одоо зөвхөн Зөв байна.
  8. Энэ нь орон зайг дамжуулж, Шулуун жагсаалтад нэмнэ. Жагсаалтанд одоо Зөв, Шулуун багтсан болно.
  9. Баруун тийш эргэсний дараа жагсаалт нь шууд зам болох Зөв, Шулуун, Барууныг агуулдаг.

Алхам 2: Роботыг програмчлахдаа анхаарах зүйлс

МИКРО ХЯНАЛТЫН ХҮНИЙГ ХЭРЭГЖҮҮЛЭХ

Робот эргэхээр шийдсэн бол өргөн эргэлт хийх ёстой, эсвэл эргэхээсээ өмнө богино зайд урагш, эргүүлсний дараа мэдрэгчийг шалгахгүйгээр дахин богино зайд урагшлах ёстой. Эхний богино зайн шалтгаан нь робот эргэсний дараа хананд мөргүүлэх ёсгүй, хоёр дахь богино зайн шалтгаан нь робот эргүүлсний дараа мэдрэгч нь дөнгөж гарч ирсэн урт зайг харах болно., робот дахин эргэх ёстой гэж бодож байна, энэ нь хийх ёстой зүйл биш юм.

Робот баруун гар талын уулзварыг мэдэрч байгаа ч энэ нь зөв эргэлт биш гэдгийг мэдрэгчээ шалгахгүйгээр робот 25 инч орчим урагш жолоодож байх нь сайн болохыг олж мэдэв.

LEGO MINDSTORMS EV3 -Т ОНЦГОЙ БАЙГУУЛАХ

LEGO Mindstorms EV3 нь маш уян хатан шинж чанартай боловч нэг тоосгоор холбогдсон мэдрэгч бүрийн төрлүүдээс нэгээс илүүгүй байхыг зөвшөөрдөг. Хоёр ба түүнээс дээш тоосго нь гинжтэй байж болно, гэхдээ би өөр тоосго худалдаж авахыг хүсээгүй тул би хэт улаан туяаны мэдрэгч, өнгө мэдрэгч, хэт авианы мэдрэгч гэсэн гурван мэдрэгчийн оронд дараах мэдрэгчийг ашигласан. Энэ сайн үр дүнд хүрсэн.

Гэхдээ өнгөний мэдрэгч нь ойролцоогоор 2 инч (5 см) маш богино хүрээтэй байдаг тул доор тайлбарласан хэд хэдэн онцгой зүйлийг авч үзэх болно.

  1. Өнгө мэдрэгч урд талын ханыг илрүүлж, робот баруун тийш эргэх эсвэл эргэх шийдвэр гаргахдаа хананд мөргөлдөхгүйгээр эргэх хангалттай зай гаргахын тулд эхлээд нөөцлөх ёстой.
  2. Зарим "Шулуун" уулзвар дээр төвөгтэй асуудал гардаг. Өнгөний мэдрэгч богино байдаг тул робот зөв "Шулуун" огтлолцол эсвэл баруун тийш эргэхийг мэдрэх эсэхийг тодорхойлж чадахгүй. Робот үүнийг мэдрэх тоолонд жагсаалтад "Шулуун" хадгалах програмыг тохируулж, дараа нь жагсаалтаас нэгээс олон "Шулуун" -ыг устгах замаар би энэ асуудлыг шийдэхийг хичээсэн. Энэ нь лабиринт дахь "Шулуун" чиглэлийг дагаж баруун тийш эргэх нөхцөлийг засдаг боловч өмнө нь "Шулуун" байхгүй бол баруун тийш эргэх нөхцөл байдлыг засдаг. Би мөн "Баруун" -ын өмнөхөн "Шулуун" -ыг арилгах програмыг тохируулахыг оролдсон боловч баруун тийш эргэх нь "Шулуун" -ыг дагаж байвал энэ нь ажиллахгүй болно. Би бүх тохиолдолд тохирсон шийдлийг олж чадаагүй байгаа ч робот явсан зайг хараад (моторын эргэлтийн мэдрэгчийг уншиж) "Шулуун" эсвэл зөв эсэхийг шийдэх боломжтой гэж бодож байна. эргэх Энэхүү төсөлд хиймэл оюун ухааны үзэл баримтлалыг харуулахын тулд энэ хүндрэлийг хийх нь зүйтэй гэж би бодсонгүй.
  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 барих
Maze барих

Атираат картон хайрцаг нь лабиринт хийхэд хангалттай байх ёстой. Би лабиринтийн ханыг 5 инч (12.5 см) өндөртэй болгосон боловч хэрэв танд Атираат картон дутагдаж байвал 4 инч (10 см) ажиллах ёстой.

Нэгдүгээрт, би хайрцагны ханыг ёроолоос нь 25 инч (25 см) зүссэн. Дараа нь би хананы доороос 5 инчийн зайд хайчилж авав. Энэ нь хэд хэдэн 5 инчийн ханыг хангаж өгдөг. Түүнчлэн, би хайрцгийн ёроолыг хайчилж, тогтвортой байдлыг хангах үүднээс хананд 1 инч (2.5 см) зайд үлдээсэн.

Янз бүрийн хэсгүүдийг хайчилж, нааж эсвэл лабиринт үүсгэхийн тулд хаана ч хамаагүй наалдуулж болно. Хажуугийн хажуугийн аль ч зам дээр хажуугийн хананы хооронд 30 см хэмжээтэй 11 эсвэл 12 инч зай байх ёстой. Урт нь 25 инч (10 инч) -ээс багагүй байх ёстой. Эдгээр зай нь роботыг эргүүлэхэд хэрэгтэй.

Лабиринтийн зарим буланг бэхжүүлэх шаардлагатай байж магадгүй, мөн шулуун картон булантай бол зарим шулуун ханыг гулзайлгахгүй байх шаардлагатай. Нимгэн картон жижиг хэсгүүдийг зурагт үзүүлсэн шиг доод хэсэгт нь наасан байх ёстой.

Гарах хэсэгт улаан хаалтны хагас улаан дугтуйтай дугтуй, 2 ширхэг нимгэн картоноор хийсэн суурийг харуулав.

Алхам 13: Maze

Maze
Maze

Нэг анхааруулга бол лабиринт том хэмжээтэй байх ёсгүй. Хэрэв роботын эргэлтүүд зөв эргэлтээс арай бага өнцөгт байвал хэд хэдэн эргэлт хийсний дараа зөрүү гарч ирэн робот хана руу гүйх боломжтой болно. Миний хийсэн жижиг лабиринт хүртэл амжилттай жолоодохын тулд би эргэлтийн тохиргоог хэд хэдэн удаа хуурах хэрэгтэй болсон.

Энэ асуудлыг тойрч гарах арга бол роботыг зүүн хананаас тодорхой зайд байлгах замыг шулуун болгох дэглэмийг оруулах явдал юм. Би үүнийг оруулаагүй. Хөтөлбөр нь одоогийнх шиг хангалттай төвөгтэй бөгөөд энэ төсөлд хиймэл оюун ухааны үзэл баримтлалыг харуулахад хангалттай юм.

ДҮГНЭХ САНАЛ

Энэ бол хөгжилтэй төсөл бөгөөд суралцах гайхалтай туршлага байв. Танд бас сонирхолтой санагдсан гэж найдаж байна.

Зөвлөмж болгож буй: