Lego Mindstorms EV3 muhitida EV3 robot dasturlash kursi. Bookshelf robototexnika Robot dasturlash kursi lego mindstorms ev3

L.Yu. Ovsyanitskaya, D.N. Ovsyanitskiy, A.D. Ovsyanitskiy

EV3 robot dasturlash kursi

muhitda Lego Mindstorms EV3

Ikkinchi nashr, qayta ko'rib chiqilgan va kengaytirilgan

UDC 004.42+004.896

Ovsyanitskaya, L.Yu. Lego robot dasturlash kursi

EV3 muhitida Mindstorms EV3: ed. ikkinchidan, qayta ko'rib chiqilgan va qo'shimcha /

L.Yu. Ovsyanitskaya, D.N. Ovsyanitskiy, A.D. Ovsyanitskiy. - M.:

“Pero”, 2016. – 296 b.

ISBN 978-5-906862-76-1

Kitob Lego Mindstorms EV3 muhitida EV3 robotini dasturlashga bag'ishlangan. Ish mualliflarning robototexnika va pedagogik faoliyat bo'yicha mintaqaviy, Butunrossiya va xalqaro tanlovlarda ushbu mavzu bo'yicha o'qituvchilar, o'qituvchilar va murabbiylarni tayyorlashga qaratilgan ko'p yillik tajribasining natijasidir.

Kitob boshlang'ich, o'rta, oliy va o'qituvchilar uchun foydali bo'ladi qo'shimcha ta'lim, talabalar, talabalar va robototexnika masalalariga qiziqqan barcha.

Sharhlovchi:

Fizika-matematika fanlari doktori, professor A.F. Shorikov.

ISBN 978-5-906862-76-1 © L.Yu. Ovsyanitskaya, D.N. Ovsyanitskiy, A.D. Ovsyanitskiy, 2016 Mundarija Kirish

1-bob. Robotning xususiyatlari.

Birinchi loyihani yaratish va ishga tushirish 7

1.1. ning qisqacha tavsifi robot platformalari. Lego Mindstorms EV3 dasturlash muhitiga umumiy nuqtai

1.2. Robotni kompyuterga ulash usullari. EV3 Brick proshivka yangilanishi. EV3 Brick-ga dasturlarni yuklash



2-bob. Robotni dasturlash

2.1. Motorlar. Har xil traektoriyalar bo'yicha harakatlarni dasturlash

2.2. Orqa yorug'lik, ekran va ovoz bilan ishlash

2.2.1. Ekran bilan ishlash

2.2.2. EV3 Brick-da yoritilgan tugmalar bilan ishlash

2.2.3. Ovoz bilan ishlash

2.3. Dastur tuzilmalari

2.3.1. Strukturani kutish

2.3.2. Struktura aylanishi

2.3.3. Kommutatsiya tuzilmasi

2.4. Ma'lumotlar bilan ishlash

2.4.1. Ma'lumotlar turlari. Supero'tkazuvchilar

2.4.2. O'zgaruvchilar va doimiylar

2.4.3. Ma'lumotlar bilan matematik operatsiyalar

2.4.5. Massivlar bilan ishlash

2.4.6. Ma'lumotlar bilan mantiqiy operatsiyalar

2.5. Sensorlar bilan ishlash

2.5.1. Sensorli sensor

2.5.2. Rang sensori

2.5.3 Giro sensori

2.5.4. Ultrasonik sensor

2.5.5. Infraqizil sensor va mayoq

2.5.6. Dvigatelning aylanish sensori (burchakni / aylanishlar sonini va vosita quvvatini aniqlash)

2.5.7. Modulni boshqarish tugmalari

2.6. Fayllar bilan ishlash

EV3 muhitida Lego Mindstorms EV3 robot dasturlash kursi

2.7. Bir nechta robotlarning hamkorligi

2.7.1. Robotlarni USB kabeli bilan ulash

2.7.2. Bluetooth ulanishidan foydalangan holda robot aloqasi................................. 207

2.8. Foydali bloklar va asboblar

2.8.1. “Faol bo‘lish”ni bloklash

2.8.2. "Dasturni to'xtatish" ni bloklash

2.8.3. Muntazamlarni yaratish

2.8.4. Fikrlarni yozib olish

2.8.5. Simli kirish portidan foydalanish

3-bob. Musobaqalarning asosiy turlari va vazifalar elementlari.

3.1. Sumo musobaqasi

3.2. Kegelring

3.3. Slalom (to'siqlardan qochish)

3.4. Chiziq harakatini dasturlash

3.4.1. Bir va ikkita rangli sensorli Zigzag chizig'i bo'ylab harakatlanish algoritmi

3.4.2. "To'lqin" algoritmi

3.4.3. Rang sensorini avtomatik kalibrlash algoritmi..... 258

3.5. Proportsional chiziqli boshqaruv

3.5.1. Proportsional nazoratga asoslangan chiziq harakati

3.5.2. Proportsional chiziq nazorati bilan kesishmalarni topish va hisoblash

3.5.3. Sayohat inversiyasi

3.5.4. Robotning devor bo'ylab harakati

3.6. Labirintda maqsadni topish

4-bob: Mikrodasturni yangilash va EV3 Brick-ni qayta ishga tushirish.

286 5-bob. Uchinchi tomon sensorlaridan foydalanish

5.1. HiTech rang sensori bilan ishlash

5.2. Boshqa sensorlardan foydalanish

Xulosa

Loyihalar ro‘yxati “Vafodor it” loyihasi 90 “Sport ko‘rsatkichlari jadvali” loyihasi 98 “Avtomatik tugatish” loyihasi 102 “60 soniya” loyihasi 109 “Rangli shtrix-kodni yozib olish va o‘qish” loyihasi 120 “Bubble usuli yordamida massivni saralash” loyihasi 123 loyihasi “ Aqlli uy» 153 “Oʻjar robot” loyihasi 160 “Robot bilan masofaviy boshqarish» 182 Project EV3 bloki ekranidagi animatsion o‘yin “Qor to‘pini tuting” 191 “3D sirt xaritasini qurish” loyihasi 197 “EV3 - musiqa sintezatori” loyihasi 203 Lego Mindstorms EV3 robotini EV3 muhiti tasvirida dasturlash kursi lasan (1.1.11b-rasm). Blok faollashadi (yorqin) (1.1.11c-rasm).

–  –  –

1.1-rasm.

12. Parallel dasturlar Tasvirlarni masshtablash uchun (1.1.13 a, b rasm) standart MSWindows kombinatsiyalaridan foydalaniladi. Ctrl tugmalari va sichqonchani aylantirish g'ildiraklari yoki oynaning yuqori o'ng burchagidagi belgilar:. Masshtablash katta dasturlarni kezishda, ma'lum bloklarni nusxalashda va boshqa ko'p hollarda qo'llaniladi.

EV3 muhitida Lego Mindstorms EV3 robot dasturlash kursi Bloklar Katta motor va O'rta motor Palitraning birinchi bloki O'rta motor, ikkinchisi Katta motor deb ataladi. Bloklar bitta dvigatelni boshqarish uchun ishlatiladi va bir xil funktsiyaga ega.

Katta motor bloki misolida bloklarning tuzilishini ko'rib chiqaylik (2.1.4-rasm).

–  –  –

2.1-rasm.

4. Katta Dvigatelni boshqarish bloki Avvalo, port nomini ifodalovchi harfni bosing va dvigatel ulangan port nomini tanlang.

Keling, har bir nazorat elementini batafsil ko'rib chiqaylik.

1. Ishlash rejimini tanlang:

a) yoqing (2.1.5-rasm);

–  –  –

2.4-rasm.

3.4. "60 soniya" loyihasini amalga oshirish dasturi

DIY faoliyati Ekranga soat yuzining rasmini qo'shing.

O'xshashlik bo'yicha daqiqa va soat qo'llarini qo'shing.

2.4.4. Boshqa ma'lumotlarni qayta ishlash bloklari

–  –  –

Massivlar bilan ishlashni boshlashdan oldin ularni ishga tushirishingiz kerak, ya'ni. turini (raqamli yoki mantiqiy) belgilang va nom bering.

