Mundarija:

LEGO roboti labirintni boshqaradi: 9 qadam
LEGO roboti labirintni boshqaradi: 9 qadam

Video: LEGO roboti labirintni boshqaradi: 9 qadam

Video: LEGO roboti labirintni boshqaradi: 9 qadam
Video: Experience PACMAN-RTX like never before: Mind-blowing graphics and gameplay! ☺🎮📱 2024, Iyul
Anonim
Image
Image
Robot bazasi
Robot bazasi

Bu oddiy, avtonom robot, labirint orqali chiqish joyiga olib chiqish uchun mo'ljallangan. U LEGO Mindstorms EV3 yordamida qurilgan. EV3 dasturiy ta'minoti kompyuterda ishlaydi va dastur ishlab chiqaradi, keyinchalik u EV3 Brick nomli mikrokontrollerga yuklanadi. Dasturlash usuli ikonkalarga asoslangan va yuqori darajada. Bu juda ko'p qirrali va oson.

QISMLAR

  1. LEGO Mindstorms EV3 to'plami
  2. LEGO Mindstorms EV3 ultratovush sensori. U EV3 to'plamiga kiritilmagan.
  3. Labirint uchun gofrokarton. Ikkita karton etarli bo'lishi kerak.
  4. Kichkina ingichka karton, ba'zi burchaklar va devorlarni barqarorlashtirishga yordam beradi.
  5. Karton bo'laklarini bir -biriga ulash uchun elim va lenta.
  6. Labirintdan chiqish joyini aniqlash uchun qizil tabriknomali konvert.

QUROLLAR

  1. Kartonni kesish uchun yordamchi pichoq.
  2. Chelik o'lchagich kesish jarayoniga yordam beradi.

MAZIZLIKNI YO'LLASH UChUN

Labirintda harakatlanishning bir qancha usullari mavjud. Agar siz ularni o'rganishni xohlasangiz, ular quyidagi Vikipediya maqolasida juda yaxshi tasvirlangan:

Men chap qo'l devor qoidasini tanladim. Gap shundaki, robot labirint paytida quyidagi qarorlarni qabul qilib, devorni chap tomonida ushlab turadi:

  1. Agar chapga burilish mumkin bo'lsa, buni qiling.
  2. Aks holda, iloji bo'lsa, to'g'ridan -to'g'ri boring.
  3. Agar u chapga yoki to'g'ri keta olmasa, iloji bo'lsa, o'ngga buriling.
  4. Agar yuqorida aytilganlarning hech biri imkonsiz bo'lsa, bu o'lik nuqta bo'lishi kerak. Ortga burilmoq.

Bir ogohlantirish shundaki, agar labirintda pastadir bo'lsa, bu usul muvaffaqiyatsiz bo'lishi mumkin. Loopning joylashishiga qarab, robot pastadir atrofida aylanib yurishi mumkin edi. Bu muammoning mumkin bo'lgan echimi, agar u aylanada ketayotganini anglab etsa, robot o'ng devorni kuzatuvchi qoidasiga o'tadi. Men bu takomillashtirishni o'z loyihamga kiritmaganman.

ROBOTNI QURISH QADAMLARI

