Robot Programlama – Blok Tabanlı Robot Programlama Yazılımları ve Ortamları – 3

7. mBlock ile Arduino Kullanımı

Arduino kullanım örnekleri UNO R3 üzerinden verilmiştir. mBlok üzerinden Arduino kullanımı için “Kartlar” sekmesinden “Arduino Uno”, sonra da “Bağlan” sekmesinden Arduino’nun bağlandığı Seri Port seçilmelidir.

Arduino kullanımı için kart ve

Arduino ile uygulama yapmadan önce yapılacak uygulamada kullanılacak elektronik bileşenlerin önceden hazırlanması, bağlantılarının yapılması sonra da programının hazırlanarak Arduino’ya yüklenmesi gerekmektedir. Yüklemek için “Arduino Programı” blokunun üzerine tıklanarak açılan ekrandan “Arduinoya Yükle” seçeneğinin tıklanması gerekmektedir. Bu durumda uygulama ekranın sağında Arduino kodları şeklinde görülecek ve yükleme bitince “Yükleme Bitti” şeklinde uyarı verecektir. Bu şekildeki kullanımda sadece Arduino için oluşturulmuş bloklar kullanılabilir. Yüklenen uygulama mBlock olmadan Arduino üzerinde kullanılabilir. Fakat istenirse “Bağlan” sekmesinden “Aygıt Yazılımı Güncellemesi” seçeneği ile Arduino kullanım kodları yüklenerek Arduino blokları ve diğer bloklar birlikte kullanılabilir. Bu durumda hazırlanan uygulama Arduino hafızasında yer almayacak yalnızca mBlock üzerinden kullanılabilecektir.

Arduinioya programın yüklenmesi

Aygıt yazılımının güncellenmesi

Arduino uygulamalarında kullanılacak elektronik bileşenler için Breadboard kullanılması uygulamaların hızlı, kolay ve en önemlisi lehim yapmadan yapılmasına olanak tanıyacaktır. Breadboardların kenarında bulunan alanlar voltaj bağlantıları için enine bağlı, diğer alanlar ise dikine bağlıdır. Bu bağlantı noktalarını kullanarak LED, direnç ve benzeri elektronik bileşenlerin birbirine bağlanması oldukça kolaydır. Aşağıda Arduino UNO R3 ve breadboard bağlantı örneği yer almaktadır.

Arduino UNO R3 bağlantı örneği

Breadboard bağlantı örneği

Dijital Kontrol Pimlerin Ayarlanması ve Okunması: Arduino UNO kartında toplamda 14 dijital kontrol pimi (6 adet PWM dâhil) bulunmaktadır. Dijital pinlerin çıkış değerini 0 (DÜŞÜK) ya da 1 (YÜKSEK) olarak ayarlamak ve aynı zamanda, dijital pinlerin giriş değerlerini ekranda okumak için aşağıdaki örneği inceleyiniz.

Dijital kontrol pimlerin ayarlanması ve okunması

Aşağıda verilen iki aynı örnekte Arduino’nun 7 ve 12 numaralı dijital pinlerine bağlı 2 LED’in 1 sn aralıklarla yanıp sönmesi sağlanmıştır. Bağlantılar aşağıdaki breadboard çizimi üzerinde gösterilmiştir. LED’ler düşük güçle çalıştıkları ve zarar görmemeleri için birer 220 ohm dirençle bağlanmıştır.

Arduino UNO ile LED uygulaması Breadboard çizimi

Aşağıdaki LED uygulamasının çalışması için “Arduino Programı” blokunun üzerine tıklanarak açılan ekranda “Arduinoya Yükle” seçeneğinin tıklanması gerekmektedir. Örnekteki diğer programın tıklandığında çalışabilmesi için önceden “Bağlan” sekmesinden “Aygıt Yazılımı Güncellemesi” seçeneği ile güncelleme yapılması gerekmektedir.

Arduino UNO ile LED uygulaması örneği

Aşağıda verilen örnekte Arduino’nun dijital pinlerine bağlı HY-SRF 05 ultrasonik sensör kullanılarak bir alarm uygulaması hazırlanmıştır. Ultrasonik sensörün tetik (Trig) pini 13 numaralı, okuma (Echo) pini 12 numaralı Arduino UNO pinine bağlanmıştır. Bağlantılar aşağıdaki breadboard çizimi üzerinde gösterilmiştir. Eğer ultrasonik sensöre olan uzaklık 20 cm’den küçük ise alarm devreye girmekte ve uzaklık 20 cm’den büyük oluncaya kadar devam etmektedir.

Arduino UNO ile Ultrasonik Sensör uygulaması Breadboard çizimi

Arduino UNO ile Ultrasonik Sensör uygulaması örneği

Analog Kontrol Pimlerin Ayarlanması ve Okunması: Arduino UNO kartında toplamda 6 analog kontrol pimi bulunmaktadır (A0, A1, A2, A3, A4, A5, A6 numaralı pinler). Analog pinlerin çıkış değerini 0 ile 1023 arasında ayarlamak ve aynı zamanda, analog pinlerin giriş değerlerini ekranda okumak için aşağıdaki örneği inceleyiniz.

Analog pimlerin ayarlanması ve okunması

Aşağıda verilen örnekte A1 pinine bağlı bir potansiyometre kullanılarak 3600’lik bir açıölçer uygulaması yer almaktadır. Potansiyometrenin hareketi ile çizilen koordinat sistemi üzerinde gösterge istenen açıda ayarlanabilmektedir. Arduino ile okunan analog değerler 0 ile 1023 arasında olduğu, koordinat sisteminde ise 3600 istendiği için dönüştürme işlemi uygulanmıştır. Bunun için potansiyometre değeri 1024’e bölünerek 360 ile çarpılmıştır. Böylece 0 ile 1023 arasındaki bir değer 0 ile 360 arasına taşınmıştır. Potansiyometrenin Arduino ile bağlantısı ve koordinat sistemi aşağıda gösterilmektedir. Kullanılan göstergenin kaç derecelik açıyla başlayacağını belirlemek için “yönüne don” blokunda -90o alınmıştır. Kullanılacak koordinat sistemi ve gösterge şekline göre istenilen açıdan başlanabilir.

Arduino UNO ile Potansiyometre uygulaması örneği

Arduino UNO ile Potansiyometre uygulaması Breadboard çizimi ve ekran görüntürleri

PWM Dijital Kontrol Pimlerin Ayarlanması ve Okunması: Arduino UNO kartında toplamda 6 adet PWM dijital kontrol pimi bulunmaktadır (D3, D5, D6, D9, D10, D11 numaralı pinler). PWM pinlerin çıkış değerini 0 ile 1023 arasında ayarlamak ve aynı zamanda, PWM pinlerin giriş değerlerini ekranda okumak için hazırlanan aşağıdaki örneği inceleyiniz.

PWM Dijital kontrol pimlerin ayarlanması ve okunması işlemi



Aşağıda verilen örnekte Arduino’nun 5 ve 6 numaralı pwm pinlerine bağlı 2 LED’in boşluk tuşuna basıldığı sürece ışık seviyesinin 0.5 birim artarak yanması sağlanmıştır. Bunun için ışık seviyesi adını taşıyan bir değişken oluşturulmuştur. Örnek çalıştırıldığı zaman boşluk tuşunun basılı olup olmadığı kontrol etmekte, eğer basılı değilse ışık seviyesini sıfırlamakta, basılı ise ışık düzeyini artırmaktadır. Aynı zamanda boşluk tuşuna basıldığı süre, süre ölçer kullanılarak ekrana yazılmaktadır. Süre ölçer değeri 100’e bölünerek ve tam sayıya yuvarlanarak sürenin 1’den başlaması sağlanmıştır. Eğer ışık seviyesi 30 birim olursa ışık düzeyi sıfırlanmaktadır.

Arduino UNO ile PWM uygulaması

Bağlantılar aşağıdaki breadboard çizimi üzerinde gösterilmiştir. LED’ler düşük güçle çalıştıkları ve zarar görmemeleri için birer 220 ohm dirençle 5 ve 6 numaralı PWM pinine bağlanmıştır.

Arduino UNO ile PWM uygulaması Breadboard çizimi

8. Robotlar Alt Başlığı Altında Verilen mBot Komut Blokları

