Siyah çizgi ev3 boyunca yumuşak hareket. Lego EV3. Siyah çizgi boyunca hareket. Renk sensörü - "Ortam ışığı parlaklığı" modu

Dahili

Robotun siyah çizgi boyunca düzgün bir şekilde hareket etmesini sağlamak için, onu hareket hızını kendisinin hesaplamaya zorlamanız gerekir.

Kişi siyah bir çizgiyi ve onun net sınırını görür. Işık sensörü biraz farklı çalışır.

Hareket hızını hesaplamak için kullanacağımız şey, ışık sensörünün bu özelliğidir - beyaz ile siyah arasında net bir ayrım yapamama -.

Öncelikle “İdeal yörünge noktası” kavramını tanıtalım.

Işık sensörü okumaları 20 ila 80 arasında değişir; çoğunlukla beyaz üzerinde okumalar yaklaşık 65, siyah üzerinde ise yaklaşık 40'tır.

İdeal nokta, beyaz ve siyah renklerin yaklaşık olarak ortasında bulunan ve robotun siyah çizgi boyunca hareket edeceği konvansiyonel bir noktadır.

Burada noktanın konumu esastır; beyaz ile siyah arasındadır. Matematiksel sebeplerden dolayı tam olarak beyaz veya siyah olarak ayarlamak mümkün olmayacak; bunun nedeni daha sonra anlaşılacaktır.

Ampirik olarak ideal noktanın aşağıdaki formül kullanılarak hesaplanabileceğini hesapladık:

Robot kesinlikle ideal nokta boyunca hareket etmelidir. Herhangi bir yönde sapma varsa robotun o noktaya geri dönmesi gerekir.

Hadi oluşturalım problemin matematiksel açıklaması.

İlk veri.

İdeal nokta.

Mevcut ışık sensörü okumaları.

Sonuç.

Motor dönüş gücü V.

Motor dönüş gücü C.

Çözüm.

İki durumu ele alalım. Birincisi: Robot siyah çizgiden beyaz çizgiye doğru saptı.

Bu durumda robotun B motorunun dönüş gücünü artırması ve C motorunun gücünü azaltması gerekir.

Robotun siyah çizgiye girmesi durumunda ise bunun tersi geçerlidir.

Robot ideal noktadan ne kadar saparsa, oraya o kadar hızlı dönmesi gerekir.

Ancak böyle bir düzenleyici oluşturmak oldukça zor bir iştir ve her zaman bütünüyle gerekli değildir.

Bu nedenle kendimizi yalnızca siyah çizgiden sapmalara yeterince yanıt veren P-regülatörüyle sınırlamaya karar verdik.

Matematiksel dilde şöyle yazılacaktır:

burada Hb ve Hc sırasıyla B ve C motorlarının son güçleridir,

Taban – robotun hızını belirleyen motorların belirli bir temel gücü. Robotun tasarımına ve dönüşlerin keskinliğine bağlı olarak deneysel olarak seçilir.

Itek – ışık sensörünün mevcut okumaları.

Iid – hesaplanan ideal nokta.

k – orantılılık katsayısı, deneysel olarak seçilmiştir.

Üçüncü bölümde bunun NXT-G ortamında nasıl programlanacağına bakacağız.

Bir kişi çizgiyi şu şekilde görür:

Robot bunu şu şekilde görüyor:


Bu özelliği “Yörünge” yarışma kategorisi için bir robot tasarlarken ve programlarken kullanacağız.

Bir robota bir çizgiyi görmeyi ve onun üzerinde hareket etmeyi öğretmenin birçok yolu vardır. Karmaşık programlar ve çok basit programlar var.

2-3. sınıftaki çocukların bile ustalaşabileceği bir programlama yönteminden bahsetmek istiyorum. Bu yaşta yapıları talimatlara göre bir araya getirmek çok daha kolaydır ve bir robot programlamak onlar için zor görev. Ancak bu yöntem, çocuğun robotu 15-30 dakika içinde parkurun herhangi bir rotasına programlamasına olanak tanıyacaktır (adım adım test ve yörüngenin bazı özelliklerinin ayarlanması dikkate alınarak).

Bu yöntem Surgut bölgesindeki ve Hantı-Mansi Özerk Okrugu-Yugra'daki belediye ve bölgesel robotik yarışmalarında test edildi ve okulumuza birincilik getirdi. Orada bu konunun birçok takım için çok alakalı olduğuna ikna oldum.

Peki, başlayalım.

Bu tür bir yarışmaya hazırlanırken programlama, görevin çözümünün yalnızca bir parçasıdır. Belirli bir rota için bir robot tasarlayarak başlamanız gerekir. Bir sonraki yazımda size bunu nasıl yapacağınızı anlatacağım. Bir çizgi boyunca hareket çok sık meydana geldiğinden programlamayla başlayacağım.

İlkokul öğrencileri için daha anlaşılır olduğu için iki ışık sensörlü robot seçeneğini ele alalım.

Işık sensörleri 2 ve 3 numaralı bağlantı noktalarına bağlanır. B ve C bağlantı noktalarına giden motorlar.
Sensörler hattın kenarlarına yerleştirilmiştir (sensörleri birbirinden farklı mesafelere ve farklı yüksekliklere yerleştirmeyi deneyin).
Önemli nokta. İçin daha iyi iş Böyle bir şema için parametrelere göre bir çift sensör seçilmesi tavsiye edilir. Aksi takdirde sensör değerlerini ayarlamak için bir blok eklemek gerekli olacaktır.
Sensörlerin şaseye uygun şekilde takılması klasik şema(üçgen), yaklaşık olarak resimdeki gibi.

Program az sayıda bloktan oluşacaktır:


1. İki ışık sensörü ünitesi;
2. Dört blok “Matematik”;
3. İki motor bloğu.

Robotu kontrol etmek için iki motor kullanılır. Her birinin gücü 100 birimdir. Şemamız için motor gücünün ortalama değerini 50'ye eşit alacağız. Yani düz bir çizgide hareket ederken ortalama hız 50 birime eşit olacaktır. Doğrusal hareketten sapıldığında motorların gücü, sapma açısına bağlı olarak orantılı olarak artacak veya azalacaktır.

Şimdi tüm blokları nasıl bağlayacağımızı, programı nasıl yapılandıracağımızı ve içinde ne olacağını bulalım.
İki adet ışık sensörü ayarlayalım ve bunlara 2 ve 3 numaralı portları atayalım.
Matematik bloğunu alın ve “Çıkarma”yı seçin.
Matematik bloğunun "Yoğunluk" çıkışlarından gelen ışık sensörlerini otobüslerle "A" ve "B" girişlerine bağlayalım.
Robotun sensörleri iz çizgisinin merkezinden simetrik olarak kurulursa her iki sensörün değerleri eşit olacaktır. Çıkarma işleminden sonra -0 değerini elde ederiz.
Bir sonraki matematik bloğu katsayı olarak kullanılacak ve içinde “Çarpma” ayarlamanız gerekecek.
Katsayıyı hesaplamak için NXT bloğunu kullanarak "beyaz" ve "siyah" seviyelerini ölçmeniz gerekir.
Diyelim ki: beyaz -70, siyah -50.
Daha sonra şunu hesaplıyoruz: 70-50 = 20 (beyaz ile siyah arasındaki fark), 50/20 = 2,5 (matematik bloklarında düz bir çizgide hareket ederken ortalama güç değerini 50 olarak ayarlıyoruz. Bu değer artı eklenen güç) hareketi ayarlarken 100'e eşit olmalıdır)
Değeri “A” girişinde 2,5 olarak ayarlamayı deneyin ve ardından daha doğru bir şekilde seçin.
“Çarpma” matematik bloğunun “B” girişine, önceki matematik bloğu “Çıkarma”nın “Sonuç” çıkışını bağlayın.
Daha sonra bir çift gelir - bir matematik bloğu (Toplama) ve motor B.
Bir matematik bloğu ayarlama:
Giriş “A” 50'ye (motor gücünün yarısı) ayarlanmıştır.
“Sonuç” bloğunun çıkışı bir veri yolu ile B motorunun “Güç” girişine bağlanır.
Sonraki çift bir matematik bloğu (Çıkarma) ve motor C'dir.
Bir matematik bloğu ayarlama:
Giriş “A” 50'ye ayarlandı.
“B” girişi bir veri yolu ile “Çarpma” matematik bloğunun “Sonuç” çıkışına bağlanır.
“Sonuç” bloğunun çıkışı bir veri yolu ile C motorunun “Güç” girişine bağlanır.

Tüm bu eylemlerin sonucunda aşağıdaki programı alacaksınız:

Bütün bunlar bir döngü halinde çalışacağı için “Döngü” ekleyip seçip hepsini “Döngü”ye taşıyoruz.

Şimdi programın nasıl çalışacağını ve nasıl yapılandırılacağını anlamaya çalışalım.


Robot düz bir çizgide hareket ederken sensörlerin değerleri çakışmaktadır yani “Çıkarma” bloğunun çıkışı 0 değeri olacaktır. “Çarpma” bloğunun çıkışı da 0 değerini vermektedir. Bu değer motor kontrol çiftine paralel olarak sağlanır. Bu bloklar 50 olarak ayarlandığından 0 eklemek veya çıkarmak motorların gücünü etkilemez. Her iki motor da aynı 50 güçte çalışıyor ve robot düz bir çizgide dönüyor.

Rayın bir dönüş yaptığını veya robotun düz bir çizgiden saptığını varsayalım. Ne olacak?

Şekil, port 2'ye bağlı sensörün (bundan sonra sensör 2 ve 3 olarak anılacaktır) aydınlatmasının, beyaz alana doğru hareket ettikçe arttığını ve sensör 3'ün aydınlatmasının azaldığını göstermektedir. Bu sensörlerin değerlerinin şöyle olduğunu varsayalım: sensör 2 – 55 birim ve sensör 3 – 45 birim.
“Çıkarma” bloğu, iki sensörün (10) değerleri arasındaki farkı belirleyecek ve bunu düzeltme bloğuna (bir katsayı (10*2.5=25) ile çarparak) ve ardından kontrol bloklarına besleyecektir.
motorlar.
Matematik bloğunda (Toplama) motor kontrolü B değerine ortalama sürat 50
25 eklenecek ve B motoruna 75 güç değeri verilecektir.
C motorunu kontrol etmeye yönelik matematik bloğunda (Çıkarma) ortalama hız değeri olan 50'den 25 çıkarılacak ve C motoruna 25 güç değeri verilecektir.
Bu sayede düz çizgiden sapma düzeltilecektir.

Parça keskin bir şekilde yana dönerse, sensör 2 beyaz, sensör 3 ise siyah olur. Bu sensörlerin aydınlatma değerleri şu şekilde olur: sensör 2 - 70 birim, sensör 3 - 50 birim.
“Çıkarma” bloğu iki sensörün (20) değerleri arasındaki farkı belirleyerek düzeltme bloğuna (20*2.5=50) ve ardından motor kontrol ünitelerine besleyecektir.
Artık B motoru kontrolünün matematik (Toplama) bloğunda B motoruna 50 +50 =100 güç değeri verilecektir.
Motor C kontrolünün matematik bloğunda (Çıkarma) C motoruna 50 – 50 = 0 güç değeri verilecektir.
Ve robot keskin bir dönüş yapacak.

Beyaz ve siyah alanlarda robot düz bir çizgide ilerlemelidir. Bu olmazsa aynı değerlere sahip sensörleri seçmeyi deneyin.

Şimdi oluşturalım yeni blok ve bunu robotu herhangi bir rota boyunca hareket ettirmek için kullanacağız.
Döngüyü seçin, ardından “Düzenle” menüsünde “Bloğumu oluştur” komutunu seçin.

“Blok Tasarımcısı” iletişim kutusunda bloğumuza bir ad verin, örneğin “Git”, blok için bir simge seçin ve “BİTTİ”ye tıklayın.

Artık bir çizgi boyunca ilerlememiz gereken durumlarda kullanılabilecek bir bloğumuz var.

Işık yapımında temel hareketlerden biri siyah çizgiyi takip etmektir.

Genel teori ve spesifik örnekler Programın oluşturulması wroboto.ru web sitesinde açıklanmaktadır.

Farklılıklar olduğu için bunu EV3 ortamında nasıl uyguladığımızı anlatacağım.

Robotun bilmesi gereken ilk şey, siyah ve beyazın sınırında yer alan “ideal noktanın” anlamıdır.

Şekildeki kırmızı noktanın konumu tam olarak bu konuma karşılık gelmektedir.

İdeal hesaplama seçeneği siyah ve beyaz değerleri ölçüp aritmetik ortalamasını almaktır.

Bunu manuel olarak yapabilirsiniz. Ancak dezavantajlar hemen fark edilir: kısa bir süre sonra bile aydınlatma değişebilir ve hesaplanan değer yanlış olacaktır.

Yani bunu yapacak bir robot alabilirsiniz.

Deneyler sırasında hem siyahı hem de beyazı ölçmenin gerekli olmadığını öğrendik. Sadece beyaz ölçülebilir. İdeal nokta değeri ise siyah çizginin genişliğine ve robotun hızına bağlı olarak beyaz değerinin 1,2'ye (1,15) bölünmesiyle hesaplanır.

Hesaplanan değere daha sonra erişilebilmesi için bir değişkene yazılması gerekir.

“İdeal noktanın” hesaplanması

Hareketle ilgili bir sonraki parametre dönme katsayısıdır. Ne kadar büyük olursa, robot aydınlatmadaki değişikliklere o kadar keskin tepki verir. Ama çok fazla büyük önem robotun sallanmasına neden olur. Değer, her robot tasarımı için ayrı ayrı deneysel olarak seçilir.

Son parametre motorların temel gücüdür. Robotun hızını etkiler. Hareket hızının arttırılması, robotun aydınlatmadaki değişikliklere tepki süresinin artmasına neden olur ve bu da yörüngeden sapmaya neden olabilir. Değer aynı zamanda deneysel olarak da seçilir.

Kolaylık sağlamak için bu parametreler değişkenlere de yazılabilir.

Dönüş Oranı ve Temel Güç

Siyah çizgi boyunca ilerlemenin mantığı şu şekildedir: İdeal noktadan sapma ölçülür. Ne kadar büyükse, robotun ona geri dönmek için o kadar güçlü çabalaması gerekir.

Bunu yapmak için iki sayıyı hesaplıyoruz - B ve C motorlarının her birinin güç değeri ayrı ayrı.

Formül formunda şöyle görünür:

Burada Isens, ışık sensörü okumalarının değeridir.

Son olarak EV3'teki uygulama. Ayrı bir blok şeklinde düzenlemek en uygunudur.

Algoritmanın uygulanması

Bu tam olarak WRO 2015'in orta kategorisi için robotta uygulanan algoritmadır.

Mobil bir LEGO robotunu kontrol etmek için algoritmalar. İki ışık sensörlü hat hareketi

Ek eğitim öğretmeni

Kazakova Lyubov Aleksandrovna


Hat boyunca hareket

  • İki ışık sensörü
  • Oransal kontrolör (P-kontrolör)

Orantılı denetleyici olmadan siyah çizgide hareket etme algoritması

  • Her iki motor da aynı güçle dönüyor
  • Sağ ışık sensörü siyah çizgiye çarparsa sol motorun (örneğin B) gücü azalır veya durur
  • Sol ışık sensörü siyah çizgiye çarparsa, diğer motorların (örneğin C) gücü azalır (hatta geri döner), azalır veya durur
  • Her iki sensör de beyaz veya siyahsa, o zaman doğrusal hareket

Hareket, motorlardan birinin gücünün değiştirilmesiyle organize edilir.


P denetleyicisi olmadan siyah çizgide sürüş için program örneği

Hareket, dönüş açısı değiştirilerek düzenlenir


  • Orantılı kontrolör (P-kontrolör), davranışının istenenden ne kadar farklı olduğuna bağlı olarak robotun davranışını ayarlamanıza olanak tanır.
  • Robot hedeften ne kadar saparsa, geri dönmek için o kadar fazla çaba harcaması gerekir.

  • P-kontrolörü robotu belirli bir durumda tutmak için kullanılır:
  • Manipülatörün konumunu tutma Bir çizgi boyunca hareket etme (ışık sensörü) Bir duvar boyunca hareket etme (mesafe sensörü)
  • Manipülatörün pozisyonunu tutmak
  • Çizgi hareketi (ışık sensörü)
  • Duvar boyunca hareket (mesafe sensörü)

Tek sensörle hat hareketi

  • Amaç “beyaz-siyah” sınırı boyunca ilerlemek
  • Bir kişi beyaz ile siyah arasındaki sınırı ayırt edebilir. Bir robot bunu yapamaz.
  • Robotun hedefi gri renktedir

Kavşaklardan geçerken

İki ışık sensörü kullanıldığında hareketi daha karmaşık rotalar boyunca organize etmek mümkündür



Kavşakların olduğu bir otoyolda sürüş için algoritma

  • Her iki sensör de beyaz renktedir - robot düz bir şekilde ilerlemektedir (her iki motor da aynı güçle dönmektedir)
  • Sağ ışık sensörü siyah çizgiye ve sol ışık sensörü beyaz çizgiye çarparsa sağa dönüş meydana gelir
  • Sol ışık sensörü siyah çizgiye ve sağ ışık sensörü beyaz çizgiye çarparsa sola döner
  • Her iki sensör de siyahsa doğrusal hareket meydana gelir. Kavşakları sayabilir veya herhangi bir işlem gerçekleştirebilirsiniz


P-regülatörün çalışma prensibi

Sensör konumu

O=O1-O2


Orantılı denetleyiciyle siyah çizgi boyunca hareket etme algoritması

HC = K*(C-T)

  • Ts - hedef değerler (ışık sensöründen beyaz ve siyah okumalar alın, ortalamayı hesaplayın)
  • T - akım değeri - sensörden elde edilir
  • K - duyarlılık katsayısı. Ne kadar çok olursa hassasiyet de o kadar yüksek olur



Sunumu resim, tasarım ve slaytlarla görüntülemek için, dosyasını indirin ve PowerPoint'te açın bilgisayarınızda.
Sunum slaytlarının metin içeriği:
“Tek renkli sensörle siyah çizgi boyunca hareket etme algoritması” Yezidov Akhmed Elievich'ten önce “Robotik” Öğretmeni KulübüMBU DO “Shelkovskaya TsTT” Siyah çizgi boyunca hareket etme algoritmasını incelemek için bir robot kullanılacak Lego Zihin Fırtınaları Tek renk sensörlü EV3 Renk sensörü Renk sensörü 7 rengi ayırt eder ve renk yokluğunu algılayabilir. NXT'de olduğu gibi bir ışık sensörü olarak çalışabilir Robot yarışmaları alanı "Line S" "S" harfi şeklinde bir pist içeren önerilen eğitim alanı, oluşturulan robotların hız açısından başka bir ilginç testini yapmanıza olanak tanıyacak ve tepki. Hadi düşünelim en basit algoritma EV3'teki bir renk sensöründeki siyah çizgi boyunca hareket. Bu algoritma en yavaş ama en kararlı olanıdır. Robot kesinlikle siyah çizgi boyunca değil, sınırı boyunca hareket edecek, sola ve sağa dönerek yavaş yavaş ileriye doğru hareket edecektir. Algoritma Çok basit: Sensör siyah görürse, robot bir yöne, beyazsa diğer yöne döner. Yansıyan ışık parlaklık modunda iki sensörle bir çizgiyi takip etmek Bazen renk sensörü siyah ve siyahı ayırt edecek kadar etkili olmayabilir. beyaz renkler. Bu sorunun çözümü sensörü renk algılama modunda değil, yansıyan ışık parlaklık modunda kullanmaktır. Bu modda, karanlık ve aydınlık bir yüzeydeki sensör değerlerini bilerek neyin beyaz, neyin siyah olacağını bağımsız olarak söyleyebiliriz. Şimdi beyaz ve siyah yüzeylerdeki parlaklık değerlerini belirleyelim. Bunu yapmak için EV3 blok menüsünde “Modül Uygulamaları” sekmesini buluyoruz.Artık port görüntüleme penceresindesiniz ve o an tüm sensörlerin okumalarını görebilirsiniz. sensörlerimiz kırmızı renkte yanmalıdır; bu, yansıyan ışık parlaklığı algılama modunda çalıştıkları anlamına gelir. Mavi renkte yanıyorlarsa, istenilen porttaki port görüntüleme penceresinde ortadaki düğmeye basın ve COL-REFLECT modunu seçin.Şimdi robotu her iki sensör de beyaz yüzeyin üzerine gelecek şekilde yerleştirelim. 1 ve 4 numaralı portlardaki sayılara bakıyoruz. Bizim durumumuzda değerler sırasıyla 66 ve 71'dir. Bunlar sensörlerin beyaz değerleri olacaktır. Şimdi robotu, sensörler siyah yüzeyin üzerinde olacak şekilde konumlandıralım. Tekrar 1 ve 4 numaralı portların değerlerine bakalım.Elimizde sırasıyla 5 ve 6 var. Bunlar siyahın anlamlarıdır. Daha sonra önceki programı değiştireceğiz. Yani switchlerin ayarlarını değiştireceğiz. Şimdilik Renk Sensörü -> Ölçüm -> Renk yüklü. Renk Sensörü -> Karşılaştırma -> Yansıyan Işık Parlaklığı ayarını yapmamız gerekiyor.Şimdi “karşılaştırma tipi” ve “eşik değeri”ni ayarlamamız gerekiyor. Eşik değeri, bazı “gri” değerlerin değeridir, daha düşük değerleri siyah olarak değerlendireceğiz ve daha fazlasını beyaz olarak değerlendireceğiz. İlk yaklaşım için her sensörün beyaz ve siyah değerleri arasındaki ortalama değeri kullanmak uygundur. Böylece birinci sensörün (port 1) eşik değeri (66+5)/2=35,5 olacaktır. 35'e kadar yuvarlayalım. İkinci sensörün (port no. 4) eşik değeri: (71+6)/2 = 38,5. Şimdi her switchte bu değerleri buna göre ayarlıyoruz, “karşılaştırma tipi” işaretini koyduğumuzda hareketleri olan bloklar değişmeden yerlerinde kalıyor.<», то все, что сверху (под галочкой) будет считаться черным, а снизу (под крестиком) – белым, как и было в предыдущей программе.Старайтесь ставить датчики так, чтобы разница между белым и черным была как можно больше. Если разница меньше 30 - ставьте датчики ниже. Это было краткое руководство по программированию робота Lego ev3, для движения по черной линии, с одним и двумя датчиками цвета