Ma'lumotlar massivga qo'lda yoki kiritilishi mumkin avtomatik rejim(datchiklardan o'qishni o'qish). Massiv yaratish uchun Variable blokidan foydalanish kerak.

Massiv yaratish. O‘zgaruvchiga massiv yozish

Massivni yaratish va to'ldirish uchun sizga quyidagilar kerak:

(a) Variable blokini ish maydoniga o'tkazish va uning rejimini (Yozish) va turini (raqamli yoki mantiqiy massiv) aniqlash;

Shakllantirish Mantiqiy massivning sonli massivini shakllantirish

–  –  –

2.5-rasm.

3.3. Giroskopik sensorning ishlash rejimlari Muhim!

Ba'zan (juda tez-tez!) Gyroskopik sensor bilan ishlashda siz quyidagilarni kuzatishingiz mumkin: qachon ishlaydigan dastur robot statsionar va burchak qiymati doimiy ravishda oshib boradi (drift), o'sish tezligi sekundiga 1 darajadan ortiq bo'lishi mumkin!

Sensor qiymatlarini oshirish 2-bob. Robotni dasturlash 177 Agar mayoq juda uzoqda bo'lsa (1 m dan ortiq), o'lchov qiymati 100 ga teng bo'ladi, agar juda yaqin bo'lsa (kamida 1 sm) - 0. Oraliq natijalar ham mos kelmaydi santimetrgacha.

Agar mayoq to'g'ridan-to'g'ri datchikning oldida joylashgan bo'lsa, burchakni o'lchashning nisbiy natijasi 0 ga teng bo'ladi, mayoqning maksimal joylashishi chapda, soat sohasi farqli o'laroq -25 (aniqlanadigan maksimal og'ish burchagi taxminan). 100 daraja), o'ngda, soat yo'nalishi bo'yicha 25 (2.5-rasm. 5.5).

2.5-rasm.

5.5. IR-mayoqning IQ sensoriga nisbatan joylashishi. Misol dasturlarini ko'rib chiqaylik. Mayoqni robotning oldiga qo'ying, uni yoqing va robot tomon yo'naltiring.

LED indikatori yonadi va yonib turadi. Mayoq doimiy ravishda signal uzatadi. Infraqizil sensor blokida mayoqqa o'rnatilgan bir xil kanalni o'rnating. Sensor faqat dasturingizda ko'rsatgan kanaldagi mayoqni aniqlaydi.

Bir soat davomida ishlatilmasa, mayoq o'chadi.

Shaklda. 2.5.5.6 mayoq bilan ishlash rejimini tanlashni ko'rsatadi.

MS Excel yordamida EV3 muhitida Lego Mindstorms EV3 robot dasturlash kursi.

Robot aylanadi va vaqtning har bir daqiqasida aylanish burchagi qiymatini va sirtgacha bo'lgan masofani qayd etadi.

Yechim:

1. Gyroskop sensori qiymatlarini qayta o'rnating.

Biz 01 tsiklini kiritamiz, tugatish sharti - vaqt (3 soniya).

2. Tsikl davomida robot ultratovush va giroskopik datchiklardan olingan ma'lumotlarni aylantiradi va o'qiydi. O'qishlar "Matn" dasturi blokida birlashtirilib, vergul bilan ajratiladi.

3. Tsiklning har bir bosqichidagi o'lchov natijasi Map fayliga yoziladi.

4. 0,25 soniya pauza o'rnating. Tsikl tugagandan so'ng, faylni yoping.

Diqqat! Giroskopik sensordan foydalanganda, uni yoqish paytida o'qish driftining mavjudligiga e'tibor bering (qarang.

driftni olib tashlash uchun 2.5.3 bo'limi).

2-bob. Robotni dasturlash 213 harakat va to'xtash, har bir treylerni ketma-ket oziqlantirish.

2. “Vokal va cholg‘u ansambli”

Vazifa - ansambl bilan musiqa asarini ijro etish. Birinchi EV3 roboti dirijyor bo'lib, Bluetooth orqali boshqa robot musiqachilar va robot qo'shiqchilarga o'zlarining musiqiy qismlarini qachon ijro etishlari haqida buyruq beradi. Robot dirijyor dirijyor tayoqchasi bilan jihozlanishi mumkin, u yuqoriga va pastga harakatlanadi va o'ynay boshlagan robot tomon buriladi. Robot-dirijyor, masalan, yarim kunlik solist sifatida ishlay oladi.

3. “Raqs ansambli”

Vazifa - robot ansamblini yaratish. Bluetooth orqali buyruqlar chiqaradigan birinchi robot yakkaxon ijrochidir. Qolgan robotlar buyruqlarni bajaradilar. Turli xil raqslarni dasturlash - robotlarning dumaloq raqsi ("Lokomotiv"), sekin va tezkor raqslar.

4. “Ertalabki mashqlar”

Vazifa birinchi robotning buyrug'i bilan bir vaqtning o'zida gimnastika mashqlarini bajarishdir.

2.8. Foydali bloklar va asboblar 2.8.1. “Faol bo‘lish”ni bloklash

Muayyan vaqt o'tgandan so'ng, agar biz robot bilan bog'lanmasak va robot hech qanday operatsiyani bajarmasa, u o'chadi (EV3 shartlarida u uyqu rejimiga o'tadi). Bu ba'zi jarayonlar uchun uzoq vaqt kutish uchun mo'ljallangan dasturlar bilan ishlashda noqulaylik tug'diradi. Biz to'g'ridan-to'g'ri blokda uyqu rejimiga o'tish vaqtini belgilashimiz mumkin (o'chirishdan oldin vaqtni belgilash mumkin: 2 daqiqa, EV3 muhitida Lego Mindstorms EV3 robot dasturlash kursi, bir nechta dastur variantlarini yarating va jangovar taktikalarni tanlang. Uchun. Misol uchun, agar bizda kuchli, ammo sekin robot bo'lsa, biz robotimiz raqibga tez va yon tomondan hujum qiladigan dasturni ishga tushirishimiz mumkin; agar raqibning roboti bizning robotimizni qidirishda doimo o'ngga burilsa, biz robotni ishga tushirishimiz kerak. atrofida aylanib, chap tomondan unga hujum qiladigan dastur.

Robot keraksiz burilishlarsiz dushman pozitsiyasini aniqlash uchun bitta yoki ikkita ultratovush sensoriga ega bo'lishi mumkin. Taxminan teng kuch yoki tezlikdagi robotlar raqobatlashadigan raundlar ayniqsa qiziq, bu holda natija millimetr va soniyalar bilan belgilanadi!

Kuchli va ishonchli tuzilmani to'play olgan, malakali dastur (yoki dasturlar) yozgan va to'g'ri strategiyani tanlagan ishtirokchi g'olib hisoblanadi. Aynan shu omillarning kombinatsiyasi musobaqalarga tayyorgarlik jarayonini hayajonli qiladi va musobaqalarning o'zi juda qiziqarli va qiziqarli bo'ladi!

Keling, robot sumo kurashchisi uchun dastur algoritmiga misol keltiraylik.

Robotni to'xtatish.

2. Robot raqibning robotini ultratovush sensori bilan ko'rmaguncha aylanadi (sensor qiymati 100 sm dan kam bo'lgunga qadar), bu 120-180 daraja aylanish burchagiga to'g'ri keladi. Robotni to'xtatish.

3. Tugatish sharti 01, – Cheksiz bilan tsikl yarating.

4. 01-siklga biz 02-siklni kiritamiz, uning tugash sharti mantiqiy qiymat: Tugatish sharti kiritishiga True qiymati berilguncha tsikl bajariladi.

3-bob. Musobaqalarning asosiy turlari va vazifalar elementlari 245 100 25 + 18 =.

Chap g'ildirakning tezligi topilsin: V1=58.

Algoritmni amalga oshirish uchun markazdagi robot oldiga ultratovush sensori o'rnating va uni 4-portga ulang.

Rang sensorini pastga yo'naltiring, uni chiziqning chap tomoniga qo'ying va 2-portga ulang. Rasmda. 3.3.3 to'siqlardan qochish dasturini taqdim etadi. E'tibor bering, to'siqni aniqlagandan so'ng, robot to'siqga perpendikulyar chiziqdan chiqib ketish va berilgan radius bo'ylab ob'ektni aylanib chiqish uchun to'xtaydi va keskin o'ngga buriladi.

Mustaqil ish uchun topshiriqlar

Yo'llarni dasturlash:

a) bir xil radiusli bir nechta to'siqlardan qochish;

b) turli radiusli to'siqlardan qochish;

c) sakkiz figurada minish.

3-bob. Musobaqalarning asosiy turlari va topshiriqlar elementlari 275 3-rasm.

5.3.2. Harakatning teskari traektoriyasini haydash dasturi 3-bob. Musobaqalarning asosiy turlari va vazifalar elementlari 285 3.6.5-rasm. Labirintda maqsad topish dasturi. EV3 muhitida Lego Mindstorms EV3 robotini dasturlash kursi.

5-BOB. UCHINCHI TARAFLARNING FOYDALANISHI

SENSORLAR

Lego Mindstorms EV3 uy yoki o'quv to'plamlariga kiritilgan sensorlarga qo'shimcha ravishda, bu mumkin qo'shimcha sotib olish HiTechnic'dan Lego sensorlari va Lego sertifikatlangan sensorlar.

HiTechnic kompaniyasi LEGO Mindstorms uchun ko'p sonli datchiklarni ishlab chiqaradi, ularning aksariyati LEGO tomonidan sertifikatlangan bo'lib, to'liq moslik, yuqori sifat va xavfsizlik standartlarini tasdiqlaydi.

Shuningdek, bolalar bilan ishlashda ushbu sensorlardan foydalanishga ruxsat beruvchi muhim omil - bu elektr va elektron qurilmalarda moddalardan foydalanish yo'qligini tasdiqlovchi RoHS sertifikati (Xavfli moddalarni cheklash) mavjudligi: qo'rg'oshin, simob, kadmiy, qalay, olti valentli xrom va ba'zi bromid birikmalari. Lego tomonidan tasdiqlangan sensorlarning joriy roʻyxati uchun www.hitechnic.com/sensors saytiga tashrif buyuring.

Hozirda mavjud: aylanish burchagi sensori;

eksa bo'ylab ko'ndalang qo'llaniladigan kuch; kompas; akselerometr;

giroskop; magnit maydon detektori; infraqizil sensor;

xavfsizlik tizimlarida ishlatiladigan sensorlarga o'xshash xonada odamlar yoki hayvonlarning mavjudligini aniqlash imkonini beruvchi infraqizil harakat sensori; atmosfera bosimi va haroratini aniqlaydigan barometr;

kichik ob'ektlarni va ularga bo'lgan masofadagi kichik o'zgarishlarni aniq aniqlaydigan, lekin ~20 sm dan ortiq bo'lmagan masofada joylashgan elektro-optik masofa sensori; rang sensori

Ikkinchi darsda biz dasturlash muhiti bilan ko'proq tanishamiz va birinchi darsda yig'ilgan robot aravamiz harakatini o'rnatuvchi buyruqlarni batafsil o'rganamiz. Shunday qilib, keling, Lego mindstorms EV3 dasturlash muhitini ishga tushiramiz, avval yaratilgan darslar.ev3 loyihamizni yuklaymiz va uni loyihaga qo'shamiz. yangi dastur- dars-2-1. Dasturni ikki usulda qo'shishingiz mumkin:

  • Jamoani tanlang "Fayl" - "Dastur qo'shish" (Ctrl + N).
  • bosing "+" dasturlar yorlig'ida.

Guruch. 1

2.1. Dasturlash palitralari va dastur bloklari

Endi e'tiborimizni dasturlash muhitining pastki qismiga qaratamiz. Birinchi dars materialidan biz allaqachon bilamizki, bu erda robotni dasturlash uchun buyruqlar mavjud. Ishlab chiquvchilar original texnikadan foydalanganlar va dastur bloklarini guruhlash orqali har bir guruhga o'z rangini belgilashgan va guruhlarni palitralar deb atashgan.

Yashil palitrasi deyiladi: "Harakat":

Guruch. 2

Ushbu palitrada motorlarni boshqarish uchun dasturiy ta'minot bloklari, displey bloki va modul holati ko'rsatkichi uchun boshqaruv bloki mavjud. Endi biz ushbu dastur bloklarini o'rganishni boshlaymiz.

2.2. Yashil palitra - harakat bloklari

Yashil palitraning birinchi dastur bloki o'rta motorni boshqarish uchun mo'ljallangan, ikkinchi blok katta motorni boshqarish uchun mo'ljallangan. Ushbu bloklarning parametrlari bir xil bo'lganligi sababli, keling, blok - katta dvigatel misolida sozlashni ko'rib chiqaylik.

Guruch. 3

Uchun to'g'ri sozlamalar Katta dvigatel uchun boshqaruv bloki bizga kerak:

  1. Dvigatel ulangan portni tanlang (A, B, C yoki D) (3-rasm, 1-band)
  2. Dvigatelning ishlash rejimini tanlang (3-rasm, 2-band)
  3. Tanlangan rejimning parametrlarini sozlang (3-rasm, 3-band)

Modalar qanday farq qiladi? Rejim: "Yoqish; ishga tushirish" berilgan parametr bilan motorni yoqadi "Kuch" va shundan so'ng boshqaruv dasturning keyingi dastur blokiga o'tkaziladi. Dvigatel keyingi blok tomonidan to'xtatilgunga qadar aylanishda davom etadi "Katta motor" rejim bilan "O'chiring" yoki keyingi blok "Katta motor" boshqa ijro parametrlarini o'z ichiga olmaydi. Rejim "Bir necha soniya davomida yoqish" belgilangan quvvat bilan katta dvigatelni ma'lum bir soniya davomida yoqadi va faqat vaqt o'tgandan keyin vosita to'xtaydi va dasturdagi boshqaruv keyingi dastur blokiga o'tadi. Dvigatel rejimlarda xuddi shunday harakat qiladi "Darajalar soni bo'yicha yoqish" Va "Inqiloblar soni bo'yicha yoqish": faqat dvigatelning o'rnatilgan aylanishi tugagandan so'ng, u to'xtaydi va dasturdagi boshqaruv keyingi blokga o'tadi.

