Bu etkinlikte ekranda yazı ve ikonu beraber göstereceğiz.
Kodları “program başladığında” bloğunun içine yazarsanız kodlar program başladığında bir kez çalışacak ve duracaktır. Tekrar görüntülemek için Micro:bit’in güç kablosunu çıkarıp yeniden takabilir veya Micro:bit’in arkasındaki reset butonunu kullanabilirsiniz.
Kodları “her zaman” bloğunun içine yazarsanız ikon ve yazı ekranda sürekli dönmeye devam eder.
Simülatörde görüntülemek için tıklayınız.
ikonunu led ile gösterme
ikonunu simge ile gösterme
#include <SoftwareSerial.h> // Software Serial kütüphanesini ekledik. SoftwareSerial bluetooth(10, 11); // Bluetooth TX, RX pinler const int solileri = 7; const int solgeri = 6; const int sagileri = 4; const int saggeri = 5; const int solHiz = 9; // Pwn pini hız ayarı için Jumperları sökünce const int sagHiz = 3; // Pwn pini hız ayarı için Jumperları sökünce int hiz = 175; void setup() { Serial.begin(9600); // Bilgisayar haberleşmesi başlat bluetooth.begin(9600); // Bluetooth haberleşmesi başlat pinMode(solileri, OUTPUT); pinMode(solgeri, OUTPUT); pinMode(solHiz, OUTPUT); //Motorlarımızı çıkış olarak tanımlıyoruz. pinMode(sagileri, OUTPUT); pinMode(saggeri, OUTPUT); pinMode(sagHiz, OUTPUT); } void loop() { if (bluetooth.available() > 0) { /*Bluetooth’tan veri bekliyoruz */ char tus = (char)bluetooth.read(); if ( tus == 'w' ) { ileri(); } if ( tus == 's' ) { geri(); } if ( tus == 'a' ) { sol(); } if ( tus == 'd' ) { sag(); } if ( tus == 'x' ) { dur(); } if ( tus == '+' ) { hiz = hiz + 25; Serial.println(hiz); // Serial ekranda Araç hızı görmek için if (hiz > 255) { hiz = 255; } } if ( tus == '-' ) { hiz = hiz - 25; Serial.println(hiz); // Serial ekranda Araç hızı görmek için if (hiz < 0) { hiz = 0; } } } } void ileri() { // Robotun ileri yönde hareketi için fonksiyon tanımlıyoruz. digitalWrite(sagileri, HIGH); // Sağ motorun ileri hareketi aktif digitalWrite(saggeri, LOW); // Sağ motorun geri hareketi pasif analogWrite(sagHiz, hiz); // Sağ motorun hızı 150 digitalWrite(solileri, HIGH); // Sol motorun ileri hareketi aktif digitalWrite(solgeri, LOW); // Sol motorun geri hareketi pasif analogWrite(solHiz, hiz); // Sol motorun hızı 150 } void sag() { // Robotun sağa dönme hareketi için fonksiyon tanımlıyoruz. digitalWrite(sagileri, HIGH); // Sağ motorun ileri hareketi aktif digitalWrite(saggeri, LOW); // Sağ motorun geri hareketi pasif analogWrite(sagHiz, 0); // Sağ motorun hızı 0 (Kapalı) digitalWrite(solileri, HIGH); // Sol motorun ileri hareketi aktif digitalWrite(solgeri, LOW); // Sol motorun geri hareketi pasif analogWrite(solHiz, hiz); // Sol motorun hızı 150 } void sol() { // Robotun sağa dönme hareketi için fonksiyon tanımlıyoruz. digitalWrite(sagileri, HIGH); // Sağ motorun ileri hareketi aktif digitalWrite(saggeri, LOW); // Sağ motorun geri hareketi pasif analogWrite(sagHiz, hiz); // Sağ motorun hızı 150 digitalWrite(solileri, HIGH); // Sol motorun ileri hareketi aktif digitalWrite(solgeri, LOW); // Sol motorun geri hareketi pasif analogWrite(solHiz, 0); // Sol motorun hızı 0 (Kapalı) } void geri() { // Robotun geri yönde hareketi için fonksiyon tanımlıyoruz. digitalWrite(sagileri, LOW); // Sağ motorun ileri hareketi pasif digitalWrite(saggeri, HIGH); // Sağ motorun geri hareketi aktif analogWrite(sagHiz, hiz); // Sağ motorun hızı 150 digitalWrite(solileri, LOW); // Sol motorun ileri hareketi pasif digitalWrite(solgeri, HIGH); // Sol motorun geri hareketi aktif analogWrite(solHiz, hiz); // Sol motorun hızı 150 } void dur() { // Robotun geri yönde hareketi için fonksiyon tanımlıyoruz. digitalWrite(sagileri, HIGH); // Sağ motorun ileri hareketi aktif digitalWrite(saggeri, LOW); // Sağ motorun geri hareketi pasif analogWrite(sagHiz, 0); // Sağ motorun hızı 0 (Kapalı) digitalWrite(solileri, HIGH); // Sol motorun ileri hareketi aktif digitalWrite(solgeri, LOW); // Sol motorun geri hareketi pasif analogWrite(solHiz, 0); // Sol motorun hızı 0 (Kapalı) }]]>
İhtiyacınız olan malzemeler;
Devreyi hazırladıysak kartımızı bilgisayara bağlıyor ve IDE ye aşağıdaki kodları yazıp derleyip kartımıza yüklüyoruz.
void setup() { pinMode(4,OUTPUT); // led bağlantımız. Serial.begin(9600); } void loop() { int sensorValue = analogRead(A0); //A0 pininden tcrt değerini okuyoruz. Serial.print(sensorValue); //Serial Ekrana sensör değerini yazıyoruz. if (sensorValue < 900){ digitalWrite(4,HIGH); } else{ digitalWrite(4,LOW); } delay(10); }]]>
RC522 RFID kartı, NFC frekansı olan 13,56 MHz frekansında çalışan tagler üzerinde okuma ve yazma işlemeni yapabilen, düşük güç tüketimli, ufak boyutlu bir karttır.
Not: 125 KHz frekansında çalışan RFID kartlarını desteklememektedir. Yalnızca 13,56 MHz frekansında çalışan kartları desteklemektedir. NFC modülleri bu frekansta çalıştığı için NFC kartları ile beraber kullanılabilir.
Arduino Uno Bağlantıları aşağıdaki gibi olmalıdır.
Arduino’ya Rfid kütüphanemizi zip olarak kitaplığa eklemek için buradan indirebilirsiniz.
Arduino uygulamamızı iki aşamalı olarak yapıyoruz. Birinci aşamada arduino kodlarımız ile rfid kart ve rfid anahtarlığımızın seri numaraları bilgilerini okuyoruz. Daha sonra önce ikinci aşamada bu kartların seri numara bilgilerini kullanarak ledlerimiz kontrol edeceğiz.
Arduino Kodlarımız – Rfid Kart Okuma
#include <SPI.h> // SPI haberleşme kütüphanesi ekliyoruz. #include <RFID.h> // Rfid kütüphanemizi ekliyoruz. RFID rfid(10,9); //SDA, RST pini void setup() { Serial.begin(9600); //Serial port kanalımızı açıyoruz. SPI.begin(); // SPI çalıştır. rfid.init(); // Rfid okumaya hazır. } void loop() { if(rfid.isCard()) // Kart algılandı mı? { if(rfid.readCardSerial()) // Kart seri numaraları bilgileri okunuyor. { // Seri numarasını dizi olarak öğreniyoruz. Hexadecimal'a çeviriyoruz. Serial.print("Kart ID: "); Serial.print(rfid.serNum[0],HEX); Serial.print(rfid.serNum[1],HEX); Serial.print(rfid.serNum[2],HEX); Serial.print(rfid.serNum[3],HEX); Serial.println(rfid.serNum[4],HEX); } rfid.halt(); // Kart yeninden okumaya hazır. } }
Buradaki kodlarımız ile rfid kart ve rfid anahtarlığımızı okutuyoruz. Rfid Kartlarımızın seri numaralarını öğreniyoruz.
Şimdi uygulamamızı geliştiriyoruz. Burada hem kart okuyoruz hem de okuduğumuz kartlarla ledlerimizi yakıyoruz.
#include <SPI.h> #include <RFID.h> RFID rfid(10,9); //SS veya SDA pini, RST pini void setup() { Serial.begin(9600); SPI.begin(); rfid.init(); pinMode(2, OUTPUT); // yeşil led bağlantısı pinMode(3, OUTPUT); // kırmızı led bağlantısı } // yukarıda öğrendiğimiz Rfid seri kart numarasını buraya girebiliriz. byte kartim[5] = {0x14,0x42,0x68,0xEB,0xD5}; void loop() { boolean gecerlikart = true; if(rfid.isCard()) { if(rfid.readCardSerial()) { Serial.print("Kart ID: "); Serial.print(rfid.serNum[0],HEX); Serial.print(rfid.serNum[1],HEX); Serial.print(rfid.serNum[2],HEX); Serial.print(rfid.serNum[3],HEX); Serial.println(rfid.serNum[4],HEX); } for(int i=0; i<5; i++) { if(rfid.serNum[i] != kartim[i]) { gecerlikart = false; } } if(gecerlikart==true) { Serial.println("Merhaba"); digitalWrite(2, HIGH); delay(1000); digitalWrite(2, LOW); } else { Serial.println("Eslesme Saglanamadi!"); digitalWrite(3, HIGH); delay(1000); digitalWrite(3, LOW); } rfid.halt(); } }
Daha önce okuttuğumuz rfid kartların seri numaralarını burada birini geçerli kart olarak tanımladık. Geçerli kartı okuttuğumuzda devremize bağladığımız yeşil led yanacak ve serial ekranda “Merhaba” diyecek. Diğer rfid kartı okuttuğumuzda ise kırmızı led yanacak ve “Eşleşme Sağlanamadı” diyecek.
]]>Malzemeler:
1-) Arduino uno r3 kartı
2-) Hc-06 (bluetooth sensörü)
3-) Led
Bluetooth Led Yakma Haberleşmesi 1
Bu kodlarımızda arduinoya Bluetooth bağlarken standart bağlantı noktalarını kullanıyoruz. (0. ve 1. pinler) Aşağıdaki kodumuzu arduinoya yüklerken bluetooth pinlerini çıkarmamız gerekiyor. Çünkü donanımsal serial port kullanıyoruz. Bilgisayara bağlantı yaptığımız usb içinde aynı portları kullandığı için çakışma oluşur ve kod yüklenirken hata verir. Kodlar arduinoya yüklendikten sonra bluetooth pinlerini tekrar takınız.
Bluetooth Led Yakma Haberleşmesi 2 ( SoftwareSerial kütüphanesi ile)
İlk kodumuzda bluetooth bağlantısı yapmak için donanımsal port kullanmıştık. Kodu yüklerken çıkarmamız gerekiyordu. Burada ise bluetooth potunu yazılımsal olarak ayarlacağız. Bunun için “Software Serial” kütüphanesini kullanacağız. Bluetooth pinlerimizi 10 ve 11 olarak ayarlacağız. Böylelikle kodu yüklerken bluetooth pinlerini çıkarmamıza gerek kalmayacak. Çünkü Usb kablo portu ile bluetooth port pinleri artık farklı olduğu için çakışma ve kod yükleme hatası olmayacak.
#include<SoftwareSerial.h> SoftwareSerial btmodul(10,11); // 10 ve 11. pin Rx ve Tx pinleri olacaktır. char gelenVeri; //gelenVeri değişkeninin türünü char olarak ayarlıyoruz. int led=13; void setup() { Serial.begin(9600); // Bilgisayar haberleşmesi başlat btmodul.begin(9600); // Bluetooth iletişimi başlatır. pinMode(led,OUTPUT); //13. pinimizi(led=13) çıkış yapıyoruz. } void loop() { if (btmodul.available()) { // Eğer bluetooth bağlantısı varsa içindeki kodları çalıştırır. (Bu kısmı kullanmayada bilirsin.) gelenVeri = btmodul.read(); //Gelen değeri okuyoruz. ve gelenVeri değişkenine aktarıyoruz. Serial.println(gelenVeri); //Bluetooth dan gelen mesajı bilgisayar serial ekranında göster. if(gelenVeri=='1') { //Eğer Android'ten gelen değer "1" ise( yani 1 rakamına bastığımızda,) digitalWrite(led,HIGH);} //digitalWrite ile 13. pini (HIGH) yaparak Ledimizi yakıyoruz. else if(gelenVeri=='0'){ //Eğer Android'ten gelen değer "0" rakamı ise digitalWrite(led,LOW); } //digitalWrite ile 13. pini (LOW) yaparak Ledimizi söndürüyoruz. } }
Android-Arduino Bağlantısı
Bağlantıları kurduktan sonra eşleştirme yapmadıysanız öncelikle telefonunuz ile bluetooth cihazınızı eşleştirmeniz gerekmektedir. Bunun için telefonunuzda bluetooth ayarlarına gelerek (arduino kartınız çalışıyorken) yakınlardaki cihazlarda kullandığınız cihazı seçerek eşleştirme yapmalısınız.Şifre genellikle “1234” tür. Eşleştirme tamamlandıktan sonra uygulamayı açarak “Bağlan” butonu ile cihaz listesinden eşleştirmiş olduğunuz cihaza bağlanabilirsiniz. Arduino kartınızda gelen veriyi görebilmek için programın sağ üst köşesinde bulunan Seri port ekranı kısmına basmanız yeterlidir.
Bu işlemi yaptıktan sonra Arduino yükledikten sonra telefonumuza aşağıdaki resimde görülen uygulamayı indirip deneyebilirsiniz.
Önemli: Bu uygulamayı indirdikten sonra Terminal koda ledi açmak için 1. yazıp eğer kapatmak için 0. yazıp ledimizi kontrol edebiliriz.
Kendi Android uygulamanızı app inventor 2 sitesinde yapabilirsiniz. (App İnventor konu anlatım yazılarımız yakında…)
Bluetooth cihazinın ismini ve şifresini değiştirmek için ne yapmanız gerektiğini merak ediyorsanız bir önceki yazımıza aşağıdan ulaşabilirsiniz.
]]>Oyunumuzda önce sahneyi futbol sahası şeklinde çiziyoruz. Daha sonra oyunumuz için kale olacak uzun çubukları ile top yakalama çubuklarını ve topumuzu çiziyoruz. Burada mantığımız şu şeklide; Sarı top yakalama çubuğu sarı oyuncu tarafından klavye tuşları ile sağ ve sola hareket edecek, Kırmızı top yakalama çubuğu klavyenin farklı tuşları ile sağa ve sola hareket edecek. Oyundaki amaç ise her iki oyuncu da karşı kaleye yani boydan boya aynı renkle çizilmiş sahnenin kenarı konmuş kuklaya değmeye çalışacak.
Oyuncu kuklalarımız sahnenin sağına ve soluna gelecek şekilde yerleştiriniz. Daha sonrasında onların arkasına sahneyi boydan boya kaplayacak aynı renkteki kale kuklalarını yerleştiriniz. Topumuz orta durabilir daha sonra kodla ayarlayacağız.
Bayrağa tıklandıktan sonra ilk işimiz oyuncu kuklalarımızın nerede duracağını belirlemek. Bunun için “x: ,y: noktasına git” kodu ile kenar çizgilerinin ortasına ayarlıyoruz. Oyuncu kuklalarının hareket etmesi için sürekli tekrarla bloku içinde ” …. tuşlara basılı mı?” kodu ile yukarı ve aşağı gitmesini sağlayacak kodlarımızı ekliyoruz.
Kodlarımız incelendiğinde mantığımız şu şekilde; oyunda topumuzun iki oyuncudan birinin skoru 5 olana kadar işlem yapması için “olana kadar tekrarla” kodunu kullanıyoruz. Oyun sırasında top oyuncu kuklalarına çarparsa ters açı ile geri gelmesi için topun yönünü -1 ile çarpıyoruz. Kırmızı kaleye değerse sarı oyuncunun skorunu, Sarı kaleye değerse de kırmızı oyuncunun skorunu artırıyoruz. İki oyuncudan birinin skoru 5 olursa olana kadar tekrarla bloku içinden çıkıp, kim kazandı ise onun adını ekrana yazdırıyoruz.
İyi Eğlenceler.
]]>Arduino Kodlarımız -1
#include <LiquidCrystal.h> // Kütüphanemizi ekliyoruz.
LiquidCrystal lcd(12, 11, 5, 4, 3, 2); // LCD Bağlantılarımız
void setup() {
lcd.begin(16, 2); // LCD Bağlantıları
lcd.print("Hello, World");
}
void loop() {
}
Arduino Kodlarımız -2
#include <LiquidCrystal.h>
LiquidCrystal lcd(12, 11, 5, 4, 3, 2);
void setup() {
lcd.begin(16, 2);
lcd.setCursor(2, 1);
lcd.print("hello, world!");
}
void loop() {
}
Bu işlev görünür bir imleç oluşturur. İmleç, LCD’ye yazdırılacak bir sonraki karakterin altına yerleştirilmiş yatay bir çizgidir.
lcd.noCursor ( ) işlevi imleci kapatır. lcd.cursor ( ) ve lcd.noCursor ( ) birçok metin giriş alanında gördüğünüze benzer yanıp sönen imleci yazdırmak için void loop ( ) bölümünde birlikte kullanılabilir.
#include <LiquidCrystal.h>
LiquidCrystal lcd(12, 11, 5, 4, 3, 2);
void setup() {
lcd.begin(16, 2);
lcd.print("hello, world!");
}
void loop() {
lcd.setCursor(12, 1);
lcd.cursor();
delay(500);
lcd.setCursor(12, 1);
lcd.noCursor();
delay(500);
}
Şimdi Lcd ekran ile kayan yazı uygulaması yapalım. Bunun için for döngüsü kullanarak “lcd.setCursor(0,i)” kodu kullanacağız. i değişkeni for döngüsü ile birlikte her seferinde bir artacak(i++). Kodlarımızı buna göre aşağıdaki gibi düzenleyelim.
#include <LiquidCrystal.h>
LiquidCrystal lcd(12, 11, 5, 4, 3, 2);
void setup() {
lcd.begin(16, 2);
}
void loop() {
lcd.setCursor(0, 0); // ilk satır
lcd.print("KodlaBafra");
for (int i=0; i<17; i++){
lcd.setCursor(i, 1); // ikinci satır
lcd.print("Orhan Demirci"); // for döngüsü içinde kayacak olan yazı
delay(500);
lcd.clear(); // Ekranı yenilemek için,
}
}
]]>HC05 ve HC06 modüllerini bilgisayarınız ile konfigüre etmek için şu şekilde bağlamalısınız:
Modül -> USB-Seri kartı
ÖNEMLİ NOT1= Bluetooth cihazınızın VCC pinini Arduino kartınızın 3.3V pinine bağlamanız gerekmektedir.Eğer 5V pinine bağlarsanız bluetooth cihazınız zarar görebilir.
Eğer HC05 modülü kullanıyorsanız, modüle güç verdiğiniz esnada kartın üzerindeki butona basılı tutun. Kartınızda buton yoksa, “KEY” pinini VCC’ye bağlayabilirsiniz.
#include <SoftwareSerial.h> // Software Serial kütüphanesini ekledik. SoftwareSerial hc06(10, 11); // Bluetooth TX, RX pinler void setup() { Serial.begin(9600); // Bilgisayar haberleşmesi başlat hc06.begin(9600); // Bluetooth haberleşmesi başlat } void loop() { if (hc06.available()) // Bluetooth bağlantısı va mı? { Serial.write(hc06.read()); // Bluetooth gelen veriyi oku, Serial ekrana yaz. } if (Serial.available()) // Bilgisayar bağlantısı var mı? { hc06.write(Serial.read()); //Bilgisayardan gelen mesajı oku, bluetooth a yaz. } }
Yukarıdaki yazdığımız kodlar ile bilgisayarımızın bluetooth modülümüzle iletişim kurmasını sağladık. Burada önemli olan kısım “Software Serial” kütüphanesini kullanmış olmamız. Bu kütüphane bizim arduino üzerinde tanımlı TX,RX pinleri yerine farklı kendi belirleyeceğimiz TX, RX pinleri kullanabilmenizi sağlıyor. Eğer biz arduino ile tanımlı gelen TX, RX pinlerini kullansaydık kodlarımızı yüklerken Arduino İde programımız hata verecekti. Çünkü Arduinomuzu USB portu ile bilgisayara bağladığımızda USB portu da aynı pinleri kullanıyor ve çakışma oluyor. Kod yüklerken 0 ve 1. pinlerin boş olması gerekmektedir. Her seferinde bluetooth modülünün giriş çıkış pinlerini çıkarmaktansa software serial ile pinleri değiştiriyoruz.
HC06 Bluetooth modülünün AT komut yönergesi:
Arduino IDE’yi açın ve doğru COM portunu seçin. HC06 modülünüzü yukarıda anlattığım şekilde bağlayın. Bu aşamada Arduino IDE üzerinden seri port ekranını açarak aşağıdaki şekilde ayarlayabiliriz:
Burada dikkat etmeniz gereken nokta, kartınızın baud rate’ini değiştirdiğiniz takdirde AT komutları yollamak için seçmiş olduğunuz baud rate’i kullanmanız gerektiğidir. Kartın varsayılan baud rate’i 9600’dür.
Bağlantıyı denemek için modüle AT komutu gönderebilirsiniz. Eğer seri port ekranında OK cevabını görüyorsanız, bağlantınız düzgün çalışıyor demektir.
Kartın varsayılan ayarları şu şekildedir:
Modülün ismini değiştirmek için AT+NAMEkartismi
Şifresini değiştirmek için AT+PIN1234
Baud rate’ini değiştirmek için AT+BAUD4 (1:1200, 2:2400, 3:4800, 4:9600, 5:19200, 6:38400, 7:57600, 8:115200, A:460800, B:921600, C:1382400 baud’a karşılık gelmektedir)
HC05 Bluetooth modülünün AT komut yönergesi:
Arduino IDE’yi açın ve doğru COM portunu seçin. HC05 modülünüzü yukarıda anlattığım şekilde bağlayın ve bağlarken kart üzerindeki buton veya pin ile AT konfigürasyon moduna geçtiğinizden emin olun. Kart üzerindeki LED’in uzun süreli yanıp sönüyor ise AT moduna başarılı bir şekilde geçmiş demektir. Bu aşamada Arduino IDE üzerinden seri port ekranını açarak aşağıdaki şekilde ayarlayabiliriz:
Bağlantıyı denemek için modüle AT komutu gönderebilirsiniz. Eğer seri port ekranında OK cevabını görüyorsanız, bağlantınız düzgün çalışıyor demektir.
Kartın varsayılan ayarları şu şekildedir:
Modülün ismini değiştirmek için AT+NAME=kartismi
Şifresini değiştirmek için AT+PSWD=1234
Baud rate’ini değiştirmek için AT+UART=115200,0,0
Varsayılan ayarlara dönmek için AT+ORGL komutlarını kullanabilirsiniz.
HC05 modülü, HC06’nın aksine master modunda da çalışabilmektedir. Böylelikle bir HC05 modülünü master olarak ayarlayabilir ve slave modda çalışan bir başka HC05 modülüne veya HC06 modüller ile haberleşme yaptırabilirsiniz.
HC05 varsayılan olarak slave modda çalışacak şekilde ayarlıdır. AT+ROLE=1 komutu vererek HC05 modülümüzü master moda geçirebiliriz. Bu durumda eğer herhangi bir MAC adresi belirtilmezse, HC05 modülümüz ortamda bulduğu ilk slave moddaki HC05 modülü veya HC06 modülü ile haberleşmeye geçecektir. Eğer bağlantının yanlızca sahip başka bir cihaz ile kurulmasını istiyorsak öncelikle bu cihazın MAC adresini öğrenmemiz gereklidir. MAC adresini öğrenmemiz için slave modda çalışan cihazı bir kere bilgisayarımız ile eşleştirmemiz yeterlidir. Daha sonra Aygıt Yöneticisi‘ni çalıştırarak Bluetooth altındaki cihazlardan cihazımızı bulup, sağ tıklayarak Özellikler penceresinden cihazın MAC adresini öğrenebiliriz.
Bu adresi master modülümüze AT+BIND=98d3,31,b3739f komutu ile kaydediyoruz. Daha sonra HC05’imizin yanlızca bu cihaza bağlanmasını sağlamak için AT+CMODE=0 komutu veriyoruz. Bundan sonra HC05 modülümüz çalıştıktan sonra yanlızca verdiğimiz MAC adresine sahip cihaz ile iletişime geçecektir. Bu modda iken master HC05 cihazın üzerindeki LED, her 1 saniyede 2 kez yanıp sönecektir.
İsterseniz AT kodunu arduino kodlarımızın içerisine yazabilirsiniz, Örnek kodlar aşağıdadır.
#include <SoftwareSerial.h> SoftwareSerial btSerial(10, 11); // TX, RX String isim = "deneme"; int sifre = 1122; String uart = "9600,0,0"; void setup() { Serial.begin(9600); Serial.println("HC-05 Modul Ayarlaniyor..."); Serial.println("Lutfen 5 sn icinde HC-05 modulun uzerindeki butona basili tutarak baglanti yapiniz."); btSerial.begin(9600); delay(5000); btSerial.print("AT+NAME"); btSerial.println(isim); Serial.print("Isim ayarlandi: "); Serial.println(isim); delay(1000); btSerial.print("AT+PIN"); btSerial.println(sifre); Serial.print("Sifre ayarlandi: "); Serial.println(sifre); delay(1000); btSerial.print("AT+UART="); btSerial.println(uart); Serial.print("Baud rate ayarlandi: "); Serial.println(uart); delay(2000); Serial.println("Islem tamamlandi."); } void loop() { if (btSerial.available()) // Bluetooth bağlantısı va mı? { Serial.write(btSerial.read()); // Bluetooth gelen veriyi oku } if (Serial.available()) // Bilgisayar bağlantısı var mı? { btSerial.write(Serial.read()); //Bilgisayardan gelen mesajı Bluetooth dan oku. } }]]>
Oyunumuz sahnesini scratch kütüphanesinden seçiyoruz. Flappy Bird kuşumuzu internetten “flappy Bird gif “olarak arıyoruz ve masaüstüne resim olarak kaydediyoruz. Boru için “flappy bird boru png” olarak arıyoruz ve masaüstüne resim olarak kaydediyoruz. Kuşumuzun arkasında renk varsa onları silmek için “arkaplan sil” kullanabilirsiniz.
İnternetten aldığımız resimleri scratch programıza yeni kukla bölümünden bilgisayardan seç kısmını kullanıyoruz. Açılan pencereden bilgisayarımızda resimleri nereye kaydettiysek oradan seçiyoruz. Kuş resmimizi gif olarak (Hareketli resim) aldığımız için kendiliğinden 8 tane kılık eklenmiş oluyor. Eğer kuşun kılıklarında arka plan rengi varsa arka plan silici kullanabiliriz.
İnternetten indirdiğimiz boru kılığını da yeni kukla bölümünden bilgisayardan seç kısmını kullanıyoruz. Açılan pencereden bilgisayarımızda resimleri nereye kaydettiysek oradan seçiyoruz. Borunun kılığını fare sağ tuşu ile kopyalayarak 4 tane yapıyoruz. Boylarını değiştirmek için yukarıda gösterildiği gibi Seçim aracını kullanıyoruz. Amacımız 4 faklı boru yapmak. Borumuzun kılıklarını 1,2,3,4 diye isimlendiriyoruz.
Oyunda kuşun içinden geçeceği boruları ayarlamak için önce asıl borumuzun başlangıç noktasını “x:240 y:0 noktasına git” kodu ayarlıyoruz. Farklı boylarda ayarladığımız kılıklarının rastgele bir şekilde gelmesi için “1 ile 4 arasında bir sayı tut” kodu ile kılık seçiyoruz. Borumuzu sadece yatayda hareket etmesi için “ x konumu -239 den küçük olana kadar” x konumunu -2 artırıyoruz. Borumuz -239 den küçük olduğu durumda yani sahnenin sonuna geldiğinde tekrar sürekli tekrarla içindeki en baştaki konumunda başka kılıkla gelecek.
Borumuz kuşu geçip en sona geldiğinde, yani kuşun boruyu geçmesi durumunda puan değişkenini 10 puan artırıyoruz.
Kuştaki kodlarımız incelendiğinde 2 adet bayrağa basınca çalışan kodlarımız var. Sürekli tekrarla içinde sonraki kılık diyerek sürekli kılık değiştirmesini yani kanat çırpmasını sağlıyoruz. Diğer bayrağa tıklanınca kodumuzda ise kuşun başlangıç noktasını belirliyoruz ve oyun esnasında sadece aşağı yukarı hareket etmesini için Eğer blokunda boşluk tuşuna basıldığında kuşun konumunu y ekseninde 10 birim artırıyoruz. Eğer tuşlara basılmazsa kuşumuz sürekli olarak 2 birim aşağıya kayıyor.
Oyunumuz kuşun boruya yada yerdeki kahverengi renge değmesi durumunda bitmesi için eğer koşulu ile hepsini durdur kodunu kullanıyoruz.
]]>Oyunumuza önce yeni sahne çizerek başlıyoruz. Sahnemizde alt kısımı farklı renkle çizgi şeklinde çizmemiz ileride topun yere değmesini algılamamız için önemli. Yeni Sahne çizmek için Yeni Dekordan fırça simgesine tıklayınız.
Sıra geldi tuğla çizmeye bunun için yeni kukla çiziyoruz. Yemi kukla çizmek için yeni kukla bölümündeki fırça simgesine tıklamak yeterli. Tuğla için dikdörtgen bir şekil çizmeniz yeterli olacaktır.
Tuğlamızın başlangıç noktasından başlayarak 8 defa ikizini oluşturmasını sağlıyoruz. Tabi burada ikizlerimizin yan yana olması için her ikiz yaratma işleminden sonra tuğlamızın X konumunu 52 birim artırıyoruz. Burada dikkat etmeniz gereken tuğlanın büyüklüğüne göre 52 değeri değişebilir. Hatta siz tuğlayı çok büyük çizdiyseniz belki 4 kere ikizini yaratmak yetebilir.
Sahnemizde tek sıra tuğladan daha fazlası lazım o yüzden şimdi aynı ikizini yaratma kodu ile ikinci sıraya da tuğla koyacağız. Bunun için dikkat etmemiz gereken tek nokta bizim asıl olan ilk tuğlamızı başlangıç noktasından belli bir birim aşağıya çekmek. Bunun için başlangıç noktasına gitmesi için belirlediğimiz kodu kopyalayıp y konumunu 30 birim azaltmak. Yine burada sizin çizdiğiniz tuğla daha büyükse 30 dan fazla aşağı inmeniz lazım olabilir. Peki neden ilk ikiz yaratma kodumuzun tekrar sayısını 8’den 9’a çıkardık; çünkü sondaki asıl tuğlamızı aşağı sıraya taşıdık. Bu yüzden bir eksik kalmasın diye onun yerine de ikiz sayısını artırdık.
Burada oyun sahnemize 4 sıra tuğla koymak için kodlarımızı devam ettirdik. Sondaki ikizini yaratma kodumuzun tekrar sayısının bir eksik olması orada kopya tuğlalar dışında asıl tuğlamızında olmasındandır.
Yukarıdaki paddle kodlarımız klavye üzerinden sağ ve sol tuşa basarak paddlemızın hareket etmesini sağlıyoruz.