Makeblock tarafından üretilen mBot robot, robot kontrol kartları ve kalkanların (shield) programlanmasında kullanılabilecek bloklar aşağıda iki bölüm halinde açıklanmıştır.

Robotlar alt başlığı altında verilen mBot komut blokları 1

Robotlar alt başlığı altında verilen mBot blokları 2

mBlock ile Arduino ve mBot Uyumlu Robot Kullanımı

Makeblock tarafından üretilen mBot robot, mBot Ranger robot, robot kontrol kartları ve kalkanların (Me Uno Shield) programlanmasında kullanılabilecek bloklar gruplar halinde verilmektedir. Hangi robot ya da kalkan kullanılıyorsa onun mBlock Kartlar sekmesinden seçilmesi gereklidir. Aşağıda Arduino UNO uyumlu robot ve mBot robot için programlama örnekleri verilmiştir.

Robot Hareketi için DC Motor Kullanımı: mBot robot Arduino uyumlu olduğu için buradaki bloklar Arduino uyumlu robotların kullanımı için de kullanılabilmektedir. DC motorlar doğrudan kontrol kartına bağlanmazlar. Bu nedenle, uygun DC motor sürücüsü ile istenilen bağlantı noktalarına (Kapı 1, 2, 3 veya 4) ve uygun kanala (Kanal 1 veya 2) bağlayarak kullanılması gerekmektedir. Yandaki örnekte uyumlu robot 1 sn boyunca ileri, 1 sn boyunca da geri hareketini iki defa tekrar ettikten sonra hızı sıfırlanarak durmaktadır.

mBot robot

mBot Robotun Hareketi için DC Motor Kullanımı: mBot robot üzerinde bulunan M1 ve M2 motorları kullanılarak robotun hareket kullanımı sağlanmaktadır. Yandaki örnekte mBot robot 1 sn boyunca ileri, 1 sn boyunca da geri hareketini iki defa tekrar ettikten sonra motor hızları sıfırlanarak durmaktadır.

mBot bağlantı kapıları

Robot hareketi için DC motor kullanımı örneği

mbot Robotun hareketi için dc motor kullanım örneği

mBot Robot Üzerindeki RGB LED Kullanımı: mBot robot üzerinde bulunan RGB LED1 ve RGB LED2 istenilen renkleri üretmek için programlanabilmektedir. Ayarlanması gereken üç parametre vardır: Led seçimi (sağ, sol veya hepsi), kırmızı değer (0 ile 255 arası), mavi değer (0 ile 255 arası), yeşil değer (0 ile 255 arası). Aşağıdaki örnekte RGB LED’lere kırmızı, yeşil ve mavi renk değerlerinin verilmesi gösterilmiştir.

mBot üzerindeki RGB ledler

mbot Robot üzerindeki RGB LED kullanım örneği

8*16 LED Matris Kullanımı: Bu parça sekiz âdeti dikeyde, 16 âdeti yatayda olmak üzere toplam 128 adet mavi LED’den oluşmaktadır. Bu parça mBot robot üzerinde kayan yazılar yazmak, algılayıcı değerlerini veya işlem sonuçlarını göstermek için kullanılabilir. Bu amaçla parçanın istenilen bağlantı noktalarına (Kapı 1, 2, 3 veya 4) bağlayarak kullanılması gerekmektedir. Yandaki örnekte istenilen metnin bu parça üzerinde yazdırılması gösterilmiştir. Önce metin girişi yapılmakta, girilen metinin (yanıt) uzunluğu tespit edilmekte ve bu değer 6 ile çarpılarak buna “yer” bilgisi eklenmektedir. Her bir karakter yatayda 6 sıra LED kullandığı için 6 ile çarpılmaktadır. Yer bilgisi için “yer” adında bir değişken oluşturulmuş olup, değişkeninin sağdan başlanarak (“yer” 16 olsun bloğu) her harf için -1 azaltılarak yeni konumuna yerleştirilmesi sağlanmıştır. Yanıtın kayarak gösterilmesi için kapı 4’de x:yer y:0 konumunda yanıt harflerini göster bloğu kullanılmıştır.

8x16 LED Matris kullanım ve ekran örneği

