Menü
Bedava
kayıt
ev  /  ÜZERİNDE/ İki veya daha fazla EV3 Brick'i bağlama. LEGO Mindstorms Education EV3 - Yapı Seti İncelemesi

İki veya daha fazla EV3 Brick'i bağlama. LEGO Mindstorms Education EV3 - Yapı Seti İncelemesi

Bireysel slaytlardaki sunumun açıklaması:

1 slayt

Slayt açıklaması:

2 slayt

Slayt açıklaması:

EV3 Brick Arayüzü EV3 Brick, robotlarınıza güç sağlayan kontrol merkezidir. Bir ekran, Brick kontrol düğmeleri ve dört ana pencereye sahip bir EV3 Brick arayüzü ile inanılmaz çeşitlilikte benzersiz EV3 Brick özelliklerine erişebilirsiniz. Bunlar, bir programı başlatmak ve durdurmak gibi basit işlevler veya programın kendisini yazmak gibi karmaşık işlevler olabilir.

3 slayt

Slayt açıklaması:

Arayüz: Menü EV3'ün 4 bölümden oluşan bir menüsü vardır: Son Programlar Dosya Gezinme Brick Uygulamaları Brick Ayarları

4 slayt

Slayt açıklaması:

Son Programlar En son indirilen programları masaüstü bilgisayarınızdan başlatın. Programları indirip çalıştırmaya başlayana kadar bu pencere boş kalacaktır. Bu pencere, yakın zamanda başlattığınız programları gösterecektir. Varsayılan olarak seçilen listenin en üstündeki program, en son başlatılan programdır.

5 slayt

Slayt açıklaması:

Dosya Yöneticisi Mikrobilgisayarın hafızasında ve hafıza kartında saklanan tüm dosyalara erişin ve yönetin. Bu pencereden, SD kartta saklanan dosyalar da dahil olmak üzere EV3 Brick'inizdeki tüm dosyalara erişecek ve bunları yöneteceksiniz. Dosyalar, ek olarak proje klasörleri halinde düzenlenir. program dosyaları ayrıca her projede kullanılan sesleri ve görüntüleri içerir. Dosyalar, dosya gezgini kullanılarak taşınabilir veya silinebilir. Modül programlama ortamı ve modül veri kaydı uygulamaları kullanılarak oluşturulan programlar, BrkProg_SAVE ve BrkDL_SAVE klasörlerinde ayrı ayrı saklanır.

6 slayt

Slayt açıklaması:

EV3 Kontrol Tuğlası Uygulamaları 4'e sahiptir önceden yüklenmiş uygulamalar: A. Liman temsili. B. Motor kontrolü. B. IR kontrolü. D. Modül programlama ortamı.

7 slayt

Slayt açıklaması:

A. Port Görünümü Port Görünümü uygulamasının ilk penceresinde, hangi portların sensörlere veya motorlara bağlı olduğunu hızlı bir şekilde görebilirsiniz. Meşgul bağlantı noktalarından birine gitmek için EV3 Brick Control düğmelerini kullanın ve sensörden veya motordan gelen mevcut okumaları göreceksiniz. Bazı sensörler ve motorlar kurun ve farklı ayarlarla denemeler yapın. Kurulu motorlar ve sensörler için mevcut ayarları görüntülemek veya değiştirmek için orta düğmeye basın. Modülün ana uygulama penceresine dönmek için "Geri" düğmesini tıklayın.

8 slayt

Slayt açıklaması:

B. Motor kontrolü Dört çıkış portundan birine bağlı herhangi bir motorun ileri veya geri hareketini kontrol edin. İki farklı mod vardır. Bir modda, A portuna (yukarı ve aşağı butonlarını kullanarak) ve D portuna (sol ve sağ butonları kullanarak) bağlı motorları kontrol edebileceksiniz. Diğer modda, Port B'ye (Yukarı ve Aşağı butonlarını kullanarak) ve Port C'ye (Sol ve Sağ butonlarını kullanarak) bağlı motorları kontrol edersiniz. Bu iki mod arasında geçiş, kullanılarak yapılır. merkezi düğme. Modülün ana uygulama penceresine dönmek için "Geri" düğmesini tıklayın.

9 slayt

Slayt açıklaması:

IR kontrolü Uzak bir kızılötesi işaret kullanarak dört çıkış bağlantı noktasından birine bağlı herhangi bir motorun ileri veya geri hareketini kontrol edin. uzaktan kumanda ve alıcı olarak bir IR sensörü (IR sensörü, EV3 Brick'teki Port 4'e bağlanmalıdır). İki farklı mod vardır. Bir modda, uzak kızılötesi işaret üzerindeki 1 ve 2 numaralı kanalları kullanacaksınız. Kanal 1'de, bağlantı noktası B'ye (uzak kızılötesi işaret üzerindeki 1 ve 2 düğmelerini kullanarak) ve bağlantı noktası C'ye (uzak kızılötesi işaret üzerindeki düğme 3 ve 4'ü kullanarak) bağlı motorları kontrol edebileceksiniz. Kanal 2'de, A bağlantı noktasına (1 ve 2 düğmelerini kullanarak) ve D bağlantı noktasına (3 ve 4 düğmelerini kullanarak) bağlı motorları kontrol edebileceksiniz. Diğer modda, bunun yerine uzak kızılötesi işaret üzerindeki 3. ve 4. kanalları kullanarak motorları aynı şekilde kontrol edebilirsiniz. Bu iki mod arasında geçiş, merkezi düğme kullanılarak gerçekleştirilir. Modülün ana uygulama penceresine dönmek için "Geri" düğmesini tıklayın.

