16 Ocak 2018 Salı

Scratch Kartı (Kodlama için)


Biliyorsunuz, şu anda okullarda kodlama dersi kondu ve her ne kadar gelecek yıl mecburi olacak ise de, bu yıl dersi eğitim planına alan okullar var.

Çoğu uygulamada bilgisayar üzerinde kodlama dersi gösterilmektedir. Yani çöpten adam sağa, çöpten adam sol şeklinde. Ama bu kodlama sonucunun fiziksel ortama taşınması gerekir. En azından daha canlı ve etkileşimli olması açısından.

Bu noktadan yola çıkarak Arduino/genuino tabanlı bir ürün ortaya koymak istedik. Sonuçta Arduino/genuino UNO işlemcisini içeren ve USB üzerinden programlanabilen ve ek olarak shield olarak bilinen ek donanımı bir araya toplayıp, birleştirdik. Özellikle Arduino UNO maliyeti artı shiled maliyetine girmeden sadece shield maliyeti ile UNO özelliklerinde bir geliştirme kartı ortaya çıkmış oldu.


Scratch kartının bir robot kol ile birlikte uygulaması


Robot kol uygulamasından küçük bir örnek. Kodlaması scratch kodu üzerinden gerçekleştirildi. Bu ne yapıyor sorusu, yeni nasıl yapılır sorusunu tercih ediyoruz!

Ürün özelliklerini bir göz atarsak;

  • USB üzerinden bilgisayardan programlanabilme ve veri iletişimi,
  • Arduino/Genino UNO programlama özelliklerine sahip olması;
  • harici besleme girişi ile bilgisayardan bağımsız olarak çalışabilmesi,
  • 5 adet LED üzerinden kontrol imkanı;
  • bir potansiyometre ve bir trimpot üzerinden ayar değerinin okunabilmesi,
  • bir LDR (ışık ile direnci değişen eleman) üzerinden analog değerinin okunabilmesi,
  • bir buton ile veri girişi imkanı,
  • 8x8 LED matris üzerinden istenilen şeklin oluşturulması ve yazının yazılması,
  • 4 adet  3'lü pin üzerinden örneğin bir robot kol imkanı, istenilen sensör okuması veya çıkış olarak kullanılma imkanı,
  • İster Arduino programı, ister scratch kodu üzerinden kodlama yapabilme imkanı;
Ürün üzerinde çip Arduino UNO için kullanılan modeldir ve özellikle bootloader olarak bilinen ve Arduino kartları üzerinde yüklü olan kodların aynen bu geliştirme kartı üzerinde de yüklü olduğunu bilmek, elbette sizin açınızdan süpriz değildir.

8x8 matris ekran üzerinde kayan yazı örneği


Kodlama
Scratch kartı  hem Arduino studio , hem de Scratch programları üzerinden kodlama yapılabilmektedir. Hatta Arduino kodlama yapılabilen her türlü  studio üzerinden üretilen kodlar  scratch kartını programlamak mümkündür. Ama yineden biz Scratch ve Arduino studio üzerinden programlama (kodlama üzerinde) durulacaktır.

Scratch iki modda çalışabilmektedir. Birincisi çevrimiçi modu olup, Arduino kartı üzerine yüklenmiş bir program yardımı ile scratch ile sürekli iletişim halinde bulunur ve Scratch üzerinde oluşturulan kod anında  Arduino kartında işleme alınır. Sıkıntısı kullanıcı için kütüphane oluşturmak zordur. Çünkü Arduino kodları yanında Java kodlamanın bilinmesidir. (Bu son kullanıcıyı etkilemez)Ayrıca Arduino kartı üzerine ön yüklemiş kodun desteklemediği işleri yapmak mümkün değildir (ön yükleme programında değişiklik yapılmadığı sürece). Arduino kartı bilgisayara bağlı ve Scratch programı ile bağlantı kurulabildiği sürece çalışır. Çünkü kodlar bilgisayar üzerinden yürütülür.
Arduino modunda ise kodlama , Arduino kodlarına dönüştürülür ve Arduino kodları derlenir ve yüklenir. Dolayısı ile Arduino koduna dönüştürüldüğü zaman istenildiği gibi Arduino Studio üzerinde istenildiği gibi değişiklik yapılabilir ve daha esnek yaklaşım sağlanabilir. Arduino kartı program yüklendikten sonra, istenirse ayrı bir besleme yardımı ile bağımsız olarak  çalışabilir. Kodlar arduino üzerinde yürütülür.

Kodlama olayına girmeden bazı terimler konusunda hemfikir olmamız gerekiyor. Bunlar;

Scratch kartı üzerindeki elemanları yerleşimi ve kısa tanımları.
Scratc kartı için ekran olarak düzenlenmiş 8x8 (64 LED) matris ekranı oluşturmaktadır.
Matris ekran üzerinde www.kontrolcepte.com yazarken.

lojik-1:  Temelde +5Volt gerilimini temsil eder. Sistemimiz besleme olarak dışarıdan 9-12Volt gibi besleme aralıklarında olsa bile, bilgisayar olsun veya kart içi besleme +5Volt'dur. (regülatör vardır) Arduino çipi ve diğer birçok eleman açısından bakılırsa, (bazılarında farklılık görülse de) 3.5Volt ile 5Volt aralığını lojik-1 olarak kabul edilmektedir.

lojik-0: Temelde 0Volt gerilimini temsil eder. Ama elektronik açısından bakıldığında (+5Volt beslemede ) +1 Volt ile 0 Volt aralığını temsil eder.

LED: Işık yayan diyot. Devreye seri bir direnç yardımı ile bağlanır. Yoksa bozulur

Buton: Basıldığı zaman devreyi kapat ve bırakıldığı zaman devreyi açan eleman.

LDR:Direnci ışığa göre değişen eleman.

Potansiyometre: Direnç değeri bir kol (mil) yardımı ile değişen eleman.

Trimpot: Direnç değeri bir tornavida yardımı ile değiştirilebilen eleman.

Buzer: Elektrik akımı uygulandığında  ses çıkaran eleman. (vızıldar)

Mikrokontroller: Bu kart üzerinde tüm işlemlerin (kodların) yürütüldüğü, kodun bilgisayar üzerinden yüklendiği ve çalıştırıldığı yerdir. Kısacası bu bir orkestra şefidir. Hayallerinizi yıkmak gibi olmasın ama mikrokontroller üzerindeki kod sizin ekranda gördüğünüzden çok daha farklıdır ve sadece sayılar vardır. (aslında 1 ve 0).

Bit:Mikrokontroller üzerindeki hafızanın en küçük birimine denir. Yani 1 veya 0 değerinin saklandığı yer.

Bayt:Özellikle scratch kartı üzerindeki 8 tane bit'in birlikte oluşturulduğu gruptur. Bu noktada sayı sistemlerine girmemiz gerekecek ama o ayrı bir konudur.

Hiç yorum yok:

Yorum Gönder