Menü
Bedava
giriş
ana  /  TARAFINDAN / İki veya daha fazla EV3 bloğu bağlayın. Lego MindStorms Eğitim EV3 - Tasarımcı İnceleme

İki veya daha fazla EV3 bloğun bağlantısı. Lego MindStorms Eğitim EV3 - Tasarımcı İnceleme

Bireysel Slaytlardaki Sunumun Açıklaması:

1 slayt

Slayt Açıklaması:

2 slayt

Slayt Açıklaması:

EV3 Modül arayüzü EV3 modülü, robotlarınızı süren bir kontrol merkezidir. Ekran sayesinde, modül kontrol düğmeleri ve dört ana pencere içeren EV3 modülü arayüzü, EV3 modülünün çarpıcı çeşitli fonksiyonlarına erişiminiz var. Bunlar, programın kendisini yazarken, programın başlatmak ve durdurmak gibi basit özellikler olabilir.

3 slayt

Slayt Açıklaması:

Arayüz: EV3 menüsünün 4 parçadan oluşan bir menü vardır: Son Programlar (Son Programlar) Dosya Yöneticisi (Tuğla Uygulamaları) Kontrol Bloğu Ayarları (Tuğla Ayarları)

4 slayt

Slayt Açıklaması:

Son zamanlarda son zamanlarda masaüstü PC programından yüklenen programlar başlatılır. Programları indirmeye ve çalıştırmaya başlayana kadar bu pencere boş kalacaktır. Bu pencere son zamanlarda başladığınız programları görüntüleyecektir. Varsayılan olarak seçilen listenin üstündeki program, ikincisini başlatan bir programdır.

5 slayt

Slayt Açıklaması:

Dosya Yöneticisi, bir mikrobilgisayar hafızasında saklanan tüm dosyaları ve bir hafıza kartına erişin ve yönetin. Bu pencereden, SD kartında depolanan dosyalar dahil, EV3 modülünüzdeki tüm dosyalara erişir ve yöneteceksiniz. Dosyalar, aslında ek olarak, proje klasörleri tarafından düzenlenir. yazılım dosyaları Ayrıca her projede kullanılan sesler ve görüntüler içerir. Dosyalar, Navigator'u dosyalarla kullanarak hareket ettirilebilir veya silinebilir. Modül ve uygulama modülü programlama ortamı kullanılarak oluşturulan programlar, brkprog_save ve brkdl_save klasörlerinde ayrı olarak depolanır.

6 slayt

Slayt Açıklaması:

EV3 Kontrol Ünitesi Uygulamaları 4'tür Ön ayar uygulamaları: A. Liman gösterimi. B. Motor Yönetimi. V. IR Yönetimi. Modül programlama ortamı.

7 slayt

Slayt Açıklaması:

A. Port Temsilciliği İlk Bağlantı Noktası Görünümü penceresinde, hızlı bir şekilde görüntüleyebilirsiniz, sensörler veya motorlar hangi bağlantı noktalarına bağlıdır. Meşgul bağlantı noktalarından birine gitmek için EV3 modülü kontrol düğmelerini kullanın ve sensörden veya motordan elde edilen geçerli okumaları göreceksiniz. Birden fazla sensör ve motor takın ve farklı ayarlarla deneyin. Yüklü motorlar ve sensörler için geçerli ayarları görüntülemek veya değiştirmek için, orta düğmeye basın. Modül uygulamasının ana penceresine dönmek için Geri düğmesine tıklayın.

8 slayt

Slayt Açıklaması:

B. Motor Yönetimi Kontrolü Dört çıkış portundan birine bağlı herhangi bir motorun doğrudan veya ters hareketi. İki farklı mod var. Bir modda, A bağlantı noktasına (yukarı ve aşağı düğmeleri kullanarak) ve D bağlantı noktasına ("sol" ve "sağ" düğmelerini kullanarak ("sol" ve "sağ" düğmelerine bağlı motorları kontrol edebilirsiniz. Başka bir modda, B bağlantı noktasına (yukarı ve aşağı düğmeleri kullanarak) ve C bağlantı noktasına ("sol" ve "sağ" düğmelerini kullanarak ("sol" ve "sağ" düğmelerine bağlı motorları yönetirsiniz. Bu iki mod arasında geçiş yapmak, kullanılarak gerçekleştirilir. merkezi düğme. Modül uygulamasının ana penceresine dönmek için Geri düğmesine tıklayın.

9 slayt

Slayt Açıklaması:

IR kontrol kontrolü Uzak bir kızılötesi deniz feneri kullanarak dört çıkış bağlantı noktasından birine bağlı herhangi bir motorun doğrudan veya ters hareketi uzaktan kumanda Ve bir alıcı olarak kızılötesi bir sensör (bir kızılötesi sensör, EV3 modülündeki 4 numaralı bağlantı noktasına bağlanmalıdır). İki farklı mod var. Bir modda, uzak bir kızılötesi fenerde 1 ve 2 kanalları kullanacaksınız. Kanal 1'de, bağlantı noktasına bağlı motorları (uzak kızılötesi fener üzerindeki 1 ve 2 düğmelerini kullanarak) ve C bağlantı noktasına (uzak kızılötesi işaretindeki 3 ve 4 düğmesini kullanarak) kontrol edebilirsiniz. Kanal 2'de A bağlantı noktasına (1 ve 2 düğmelerini kullanarak) ve D (3 ve 4 düğmelerini kullanarak) bağlantı noktasına bağlı motorları kontrol edebilirsiniz. Başka bir modda, motorları aynı şekilde kontrol edebilirsiniz, bunun yerine uzak bir kızılötesi fenerde 3 ve 4 kanalları kullanarak. Bu iki mod arasında geçiş yapmak, merkezi düğme kullanılarak gerçekleştirilir. Modül uygulamasının ana penceresine dönmek için Geri düğmesine tıklayın.

10 slayt

Slayt Açıklaması:

Modül Programlama Ortamı EV3 modülü, üzerine yüklü bir yazılımla birlikte gelir. Uygulama benzer yazılımbilgisayarınızda yüklü. Bu talimatlar çalışmaya başlamanız gereken temel bilgiler içerir.

11 Slayt

Slayt Açıklaması:

EV3 Modül Ayarları Bu pencere, çeşitli görüntülemenizi ve ayarlamanızı sağlar genel Ayarlar EV3 modülünde.

12 Slayt

Slayt Açıklaması:

Cilt Kurulumu, AYARLAR sekmesindeki AYARLAR sekmesindeki Hacim (Ses seviyesini) büyütebilir ve azaltabilirsiniz.

13 Slayt

Siz, standart EV3 sensörlerinin özelliklerinden yoksun olacağımız gibi, robotlarınızdaki sensörler için yeterli 4 portlu bağlantı noktası değildir veya robotunuza bir miktar egzotik çevre bağlanmak istiyorsunuz - bu makale sizin için bu makale. İnan bana, ev yongası için ev yapımı sensör göründüğünden daha basittir. Eski bir radyodan veya bir çifte bir çift çifte (birim döndürme ", bir saksıyı toprak nem sensörü olarak toprağa sıkışmış - deneme için mükemmel bir şekilde uygundur.

Şaşırtıcı bir şekilde, EV3 sensörünün her bir portu kendi içinde bir dizi farklı protokolü gizler, esas olarak NXT sensörleri ve üçüncü taraf sensörleriyle uyumluluk için yapılır. EV3 kablosunun nasıl düzenlendiğine bakalım.


Garip, ancak kırmızı tel topraktır (GND), yeşil - artı güç 4.3V. Mavi tel, UART protokolü için I2C ve TX veriyolu için aynı anda SDA'dır. Ek olarak, mavi tel, EV3 için bir analog-dijital dönüştürücünün girişidir. Sarı tel, UART protokolü için I2C ve RX veri yolu için aynı anda SCL'dir. Beyaz tel, NXT sensörleri için analog dijital bir dönüştürücü giriştir. Siyah - Dijital Giriş, NXT uyumlu sensörler için - GND'yi çoğaltır. Kolay değil, değil mi? Sırayla.

Analog Giriş EV3.

Sensörün her bir portu, analog-dijital dönüştürücü kanalı vardır. Dokunmatik sensör, NXT ışık sensörü ve rengi sensör sensörleri gibi sensörler için yansıyan ışık ve harici aydınlatma modunda, NXT ses sensörü ve NXT termometresi için kullanılır.

910 Ohm'daki direnç, şemaya göre bağlı, kontrol cihazının bu bağlantı noktasının analog giriş moduna geçmesi gerektiğini bildirir. Bu modda, örneğin Arduino'dan herhangi bir analog sensör EV3'e bağlanabilir. Böyle bir sensör ile döviz kuru, saniyede birkaç bin ankete ulaşabilir, bu en yüksek hızlı sensör tipidir.

Işık sensörü

Termometre

Toprak nem sensörü

Ayrıca bağlanabilirsiniz: mikrofon, düğme, IR değişkenlik ve diğer birçok ortak sensör. Sensör yeterli güç değilse 4.3V, 5V'den 4V'den EV3 denetleyicisinin yanında bulunan USB bağlantı noktası konektöründen güç sağlamak mümkündür.

"Hacim Twist" yukarısına bahsedilen (bu değişken direnç veya potansiyometre) bir analog sensörün mükemmel bir örneğidir - şöyle bağlanabilir:

Standart ortamdaki böyle bir sensörden değerleri okumak için lego programlama. Mavi ham bloğu kullanmalısınız

I2C. Protokol

Bu bir dijital protokoldür, örneğin bir NXT ultrasonik sensörü, IR arayan veya renk sensörü V2 gibi birçok hiteknik sensöre, örneğin bir NXT ultrasonik sensörü. Diğer platformlar için, örneğin Arduino için, bunları birbirine bağlayabileceğiniz birçok I2C sensörü vardır. Şema aşağıdaki gibidir:

82 ohm'un direnci, LEGO grubu tarafından önerilmektedir, ancak 43 ohm, farklı kaynaklarda ve daha az miktarda bulunur. Aslında, bu dirençleri tamamen terk etmeye çalıştık ve her şey çalışıyor, en azından "masada". Çeşitli parazitlerde çalışan gerçek bir robotta, SCL ve SDA çizgisi, yukarıdaki şemada belirtildiği gibi dirençten geçmelidir. EV3'teki I2C'nin hızı oldukça küçük, yaklaşık 10.000 Kbps, bu yüzden herkesin favori hiteknik renk sensörü V2 böyle bir frenlemedir :)

Maalesef, LEGO'dan EV3-G standart için, I2C sensörüyle iki yönlü bir iletişim için tam teşekküllü bir blok yoktur, ancak Robotc, Lejos veya EV3 Temelleri gibi üçüncü taraf programlama ortamını kullanmak hemen hemen her I2C ile etkileşime girebilir. sensörler.

EV3 I2C protokolü üzerinde çalışabilme yeteneği, birden fazla sensörü bir bağlantı noktasına bağlamak için ilginç bir fırsat açar. I2C protokolü, bir otobüse 127 alt aygıtlara geçmenizi sağlar. Hayal etmek? EV3 bağlantı noktalarının her birine 127 sensörler :) Dahası, genellikle bir demet I2C sensörü bir cihazda birleştirilir, örneğin, sensörün 10'unun (pusula, jiroskop, ivmeölçer, barometre vb.) Altındaki fotoğrafta birleştirilir.)

UART.

Neredeyse tüm standart EV3 sensörleri, dokunmatik sensör hariç, UART protokolü üzerinden çalışır ve bu nedenle aynı konektörlere sahip olan NXT denetleyicisi ile uyumlu olmadıklarıdır, ancak sensörlerin sensör bağlantı noktalarında uygulanmaz. . Şemaya bir göz atın, önceki vakalardan biraz daha basittir:

UAR sensörleri, çalışmalarının EV3 hızıyla otomatik olarak koordine eder. Başlangıçta 2400 Kbps hızına bağlanırken, Operasyon Modları ve Döviz Kuru'nu kabul ederler, ardından artan hız. Farklı sensörler için tipik döviz kurları 38400 ve 115200 Kbps.
LEGO, UAR sensörlerinde oldukça karmaşık bir protokol uyguladı, bu yüzden üçüncü taraf sensörler başlangıçta bu platform için değil, bununla uyumlu değil. Ancak, bu protokol "ev yapımı" bağlamak için çok uygundur
Mikrodenetleyicilere dayanan sensörler.
Arduino için, ünlü Lejos Developer Lawrie Griffiths tarafından yazılmış, bu kurulun UART-Lego uyumlu sensöre sahip olmasını sağlayan harika bir Ev3uartemülasyon kütüphanesi var. Blogunda, Lejos News, bu kütüphaneyi kullanarak bir IMU sensörü ve bir dijital pusula bağlayan gaz sensörleri, bir IMU sensörü ve bir dijital pusula örneğine sahiptir.

Videoda, kendi kendine yapımı bir sensör kullanmanın bir örneğidir. Yeterli sayıda orijinal lego mesafesi sensörümüz yok, bu yüzden robottaki sensörlerden biri ev yapımı kullanıyoruz:


Robotun görevi, yeşil bir hücreyle başlamak, labirentten (kırmızı kafes) bir yolunu bulup, çıkmazına gitmeden en kısa yoldan bir yoluna geri dönün.

Bu makale hakkında konuşacak yeni sürüm Tasarımcı - Lego MindStorms Eğitim EV3. Ancak Ev3 yeniliklerinden bahsetmeden önce, Lego MindStorms Oluşturucu Serisi daha yakından haberdar olalım.

Lego Mindstorms, 10 yaşında çocuklar için robotik bir tasarımcıdır. LEGO Technis detayları inşaat blokları olarak kullanılmaktadır - birçok erkek zaten "teknoloji ve fizik tasarımcıları", "pnömatik", onlara zaten aşinadır. Ancak bir robot çerçevesi oluşturmak için yeterli değildir: "Çevreden bilgi almak ve buna cevap vermek için" "öğretmek" gereklidir. Bunun için özel cihazlar kullanılır - Sensörler: Rengi, aydınlatmayı, en yakın eşyalara olan mesafeyi ve çok daha fazlasını belirlemenizi sağlar. Bir robotun "uyaran" ı tepki verebilir - ya bir yere ya da yapılacak bir şeyden ayrılmak için - örneğin, parmağın için suçluyu ısır. Ve robotun "beyin", tüm motorların ve sensörlerin bağlı olduğu özel bir programlanabilir bloktur.

Lego MindStorms EV3 setinin bileşimine dönelim. Bu, kümenin eğitim sürümüne giren şey şunlardır:

  • 1 Programlanabilir Blok
  • 3 Motor:
    • 2 büyük motor
    • 1 Orta Motor
  • 5 sensörler:
    • 2 dokunmatik sensör
    • 1 renk sensörü
    • 1 ultrasonik mesafe sensörü
    • 1 jiroskop
  • Robot için şarj edilebilir pil
  • 528 LEGO tekniğinin detayları

Sensörler ve motorlar

Ev3'te neyin değiştiğini düşünün eski versiyon NXT.

Set 3 motor olacak, ancak bunlardan biri hem büyüklükte hem de teknik özelliklerde farklılık gösterecek.

Ses sensörü bir jiroskopla değiştirildi. Kalan sensör türleri aynı kaldı.

Başka bir özellik, bu özellik hakkında bloka bağlandıklarında sensörlerin ve motorların otomatik tanımıdır - bu özellik yeni programlama ortamını tanımlayan bölümünde anlatacağım.

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

Önceki sürümün sensörüne çok benzer. Düğmenin basıldığını veya serbest bırakıldığını belirler, ayrıca tek veya çoklu presleri de sayabilir.

Renk sensörü

Renk Sensörü EV3, 7 rengi ayırt eder ve renk yokluğunu belirleyebilir. Son sürümde olduğu gibi, ışık sensörü olarak çalışabilir.

  • Önlemler kırmızı ışık ve çevresindeki aydınlatmayı yansıtıyor
  • Beyaz ve siyah veya renkler arasındaki farkları belirleyebilir: mavi, yeşil, sarı, kırmızı, beyaz ve kahverengi
  • Çalışma Frekansı: 1 KHz

Jiroskop

EV3 jiroskopik sensörü, robotun dönme hareketini ve konumundaki değişikliği ölçer.

  • Mevcut dönme yönünü belirlemek için kullanılabilir
  • Doğruluk: +/- 3 derece 90 derece ciro (eğim ölçüm modunda)
  • Maksimum 440 derece / c (gyro modunda) belirleyebilir
  • Çalışma Frekansı: 1 KHz

Ultrasonik mesafe sensörü


Bir diğeri, ultrasonik sensörün ana fonksiyonuna eklendi - ayrıca diğer ultrason sensörleri tarafından yayılan ultrason dalgalanmalarını "dinleyebilir".

  • Mesafeyi 3 - 250 cm aralığında ölçebilir.
  • Ölçüm doğruluğu: +/- 1 cm
  • Ölçüm sonucunun yüzeyi: 0.1 cm.
  • Diğer aktif ultrason sensörlerini aramak için kullanılabilir (dinleme modu)
  • "Göz" etrafında kırmızı led arka ışık

Büyük motor

EV3 büyük servomotoru çok benzer Önceki versiyon Bununla birlikte, NXT motoru, motor gövdesi biraz daha fazla hale geldi (neredeyse 14x6x5'e karşı 14x7x5 delik alıyor). Ayrıca motorların ek yerini ve türlerini değiştirdi.

  • Maksimum ciro - 160-170 rpm.
  • Belirtilen tork - 40 n / cm
  • Gerçek tork - 20 n / cm.

Orta motor

Ortalama servo motor EV3, aynı boyutta güç fonksiyon motoruna dayanır. Ek bir yer sadece dönme açısı sensörünü ve bağlantı portunu gerektirir. Bu motor, düşük yükler altında çalışmak ve yüksek hızlar altında çalışmak için mükemmeldir.

  • Maksimum dönüşler - 240-250 rpm.
  • Belirtilen tork - 12 n / cm
  • Gerçek tork - 8 n / cm.
  • 1 derece doğruluğu olan bir motorun dahili rotasyon açısı sensörü (kodlayıcı)

NXT sensörleri, motorlar ve kablolar EV3 ile uyumludur, bu nedenle daha önce yapılan tüm robotlar yeni bir birim tarafından kontrol edilebilir.

Programlanabilir blok EV3.

EV3 mikrobilgisayarında ciddi 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 blok ürün yazılımı, serbestçe dağıtılmış bir Linux işletim sistemine dayanır, bu da blok için ürün yazılımınızı oluşturmayı mümkün kılar. Bir robotu bir bilgisayara bağlayın Şimdi sadece USB ve Bluetooth ile değil, Wi-Fi ile de mümkündür. Robotlar ayrıca USB, Bluetooth ve Wi-Fi'de "iletişim kurabilir".

Aşağıda, NXT ve EV3'ün karşılaştırmalı bir tablosudur:


NXT. Ev3.
İşlemci ATMEL 32-bit ARM AT91SAM7S256
48 MHz.
256 KB. Flaş hafızası
64 KB RAM Hafızası
Arm9.
300 MHz.
16 MB Flash Bellek
64 MB RAM Hafızası
İşbirliği yapmak Atmel 8-bit ARM AVR, ATMEGA48
8 MHz.
4 kb flash bellek
512 BYTE RAM Hafızası
yok
İşletim sistemi Tescilli Linux.
Giriş Bağlantı Noktaları (Sensörler İçin) 4 port
Analog, dijital sensörleri destekler
Veri Aktarım Hali / 9600 Bit / S (I2C)
4 port
Analog, dijital sensörleri destekler

Veri Aktarım Hızı: 460.8 Kbps'ye kadar (UART)
Çıkış Bağlantı Noktaları (Motorlar) 3 port
4 port
USB Veri İletimi Tam hız modu: 12 Mbps Kullanılan Yüksek Hız Modu: 480 Mbps
Bağ USB cihazları İmkan yok Dahil olmak üzere 3 cihazı seri olarak bağlamak mümkündür. ağ kartları Wi-Fi ve Flash Kartları
SD kartlarını okumak için cihaz Yok MINISD kartlarını destekler, maksimum hacim - 32 GB
K.'yi bağla mobil cihazlar Android işletim sistemi ile cihazlara bağlanma Android ve iOS OS ile cihazlara bağlanma (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.
USB 2.0 (PC'ye bağlandığında
USB 1.1 (birkaç cihazın sıralı bir bağlantısı ile)
Wifi

Programlama ortamı

EV3 ile NXT-G'ye benzer, LabView'a dayanan yeni bir grafik geliştirme ortamı içeriyordu. Windows ve Mac'te NXT-G gibi çalışacaktır.

EV3 geliştirme ortamı önemli ölçüde iyileştirildi. Artık robot için tüm malzemeler: Robot, belgeler, deney sonuçları, fotoğraflar ve video sonuçları için programlar projede saklanabilir. Ayrıca, programın tamamını görmek için programı ölçeklemenizi sağlayan bir zoom aracı eklendi. NXT bloğunun, yeni EV3 ortamı kullanılarak programlanabileceğini, ancak eski blok yeni programlama dilinin tüm özelliklerini desteklememektedir.

EV3 programlama ortamının ana yeniliklerini listeliyoruz:

  • Programlama ortamının blok ile entegrasyonunu kapatın:
    • Katma Özel Sayfa bağlı ekipmanla. EV3 bloğunun durumunu izlemenizi ve gerçek zamanlı sensörlerden değerleri izlemenizi sağlar.
    • Otomatik kimlik işlevi sayesinde, otomatik olarak bağlandığında sensörler ve motorlar tanınır. Bu, böyle bir sensörün veya motorun böyle bir bağlantı noktasına bağlı olduğunu belirlemenizi sağlar.
  • Yeni Hata Ayıklama Modu:
    • Programın çalışması sırasında blok vurgulanır. Bu, programın davranışını doğru bir şekilde anlamanızı sağlar.
    • Program bloğu yanar Özel sembolBu bağlantı noktasına başka bir sensör veya motor bağlanırsa.
    • Veri kanalları (veri kabloları) ile iletilen değerleri görüntüleme yeteneği eklendi.
  • Yazılım bloklarının yeni özellikleri:
    • Blokların birbirleriyle debriyajı, blokların NXT-G ortamında bulunduğu "performans ışını" terk etmeyi mümkün kılmıştır.
    • Blokların Kurulum Paneli olarak böyle bir konsepte bulunmuyor - davranış şimdi doğrudan bloğun üzerinde yapılandırıldı, bu da boyutlarında bir artışa yol açtı. Program şimdi okumak çok daha kolay - derhal sensörlerin ve motorların nasıl yapılandırıldığını görün.
    • Değeri değiştirme gerçeğine cevap vermenize ve NXT-G'de olduğu gibi belirli bir değere geçmemesine izin veren "bekleme değiştirme" blokları vardır.
    • Bloktan bloğa veri aktarımındaki iyileştirmeler, tür dönüştürmeyi basitleştirmenize izin verir (artık, örneğin, dizgedeki numarayı manuel olarak dönüştürmeniz gerekmez).
    • Dizilerle çalışma yeteneğini ekledi.
    • Döngünüzden korkutucu bir çıktı mümkün oldu.

Yeni programlama diline ek olarak, robotu kontrol etmek için Android ve iPhone \\ iPad programları ortaya çıktı. Ayrıca temelde autodesk Programları Invertor Publisher, adım adım 3D talimatlarını oluşturmak ve görüntülemek için bir program oluşturdu. Bu programda, tertibatın her aşamasında modeli ölçeklendirebilir ve döndürebilirsiniz; bu, talimatlara göre daha karmaşık robotlar oluşturmanıza olanak sağlar.

Temel robotlar

Eğitim seti 5 robot montajı için talimatlar içerir:

Renk sıralayıcısı.
Öğeleri ayırmak için klasik görev (bu durumda Lego parçalarıdır) renktedir.

Gyro Boy.
Dengeleme için bir jiroskop kullanarak robot sigway.

Köpek yavrusu
İnme, beslenebilecek robot köpek. Uyumak ve başa çıkmak için, nasıl :) Tamagotchi'yi hatırlatır.

Robo eli
Öğeleri taşımanızı sağlar.

EV3 SET için, Lego MindStorms EV3'ün kaynak kümesi hazırlandı, yeni parçalar kullanarak diğer modelleri toplamaya izin verdi.

Makaleyi yazarken, nnxt.blogspot.com blogu kullanıldı.

USB bağlantısı

LEGO MindStorms EV3, bir PC'ye veya diğer EV3'e USB bağlantıları ile bağlanabilir. Bu durumda bağlantı ve stabilitenin hızı, Bluetooth dahil olmak üzere başka bir şekilde daha iyidir.

LEGO MindStorms EV3'ün iki USB portu var.

LEGO EV3 ile diğer LEGO EV3 blokları arasında lüks modunda iletişim.

Bağlantı Modu Döngü, iki veya daha fazla Lego EV3 bloğu bağlamak için kullanılır.

Bu mod:

  • birden fazla Lego MindStorms EV3'ü bağlamak için tasarlanmıştır;
  • bağlanmak için kullanılır daha Sensörler, motorlar ve diğer cihazlar;
  • bize 16 harici bağlantı noktasına ve aynı sayıda iç bağlantı noktasına kadar olan birkaç lego mindstorms EV3 (en fazla 4) arasında iletişim kurmanızı sağlar;
  • tüm zinciri ana lego mindstorms EV3 ile yönetmeyi mümkün kılar;
  • aktif ile çalışamaz wi-Fi bağlayın veya Bluetooth.

Bağlantı modunu etkinleştirmek için, ardından proje ayarları penceresine taşıyın ve bir kene koyun.

Bu mod seçildiğinde, daha sonra herhangi bir motor için, dahil edilecek olan EV3 ünitesini ve gerekli sensörleri seçebiliriz.

Tablo, EV3 bloklarını kullanma seçeneklerini gösterir:

davranmak

Orta motor

Büyük motor

Direksiyon

Bağımsız Yönetim

Gyroskopik

Kızılötesi

Ultrasonik

Motor rotasyonu

Sıcaklık

Enerji Ölçer

Ses

Bluetooth ile bağlantı

Bluetooth, LEGO MindStorms'lerin EV3'ü PC'ye, diğer Lego MindStorms EV3, akıllı telefonlara ve diğer Bluetooth cihazlarına bağlanmasını sağlar. Bluetooth kanalı iletişim aralığı - 25 m'ye kadar.

Bir Lego MindStorms EV3'e kadar 7 bloka kadar bağlanabilirsiniz. Ana ünite EV3, her bir alt EV3 için mesaj göndermenize ve almanızı sağlar. ALTORLAR EV3 yalnızca EV3 ana ünitesine mesaj gönderebilir, ancak kendi aralarında değil.

Bluetooth ile EV3 bağlantı sırası

Bluetooth'a iki veya daha fazla EV3 bloğu bağlamak için aşağıdaki işlemleri gerçekleştirmeniz gerekir:

1. Aç sekmesi Ayar.

2. Seç Bluetooth Ve orta düğmeye basın.

3. Stavim Bayrak görünürlük Bluetooth.

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

5. İstenilen EV3 blokları için yukarıda belirtilen prosedürü yapın.

6. Bağlantıya giriş yapın: Bağlantı:

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

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

9. Birbirini ve ikinci bloğu erişim tuşuyla bağlayın.

Her şeyi doğru yaparsanız, simge sol üst köşede görünecektir.<>", Benzer şekilde, ikiden fazla varsa, diğer EV3 bloklarını birbirine bağlayın.

Lego EV3'ü kapattıysanız, bağlantı kaybolur ve tüm öğelerin tekrarlaması gerekecektir.

Önemli: Her blok için, programınız yazılmalıdır.

Örnek Program:

İlk ünite: Dokunmatik sensöre bastığınızda, ilk EV3 ünitesi, metni 3 saniyelik bir gecikme (ana blok) ile ikinci bloğa aktarır.

2 blok için örnek program:

İkinci blok, birinci bloktan kabul edilmesini bekler ve onu aldığı anda, kelime görüntüleyecektir (örneğimizde "Merhaba" kelimesidir) 10 saniye boyunca (alt blok).

Wi-Fi ile bağlantı

Wi-Fi Dongle, EV3'deki USB bağlantı noktasına bağlandığında daha uzun bir iletişim mümkündür.

Wi-Fi kullanmak için, bir USB konektörü (Wi-Fi adaptörü (WNA1100) kullanarak EV3 bloğuna özel bir modu yüklemeniz gerekir ve Wi-Fi dondurucuyu da bağlayabilirsiniz.

Geleneksel olarak, platform üzerine inşa edilmiş robotlar Lego MindStorms EV3., LabView grafik ortamını kullanarak programlanmıştır. Bu durumda, programlar EV3 denetleyicisinde başlar ve robot özerk olarak çalışır. İşte size robotu kontrol etmenin alternatif bir yolu hakkında söyleyeceğim - bilgisayarda çalışan Platform .NET'i kullanarak.

Ancak doğrudan programlamaya devam etmeden önce, yararlı olabileceği durumları düşünelim:

  • Bir robotun bir dizüstü bilgisayar ile uzaktan kumandası (örneğin, düğmelere basarak)
  • EV3 denetleyicisinden veri toplamanız ve harici sistemde işlemeniz gerekir (örneğin, IOT sistemleri için)
  • .NET'te bir kontrol algoritması yazmak ve EV3 denetleyicisine bağlı bir bilgisayardan çalıştırmak istediğinizde başka durumlar.

LEGO MindStorms EV3 .NET için API

EV3 denetleyicisinin harici sistemden yönetimi, seri bağlantı noktasına komut göndererek gerçekleştirilir. Komut formatının kendisi iletişim geliştiricisi kitinde açıklanmıştır.

Ancak bu protokolün uygulanması manuel olarak - mesele sıkıcıdır. Bu nedenle, Brian Peek'in düşünceli bir şekilde yazdığı bitmiş .NET sargısını kullanabilirsiniz. Bu kütüphanenin kaynak kodları GitHub'da bulunur ve kullanım için hazır paket Nuget'te bulunabilir.

EV3 denetleyicisine bağlanın

İyileşmek için EV3 denetleyicisi tuğla sınıfını kullanır. Bu nesneyi yapıcıya oluştururken, icommunikasyon arayüz uygulamasını aktarmanız gerekir - EV3 denetleyicisine nasıl bağlanılacağını açıklayan bir nesne. USBcommunikasyon, BluetoothComMunication ve Ağ Komisyonu uygulamaları mevcuttur (WiFi üzerinden bağlantı).

Bağlanmanın en popüler yolu - Bluetooth üzerinden. Bu bağlantı yöntemini daha ayrıntılı olarak düşünün.

Denetleyiciye Bluetooth üzerinden programlı olarak bağlanabilmemizden önce, denetleyici işletim sistemi ayarlarını kullanarak bir bilgisayara bağlanmalıdır.

Kontrolör bağlandıktan sonra, Bluetooth ayarlarına gidiyoruz ve COM bağlantı noktası sekmesini seçin. Kontrol cihazımızı buluruz, ihtiyacımız var dışa dönük Liman. BluetoothComMunication nesnesi oluştururken belirtilecektir.

Denetleyiciye bağlanma kodu şöyle görünecektir:

Genel Zaman Işletmesi Görev Bağlan (var İletişim \u003d Yeni BluetoothComMunication ("COM9"); var tuğla \u003d _bric \u003d Yeni tuğla (iletişim); beklemek _bick.connectasync ();)

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

_Bric.connectasync'yi bekliyor (Timespan.Fromseconds (5));

USB veya WiFi üzerinden bloğa bağlantı, benzer şekilde, USB komisyonu ve ağ komut nesnelerinin kullanılması durumunda benzer şekilde gerçekleştirilir.

Denetleyici ile gerçekleştirilen tüm diğer işlemler tuğla nesnesi boyunca gerçekleştirilir.

Büküm motorları

EV3 denetleyicisindeki komutları yürütmek için, tuğla nesnesinin DirectCommand özelliğine dönüşürüz. İlk önce, motorları başlatmaya çalışalım.

Motorumuzun bir kontrolörün bağlantı noktasına bağlı olduğunu varsayalım, sonra bu motorun% 50'lik bir güçte başlaması şöyle görünecektir:

Await _bick.directcommand.turnMotoratPowerAsync (Outputport.a, 50);

Motor yönetimi için başka yöntemler var. Örneğin, StepMotoratPowerAsync () ve stepmotoratispeedasync () yöntemlerini kullanarak motoru belirtilen açıya dönüştürebilirsiniz. Motorların dahil olma modunda varyasyonlar olan toplam çeşitli yöntemler mevcuttur - zaman, hız, güç vb.

Zorunlu durdurma, StopMotorAsync () yöntemi tarafından yapılır:

Beklemek _brick.directcommand.stopmotorasync (Outputport.a, true);

İkinci parametre, frenin kullanımını gösterir. False'ye yüklerseniz, motor "yuvarlanacak" durur.

Sensörlerden Değerleri Okuma

EV3 denetleyicisinin sensörleri bağlamak için dört bağlantı noktası vardır. Ek olarak, motorlar ayrıca bunları sensör olarak kullanmalarını sağlayan yerleşik kodlayıcılara sahiptir. Sonuç olarak, değerleri okuyabileceğiniz 8 portumuz var.

Okumak için bağlantı noktalarına erişim, tuğla nesne portları özelliği ile elde edilebilir. Bağlantı noktaları, denetleyicide mevcut olan bağlantı noktaları koleksiyonudur. Bu nedenle, belirli bir bağlantı noktasıyla çalışmak için onu seçmeniz gerekir. InPutport.One ... InPutport.Four Sensörler için bağlantı noktalarıdır ve InPutport.A ... InPutport.d Motor kodlayıcılarıdır.

Var port1 \u003d _bric.ports;

EV3'teki sensörler farklı modlarda çalışabilir. Örneğin, EV3 renk sensörü harici aydınlatmayı ölçmek için, ışık ölçümlerini yansıtmak veya rengi belirlemek için kullanılabilir. Bu nedenle, sensörü "bilgilendirmek" için tam olarak nasıl kullanmak istediğimizi, sormanız gerekir:

Tuğla.port.Setmode (colormode.reflective);

Şimdi sensör bağlı ve çalışma modu belirtildiği durumlarda, veriler ondan değerlendirilebilir. "Ham" verilerini, işlenmiş ve yüzde değeri alabilirsiniz.

Şamandıra si \u003d _brick.ports.SiveMueUE; int raw \u003d _bric.ports.RewValue; bayt yüzde \u003d _bric.ports.percentValue;

SIVERUE özelliği, işlenmiş verileri döndürür. Her şey, ne tür bir sensörün kullanıldığı ve hangi modda bağlıdır. Örneğin, yansıtılan ışığı ölçerken, yansıyan ışığın yoğunluğuna (siyah / beyaz) bağlı olarak 0 ila 100 arasında bir değer elde ederiz.

RawValue özelliği, ADC'den elde edilen "ham" değerini döndürür. Bazen sonraki işlem ve kullanım için kullanmak uygundur. Bu arada, EV3 geliştirme ortamında, "Ham" değerleri elde etme olasılığı da vardır - bunun için bloğu mavi panelden kullanmanız gerekir.

Kullanılan sensör değerlerinin alındığını varsayarsa, yüzde oranını da kullanabilirsiniz.

Takımların "Paket" Yürütülmesi

Emrimizde iki tekerleğe sahip bir robot arabası var ve yerinde dağıtmak istiyoruz. Bu durumda, iki tekerlek ters yönde dönmelidir. DirectCommand'ı kullanırsak ve sürekli olarak denetleyiciye iki komut gönderirsek, yürütmeleri arasında bir süre olabilir:

Await _bick.directcommand.turnMotoratPowerAsync (Outputport.a, 50); await _brick.directcommand.turnmototpowersync (çıkışport.b, -50);

Bu örnekte, bu komutu göndermenin başarılı bir şekilde tamamlanmasından sonra, Motor A'yı 50 hızında döndürmek için bir komut göndeririz, bu komutu göndermeyi başardıktan sonra, Bon bağlantı noktasına bağlı motorla aynı şekilde tekrarlayın. Sorun, komutların gönderilmesinin anında olmadığıdır. , böylece motorlar farklı zamanlarda dönmeye başlayabilir - Motor A komutu zaten Dönmeye başla.

Motorları aynı anda zorlamamız için kritik derecede önemliyse, "Paketi" denetleyicisine komut gönderebilirsiniz. Bu durumda, DirectCommand yerine BatchCommand özelliğini kullanmalısınız:

Brick.batchCommand.TurnMotoratPower (çıkışport.a, 50); _BRIC.BATCHCOMMAND.TURNMOTRATPOWER (Outputport.b, -50); _brick.batchcommand.sendcommandasync ();

Şimdi iki takım bir kerede hazırlanır, ardından bir paketle denetleyiciye giderler. Kontrolör, bu komutları aldıktan sonra, motorları aynı anda döndürmeye başlar.

Başka ne yapabilirim

Dönen motorlara ek olarak ve sensör değerlerini okuma, EV3 denetleyicisinde bir dizi işlem yapabilirsiniz. Onların Katta ayrıntılı olarak kalmayacağım, yapabileceklerin bir listesini listeleyeceğim:

  • Cleanuiasync (), DrawTextAsync (), DrawLineAsync () ve diğer - Dahili ekran kontrolörünün manipülasyonu EV3
  • PlayToneAsync () ve PlaySoundAsync () - sesleri çalmak için dahili hoparlörü kullanma
  • WriteFileAsync (), CopyFileAsync (), deletefileasync () (Sistem Komisyonundan) - Dosyalarla Çalışma

Sonuç

Robotları yönetmek için .NET'i kullanmak MindStorms EV3, "farklı dünyalardan" teknolojilerinin birlikte çalışabileceği gibidir. Çalışma sonucunda, EV3 API for.NET, EV3 robotunu bilgisayardan yönetmenizi sağlayan küçük bir uygulama oluşturuldu. Ne yazık ki, NXT için benzer uygulamalar var ve EV3 partiyi atladılar. Aynı zamanda, örneğin futbol robotlarında, yönetilen robotların canlandırılmasında faydalıdırlar.

Uygulama bu bağlantıya indirilebilir ve yüklenebilir: