Arduino
OKUDUĞUNUZ KONU
ARDUINO – Tinkercad’in Kodlama Blokları
1

ARDUINO – Tinkercad’in Kodlama Blokları

Yazar : Turgut Güneysu17 Ağustos 2018

Merhaba,

Tinkercad serimizin üçüncü kısmında bu ortamda geliştireceğimiz kodları yazmak için kullanacağımız GÖRSEL dilin bloklarını inceleyeceğiz.  Tinkercad’e benzeyen MIT’nin SCRATCH ve UC BERKELEY’nin SNAP adlı programlama ortamları şu anda popüler olan ve başlangıç kodlama ve robotik eğitim alanlarında kullanılan başka dillerdir. İkisinde de TÜRKÇE çalışılabilir. Maker’lar arasında tutulan LEGO MindStorm ve MakeBlock’un mBOT kitlerinin hepsi görsel kodlama ile geliştirilen ortamlardır. Tinkercad’le başladığınız macerayı sonra bunlara terfi ederek devam ettirebilirsiniz.

Bundan önceki bölümlerde Tinkercad ortamını tanıyıp, programlama panelinin detaylarını incelemiştik. Bunları takip etmediyseniz ÖNCE hemen şu bağlantılara bakıp makaleleri bir gözden geçirin:

ARDUINO – TİNKERCAD KULLANARAK ÇABUCAK BAŞLAYIN

ARDUINO – TİNKERCAD’İN GÖRSEL PROGRAMLAMA PANELİ

Kodlama Blokları

Yukarıdaki resimde gördüğünüz gibi programlama panelinin ana menüsünde altı tane grup altında toplanmış kodlama blokları var. Aşağıda bunları teker teker inceleyeceğiz.

Kodlama bloklarıyla çalışırken bazı noktaları göz önünde tutmanız gerekir. Simülasyon ortamını fazla komplike yapmamak için sunulan özelliklerin hepsi hakiki bir Arduino ortamındaki gibi çalışmayabilir. Başlangıçta öğrenirken bunun bir zararı yoktur. Bazen bu basit yaklaşım başlangıçta zor gelebilecek detayları saklayarak kavramları daha kolay anlamanıza yardımcı olabilir. Unutmayın ki bu ortamın en önemli değeri sizin Arduino bilşenleri ve kodlama dünyasına en kolay şekilde başlamanızı sağlamasıdır.

OUTPUT – Çıktı

Menüden OUTPUT tıkladığınız zaman aşağıdaki pencere açılır. Çıktı blokları programınızdan dışarı iletmek istediğiniz veriler, pin ayarları, ses kontrolü, ve seri monitöre yazma gibi işlemleri sağlar.

.

İnceleyelim:

NOTLAR: 
ARDUINO UNO için, açıklamalardaki HIGH (Yüksek) = 1 (5V), LOW (Alçak) = 0 (0V) demektir.
Bloklardaki BEYAZ alanlarda değişken kullanılabilir.

 

Bu blok Arduino’nun anakart üzerindeki LED’i HIGH (yüksek) veya LOW (alçak) olarak ayarlıyor. Anakart LED’i aynı zamanda D13 pinine bağlı olduğundan, bu işlem D13 pinini de aynı şekilde ayarlar.

Bu blok dijital D0 – D15 pinlerini veya analog A0 – A5 pinlerini HIGH (yüksek) veya LOW (alçak) olarak ayarlıyor.

 

 Bu blok PWM pinlerin ayarlarını yapar. Arduino’da 6 tane pin Pulse Width Modulation (darbe genişlik modülasyonu) modunda çalışır. Bunların değerleri 0 – 255 arası ayarlanır.

Bu bloku kullanarak bağladığınız servo motorun dönüş açısını ayarlarsınız. Servo dijital veya analog pinlerin herhangi birine bağlanabilir. Açı genelde 0 – 180 derece arasıdır. Bu blokun bir özelliği otomatikman SERVO.H kütüphanesini kullanmasıdır.

Projenizde hoparlör kullandığınızda bu blok belli ses tonlarını belirttiğiniz saniyeler kadar çalar. Tone frekansı 31 – 4978 hertz arası olmalıdır.

Bu blok SERİ Monitöre yazı yazmak için kullanılır. Beyaz alandaki metin veya değişken ekrana yazılır. ‘WITH’ kullanılmışsa imleç yeni satıra geçer, ‘WITHOUT’ kullanılmışsa geçmez.

Bu blok RGB LED kullandığınızda renkleri ayarlamanızı sağlar. RGB LED’ler üç renk için  (kırmızı, yeşil, mavi) 0 – 255 arası değerler gerektirdiğinden uygulama PWM pinleri ile yapılır. Kırmızı ovaldaki rengi farenizle tıklayarak değiştirip istediğiniz gibi seçebilirsiniz.

 

INPUT – Girdi

Menüden INPUT tıkladığınız zaman aşağıdaki pencere açılır. Girdi blokları programınıza dışarıdan iletmek istediğiniz veriler, pin ayarları, sensör değerleri, ve seri monitörden veri alma gibi işlemleri sağlar. Genelde girdi değerler tek başına kullanılmayacağından, bunlar ya bir değişkene, ya da başka blokların içinde fonksiyon parametreleri olarak atanır.

İnceleyelim:

Bu blok dijital D0 – D15 pinlerinin veya analog A0 – A5 pinlerinin okunan HIGH (Yüksek) ve LOW (Alçak) değerlerini döndürür. Analog pinler dijital olarak okunduğunda  1 / 0 , analog okunduğunda 0 – 1023 döndürürler.

Bu blok analog A0 – A5 pinlerinin okunan 0 – 1023 arası değerlerini döndürür. Analog pinler dijital olarak okunduğunda  1 / 0 , analog okunduğunda 0 – 1023 döndürürler.

Bu bloku kullanarak bağladığınız servo motorun dönüş açısını okuyabilirsiniz. Servo dijital veya analog pinlerin herhangi birine bağlanabilir. Açı genelde 0 – 180 derece arasıdır. Bu blokun bir özelliği otomatikman SERVO.H kütüphanesini kullanmasıdır.

Seri Monitörle çalıştığınızda eğer buradan girdi yaptıysanız kaç harf girdiğinizi bu blok ile okuyabilirsiniz. Örneğin ‘merhaba‘ girdiyseniz bu blok 7 döndürecektir.

Seri Monitörle çalıştığınızda eğer buradan girdi yaptıysanız değeri okumak için bu bloku kullanmanız gerekir. Okunan değer bir bayt’tır ve girilen harf veya rakamın ASCII kodudur (0 – 255). Örneğin: A = 65, 8 = 56, ü = 252, / = 47 .
Eğer birden fazla harf ve rakamlı bir girdi yaptıysanız, bunu okumak için bir döngüde  kere  kullanarak teker teker okumanız gerekir.

Bu blokla sesüstü mesafe sensörünün algıladığı mesafeyi cm (santimetre) veya in (inç) olarak okuyabilirsiniz. Sensör dijital veya analog pinlerin herhangi birine bağlanabilir. Arduino’ya yeni başlayanlar için bu blok çok yardımcı bir işlevdir. Bir blokla gerçekleştirdiğiniz sensör okuma Arduino kodunda 10 dan fazla satıra eşittir. Sensörün çalışma ayarları, mesafe hesapları, ve sinyalin algılanma detayları sizden tamamen saklanmıştır. Eğer kodlama modunu ‘Blocks / Text’ olarak ayarlarsanız otomatikman yazılan kodu inceleyebilirsiniz. Simülatörde sensörü çalıştırmak için fare ile tıkalayın ve ekranda sensör algı alanındaki daireyi fareyle oynatın.

Bu blokla ısı sensörünün algıladığı ısıyı C (Santigrad) veya F (Fahrenhayt) olarak okuyabilirsiniz. Sensör analog pinlerin herhangi birine bağlanabilir. Arduino’ya yeni başlayanlar için bu blok çok yardımcı bir işlevdir. Sensörün çalışma ayarları ve ısı hesap detayları sizden tamamen saklanmıştır. Eğer kodlama modunu ‘Blocks / Text’ olarak ayarlarsanız otomatikman yazılan kodu inceleyebilirsiniz. Simülatörde sensörü çalıştırmak için fare ile tıkalayın ve ekranda sensör yanındaki  termometreyi fareyle oynatın.

 

NOTATİON – Açıklamalar

Menüden NOTATİON tıkladığınız zaman aşağıdaki pencere açılır. Açıklama blokları sizin yazdığınız programın kısa bir açıklamasını ve nasıl  çalıştığının izahını yapmanızı sağlar.

İnceleyelim:

Başlık olarak kullanabileceğiniz bu blok programınızın adını ve genel açıklamasını yapabileceğiniz bir yerdir. Kullanılması tamamen sizin arzunuza kalmıştır. Yani aslında gerekli değildir.

Yazdığınız kodun değişik kısımları için açıklama veya detayları belgelemek istediğinizde bu bloku kodun gereken yerlerine koyarak yapabilirsiniz. Yazdığınız metnin tek satıra sığması gerekir. Kullanılması tamamen sizin arzunuza kalmıştır. Yani aslında gerekli değildir.

 

CONTROL – Kontrol

Menüden CONTROL tıkladığınız zaman aşağıdaki pencere açılır. Kontrol blokları programınızın zamanlama ve döngü kontrol işlemlerini sağlar.

 

İnceleyelim:

NOTLAR: 
Aşağıdaki döngü kontrol bloklarındaki koşullardan çıkıldığında bir sonraki komut çalışır.
Koşul deyimleri değişik MATEMATİK blokları kullanarak oluşturulur.

 

Bu ‘BEKLE’ bloku programınızın çalışmasını belirttiğiniz saniye veya mili-saniye kadar durdurur. Ekrana yazı yazarken veya hata araştırırken bu yöntemle yazıların hızını yavaşlatabilirsiniz. Aynı şekilde kodun işletilme hızı da yavaşlatılabilir.

‘TEKRARLA’ bloku döngü kontrolü için kullanılır. Girdiğiniz sayısal değere göre blokun içine yazdığınız kod o kadar defa tekrarlanacaktır. Sayısal alan beyaz olduğundan buraya bir değişken de koyulabilir. O zaman değişkenin değeri ayarlanarak döngü tekrarlaması kontrol edilebilir.

 

Bu blok ‘KOŞULLU TEKRARLAMA’ için kullanılır. Ufak menüden iki türlü koşuldan birini seçmeniz gerekir:
‘WHILE’ (koşul doğru iken) – bu seçenek koşul deyimini döngüye girmeden kontrol eder ve eğer koşul geçerli ise döngüyü çalıştırır. Demektir ki, ilk başlangıçta koşul yanlış ise döngüye girilmez.

‘UNTIL’ (koşul doğru olana kadar) – bu seçenek koşul deyimini döngünün her tekrarında kontrol eder ve eğer koşul geçerli değil ise döngüyü çalıştırmaya devam eder. Koşul doğru olur olmaz döngüden çıkılır. Demektir ki, ilk başlangıçta koşul yanlış bile olsa döngü en az bir defa çalışır.

‘EĞER İSE’ kontrol bloku koşul deyimi geçerli olduğu zaman blokun içindeki kodu çalıştırır. Koşul yanlış ise bloka girilmez ve bir sonraki komut çalışır.

 

 

‘EĞER İSE DEĞİLSE’ kontrol bloku yukarıdaki EĞER İSE blokun gelişmiş bir türüdür. Burada hem koşul doğru iken yapılacak kodlar, hem de koşul yanlış iken yapılacak kodlar belirlenir. Doğru iken yapılacaklar ilk boşluğa sıralanır. Yanlış iken yapılacak kodlar da ikinci boşluğa sıralanır. Koşulun değerlendirilmesine göre ya üst kısım ya da alt kısım çalışır. Demek ki her halükarda blokun yalnız bir yarısı çalışır.

 

‘SAY’ döngüsü önceki TEKRARLA döngüsünün kontrollü bir türüdür. Bunun başka dillerdeki adı da ‘FOR NEXT’ döngüsüdür.

‘FROM’ (Başlangıç) değerinden başlayarak ‘TO’ (Son değer) e kadar ‘BY’ (Artış miktarı) alanındaki değere göre ilerleyerek sayar. Her tekrarlamada ufak menüde görülen ‘j’ değişkeni başlangıç ile sonuç arasındaki değerler atanarak blok içindeki kodlar işlenir. Genelde ‘j’ değişkeni blok içine yazılan kodlarda kullanılır. Bu blok kodunuza eklenir eklenmez menüdeki değişken ‘j’ sistem tarafından otomatikman tanımlanır. Bunun yerine ufak menüden seçerek sizin kendi tanımladığınız değişkenler de kullanılabilir. Eğer kodunuzda bu bloku birden fazla kullanırsanız, her defasında değişken otomatikman ilerleyerek tanımlanır. Örneğin: ilk seferde ‘i’, sonra ‘j’, sonra ‘k’…

 

MATH – Matematik

Menüden MATH tıkladığınız zaman aşağıdaki pencere açılır. Matematik blokları programınızda uygulamak istediğiniz matematik, lojik işlem ve fonksiyonlarını, değer yayılma aralıklarını kontrol eden işlemleri sağlar.

İnceleyelim:

NOTLAR: 
Koşul deyimleri değişik MATEMATİK blokları kullanarak oluşturulur.
Bazı matematik blokları tam sayı değerlerle çalışır.

 

Bu blok genel matematik işlemlerini yapmanızı sağlar. Ufak menüden bir işlem seçerek toplama, çıkarma, çarpma, bölme, yüzdeler, ve kuvvete yükseltme yapabilirsiniz. Her iki girdi alanı da beyaz olduğu için ikisine de değişken kullanabilirsiniz.

Bu blok karşılaştırma işlemleri için kullanılır. Ufak menüden tablodaki işlevleri seçerek uygulayabilirsiniz. Her iki girdi alanı da beyaz olduğu için ikisine de değişken kullanabilirsiniz.

KARŞILAŞTIRMA OPERATÖRÜ İŞLEVİ
< den daha küçük
<= küçük ya da eşit
== (Art arda iki == sembolü) -e eşit
eşit değil
> den daha büyük
>= büyük ya da eşit

‘RASTGELE’ fonksiyonu belirttiğiniz iki değer arasında (değerler dahil olmak üzere) rastgele sayılar üretir. Her iki girdi alanı da beyaz olduğu için ikisine de değişken kullanabilirsiniz.

Bu lojik bloku ufak menüden ‘AND’ (VE) ve ‘OR’ (VEYA) seçeneğiyle iki karşılaştırma işlevi sağlar. ‘VE’ seçeneği kodumuzda iki koşulun aynı anda gerçekleşmesi gerektiğinde kullanılır.  ‘VEYA’ seçeneği iki seçenekten en az birinin gerçekleşmesi gerektiğinde kullanılır.

Gerektiğinde iç içe koyularak ikiden fazla koşul da kontrol edilebilir.

‘DEĞİL’ bloku programımızda koşulumuzun tam tersi bir durumu kontrol
etmemiz gerektiği zaman kullanılır. Lojik olarak DOĞRU’nun tersi YANLIŞ, YANLIŞ’ın tersi DOĞRU’dur.

Bu blok değişik trigonometri ve matematik fonksiyonlarını uygulamanızı sağlar. Ufak menüden bir işlem seçerek mutlak değer, kare alma, sinüs, kosinüs, ve tanjant işlevlerini yapabilirsiniz. Girdi alanı da beyaz olduğu için değişken kullanabilirsiniz.

Bu blok belirli bir tam sayı değerini tanımlanan başka bir değer aralığına çevirir. Birinci alan mevcut değerinizdir. İkinci alan yeni değerinizin çevrilmesini istediğiniz en küçük değerdir. Son alan ise yeni değerinizin çevrilmesini istediğiniz en büyük değerdir. Bu fonksiyon genelde Arduino analog portlarından okunan 0 – 1023 arası değerleri başka aralıklara çevirmek için kullanılır.
Örneğin: 0 – 1023 -> 0 – 5 volt veya 0 – 1023 -> 0 – 255 PWM değerlerine

VARIABLES – Değişkenler

Menüden VARIABLES tıkladığınız zaman aşağıdaki pencere açılır. Değişken blokları programınızda kullanmak istediğiniz değişkenleri tanımlayıp değer atamanızı sağlar. Burada görülen değişkenlerin bazıları sistem tarafından otomatikman tanımlanmış olabilir. Örneğin kontrol grubundaki ‘SAY’ bloku gibi. Bu ortam yalnız tam sayı değişken değerlerle çalışmaktadır.

İnceleyelim:

Bu blok evvelden tanımlanmış olan bir değişkeni belirtir. Değişkeni ya siz ya da sistem tanımlamış olabilir. Tanımlanan herhangi bir değişkeni kodunuzun içinde kullanmak istediğiniz zaman bu değişkenler listesinden onu bulup blokunu kodunuza yerleştirmeniz gerekir. Genelde bunlar blokların beyaz alanlarında kullanılır.

‘Belirle’ bloku sayısal değişkenlerin değerlerini atamak için kullanılır. Ufak menüden değişkeninizi seçersiniz ve beyaz alana gereken değeri girersiniz. Değerler tam sayı  olamalıdır.

‘DEĞİŞTİR’ bloku sayısal değişkenlerin değerlerini beyaz alandaki değer kadar değiştirir. Değerler tam sayı olmalıdır.

 

Şimdi kodlama bloklarının ne yaptıklarını biraz anladığınız için Tinkercad Arduino menüsünden hazır devreleri teker teker yükleyerek kodlarını inceleyebilirsiniz. Seri Monitörü açıp çıktıları izleyebilir ve istediğiniz değişkenleri yazdırabilirsiniz.

İşin en güzel tarafı ne yaparsanız yapın hiç bir şeyi bozamazsınız. Rahatça kurcalayın !

Bir ilerideki yazımda bazı hazır Arduino devrelerini alıp hem elektronik hem de kod değişiklikleri yaparak özelleştirmeye bakacağız.

İyi Çalışmalar.

 

SİZCE NASIL OLMUŞ?
Beğendim
75%
İlginç
25%
Eh İşte
0%
Anlamadım
0%
Kötü
0%
Berbat
0%
YAZAR HAKKINDA
Turgut Güneysu
Turgut Güneysu
Anadolu'nun tam ortasında ufak bir köyden memleketimizin çocuklarına STEM programlarına uygun bilgisayar, robotik, yazılım, donanım, mikro işlemciler hakkında yardımcı olmaya çalışıp, emekli hayatımın zevkini çıkarıyorum. Gençlerimizin kabiliyetlerinin sonsuz olduğuna ve onları doğru yönlendirirsek değerli katkılarla ortamımızı dünya çapına ulaştıracaklarına inanıyorum.
1 YORUMLAR
  • TURGUT GÜNEYSU
    TURGUT GÜNEYSU
    17 Ağustos 2018 at 13:23

    Yazıyı bitirdikten sonra aklıma gelen bir noktayı belirtmek istedim:

    Genelde temel ARDUINO programları iki fonksiyon içerir: SETUP() ve LOOP() .

    SETUP() da programın devamlı çalışan LOOP() kısmına başlamadan gereken ayarlamalar yapılır, kütüphaneler düzenlenir, değişkenlere başlangıç değerler atanır. Bu kısım program çalışmaya başladığı zaman BİR kere işlenir ve LOOP() kısmına geçilir.

    LOOP() fonksiyonu devamlı olarak döngülenen bir bölümdür ve hiç bitmez.

    Tinkercad ortamında çalışırken, yeni başlayanların hayatını kolaylaştırmak için, ortam SETUP() kısmını otomatikman ayarlar. Örneğin kullandığınız modüllerin kodlarına göre gereken kütüphaneleri oluşturur ve sizi bu detaydan uzak tutarak sadece çalıştırmak istediğiniz koda odaklanmanızı temin eder. Bunun sonucunu kodlama modunu ‘BLOCKS and TEXT’ olarak seçtiğinizde yazılan kodda görürsünüz.

    Bu özellikten dolayı, sizin yazacağınız proje kodlarında sadece LOOP() içinde kullanılacak ve devamlı işlenecek kodlara odaklanın. Projenizin nasıl çalıştığını simülasyonu deneyerek izleyin. İlk başta bu size garip gelebilir. Fakat kısa zamanda fazla detaylara dalmadan projenizi çalıştırmayı öğrenirsiniz.

    Bilginiz arttıkça daha fazla detayı kontrol altına almanız gerekirse, o zaman ‘BLOCKS and TEXT’ moddan çıkıp direkt olarak METİN kod yazabilirsiniz. Veya da Tinkercad ortamını bırakıp daha ileri olan ARDUINO IDE veya başka yazılım geliştirme yöntemlerine geçebilirsiniz. Unutmayın ki bu ortam değişmesini gerçekleştirmek için ARDUINO kitleri ve bileşenleri ve gereken elektronik parçaları satın almanız gerekir. Zaten Tinkercad’e yönelmenin EN ÖNEMLİ sebebi de bu tecrübeyi elde edip doğru başlangıç kararlarını verebilmeyi öğrenmektir.

    Tinkercad size ÇABUK bir başlama sağlayıp değişik elektronik modülleri, devreleri, ve kodlama tekniklerini denemeniz için çok değerlidir. Bu ortam hiç bir zaman hakiki bir proje geliştirmek veya büyük kodlar yazma maksatlı değildir.

    İyi çalışmalar.

YORUM YAP