1
Scratch Ve Tuş Yap 1
SCRATCH ve TUŞYAP Tuş Yap, etrafınızda bulunan iletken nesneleri bilgisayar tuşu haline getirebileceğiniz bir eğlence ve keşif kitidir. TuşYap ı kullanarak Scratch ile etkileşimli programlar ya da oyunlar geliştirebilirsiniz. TuşYap, Arduino Leonardo tabanlı shield şeklinde bir karttır. İsterseniz TuşYap kartını Leonardo karttan söküp Leonardo yu başka bir projede kullanabilirsiniz. Arduino Leonardo, Arduino Uno ya göre daha güçlü bir işlemciye sahiptir ve bilgisayara klavye, fare gibi bağlanabilir. Leonardo ile kendi klavye ya da farenizi yapabilirsiniz. 2
TuşYap nasıl çalışır? TuşYap, kapasitif dokunatik algılama yöntemi ile çalışır. Kapasitif dokunmatik algılama, cep telefonlarının ekranlarında da kullanıldığı gibi dokunulduğunda bunun algılanması anlamına gelir. Neredeyse sanki sihir gibi Kapasitif dokunmatik algılama çok basit bir prensibe dayanır. Vücudunuz bir cisme dokunduğunda, cismin kapasitesini değiştirir ve bu değişiklik özel devrelerle tespit edilir. Hangi tuş ile ilgili değişiklik olmuşsa o tuşa basılma sinyali bilgisayara gönderilir. Not: Kartın üzerine timsah kablolarla ya da jumper kablolarla iletken nesneleri bağladıktan sonra kartı bilgisayara bağlayınız aksi takdirde kartın çalışmasında aksaklıklar olabilir. Karta bağlı nesnelerde değişiklik olduğunda da kartı söküp tekrar takınız. Youtube Videosu İçin Tıklayınız! 3
Arduino Leonardo nun üzerinde 20 adet giriş çıkış pini bulunur. Bunlardan 7 tanesi pwm, 12 tanesi de analog pindir. TuşYap Satın Almak için Tıklayınız! 4
Kendi Piyanonu Yap TuşYap ı kullanarak iletken olan her nesneyi bir bilgisayar tuşu haline getirebiliriz. Şimdi bu özelliği kullanarak kendi piyanomuzu yapacağız. Biz uygulamamızda muzları kullandık. Siz isterseniz başka meyveleri kullanarak bir piyano tasarlayabilirsiniz. 5
Timsah kabloların bir ucunu TuşYap üzerindeki tuşlardan birine diğer ucunu da muzlarımıza bağlayalım. Piyano devremizi oluşturduktan sonra piyanomuzu kullanmak için Scratch programımızı oluşturalım. Scratch programını açalım. Kukla ekle bölümü Music kısmından Piano-Electric karakterini ekleyelim ve kedi karakterini silelim. Ekranda bir piyano karakterimiz olacak ve biz TuşYap ile oluşturduğumuz piyanonun tuşlarına bastığımızda ekrandaki piyanonun da tuşlarına basılmış gibi olacak ve belirlediğimiz nota çalacak. 6
Eklediğimiz Piano-Electric karakterinin kılıklar kısmına gelelim. Öncelikli olarak çizgisel halde olan resim düzenleme aracını noktasal hale dönüştür diyelim ve büyüklüğü %200 yapalım. Daha sonra seçim aracını seçelim ve sol taraftan piyanonun ilk altı tuşunu seçelim. Ortasından tutarak bir kenara çekelim. 7
Geride kalan tuşların olduğu kısmı silgi aracını seçerek silelim ve kılık merkezini ortası olarak ayarlayalım. Keybord-a kılığı dışındaki kılıkları üzerine tıkladıktan sonra gelen çarpı işaretine tıklayarak ya da sağ tıklayarak silelim. 8
Oluşturduğumuz altı tuşlu piyano kılığının 6 adet kopyasını çıkartalım. Daha sonra bu kopyaların her seferinde sadece bir tuşu olmak üzere boyayalım. İlk muza dokunduğumuzda notayı çaldırdığımıza ek olarak ekranda sanki piyanonun o tuşuna basılıyormuş efekti vermek için bu kılıkları kullanacağız. 9
keybord-a2 kılığı keybord-a3 kılığı Kılıkları ayarladıktan sonra kodlarımızı yazmaya geçelim. Yeşil bayrak tıklandığında ilk olarak karakterimizin keybord-a kılığına geçmesini sağlayalım. Büyüklüğü de %400 olarak ayarlayalım. Her bir muzu TuşYapımızın bir tuşuna bağlamıştık. Bu tuşlar sırasıyla yukarı, aşağı, sol, sağ, A ve B tuşlarıydı. 10
Şimdi bu tuşlara tıklandığında yani muzlara dokunulduğunda Scratch programımız ne yapacak onu programlayalım. Bir sürekli bloğu içine bir eğer ise bloğu koyuyoruz. İlk tuşumuz yukarı ok tuşuydu. Eğer ise bloğuyla yukarı ok tuşuna basılıp basılmadığını kontrol ediyoruz. Eğer yukarı ok tuşu basılmışsa yani ilk muza dokunulmuşsa, C elec piano notasının çalmasını sağlıyoruz ve karakterimize keyboard-a2 kılığına geçmesini söylüyoruz. Bir olana kadar tekrarla bloğuyla da yukarı ok tuşunun basılı olmama durumuna kadar programı bekletiyoruz yani elimizi yukarı ok tuşundan çekene kadar program bekliyor. Elimizi yukarı ok tuşundan çektiğimizde ise karakterimiz tekrar keybord-a kılığına geçiyor ve program yeniden yukarı ok tuşuna basılıp basılmadığını kontrol ediyor. Diğer tuşlar için de aynı işlemleri yapacağımız için bloğumuza sağ tıklayalım ve kopyasını çıkartalım. Yukarı ok yazan yerleri değiştirelim. Nota ve keybord-a2 yazan yerleri de değiştirelim. Bu şekilde diğer tuşlar içinde gerekli kodları yazalım. 11
Piano-Electric Karakteri için Yazılacak Tüm Kodlar 12
Simon Says Oyunu Bu oyunumuzda yazdığımız Scratch programıyla rastgele notalar üretecek ve biz de bu notaları aklımızda tutmaya çalışacağız. Eğlenceli oyunumuz için de oyun hamurlarını TuşYap a bağlayarak bir oyun konsolu yapacağız. Oyun Hamuru 13
Resimdeki kullanılan renklerdeki gibi oyun hamurlarımızı TuşYap a bağlıyoruz ve oyun konsolumuzu oluşturuyoruz. Oyunumuz için Scratch ekranında oyun hamurlarından yaptığımız oyun konsolu gibi bir karakter yapacağız. Yeni kuklayı çiz butonuna tıklayalım. 14
Karakterimiz için bir tane yeşil daire çizelim. Daha sonra dairemizi dörde bölecek şekilde iki tane beyaz çizgi çizelim. Renk paletinden renk yok aracını seçtikten sonra kova aracını seçelim ve beyaz çizgilere tıklayalım. Beyaz çizgilerin yok olduğunu göreceksiniz. Bu şekilde birbirinden bağımsız dört parça elde ettik. 15
Her bir parçayı yandaki resme göre boyayalım. Daha sonra kılığımızın dört tane kopyasını çıkartalım. İlk kılığımızın adını Başlangıç kopyaların isminiyse sırasıyla Nota1, Nota2, Nota3, Nota4 yapalım. 16
Nota1 kılığının kırmızı rengini koyu kırmızı, Nota2 kılığının mavi rengini koyu mavi, Nota3 kılığının sarı rengini koyu sarı, Nota4 kılığının yeşil rengini de koyu yeşil yapalım. Hazırladığımız kılıkları kullanarak oyun konsolumuzda dokunduğumuz renk hangisiyse ekranda da o kılığa geçmesini sağlayarak o tuşun basılması efekti vereceğiz. Karakterimizin kılıklarını ayarladıktan sonra kodlarımızı yazmaya geçebiliriz. 17
Veri menüsüne gelerek puan, duraklama, sıra, Tuşa Basılabilir adlarında dört tane değişken ve notalar adında bir liste oluşturalım. Değişkenlere yeşil bayrak tıklandığında resimde görülen değerleri aktaralım. Ses menüsü altında bulunan çağlıyı yap bloğunu alalım ve çağlıyı 1 yapalım. Büyüklüğü %150 yaptıktan sonra Notalar listesi elemanlarının hepsini silelim ve oynat isminde bir haber oluşturup yayınlayalım. 18
19
Oynat haberi geldiğinde ise rastgele notaları üreteceğimiz kısmı tasarlayacağız. Önce tuşa basılabilir değişkenini 0 yapıyoruz ki bu arada oyun konsoluna dokunulsa bile nota çalmasın. Tuşa basılabilir değişkeni 0 olduğu sürece oyun hamurlarına dokunmamızın bir önemi yoktur. Sıra değişkenini 1 yapıyoruz. Sıra değişkenini de hafızaya aldığımız notaları çalmak için kullanacağız. Dört tane notamız vardı. Nota1, Nota2, Nota3, Nota4. Bu notalardan herhangi birini listeye eklemek için Nota ile 1 ile 4 arasında sayı tut bloğunu birleştirerek Notalar listesine ekletiyoruz. Böylece Nota1, Nota2, Nota3 ya da Nota4 yazılarından herhangi birini listemize ekliyoruz. Notaların uzunluğu kadar tekrarla bloğuyla da hafızada olan notaları çaldırıyoruz. İlk aşamada hafızaya sadece bir nota ekleriz. Siz bu nota için oyun konsolundaki doğru renkteki oyun hamuruna tıklarsanız bir nota daha hafızaya eklenir ve sizin artık iki notayı da hafızanızda tutmanız gerekir. Bir sonraki basamakta bir daha önce eklenen notaların üzerine bir nota daha eklenir. Siz notaları oyun konsolundan doğru girdiğiniz sürece nota eklenmeye devam eder. Siz yanlış bir nota girerseniz oyun biter. 20
Sıra değişkenini değeri ilk adımda 1 di. Notalar listesine eklediğimiz ilk rastgele notayı çalmak için oluşturduğumuz dört haberi kullanacağız. Nota1, Nota2, Nota3, Nota4 adında dört değişken oluşturacağız. Sıra değişkenin değerine eşit sıradaki liste elmanı ne ise o haber salınacak ve o nota çalınacaktır. Örneğin; listeye ilk olarak Nota1 eklenmiş olsun. Sıra değişkeni 1 olduğu için 1.sıradaki liste elemanı Nota1 olur ve Nota1 haberi salınır. Nota1 haberi salındığında da ilgili nota değeri çalınır. Bu şekilde sırayla hafızadaki notaları çaldırırız. Bu çalınan notaları da biz hafızamızda tutarak oyun konsolundan gireceğiz. 21
Bu işlemi notalar listesinde bulunan eleman kadar tekrarlatıyoruz. Haberi saldıktan sonra nota çalınırken de görsel bildirim vermek için ilgili notanın kılığına geçmesi için Notalar listesinin ilgili sırasındaki değer ne ise yanı çalınan nata hangisiyse onun kılığına geçmesini sağlıyoruz. Örneğin; ilgili sıradaki değer Nota1 ise Nota1 kılığına geçecektir. Birinci notayı çaldırdıktan sonra sıra değişkenini 1 arttırıyoruz. Duraklama değişkenin değeri kadar bekledikten sonra tüm sesleri durduruyor ve başlangıç kılığına geçiyoruz. Programı ilk başlattığımızda hafızada sadece bir nota olacağı için tekrarla bloğumuz sadece bir kere tekrarlar ve altındaki kod bloklarına geçer. Burada da hafızada üretilen notaları oyun konsolundan girebilmemiz için tuşa Basılabilir değişkeni 1 yapılır. Artık ekranda gördünüz notanın aynısını siz de oyun konsolundan girebilirsiniz. 22
Daha sonra sıra değişkenini tekrar 1 yapıyoruz. Duraklama değişkenin değeri 0.15 den büyükse -0.05 arttırıyoruz ki gittikçe notalar hızlansın. Değer çok küçülürse 0.15 değerinde sabitliyoruz. Hafızadaki nota değerleri çalındıktan sonra bu notaları oyun konsolundan doğru girip girmediğimizi kontrol eden kodlarımızı yazıyoruz. 23
Herhangi bir tuşa basıldığında bir eğer ise bloğuyla tuşa basılabilir değişkenin değerini kontrol ediyoruz. Eğer değer 1 ise tuşa bastığımızda yapılan işlemler kontrol ediliyor. Sağ ok tuşu kırmızı rengi yani Nota1 i temsil ediyordu. Kırmızı oyun hamurumuz sağ ok tuşuna bağlı. İç içe eğer ise bloklarıyla bütün olasılıkları kontrol ediyoruz. İlk eğer ise değilse bloğunda sağ ok tuşuna basılı olup olmadığını ve sıra değişkenin değerindeki liste elemanın Nota1 e eşit olup olmadığını kontrol ediyoruz. Sağ ok tuşuna basmamız için notanın kırmızı renk olması lazım. Biz tuşlara bastığımızda da o anki notaya göre doğru tuşa basmışsak bir haber salıyoruz ve bazı işlemler yaptırıyoruz. Doğru nota haberi geldiğinde yani notayı oyun konsolundan doğru girmişsek o notanın haberi sanıyor ve nota çalınıyor, aynı 24
zamanda o notanın kılığına geçiliyor. Ardından sıra değişkenin değeri 1 arttırıldıktan sonra duraklama değişkenin değeri kadar beklenip başlangıç kılığına geçiliyor. Hafızadaki bütün notaların bitip bitmediğini sıra değişkenin değerinin hafızadaki nota sayısından büyük olmasından anlıyoruz. Eğer hafızadaki bütün notalar bitmişse ve biz hepsini doğru girmişsek puan değişkenin değeri 1 artıyor ve 1 saniye bekledikten sonra yeni nota üretmek için oynat haberini tekrar salıyoruz. Oynat haberi gittiğinde de hafızadaki notaların üzerine bir nota daha eklenerek eski notalarla birlikte bu notayı da tekrar doğru sırayla girmemiz gerekiyor. Bu notaları da doğru girmişsek tekrar oynat haberi salınıyor ve hafızaya bir nota daha ekleniyor. 25
İlk sıradaki koşul kontrol edildikten sonra eğer o koşul doğru değilse, bloğun değilse kısmına geçiliyor ve diğer koşul kontrol ediliyor. Bu şekilde bütün koşullar kontrol edildikten sonra eğer hiçbir koşul sağlanmamışsa son değilse kısmında buzz whir sesini bitene kadar çalıyoruz ve bütün blokları durduruyoruz. 26
Yazılacak Tüm Kodlar 27
28
Proje Linkleri Muzdan Piyano https://scratch.mit.edu/projects/230315479/ Simon Says https://scratch.mit.edu/projects/229927342/ Konuşan Meyveler https://scratch.mit.edu/projects/218918625 29
1