Ev - Alçıpan
Lego ev3 siyah çizgiyi takip ediyor. Lego EV3. Siyah çizgi boyunca hareket. Renk sensörü - "Ortam ışığı parlaklığı" modu


Robotun siyah çizgi boyunca sorunsuz hareket etmesini sağlamak için hareket hızını kendisinin hesaplamasını sağlamanı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 nedenlerden 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ı.

Başlangıç ​​verileri.

İ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 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.

Bu problem klasiktir, ideolojik olarak basittir, birçok kez çözülebilir ve her seferinde kendiniz için yeni bir şey keşfedeceksiniz.

Çizgi takip problemini çözmek için birçok yaklaşım vardır. Bunlardan birinin seçimi, robotun özel tasarımına, sensörlerin sayısına, tekerleklere ve birbirlerine göre konumlarına bağlıdır.

Örneğimizde Robot Eğitimcisinin ana eğitim modeli temel alınarak üç robot örneği analiz edilecektir.

Başlamak için, eğitim robotu Robot Eğitimcisinin temel modelini bir araya getiriyoruz, bunun için aşağıdaki talimatları kullanabilirsiniz. yazılım MINDSTORMS EV3.

Ayrıca örnekler için EV3 ışık rengi sensörlerine ihtiyacımız olacak. Bu ışık sensörleri, diğerlerine benzemeyen şekilde işimize en uygun olanıdır; onlarla çalışırken çevredeki ışığın yoğunluğu konusunda endişelenmemize gerek yoktur. Bu sensör için programlarda, sensörün kırmızı arka ışığından yansıyan ışık miktarının tahmin edildiği yansıyan ışık modunu kullanacağız. Sensör okumalarının limitleri "yansıma yok" ve "tam yansıma" için sırasıyla 0 - 100 birimdir.

Örnek olarak, düz, açık renkli bir arka plan üzerinde gösterilen siyah bir yörünge boyunca ilerlemeye yönelik 3 program örneğini analiz edeceğiz:

· P regülatörlü bir sensör.

· PC regülatörlü bir sensör.

· İki sensör.

Örnek 1. P regülatörlü bir sensör.

Tasarım

Işık sensörü, model üzerinde uygun bir şekilde konumlandırılmış bir kirişe monte edilmiştir.


Algoritma

Algoritmanın çalışması, sensör aydınlatma ışınının siyah çizgiyle örtüşme derecesine bağlı olarak sensör tarafından döndürülen okumaların kademeli olarak değişmesi gerçeğine dayanmaktadır. Robot, ışık sensörünün siyah çizginin sınırındaki konumunu korur. Kontrol sistemi, ışık sensöründen gelen girdi verilerini dönüştürerek robotun dönüş hızı için bir değer üretir.


Gerçek bir yörüngede sensör tüm çalışma aralığı (0-100) boyunca değerler ürettiğinden, robotun ulaşmaya çalıştığı değer olarak 50 seçilir. Bu durumda dönme fonksiyonlarına iletilen değerler şu şekilde oluşturulur: -50 - 50 aralığı, ancak bu değerler yörüngenin dik bir şekilde dönmesi için yeterli değildir. Bu nedenle aralığın bir buçuk kat -75 - 75'e genişletilmesi gerekiyor.

Sonuç olarak programda hesap makinesi işlevi basit bir oransal denetleyicidir. Bunun işlevi ( (a-50)*1,5 ) ışık sensörünün çalışma aralığında grafiğe göre dönüş değerleri üretir:

Algoritmanın nasıl çalıştığına dair örnek

Örnek 2. PK regülatörlü bir sensör.

Bu örnek aynı yapıya dayanmaktadır.

Muhtemelen önceki örnekte robotun aşırı derecede sallandığını ve bunun yeterince hızlanmasına izin vermediğini fark etmişsinizdir. Şimdi bu durumu biraz iyileştirmeye çalışacağız.

bizim için oransal denetleyici Ayrıca ayarlayıcı işlevine biraz esneklik katacak basit bir küp ayarlayıcı da ekliyoruz. Bu, robotun yörüngenin istenen sınırı yakınında sallanmasını azaltacak ve aynı zamanda ondan uzaktayken daha güçlü sarsıntılar yaratacaktır.

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.
"Yoğunluk" çıkışlarından gelen ışık sensörlerini buslar aracılığıyla matematik bloğuna "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 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) Hareketi ayarlarken güç 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ör değerleri çakışmaktadır yani “Çıkarma” bloğunun çıkışı 0 olacaktır. “Çarpma” bloğunun çıkışı da 0 değerini vermektedir. Bu değer sağlanır. motor kontrol çiftine paralel olarak. 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 ilerledikç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.
Motor kontrolü B'nin matematik bloğunda (Toplama) 50 ortalama hız değerine
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 adet, sensör 3 – 50 adet.
“Çıkarma” bloğu iki sensörün (20) değerleri arasındaki farkı belirleyip 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 yeni bir blok oluşturalım ve bunu robotu herhangi bir rota boyunca hareket ettirmek için kullanalım.
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.

Eserin metni görseller ve formüller olmadan yayınlanmaktadır.
Tam sürümÇalışmaya PDF formatında "Çalışma Dosyaları" sekmesinden ulaşılabilir

Lego Mindstorms EV3

Hazırlık aşaması

Program oluşturma ve kalibrasyon

Çözüm

Edebiyat

1.Giriş.

Robotik de bunlardan biri en önemli alanlar mekaniğin ve yeni teknolojilerin sorunlarının yapay zeka sorunlarıyla temas ettiği bilimsel ve teknolojik ilerleme.

İçin son yıllar Robotik alanındaki gelişmeler ve otomatik sistemler hayatımızın kişisel ve iş alanlarını değiştirdi. Robotlar ulaşımda, yer ve uzay araştırmalarında, cerrahide, askeri sanayide, laboratuvar araştırmalarında, güvenlikte ve endüstriyel ve tüketim mallarının seri üretiminde yaygın olarak kullanılmaktadır. Sensörlerden alınan verilere dayanarak karar veren birçok cihaz da robot olarak kabul edilebilir - örneğin asansörler gibi, bunlar olmadan hayatımızın zaten düşünülemez olduğu.

Mindstorms EV3 tasarımcısı bizi robotların büyüleyici dünyasına girmeye ve kendimizi bilgi teknolojisinin karmaşık ortamına kaptırmaya davet ediyor.

Hedef: Robotu düz bir çizgide hareket edecek şekilde programlamayı öğrenin.

    Mindstorms EV3 tasarımcısı ve programlama ortamı hakkında bilgi edinin.

    Robotun 30 cm, 1 m 30 cm ve 2 m 17 cm'de düz bir çizgide hareket etmesi için programlar yazınız.

    Mindstorms EV3 yapıcısı.

Yapı parçaları - 601 adet, servo motor - 3 adet, renk sensörü, dokunma hareket sensörü, kızılötesi sensör ve dokunma sensörü. Mikroişlemci ünitesi EV3 beyindir LEGO yapıcısı Zihin fırtınaları.

EV3 mikro bilgisayarına bağlı olan ve robotun hareket etmesini sağlayan robotun hareketinden büyük bir servo motor sorumludur: ileri ve geri gidin, dönün ve belirli bir yol boyunca ilerleyin. Bu servo motor, robotun hareketini ve hızını çok hassas bir şekilde kontrol etmenizi sağlayan yerleşik bir dönüş sensörüne sahiptir.

Robotu kullanarak bir eylem gerçekleştirmeye zorlayabilirsiniz. bilgisayar programı EV3. Program çeşitli kontrol bloklarından oluşur. Hareket bloğuyla çalışacağız.

Hareket bloğu robotun motorlarını kontrol eder, açar, kapatır ve kendisine verilen görevlere uygun çalışmasını sağlar. Hareketi belirli sayıda devire veya dereceye programlayabilirsiniz.

    Hazırlık aşaması.

    Teknik bir alanın oluşturulması.

Robotun çalışma alanına elektrik bandı ve cetvel kullanarak 30 cm uzunluğunda yeşil çizgi, 1 m 15 cm kırmızı ve 2 m 17 cm siyah çizgi olmak üzere üç çizgi oluşturacak şekilde işaretler uygulayalım.

    Gerekli hesaplamalar:

Robot tekerleğinin çapı 5 cm 7 mm = 5,7 cm'dir.

Robot tekerleğinin bir devrimi uzunluğa eşit 5,7 cm çapında dairenin çevresi formül kullanılarak bulunur.

Burada r tekerleğin yarıçapıdır, d çapıdır, π = 3,14

ben = 5,7 * 3,14 = 17,898 = 17,9.

Onlar. Tekerleğin bir turunda robot 17,9 cm yol kat eder.

Sürüş için gereken devir sayısını hesaplayalım:

N = 30: 17,9 = 1,68.

    1 m 30 cm = 130 cm

N = 130: 17,9 = 7,26.

    2 m 17 cm = 217 cm.

N = 217: 17,9 = 12,12.

    Programın oluşturulması ve kalibrasyonu.

Programı aşağıdaki algoritmayı kullanarak oluşturacağız:

Algoritma:

    Mindstorms EV3 programında bir hareket bloğu seçin.

    Her iki motoru da belirtilen yönde açın.

    Motorlardan birinin dönüş sensörü okumasının belirtilen değere değişmesini bekleyin.

    Motorları kapatın.

Bitmiş programı robot kontrol ünitesine yüklüyoruz. Robotu sahaya yerleştirip start butonuna basıyoruz. EV3 tarla boyunca ilerler ve belirli bir hattın sonunda durur. Ancak hareket dış faktörlerden etkilendiğinden doğru bir bitiş elde etmek için kalibrasyon yapmanız gerekir.

    Saha öğrenci masalarına kurulu olduğundan yüzeyde hafif bir sapma mümkündür.

    Sahanın yüzeyi pürüzsüz olduğundan robotun tekerleklerinin sahaya zayıf tutunması mümkündür.

    Devir sayısını hesaplarken sayıları yuvarlamamız gerekiyordu ve bu nedenle devir sayısını yüzde bir oranında değiştirerek istenilen sonuca ulaştık.

5. Sonuç.

Bir robotu düz bir çizgide hareket edecek şekilde programlama yeteneği, daha karmaşık programlar oluşturmak için yararlı olacaktır. Kural olarak, teknik özellikler Robotik yarışmalarında hareketin tüm boyutları belirtilmektedir. Programın mantıksal koşullar, döngüler ve diğer karmaşık kontrol bloklarıyla aşırı yüklenmemesi için bunlar gereklidir.

Lego Mindstorms EV3 robotunu tanımanın bir sonraki aşamasında, belirli bir açıda dönüşleri, daire içindeki hareketi ve spiralleri nasıl programlayacağınızı öğrenmeniz gerekecek.

Tasarımcıyla çalışmak çok ilginç. Yetenekleri hakkında daha fazla bilgi edinerek her türlü teknik sorunu çözebilirsiniz. Ve gelecekte belki de Lego Mindstorms EV3 robotunun kendi ilginç modellerini yaratabilirsiniz.

Edebiyat.

    Koposov D. G. “5-6. Sınıflar için robotiğe ilk adım.” - M.: Binom. Bilgi Laboratuvarı, 2012 - 286 s.

    Filippov S. A. “Çocuklar ve ebeveynler için robotik” - “Bilim” 2010

    İnternet kaynakları

    http://lego. rkc-74.ru/

    http://www.9151394.ru/projects/lego/lego6/beliovskaya/

    http://www. Lego com/eğitim/

15.01.2012, 18:51

Şimdiye kadar, bir çizgi boyunca hareket ederken kullanılan algoritmalarla ilgili makalelerde, ışık sensörünün sol veya sağ sınırını izliyor gibi göründüğü bir yöntem düşünülüyordu: robot alanın beyaz kısmına girer girmez kontrolör robotu geri döndürüyordu. sınıra doğru, sensör siyah çizginin derinliklerine doğru hareket etmeye başladı - regülatör onu düzeltti.
Yukarıdaki resim bir röle regülatörü için gösterilse de oransal (P-regülatörün) genel hareket prensibi aynı olacaktır. Daha önce de belirtildiği gibi, bu tür bir hareketin ortalama hızı çok yüksek değildir ve algoritmayı biraz karmaşıklaştırarak onu artırmak için birkaç girişimde bulunulmuştur: bir durumda "yumuşak" frenleme kullanılmış, diğerinde dönüşlere ek olarak ileri hareket kullanılmıştır. tanıtıldı.
Robotun bazı alanlarda ilerlemesini sağlamak için ışık sensörünün ürettiği değerler aralığında, geleneksel olarak “sensör hattın sınırında” olarak adlandırılabilecek dar bir alan ayrıldı.
Bu yaklaşımın küçük bir dezavantajı vardır - eğer robot çizginin sol sınırını "takip ederse", sağa dönüşlerde yörüngenin eğriliğini hemen algılamaz ve sonuç olarak çizgiyi aramak ve dönmek için daha fazla zaman harcar. Üstelik dönüş ne kadar keskin olursa bu arayışın da o kadar uzun süreceğini rahatlıkla söyleyebiliriz.
Aşağıdaki şekil, sensörün sınırın sol tarafında değil de sağında olsaydı, yörüngenin eğriliğini zaten tespit edeceğini ve dönüş manevraları yapmaya başlayacağını göstermektedir.

Bu nedenle robotu aynı anda hattın karşıt taraflarında bulunan iki sensörle donatmak iyi bir fikirdir ve buna göre robotun hareket yönündeki değişikliklere daha hızlı yanıt vermesine yardımcı olur.
Şimdi bu tasarım değişikliğinin programı nasıl etkileyeceğini belirlememiz gerekiyor. Basitlik açısından, en basit röle kontrol cihazıyla yeniden başlamalıyız ve bu nedenle her şeyden önce sensörlerin hatta göre olası konumlarıyla ilgileniyoruz:

Aslında, kabul edilebilir bir durum daha tanımlanabilir - karmaşık rotalarda bu, bir kavşağın kesişmesi veya yol üzerinde bir tür kalınlaşma olacaktır.
Sensörlerin diğer konumları dikkate alınmayacaktır çünkü bunlar ya yukarıda gösterilenlerin türevleridir ya da bunlar robotun hattan ayrıldığındaki konumlarıdır ve artık sensörlerden gelen bilgileri kullanarak kendisine geri dönemeyecektir. . Sonuç olarak, yukarıdaki hükümlerin tümü aşağıdaki sınıflandırmaya indirgenebilir:
  • sol sensör, sağdaki gibi, hafif bir yüzeyin üzerindedir
  • sol sensör aydınlık bir yüzey üzerinde, sağ sensör ise karanlık bir yüzey üzerinde
  • sol sensör karanlık yüzey üzerinde, sağ sensör aydınlık yüzey üzerinde
  • her iki sensör de karanlık bir yüzeyin üzerinde bulunur
Belirli bir zamanda robottaki program bu konumlardan birini tespit ederse buna göre tepki vermesi gerekecektir:
    Her iki sensör de beyaz yüzeyin üzerindeyse bu, sensörler arasında çizginin olduğu normal bir durumdur; dolayısıyla, sol sensör hala ışık yüzeyinin üzerindeyse ve sağ sensör zaten ışık yüzeyinin üzerindeyse robot düz gitmelidir. karanlık olan, o zaman robot sağ tarafını çizginin üzerine sürmüştür, bu da çizginin tekrar sensörler arasında olması için sağa dönmesi gerektiği anlamına gelir. Sol sensör karanlık bir yüzeyin üzerindeyse ve sağ sensör hala duruyorsa. açık olanın üzerindeyse, robotun hizalanması için sola dönmesi gerekir. Her iki sensör de karanlık bir yüzeyin üzerindeyse, o zaman. genel durum robot tekrar düz hareket etmeye devam eder.

Yukarıdaki şema, programda motorların davranışının tam olarak nasıl değişmesi gerektiğini hemen göstermektedir. Artık bir program yazmak zor olmamalıdır. İlk olarak hangi sensörün sorgulanacağını seçerek başlamalısınız. sahip değil büyük önem taşıyan, bırakalım öyle kalsın. Açık veya karanlık bir yüzeyin üzerinde olup olmadığını belirlemek gerekir:
Bu eylem henüz robotun hangi yöne gitmesi gerektiğini söylemenize izin vermiyor. Ancak yukarıda sıralanan eyaletleri iki gruba ayıracaktır: üst dal için (I, II) ve alt dal için (III, IV). Artık her grubun iki durumu var, dolayısıyla bunlardan birini seçmeniz gerekiyor. İlk iki durum I ve II'ye yakından bakarsanız, sağ sensörün konumu bakımından farklılık gösterirler - bir durumda aydınlık bir yüzeyin üzerinde, diğerinde ise karanlık bir yüzeyin üzerindedir. Hangi eylemin gerçekleştirileceğine ilişkin seçimi belirleyecek olan şey budur:
Artık yukarıdaki tablolara göre motorların davranışını tanımlayan bloklar ekleyebilirsiniz: iç içe koşulun üst kolu "her iki sensör de ışıkta", üstteki - "sol ışıkta, sağ karanlıkta" kombinasyonunu tanımlar:
Ana durumun alt dalı, III ve IV numaralı başka bir grup koşuldan sorumludur. İki durum aynı zamanda sağ sensörün algıladığı ışık düzeyinde de birbirinden farklıdır. Bu, her birinin seçimini belirleyeceği anlamına gelir:
Ortaya çıkan iki dal hareket bloklarıyla doldurulur. Üst dal “sol karanlıkta, sağ ışıkta” durumundan, alt dal ise “her iki sensör de karanlıkta” durumundan sorumludur.
Şunu belirtmek gerekir ki bu tasarım sadece sahada belirli bir yerdeki sensörlerin okumalarına bağlı olarak motorların nasıl açılacağını belirler; doğal olarak, bir süre sonra program, motorların davranışını buna göre ayarlamak için okumaların değişip değişmediğini kontrol etmelidir, ve bir süre sonra tekrar, tekrar vb. Bu nedenle, bu tekrarlanan kontrolü sağlayacak bir döngüye yerleştirilmelidir:

Çok güzel basit program Doğru yapılandırılırsa, robotun sınırlarını aşmadan hat boyunca oldukça yüksek bir hareket hızı sağlayacaktır. maksimum hız I ve IV durumlarında hareket ederken ve ayrıca en iyi yol II ve III durumlarında frenleme - otoyoldaki dönüşler ne kadar dik olursa, frenleme o kadar "sert" olmalıdır - hız daha hızlı azaltılmalıdır ve bunun tersi de geçerlidir - yumuşak dönüşlerde, gücü kapatarak fren uygulamak oldukça mümkündür hatta hızı tamamen azaltarak.

Sensörlerin robot üzerine yerleştirilmesi konusunda da birkaç ayrı söz söylemek gerekiyor. Açıkçası, bu iki sensörün tekerleklere göre konumu için aynı öneriler bir sensör için de geçerli olacaktır; yalnızca üçgenin tepe noktası, iki sensörü bağlayan segmentin ortası olarak alınır. Sensörlerin kendisi arasındaki mesafe de yolun özelliklerinden seçilmelidir: sensörler birbirine ne kadar yakın yerleştirilirse, robot o kadar sık ​​​​düzelecektir (nispeten yavaş dönüşler gerçekleştirir), ancak sensörler yeterince geniş aralıklıysa , o zaman pistten çıkma riski vardır, bu nedenle daha "sert" dönüşler yapmanız ve düz bölümlerde hızı azaltmanız gerekecektir.



 


Okumak:



Bütçe ile yerleşimlerin muhasebeleştirilmesi

Bütçe ile yerleşimlerin muhasebeleştirilmesi

Muhasebedeki Hesap 68, hem işletme masraflarına düşülen bütçeye yapılan zorunlu ödemeler hakkında bilgi toplamaya hizmet eder hem de...

Bir tavada süzme peynirden cheesecake - kabarık cheesecake için klasik tarifler 500 g süzme peynirden Cheesecake

Bir tavada süzme peynirden cheesecake - kabarık cheesecake için klasik tarifler 500 g süzme peynirden Cheesecake

Malzemeler: (4 porsiyon) 500 gr. süzme peynir 1/2 su bardağı un 1 yumurta 3 yemek kaşığı. l. şeker 50 gr. kuru üzüm (isteğe bağlı) bir tutam tuz kabartma tozu...

Kuru erikli siyah inci salatası Kuru erikli siyah inci salatası

Salata

Günlük diyetlerinde çeşitlilik için çabalayan herkese iyi günler. Monoton yemeklerden sıkıldıysanız ve sizi memnun etmek istiyorsanız...

Domates salçası tarifleri ile Lecho

Domates salçası tarifleri ile Lecho

Kışa hazırlanan Bulgar leçosu gibi domates salçalı çok lezzetli leço. Ailemizde 1 torba biberi bu şekilde işliyoruz (ve yiyoruz!). Ve ben kimi...

besleme resmi RSS