- Mesajlar
- 688
Arduino Uno, joystick ve 2 düğme ile Scratchtaki karakteri kontrol etme.
Uyarıyı ilk başta yapayım, bu proje Scrathın sitesinden indirilen versiyonu ile çalışmaz. Dosya zarar görmüş, (key not found) hatası alırsınız. Projenin çalışması için S4A (Scratch for Arduino) adlı sitedeki versiyonu kullanmanız lazım. S4A yı kurduktan sonra aynı sitede, Arduino için yazılmış, Scratch ile seri haberleşmeyi sağlayan program kodunu da Arduinoya yükleyince program yazmaya başlayabiliriz. Scratchı açtığımızda "uzaktan kumanda bağlantıları aktif" uyarısı gelmesi lazım.
Projemde 2 tane buton ve 1 tane 2 eksenli joystick kullandım.
Butonlar için Digital 2 ve 3 nolu pinler kullanıldı. 1 nolu düğme ateş için, 2 nolu düğme oyunu sonlandırmak için kullanıldı. Butonların basılı olmadığı durumda girişlere GND gitmesi için 10K lık dirençle topraklama yapıldı. basılı olunca da direk digital pinlere 5v gönderiyor. 10K lık topraklama yapılmazsa buton basılı olmadığı durumlarda true/false olarak sürekli değişiyor ve sabit bir değerde kalmıyor. muhakkak yapılması lazım.
Joystick üzerinde +5V, GND, VRx, VRy, SW olmak üzere beş çıkış var. +5v, Gnd bağlantıları devreyi beslemek için. VRx çıkışını (X ekseni değeri) Analog0 ve VRy (Y ekseni değeri) çıkışını Analog1 girişine bağladım. SW ise joysticklerde bulunan bastırınca çalışan dügme (Gökkuşağı hareketi
) projemde bu düğmeyi kullanmadım. Bağlantı şemaları aşağıdaki gibidir.
Joystick içinde 2 tane potansiyometre var. en düşük 0 en yüksek 1023 değerini arduinodan okuyabiliyoruz. merkezde durduğu zaman bu değer 512 gibi birşey göstermeli (benimkinde X ekseni ortada iken 517, Y ekseni 512 gösteriyor). kolu oynattıkça bu değerin merkez değere göre BÜYÜK / KÜÇÜK karşılaştırılması yapılıp, yön belirleniyor.
Scratchta dikkat edilmesi gereken nokta şurası. Düğme basma, Sensör algılama vb. işlemleri sadece Arduino modu ile eklenmiş karakter içinden yapabilirsiniz. Bunun için 2 yöntem kullanabilirsiniz.
1-DEĞİŞKEN YÖNTEMİ: 1 tane arduino karakteri kullanarak, değişkenler oluşturup, düğme durumlarına göre bu değişkenleri Arduino karakteri içinden 1 / 0 yapıp, diğer karakterlerin bu değişken değerlerine göre çalışmalarını sağlayabilirsiniz. (ben bu yöntemi kullandım)
2-Farklı Arduino Karakterleri olarak eklemek: Scratchta sahneye rastgele karakter ekleme düğmesinin yanına ilave olarak gelen düğmelerden en sağdakini kullanarak, istenilen karakter ilave algılama blokları ile sahneye eklenebilir.
aşağıdaki kodlar, arduino karakteri içinde yer alır. buton ve joystick verilerini değişkenlere aktarır. Diğer karakterler bu değişkenlerin durumuna göre hareket eder.
Burada ki farklı bir karakter, değişkenlerin durumuna göre hareket ediyor.
Yapılacaklar:
1-S4A sitesinden Scratchın modifiyeli versiyonunu indir. (http://vps34736.ovh.net/S4A/S4A16.zip 27 MB )
2-indirdiğin paketteki programı kur.
3-Arduino için S4AFirmware16.ino dosyasını indir. (http://vps34736.ovh.net/S4A/S4AFirmware16.ino 7 KB)
4-Arduino içine indirdirilen S4AFirmware16.ino dosyasını yaz.
5-Devre şemasını kur.
6-Örnek projeyi yükleyip test etmek. (ekte mevcut)
Tüm içerik için (video da mevcut) --> https://drive.google.com/folderview?id= ... sp=sharing
Uyarıyı ilk başta yapayım, bu proje Scrathın sitesinden indirilen versiyonu ile çalışmaz. Dosya zarar görmüş, (key not found) hatası alırsınız. Projenin çalışması için S4A (Scratch for Arduino) adlı sitedeki versiyonu kullanmanız lazım. S4A yı kurduktan sonra aynı sitede, Arduino için yazılmış, Scratch ile seri haberleşmeyi sağlayan program kodunu da Arduinoya yükleyince program yazmaya başlayabiliriz. Scratchı açtığımızda "uzaktan kumanda bağlantıları aktif" uyarısı gelmesi lazım.
Projemde 2 tane buton ve 1 tane 2 eksenli joystick kullandım.
Butonlar için Digital 2 ve 3 nolu pinler kullanıldı. 1 nolu düğme ateş için, 2 nolu düğme oyunu sonlandırmak için kullanıldı. Butonların basılı olmadığı durumda girişlere GND gitmesi için 10K lık dirençle topraklama yapıldı. basılı olunca da direk digital pinlere 5v gönderiyor. 10K lık topraklama yapılmazsa buton basılı olmadığı durumlarda true/false olarak sürekli değişiyor ve sabit bir değerde kalmıyor. muhakkak yapılması lazım.
Joystick üzerinde +5V, GND, VRx, VRy, SW olmak üzere beş çıkış var. +5v, Gnd bağlantıları devreyi beslemek için. VRx çıkışını (X ekseni değeri) Analog0 ve VRy (Y ekseni değeri) çıkışını Analog1 girişine bağladım. SW ise joysticklerde bulunan bastırınca çalışan dügme (Gökkuşağı hareketi

Joystick içinde 2 tane potansiyometre var. en düşük 0 en yüksek 1023 değerini arduinodan okuyabiliyoruz. merkezde durduğu zaman bu değer 512 gibi birşey göstermeli (benimkinde X ekseni ortada iken 517, Y ekseni 512 gösteriyor). kolu oynattıkça bu değerin merkez değere göre BÜYÜK / KÜÇÜK karşılaştırılması yapılıp, yön belirleniyor.
Scratchta dikkat edilmesi gereken nokta şurası. Düğme basma, Sensör algılama vb. işlemleri sadece Arduino modu ile eklenmiş karakter içinden yapabilirsiniz. Bunun için 2 yöntem kullanabilirsiniz.
1-DEĞİŞKEN YÖNTEMİ: 1 tane arduino karakteri kullanarak, değişkenler oluşturup, düğme durumlarına göre bu değişkenleri Arduino karakteri içinden 1 / 0 yapıp, diğer karakterlerin bu değişken değerlerine göre çalışmalarını sağlayabilirsiniz. (ben bu yöntemi kullandım)
2-Farklı Arduino Karakterleri olarak eklemek: Scratchta sahneye rastgele karakter ekleme düğmesinin yanına ilave olarak gelen düğmelerden en sağdakini kullanarak, istenilen karakter ilave algılama blokları ile sahneye eklenebilir.
aşağıdaki kodlar, arduino karakteri içinde yer alır. buton ve joystick verilerini değişkenlere aktarır. Diğer karakterler bu değişkenlerin durumuna göre hareket eder.
Burada ki farklı bir karakter, değişkenlerin durumuna göre hareket ediyor.
Yapılacaklar:
1-S4A sitesinden Scratchın modifiyeli versiyonunu indir. (http://vps34736.ovh.net/S4A/S4A16.zip 27 MB )
2-indirdiğin paketteki programı kur.
3-Arduino için S4AFirmware16.ino dosyasını indir. (http://vps34736.ovh.net/S4A/S4AFirmware16.ino 7 KB)
4-Arduino içine indirdirilen S4AFirmware16.ino dosyasını yaz.
5-Devre şemasını kur.
6-Örnek projeyi yükleyip test etmek. (ekte mevcut)
Tüm içerik için (video da mevcut) --> https://drive.google.com/folderview?id= ... sp=sharing
Ekli dosyalar
-
res1.JPG10.5 KB · Görüntüleme: 2,381
-
res3.JPG43.6 KB · Görüntüleme: 2,378
-
res4.JPG3.9 KB · Görüntüleme: 2,376
-
kod1.gif24.8 KB · Görüntüleme: 2,382
-
kod2.gif25 KB · Görüntüleme: 2,373
-
2015-12-24 11.37.51.jpg183.1 KB · Görüntüleme: 2,361
-
2015-12-24 11.38.03.jpg176.7 KB · Görüntüleme: 2,356
-
2015-12-24 11.38.10.jpg183.7 KB · Görüntüleme: 2,345