Biz .NET dan Lego Mindstorms EV3 bilan ishlaymiz. Miyalaringizni Lego Mindstorms-da almashtiring

Uy / Yoqilmaydi

Agar siz, biz kabi, standart EV3 sensorlarining imkoniyatlariga ega bo'lmasangiz, robotlaringizda sensorlar uchun 4 ta port yetarli emas yoki siz robotingizga ba'zi ekzotik tashqi qurilmalarni ulamoqchi bo'lsangiz - bu maqola siz uchun. Ishoning, EV3 uchun uy qurilishi sensori ko'rinadiganidan osonroqdir. Eksperiment uchun eski radiodan "tovush balandligi tugmasi" yoki tuproq namligi sensori sifatida gul idishidagi erga yopishtirilgan bir nechta mixlar juda mos keladi.

Ajablanarlisi shundaki, har bir EV3 sensor porti asosan NXT va uchinchi tomon sensorlari bilan muvofiqligi uchun bir qancha turli protokollarni yashiradi. Keling, EV3 kabeli qanday ishlashini ko'rib chiqaylik


Bu g'alati, lekin qizil sim tuproqli (GND), yashil sim 4,3V quvvat manbaining ortiqcha qismidir. Moviy sim I2C avtobusi uchun SDA va UART protokoli uchun TX hisoblanadi. Bundan tashqari, ko'k sim EV3 uchun analog-raqamli konvertorning kirishidir. Sariq sim I2C avtobusi uchun SCL va UART protokoli uchun RX hisoblanadi. Oq sim NXT sensorlari uchun analog-raqamli konvertorning kirishidir. Qora - raqamli kirish, NXT bilan mos keladigan sensorlar uchun - bu GND-ni takrorlaydi. Oson emas, shunday emasmi? Keling, tartibda boraylik.

EV3 analog kirish

Har bir sensor portida analog-raqamli konvertor kanali mavjud. U sensorli sensor (tugma), aks ettirilgan yorug'lik va atrof-muhit yorug'ligi rejimida NXT yorug'lik sensori va rang sensori, NXT tovush sensori va NXT termometri kabi sensorlar uchun ishlatiladi.

Diagramma bo'yicha ulangan 910 Ohm qarshilik nazoratchiga ushbu portni analog kirish rejimiga o'tkazish kerakligini aytadi. Ushbu rejimda siz har qanday analog sensorni EV3 ga ulashingiz mumkin, masalan, Arduino-dan. Bunday sensor bilan almashinuv kursi soniyada bir necha ming so'rovga yetishi mumkin, bu sensorning eng tez turi.

Nur sensori

Termometr

Tuproq namligi sensori

Siz shuningdek ulanishingiz mumkin: mikrofon, tugma, IR masofa o'lchagich va boshqa ko'plab umumiy sensorlar. Sensor uchun 4,3V quvvat yetarli bo'lmasa, uni EV3 kontroller tomonida joylashgan USB portidan 5V bilan quvvatlantirishingiz mumkin.

Yuqorida aytib o'tilgan "ovoz balandligi tugmasi" (shuningdek, o'zgaruvchan qarshilik yoki potansiyometr sifatida ham tanilgan) ajoyib namuna analog sensor - uni quyidagicha ulash mumkin:

Standart LEGO dasturlash muhitida bunday sensordan qiymatlarni o'qish uchun siz ko'k RAW blokidan foydalanishingiz kerak

I2C protokoli

Bu raqamli protokol, masalan, NXT ultratovush sensori va ko'plab Hitechnic sensorlari, masalan, IR Seeker yoki Color Sensor V2. Boshqa platformalar uchun, masalan, Arduino uchun, juda ko'p i2c sensorlari mavjud, siz ularni ham ulashingiz mumkin. Sxema quyidagicha:

82 ohm qarshilik LEGO guruhi tomonidan tavsiya etiladi, ammo turli manbalarda 43 ohm yoki undan kam bo'lganligi aytiladi. Aslida, biz bu qarshiliklardan butunlay voz kechishga harakat qildik va hech bo'lmaganda "stolda" hamma narsa ishlaydi. Har xil turdagi shovqinlar sharoitida ishlaydigan haqiqiy robotda SCL va SDA liniyalari yuqoridagi diagrammada ko'rsatilganidek, qarshilik orqali quvvat manbaiga ulangan bo'lishi kerak. EV3-dagi i2c ish tezligi juda past, taxminan 10 000 kbps, shuning uchun hamma uchun sevimli Hitechnic Color Sensor V2 juda sekin :)

Afsuski, LEGO-dan standart EV3-G uchun i2c sensori bilan ikki tomonlama aloqa uchun to'liq huquqli blok mavjud emas, ammo RobotC, LeJOS yoki EV3 Basic kabi uchinchi tomon dasturlash muhitlaridan foydalangan holda deyarli har qanday i2c sensorlari bilan o'zaro aloqada bo'lishingiz mumkin. .

EV3 ning i2c protokoli yordamida ishlash qobiliyati ochiladi qiziqarli imkoniyat bir nechta sensorlarni bitta portga ulash uchun. I2C protokoli bitta avtobusga 127 tagacha tobe qurilmalarni ulash imkonini beradi. Tasavvur qila olasizmi? EV3 portlarining har biri uchun 127 ta sensor :) Bundan tashqari, ko'pincha i2c datchiklari to'plami bitta qurilmada birlashtirilgan, masalan, quyidagi fotosuratda 10 ta 1 datchik (kompas, giroskop, akselerometr, barometr va boshqalarni o'z ichiga oladi). )

UART

Deyarli barcha standart EV3 bo'lmagan sensorlar, sensorli sensordan tashqari, UART protokoli yordamida ishlaydi va shuning uchun ular bir xil konnektorlarga ega bo'lsa-da, sensorida UART o'rnatilmagan NXT kontrolleri bilan mos kelmaydi. portlar. Diagrammaga qarang, bu avvalgi holatlarga qaraganda biroz sodda:

UART sensorlari avtomatik ravishda EV3 bilan ishlash tezligiga mos keladi. Dastlab 2400 kbit / s tezlikda ulanadi, ular ish rejimlari va valyuta kurslari bo'yicha kelishib olishadi, keyin esa oshirilgan tezlikka o'tishadi. Turli sensorlar uchun odatiy almashinuv kurslari 38400 va 115200 kbit / s ni tashkil qiladi.
LEGO o'zining UART sensorlarida ancha murakkab protokolni amalga oshirdi, shuning uchun dastlab ushbu platforma uchun mo'ljallanmagan, ammo unga mos keladigan uchinchi tomon sensorlari yo'q. Shunga qaramay, ushbu protokol "uy qurilishi" ni ulash uchun juda qulaydir.
mikrokontrollerlar asosidagi sensorlar.
Arduino uchun mashhur LeJOS ishlab chiqaruvchisi Lawrie Griffits tomonidan yozilgan EV3UARTEmulation nomli ajoyib kutubxona mavjud bo'lib, u ushbu kengashni UART-LEGO-ga mos sensor sifatida ko'rsatishga imkon beradi. Uning LeJOS News blogida ushbu kutubxona yordamida gaz sensorlari, IMU sensori va raqamli kompasni ulashning ko'plab misollari mavjud.

Quyida videoda uy qurilishi sensoridan foydalanish misoli keltirilgan. Bizda asl LEGO masofa datchiklari yetarli emas, shuning uchun biz robotda uy qurilishi sensoridan foydalanamiz:


Robotning vazifasi - yashil katakdan boshlash, labirintdan (qizil hujayra) chiqish yo'lini topish va boshi berk ko'chaga kirmasdan, eng qisqa yo'ldan foydalanib, boshlang'ich nuqtaga qaytish.

An'anaga ko'ra, robotlar platformada qurilgan Lego Mindstorms EV3, LabVIEW grafik muhiti yordamida dasturlashtirilgan. Bunday holda, dasturlar EV3 boshqaruvchisida ishlaydi va robot avtonom ishlaydi. Bu erda men sizga bu haqda aytib beraman muqobil yo'l robot boshqaruvi - kompyuterda ishlaydigan .NET platformasidan foydalanish.

Ammo dasturlash bilan shug'ullanishdan oldin, bu foydali bo'lishi mumkin bo'lgan ba'zi holatlarni ko'rib chiqaylik:

  • Majburiy masofadan boshqarish noutbukdan robot (masalan, tugmalarni bosish orqali)
  • EV3 kontrolleridan ma'lumotlarni yig'ish va uni tashqi tizimda qayta ishlash talab qilinadi (masalan, IoT tizimlari uchun)
  • Boshqaruv algoritmini .NET da yozish va uni EV3 kontrolleriga ulangan kompyuterdan ishga tushirishni xohlagan boshqa holatlar.

.NET uchun LEGO MINDSTORMS EV3 API

EV3 boshqaruvchisi ketma-ket portga buyruqlar yuborish orqali tashqi tizimdan boshqariladi. Buyruq formatining o'zi Communication Developer Kitda tasvirlangan.

Ammo bu protokolni qo'lda amalga oshirish zerikarli. Shuning uchun, siz Brian Peek diqqat bilan yozgan tayyor .NET o'ramidan foydalanishingiz mumkin. Manba kodlari Ushbu kutubxona Github-da joylashgan va foydalanishga tayyor paketni Nuget-da topish mumkin.

EV3 Controllerga ulanish

Brick klassi EV3 boshqaruvchisi bilan aloqa qilish uchun ishlatiladi. Ushbu ob'ektni yaratishda siz ICommunication interfeysining amalga oshirilishini konstruktorga topshirishingiz kerak - bu EV3 kontrolleriga qanday ulanishni tavsiflovchi ob'ekt. UsbCommunication, BluetoothCommunication va NetworkCommunication (WiFi ulanishi) ilovalari mavjud.

Eng mashhur ulanish usuli Bluetooth orqali. Keling, ushbu ulanish usulini batafsil ko'rib chiqaylik.

Biz Bluetooth orqali kontrollerga dasturiy ravishda ulanishimizdan oldin, boshqaruvchi operatsion tizim sozlamalari yordamida kompyuterga ulangan bo'lishi kerak.

Tekshirish moslamasi ulangandan so'ng, ga o'ting bluetooth sozlamalari va COM portlari yorlig'ini tanlang. Biz nazoratchimizni topamiz, bizga kerak chiquvchi port. Biz uni BluetoothCommunication obyektini yaratishda aniqlaymiz.

Tekshirish moslamasiga ulanish uchun kod quyidagicha ko'rinadi:

Ommaviy async Task Connect(ICommunication communication) ( var aloqa = yangi BluetoothCommunication("COM9"); var g'isht = _brick = yangi Brick(aloqa); _brick.ConnectAsync(); ni kuting)

Majburiy emas, siz kontrollerga ulanish vaqti tugashini belgilashingiz mumkin:

Await _brick.ConnectAsync(TimeSpan.FromSeconds(5));

Qurilmaga USB yoki WiFi orqali ulanish xuddi shu tarzda amalga oshiriladi, bundan tashqari UsbCommunication va NetworkCommunication ob'ektlari ishlatiladi.

Tekshirgichda bajariladigan barcha keyingi harakatlar Brick ob'ekti orqali amalga oshiriladi.

Keling, dvigatellarni aylantiramiz

EV3 kontrolleridagi buyruqlarni bajarish uchun biz Brick obyektining DirectCommand xususiyatiga kiramiz. Birinchidan, dvigatellarni ishga tushirishga harakat qilaylik.

Faraz qilaylik, bizning motorimiz kontrollerning A portiga ulangan, keyin bu motorni 50% quvvatda ishga tushirish quyidagicha ko'rinadi:

_brick.DirectCommand.TurnMotorAtPowerAsync(OutputPort.A, 50) ni kuting;

Dvigatelni boshqarishning boshqa usullari mavjud. Masalan, StepMotorAtPowerAsync() va StepMotorAtSpeedAsync() usullari yordamida dvigatelni belgilangan burchakka aylantirishingiz mumkin. Bir nechta usullar mavjud, ular dvigatellarni yoqish rejimlarida - vaqt, tezlik, quvvat va boshqalar bo'yicha o'zgarishlar.

Majburiy to'xtatish StopMotorAsync() usuli yordamida amalga oshiriladi:

_brick.DirectCommand.StopMotorAsync(OutputPort.A, rost) ni kuting;

Ikkinchi parametr tormozdan foydalanishni ko'rsatadi. Agar siz uni noto'g'ri qilib qo'ysangiz, vosita to'xtab qoladi.

Sensorlardan qiymatlarni o'qish

EV3 kontrolleri sensorlarni ulash uchun to'rtta portga ega. Bunga qo'shimcha ravishda, motorlarda o'rnatilgan enkoderlar ham mavjud bo'lib, bu ularni sensor sifatida ishlatishga imkon beradi. Natijada, bizda qiymatlarni o'qish mumkin bo'lgan 8 ta port mavjud.

Qiymatlarni o'qish uchun portlarga Brick ob'ektining Portlar xususiyati orqali kirish mumkin. Portlar - bu kontrollerda mavjud bo'lgan portlar to'plami. Shuning uchun, ma'lum bir port bilan ishlash uchun uni tanlashingiz kerak. InputPort.One ... InputPort.Four sensor portlari va InputPort.A ... InputPort.D vosita kodlovchilaridir.

Var port1 = _brick.Ports;

EV3 dagi sensorlar turli rejimlarda ishlashi mumkin. Masalan, EV3 Color Sensor atrof-muhit yorug'ligini o'lchash, aks ettirilgan yorug'likni o'lchash yoki rangni aniqlash uchun ishlatilishi mumkin. Shuning uchun, sensorga uni qanday ishlatishni aniq "aytib berish" uchun biz uning rejimini o'rnatishimiz kerak:

Brick.Ports.SetMode(ColorMode.Reflective);

Endi sensor ulangan va uning ish rejimi o'rnatilgan bo'lsa, siz undan ma'lumotlarni o'qishingiz mumkin. Siz "xom" ma'lumotlarni, qayta ishlangan qiymatni va foiz qiymatini olishingiz mumkin.

Float si = _brick.Ports.SIValue; int raw = _brick.Ports.RawValue; bayt foiz = _brick.Ports.PercentValue;

SIValue xususiyati qayta ishlangan ma'lumotlarni qaytaradi. Bularning barchasi qaysi sensordan va qaysi rejimda ishlatilishiga bog'liq. Masalan, aks ettirilgan yorug'likni o'lchashda biz aks ettirilgan yorug'likning intensivligiga (qora / oq) qarab 0 dan 100 gacha qiymatlarni olamiz.

RawValue xususiyati ADC dan olingan xom qiymatni qaytaradi. Ba'zan uni keyingi qayta ishlash va foydalanish uchun ishlatish qulayroqdir. Aytgancha, EV3 ishlab chiqish muhitida "xom" qiymatlarni olish ham mumkin - buning uchun siz ko'k paneldagi blokdan foydalanishingiz kerak.

Agar siz foydalanayotgan sensor qiymatlarni foizlarda olishni kutsa, siz PercentValue xususiyatidan ham foydalanishingiz mumkin.

Buyruqlarni to'plamlarda bajarish

Aytaylik, bizda ikkita g'ildirakli robot arava bor va biz uni joyiga qo'ymoqchimiz. Bunday holda, ikkita g'ildirak teskari yo'nalishda aylanishi kerak. Agar biz DirectCommand-dan foydalansak va ikkita buyruqni ketma-ket boshqaruvchiga yuborsak, ularning bajarilishi orasida biroz vaqt o'tishi mumkin:

_brick.DirectCommand.TurnMotorAtPowerAsync(OutputPort.A, 50) ni kuting; kutish _brick.DirectCommand.TurnMotorAtPowerAsync(OutputPort.B, -50);

Ushbu misolda biz A motorini 50 tezlikda aylantirish buyrug'ini yuboramiz, bu buyruqni muvaffaqiyatli yuborganimizdan so'ng, B portiga ulangan motor bilan ham xuddi shunday takrorlaymiz. Muammo shundaki, buyruqlarni yuborish bir zumda sodir bo'lmaydi, shuning uchun motorlar turli vaqtlarda aylana boshlashi mumkin - buyruq B portiga, motor A uchun uzatilayotganda allaqachon aylana boshlaydi.

Dvigatellarni bir vaqtning o'zida aylantirish biz uchun juda muhim bo'lsa, biz buyruqlarni boshqaruvchiga "to'plam" da yuborishimiz mumkin. Bunday holda, DirectCommand o'rniga BatchCommand xususiyatidan foydalanishingiz kerak:

Brick.BatchCommand.TurnMotorAtPower(OutputPort.A, 50); _brick.BatchCommand.TurnMotorAtPower(OutputPort.B, -50); kuting _brick.BatchCommand.SendCommandAsync();

Endi bir vaqtning o'zida ikkita buyruq tayyorlanadi, shundan so'ng ular bitta paketda kontrollerga yuboriladi. Ushbu buyruqlarni olgan boshqaruvchi motorlarni bir vaqtning o'zida aylantira boshlaydi.

Yana nima qila olasiz

Aylanadigan motorlar va sensor qiymatlarini o'qishdan tashqari, siz EV3 boshqaruvchisida bir qator boshqa amallarni bajarishingiz mumkin. Men ularning har biri haqida batafsil to'xtalmayman, faqat nima qilish mumkinligi ro'yxatini sanab o'taman:

  • CleanUIAsync(), DrawTextAsync(), DrawLineAsync() va boshqalar - EV3 kontrollerining o'rnatilgan ekranini manipulyatsiya qilish
  • PlayToneAsync() va PlaySoundAsync() - tovushlarni ijro etish uchun o'rnatilgan dinamikdan foydalaning
  • WriteFileAsync() , CopyFileAsync() , DeleteFileAsync() (SystemCommand-dan) - fayllar bilan ishlash

Xulosa

Boshqaruv uchun .NET dan foydalanish Mindstorms robotlari EV3 turli olamlardagi texnologiyalar birgalikda qanday ishlashi mumkinligini yaxshi ko'rsatib beradi. .NET uchun EV3 API ni tadqiq qilish natijasida EV3 robotini kompyuterdan boshqarish imkonini beruvchi kichik dastur yaratildi. Afsuski, NXT uchun shunga o'xshash ilovalar mavjud, ammo EV3 ularni chetlab o'tdi. Shu bilan birga, ular robot futboli kabi boshqariladigan robot musobaqalarida foydalidir.

Ilovani quyidagi havoladan yuklab olish va oʻrnatish mumkin:

Agar sizda yangi dizayner haqida bilmoqchi bo'lgan savollaringiz bo'lsa (aniq bir narsa qanday ishlaydi, sensorlar yoki motorlar bilan tajriba o'tkazing) - bizga yozing - biz sizning takliflaringizni sinab ko'ramiz. Shunday qilib, siz EV3 haqida u sotuvga chiqarilishidan oldin ham ko'proq bilib olishingiz mumkin.

Endi hammasi ko'rib chiqishdan boshlanadi dasturiy ta'minot EV3 bloki (EV3 proshivka).

Yangi blokning xususiyatlaridan biri uning uzoq vaqt davomida yoqish va o'chirish. Vaqt nuqtai nazaridan, jarayon inklyuziya bilan taqqoslanadi Mobil telefon yoki uy routeri, ya'ni. 20-30 soniya. Yoqilgandan so'ng quyidagi menyu paydo bo'ladi:


Ko'rib turganingizdek, NXT blokiga nisbatan ko'p narsa o'zgardi: shriftlar sifati yaxshilandi, grafik elementlar ko'proq chizildi va oyna interfeysi yaxshilandi. Avvalo, bu endi ekran o'lchami kattalashgani bilan bog'liq - u NXT blokidagi kabi 100 ga 64 o'rniga 178 ga 128 pikselga aylandi. Integral tugmalar va aylantirish panellari bo'lgan oyna interfeysi mavjudligiga asoslanib, tashqi kabi qurilmalarni taxmin qilish mumkin. sensorli panel endi bu yanada mantiqiy bo'ladi.


Birinchi oynadan blokga yuklangan dasturlarni, shuningdek, bevosita blokda yaratilgan dasturlarni chaqirish mumkin. Bular. dasturni ishga tushirish uchun endi NXT blokiga qaraganda kamroq bosish kerak.

Yuklangan dasturlar orqali, shuningdek, ikkinchi va keyingi ekranlarga (menyu bandlari) navigatsiya boshqaruv tugmalari yordamida amalga oshiriladi, ulardan hozir 4 tasi mavjud.


Ikkinchi ekran - blokdagi fayl tizimi ob'ektlari bo'ylab harakatlanish imkonini beradi. Fayl tizimi endi an'anaviy ierarxiyani qo'llab-quvvatlaydi: fayllar va kataloglar.


Uchinchi ekranda quyi menyu - blok bilan turli xil amallarni bajarishga imkon beruvchi ilovalar mavjud:


Blok dasturining joriy versiyasida to'rtta shunday dastur mavjud:

  • Sensorlarni ko'rish
  • Dvigatelni boshqarish
  • Masofadan boshqarish pulti
  • Blokda dasturlash
To'rtinchi ekran - konfiguratsiya. Asosiy sozlamalarga qo'shimcha ravishda: tovush darajasi, harakatsizlik taymer, BlueTooth-ni yoqish va WiFi, qurilmaning dasturiy ta'minoti haqida ma'lumot olish imkonini beradi:



Muayyan menyu elementini/ilovasini tanlash klaviaturadagi o'rta tugma bilan sodir bo'ladi. Va har qanday menyu elementi yoki ilovasidan chiqish uchun siz endi asosiy tugmalardan alohida joylashgan - ekranning chap tomonida joylashgan "Chiqish" tugmasini bosishingiz kerak.

Endi siz uchinchi ekranga qaytib, ilovalar bilan tanishishni boshlashingiz kerak. Shunday qilib, "Datchiklarni ko'rish" ilovasi (Port View).

NXT blokidagi shunga o'xshash rejimdan farqli o'laroq, endi siz bir vaqtning o'zida blokga ulangan barcha 8 ta qurilma haqidagi ma'lumotlarni ko'rishingiz mumkin. Bundan tashqari, e'lon qilingan funksionallik avtomatik aniqlash datchiklar qaysi sensor qayerda ulanganligini qo'llaringiz bilan ko'rsatmaslikka imkon beradi.

Dvigatel enkoderlari ma'lumotlari tepada, sensorlar ma'lumotlari pastda ko'rsatiladi. Ekranning markazida - haqida ma'lumot maxsus qurilma(ma'lum bir portda), uni klaviaturadagi boshqaruv tugmalarini bosish orqali tanlash mumkin. Ma'lumotlar sensorning grafik tasvirini, uning nomini va joriy o'qishlarini o'z ichiga oladi:

Sensorli sensor:


Giro sensori:


Yoritilgan yorug'lik rejimida rang sensori:


Ultrasonik masofa sensori:

Aytgancha, sensor endi masofalarni millimetr aniqligi bilan o'lchashi mumkinligini va minimal o'lchangan masofa endi 3 sm ekanligini ko'rishingiz mumkin.

Chap motorli enkoderdan ma'lumot.


Keyingi dastur - bu motorni boshqarish. Asosan, bu motorlarni aylantirish uchun tugmalardan foydalanishga imkon beradi. Markaziy tugma bilan siz qaysi motorlarni aylantirishni tanlashingiz kerak. Va keyin ma'lum motorlarni aylantirish uchun yuqoriga va pastga yoki chapga va o'ngga juft tugmalardan foydalaning.


Uchinchi dasturni sinab ko'rishning iloji bo'lmadi, chunki EV3 to'plamining o'quv versiyasini standart yetkazib berish infraqizil masofa sensori va infraqizil mayoqni o'z ichiga olmaydi. Ammo, ko'rinishidan, ushbu ekranda siz qaysi motorlar infraqizil mayoqdan boshqarilishini sozlashingiz mumkin.


Albatta, eng ko'p qiziqarli dastur blokda dasturlashtirmoqda. U sezilarli darajada qayta ishlab chiqilgan: endi dastur 16 tagacha dastur elementini (bloklarini) o'z ichiga olishi mumkin va yaratilgan dasturlarni saqlash va, albatta, o'zgartirish uchun qayta ochish mumkin.


Dastur yozish ilovasi ochilganda, bo'sh bajarish tsikli (faqat bitta iteratsiya bajariladi) va birinchi blokni kiritish taklifi ko'rsatiladi. "Yuqoriga" tugmasi yordamida blokni kiritishingiz mumkin.


Ko'rsatilgan blokni tanlash oynasida 17 ta blok mavjud (6 ta harakat bloki va 11 kutish bloki) va joriy blokni o'chirish.



Bloklarni tanlash tartibi va ketma-ketligi dasturchi tomonidan belgilanadi. Bu har bir harakat blokidan keyin NXT blokida bo'lgani kabi kutish bloki bo'lishi kerak degani emas.

Dasturda tanlangan blok quyidagicha ko'rinadi:


Blokning harakatini markaziy tugmani bosish orqali aniqlash mumkin. Ushbu blok uchun, masalan, siz robotning aylanish burchagi va yo'nalishini o'zgartirishingiz yoki motorlarni butunlay to'xtatishingiz mumkin (masalan, oldingi kutish blokidan keyin).


Kursorni chapga yoki o'ngga siljitish orqali siz boshqa blokni kiritishingiz mumkin:


Masalan, masofa sensorida hodisani kutish bloki:


Va uning xatti-harakatlarini o'zgartiring (agar masofa 60 sm dan oshsa, hodisa yuz beradi):


Bloklar mavjud bloklar orasiga yoki hatto dastur boshida ham kiritilishi mumkin.


Kutish bloklariga ko'proq misollar:

Vaqtni kutish bloki (siz qancha kutishni aniq belgilashingiz mumkin):


Yoki giroskopik sensordan hodisani kutish uchun blok (siz sensorning burilish burchagini o'rnatishingiz mumkin).


Yana shuni ta'kidlash kerakki, sensorni avtomatik aniqlash funksiyasi qurilmadagi dasturlash jarayonini soddalashtiradi. Endi ba'zi sensorlar ma'lum portlarga ulanishi kerakligi haqidagi qoidaga rioya qilishning hojati yo'q.

Agar dastur bir necha marta bajarilishi kerak bo'lsa, boshqaruv siklining takroriy sonini o'zgartirish mumkin:


Dastur birinchi blokni tanlash orqali ishga tushiriladi:


Dasturni ishga tushirganingizda, ekranda quyidagilar ko'rsatiladi:


Dastur saqlanishi mumkin va keyinroq qidirish uchun fayl nomini belgilashingiz mumkin:



Harflar klaviatura yordamida tanlanadi (salom, sensorli panel!)

Agar siz saqlanmagan dasturni yopishga harakat qilsangiz, quyidagi unchalik aniq bo'lmagan xabar ko'rsatiladi va yoqimsiz ovoz chiqariladi:


Keyinchalik yaratilgan dasturni ochishingiz va unga o'zgartirishlar kiritishingiz mumkin.


Tabiiyki, faqat blokda yaratilgan dasturlar ochiladi.

Xulosa qilib, men blokni o'chirish qanday ko'rinishini ko'rsatmoqchiman:


Dizaynerdagi mikrokompyuterni Beaglebone yoki boshqasiga almashtirish g'oyasi yangi emas. Ammo EV3-ning chiqarilishi bilan nafaqat 100% analogni olish, balki legorobotning ishlashini oshirish ham mumkin bo'ldi.

Loyihaning video taqdimoti:

E VB Lego Mindstorms Ev3 tizimini apparat va dasturiy ta'minot darajasida to'liq qo'llab-quvvatlaydi, barcha Lego sensorlari va motorlari bilan 100% mos keladi. Blok xuddi shunday ishlaydi Lego bloki Mindstorms EV3:

BeagleBone qora— bitta taxtali Linux kompyuteri. Bu Raspberry Pi-ga raqobatchi. bor kuchli protsessor protsessor AM335x 720MHz ARM®, katta kirish/chiqish soni, imkoniyatlar qo'shimcha platalar bilan kengaytirilishi mumkin.

Lego Mindstorms EV3 ARM9 (TI Sitara AM180x) 300MHz protsessoriga ega, shuning uchun ARM Cortex-A8 (TI Sitara AM335x) 1GHz BeagleBone Black protsessoriga o'ting. hosildorlikni oshiradi, shuningdek, qo'shimcha kengaytirish kartalarini ulash mumkin bo'ladi!

Eng muhimi, Lego Mindstorms EV3 ga ega ochiq tavsif barcha dasturiy ta'minot va apparat vositalari!

Masalan, mashhur Rubik kubini yechish roboti yig‘ilib, namoyish etildi. Faqat EV3 o'rniga ular ishlab chiqilgan EVB ni o'rnatdilar. Sizni videoni tomosha qilishni taklif qilamiz:

Loyiha mualliflari allaqachon EVB ni ishlab chiqarish va sotish bilan shug'ullanmoqdalar. Ular 2015-yil aprel oyi oxirigacha ishlab chiqarishni sezilarli darajada kengaytirishni rejalashtirmoqda.Bundan tashqari, ular bir nechta mos keluvchi sensorlarni ishlab chiqdi va ishlab chiqarmoqda.

USB ulanishi

LEGO Mindstorms EV3 kompyuterga yoki boshqa EV3 ga USB ulanishi orqali ulanishi mumkin. Ulanish tezligi va barqarorligi Ushbu holatda har qanday boshqa usullardan, shu jumladan Bluetoothdan yaxshiroq.

LEGO Mindstorms EV3 ikkita USB portiga ega.

LEGO EV3 va boshqa LEGO EV3 bloklari o'rtasidagi aloqa zanjirli rejimda.

Daisy zanjir rejimi ikki yoki undan ortiq LEGO EV3 bloklarini ulash uchun ishlatiladi.

Ushbu rejim:

  • bir nechta LEGO Mindstorms EV3 ni ulash uchun mo'ljallangan;
  • ko'proq sensorlar, motorlar va boshqa qurilmalarni ulash uchun xizmat qiladi;
  • bir nechta LEGO Mindstorms EV3 (4 tagacha) o'rtasida aloqa o'rnatishga imkon beradi, bu bizga 16 tagacha tashqi port va bir xil miqdordagi ichki portlarni beradi;
  • asosiy LEGO Mindstorms EV3 dan butun zanjirni boshqarish imkonini beradi;
  • bilan ishlay olmaydi faol ulanish Wi-Fi yoki Bluetooth.

Daisy zanjirli ulanish rejimini yoqish uchun loyiha sozlamalari oynasiga o'ting va katakchani belgilang.

Ushbu rejim tanlanganda, har qanday dvigatel uchun biz ishlatiladigan EV3 blokini va kerakli sensorlarni tanlashimiz mumkin.

Jadvalda EV3 bloklaridan foydalanish variantlari ko'rsatilgan:

Harakat

O'rta dvigatel

Katta motor

Rulda boshqarish

Mustaqil boshqaruv

Giroskopik

Infraqizil

Ultrasonik

Dvigatelning aylanishi

Haroratlar

Energiya hisoblagichi

Ovoz

Bluetooth orqali ulanish

Bluetooth LEGO Mindstorms EV3 ga shaxsiy kompyuter, boshqa LEGO Mindstorms EV3, smartfonlar va boshqa Bluetooth qurilmalariga ulanish imkonini beradi. Aloqa diapazoni bo'yicha Bluetooth kanali- 25 m gacha.

Bitta LEGO Mindstorms EV3 ga 7 tagacha blokni ulashingiz mumkin. EV3 Master Brick har bir EV3 Slave-ga xabar yuborish va qabul qilish imkonini beradi. EV3 Slaves xabarlarni bir-biriga emas, faqat EV3 Master Brick-ga yuborishi mumkin.

Bluetooth orqali EV3 ulanish ketma-ketligi

Ikki yoki undan ortiq EV3 bloklarini Bluetooth orqali bir-biriga ulash uchun siz quyidagi amallarni bajarishingiz kerak:

1. Yorliq oching Sozlamalar.

2. tanlang Bluetooth va markaziy tugmani bosing.

3. Biz qo'ydik Belgilash katagi ko'rinish Bluetooth.

4. Bluetooth belgisi ("<") виден на верхней левой стороне.

5. Yuqoridagi tartibni kerakli miqdordagi EV3 Bricks uchun bajaring.

6. Ulanish yorlig'iga o'ting:

7. Qidiruv tugmasini bosing:

8. Ulanmoqchi bo'lgan (yoki ulanmoqchi bo'lgan) EV3 ni tanlang va markaziy tugmani bosing.

9. Birinchi va ikkinchi bloklarni kirish kaliti bilan bog'laymiz.

Agar siz hamma narsani to'g'ri qilsangiz, yuqori chap burchakda " belgisi paydo bo'ladi<>", agar ikkitadan ko'p bo'lsa, boshqa EV3 bloklarini xuddi shu tarzda ulang.

Agar siz LEGO EV3-ni o'chirib qo'ysangiz, aloqa uzilib qoladi va barcha amallarni takrorlashingiz kerak bo'ladi.

Muhim: har bir blokda o'z dasturi yozilgan bo'lishi kerak.

Misol dastur:

Birinchi blok: Sensorli sensor bosilganda, birinchi EV3 bloki matnni ikkinchi Blokka 3 soniya kechikish bilan uzatadi (Asosiy blok).

2-blok uchun dastur namunasi:

Ikkinchi blok birinchi blokdan matnni qabul qilishni kutadi va uni qabul qilgandan so'ng u 10 soniya davomida so'zni (bizning misolimizda "Salom" so'zini) ko'rsatadi (qul blok).

Wi-Fi orqali ulaning

U bilan uzoqroq muloqot qilish mumkin Wi-Fi ulanishi EV3 dagi USB portiga o'rnating.

Wi-Fi-dan foydalanish uchun siz USB ulagichi (Wi-Fi adapteri (Netgear N150 Wireless Adapter (WNA1100)) yordamida EV3 blokiga maxsus modul o'rnatishingiz kerak yoki siz Wi-Fi Dongle-ni ulashingiz mumkin.

© 2024 ermake.ru -- Kompyuterni ta'mirlash haqida - Axborot portali