Quvvat parametri (3-rasmda quvvat 75 ga o'rnatilgan) -100 dan 100 gacha qiymatlarni qabul qilishi mumkin. Ijobiy quvvat qiymatlari motorni soat yo'nalishi bo'yicha, salbiy qiymatlar esa motorni soat sohasi farqli ravishda aylantirishni o'rnatadi. Quvvat qiymati 0 bo'lsa, vosita aylanmaydi; quvvat qiymati qanchalik "yuqori" bo'lsa, vosita tezroq aylanadi.

Quvvat parametri faqat butun son qiymatlarida ko'rsatilgan; parametrlar: soniyalar, darajalar, aylanishlar o'nlik kasrli qiymatlarni olishi mumkin. Ammo esda tutingki, dvigatelning minimal aylanish bosqichi bir daraja.

Parametrga alohida e'tibor qaratish lozim "Oxirida tormoz". Agar o'rnatilgan bo'lsa, bu parametr "tormozlash" buyruqni bajargandan so'ng vosita sekinlashishiga olib keladi va agar o'rnatilgan bo'lsa "Oshib ketish", keyin vosita to'xtaguncha inertsiya bilan aylanadi.

Keyingi ikkita dastur bloklari "Rulni boshqarish" va bir juft katta motorni boshqarishni amalga oshirish. Odatiy bo'lib, chap katta dvigatel portga ulangan "IN", va o'ng - portga "BILAN". Ammo siz dizayningiz talablariga muvofiq qurilma sozlamalarida ulanish portlarini o'zgartirishingiz mumkin ( Guruch. 4 post. 1).

Guruch. 4

Parametr "Rulni boshqarish" (Guruch. 4 post. 2) -100 dan 100 gacha qiymatlarni qabul qilishi mumkin. Parametrning salbiy qiymatlari robotning chapga burilishiga, 0 qiymati robotning toʻgʻri harakatlanishiga, ijobiy qiymatlar esa robotning oʻngga burilishiga olib keladi. Raqamli parametr ustidagi o'q o'z yo'nalishini qiymatga qarab o'zgartiradi va shu bilan robotning harakat yo'nalishini ko'rsatadi ( Guruch. 5).

Guruch. 5

Dastur bloki "Motorni mustaqil boshqarish" dasturiy ta'minot blokiga o'xshaydi "Rulni boshqarish". Bundan tashqari, ikkita katta motorni boshqaradi, lekin o'rniga "Rulni boshqarish" har bir dvigatelning quvvatini mustaqil ravishda boshqarish mumkin bo'ladi. Parametr qiymatiga teng "Kuch" chap va o'ng motor uchun robot to'g'ri chiziqda harakat qiladi. Agar siz bitta dvigatelga salbiy quvvat qiymatini (masalan, -50) va ikkinchisiga ijobiy qiymatni (masalan, 50) qo'llasangiz, robot o'z joyiga aylanadi ( Guruch. 6).

Guruch. 6

Shuning uchun, bu birliklarning ishlash rejimlari bitta dvigatelni boshqarish blokiga o'xshaydi qo'shimcha tavsif talab qilma...

2.3. To'g'ri chiziqli harakat, burilish, burilish va to'xtash

Shunday qilib, endi biz robotning istalgan marshrut bo'ylab harakatlanishi uchun dastur yozishimiz mumkin.

1-topshiriq: Dvigatelning 4 aylanishi uchun to'g'ri oldinga harakatlaning. O'girilmoq; ishni bajarmoq. 720 daraja haydash.

Yechim ( Guruch. 7):

  1. "Rulda" dasturiy ta'minot blokidan foydalanib, oldinga 4 burilish.
  2. "Mustaqil motorni boshqarish" dasturiy ta'minot blokidan foydalanib, joyida aylantiring (darajaning qiymati eksperimental ravishda tanlanishi kerak).
  3. "Rulda" dasturiy blokidan foydalanib, oldinga 720 daraja harakatlaning.

Eslatma: Nima uchun burish paytida daraja qiymatini tanlashim kerak edi? blok 2?. Emas 360 daraja - kerakli qiymat? Parametr qiymatini o'rnatgan bo'lsak emas "darajalar" teng 360 , keyin biz robotimizning chap va o'ng motorlarining vallarini kerakli miqdorda aylantirishga majbur qilamiz. Robotning o'z o'qi atrofida aylanish burchagi g'ildiraklarning o'lchamiga (diametriga) va ular orasidagi masofaga bog'liq. Yoniq Guruch. 7 parametr qiymati "darajalar" teng 385 . Bu qiymat ko'rsatmalarga muvofiq yig'ilgan robotga ruxsat beradi kichik robot 45544 o'z o'qi atrofida aylantiring. Agar sizda boshqa robot bo'lsa, unda siz boshqa qiymatni tanlashingiz kerak bo'ladi. Bu qiymatni matematik tarzda topish mumkinmi? Bu mumkin, lekin bu haqda keyinroq gaplashamiz.


Guruch. 7

2-topshiriq: Bir nechta to'siqni (kon, kub, kichik quti) tekis yuzaga qo'ying va robotingiz uchun boshlang'ich nuqtani belgilang. Loyihada yangi dastur yarating: dars-2-2, bu robotga to'siqni aylanib o'tish va boshlang'ich nuqtasiga qaytish imkonini beradi.

Qancha dasturiy bloklardan foydalangansiz? Darsdagi muvaffaqiyatlaringizni sharhlarda baham ko'ring...

2.4. Ekran, ovoz, modul holati ko'rsatkichi

Dastur bloki "Ekran" yoki matnni ko'rsatishga imkon beradi grafik ma'lumotlar EV3 Brick ning LCD ekranida. Bu nimani anglatishi mumkin? amaliy foydalanish? Birinchidan, dasturni dasturlash va disk raskadrovka bosqichida siz robot ishlayotgan vaqtda joriy sensor ko'rsatkichlarini ko'rsatishingiz mumkin. Ikkinchidan, dasturni bajarishning oraliq bosqichlari nomini ko'rsatishingiz mumkin. Uchinchidan, grafik tasvirlar yordamida siz robotning ekranini, masalan, animatsiya yordamida "jonlantirishingiz" mumkin.

Guruch. 8

Dastur bloki "Ekran" to'rtta ish rejimiga ega: rejim "Matn" ekranda matn satrini ko'rsatishga imkon beradi, rejim "shakllar" ekranda to'rtta geometrik shakldan birini (to'g'ri chiziq, doira, to'rtburchak, nuqta) ko'rsatishga imkon beradi, rejim "Rasm" ekranda bitta tasvirni ko'rsatishi mumkin. Siz rasmlarning boy to'plamidan rasm tanlashingiz yoki rasm muharriridan foydalanib o'zingizni chizishingiz mumkin. Rejim "Sozlamalarni tiklash oynasi" EV3 Brick ekranini dastur ishlayotgan vaqtda ko'rsatilgan standart ma'lumot ekraniga qaytaradi.

Guruch. 9

Keling, dastur blokining parametrlarini ko'rib chiqaylik "Ekran" rejimida "Matn" (9-rasm, 1-band). Ekranda ko'rsatish uchun mo'ljallangan satr maxsus maydonga kiritiladi (9-rasm, 2-band). Afsuski, matn kiritish maydoniga faqat lotin harflari, raqamlari va tinish belgilarini kiritishingiz mumkin. Agar rejim "Ekranni tozalash" qiymatga sozlang "To'g'ri", ma'lumotni ko'rsatishdan oldin ekran tozalanadi. Shuning uchun, agar siz joriy chiqishni ekrandagi ma'lumotlar bilan birlashtirishingiz kerak bo'lsa, ushbu rejimni o'rnating "Yolg'on". Tartiblar "X" Va "Y" ekranda axborot chiqishi boshlanadigan nuqtani aniqlang. EV3 Brick ekranining kengligi 178 piksel (nuqta) va balandligi 128 piksel. Rejim "X" 0 dan 177 gacha qiymatlarni qabul qilishi mumkin, rejim "Y" 0 dan 127 gacha qiymatlarni qabul qilishi mumkin. Yuqori chap nuqtada koordinatalar (0, 0), pastki o'ngda (177, 127) mavjud.

Guruch. 10

Dastur blokini o'rnatishda "Ekran" rejimini yoqishingiz mumkin oldindan ko'rish (9-rasm, 3-band) va axborotni chiqarish sozlamalari natijasini vizual baholash.

Rejimda "Shakllar" (11-rasm, 1-band) dastur blokining sozlamalari rasm turiga qarab o'zgaradi. Shunday qilib, doirani ko'rsatishda siz koordinatalarni ko'rsatishingiz kerak bo'ladi "X" Va "Y" aylananing markazi, shuningdek qiymati "Radius". Parametr "To'ldirish" (11-rasm, 2-band) Shaklning konturi ko'rsatilishi yoki rasmning ichki maydoni parametrda ko'rsatilgan rang bilan to'ldirilishi uchun javobgardir. "Rang" (11-rasm, 3-band).

Guruch. o'n bir

To'g'ri chiziqni ko'rsatish uchun to'g'ri chiziq o'rtasida joylashgan ikkita o'ta nuqtaning koordinatalarini ko'rsatish kerak.

Guruch. 12

To'rtburchakni ko'rsatish uchun siz koordinatalarni ko'rsatishingiz kerak "X" Va "Y" to'rtburchakning yuqori chap burchagi, shuningdek, uning "kenglik" Va "Balandlik".

Guruch. 13

Nuqtani ko'rsatish - eng oson yo'l! Faqat uning koordinatalarini ko'rsating "X" Va "Y".

Rejim "Rasm", ehtimol, eng qiziqarli va eng ko'p ishlatiladigan rejim. Bu sizga tasvirlarni ekranda ko'rsatish imkonini beradi. Dasturlash muhiti toifalar bo'yicha tartiblangan rasmlarning katta kutubxonasini o'z ichiga oladi. Mavjud rasmlarga qo'shimcha ravishda siz har doim o'zingizning chizmangizni yaratishingiz va uni loyihaga kiritish orqali uni ekranda ko'rsatishingiz mumkin. ("Dasturlash muhitining asosiy menyusi" - "Asboblar" - "Rasm muharriri"). Tasviringizni yaratishda siz rus alifbosining belgilarini ham ko'rsatishingiz mumkin.

Guruch. 14

Ko'rib turganingizdek, dasturlash muhiti EV3 Main Brick ekranida ma'lumotlarni ko'rsatishga katta ahamiyat beradi. Keling, quyidagi muhim dastur blokini ko'rib chiqaylik "Ovoz". Ushbu blokdan foydalanib, biz EV3 blokining o'rnatilgan dinamikiga ovozli fayllarni, o'zboshimchalik davomiylik va chastota ohanglarini, shuningdek musiqiy notalarni chiqarishimiz mumkin. Keling, rejimda dastur blokining sozlamalarini ko'rib chiqaylik "Ohangni ijro etish" (15-rasm). Ushbu rejimda siz sozlashingiz kerak "chastota" ohanglar (15-rasm, 1-band), "Davomlik" soniyalarda ovoz (15-rasm, 2-band), shuningdek, ovoz balandligi (15-rasm, 3-band).

Guruch. 15

Rejimda "Eslatmani o'ynatish" ohang chastotasi o'rniga siz eslatmani tanlashingiz kerak virtual klaviatura, shuningdek, tovush davomiyligi va ovoz balandligini o'rnating (16-rasm).

Guruch. 16

Rejimda "Faylni ijro etish" kutubxonadagi tovush fayllaridan birini tanlashingiz mumkin (17-rasm, 1-band), yoki Ovoz muharriri yordamida mikrofonni kompyuteringizga ulash orqali ("Dasturlash muhitining asosiy menyusi" - "Asboblar" - "Ovoz muharriri") o'zingizning audio faylingizni yozib oling va uni loyihaga qo'shing.

Guruch. 17

Parametrni alohida ko'rib chiqaylik "Ijro etish turi" (17-rasm, 2-band), dastur blokining barcha rejimlari uchun umumiy "Ovoz". Agar bu parametr qiymatga sozlang "Bajarilishini kuting", keyin boshqaruv keyingi dastur blokiga faqat ovoz yoki tovush fayli to'liq ijro etilgandan so'ng o'tkaziladi. Agar siz quyidagi ikkita qiymatdan birini o'rnatsangiz, ovoz o'ynay boshlaydi va dasturdagi boshqaruv keyingi dastur blokiga o'tadi, faqat ovoz yoki tovush fayli bir marta eshitiladi yoki boshqa dastur bloki tomonidan to'xtatilgunga qadar takrorlanadi. "Ovoz".

Biz faqat yashil palitraning oxirgi dastur bloki - blok bilan tanishishimiz kerak. EV3 modulining boshqaruv tugmalari atrofida rang ko'rsatkichi o'rnatilgan bo'lib, u uchta rangdan birida porlashi mumkin: yashil, apelsin yoki qizil. Tegishli rejim rang ko'rsatkichini yoqish va o'chirish uchun javobgardir (18-rasm, 1-band). Parametr "Rang" ko'rsatkichning rang dizaynini o'rnatadi (18-rasm, 2-band). Parametr "Impuls" rang ko'rsatkichining miltillash rejimini yoqish/o'chirish uchun javobgardir (18-rasm, 3-band). Rang ko'rsatkichidan qanday foydalanish mumkin? Masalan, robotning turli xil ish rejimlarida turli xil rangli signallardan foydalanishingiz mumkin. Bu dastur biz rejalashtirgandek bajarilmoqdami yoki yo'qligini tushunishga yordam beradi.

Guruch. 18

Keling, ushbu bilimlarni amalda qo'llaymiz va 1-topshiriqdan dasturimizni biroz rangga aylantiramiz.

3-topshiriq:

  1. Signalni o'ynatish "Boshlash"
  2. Yashil miltillovchi rang belgisini yoqing
  3. "Oldinga"
  4. Dvigatelning 4 aylanishi uchun to'g'ri oldinga harakatlaning.
  5. To'q sariq rangdagi miltillovchi ko'rsatkichni yoqing
  6. O'girilmoq; ishni bajarmoq
  7. Yashil miltillovchi rang belgisini yoqing
  8. Ekranda tasvirni ko'rsatish "Orqaga"
  9. 720 daraja haydash
  10. Signalni o'ynatish "STOP"

3-muammoni yechimiga qaramasdan o'zingiz hal qilishga harakat qiling! Omad!

"Amallar" panelining dastur bloklari ko'rib chiqishning oldingi qismlarida muhokama qilingan va ushbu maqolada men "Operatorni boshqarish" yorlig'idagi bloklar haqida gapiraman.

Ushbu bloklarni dasturning "regulyatorlari" sifatida ko'rsatish mumkin: ular dasturning harakatini to'xtatish va davom ettirish, keyingi filialga o'tish yoki aylana bo'ylab borishni buyuradilar.

NXT bilan taqqoslaganda, 2 ta yangi blok qo'shildi:

  • Boshlanish - NXTda dasturning boshlanishi bir xil bo'lib, dastur ochilganda darhol o'rnatildi.
  • Tsiklni to'xtatish - NXTda bunday blok oddiygina yo'q edi. Agar shunga o'xshash funksiyani amalga oshirish kerak bo'lsa, biz o'zgaruvchilardan foydalanishimiz kerak edi.
Operator boshqaruv bloklarining umumiy ro'yxati quyidagicha ko'rinadi:
  • Boshlash
  • Kutish
  • Oʻzgartirish
  • Tsiklni to'xtatish


"Boshlash" ni bloklash

Siz barcha EV3 dasturlarining birinchi bloki yashil o'qli blok ekanligini payqadingiz. Ushbu blok "Boshlash". Birorta ham dastur busiz bajarolmaydi - bu erda buyruq bajarilishi boshlanadi. Agar siz bloklar ketma-ketligi oldiga "Boshlash" ni qo'ymasangiz, unda bunday dastur bajarilmaydi.
Misol uchun, quyida keltirilgan dasturga ko'ra, robot o'q atrofida aylanadi (yuqori harakatlar ketma-ketligi amalga oshiriladi), lekin audio fayllarni o'ynatmaydi va tugmachalarni yoqmaydi ("Ishga tushirish" blokisiz pastki ketma-ketlik faol emas):

EV3 ko'p vazifalarni qo'llab-quvvatlaydi, ya'ni. dasturda bir nechta buyruqlar ketma-ketligi bo'lishi mumkin. Bundan tashqari, ushbu ketma-ketliklar o'zlarining "Boshlash" blokiga ega bo'lishi yoki bitta "Boshlash" dan chiqishi mumkin:


Barcha bunday ketma-ketliklar bir vaqtning o'zida bajariladi.

Iltimos, blokdagi yashil o'q dekorativ element emasligini unutmang. Agar qurilma kompyuterga ulangan bo'lsa (qanday bo'lishidan qat'iy nazar: usb, wi-fi yoki bluetooth orqali), u holda o'qni bosish ushbu ketma-ketlikni bajarish uchun ishga tushiradi.

"Kutish" ni bloklash

Ushbu blok ham eng ko'p ishlatiladiganlardan biridir. Dastur "muzlaydi" - dasturning keyingi bloklari bajarilmaydi - va ma'lum vaqtni yoki ma'lum bir sensor qiymatini kutadi.
"Kutish" qo'rqinchli bo'lishi mumkin bo'lgan juda ko'p rejimlarga ega:


Lekin, aslida, hamma narsa juda oddiy. Barcha rejimlarni toifalarga bo'lish mumkin:
  • vaqt bo'yicha - keyingi bloklarni bajarishni boshlashdan oldin blok belgilangan soniyalar sonini kutadi
  • Sensorga ko'ra:
    • taqqoslash - blok blokda ko'rsatilgan muayyan sensor o'qishini kutadi
    • o'zgartirish - blok sensorning o'qishini dastlabki qiymatga nisbatan belgilangan miqdorga o'zgartirishni kutadi. Bundan tashqari, siz nafaqat qiymatning o'lchamini, balki uning yo'nalishini ham tanlashingiz mumkin - qiymatni kamaytirish, oshirish yoki istalgan yo'nalishda.