Garchi LEGO Mindstorms EV3 juda ko'p qirrali bo'lsa -da, u bitta g'ishtga ulangan har bir turdagi sensorlardan ko'piga ruxsat bermaydi. Ikki yoki undan ortiq g'ishtni zanjirband qilish mumkin edi, lekin men boshqa g'isht sotib olmoqchi emas edim, shuning uchun men quyidagi sensorlardan foydalandim (uchta ultratovushli sensorlar o'rniga): infraqizil sensor, rang sensori va ultrasonik sensor. Bu yaxshi natija berdi. Quyidagi fotosuratlar juftligi robotni qanday yasashni ko'rsatib beradi. Har bir juftlikning birinchi fotosurati kerakli qismlarni, ikkinchisida esa bir -biriga bog'langan qismlarni ko'rsatadi.

1 -qadam: Robot bazasi

Robot bazasi
Robot bazasi

Birinchi qadam, ko'rsatilgan qismlardan foydalanib, robotning asosini qurishdir. Robot bazasi tepaga qaragan holda ko'rsatilgan. Robotning orqa qismidagi L shaklidagi kichik qism-orqa tarafdagi tayanch. Robot harakatlanayotganda u siljiydi. Bu yaxshi ishlaydi. EV3 to'plamida rulonli to'p turi yo'q.

2 -qadam: bazaning yuqori qismi

Baza tepasi
Baza tepasi
Baza tepasi
Baza tepasi
Baza tepasi
Baza tepasi

Keyingi 3 qadam - bu robot tayanchining yuqori qismi, rang sensori va kabellar, ularning hammasi 10 dyuymli (26 sm) kabellar.

3 -qadam: Infraqizil va ultratovushli sensorlar

Ultrasonik va infraqizil sensorlar
Ultrasonik va infraqizil sensorlar
Ultrasonik va infraqizil sensorlar
Ultrasonik va infraqizil sensorlar

Keyin infraqizil sensor (robotning chap tomonida) va ultratovush sensori (o'ngda). Bundan tashqari, g'ishtni tepaga ulash uchun 4 ta pin.

Infraqizil va ultratovushli datchiklar oddiy gorizontal o'rniga vertikal holda joylashgan. Bu devorlarning burchaklarini yoki uchlarini yaxshiroq aniqlashni ta'minlaydi.

4 -qadam: kabellar

Kabellar
Kabellar

G'ishtni mahkamlang va kabellarni quyidagicha ulang:

  • Port B: chap katta dvigatel.
  • Port C: o'ng katta dvigatel.
  • Port 2: ultratovush sensori.
  • Port 3: rang sensori.
  • Port 4: infraqizil sensor.

5 -qadam: Robot qurishning oxirgi bosqichi: bezatish

Robot qurishning oxirgi bosqichi: bezatish
Robot qurishning oxirgi bosqichi: bezatish
Robot qurishning oxirgi bosqichi: bezatish
Robot qurishning oxirgi bosqichi: bezatish
Robot qurishning oxirgi bosqichi: bezatish
Robot qurishning oxirgi bosqichi: bezatish

Qanotlar va qanotlar faqat bezak uchun.

6 -qadam: Dastur uchun psevdokod

  1. 3 soniya kuting va "Ket" deb ayting.
  2. Robotni oldinga siljitishni boshlang.
  3. Agar chapga burilish mumkin bo'lsa (ya'ni, infraqizil sensor yaqin atrofdagi ob'ektni sezmasa), "Chapga" deb ayting va chapga o'ting.
  4. Chapga burilishni oldini olish uchun taxminan 15 dyuym oldinga boring. Sababi, robot burilgandan so'ng, sensor yaqinda paydo bo'lgan bo'sh joyni ko'radi va robot chapga burilishi kerak deb o'ylardi, bu to'g'ri emas. 2 -bosqichga qayting.
  5. Agar chapga burilishning iloji bo'lmasa, rang sensori robot oldida nimani ko'rishini tekshiring.
  6. Agar rang bo'lmasa (ya'ni ob'ekt bo'lmasa), 2 -bosqichga qayting.
  7. Agar rang qizil bo'lsa, bu chiqish. Robotni to'xtating, fanfar o'ynang va dasturni to'xtating.
  8. Agar rang jigarrang bo'lsa (ya'ni, jigarrang karton oldinda), u holda robotni to'xtating.

    1. Agar o'ngga burilish mumkin bo'lsa (ya'ni, ultratovush sensori yaqin atrofdagi ob'ektni sezmasa), "O'ng" deb ayting va o'ngga boring. 2 -bosqichga qayting.
    2. Agar o'ngga burilishning iloji bo'lmasa, "oh-oh" deb ayting, taxminan 5 dyuym (12,5 sm) zaxiralang va orqaga buriling. 2 -bosqichga qayting.

7 -qadam: Dastur

Dastur
Dastur

LEGO Mindstorms EV3-da ikonalarga asoslangan juda qulay dasturlash usuli mavjud. Bloklar kompyuterda displey ekranining pastki qismida ko'rsatiladi va dasturni yaratish uchun uni dasturlash oynasiga sudrab tashlab yuborish mumkin. Skrinshotda ushbu loyihaning dasturi ko'rsatilgan. Bloklar keyingi bosqichda tasvirlangan.

Men sizlarga dasturni qanday yuklashni sozlay olmadim, shuning uchun bloklar keyingi bosqichda tasvirlangan. Har bir blokda parametrlar va parametrlar mavjud. Bu juda ko'p qirrali va oson. Dasturni ishlab chiqish va/yoki uni sizning ehtiyojlaringizga mos ravishda o'zgartirish uchun ko'p vaqt talab qilinmasligi kerak. Har doimgidek, dasturni ishlab chiqishda uni vaqti -vaqti bilan saqlab turish yaxshidir.

EV3 Brick kompyuterga USB kabeli, Wi-Fi yoki Bluetooth orqali ulanishi mumkin. U ulangan va yoqilganda, bu kompyuterdagi EV3 oynasining o'ng pastki burchagidagi kichik oynada ko'rsatiladi. O'ng tomondagi "EV3" qizil rangga aylanadi. Bu displey Port View rejimiga o'rnatilganda, u real vaqtda har bir sensor nimani aniqlayotganini ko'rsatadi. Bu tajriba o'tkazish uchun foydalidir.

Ushbu dasturni tuzayotganda, men chapdan o'ngga va yuqoridan pastgacha ishlashni va boshqa bloklarni sudrab olib borishdan oldin, "Loop and Switch" bloklarini kattalashtirishni taklif qilardim. Men kattalashtirishdan oldin ichkariga qo'shimcha bloklarni kiritishga urinib ko'rdim.

8 -qadam: Dastur bloklari

  1. Dasturning chap qismidan boshlab, dastur ishlab chiqilganda, Ishga tushirish bloki avtomatik ravishda mavjud bo'ladi.
  2. Keyingi - dasturni ishga tushirgandan so'ng, robotni labirintning kirish qismiga joylashtirish uchun 3 soniya vaqt berish uchun kutish bloki.
  3. Ovoz blokirovkasi robotni "Bor" deb aytishga majbur qiladi.
  4. Loop bloki dasturning ko'p qismini o'z ichiga oladi. Bloklarni kiritishni boshlashdan oldin displeyni 4-5 marta kattalashtirish kerak va bu Loop Blokni dasturlash tuvalining deyarli o'ng chetiga kattalashtirish kerak. Keyinchalik uni kichikroq qilish mumkin.
  5. Loop ichidagi birinchi blok - bu Rulda harakatlanuvchi boshqaruv bloki - nol, quvvat esa - 20. Bu dvigatellarni past tezlikda to'g'ridan -to'g'ri ishlay boshlaydi. Tezroq tezlik robotni oldinga siljitib, keyingi bosqichlarda gapirganda juda uzoqqa ketishiga olib keladi.
  6. Infraqizil datchik yaqinlik rejimidagi o'tish bloki 30 qiymatidan uzoqroq ob'ekt borligini tekshiradi. Bu jigarrang karton uchun taxminan 23 dyuymga teng. Agar qiymat 30 dan katta bo'lsa, 7, 8 va 9 -bloklar bajariladi, aks holda dastur quyidagi 10 -blokga o'tadi.
  7. Ovoz blokirovkasi robotni "chapga" aytishga majbur qiladi.
  8. Rulda -45, Quvvat 20 ga, Burilishlar 1.26 ga, Tormoz oxirida esa "To'g'ri" ga o'rnatiladi. Bu robotni chapga burilishga majbur qiladi.
  9. Rulda boshqaruv bloki nolga, quvvat 20 ga, burilishlar 1,2 ga, tormoz oxirida esa rost holatiga o'rnatildi. Bu robotning chapga burilishining oldini olish uchun taxminan 15 dyuym (6 dyuym) oldinga siljishiga olib keladi.
  10. Rang sensori o'lchash rang rejimidagi o'tish bloki robot oldida qanday rang borligini tekshiradi. Agar rang bo'lmasa (ya'ni ob'ekt bo'lmasa), u holda dastur pastadir oxiriga o'tadi. Agar rang qizil bo'lsa, 11, 12 va 13 -bloklar bajariladi. Agar rang jigarrang bo'lsa, dastur quyidagi 14 -blokga o'tadi.
  11. Dvigatellarni to'xtatish uchun Rulda -osiyolik blokirovkasini o'chirish rejimida.
  12. Ovoz bloki fanfar o'ynaydi.
  13. Loop Interrupt Blok Loopdan chiqadi.
  14. Dvigatellarni to'xtatish uchun Rulda -osiyolik blokirovkasini o'chirish rejimida.
  15. Ultrasonik sensordagi masofa dyuymlarini taqqoslash rejimidagi o'tish bloki 20 dyuymdan 8 dyuymdan uzoqroq ob'ekt borligini tekshiradi. Agar u 8 dyuymdan oshsa, Blocks16 va 17 bajariladi, aks holda dastur quyida 18 -blokga o'tadi.
  16. Ovoz blokirovkasi robotni "to'g'ri" deb aytishga majbur qiladi.
  17. Rulda -55, Quvvat -20 ga, Burilishlar 1.1 ga, Tormoz oxirida esa "To'g'ri" ga o'rnatilgan. Bu robotni o'ngga burilishga majbur qiladi.
  18. Ovoz blokirovkasi robotni "oh-oh" deb aytishga majbur qiladi.
  19. Quvvat Chap bilan harakatlanuvchi tank bloki -20, O'ng Quvvat -20, Burilishlar 1 va Tormoz Oxiriga To'g'ri o'rnatilgan. Bu robotni burilish uchun joy ajratish uchun taxminan 12 dyuym (5 dyuym) zaxira qiladi.
  20. Quvvat Chap bilan harakatlanuvchi tank bloki -20, O'ng -Quvvat 20, Burilishlar -1,14, Tormoz -Oxirida -To'g'ri. Bu robotning orqaga burilishiga olib keladi.
  21. Loopning chiqishida dasturni to'xtatish bloki joylashgan.

9 -qadam: MAZIB QURISH

MAZORLIK QURISH
MAZORLIK QURISH
MAZORLIK QURISH
MAZORLIK QURISH
MAZIB QURISH
MAZIB QURISH

Labirint uchun ikkita gofrokarton karton etarli bo'lishi kerak. Men labirint devorlarini 5 dyuym (12,5 sm) balandlikda qildim, lekin agar sizda gofrokarton etishmasa, 4 dyuym (10 sm) xuddi shunday ishlashi kerak.

Birinchidan, men kartonlarning devorlarini pastdan 10 dyuym (25 sm) kesib oldim. Keyin devorlarni pastdan 5 dyuym bo'ylab kesib tashladim. Bu bir nechta 5 dyuymli devorlarni ta'minlaydi. Bundan tashqari, men mustahkamlik uchun devorlarga 1 dyuymli (2,5 sm) yopishtirib, kartonlarning pastki qismini kesib tashladim.

Har xil bo'laklarni labirint hosil qilish uchun kerak bo'lganda kesish, yopishtirish yoki yopishtirish mumkin. Har qanday yo'lda devorlar o'rtasida 12 dyuymli (30 sm) bo'sh joy bo'lishi kerak. Bu masofa robotning aylanishi uchun kerak.

Labirintning ba'zi burchaklarini mustahkamlash kerak bo'lishi mumkin, shuningdek, tekislangan karton burchagi bo'lsa, ba'zi tekis devorlarni egilmasligi kerak. Yupqa kartonning kichik bo'laklari, ko'rsatilgan joylarning pastki qismiga yopishtirilgan bo'lishi kerak.

Chiqishda qizil to'siq bor, u qizil qizil tabriknoma konvertidan va 2 ta ingichka kartondan yasalgan taglikdan iborat.

Bir ogohlantirish shundaki, labirint katta bo'lmasligi kerak. Agar robotning burilishlari mos keladigan burilishdan bir oz burchak ostida bo'lsa, farqlar bir necha burilishdan keyin qo'shiladi. Masalan, agar chapga 3 gradus burilish bo'lsa, 5 chapga burilgandan keyin robot 15 gradus o'chadi. Katta labirint kichikdan ko'ra ko'proq burilishga va uzunroq yo'lga ega bo'lardi va robot devorlarga yugurib ketishi mumkin edi. Men qilgan kichik labirint orqali ham muvaffaqiyatli haydash uchun burilishlarning aylanishi sozlamalari bilan bir necha marta o'ynashim kerak edi.

Kelajakni takomillashtirish

Keyingi aniq loyiha-bu robotni labirint bo'ylab to'g'ridan-to'g'ri yo'lni aniqlashga imkon berish, so'ngra shu to'g'ridan-to'g'ri yo'lni (o'liklardan qochib) haydash.

Bu hozirgi loyihaga qaraganda ancha murakkab. Robot o'zi bosib o'tgan yo'lni eslab qolishi, o'liklarni olib tashlashi, yangi yo'lni saqlashi va keyin yangi yo'lni bosib o'tishi kerak. Yaqin kelajakda bu loyiha ustida ishlashni rejalashtiryapman. O'ylaymanki, LEGO Mindstorms EV3 bilan Array Operations Blocks va matematikaga tegishli ba'zi bloklar yordamida erishish mumkin.

Xulosa

Bu qiziqarli loyiha edi. Umid qilamanki, bu sizga ham qiziqarli bo'ladi.

Tavsiya: