Robot ev3'ün bir hat boyunca ilerlemesini sağlayan program. Lego EV3. Siyah çizgi boyunca hareket. Renk sensörü - "Ortam ışığı parlaklığı" modu

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önecek ve yavaş yavaş ilerleyecektir.

Algoritma çok basit: Sensör siyah görürse robot bir yöne, beyazsa diğer yöne döner.

Lego Mindstorms EV3 ortamında uygulama

Her iki hareket bloğunda da “etkinleştir” modunu seçin. Anahtarı renk sensörü - ölçüm - renk olarak ayarladık. Alt kısımda "renk yok" seçeneğini beyaz olarak değiştirmeyi unutmayın. Ayrıca tüm bağlantı noktalarını doğru şekilde belirtmeniz gerekir.

Bir döngü eklemeyi unutmayın, robot onsuz hiçbir yere gitmez.

Buna bir bak. Başarmak için en iyi sonuç direksiyon ve güç değerlerini değiştirmeyi deneyin.

İki sensörle hareket:

Bir robotu tek bir sensör kullanarak siyah bir çizgi boyunca hareket ettirmeye yönelik algoritmayı zaten biliyorsunuz. Bugün iki renkli sensör kullanarak bir çizgi boyunca hareket etmeye bakacağız.
Sensörler, aralarında siyah çizgi geçecek şekilde kurulmalıdır.


Algoritma aşağıdaki gibi olacaktır:
Her iki sensör de görüyorsa beyaz– ileriye doğru hareket etmek;
Sensörlerden biri beyaz, diğeri siyah görüyorsa siyaha doğru çevirin;
Her iki sensör de siyah görüyorsa bir kavşaktayız (örneğin duracağız).

Algoritmayı uygulamak için her iki sensörün okumalarını izlememiz ve ancak bundan sonra robotu hareket edecek şekilde ayarlamamız gerekecek. Bunu yapmak için başka bir anahtarın içine yerleştirilmiş anahtarları kullanacağız. Böylece, önce ilk sensörü yoklayacağız ve ardından, birincinin okumalarına bakılmaksızın ikinci sensörü yoklayacağız ve ardından eylemi ayarlayacağız.
Sol sensörü 1 numaralı porta, sağdaki sensörü ise 4 numaralı porta bağlayalım.

Yorumlu program:

Sensör okumalarına göre gerektiği kadar çalışabilmeleri için motorları "Açık" modda çalıştırdığımızı unutmayın. Ayrıca, insanlar genellikle bir döngüye olan ihtiyacı unuturlar - onsuz program hemen sona erer.

http://studrobots.ru/

NXT modeli için aynı program:

Hareket programını inceleyin. Robotu programlayın. Model testinin videosunu gönder

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, mekanik ve yeni teknolojilerin sorunlarının yapay zeka sorunlarıyla buluştuğu, bilimsel ve teknolojik ilerlemenin en önemli alanlarından biridir.

İçin son yıllar Robotik ve otomatik sistemlerdeki ilerlemeler 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ı.

Tasarım parçaları - 601 adet, servomotor - 3 adet, renk sensörü, dokunmatik hareket sensörü, kızılötesi sensör ve bir dokunma sensörü. EV3 mikroişlemci ünitesi, LEGO Mindstorms yapıcısının beynidir.

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.

EV3 bilgisayar programını kullanarak robotun bir eylem gerçekleştirmesini sağlayabilirsiniz. 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 işaretler uygulayalım, 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şturalım.

    Gerekli hesaplamalar:

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

Robot tekerleğinin bir devri, çapı 5,7 cm olan bir dairenin uzunluğuna eşittir. Formülü kullanarak çevreyi buluyoruz.

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 robotik yarışmalarının teknik özellikleri hareketin tüm boyutlarını gösterir. 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/

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 etmek için algoritma

  • 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 siyah ise doğrusal hareket meydana gelir

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üş algoritması

  • 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


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şlangıç ​​olarak Robot Educator eğitim robotunun temel modelini oluşturuyoruz; bunun için MINDSTORMS EV3 yazılımındaki talimatları kullanabilirsiniz.

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 sınırdaki konumunu korur siyah çizgi. 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ğil. 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.

Oransal kontrolörümüze, kontrolör fonksiyonuna biraz bükülme katacak basit bir küp kontrolör de 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 robotu programlamak onlar için zor bir iştir. 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 şasi üzerine klasik desene (üçgen) göre yaklaşık olarak şekildeki gibi montajı.

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ö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ışır ve robot düz bir çizgide yuvarlanır.

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.
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 birim, sensör 3 - 50 birim.
“Çıkarma” bloğu iki sensörün (20) değerleri arasındaki farkı belirleyecek ve bunu 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.