Keling, har bir blok rejimiga ega dasturlarning misollarini ko'rib chiqaylik.
Birinchi dasturda tugmalarning orqa yorug'ligi o'zgaradi. Orqa yorug'lik bir soniya davomida yashil, keyin 1 soniya davomida qizil bo'ladi va keyin standart rejimga o'tadi - yashil rangda miltillaydi:

Ikkinchi dastur - Kegelring musobaqasidagi klassik yechimning boshlanishi: robot o'z o'qi atrofida aylanib, oldida qutichani ko'rmaguncha:

Quyidagi dastur A motorini yoqadi va u 5 marta aylantirgandan so'ng uni o'chiradi:

Ushbu qurilmaning bluetooth bilan ishlashi har qanday sensor bilan ishlashdan farq qilmaydi. Masalan, quyidagi dastur "HI" xabarini kutadi va orqa yorug'likni yashil rangga aylantiradi va ovoz faylini o'ynaydi:

"Tsikl" bloki

Bu maxsus blok - uning ichiga boshqa bloklarni kiritish mumkin. Ichkaridagi bloklar takrorlanadi. Loop blok rejimlari sikl qachon tugashini aniqlaydigan usulni belgilaydi. Biz ushbu rejimlarning aksariyatini oldingi kutish blokidan allaqachon bilamiz, biroq bir nechta yangilari qo'shildi:

  • Cheksiz - bu tsikl dasturni to'xtatishga majbur bo'lgunga qadar ishlaydi
  • Hisoblash - tsikl ma'lum bir necha marta takrorlanadi
  • Mantiqiy qiymat - berilgan qiymat rost bo'lguncha tsikl takrorlanadi
  • Vaqt - tsikl belgilangan vaqt davomida takrorlanadi
  • Sensorni o'qish:
    • taqqoslash - sensor belgilangan qiymatni qabul qilmaguncha tsikl takrorlanadi
    • o'zgartirish - sensor ko'rsatkichi dastlabki qiymatga nisbatan belgilangan miqdorga o'zgarmaguncha tsikl takrorlanadi.
Loop nomi blokning tepasida yoziladi - 01, 02, .... Bu nomdan keyinroq tavsiflanadigan tsiklni uzish blokida foydalanish mumkin.
Keling, misollarni ko'rib chiqaylik. Ushbu dasturga ko'ra, robot to'g'ridan-to'g'ri harakat qiladi va dastur to'xtatilgunga qadar aylanadi (cheksiz pastadir ishlatiladi):

Quyidagi dastur sensorli sensordan foydalanadi. U bosilmaguncha robot o'rta motorni avval soat yo'nalishi bo'yicha, keyin esa teskari yo'nalishda aylantiradi. Sensorni bosgandan so'ng, vosita to'xtaydi:

Hisoblagich tsikli sizga notani 10 marta o'ynashga imkon beradi:

Mantiqiy qiymat rejimi bilan siz hali o'rganilmagan sensorli so'rov bloklaridan foydalanishingiz kerak bo'ladi. Bu dastur robotni 20 sm dan kamroq masofadagi ob'ektni ko'rmaguncha (tsiklning birinchi bloki) yoki sensorli sensor bilan to'siqni (tsiklning ikkinchi bloki) urmaguncha oldinga siljishga majbur qiladi. Natija mantiqiy operatsiya"OR" tsiklning uchinchi blokini beradi:


"O'tish" bloki

NXT-da shunga o'xshash blok mavjud; u o'zgaruvchining qiymatiga yoki sensorning o'qishiga qarab, bajarishga imkon beradi. turli xil ketma-ketliklar harakatlar.
Ushbu harakatlar ketma-ketligini tugatgandan so'ng, dastur "Switch" dan keyingi bloklarni bajaradi.
Ushbu blokning rejimi qaysi sensor yoki o'zgaruvchan qiymat ishlatilishini aniqlaydi. Xuddi shu rejimlar "Tsikl" bloki sifatida ishlatiladi: siz har qanday sensordan (rangli, giroskopik, infraqizil, ultratovushli, motor aylanishi va boshqalar), raqamli yoki matn qiymati, bluetooth xabari.
Misol uchun, ushbu dasturga ko'ra, robot birinchi navbatda o'z o'qi atrofida 5 motorli aylanish uchun aylanadi, so'ngra giroskop sensori ko'rsatkichlariga qarab, oldinga yoki orqaga harakat qiladi. Agar giroskop tomonidan aniqlangan burchak 90 darajadan past bo'lsa, robot oldinga siljiydi. Agar burchak 90 darajadan past bo'lsa, robot orqaga qarab ketadi.

Quyidagi dastur qora chiziq bo'ylab haydash uchun oddiy o'rni boshqaruvchisini amalga oshirishdir:

Oldingi ikkala misolda "Switch" blokida voqealarni rivojlantirish uchun faqat 2 ta variant mavjud edi. Lekin, aslida, bu blokda ko'proq imkoniyatlar bo'lishi mumkin. Masalan, agar robot ob'ekt rangini aniqlasa, u juda ko'p variantlardan birini tanlashi mumkin:


Ushbu dasturda robot qizil, ko'k, yashil va rang yo'qligini aniqlaydi. U ranglarni nomlaydi, shuningdek, qizil va yashil ranglar uchun tugmachalarning orqa yorug'ligini yoqadi va ko'k rangda oldinga siljiydi. Sensor aniqlay oladigan qolgan ranglarni qo'shishingiz mumkin - qora, sariq, oq, jigarrang - yuqori variantda joylashgan kichik "+" tugmasi (qizil rang bilan o'ralgan).
Ko'p sonli variantlar bilan (yuqoridagi misolda bo'lgani kabi) "Switch" bloki juda noqulay va ishlash uchun noqulay bo'ladi. Bunday holda, blokni "tekis rejim" ga o'tkazish mumkin:

Yassi/tafsilot rejimlari o'rtasida almashinadigan tugma qizil rangda aylana bo'ladi.

"Tsiklni uzilish" ni bloklash

Bu blok yangi, NXTda shunga o'xshash blok yo'q edi. Bu sizga sikldan chiqish imkonini beradi - siklning qolgan bloklari bajarilmaydi va dastur tsikldan keyin bloklarga o'tadi. Blokning "sarlavhasi" bajarilishi kerak bo'lgan tsiklning nomini belgilaydi.
Masalan, dasturdagi tsikl 5 marta takrorlanishi kerak, lekin agar ob'ektgacha bo'lgan masofa 50 santimetrdan oshsa, tsikl erta tugaydi va robot tovush ohangini o'ynaydi:

Ushbu blokning o'ziga xosligi shundaki, u uzilishli pastadir ichida joylashgan bo'lishi shart emas. Misol uchun, quyidagi dastur, aks ettirilgan yorug'lik yorqinligi 50 dan katta bo'lsa, tsiklning necha marta takrorlanishini chop etadi. Ammo dastur ishlayotgan paytda sensorli sensor bosilsa, tsikl to'xtaydi va dastur to'xtaydi:

Salom. Maqolalarimda men sizni LEGO NXT Mindstorms 2.0 mikrokompyuterini dasturlash asoslari bilan tanishtirmoqchiman. Ilovalarni ishlab chiqish uchun men foydalanaman Microsoft platformalari Robotics Developer Studio 4 (MRDS 4) va National Instruments LabVIEW (NI LabVIEW). Mobil robotlarni avtomatik va avtomatlashtirilgan boshqarish vazifalari ko‘rib chiqiladi va amalga oshiriladi. Biz oddiydan murakkabga o'tamiz.

O'quvchilardan ba'zi savollar va sharhlarni kutish.

Nima uchun NXT Mindstorms 2.0? Chunki ularning loyihalari uchun bu to'plam Bu menga eng mos bo'lib tuyuldi, chunki NXT mikrokompyuteri MRDS 4 va NI LabVIEW platformalari bilan to‘liq mos keladi va bu to‘plam turli xil robot konfiguratsiyalarini yig‘ish nuqtai nazaridan ham juda moslashuvchan – robotni yig‘ishga minimal vaqt sarflanadi.

Nima uchun MRDS 4 va NI LabVIEW platformalari? Tarixiy jihatdan shunday bo'lgan. Universitetda yuqori kurslarda o'qiyotganda, rivojlanish vazifasi qo'yildi mashg'ulot kurslari ushbu platformalardan foydalanish. Bundan tashqari, platformalarni o'rganish juda oson va funktsionaldir, ulardan foydalanib, siz robotni boshqarish, foydalanuvchi interfeysini ishlab chiqish va virtual muhitda test o'tkazish uchun dastur yozishingiz mumkin (MRDS 4 misolida).

Sizning bu darslaringiz kimga kerak bo'lsa ham, Internetda robototexnika loyihalari juda ko'p! Ushbu kombinatsiyadan (NXT+MRDS 4/NI LabVIEW) foydalanadigan o'quv maqolalari deyarli yo'q, asosan mahalliy dasturlash muhitidan foydalaniladi va undagi hamma narsa mutlaqo ahamiyatsiz. Robototexnika, dasturlash bilan qiziqqan va NXT to'plamiga ega bo'lgan har bir kishi (va ularning juda ko'plari bor), har qanday yoshdagi auditoriya.

Grafik dasturlash tillari yomon va ularda dasturlashuvchilar bid'atchilardir! Grafik dasturlash tillari, ya'ni MRDS 4 va NI LabVIEW, shubhasiz, o'zlarining kamchiliklariga ega, masalan, tor vazifalarga yo'naltirilgan, ammo baribir ular funksionallik jihatidan matn tillaridan unchalik kam emas, ayniqsa NI LabVIEW dastlab ishlab chiqilganligi sababli. oson til ilmiy va muhandislik muammolarini hal qilish uchun o'zlashtirishda, buning uchun u juda ko'p zarur kutubxonalar va vositalarni o'z ichiga oladi. Shuning uchun ushbu grafik tillar bizning muammolarimizni hal qilish uchun eng mos keladi. Va buning uchun bizni ustunga yoqishingiz shart emas.

Bularning barchasi bolalarcha ko'rinadi va umuman jiddiy emas! Vazifa algoritmlarni amalga oshirish, dasturlash, robototexnika, real vaqtda tizimlarning asoslari va tamoyillarini sxemalar va protokollarni o'rganmasdan o'rgatish bo'lsa, bu arzon bo'lmasa ham (NXT to'plamiga nisbatan) juda mos vositadir. Xuddi shu maqsadlar uchun to'plamlar Arduino asoslangan, lekin bu kontroller MRDS 4 va NI LabVIEW bilan deyarli mos kelmaydi va bu platformalarning o'ziga xos jozibasi bor.

Amaldagi texnologiyalar chiriyotgan kapitalistik mamlakatlar mahsuli, muallif esa xalq dushmani va G‘arb fitnachilarining sherigi! Afsuski, elektronika sohasidagi aksariyat texnologiyalar va kompyuter texnologiyasi Men G'arbdan kelganman, agar ular menga mahalliy ishlab chiqarishning o'xshash texnologiyalarini ko'rsatishsa, juda xursand bo'laman. Bu orada bor narsamizdan foydalanamiz. Va bu haqda maxsus xizmatlarga xabar berib, menga nisbatan kin tutishning hojati yo‘q.

MRDS 4 va NI LabVIEW platformalari haqida qisqacha ma'lumot.

Keling, ba'zi terminologiyaga aniqlik kiritaman. Platforma deganda, bu holda biz turli xil vositalar to'plamini, masalan, MRDSdagi VPL tilini, shuningdek, dasturni bajarish muhitini, ya'ni. Ilovalarni bajariladigan (*.exe) fayllarga to'g'ridan-to'g'ri kompilyatsiya qilish yo'q.

2006 yilda Microsoft platforma yaratilishini e'lon qildi Microsoft Robotics Developer Studio(batafsil ma'lumot Vikipediya maqolasida). MRDS robototexnika va simulyatsiya uchun Windows asosidagi ilovalarni ishlab chiqish muhitidir. Hozirgi vaqtda tegishli Microsoft versiyasi Robotics Developer Studio 4. Xususiyatlariga quyidagilar kiradi: VPL grafik dasturlash tili, Web va Windows-ga asoslangan interfeyslar, VSE simulyatsiya muhiti, sensorlar, mikrokontroller va robot aktuatorlariga soddalashtirilgan kirish, C# dasturlash tilini qo‘llab-quvvatlash, ko‘p tarmoqli dasturlash va taqsimlangan bajarish uchun kutubxonalar CCR ilovalari va DSS, ko'plab robot platformalarini qo'llab-quvvatlash (Eddie, Boe - Bot, CoroBot, iRobot, LEGO NXT va boshqalar).

LabVIEW (Laborator Virtual Instrumentation Engineering Workbench) National Instruments-dan "G" grafik dasturlash tilida yaratilgan dasturlarni ishlab chiqish muhiti va platformasi (batafsil ma'lumot uchun Vikipediya maqolasiga qarang). LabVIEW ma'lumotlarni yig'ish va qayta ishlash tizimlarida, shuningdek, texnik ob'ektlar va texnologik jarayonlarni boshqarish uchun ishlatiladi. Mafkuraviy jihatdan, LabVIEW SCADA tizimlariga juda yaqin, ammo ulardan farqli o'laroq, u ko'proq jarayonlarni boshqarishning avtomatlashtirilgan tizimlari (avtomatlashtirilgan boshqaruv tizimlari) sohasidagi muammolarni hal qilishga qaratilgan. texnologik jarayon), ASNI hududida qancha ( avtomatlashtirilgan tizimlar ilmiy tadqiqot). LabVIEW-da qo'llaniladigan "G" grafik dasturlash tili ma'lumotlar oqimi arxitekturasiga asoslangan. Bunday tillardagi operatorlarning bajarilish ketma-ketligi ularning paydo bo'lish tartibi bilan emas (imperativ dasturlash tillarida bo'lgani kabi), balki ushbu operatorlarning kirishlarida ma'lumotlar mavjudligi bilan belgilanadi. Ma'lumotlar bilan bog'liq bo'lmagan operatorlar tasodifiy tartibda parallel ravishda bajariladi. LabVIEW dasturi virtual vosita (inglizcha: Virtual Instrument) deb ataladi va ikki qismdan iborat:

  • virtual asbobning mantig'ini tavsiflovchi blok diagrammasi;
  • virtual asbobning foydalanuvchi interfeysini tavsiflovchi old panel.

LEGO NXT Mindstorms 2.0 to'plamiga qisqacha qarash.

NXT to'plami boshqaruv bloki, to'rtta datchik va uchta servodan iborat. Boshqaruv bloki quyidagilarni o'z ichiga oladi:
  • 32-bit AVR mikrokontrolleri 256 KB FLASH xotira va 64 KB operativ xotira bilan 7;
  • 4 KB FLASH xotira va 512 bayt operativ xotiraga ega 8 bitli AVR mikrokontrolleri;
  • Bluetooth V 2.0 radio moduli;
  • USB port;
  • Servolarni ulash uchun 3 ta ulagich;
  • Sensorlarni ulash uchun 4 ta ulagich;
  • 99x63 pikselli LCD displey;
  • karnay;
  • 6 ta AA batareyalari uchun ulagich.
Sensorlar (turli konfiguratsiyalarda mavjud bo'lgan turli xil sensorlar to'plami):
  • ultratovush sensori;
  • ikkita teginish sensori (sensorli sensorlar);
  • rangni aniqlash sensori.


1-rasm - NXT mikrokompyuteri ulangan sensorlar va aktuatorlar

Va, albatta, to'plam LEGO Technic forma faktoridagi turli LEGO qismlarini o'z ichiga oladi, ulardan aktuatorlar va qo'llab-quvvatlovchi tuzilmalar yig'iladi.


2-rasm - LEGO Technic forma faktoridagi tafsilotlar

Biz birinchi arizani yozyapmiz.

Keling, birinchi arizani yozamiz. Keling, klassik tarzda, ushbu ilova“Salom, dunyo!” matnini aks ettiradi. Amalga oshirish MRDS 4 va NI LabVIEW-da navbatma-navbat amalga oshiriladi, bu jarayonda biz har bir platformaning o'ziga xos xususiyatlarini ko'rib chiqamiz.

Biz birinchi navbatda MRDS 4 va NI LabVIEW platformalarini o'rnatamiz; MRDS 4 bo'lsa, o'rnatish yo'li kirill (rus harflari) dan iborat bo'lmagan papkada amalga oshirilishi kerak, qayd yozuvi foydalanuvchi nomi ham faqat lotin harflaridan iborat bo'lishi kerak.

1. MRDS 4 platformasi.
VPL muhitini ishga tushiring (Ishga tushirish menyusi - Barcha dasturlar - Microsoft Robotics Developer Studio 4 - Visual dasturlash tili). Bu muhit VPL tilida ilovalarni ishlab chiqish va VSE virtual muhitida test o'tkazish imkonini beradi. VPL dasturi - bu o'zaro bog'langan bloklardan tashkil topgan diagramma. Ochilgan oynada standart buyruqlar paneli va menyudan tashqari 5 ta asosiy oyna mavjud:
  1. Asosiy harakatlar - doimiy, o'zgaruvchan, shart va boshqalar kabi operatorlarni amalga oshiradigan asosiy bloklarni o'z ichiga oladi;
  2. Xizmatlar - MRDS platformasining funksionalligiga kirishni ta'minlaydigan bloklarni o'z ichiga oladi, masalan, robotning har qanday apparat komponenti bilan o'zaro ishlash bloklari yoki dialog oynasini chaqirish uchun bloklar;
  3. Loyiha - loyihaga kiritilgan diagrammalarni, shuningdek, turli xil konfiguratsiya fayllarini birlashtiradi;
  4. Xususiyatlar - tanlangan blokning xususiyatlarini o'z ichiga oladi;
  5. Diagrammalar oynasi - to'g'ridan-to'g'ri diagrammani o'z ichiga oladi ( manba kodi) ilovalar.

3-rasm - VPL dasturlash muhiti

Keling, quyidagi harakatlar ketma-ketligini bajaramiz:

2. NI LabVIEW platformasi.
Ushbu platformada hamma narsa deyarli bir xil tarzda amalga oshiriladi. LabVIEW muhitini ishga tushiramiz. Oldimizda ikkita oyna paydo bo'ladi, birinchisi foydalanuvchi interfeysini amalga oshirish uchun mo'ljallangan Old panel ( ko'rinish virtual qurilma), ikkinchisi dastur mantig'ini amalga oshirish uchun blok diagrammasi.


8-rasm - LabVIEW muhiti Windows

Blok diagrammasi oynasidan foydalanamiz. Keling, quyidagi amallarni bajaramiz:

Xulosa

  • Biz ko'rib chiqdik dasturiy platformalar NXT mikrokompyuter ilovalarini ishlab chiqish uchun.
  • Biz MRDS 4 va NI LabVIEW platformalarida ilovalarni ishlab chiqishning asosiy tamoyillarini ko‘rib chiqdik.
  • Biz muhitning interfeysi bilan tanishdik.
Keyingi maqolalarda biz to'g'ridan-to'g'ri NXT dasturlash bilan shug'ullanamiz. LabVIEW muhiti uchun Internetda juda ko'p o'quv materiallari mavjud, ammo VPL uchun kamroq. Men ikkala platformaning ma'lumotnomasini o'rganishni tavsiya qilaman (ingliz tilini bilish talab qilinadi), ushbu qo'llanmalarda NXTsiz amalga oshirilishi mumkin bo'lgan ko'plab misollar, shuningdek, quyidagi kitoblar mavjud:
  • LabVIEW da NXT mikrokompyuterini dasturlash - Lidiya Beliovskaya, Aleksandr Beliovskiy,
  • Microsoft Robotics Developer Studio. Robotlarni boshqarish algoritmlarini dasturlash - Vasiliy Gay.
Maqolalarimda faqat loyihalarimni tasvirlab beraman, chunki... Men ma'lumotni bir manbadan boshqasiga qayta yozishning ma'nosini ko'rmayapman. Men har qanday konstruktiv tanqidni qabul qilaman va ko'rib chiqilgan platformalar bo'yicha har qanday savollarga javob beraman. Oldindan rahmat!

Lego yaratilishining cho'qqisi LEGO Mindstorms Ev3 dasturlashtiriladigan konstruksiya to'plamlarining chiqarilishi edi. O'yinchoq o'n yoshdan oshgan bolalar uchun mo'ljallangan.

Endi mindstorms ev3-ni maxsus do'konlarda yoki Internetda muammosiz sotib olish mumkin. Ular muayyan harakatlarni bajarish uchun osongina dasturlashtirilgan.

Dasturlash muhitini sozlash

Robot uchun buyruqlar yozishni boshlashdan oldin, dasturni o'rnatishingiz kerak.

Lego mindstorms ev3 bilan ishlash uchun kompyuter tizimi talablari:

  • OS Windows XP, 7, 8 yoki MacOs (10.6-10.8);
  • 2 GB operativ xotira va 750 MB disk maydoni.

USB yordamida muhitni o'rnatishda o'qituvchi yoki talaba versiyasini tanlang.

O'rnatishdan so'ng biz loyihani yaratamiz, u papka sifatida ko'rsatiladi. Boshqaruv panelida biz yaratmoqchi bo'lgan narsalarni, dasturlashni yoki tajriba o'tkazishni tanlaymiz. Datchiklarning ishlashini o'rganish uchun tajriba yaratish tavsiya etiladi.

Robotni boshqarish dasturi bloklardan, u bajaradigan ketma-ket operatsiyalardan iborat bo'lib, o'z navbatida har bir alohida blok o'z rejimiga ega. Misol uchun, vosita boshqaruv blokining rejimi to'xtash qobiliyatidir. Ekranda chop etilgan barcha belgilarni batafsil o'rganing.

Ekranda yorliqlarni o'z ichiga olgan menyu mavjud:

  • harakat;
  • operator boshqaruvi;
  • Sensor;
  • ma'lumotlar operatsiyalari;
  • mening bloklarim va boshqalar.

Ushbu menyudan foydalanib, siz robotni turli harakatlarni bajarish uchun dasturlashingiz mumkin. Misol uchun, turli mexanizmlarning ishlashi uchun mas'ul bo'lgan yorliqda siz harakatlanish, to'xtatish yoki ishga tushirish uchun vosita rejimini o'rnatishingiz mumkin. U erda siz vaqtni, miqdorni va aylanish burchagini o'rnatishingiz mumkin.

"Ovoz" blokida siz robotni o'ynash uchun dasturlashingiz mumkin tovush signallari. Ushbu signallarni mikrofon yordamida yuklash yoki yozib olish mumkin. Dasturni boshqarishning muhim elementi menyuning operatorlarni boshqaruvchi qismidir. Unda dasturning o'zi harakatini boshqarishingiz mumkin.

Bu yerda dasturga quyidagi buyruqlarni berishingiz mumkin:

  • kutishni boshlash;
  • tsiklni takrorlash;
  • bloklar o'rtasida almashish;
  • tsiklni tugatish.

Lego mindstorms ev3 ko'p vazifali bo'lib, u bir nechta buyruqlar ketma-ketligini o'z ichiga oladi. Siz dasturga nafaqat harakatlaringizni, balki ularni bajarish ketma-ketligini ham dasturlashingiz mumkin.

Tegishli menyuning barcha mumkin bo'lgan buyruqlarini birlashtirib, siz murakkab traektoriyalar va konstruktor xatti-harakatlarining turlarini yaratishingiz mumkin.

LEGO Ta'lim aql bo'ronlari EV3: Robohandni dasturlash (Robohand H25):