mBor üzerinde led matris uygulaması

Servo Motor Kullanımı: Servo motorlar doğrudan kontrol kartına bağlanmazlar. Bu nedenle, uygun servo motor sürücüsü ile istenilen bağlantı noktalarına (Kapı 1, 2, 3 veya 4) ve uygun kanala (Kanal 1 veya 2) bağlanarak kullanılması gerekmektedir. Yandaki örnekte servo motor açısının 90 derece yapılması gösterilmiştir.

Servo motor kullanım örneği

7 Segment Ekran Kullanımı: 7 segmentli ekranlar, genellikle hızı, zamanı, algılayıcıların değerini veya puanı göstermek için robot projelerinde kullanılmaktadır. Doğrudan istenilen bağlantı noktalarına (Kapı 1, 2, 3 veya 4) bağlanabilirler. Yandaki örnekte 7 segmentli ekrana 100 yazılması gösterilmiştir.

7 segment ekran kullanım örneği

Ultrasonik Algılayıcı Kullanımı: Ultrasonik algılayıcılar genellikle algılayıcı ile engeller arasındaki mesafeyi ölçmek için kullanılırlar. Direkt olarak (Kapı 1, 2, 3 veya 4) bağlanabilirler. Aşağıdaki örnekte engele olan uzaklığın ölçülmesi gösterilmiştir.

Ultrasonik algılayıcı ile mesafe ölçme örneği

Aşağıdaki diğer örnekte ultrasonik algılayıcıdan alınan mesafe bilgisi kullanılarak robotun herhangi bir nesneye çarpmadan dolaşması sağlanmıştır. Bu amaçla oluşturulan “hız” değişkeni ile istenilen hız belirlenmekte “mesafe” değişkeni ile ölçülen uzunluğa göre robotun yönlendirme işlemi sağlanmaktadır. Buna göre nesneye 20 cm’den az kalmışsa robot geri dönmekte, 20 ile 40 cm arasındaki mesafeler için sağa dönmekte, 40 ile 60 cm mesafeler için sola dönmekte ve 60 cm’den büyük mesafe varsa ileri gitmektedir.

Ultrasonik algılayıcı kullanarak engele çrpmadan dolaşma

Işık Algılayıcı Kullanımı: Işık algılayıcı genellikle ortamdaki ışığın yoğunluğunu ölçmek için kullanılır. Direkt olarak karttaki ışık algılayıcı kullanılabildiği gibi (Kapı 3 veya 4) de bağlanabilirler. Yandaki örnekte ortamdaki ışık seviyesinin ölçülmesi gösterilmiştir.

Aşağıdaki diğer örnekte ışık algılayıcı kullanılarak robot kuklanın ışık değerine göre renk değiştirmesi sağlanmıştır. Bu amaçla “Görünüm” blok gurubunda bulunan “… etkisini artır” bloğu alınmış, burada renk seçeneği kullanılmıştır. Işık değeri / 100 oranında artırılmıştır.

Işık algılayıcı kullanım örneği

Işık algılayıcı kullanarak renk değiştirme örneği



Ses Algılayıcı Kullanımı: Ses algılayıcı, ortamdaki ses şiddetini ölçmek için tasarlanmıştır. Direkt olarak (Kapı 3 veya 4) de bağlanabilirler. Yandaki örnekte ortamdaki ses seviyesinin harici bir ses algılayıcı bağlanarak ölçülmesi gösterilmiştir. İstenirse ses seviyesine bağlı uygulama yapmak için bilgisayarda bulunan mikrofon veya web kamera mikrofonu da kullanılabilir.

Aşağıdaki diğer örnekte bilgisayara bağlı mikrofon kullanılarak ses seviyesine göre ekrandaki kuklayı zıplatan bir uygulama gösterilmiştir.

Ses algılayıcı kullanım örneği

Kuklanın x ekseninde sıfır noktasında, y ekseninde “Ses_ Seviyesi” düzeyinde olması için “Hareket” blok gurubunda bulunan “x:0 y: noktasına git” bloğu kullanılmıştır. “Ses_Seviyesi” değişkeninin işaretlenmesi ile ölçüm sonucunun bilgisayar ekranında gösterilmesi sağlanmıştır.

Uygulama için değişken oluşturulması

Ses seviyesine göre ekrandaki kuklayı zıplatan uygulama

Bu amaçla “Ses_Seviyesi” adını taşıyan bir değişken oluşturulmuştur. Bu değişkene “Algılama” blok gurubunda bulunan “ses şiddeti” bloğu eklenerek ses şiddetinin tespiti sağlanmıştır.

Ses seviyesine göre ekrandaki kuklayı zıplatan uygulama2

Çizgi Algılayıcı Kullanımı: Çizgi algılayıcılar, robota kalınca çizilmiş çizgileri veya yakında bulunan nesneleri algılama yeteneği kazandırmak, belirli bir yolu takip etmesini sağlamak için kullanılırlar. Direkt olarak (Kapı 1, 2, 3 veya 4) bağlanabilirler. Aşağıdaki örnekle algılayıcıların çizgi üzerinde olup olmadıkları tespit edilmektedir.

izgi algılayıcı kullanım örneği

Aşağıda verilen örnekte ise robotun çizgi algılayıcıları çizgi üzerinde veya çizgi dışında olup olmadıkları her bir algılayıcı için belirlenip ekrana yazılmaktadır. Kullanılan blokları göstermek için ilk eğer işlemini oluşturan bloklar yerlerine konmadan gösterilmiştir.

Robotun çizgi algılayıcıları ile çizginin neresinde olduğunu belirleyen uygulama örneği

Aşağıda verilen örnekte ise bir çizgi takip uygulaması bulunmaktadır. Robotun çizgileri takip edebilmesi için önce algılayıcıların her birinin konumu belirlenmekte, buna göre de robotun yönlendirilmesi sağlanmaktadır. Bu amaçla “hiz” ve “alan” adında iki değişken oluşturulmuştur. “hiz” değişkeni ile hız belirlenmekte, “alan” değişkeni ise algılayıcıların konumuna göre hareketin yönünün belirlenmesinde kullanılmaktadır. Algılayıcılar tarafından; eğer her iki algılayıcı çizgi üzerinde ise “0”, sol algılayıcı çizgi üzerinde ise “1”, sağ algılayıcı çizgi üzerinde ise “2” ve her iki algılayıcı çizgi dışında ise “3” değeri üretildiği için yönlendirmeler buna göre yapılmaktadır. Aşağıda örnek bir çizgi takip haritası yer almaktadır.

izgi takip haritası

 

izgi takip uygulaması

Potansiyometre Kullanımı: Potansiyometre potun dönüşüne bağlı olarak sürekli değişen bir değer üreten elektronik parçadır. Döndürülmek suretiyle 0 ile 1023 arasında çıkış değeri üretir. Direkt olarak (Kapı 3 veya 4) bağlanabilirler. Aşağıdaki örnekle portun döndürülmesi ile oluşan potansiyometre değeri ekranda okunabilmektedir.

Potansiyometre kullanım örneği

Sıcaklık Algılayıcı Kullanımı: Sıcaklık algılayıcı uç noktalardaki ve ortamdaki sıcaklığı ya da uzaktaki sıcak bir şeyi algılamak için kullanılmaktadır. İstenilen bağlantı noktalarına (Kapı 1, 2, 3 veya 4) ve uygun kanala (Kanal 1 veya 2) bağlayarak kullanılması gerekmektedir. Aşağıdaki örnekle ısı değeri ekranda okunabilmektedir.

Sıcaklık algılayıcı örneği

PIR Hareket Algılayıcı Kullanımı: PIR hareket algılayıcı, hayvanların ve insanların hareketini yaklaşık 6-7 metre uzaklıktan algılamak için kullanılmaktadır. Aşağıdaki örnekle hareket algılandığında ekrana “Hareket algıladım !” ifadesi yazılmaktadır.

PIR Hareket algılayıcı kullanım örneği

Dokunma Algılayıcı Kullanımı: Dokunma algılayıcı, insanların dokunma hareketini algılamak için kullanılmaktadır. Aşağıdaki örnekle dokunma algılandığında ekrana “Dokunmayın bana !” ifadesi yazılmaktadır.

Dokunma algılayıcı kullanım örneği

Limit Anahtarı Kullanımı: Limit anahtarları, belirlenen seviyeye ulaşılıp ulaşılmadığının kullanımı için kullanılmaktadır. Aşağıdaki örnekle limite ulaşıldığında ekrana “Limite ulaşıldı !” ifadesi yazılmaktadır.

Limit anahtarı kullanım örneği

Buton Kullanımı: Buton parçası üzerinde bulunan butonların kullanımı için kullanılmaktadır. Butonlar robot kontrol etmek için, işlev düğmesi veya yön düğmesi olarak çalışabilirler. Aşağıdaki örnekle butona basıldığında ekrana “Butona basıldı!” ifadesi yazılmaktadır.

Buton kullanım örneği

Kızılötesi Kumanda Kullanımı: Kızılötesi kumandanın kullanımı için kullanılmaktadır. Kızılötesi kumanda robot kontrol etmek için, işlev düğmesi veya yön düğmesi olarak da çalışabilirler. Aşağıdaki örnekle kızılötesi kumandanın A düğmesine basıldığında ekrana “Butona basıldı!” ifadesi yazılmaktadır.

Kızılötesi kumanda kullanım örneği

Nem ve Sıcaklık Algılayıcı Kullanımı: Nem ve sıcaklık algılayıcı ortamın sıcaklığı ya da nem durumunu algılamak için kullanılmaktadır. İstenilen bağlantı noktalarına (Kapı 1, 2, 3 veya 4) bağlayarak kullanılması gerekmektedir. Aşağıdaki örnekle nem veya sıcaklık değeri ekranda okunabilmektedir.

Nem ve sıcaklık algılayıcı kullanım örneği

Alev Algılayıcı Kullanımı: Alev algılayıcı yangın ve ateş durumunu algılamak için kullanılmaktadır. İstenilen bağlantı noktalarına (Kapı 3 veya 4) bağlayarak kullanılması gerekmektedir. Aşağıdaki örnekle alev, ateş algılandığında ekranda okunabilmektedir.

Alev algılayıcı kullanım örneği

Gaz Algılayıcı Kullanımı: Gaz algılayıcı ortamdaki çeşitli gazların (kullanılan türe göre) varlığını algılamak için kullanılmaktadır. İstenilen bağlantı noktalarına (Kapı 3 veya 4) bağlayarak kullanılması gerekmektedir. Aşağıdaki örnekle gaz algılandığında ekranda okunabilmektedir.

Gaz algılayıcı kullanım örneği



Pusula Algılayıcı Kullanımı: Pusula algılayıcı yön belirlemek için robot uygulamalarında kullanılmaktadır. İstenilen bağlantı noktalarına (Kapı 1, 2, 3 veya 4) bağlayarak kullanılması gerekmektedir. Aşağıdaki örnekle pusula algılandığında ekranda okunabilmektedir.

Pusula algılayıcı kullanım örneği

Jiroskop Algılayıcı Kullanımı: Jiroskop algılayıcı robotun hareket ve duruş algılaması, dengelenmesi için kullanılmaktadır. Genellikle 3 eksenli ivmeölçer ile 3 eksenli açısal hız algılayıcı ve hareket işlemcisi birlikte bulunmaktadır. İstenilen bağlantı noktalarına (Kapı 1, 2, 3 veya 4) bağlayarak kullanılması gerekmektedir. Aşağıdaki örnekle x, y ve z eksen değerleri algılandığında ekranda okunabilmektedir.

Jiroskop algılayıcı kullanım örneği

Joystick Kullanımı: Joystick, yönsel hareketleri analog değerlere (0 ile 1023 arasında) dönüştürebilen elektronik bir parçadır. Robotu X ve Y ekseni yönünde kontrol etmek için kullanılmaktadır. İstenilen bağlantı noktalarına (Kapı 3 veya 4) bağlayarak kullanılması gerekmektedir. Aşağıdaki örnekle x ve y eksenindeki joystick hareketleri ekranda okunabilmektedir.

Joystick kullanım örneği

Bir cevap yazın

E-posta hesabınız yayımlanmayacak. Gerekli alanlar * ile işaretlenmişlerdir