Lego Mindstorms'da beyinleri değiştirin. EV3 mikro denetleyicisinin tam analogu

Herhangi bir sorunuz varsa, yeni kurucu hakkında ne bilmek istersiniz (belirli bir şeyin nasıl çalıştığı, sensörler veya motorlarla bir deney yapın) - bize yazın - önerilerinizi test etmeye çalışacağız. Bu şekilde, daha satışa çıkmadan EV3 hakkında daha fazla bilgi edinebilirsiniz.

Şimdi her şey EV3 Brick yazılımına (EV3 üretici yazılımı) genel bir bakışla başlıyor.

Yeni bloğun özelliklerinden biri de uzun süre açılıp kapanması. Zamanla, süreç dahil etme ile orantılıdır cep telefonu veya ev yönlendiricisi, yani saniye 20-30. Açtıktan sonra aşağıdaki menü görünür:


Gördüğünüz gibi, NXT bloğuna kıyasla çok şey değişti: yazı tiplerinin kalitesi iyileştirildi, daha fazla çizilmiş grafik öğesi ve bir pencere arayüzü. Her şeyden önce, bunun nedeni ekran boyutunun artık artmasıdır - NXT bloğu gibi 100'e 64 yerine 178'e 128 piksel olmuştur. İçsel düğmeleri ve kaydırma çubukları olan pencereli bir arayüzün varlığından, harici dokunmatik yüzeyşimdi daha da mantıklı.


İlk pencereden bloğa yüklenen programları ve doğrudan blokta oluşturulan programları çağırmak mümkündür. Şunlar. programı şimdi başlatmak için NXT bloğunda olduğundan daha az tıklama yapmanız gerekiyor.

İndirilen programların yanı sıra ikinci ve sonraki ekranlara (menü öğeleri) geçiş, şu anda 4 olan kontrol düğmeleri kullanılarak gerçekleştirilir.


İkinci ekran - bloktaki dosya sistemi nesneleri arasında gezinmenizi sağlar. Dosya sistemi artık geleneksel hiyerarşiyi destekliyor: dosyalar ve dizinler.


Üçüncü ekran alt menüler içerir - blokla farklı eylemler gerçekleştirmenize izin veren uygulamalar:


Bloğun mevcut yazılım sürümünde bu tür dört uygulama vardır:

  • Sensörleri görüntüle
  • Motor kontrolü
  • Uzaktan kumanda
  • Blok üzerinde programlama
Dördüncü ekran konfigürasyon ekranıdır. Dışında temel ayarlar: ses seviyesi, boşta kalma zamanlayıcısı, BlueTooth ve WiFi'yi açma, ünitenin yazılımı hakkında bilgi bulmanızı sağlar:



Belirli bir menü öğesinin / uygulamanın seçimi, klavyedeki orta düğmedir. Ve herhangi bir menü öğesinden veya uygulamadan çıkmak için, artık ana düğmelerden ayrı olarak ekranın altında sol tarafta bulunan "Çıkış" düğmesine basmanız gerekir.

Şimdi üçüncü ekrana geri dönmeli ve uygulamaları tanımaya başlamalısınız. Yani, uygulama "Görünüm sensörleri" (Port Görünümü).

NXT bloğundaki benzer bir modun aksine, artık bloğa bağlı 8 cihazın tümü hakkında bilgileri aynı anda görebilirsiniz. Ayrıca, sensörlerin otomatik olarak algılanmasının beyan edilen işlevselliği, hangi sensörün nereye bağlı olduğunu elle belirtmemenizi sağlar.

Üst kısım motorların kodlayıcılarından gelen bilgileri, alt kısım ise sensörlerden gelen bilgileri gösterir. Ekranın ortasında - hakkında bilgi belirli cihaz(belirli bir bağlantı noktasında), klavyedeki kontrol düğmelerine basılarak seçilebilir. Bilgiler, sensörün grafik gösterimini, adını ve geçerli okumaları içerir:

Dokunma sensörü:


Cayro Sensörü:


Yansıtılan ışık ölçüm modunda renk sensörü:


Ultrasonik Mesafe Sensörü:

Burada, bu arada, sensörün artık mesafeyi en yakın milimetreye kadar ölçebileceğini iddia ettiğini ve minimum ölçülebilir mesafenin artık 3 cm olduğunu görebilirsiniz.

Sol motorun kodlayıcısından gelen bilgiler.


Bir sonraki uygulama motor kontrolüdür. Aslında, motorları butonlarla döndürmenizi sağlar. Ortadaki düğme ile hangi motorların döndürüleceğini seçmeniz gerekir. Ve sonra belirli motorları döndürmek için yukarı ve aşağı veya sol ve sağ düğme çiftleri.


Üçüncü uygulamayı deneyemedik çünkü EV3 Eğitim Sürümü standart olarak bir kızılötesi mesafe sensörü ve bir kızılötesi işaret ile gelmiyor. Ancak görünüşe göre, bu ekranda kızılötesi işaretten hangi motorların kontrol edileceğini yapılandırabilirsiniz.


Elbette en ilginç uygulama, blok üzerinde programlamadır. Önemli ölçüde revize edildi: bir program artık 16 adede kadar program öğesi (blok) içerebilir ve oluşturulan programlar kaydedilebilir ve elbette değişiklik için yeniden açılabilir.


Program yazma uygulaması açıldığında, boş bir çalıştırma döngüsü görüntülenir (yalnızca bir yineleme gerçekleştirilecektir) ve ilk bloğu eklemek için bir istem görüntülenir. "Yukarı" düğmesini kullanarak bir blok ekleyebilirsiniz.


Görünen blok seçim penceresinde, 17 blok (6 eylem bloğu ve 11 bekleme bloğu) artı mevcut bloğun silme eylemi mevcuttur.



Blokların seçilme ve takip edilme sırası programcı tarafından belirlenir. Daha önce NXT bloğunda olduğu gibi, her eylem bloğunun bir bekleme bloğu tarafından takip edilmesi gerektiği anlamına gelmez.

Programda seçilen blok şöyle görünür:


Bloğun davranışı, ortadaki düğmeye basılarak iyileştirilebilir. Bu blok için, örneğin, robotun dönüş yönünü değiştirebilir veya motorları tamamen durdurabilirsiniz (örneğin, bir önceki bekleme bloğundan sonra).


"İmleci" sola veya sağa hareket ettirerek başka bir blok ekleyebilirsiniz:


Örneğin, bir mesafe sensöründe olay bekleyen bir blok:


Ve davranışını değiştirin (mesafe 60 cm'den fazlaysa olay gerçekleşir):


Bloklar mevcut blokların arasına veya hatta bir programın başına yerleştirilebilir.


İşte bazı bekleme blokları örnekleri:

Zamana göre bekleme bloğu (tam olarak ne kadar bekleyeceğinizi ayarlayabilirsiniz):


Veya bir jiroskop sensöründen bir olay bekleyen bir blok (sensörün dönüş açısını ayarlayabilirsiniz).


Sensörlerin otomatik olarak algılanmasının işlevselliğinin, blok üzerindeki programlama sürecini basitleştirdiği tekrar belirtilmelidir. Artık belirli sensörlerin belirli bağlantı noktalarına bağlanması gerektiği kuralına uymaya gerek yok.

Programın birkaç kez yürütülmesi gerekiyorsa, kontrol döngüsünün yineleme sayısı değiştirilebilir:


Program, ilk blok seçilerek başlatılır:


Program başladığında, ekranda aşağıdakiler görüntülenecektir:


Program kaydedilebilir ve sonraki araması için bir dosya adı belirtebilirsiniz:



Harfler klavye kullanılarak seçilir (merhaba dokunmatik yüzey!)

Kaydedilmemiş bir programı kapatmaya çalışırsanız, aşağıdaki pek net olmayan mesaj görüntülenecek ve rahatsız edici bir ses çıkacaktır:


Gelecekte, oluşturulan program açılabilir ve değiştirilebilir.


Doğal olarak sadece blok üzerinde oluşturulan programlar açılır.

Sonuç olarak, bloğu kapatmanın nasıl göründüğünü göstermek istiyorum:


- Kimi isterdin - bir oğul mu yoksa bir kız mı?
- Oğul!
- Neden?
- Radyo kontrollü bir helikopter istiyorum!!!
Komik olmayan ve düğmeli bir akordeon anekdotu, ama öylece alıp bu yayına onunla başlayamazsınız - o içeride en iyi haliyle bundan sonra tartışılacak olanın özünü yansıtır. Ancak, başlıktan ne hakkında olduğunu zaten anladınız.

Dikkatlice! Yayın, erkek çocuk sahibi olmak için karşı konulamaz bir istek uyandırabilir.

Tarih dersi

LEGO şirketinin (adı Danca "leg godt", "Zevkle oyna" ifadesinden gelir) tanıtıma ihtiyacı yoktur - ilk tanıdık plastik küpler çok daha sonra, 1947'de ortaya çıkmasına rağmen, 1932'de kurulmuştur. O yıllarda üretilen LEGO tuğlaları, şimdi üretilenlerle tamamen uyumludur.

Pixar tarafından LEGO'nun 80. yıl dönümü için piyasaya sürülen şirketin kuruluş tarihi:

Artık şirket yılda yaklaşık 20 milyar parça, yani saniyede 630'dan fazla parça üretiyor. şu anda model aralığı 600'den fazla farklı inşaatçı ve öyle oldu ki Mindstorms serisi bir tür teknik düşüncenin zirvesi, en sofistike inşaatçı. Kısacası, oldukça tam teşekküllü robotlar yapmanızı sağlar.

Wikipedia'ya göre, dizi LEGO Akıl Fırtınaları ilk olarak 1998 yılında tanıtıldı. 8 yıl sonra (2006'da), LEGO Mindstorms NXT 1.0 seti doğdu ve 2009'da LEGO Mindstorms NXT 2.0 seti doğdu. Bugün hakkında konuşacağız LEGO Mindstorms EV3- neredeyse bir yıl önce 4 Ocak 2013'te tanıtılan yapıcı sonlandırıcının son (üçüncü) nesli (sadece altı ay sonra satışa çıktı).

EV3 ve NXT 2.0 arasındaki farklar

Prensip olarak, ana fikir aynı kalır - seri, programlanabilir robotların montajı için tasarlanmıştır. Bu nedenle, ortaya çıkan ilk soru, önceki kurucunun piyasaya sürülmesinden bu yana neyin değiştiği ve yenisini almaya değer mi? Ana fark, güncellenen sensörlerde/motorlarda ve en önemlisi EV3 Smart Brick'tedir (EV, EVolution anlamına gelir):
Gördüğünüz gibi, fark oldukça önemli - 4 yılda sadece ekran çözünürlüğü ve çıkartma seti değişseydi garip olurdu.

Diğer bir fark, NXT serisinin birkaç versiyonda (farklı yıllarda) satılması ve temel ve kaynak olmak üzere farklı setleri temsil etmesidir. Yeni EV3 bununla daha kolay - ana sürümde satılırken - (601 parça), buradan pek çok şey yapabilirsiniz. Ancak dilerseniz, ek sensörler ve parçalar içeren temel bir set (541 parça) satın alabilirsiniz (sıradan tasarımcıların parçalarını kimse kullanmaktan rahatsız olmaz). Bu arada, beş haneli ürün numaralarına dikkat edin - şirket 2013 yılında bu numaralandırmaya geçti.

Uyumluluğa gelince, burada mümkün olan her şey yapılmıştır. Tüm NXT sensörleri ve motorları EV3 uyumludur ve NXT olarak tanınır. EV3 sensörleri NXT ile çalışmaz, ancak EV3 motorları uyumlu görünmektedir. NXT Brick, EV3 yazılımı ile programlanabilir, ancak bazı özellikler mevcut olmayabilir, ancak üçüncü taraf çözümler olmadan EV3 Brick'i NXT yazılımı ile programlamak mümkün değildir.

kutunun içinde

Ben bile küçükken ve ailemle birlikte merkezi Çocuk Dünyasına (hala oradayken), Lubyanka'ya gittiğimde bile - o zaman bile gözlerimi LEGO ile kutulardan alamadım. O zamanlar ne Giktimes ne de Habr vardı ama o zamandan beri kutular aynı parlak ve sulu kaldı, yetişkinlikte bile tükürük salgılama sürecini etkinleştiriyorlar) Bu konuda diğer üreticilerin öğrenecek çok şeyi var.

Kutunun bir kısmı aslında (kesilmişse) renk sensörlü robotlar için kullanılabilen farklı renk bölgelerine sahip bir parkurdur.

Tüm parçalar, talimatlar ve bir dizi çıkartma ile eksiksiz bir şekilde çantalarda düzgün bir şekilde düzenlenmiştir. Kitte neler olduğuna hızlıca bir göz atalım.

Kendim EV3, o aynı zamanda bir entelektüel bloktur, sistemin kalbidir, aynı zamanda bir "tuğla" veya "küp" dür. Robotunuz için bir kontrol merkezi ve güç istasyonu görevi görür ve aşağıdaki işlevsel öğelere sahiptir:

- 178x128 çözünürlüğe sahip çok işlevli monokrom ekran
– Çalışma modunu belirtmek için arka ışık değiştirme işlevine (3 renk) sahip altı düğmeli kontrol arayüzü
– Sensörleri bağlamak için 4 giriş portu (1, 2, 3, 4)
– Komutları yürütmek için 4 çıkış portu (A, B, C, D)
– EV3'ü bir bilgisayara bağlamak için 1 miniUSB konektörü
– 1 USB ana bilgisayar bağlantı noktası (örneğin, birden çok EV3'ü birbirine zincirlemek için)
– 1 microSD kart yuvası (32 GB'a kadar) – mevcut EV3 belleğini genişletmek için
- Dahili hoparlör

EV3 Brick ayrıca Bluetooth, WiFi (NETGEAR WNA1100 Kablosuz-N 150 USB Adaptörü aracılığıyla) ve doğrudan EV3 Brick üzerinde programlar oluşturmanıza ve veri kaydı kurmanıza izin veren bilgisayarlarla iletişim kurmak için bir API'yi destekler.

» Büyük EV3 Servo (2 adet). EV3 Brick ile çalışacak şekilde tasarlanmıştır ve 1 derece hassasiyete sahip yerleşik bir dönüş sensörüne sahiptir. Bu sensör kullanılarak motor diğer motorlara bağlanarak robotun sabit hızda hareket etmesi sağlanır. Ek olarak, mesafe ve hız verilerini doğru bir şekilde okumak için dönüş sensörü çeşitli deneylerde kullanılabilir.

– 1 dereceye kadar ölçüm doğruluğuna sahip dahili dönüş sensörü
– 160-170 rpm'ye kadar maksimum hız
– Maksimum tork 40 Ncm

» Orta EV3 Servo. Hız ve yanıt verebilirliğin yanı sıra robot boyutunun taşıma kapasitesinden daha önemli olduğu görevler için idealdir.

– 1 dereceye kadar ölçüm hassasiyetine sahip dahili dönüş sensörü
– 240-250 rpm'ye kadar maksimum hız
– Maksimum tork 12 Ncm
– Otomatik tanımlama yazılım EV3

» Renk sensörü (EV3). 8 farklı rengi algılayabilmesine rağmen ışık sensörü olarak da kullanılabilir.

– Tam karanlıktan parlak güneş ışığına kadar yansıyan kırmızı ışığı ve ortam ortam ışığını ölçer
– 8 rengi düzeltir ve tanımlar
– 1 kHz'e kadar yoklama hızı
– EV3 Yazılımı tarafından otomatik tanımlama

» Dokunma sensörü (EV3). Robotun dokunmaya yanıt vermesini sağlar, üç durumu tanır: dokunma, tıklama ve bırakma. Ayrıca, hem tekli hem de çoklu tıklama sayısını belirleyebilir.

» Dijital IR sensörü (EV3). Robotun yaklaşımını belirlemek. Ayrıca bir IR işaretinden IR sinyallerini alma yeteneğine sahiptir ve uzaktan kumandalı robotların oluşturulmasına izin verir. navigasyon sistemleri engelleri aşmak için.

– 50-70 cm'lik bir yarıçap içinde yaklaşma/uzaklaşma ölçümleri
– 2 metreye kadar IR alma aralığı
– 4 adede kadar ayrı sinyal alım kanalı
– Uzaktan IR kontrol komutlarını alma
– EV3 Yazılımı tarafından otomatik tanımlama

» Uzak kızılötesi işaret. EV3 IR Sensörü ile kullanım için tasarlanmıştır. İşaret, sensör tarafından alınan bir kızılötesi sinyal yayar - uzaktan kumanda olarak kullanılabilir uzaktan kumanda EV3 Brick, IR sensörüne sinyaller göndererek.

– 4 adede kadar ayrı sinyal iletim kanalı (doğrudan kasada geçiş yapın)
– Açma / kapama için bir düğme ve geçiş anahtarı vardır
– Kızılötesi işaret çalışırken, yeşil LED yanar
Otomatik kapanma 1 saatten fazla boşta
– 2 metreye kadar menzil

Ayrı bir çanta, sensörleri ve motorları küpe bağlamak için kabloların yanı sıra küpü bir bilgisayara bağlamak için bir USB kablosu içerir.

İki önemli noktayı belirtmekte fayda var. İlk olarak, aşağıdakiler gibi başka Lego sensörleri vardır:

» Cayro Sensörü (EV3). EV3 Dijital Cayro Sensörü, robotun dönüş hareketini ölçmenize ve ayrıca hareket ve konumundaki değişiklikleri algılamanıza olanak tanır. ± 3 derece hassasiyetle açı ölçüm modu; yerleşik jiroskop, 440 derece/sn'ye kadar bir momentle dönüşleri yakalar; 1 kHz'e kadar örnekleme hızı.

» Ultrasonik sensör (EV3).üretir ses dalgaları ve nesnelerden yansımalarını yakalar, böylece nesnelere olan mesafeyi ölçer. Tek dalgalar yayan sonar modunda da kullanılabilir. Programların çalışması için tetikleyici olacak ses dalgalarını alabilir. 1 ila 250 cm arasındaki mesafeleri ölçer ve ölçüm doğruluğu ± 1 cm'dir.

İkinci olarak, HiTechnic ve Mindsensors gibi üçüncü taraf üreticilerin sensörleri ve diğer aksesuarları desteklenir - bunlar her türlü oyun çubuğu, kızılötesi mesafe sensörleri, manyetik sensörler, pusulalar, jiroskoplar, ivmeölçerler, zamanlayıcılar, çoklayıcılar, bilyeli mafsallar vb. sunar. Yani, bir soru sorarsanız, pek çok ilginç şey bulabilirsiniz.

Genel olarak, zaten anladığınız gibi, LEGO gerçek erkekler içindir!

İlk model

Kit, tek bir modeli monte edebileceğiniz bir kağıt talimatla birlikte gelir - bir tür tırtıl kundağı motorlu araç.

İlk başta şaşırdım çünkü en basit setlerde bile (LEGO Creator gibi bir dizi) her zaman birkaç talimat vardır ve sonra birdenbire kağıttan pişman oldular veya kutuda yer bulamadılar. Görünüşe göre ... sadece resmi web sitesinde bir dizi parçadan 17 farklı robotun bir araya getirilmesi öneriliyor! Bu nedenle, bir kutuda 17 talimat gerçekten gereksiz olacaktır (hem lojistik hem de doğa ormanları için). İşte robotların isimleri: EV3RSTORM , GRIPP3R , R3PTAR , SPIK3R ve TRACK3R . ROBODOZ3R , BANNER PRINT3R , EV3MEG , BOBB3 , MR-B3AM , RAC3 TRUCK , KRAZ3 , EV3D4 , EL3CTRIC GUITAR , DINOR3X , WACK3M ve EV3GAME - bunlara ilişkin talimatların yanı sıra EV3'ü bilgisayara bağlamak için yazılım internetten indirilmelidir. bir bilgisayar.

Talimat en ayrıntılıdır, mahvetmek zordur. oğlum dediçantalardaki parçaların çok iyi paketlenmemiş olması - ilk sayfada 3 farklı paket açmanız gerekebilir ama bunlar da önemsiz.

EV3 Brick'in, şarj edilebilir pil (dahil değildir) veya 6 AA pil ile çalıştırılabilmesi için çalıştırılması gerekir. İleriye dönük - IR işaretini (uzaktan kumanda olarak da bilinir) çalıştırmak için 2 pil daha (ancak zaten küçük parmaklar) gerekli olacaktır.

Çocuk (7 yaşında) ilk modeli yaklaşık 30 dakikada kurdu.

Sürecin, örneğin LEGO Technics modellerini monte etmek kadar heyecan verici olmadığı ortaya çıktı - talimatlar, en ilginç robottan uzak bir montajı öneriyor: sadece büyük parçalar içeriyor, aralarında neredeyse tüm sensörler ve motorlar var - görünüşe göre işi göstermek için her birinin

Ancak sonuç, tüm çocukların beklentilerini aştı - ilk kez kendi kendine hareket edebilen bir model kurdu: ileri geri, dön, yerine dön, dokunaçlarla bükülmüş ...

Başlatma, ön paneldeki birkaç düğmeye basmanız gereken EV3 küpünden gerçekleştirilir. Bazı eylemler doğrudan kalıp üzerinde programlanabilir: yineleme sayısını seçin, ilerlemeyi ayarlayın ses sinyali vb. - her şeyi tek bir makalede anlatamazsınız, duman kılavuzları.

Yumuşak

Yukarıda toplanan modeli bir bilgisayar aracılığıyla programlamak gerekli değildi. Bununla birlikte, böyle bir olasılık var ve farklı seviyelerde hardcore.

Bir çocuğun hem Windows hem de OS X altında bulunan üretici tarafından sunulan yazılımla başlaması en kolay olacaktır. İkinci durumda, dağıtım kiti 666 MB ağırlığındadır ve yüklü uygulama bir gigabayt alır. LEGO Mindstorms EV3 Home Edition olarak adlandırılır ve kötü şöhretli LabView şirketi ile işbirliği içinde geliştirilmiştir. LEGO web sitesinde oldukça fazla programlama öğreticisi var.

Lansmandan hemen sonra, önümüzde bir setten monte edilebilecek etkileşimli bir robot "garajı" beliriyor:




Beğendiğimizi seçip toplamaya başlıyoruz: Etkileşimli montaj talimatlarını, videoları ve birleştirilmiş robotla tamamlanabilecek çeşitli görevlerin bir seçimini göreceğiz. Bu yüzden dağıtım çok ağır bastı.








Her şeyi ayrıntılı olarak açıklamak için bir neden göremiyorum: uygulamayı hızlı bir şekilde kendiniz indirecek ve orada ne olduğunu ve hangi seviyede olduğunu göreceksiniz. En çok hatırladığım eksikliklerden birinden bahsetmedikçe: en arkadaş canlısı (özellikle çocuklar için) arayüz değil - uygulama bir tür banka müşterisi gibi kokuyor.

EV3 tuğlasının ameliyathanelerde akıllı telefondan kontrol edilebildiğini bir kez daha belirtmekte fayda var. Android sistemleri veya ayrı uygulamaların olduğu iOS.

Bütün bunlar yeterli değilse, hardcore derecesini artırabilirsiniz. EV3 tuğlası için, yeteneklerini, hızını vb. genişletmenize izin veren çeşitli aygıt yazılımları vardır. Örneğin, alternatif üretici yazılımı leJOS EV3, EV3'ü Java'da programlamanıza izin veren jvm'li bir aygıt yazılımıdır. Başka bir dilde ister misin? Ok Google - aralarından seçim yapabileceğiniz neredeyse 60 seçeneğiniz var: ASM/C/C++/Perl/Python/Ruby/VB/Haskell/Lisp/Matlab/LabVIEW ve çok daha fazlası.

Birkaç nedenden dolayı bundan daha ayrıntılı olarak bahsetmeyeceğim: birincisi, benden programcı tamamen yanlış (oğlum için tüm umutlar), ikincisi, şimdiye kadar yalnızca bir modeli bir araya getirmeyi başardık (ve üstleneceğiz) ikincisi hafta sonu) ve -Üçüncüsü - bu inşaatçı için zaten bir sipariş verdiniz ve yakında her şeyi kendiniz öğreneceksiniz;) Ama cidden, makale zaten çok büyük - iki bağlantıyı incelemek daha iyidir: bir ve iki.

Bir başka büyük artı, tüm dünyada dolu olan LEGO topluluklarıdır. Robotlarla denemenin herhangi bir aşamasında, her zaman benzer düşünen ve sorunu çözmeye yardımcı olabilecek kişiler bulabileceğinizden emin olabilirsiniz. Arkadaş canlısı topluluklara ek olarak, internette çok çeşitli farklı talimatlar, modeller, kaynak kodları, videolar ve eğitim materyalleri yayınlandı. Tüm bunların tek bir anlamı var: Mindstorms ile sıkılmayacaksınız.

Avantajlar ve dezavantajlar

LEGO ürünleri birkaç yıldır kalitesiyle ünlüdür, bu nedenle bu konuda herhangi bir şikayet yoktur: muhteşem bir kutu, parçalar, çıkartmalar, talimatlar - her şey en küçük ayrıntısına kadar yapılır. Bu nedenle, büyük olana kıyasla tüm "küçük artılara" gözlerimi kapatmama izin verin: standart bir parça setinden bile yapılabilecek olası tasarım kombinasyonlarının çeşitliliği (ek setlerden bahsetmeye değmez) yalnızca sınırlıdır. hayal gücünle Birleştirilmiş modeli farklı şekillerde programlama yeteneği, aslında ilk bakışta göründüğünden çok daha fazla olan başka bir artıdır.

Ancak gerçekten önemli dezavantajlardan yalnızca birini buldum: fiyat. Yazın LEGO Mindstorms EV3 14-15 bine alınabiliyordu ama her zaman yeşil kalan başkanın oranındaki hızlı yükseliş fiyatı 17 bine çıkardı. Biri diyecek ki: evet, harika bir tasarımcı ... AMA PAHALI!» Ve haklı olacak. Kiti ve yeteneklerini keşfederken, oluşturulmasına yatırılan kaynakların miktarı beni çok şaşırttı; Çok fazla elektronik ve diğer her şey olduğunu anlıyorum ... ama yine de tasarımcı için böyle bir maliyeti kabul edemiyorum. Bu para için bir kişiyi hapisten çıkarabilirsiniz (c) başka birçok hediye seçebilirsiniz: bir quadrocopter, radyo kontrollü içten yanmalı motorlu bir model, tam boyutlu bir elektrikli motosiklet, spor bölümünde bir yıllık dersler, bir tablet ... ve bir çok şey! Ancak istediğiniz zaman spora gidebilirsiniz ve bu pek bir hediye gibi değil, ancak aynı quadcopter ilk ciddi arızaya kadar vızıldayacak. Lego, bu anlamda, işi zevkle birleştiren, gerçekçi olamayacak kadar büyük potansiyele sahip, çok daha uzun ömürlü bir hediye. Evet, aynı tablette programlamayı da öğrenebilirsiniz, ancak işin sonucunu ellerinizle hissetmenin bir yolu olmadığında, artık o kadar heyecan verici değil. Öyleyse kendin karar ver.

Oh evet. Üretici bu seti 10 yaşından büyük çocuklar için konumlandırıyor, ancak 7 yaşındaki bir çocuk bile oynamakla ilgileniyordu - hızlı gelişim süreci başladı. Ne kadar düşünüyorsun bu adamlar ve ilk Porsche'lerini ne zaman alacaklar?)

Son

Her birimiz Yeni Yılı kar bakireleri, bir Noel ağacı, mandalina, bir kase Olivier ve tabii ki hediyelerle ilişkilendiririz. Ve çocuklar hakkında konuşursak, o zaman onların hediyeleri bu listedeki son yer olmaktan çok uzaktır. Ve eğer oğlunuz büyüyorsa, o zaman ağacın altındaki bu tasarımcının onu domuz neşe çığlıklarına getireceğinden şüphe duyamazsınız. Ve Yeni Yıl havai fişeklerinden sonra, çocuğunuzla birlikte küpler ve teller içinde daha derine inmek için neredeyse bir haftanız olacağı göz önüne alındığında ... onun çocuğunu satın alıyorsunuz, değil mi?

Yeni Yılın Kutlu Olsun!

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 tüm yöntemlerden daha iyidir.

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

Zincirleme modunda LEGO EV3 ve diğer LEGO EV3 yapım parçaları arasındaki iletişim.

Papatya dizimi modu, iki veya daha fazla LEGO EV3 tuğlasını bağlamak için kullanılır.

Bu mod:

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

Zincirleme 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çebiliyoruz.

Aşağıdaki tabloda EV3 Brick'lerin kullanımları listelenmektedir:

Eylem

orta motorlu

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ını sağlar. 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 bir EV3 Slave için mesaj gönderip almanıza olanak tanır. EV3 Bağımlıları, birbirlerine değil, yalnızca EV3 Master Brick'e mesaj gönderebilir.

EV3 Bluetooth Eşleştirme Sırası

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

1. Bir sekme açın Ayar.

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

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

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

5. İstenen EV3 Brick sayısı için yukarıdaki prosedürü uygulayı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 Brick'leri 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:

Birinci Blok: Dokunma sensörüne basıldığında, birinci EV3 Brick metni 3 saniye gecikmeyle ikinci bloğa (ana blok) iletir.

Blok 2 için örnek program:

İkinci blok, ilk bloktan metnin alınmasını bekler ve onu aldığında, 10 saniye boyunca bir kelime (bizim örneğimizde "Merhaba" kelimesi) görüntüler (alt blok).

Wi-Fi ile bağlanma

ile daha uzun mesafeli iletişim mümkündür. Wi-Fi bağlantısı EV3'teki USB bağlantı noktasına donanım kilidi.

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 Donanım Kilidi bağlayabilirsiniz.

Bu makale, yapıcının yeni versiyonu olan LEGO Mindstorms Education EV3'e odaklanacaktır. Ancak EV3'ün yeniliklerinden bahsetmeden önce, LEGO Mindstorms serisi inşaat setlerine daha yakından bakalım.

LEGO Mindstorms, 10 yaş ve üstü çocuklar için bir robotik kitidir. LEGO Techniс parçaları, robot için yapı taşları olarak kullanılır - Teknoloji ve Fizik inşaatçıları Pneumatics'ten birçok kişi bunlara zaten aşinadır. Ancak bir robot çerçevesi oluşturmak yeterli değildir: ona çevreden bilgi almayı ve buna 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ı belirlemenizi sağlar. Robot, motorların yardımıyla "tahriş edici maddelere" tepki verebilir - ya bir yere gidebilir ya da bir şeyler yapabilir - örneğin, suçlunun parmağını ısırır. Ve robotun "beyni", tüm motorların ve sensörlerin bağlı olduğu özel bir programlanabilir birimdir.

LEGO Mindstorms EV3 setinin bileşimine 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 pili
  • 528 Lego Technic parçası

Sensörler ve motorlar

NXT'nin eski versiyonuna kıyasla EV3'te nelerin değiştiğine bir göz atalım.

Set içerisinde 3 adet motor bulunacaktır fakat bunlardan biri hem boyut olarak hem de teknik özellikler olarak farklılık gösterecektir.

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ıkları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 olmadığını algılayabilir. Önceki sürümde olduğu gibi ışık sensörü olarak çalışabilir.

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

Jiroskop

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

  • Geçerli 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'yi 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özlerin" çevresinde kırmızı LED aydınlatma

büyük motor

Büyük EV3 servo, NXT motorun önceki versiyonuna çok benzer, ancak motor muhafazası biraz daha büyüktür (eski 14x6x5'e kıyasla artık neredeyse 14x7x5 delik almaktadır). Motorların montaj noktaları ve tipleri de değiştirildi.

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

orta motorlu

EV3 Orta Boy Servo, benzer boyutta bir Güç Fonksiyonu motoruna dayalıdı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ü (kodlayıcı)

NXT sensörleri, motorları ve kabloları EV3 ile uyumludur, böylece daha önce yapılmış tüm robotlar yeni blok tarafından kontrol edilebilir.

EV3 Programlanabilir Tuğla

EV3 mikrobilgisayarında da büyük değişiklikler oldu. NXT ile karşılaştırıldığında, EV3 bloğu daha hızlı bir işlemciye, daha fazla belleğe sahiptir. EV3 Brick ürün yazılımı, brick için kendi ürün yazılımınızı oluşturmanıza olanak tanıyan, ücretsiz olarak dağıtılan Linux işletim sistemini temel alır. Robotu bir bilgisayara sadece USB ve Bluetooth üzerinden değil, Wi-Fi üzerinden de 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 spesifikasyonlarının bir karşılaştırma tablosu bulunmaktadır:


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

Veri aktarım hızı: 460,8 Kbps'ye kadar (UART)
Çıkış portları (motorlar için) 3 port
4 port
USB üzerinden veri aktarımı Tam hız modu kullanılır: 12 Mbps Yüksek hız modu kullanılır: 480 Mbps
USB cihazlarının bağlanması Fırsat yok Wi-fi ağ kartları ve flash kartlar dahil olmak üzere 3 cihaza kadar seri bağlantı mümkündür
SD kart okuyucu Mevcut olmayan MiniSD kartları destekler, maksimum kapasite 32 GB'dir
Mobil cihazlara bağlanma 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
USB 2.0 (bir PC'ye bağlandığında
USB 1.1 (birden çok aygıtı zincirleme bağlarken)
Wifi

Programlama ortamı

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

EV3 Geliştirme Ortamı büyük ölçüde geliştirildi. Artık robot için tüm malzemeler: robot için programlar, dokümantasyon, deney sonuçları, fotoğraflar ve videolar - projede saklanabilir. Örneğin, tüm programı görmek için programı ölçeklendirmenize izin veren bir yakınlaştırma aracı da eklenmiştir. NXT Brick'in yeni EV3 Ortamı kullanılarak programlanabileceğini, ancak eski NXT Brick'in yeni programlama dilinin tüm özelliklerini desteklemediğini belirtmekte fayda var.

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

  • Programlama ortamının blok ile sıkı entegrasyonu:
    • Bağlı ekipmanlarla özel bir sayfa eklendi. EV3 bloğunun durumunu izlemenizi ve gerçek zamanlı sensör değerlerini almanızı sağlar.
    • Otomatik kimlik işlevi sayesinde sensörler ve motorlar bağlandıklarında otomatik olarak tanınır. Bu, belirli bir sensörün 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ıza olanak tanır.
    • Bu porta başka bir sensör veya motor bağlıysa, programlama bloğunda özel bir sembol yanar.
    • Veri kabloları aracılığıyla iletilen değerleri görüntüleme yeteneğ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ı" terk etmeyi mümkün kıldı.
    • Blokların özelleştirme çubuğu diye bir şeyi yoktur - davranış artık doğrudan blok üzerinde özelleştirilebilir, bu da blokların boyutlarında bir artışa neden olur. Programı okumak 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 belirli bir değerdeki değişikliğe değil, bir değer değişikliği gerçeğine tepki vermenize izin veren "değişimi bekle" blokları vardı.
    • Verilerin bloktan bloğa geçirilmesindeki iyileştirmeler, türleri dönüştürmeyi kolaylaştırır (artık, örneğin bir sayıyı bir dizgeye 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 dilinin yanı sıra robotu kontrol etmek için Android ve iPhone\iPad için programlar ortaya çıktı. Ayrıca, Autodesk Invertor Publisher programına dayalı olarak, adım adım 3D talimatları oluşturmak ve görüntülemek için bir program oluşturuldu. 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 yapmak 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
Denge için jiroskop kullanan bir segway robotu.

Köpek yavrusu
Sevilip beslenebilen robot köpek. Ayrıca uyumayı ve rahatlamayı da biliyor :) 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 yapmanızı sağlar.

Makale yazılırken nnxt.blogspot.com blogundaki materyaller kullanılmıştır.

Makale, Robot Kontrol Meta Dili (RCML) kullanılarak sonraki programatik ve manuel kontrolü ile bir robot prototipi oluşturmak için Lego Mindstorms EV3 yapıcısını kullanma deneyimini açıklamaktadır.

  • Lego Mindstorms EV3'e dayalı bir robot prototipinin montajı
  • Windows için RCML'nin hızlı kurulumu ve konfigürasyonu
  • EV3 denetleyicisine dayalı robotun yazılım kontrolü
  • Klavye ve gamepad kullanılarak robotun çevre birimlerinin manuel kontrolü
Biraz ileriye baktığımda, klavyeyi kullanarak bir Lego robotunun kontrolünü gerçekleştirmek için sadece 3 satır program kodu içeren bir program oluşturmanın gerekli olduğunu ekleyeceğim. Bunun nasıl yapılacağı hakkında daha fazla ayrıntı kesimin altında yazılmıştır.

1. Başlangıç ​​olarak, programlama ve manuel pilotluk için kullanılacak Lego Mindstorms EV3 yapıcısından bir robot prototipi oluşturuldu.

Robot prototipinin açıklaması

Robot, araba şasisine benzer bir tasarıma sahip. Şasiye monte edilmiş iki motor, bir dişli kutusu aracılığıyla arka tekerleklere bağlanan bir ortak dönme eksenine sahiptir. Şanzıman, arka aksın açısal hızını artırarak torku dönüştürür. Direksiyon, bir konik dişli temelinde monte edilir.



2. Sonraki adım, RCML'yi Lego Mindstorms EV3 ile çalışacak şekilde hazırlamaktır.

Yürütülebilir dosyalar ve kitaplık dosyaları ve .

İndirilen arşivler, isteğe bağlı bir adla bir dizine çıkarılmalıdır, ancak, kaçınmak Başlıktaki Rus harfleri.

Arşivleri paketten çıkardıktan sonra dizinin içeriği



Ardından, aynı dizinde bulunması gereken bir yapılandırma dosyası config.ini oluşturmanız gerekir. EV3 denetleyicisini bir klavye ve oyun kumandası kullanarak kontrol etme özelliğini uygulamak için lego_ev3, klavye ve oyun kumandası modüllerini bağlamanız gerekir.

RCML için config.ini yapılandırma dosyasının listesi

Modül = lego_ev3 modülü = klavye modülü = oyun kumandası


Bir sonraki adım, EV3 Denetleyicisini ve adaptörü eşleştirmektir.

EV3 Denetleyicisini ve Bluetooth Adaptörünü Eşleştirme Talimatları

Talimat, bir Lego Ev3 denetleyicisini ve Windows 7 işletim sistemini çalıştıran bir PC'yi eşleştirme örneğini içerir.

1. Ev3 kontrol cihazının ayarlar bölümüne, ardından "Bluetooth" menü öğesine gitmeniz gerekir.

2. Yapılandırma parametrelerinin doğru ayarlandığından emin olun. Onay kutuları “Görünürlük”, “Bluetooth” öğelerine göre işaretlenmelidir.

3. "Denetim Masası"na, ardından "Aygıtlar ve Yazıcılar"a, ardından "Bluetooth Aygıtları"na gitmeniz gerekir.

4. "Cihaz ekle" düğmesini tıklamalısınız. Kullanılabilir Bluetooth cihazlarını seçmek için bir pencere açılacaktır.

5. EV3 cihazınızı seçin ve İleri'ye tıklayın.

6. EV3 Denetleyicisi, Bağlan iletişim kutusunu görüntüleyecektir. Onay kutusu seçeneğini seçmeniz ve orta tuşa basarak seçiminizi onaylamanız gerekir.

7. Ardından, "PASSKEY" iletişim kutusu görüntülenecektir, giriş satırında "1234" sayıları belirtilmelidir, ardından onay işaretli konumdaki orta tuşa basarak eşleştirme cihazları için parolayı onaylamalısınız.

8. Cihaz eşleştirme sihirbazında, cihazları eşleştirmek için bir anahtar girmek için bir form görünecektir. "1234" kodunu girmeniz ve "İleri" düğmesine basmanız gerekir.

10. PC'de "Denetim Masası"na, ardından "Aygıtlar ve Yazıcılar"a, ardından "Bluetooth Aygıtları"na dönmeniz gerekir. Kullanılabilir cihazların listesi, eşleştirdiğiniz cihazı gösterecektir.

11. "EV3" bağlantısının özelliklerine gitmek için çift tıklayın.

14. Özelliklerde belirtilen COM bağlantı noktasının dizini, lego_ev3 modülünün yapılandırma dosyası config.ini'de kullanılmalıdır. Örnek, standart COM14 seri bağlantı noktasını kullanan bir Lego EV3 denetleyicisinin Bluetooth bağlantı özelliklerini gösterir.


Modülün daha fazla konfigürasyonu, lego_ev3 modülünün konfigürasyon dosyasına, Lego robotu ile iletişimin gerçekleştirildiği COM portunun adresini yazmanın gerekli olduğu gerçeğine iner.

lego_ev3 modülü için config.ini yapılandırma dosyasının listesi

Bağlantı=COM14 dinamik_bağlantı=0


Şimdi klavye modülünü yapılandırmanız gerekiyor. Modül, control_modules dizininde ve ardından klavyede bulunur. keyboard_module.dll dosyasının yanında bir config.ini yapılandırma dosyası oluşturmalısınız. Bir yapılandırma dosyası oluşturmadan önce, tuş vuruşlarında hangi eylemlerin gerçekleştirilmesi gerektiğini belirlemeniz gerekir.

Klavye modülü, belirli bir sayısal kodu olan tuşları kullanmanızı sağlar. Sanal anahtar kodları tablosu görüntülenebilir.

Örnek olarak, aşağıdaki tuş vuruşlarını kullanacağım:

  • Yukarı/aşağı oklar, arka tekerlek motorunu ileri/geri döndürmek için kullanılır
  • Sol/Sağ Oklar tekerlekleri sola/sağa çevirir
Klavye modülü yapılandırma dosyası, manuel kontrol modunda robotla etkileşim kurmak için programlayıcının hangi eksenleri kullanabileceğini açıklar. Böylece, örnekte iki kontrol grubumuz var - bunlar klavye eksenleridir. Yeni bir eksen eklemek için, eksenleri açıklamak için aşağıdaki kuralları izleyin.

Klavye modülü için eksenleri tanımlama kuralları

1. Yeni bir eksen eklerken, bölümde gereklidir. adı eksenin adı olan bir özellik ekleyin ve buna klavye düğmesinin değerini atayın. HEX biçiminde, her düğme için benzer bir kayıt yapılırken, yani bir eksen adı birden çok kez kullanılabilir. Genel olarak, bir bölüme yazma şöyle görünecek:

Axis_name = keyboard_button_value_in_HEX_format
2. Bu eksen boyunca çizilebilecek maksimum ve minimum değerleri ayarlamak gerekir. Bunu yapmak için, yapılandırma dosyasına yeni bir satırdan bir bölüm eklemeniz gerekir. yapılandırma.ini eksenle aynı ada sahip olan ve özellikleri ayarlayan üst_değer ve düşük değer, sırasıyla eksenin maksimum ve minimum değerlerine karşılık gelir. Genel olarak, bu bölüm şöyle görünür:

[eksen_adı] üst_değer = maksimum_eksen_değeri alt_değer = minimum_eksen_değeri
3. Ardından, klavyede daha önce eklenmiş olan düğmeye basarsanız eksenin hangi değere sahip olacağını belirlemelisiniz. Değerler, adı eksenin adından ve klavye düğmesinin değerinden oluşan bir bölüm oluşturularak tanımlanır. HEX biçiminde, alt çizgi ile ayrılmış. Varsayılan (basılmamış) ve basılı durumu ayarlamak için özellikleri kullanın basılmamış_değer ve preslenmiş değer sırasıyla değerlerin iletildiği. Bu durumda kesitin genel görünümü aşağıdaki gibidir:

[eksen-adı_klavye-düğmesi-değeri] press_value = eksen_değeri_zaman_key_is_basıldığında basılmamış_değer = eksen_değeri_zaman_key_is_basıldığında
Spoiler metni, görüntüleme kolaylığı için RCML belgelerinden kopyalanmıştır.


Robot prototip kontrolünü uygulamak için klavye modülünün git ve dön eksenlerini içeren bir yapılandırma dosyası oluşturuldu. Git ekseni, robotun hareket yönünü ayarlamak için kullanılır. Yukarı ok tuşuna basmak ekseni 100'e, aşağı ok tuşuna basmak ekseni -50'ye ayarlar. Döndürme ekseni, ön tekerleklerin dönüş açısını ayarlamak için kullanılır. Sol ok tuşuna basmak eksen değerini -5'e, sağ ok tuşuna basmak ise ekseni 5'e ayarlayacaktır.

Klavye modülü için config.ini yapılandırma dosyasının listesi

;Gerekli bölüm ;axis_name = key_code (HEX formatında) ;go ekseni up_arrow'dan değerleri alır go = 0x26 ;go ekseni down_arrow'dan değerleri alır go = 0x28 ;döndür ekseni left_arrow'dan değerleri alır rotate = 0x25 ;döndür eksen, right_arrow'dan değer alır döndürme = 0x27 ;Git ekseni açıklaması, her zaman her iki tuşa da sahip olmalıdır ;go ekseni değerlerinin üst sınırı üst_değer = -100 ;go ekseni değerlerinin alt sınırı lower_value = 100 ;Ekseni döndür açıklaması, her zaman her iki tuşa da sahip olmalıdır ;Eksen değerlerinin üst limiti döndür üst_değer = - 100 ;Eksen değerlerinin alt limiti döndür lower_value = 100 ;*ok_yukarı* tuşu (0x26) için hareket ekseninin davranışının açıklaması ;Ne zaman *yukarı ok* tuşuna basarak, eksen değerini 50 olarak ayarlayın press_value = 100 ;*ok_yukarı* tuşunu bıraktığınızda, eksenin değerini 0 olarak ayarlayın unpressed_value = 0 ;*ok_aşağı* tuşu için hareket ekseni davranışının açıklaması (0x28) ;*ok_aşağı* tuşuna basarken, eksenin değerini -50 press_value = -50 olarak ayarlayın; *ok_aşağı* tuşu bırakıldığında, eksenin değerini 0 olarak ayarlayın unpressed_value = 0 ;*ok_sol* tuşu (0x25) için döndürme ekseni davranışının açıklaması ;*ok_sol* tuşuna basıldığında, eksen değeri -5 olarak press_value = -5 ; *arrow_left* tuşu bırakıldığında eksenin değerini 0 olarak ayarlayın unpressed_value = 0 ; *right_arrow* tuşu (0x27) için döndürme ekseni davranışının açıklaması ; *sağ_ok* tuşuna basıldığında eksen değerini 5 olarak ayarlayın press_value = 5 ; *sağ_ok* tuşu bırakıldığında eksen değerini 0 olarak ayarlayın unpressed_value = 0


Ardından, bir oyun kumandası kullanarak kontrolü uygulamak için oyun kumandası modülünü yapılandırmanız gerekir. Modül yapılandırması, control_modules dizininde bulunan gamepad_module.dll'nin yanında bir config.ini dosyası ve ardından gamepad oluşturmayı içerir.

Gamepad ile etkileşim için evrensel modül yapılandırma dosyası

;Kullanılan eksenleri açıklamak için gerekli bölüm ;Manuel kontrol modunu sonlandırmak için eksen Exit = 9 ; Gamepad düğmelerine karşılık gelen 11 ikili eksen B1 = 1 B2 = 2 B3 = 3 B4 = 4 L1 = 7 L2 = 5 R1 = 8 R2 = 6 start = 10 T1 = 11 T2 = 12 ; 4 çubuk ekseni; Sağ çubuk yukarı/aşağı hareket eder RTUD = 13 ; Sağ çubuk sola/sağa hareket eder RTLR = 16 ; Sol çubuk yukarı/aşağı hareket eder LTUD = 15 ; Sol çubuk sola/sağa hareket eder LTLR = 14 ; 2 d-pad ekseni;D-pad hareketi yukarı/aşağı oklarıUD = 17 ;D-pad hareketi sol/sağ oklarıLR = 18 ;B1 eksen davranışı açıklaması ;B1 düğmesine basarken, eksen değerini 1 olarak ayarlayın üst_değer = 1 ;B1'i serbest bırakırken düğmesi, eksen değerini 0 olarak ayarlayın alt_değer = 0 üst_değer = 1 alt_değer = 0 üst_değer = 1 alt_değer = 0 üst_değer = 1 alt_değer = 0 üst_değer = 1 alt_değer = 0 üst_değer = 1 alt_değer = 0 üst_değer = 1 alt_değer = 0 üst_değer = 1 alt_değer = 0 üst_değer = 1 alt_değer = 0 üst_değer = 1 alt_değer = 0 üst_değer = 1 alt_değer = 0 ;Sağ çubuk ekseni yukarı/aşağı hareketinin davranışının açıklaması ;Mümkün olan maksimum üst konuma hareket ederken eksen değeri üst_değer = 0 ;Eksen mümkün olan maksimum alt konuma taşınırken değer lower_value = 65535 Upper_value = 0 lower_value = 65535 Upper_value = 0 lower_value = 65535 Upper_value = 0 lower_value = 65535 ;d-pad ekseni davranışının açıklaması yukarı/aşağı ;Yukarı oka basıldığında eksen değeri Upper_value = 1 ;Aşağı oka basıldığında eksen değeri lower_value = -1 Upper_value = 1 lower_value = -1


Gamepad modülünün özelleştirme özellikleri hakkında daha fazla bilgi için RCML başvuru kılavuzuna bakın.

3. Bir sonraki adım, RCML'de bir program yazmaktır.

Oluşturulan dizinin kökünde bir program dosyası oluşturmanız gerekir. Program dosyasının adı ve uzantısı herhangi bir şey olabilir, ancak adda Rusça harflerden kaçınılmalıdır. Örnekte kullanılan dosya adı merhaba.rcml'dir.

lego_ev3 modülü için robot rezervasyon kodu aşağıdaki gibidir:

@tr = robot_lego_ev3;

lego_ev3 modülü bağlantı sayfası, denetleyici tarafından desteklenen özelliklerin çoğunu açıklar. Test örneği olarak robotu otomatik olarak kızağa sokmak için bir program oluşturulmuştur.

Programın algoritması aşağıdaki gibidir:

İlk serbest robotu rezerve ettikten sonra, iki motor arasında bir bağlantı gibi sonraki çalışmalar için bir bağlantı kurulur. Ardından robot kızak yapmaya başlar. Robotun eylemlerinin yazılım açıklaması, ön tekerleklerin dönüş açılarını ve arka tekerleklerin dönüş hızını doğru bir şekilde ayarlamanıza olanak tanır. Bu tekniğin kullanılması, klavyeden veya oyun kumandasından manuel pilot uygulama sırasında tekrarlanması zor olan sonuçları elde etmenizi sağlar.

RCML'de bir Lego robotu için program listesi

function main() ( @tr = robot_lego_ev3; //robotu rezerve et @tr->setTrackVehicle("B","C",0,0); //Motor zamanlamasını ayarla @tr->motorMoveTo("D",100) , 0,0); system.sleep(500); @tr->trackVehicleForward(-100); system.sleep(1000); @tr->motorMoveTo("D",50,-50,0); sistem. uyku (4000); @tr->motorMoveTo("D",50,50,0); system.sleep(4000); @tr->trackVehicleOff(); system.sleep(1000); )


Bir programı derlemek için pencere komut satırını kullanmalısınız. Öncelikle, rcml_compiler.exe ve rcml_intepreter.exe çalıştırılabilir dosyalarıyla oluşturulan dizine geçmelisiniz. Ardından, aşağıdaki komutları girin.

Hello.rcml dosyasını derlemek için komut:

rcml_compiler.exe merhaba.rcml merhaba.rcml.pc
Derleme sonucunda oluşturulan dizinde yeni bir hello.rcml.pc dosyası görünecektir.

Başarılı derlemeden sonra komut satırının ekran görüntüsü



Şimdi EV3 Denetleyicinin açık ve Bluetooth adaptörüyle eşleştirilmiş olduğundan emin olun. Gamepad PC'ye bağlı olmalıdır. Bundan sonra, program dosyasını çalıştırmak için komutu çalıştırmanız gerekir:

Rcml_intepreter.exe merhaba.rcml

Program yürütme sırasında komut satırının görünümü



Robotun hareket programını gösteren video yazının alt kısmında yer almaktadır.

4. Bir sonraki adım, klavyeyi kullanarak robotu manuel modda kontrol etmektir.

Klavyeyi kullanarak robotun herhangi bir motorunu kontrol etmek mümkündür. Örneğin bir parçası olarak, aşağıdaki mekanizmalar yönetilir:

  • Ön tekerleklerin dönüş açısı
  • Arka tekerleklerin dönüş yönü

EV3 denetleyicisine dayalı olarak klavye ve Lego robotu arasındaki etkileşim programının listesi

function main() ( @tr = robot_lego_ev3; //robotu rezerve et @tr->setTrackVehicle("B","C",0,0); //Motor zamanlama sistemini ayarla.hand_control(@tr,"keyboard", " düz","git","speedMotorD","döndür"); )


Bir sonraki adım, programı derlemek ve çalıştırmaktır. Lego robotunun klavye kullanılarak manuel olarak kontrol edilmesinin sonucu sayfanın alt kısmındaki videoda gösterilmektedir.

5. Klavyeye ek olarak, bir gamepad kullanarak robotu manipüle etmenize izin veren bir gamepad modülü mevcuttur. Bir oyun kumandası kullanarak robotun kontrolünü gerçekleştirmek için, robotun hangi eksenlerinin oyun kumandasının eksenlerinin değerlerini alacağını program düzeyinde açıklamak gerekir.

Gamepad ve Lego robotu arasındaki etkileşim için programın listesi

function main() ( @tr = robot_lego_ev3; //Robot @tr->setTrackVehicle("B","C",0,0); //Motor zamanlama sistemi ayarlanıyor.hand_control(@tr,"gamepad", " düz"," RTUD", "speedMotorD"," RTLR"); )


Ardından, programı derleme işlemini tekrarlamalı ve ardından çalıştırmalısınız. Aşağıda, bir oyun kumandası ve önceden bağlanmış tüm yöntemler kullanılarak bir Lego robotunun manuel olarak kontrol edilmesinin sonucu gösterilmektedir:

Bu makale kısaca RCML'nin bazı özelliklerini göstermektedir. En ayrıntılı açıklama referans kılavuzunda bulunabilir.