10 slayt

Slayt açıklaması:

Brick Programlama Ortamı EV3 Brick, üzerinde kurulu yazılım ile birlikte gelir. Uygulama benzer yazılım bilgisayarınıza kurulur. Bu talimatlar, başlamak için ihtiyaç duyduğunuz temel bilgileri içerir.

11 slayt

Slayt açıklaması:

EV3 Brick Settings Bu pencere, çeşitli Genel Ayarlar EV3 Brick'te.

12 slayt

Slayt açıklaması:

Sesi Ayarlama EV3'teki Ayarlar sekmesinde Sesi artırabilir veya azaltabilirsiniz.

13 slayt

Siz de bizim gibi standart EV3 sensörlerinin yeteneklerinden yoksunsanız, robotlarınızdaki 4 sensör portu yetersizse veya robotunuza egzotik çevre birimleri bağlamak istiyorsanız bu makale tam size göre. İnanın bana, EV3 için ev yapımı bir sensör göründüğünden daha kolay. Eski bir radyodan bir "ses düğmesi" veya toprak nemi sensörü olarak bir saksıda yere saplanmış birkaç çivi deney yapmak için harikadır.

Şaşırtıcı bir şekilde, her EV3 sensör portu, esas olarak NXT sensörleri ve üçüncü taraf sensörlerle uyumluluk için bir dizi farklı protokolü gizler. EV3 kablosunun nasıl çalıştığına bir göz atalım


Garip, ancak kırmızı kablo topraklanmış (GND), yeşil olan 4.3V güç artı. Mavi kablo, hem I2C veri yolu için SDA'dır hem de UART protokolü için TX'dir. Ayrıca mavi kablo, EV3 için A/D dönüştürücü girişidir. Sarı kablo, hem I2C veri yolu için SCL hem de UART protokolü için RX'dir. Beyaz kablo - NXT sensörleri için A/D dönüştürücü girişi. Siyah, NXT uyumlu sensörler için dijital bir giriştir - GND'yi çoğaltır. Kolay değil, değil mi? Sırayla gidelim.

EV3 analog girişi

Her sensör portunun bir A/D dönüştürücü kanalı vardır. Yansıyan ışık ve ortam ışığı modunda Dokunmatik Sensör (düğme), NXT Işık Sensörü ve Renk Sensörü, NXT ses sensörü ve NXT termometre gibi sensörler için kullanılır.

Şemada gösterildiği gibi bağlanan 910 ohm direnç, kontrolöre bu portun analog giriş moduna geçirilmesi gerektiğini söyler. Bu modda, örneğin Arduino'dan herhangi bir analog sensör EV3'e bağlanabilir. Böyle bir sensörle döviz kuru saniyede birkaç bin ankete ulaşabilir, bu en hızlı sensör türüdür.

Işık sensörü

Termometre

Toprak nemi sensörü

Ayrıca şunları da bağlayabilirsiniz: bir mikrofon, bir düğme, bir IR telemetre ve diğer birçok yaygın sensör. Sensörün yeterli 4.3V gücü yoksa EV3 Controller'ın yan tarafında bulunan USB portundan 5V ile güç sağlayabilirsiniz.

Yukarıda bahsedilen "ses düğmesi" (aka değişken direnç veya potansiyometre) analog sensöre harika bir örnektir - şu şekilde bağlanabilir:

Standart LEGO programlama ortamında böyle bir sensörden değerleri okumak için mavi RAW bloğunu kullanmanız gerekir.

I2C protokolü

Bu dijital bir protokoldür, örneğin NXT ultrasonik sensör, IR Seeker veya Color Sensor V2 gibi birçok Hitechnic sensör üzerinde çalışır. Diğer platformlar için, örneğin Arduino için, birçok i2c sensörü vardır, bunları da bağlayabilirsiniz. Şema aşağıdaki gibidir:

LEGO Group tarafından 82 ohm'luk direnç önerilir, ancak çeşitli kaynaklarda 43 ohm veya daha az referanslar vardır. Aslında bu direnişleri tamamen bırakmaya çalıştık ve her şey çalışıyor, en azından "masada". Çeşitli girişim koşullarında çalışan gerçek bir robotta, SCL ve SDA hatları, yukarıdaki şemada gösterildiği gibi, yine de dirençler aracılığıyla güce bağlı olmalıdır. EV3'te i2c'nin hızı oldukça düşük, yaklaşık 10000 kbps, bu yüzden herkesin favorisi Hitechnic Color Sensor V2 çok yavaş :)

Maalesef standart LEGO EV3-G için i2c sensörüyle iki yönlü iletişim için tam bir blok yoktur, ancak RobotC, LeJOS veya EV3 Basic gibi üçüncü taraf programlama ortamlarını kullanarak neredeyse tüm i2c sensörleriyle etkileşime girebilirsiniz.

EV3'ün i2c protokolüyle çalışma yeteneği, birden çok sensörü tek bir bağlantı noktasına bağlamak için ilginç bir olanak sunar. I2C protokolü, bir veri yoluna 127 adede kadar bağımlı cihazı bağlamanıza izin verir. Hayal edebilirsiniz? EV3 portlarının her biri için 127 sensör :) Ayrıca, genellikle bir cihazda bir grup i2c sensörü birleştirilir, örneğin aşağıdaki fotoğrafta 10'u 1 arada sensör (bir pusula, jiroskop, ivmeölçer, barometre vb. içerir. )

UART

Dokunmatik Sensör hariç, neredeyse tüm standart EV3 olmayan sensörler UART protokolünü kullanarak çalışır, bu nedenle aynı konektörlere sahip olmasına rağmen üzerinde UART uygulanmayan NXT denetleyicisi ile uyumlu değildirler. sensör portları. Diyagrama bir göz atın, önceki durumlardan biraz daha basit:

UART sensörleri, hızları için EV3 ile otomatik olarak koordine olur. Başlangıçta, 2400 kbps hızında bağlandıktan sonra, çalışma modları ve döviz kurları üzerinde anlaşırlar, ardından devam ederler. artan hız. Farklı sensörler için tipik döviz kurları 38400 ve 115200 kbps'dir.
LEGO, UART sensörlerinde oldukça karmaşık bir protokol uygulamıştır, bu nedenle orijinal olarak bu platform için tasarlanmamış ancak onunla uyumlu üçüncü taraf sensörleri yoktur. Yine de, bu protokol "ev yapımı" bağlamak için çok uygundur.
Mikrodenetleyicilere dayalı sensörler.
Arduino için, ünlü LeJOS geliştiricisi Lawrie Griffiths tarafından yazılmış, bu kartın UART-LEGO uyumlu bir sensör gibi davranmasını sağlayan harika bir EV3UARTEmulation kitaplığı var. LeJOS News adlı blogunda, bu kütüphaneyi kullanarak gaz sensörlerini, bir IMU sensörünü ve bir dijital pusulayı bağlamanın birçok örneği vardır.

Aşağıdaki video, ev yapımı bir sensör kullanımına bir örnektir. Yeterince orijinal LEGO mesafe sensörümüz yok, bu yüzden yaptığımız robotta sensörlerden birini kullanıyoruz:


Robotun görevi yeşil hücreden başlamak, labirentten (kırmızı hücre) çıkış yolunu bulmak ve çıkmaz sokaklarda durmadan en kısa yoldan başlangıç ​​noktasına dönmektir.

Bu makale hakkında konuşacak Yeni sürüm yapıcı - LEGO Mindstorms Education EV3. Ancak EV3'ün yeniliklerinden bahsetmeden önce, bir dizi yapım seti ile tanışalım. LEGO Zihin Fırtınaları daha yakın.

LEGO Mindstorms, 10 yaşından büyük çocuklar için bir robotik kitidir. LEGO Techniс parçaları robot için yapı taşları olarak kullanılıyor - birçok kişi Teknoloji ve Fizik yapımcıları Pnömatik'ten bunları zaten biliyor. Ancak bir robot çerçevesi inşa etmek yeterli değildir: ona çevreden bilgi almayı ve ona yanıt vermeyi “öğretmeniz” gerekir. Bunun için özel cihazlar kullanılır - sensörler: rengi, aydınlatmayı, yakındaki nesnelere olan mesafeyi ve çok daha fazlasını belirlemenize izin verir. Robot, motorların yardımıyla "tahriş edici maddelere" tepki verebilir - ya bir yere gidin ya da bir şey yapın - örneğin, suçlunun parmağını ısırın. Ve robotun "beyni", tüm motorların ve sensörlerin bağlı olduğu özel bir programlanabilir birimdir.

LEGO Mindstorms EV3 setinin kompozisyonuna geçelim. Kitin eğitim versiyonuna dahil olanlar:

  • 1 programlanabilir blok
  • 3 motor:
    • 2 büyük motor
    • 1 orta motor
  • 5 sensör:
    • 2 dokunmatik sensör
    • 1 renk sensörü
    • 1 ultrasonik mesafe sensörü
    • 1 jiroskop
  • robot pil
  • 528 Lego Technic parçası

Sensörler ve motorlar

EV3'te nelerin değiştiğini düşünün eski versiyon NXT.

Sette 3 adet motor bulunacak ancak bunlardan biri hem boyut hem de teknik özellikler olarak farklılık gösterecek.

Ses sensörü bir jiroskop ile değiştirildi. Diğer sensör türleri aynı kaldı.

Diğer bir özellik ise sensörlerin ve motorların bloğa bağlandığında otomatik olarak algılanması – Yeni EV3 programlama ortamını anlatan bölümde bu özellikten bahsedeceğim.

Sensörlerin ve motorların özellikleri aşağıda sunulmuştur.

Önceki sürüme çok benzer. Bir düğmeye ne zaman basıldığını veya bırakıldığını algılar ve tekli veya çoklu basışları sayabilir.

Renk sensörü

EV3 Renk Sensörü 7 rengi tanır ve bir rengin yokluğunu algılayabilir. Bir önceki versiyonda olduğu gibi ışık sensörü olarak da çalışabilmektedir.

  • Yansıyan kırmızı ışığı ve ortam ışığını ölçer
  • Beyaz ve siyahı veya mavi, yeşil, sarı, kırmızı, beyaz ve kahverengi renkleri ayırt edebilir
  • Çalışma frekansı: 1 kHz

Jiroskop

EV3 Gyro Sensörü, robotun dönme hareketini ve konum değişikliklerini ölçer.

  • Mevcut dönüş yönünü belirlemek için kullanılabilir
  • Doğruluk: 90 derece dönüş başına +/- 3 derece (eğim ölçüm modunda)
  • Maksimum 440 derece/c algılayabilir (jiroskop modunda)
  • Çalışma frekansı: 1 kHz

Ultrasonik Mesafe Sensörü


EV3 ultrasonik dönüştürücünün ana işlevine ek olarak, bir tane daha eklendi - diğer ultrasonik dönüştürücüler tarafından yayılan ultrasonik titreşimleri de "dinleyebilir".

  • 3-250 cm aralığında mesafe ölçebilir.
  • Ölçüm doğruluğu: +/- 1cm
  • Ölçüm sonucunun çözünürlüğü: 0.1 cm.
  • Diğer aktif ultrasonik sensörleri aramak için kullanılabilir (dinleme modu)
  • "Gözler" etrafında kırmızı LED aydınlatma

büyük motor

Büyük EV3 servosu şuna çok benzer: önceki versiyon Ancak NXT motor, motor gövdesi biraz daha büyük hale geldi (eski 14x6x5'e karşı şimdi neredeyse 14x7x5 delik alıyor). Motorların montaj noktaları ve tipleri de değiştirilmiştir.

  • Maksimum hız - 160-170 rpm.
  • Belirtilen tork - 40 N/cm
  • Gerçek tork - 20 N/cm.

orta motor

EV3 Orta Servo, benzer boyutta bir Güç Fonksiyonu motorunu temel alır. Ek alan, yalnızca bir dönüş açısı sensörü ve bir bağlantı portu gerektiriyordu. Bu motor, düşük yükler ve yüksek hızlar için mükemmeldir.

  • Maksimum hız - 240-250 rpm.
  • Belirtilen tork - 12 N/cm
  • Gerçek tork - 8 N/cm.
  • 1 derece hassasiyetle motorun dahili dönüş açısı sensörü (enkoder)

NXT sensörleri, motorları ve kabloları EV3 ile uyumludur, bu nedenle önceden oluşturulmuş tüm robotlar yeni blok tarafından kontrol edilebilir.

EV3 Programlanabilir Tuğla

EV3 mikrobilgisayarında da büyük değişiklikler meydana geldi. NXT ile karşılaştırıldığında, EV3 bloğu daha hızlı bir işlemciye, daha fazla belleğe sahiptir. EV3 Brick bellenimi, tuğla için kendi belleniminizi oluşturmayı mümkün kılan, serbestçe dağıtılan Linux işletim sistemini temel alır. Robotu sadece USB ve Bluetooth üzerinden değil, Wi-Fi üzerinden de bilgisayara bağlamak artık mümkün. Robotlar ayrıca USB, Bluetooth ve Wi-Fi aracılığıyla birbirleriyle iletişim kurabilir.

Aşağıda NXT ve EV3 özelliklerinin bir karşılaştırma tablosu bulunmaktadır:


NXT EV3
İşlemci Atmel 32-Bit ARM AT91SAM7S256
48MHz
256KB FLAŞ bellek
64KB RAM bellek
kol9
300MHz
16 Mb Flaş bellek
64Mb RAM bellek
yardımcı işlemci Atmel 8-Bit ARM AVR, ATmega48
8 MHz
4 KB FLAŞ bellek
512 Bayt RAM bellek
eksik
İşletim sistemi tescilli linux
Giriş portları (sensörler için) 4 bağlantı noktası
Analog, dijital sensörleri destekler
Baud hızı: 9600 bps (I2C)
4 bağlantı noktası
Analog, dijital sensörleri destekler

Veri aktarım hızı: 460.8 Kbps'ye kadar (UART)
Çıkış portları (motorlar için) 3 bağlantı noktası
4 bağlantı noktası
USB üzerinden veri aktarımı Tam hız modu kullanılır: 12 Mbps Yüksek hız modu kullanılır: 480 Mbps
Bağlantı USB cihazları Fırsat yok Dahil olmak üzere 3 cihaza kadar seri bağlantı mümkündür. ağ kartları wi-fi ve flash kartlar
SD kart okuyucu Eksik MiniSD kartları destekler, maksimum kapasite 32 GB'dir
Bağlantı mobil cihazlar Android cihazlara bağlanabilir Android ve iOS cihazlarla uyumlu (iPhone, iPad)
Ekran LCD, tek renkli
100*64 piksel
LCD, tek renkli
178*128 piksel
Etkileşim Bluetooth
USB 2.0
Bluetooth v2.1 DER'i
USB 2.0 (bir bilgisayara bağlandığında
USB 1.1 (birden çok cihazı zincirleme bağlantı yaparken)
Wifi

programlama ortamı

EV3, NXT-G'ye benzer yeni bir LabView tabanlı grafik geliştirme ortamıyla birlikte gelir. Windows ve Mac'te NXT-G gibi çalışacaktır.

EV3 Geliştirme Ortamı büyük ölçüde iyileştirildi. Artık robot için tüm malzemeler: robot için programlar, belgeler, deney sonuçları, fotoğraflar ve videolar - projede saklanabilir. Programı ölçeklendirmenize, örneğin tüm programı görmenize olanak tanıyan bir yakınlaştırma aracı da eklenmiştir. NXT Brick'in yeni EV3 Environment kullanılarak programlanabileceğini belirtmekte fayda var, ancak eski NXT Brick yeni programlama dilinin tüm özelliklerini desteklemiyor.

EV3 programlama ortamının ana yenilikleri şunlardır:

  • Programlama ortamının blok ile sıkı entegrasyonu:
    • Katma özel sayfa bağlı ekipman ile. EV3 bloğunun durumunu izlemenize ve gerçek zamanlı sensör değerleri almanıza olanak tanır.
    • Otomatik tanımlama işlevi sayesinde sensörler ve motorlar bağlandıklarında otomatik olarak tanınır. Bu, belirli bir sensör veya motorun belirli bir bağlantı noktasına bağlı olduğunu belirtmemenizi sağlar.
  • Yeni hata ayıklama modu:
    • Program çalışırken, yürütülmekte olan blok vurgulanır. Bu, programın davranışını doğru bir şekilde anlamanızı sağlar.
    • programlama ünitesinde yanar. özel karakter bu bağlantı noktasına başka bir sensör veya motor bağlıysa.
    • Veri kabloları aracılığıyla iletilen değerleri görüntüleme özelliği eklendi.
  • Program bloklarının yeni özellikleri:
    • Blokların birbirine bağlanması, NXT-G ortamında blokların üzerinde bulunduğu "yürütme ışınının" terk edilmesini mümkün kıldı.
    • Blokların özelleştirme çubuğu diye bir şey yoktur - davranış artık doğrudan blok üzerinde özelleştirilebilir ve boyutlarında bir artışa neden olur. Programın okunması artık çok daha kolay - sensörlerin ve motorların nasıl yapılandırıldığını hemen görebilirsiniz.
    • NXT-G'de olduğu gibi, değeri değiştirme gerçeğine tepki vermenize ve belirli bir değere değiştirmemenize izin veren "değişimi bekle" blokları vardı.
    • Bloktan bloğa veri aktarmadaki iyileştirmeler, türleri dönüştürmeyi kolaylaştırır (artık örneğin bir sayıyı bir dizeye manuel olarak dönüştürmeniz gerekmez).
    • Dizilerle çalışma yeteneği eklendi.
    • Döngüden erken çıkmak mümkün hale geldi.

Yeni programlama diline ek olarak robotu kontrol etmek için Android ve iPhone\iPad için programlar ortaya çıktı. Ayrıca dayalı Autodesk yazılımı Invertor Publisher, adım adım 3D talimatları oluşturmak ve görüntülemek için bir programdır. Bu programda, montajın her aşamasında modeli ölçeklendirebilir ve döndürebilirsiniz, bu da talimatlara göre daha karmaşık robotlar oluşturmanıza olanak tanır.

Temel robotlar

Eğitim seti, 5 robot inşa etmek için talimatlar içerir:

renk sıralayıcı
Nesneleri (bu durumda, Lego parçaları) renge göre sıralamanın klasik görevi.

cayro çocuk
Dengeleme için jiroskop kullanan bir segway robotu.

Köpek yavrusu
Okşanabilen ve beslenebilen robot köpek. Uyumayı da biliyor ve kendini rahatlatıyor :) Bana bir Tamagotchi'yi hatırlatıyor.

robot kol
Öğeleri taşımanıza izin verir.

LEGO MINDSTORMS Education EV3 kaynak kiti, EV3 kiti için hazırlanmıştır ve yeni parçalar kullanarak başka modeller oluşturmanıza olanak tanır.

Makaleyi yazarken nnxt.blogspot.com blogundan materyaller kullanılmıştır.

USB bağlantısı

LEGO Mindstorms EV3, bir USB bağlantısı aracılığıyla bir PC'ye veya başka bir EV3'e bağlanabilir. Bu durumda bağlantı hızı ve kararlılığı, Bluetooth dahil diğer yöntemlerden daha iyidir.

LEGO Mindstorms EV3'ün iki USB bağlantı noktası vardır.

Papatya zinciri modunda LEGO EV3 ve diğer LEGO EV3 yapım parçaları arasında iletişim.

Papatya zinciri modu, iki veya daha fazla LEGO EV3 yapım parçasını bağlamak için kullanılır.

Bu mod:

  • birden fazla LEGO Mindstorms EV3'ü bağlamak için tasarlanmıştır;
  • bağlanmaya hizmet eder daha fazla sensörler, motorlar ve diğer cihazlar;
  • bize 16 adede kadar harici bağlantı noktası ve aynı sayıda dahili bağlantı noktası sağlayan birkaç LEGO Mindstorms EV3 (4'e kadar) arasında iletişime izin verir;
  • ana LEGO Mindstorms EV3 ile tüm zinciri yönetmeyi mümkün kılar;
  • aktifken çalışamaz kablosuz bağlantı veya Bluetooth'u seçin.

Papatya zinciri bağlantı modunu etkinleştirmek için proje ayarları penceresine gidin ve kutuyu işaretleyin.

Bu mod seçildiğinde herhangi bir motor için kullanılacak EV3 Brick'i ve gerekli sensörleri seçebiliriz.

Aşağıdaki tablo, EV3 Tuğlalarının kullanımlarını listeler:

Eylem

orta motor

büyük motor

direksiyon

Bağımsız yönetim

jiroskopik

Kızılötesi

Ultrasonik

Motor dönüşü

sıcaklıklar

Enerji Ölçer

Ses

Bluetooth ile bağlanma

Bluetooth, LEGO Mindstorms EV3'ün bir PC'ye, başka bir LEGO Mindstorms EV3'e, akıllı telefonlara ve diğer Bluetooth özellikli cihazlara bağlanmasına olanak tanır. Bluetooth üzerinden iletişim mesafesi 25 m'ye kadardır.

Bir LEGO Mindstorms EV3'e en fazla 7 blok bağlanabilir. EV3 Master Brick, her EV3 Slave için mesaj göndermenize ve almanıza izin verir. EV3 Slave'leri birbirlerine değil, yalnızca EV3 Master Brick'e mesaj gönderebilir.

EV3 Bluetooth Eşleştirme Sırası

Bluetooth aracılığıyla iki veya daha fazla EV3 Brick'i bağlamak için şu adımları izleyin:

1. Bir sekme açın Ayar.

2. Seç Bluetooth ve ortadaki düğmeye basın.

3. koyduk onay kutusu görünürlük Bluetooth.

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

5. İstenen sayıda EV3 Brick için yukarıdaki prosedürü yapın.

6. Bağlantı sekmesine girin:

7. Ara düğmesine tıklayın:

8. Bağlanmak istediğiniz (veya bağlanmak istediğiniz) EV3'ü seçin ve ortadaki düğmeye basın.

9. Bir ve ikinci bloğu bir erişim anahtarıyla bağlarız.

Her şey doğru yapılırsa, sol üst köşede " simgesi görünecektir.<>", ikiden fazla varsa diğer EV3 Bricks'i aynı şekilde bağlayın.

LEGO EV3'ü kapatırsanız bağlantı kesilir ve tüm adımları tekrarlamanız gerekir.

Önemli: Her bloğun kendi programı olmalıdır.

Program örneği:

İlk Blok: Dokunma sensörüne basıldığında, ilk EV3 Brick metni ikinci bloğa 3 saniyelik bir gecikmeyle (ana blok) iletir.

Blok 2 için örnek program:

İkinci blok, ilk bloktan metin almayı bekler ve onu aldıktan sonra, 10 saniye boyunca bir kelime (örneğimizde "Merhaba" kelimesi) görüntüler (alt blok).

Wi-Fi ile bağlanma

Wi-Fi Dongle'ı EV3'teki USB bağlantı noktasına bağlayarak daha uzun menzil mümkündür.

Wi-Fi kullanmak için, bir USB konektörü (Wi-Fi adaptörü (Netgear N150 Kablosuz Adaptörü (WNA1100)) kullanarak EV3 Brick'e özel bir modül kurmanız gerekir ve ayrıca bir Wi-Fi Dongle bağlayabilirsiniz.

Geleneksel olarak, bir platform üzerine inşa edilmiş robotlar Lego Zihin Fırtınası EV3, LabVIEW grafik ortamı kullanılarak programlanır. Bu durumda programlar EV3 Controller üzerinde çalışır ve robot otonom olarak çalışır. Burada robotu kontrol etmenin alternatif bir yolundan bahsedeceğim - bilgisayarda çalışan .NET platformunu kullanarak.

Ancak doğrudan programlamaya geçmeden önce, bunun yararlı olabileceği durumlara bakalım:

  • Robotun bir dizüstü bilgisayardan uzaktan kumanda edilmesini gerektirir (örneğin, düğmelere basarak)
  • EV3 Controller'dan veri toplama ve harici bir sistemde işleme ihtiyacı (örneğin, IoT sistemleri için)
  • .NET'te bir kontrol algoritması yazmak ve bunu EV3 Controller'a bağlı bir bilgisayardan çalıştırmak istediğiniz diğer durumlar

.NET için LEGO MINDSTORMS EV3 API

EV3 Denetleyici, seri bağlantı noktasına komutlar göndererek harici bir sistemden kontrol edilir. Komut biçiminin kendisi, İletişim Geliştirme Kitinde açıklanmıştır.

Ancak bu protokolü elle uygulamak sıkıcıdır. Bu nedenle Brian Peek tarafından özenle yazılmış hazır .NET sarmalayıcısını kullanabilirsiniz. Bu kitaplığın kaynak kodu Github'da barındırılmaktadır ve kullanıma hazır paket Nuget'te bulunabilir.

EV3 Denetleyicisine Bağlanma

Brick sınıfı, EV3 Controller ile iletişim kurmak için kullanılır. Bu nesneyi oluştururken, yapıcının EV3 denetleyicisine nasıl bağlanacağını açıklayan bir nesne olan ICommunication arabiriminin bir uygulamasını geçmesi gerekir. UsbCommunication, BluetoothCommunication ve NetworkCommunication (WiFi üzerinden bağlantı) uygulamaları mevcuttur.

En popüler bağlantı yöntemi Bluetooth üzerindendir. Bu bağlantı yöntemine daha yakından bakalım.

Kontrol cihazına Bluetooth aracılığıyla programlı olarak bağlanabilmemiz için önce, kontrol cihazının işletim sistemi ayarları kullanılarak bilgisayara bağlanması gerekir.

Kontrolör bağlandıktan sonra Bluetooth ayarlarına gidin ve COM portları sekmesini seçin. Kontrolörümüzü buluyoruz, ihtiyacımız var dışa dönük Liman. BluetoothCommunication nesnesini oluştururken belirteceğiz.

Denetleyiciye bağlanacak kod şöyle görünecektir:

Genel zaman uyumsuz Görev Bağlantısı(ICommunication iletişimi) ( var iletişim = new BluetoothCommunication("COM9"); var brick = _brick = new Brick(communication); wait _brick.ConnectAsync(); )

İsteğe bağlı olarak, denetleyiciye bir bağlantı zaman aşımı belirtebilirsiniz:

Await_brick.ConnectAsync(TimeSpan.FromSeconds(5));

Üniteye USB veya WiFi üzerinden bağlanma, UsbCommunication ve NetworkCommunication nesnelerinin kullanılması dışında benzerdir.

Denetleyici ile gerçekleştirilen diğer tüm eylemler Brick nesnesi aracılığıyla gerçekleştirilir.

Haydi motorları döndürelim

EV3 Controller üzerinde komutları çalıştırmak için Brick nesnesinin DirectCommand özelliğine erişelim. İlk olarak, motorları çalıştırmayı deneyelim.

Motorumuzun kontrolörün A portuna bağlı olduğunu varsayalım, bu motoru %50 güçte çalıştırmak şöyle görünecektir:

Await _brick.DirectCommand.TurnMotorAtPowerAsync(OutputPort.A, 50);

Motoru kontrol etmenin başka yöntemleri de var. Örneğin, StepMotorAtPowerAsync() ve StepMotorAtSpeedAsync() yöntemlerini kullanarak bir motoru belirli bir açıya döndürebilirsiniz. Toplamda, motorları çalıştırma modlarındaki - zamana, hıza, güce vb. göre varyasyonlar olan çeşitli yöntemler mevcuttur.

StopMotorAsync() yöntemi tarafından zorunlu bir durdurma gerçekleştirilir:

Await _brick.DirectCommand.StopMotorAsync(OutputPort.A, true);

İkinci parametre, frenin kullanımını gösterir. false olarak ayarlanırsa, motor yavaşlayarak durur.

Sensörlerden okuma değerleri

EV3 Denetleyicide dört sensör bağlantı noktası bulunur. Buna ek olarak, motorlarda sensör olarak kullanılmalarını sağlayan yerleşik kodlayıcılar da bulunur. Sonuç olarak elimizde değerlerin okunabileceği 8 adet port bulunmaktadır.

Değerleri okumak için portlara Brick nesnesinin Ports özelliği üzerinden erişilebilir. Bağlantı noktaları, denetleyicide bulunan bir bağlantı noktası koleksiyonudur. Bu nedenle, belirli bir bağlantı noktasıyla çalışmak için onu seçmeniz gerekir. InputPort.One ... InputPort.Four, sensör portlarıdır ve InputPort.A ... InputPort.D, motor kodlayıcılarıdır.

Var port1 = _brick.Ports;

EV3'teki sensörler farklı modlarda çalışabilir. Örneğin, EV3 Renk Sensörü ortam ışığını ölçmek, yansıyan ışığı ölçmek veya rengi algılamak için kullanılabilir. Bu nedenle, sensöre tam olarak nasıl kullanmak istediğimizi “söylemek” için modunu ayarlamamız gerekir:

Brick.Ports.SetMode(ColorMode.Reflective);

Artık sensör bağlandığına ve çalışma modu ayarlandığına göre, sensörden veri okuyabilirsiniz. Ham veri, işlenmiş değer ve yüzde değeri alabilirsiniz.

Float si = _brick.Ports.SIValue; int ham = _brick.Ports.RawValue; bayt yüzdesi = _brick.Ports.PercentValue;

SIValue özelliği, işlenen verileri döndürür. Her şey hangi sensörün kullanıldığına ve hangi modda olduğuna bağlıdır. Örneğin yansıyan ışığı ölçerken yansıyan ışığın (siyah/beyaz) yoğunluğuna bağlı olarak 0 ile 100 arasında değerler alacağız.

RawValue özelliği, ADC'den alınan ham değeri döndürür. Bazen daha fazla işleme ve kullanım için kullanmak daha uygundur. Bu arada, EV3 geliştirme ortamında "ham" değerler elde etme olasılığı da vardır - bunun için mavi panelden bloğu kullanmanız gerekir.

Kullandığınız sensör yüzde olarak değer almayı bekliyorsa PercentValue özelliğini de kullanabilirsiniz.

Komutları toplu olarak yürütme

Diyelim ki emrimizde iki tekerlekli bir robot arabamız var ve onu yerinde yerleştirmek istiyoruz. Bu durumda, iki tekerlek ters yönde dönmelidir. DirectCommand'ı kullanır ve denetleyiciye sırayla iki komut gönderirsek, bunların yürütülmesi arasında biraz zaman olabilir:

Await _brick.DirectCommand.TurnMotorAtPowerAsync(OutputPort.A, 50); bekle _brick.DirectCommand.TurnMotorAtPowerAsync(OutputPort.B, -50);

Bu örnekte A motorunu 50 hızında döndürmek için bir komut gönderiyoruz, bu komutu başarıyla gönderdikten sonra aynı işlemi B portuna bağlı motor için de tekrarlıyoruz. Sorun şu ki komut gönderme anlık değil yani motorlar dönmeye başlayabilir farklı zamanlarda - komut B portu için iletilirken, motor A çoktan dönmeye başlayacak.

Motorları aynı anda döndürmemiz bizim için kritikse, kontrolöre bir "paket" içinde komutlar gönderebiliriz. Bu durumda, DirectCommand yerine BatchCommand özelliğini kullanmalısınız:

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

Şimdi iki komut aynı anda hazırlanır ve ardından tek pakette kontrolöre gönderilir. Bu komutları alan kontrolör, aynı anda motorların dönüşünü başlatacaktır.

Başka ne yapılabilir

Motorları döndürmeye ve sensör değerlerini okumaya ek olarak, EV3 Kontrol Cihazı üzerinde gerçekleştirebileceğiniz bir dizi başka işlem vardır. Her biri üzerinde ayrıntılı olarak durmayacağım, sadece yapılabileceklerin bir listesini listeleyeceğim:

  • CleanUIAsync() , DrawTextAsync() , DrawLineAsync() , vb. - EV3 denetleyicisinin yerleşik ekranının değiştirilmesi
  • PlayToneAsync() ve PlaySoundAsync() - sesleri çalmak için yerleşik hoparlörü kullanma
  • WriteFileAsync() , CopyFileAsync() , DeleteFileAsync() (SystemCommand'dan) - dosyalarla çalışma

Çözüm

Mindstorms EV3 robotlarını kontrol etmek için .NET'i kullanmak, farklı dünyalardan teknolojilerin birlikte nasıl çalışabileceğinin iyi bir göstergesidir. EV3 API for .NET üzerinde yapılan araştırma sonucunda, EV3 Robotunuzu bilgisayarınızdan kontrol etmenizi sağlayan küçük bir uygulama oluşturulmuştur. Ne yazık ki, NXT için benzer uygulamalar var, ancak EV3'ü atladılar. Aynı zamanda robot futbolu gibi kontrollü robot yarışmalarında da faydalıdırlar.

Uygulama şu bağlantıdan indirilebilir ve yüklenebilir: