Strict Standards: Static function Automattic\Jetpack\My_Jetpack\Product::get_name() should not be abstract in /home/kodlabaf/public_html/wp-content/plugins/jetpack/jetpack_vendor/automattic/jetpack-my-jetpack/src/products/class-product.php on line 141

Strict Standards: Static function Automattic\Jetpack\My_Jetpack\Product::get_title() should not be abstract in /home/kodlabaf/public_html/wp-content/plugins/jetpack/jetpack_vendor/automattic/jetpack-my-jetpack/src/products/class-product.php on line 148

Strict Standards: Static function Automattic\Jetpack\My_Jetpack\Product::get_description() should not be abstract in /home/kodlabaf/public_html/wp-content/plugins/jetpack/jetpack_vendor/automattic/jetpack-my-jetpack/src/products/class-product.php on line 155

Strict Standards: Static function Automattic\Jetpack\My_Jetpack\Product::get_long_description() should not be abstract in /home/kodlabaf/public_html/wp-content/plugins/jetpack/jetpack_vendor/automattic/jetpack-my-jetpack/src/products/class-product.php on line 162

Strict Standards: Static function Automattic\Jetpack\My_Jetpack\Product::get_features() should not be abstract in /home/kodlabaf/public_html/wp-content/plugins/jetpack/jetpack_vendor/automattic/jetpack-my-jetpack/src/products/class-product.php on line 169

Strict Standards: Static function Automattic\Jetpack\My_Jetpack\Product::get_pricing_for_ui() should not be abstract in /home/kodlabaf/public_html/wp-content/plugins/jetpack/jetpack_vendor/automattic/jetpack-my-jetpack/src/products/class-product.php on line 176

Strict Standards: Static function Automattic\Jetpack\My_Jetpack\Product::get_manage_url() should not be abstract in /home/kodlabaf/public_html/wp-content/plugins/jetpack/jetpack_vendor/automattic/jetpack-my-jetpack/src/products/class-product.php on line 183

Warning: session_start(): Cannot send session cookie - headers already sent by (output started at /home/kodlabaf/public_html/wp-content/plugins/jetpack/jetpack_vendor/automattic/jetpack-my-jetpack/src/products/class-product.php:141) in /home/kodlabaf/public_html/wp-content/plugins/pe-recent-posts/pe-recent-posts.php on line 21

Warning: session_start(): Cannot send session cache limiter - headers already sent (output started at /home/kodlabaf/public_html/wp-content/plugins/jetpack/jetpack_vendor/automattic/jetpack-my-jetpack/src/products/class-product.php:141) in /home/kodlabaf/public_html/wp-content/plugins/pe-recent-posts/pe-recent-posts.php on line 21

Warning: Cannot modify header information - headers already sent by (output started at /home/kodlabaf/public_html/wp-content/plugins/jetpack/jetpack_vendor/automattic/jetpack-my-jetpack/src/products/class-product.php:141) in /home/kodlabaf/public_html/wp-includes/feed-rss2.php on line 8
HerkesicinKodlama – KodlaBafra https://kodlabafra.org Bafra Kodlama Merkezi Fri, 14 Jan 2022 14:19:25 +0000 tr hourly 1 https://wordpress.org/?v=6.0.8 https://i0.wp.com/kodlabafra.org/wp-content/uploads/2018/11/cropped-logoKB-1.png?fit=32%2C32&ssl=1 HerkesicinKodlama – KodlaBafra https://kodlabafra.org 32 32 154684607 Micro:bit’i Seviyorum-“I ❤ Micro:bit “ https://kodlabafra.org/2021/05/31/microbiti-seviyorum-i-%e2%9d%a4-microbit/?utm_source=rss&utm_medium=rss&utm_campaign=microbiti-seviyorum-i-%25e2%259d%25a4-microbit Mon, 31 May 2021 20:39:34 +0000 https://kodlabafra.org/?p=1850 Bu etkinlikte ekranda yazı ve ikonu beraber göstereceğiz. Kodları “program başladığında” bloğunun içine yazarsanız kodlar program ba]]>

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

]]>
1850
Bluetooth Kontrollü Araba https://kodlabafra.org/2019/05/09/bluetooth-kontrollu-araba/?utm_source=rss&utm_medium=rss&utm_campaign=bluetooth-kontrollu-araba Thu, 09 May 2019 13:08:10 +0000 https://kodlabafra.org/?p=1610 Yazıyı güncellenmeye devam ediyoruz.]]> Yazıyı güncellenmeye devam ediyoruz.

#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ı)
}
]]>
1610
Arduino Cisim Algılama (TCRT5000) https://kodlabafra.org/2019/05/07/arduino-cisim-algilama-tcrt5000/?utm_source=rss&utm_medium=rss&utm_campaign=arduino-cisim-algilama-tcrt5000 Tue, 07 May 2019 12:59:46 +0000 https://kodlabafra.org/?p=1583 TCRT5000 Kızılötesi Sensör ile uzaklığı ölçeceğiz ve uzaklık değeri istediğimiz değerin altındaysa ledimizi yakacağız. TCRT5000 Kızılöt]]> TCRT5000 Kızılötesi Sensör ile uzaklığı ölçeceğiz ve uzaklık değeri istediğimiz değerin altındaysa ledimizi yakacağız. TCRT5000 Kızılötesi Sensör 2 mm ile 15 mm arasında sağlıklı değerler verebilen çok uygun fiyatlı bir sensör. Çizgi izleyen robot gibi projelerinizde kullanmak için de oldukça uygundur.

İhtiyacınız olan malzemeler;

  • 1 Adet Arduino Uno R3
  • 1 Adet Breadboard
  • 1 Adet TCRT5000 Kızılötesi Sensör
  • 1 Adet 220 Ohm Direnç
  • 1 Adet 100 Ohm Direnç
  • 1 Adet 10.000 (10K) Ohm Direnç
  • 1 Adet Led
  • 9 Adet Erkek-Erkek Jumper Kablo

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);
}
]]>
1583
Arduino Rfid Kart Uygulaması https://kodlabafra.org/2019/05/07/arduino-rfid-kart-uygulamasi/?utm_source=rss&utm_medium=rss&utm_campaign=arduino-rfid-kart-uygulamasi Tue, 07 May 2019 12:01:16 +0000 https://kodlabafra.org/?p=1568 Radyo Frekanslı Tanıma (Radio Frequency Identification-RFID) teknolojisi, canlı ve cansız her türlü nesnenin dokunmadan belirli bir mesafeden tanınm]]> Radyo Frekanslı Tanıma (Radio Frequency Identification-RFID) teknolojisi, canlı ve cansız her türlü nesnenin dokunmadan belirli bir mesafeden tanınmasında ve izlenmesinde kullanılır.  RFID teknolojileri giderek artan büyük bir oranda dünya genelinde ve ülkemizde yaygınlaşmakta ve birçok sektörde kullanılmaktadır. Otomotiv, akaryakıt, lojistik, perakendecilik, tarım, sağlık, ilaç, tekstil, finans, bankacılık, enerji, kamu, üretim, güvenlik, turizm gibi birçok sektörde geniş uygulama alanlarında aktif ve yaygın olarak kullanılmaktadır.

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.

Rfid Kart - Rfid Anahtarlık - Rfid Okuyucu
rfid devre Şeması
Rfid Bağlantı Tablosu

Arduino Uno Bağlantıları aşağıdaki gibi olmalıdır.

  • MOSI: Pin 11
  • MISO: Pin 12
  • SCK: Pin 13
  • SS/SDA: Pin 10
  • RST: Pin 9

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.

]]>
1568
Bluetooth ile Led Yak https://kodlabafra.org/2019/05/04/bluetooth-ile-led-yak/?utm_source=rss&utm_medium=rss&utm_campaign=bluetooth-ile-led-yak Sat, 04 May 2019 06:48:05 +0000 https://kodlabafra.org/?p=1540 Bu uygulamamızda en temel şekilde arduino cihazımıza bluetooth bağlantısı kuracağız. Bağlantı kurulduktan sonra bluetooth üzerinden arduino ile]]> Bu uygulamamızda en temel şekilde arduino cihazımıza bluetooth bağlantısı kuracağız. Bağlantı kurulduktan sonra bluetooth üzerinden arduino ile haberleşme yapacağız. Bunun için başlangıç komutlarının iyi anlaşılabilmesi için sadece tek bir led yakıp söndüreceğiz.

Malzemeler:

1-) Arduino uno r3 kartı

2-) Hc-06 (bluetooth sensörü)

3-) Led

Devre Şemamız

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.

adsc4b1z4.png

Ö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.

]]>
1540
Air Hockey Oyunu https://kodlabafra.org/2019/05/02/air-hockey-oyunu/?utm_source=rss&utm_medium=rss&utm_campaign=air-hockey-oyunu Thu, 02 May 2019 11:07:48 +0000 https://kodlabafra.org/?p=1229 Bu oyunumuzda iki kişilik bir futbol oyunu yapacağız. Oyunumuzda iki oyuncu klavye üzerinden tuşlara basarak çubukları hareket ettireceğiz. ve topu]]> Bu oyunumuzda iki kişilik bir futbol oyunu yapacağız. Oyunumuzda iki oyuncu klavye üzerinden tuşlara basarak çubukları hareket ettireceğiz. ve topu karşı kaleye gol atmaya çalışacağız. Oyunumuz herhangi bir oyuncunun 5 gol atması durumunda oyunumuz bitecek.

Oyun Sahnemiz ve Kuklalar

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.

Kuklalar

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.

Top Kuklası Kodlar

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. 🙂

]]>
1229
Arduino Lcd Komutları https://kodlabafra.org/2019/04/27/arduino-lcd-komutlari/?utm_source=rss&utm_medium=rss&utm_campaign=arduino-lcd-komutlari Sat, 27 Apr 2019 10:36:51 +0000 https://kodlabafra.org/?p=1300 Arduino ile Lcd kullanımını öğreneceğiz. Bunun için klasik 16×2 LCD ekran kullanacağız. LCD ekranımızın parlaklığını ayarlamak için P]]> Arduino ile Lcd kullanımını öğreneceğiz. Bunun için klasik 16×2 LCD ekran kullanacağız. LCD ekranımızın parlaklığını ayarlamak için Potansiyometre bağlayacağız.

LCD Ekran Devresi

Arduino ide mizde olan LiquidCrystal kütüphanemizi ekliyoruz.

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() {

}
Lcd Ekran Görüntüsü

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() {

}
LCD 2. Satırda yazıyor
lcd.Cursor( )

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);

}
LCD Cursor

Ş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,
}

}
]]>
1300
BLUETOOTH İsim ve Şifre Değiştirme https://kodlabafra.org/2019/04/27/bluetooth-haberlesmesi-hc-06-temel/?utm_source=rss&utm_medium=rss&utm_campaign=bluetooth-haberlesmesi-hc-06-temel Sat, 27 Apr 2019 06:11:37 +0000 https://kodlabafra.org/?p=1280 Arduino ile Bluetooth haberleşmesi robot projelerinde , otomasyon projelerinde ve daha çok yakın mesafe de kontrol yapılacak uygulamalarda kullanılır]]> Arduino ile Bluetooth haberleşmesi robot projelerinde , otomasyon projelerinde ve daha çok yakın mesafe de kontrol yapılacak uygulamalarda kullanılır.Genellikle HC-05 ve HC-06 kullanılır.Her iki bluetooth da aynı görevi görse de aralarındaki fark; HC-05 hem master hem slave olarak kullanılabilirken HC-06 yanlızca slave modda kullanılabilir. Yani HC-05 kullanırsanız isterseniz siz cihaza bağlanırsınız istersenizde HC-05 direk olarak sizin cihazınıza bağlanır yani bağlantı otomatik kurulabillir. HC-06 da ise yanlızca siz bağlanabilirsiniz.

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ı

  • VCC -> 3.3V veya 5V
  • GND -> GND
  • TXD -> RXD
  • RXD -> TXD

Ö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:

serial_monitor_2

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:

  • İsim: HC-06
  • Şifre: 1234
  • Baud rate: 9600

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:

serial_monitor_1

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:

  • İsim: HC-05
  • Şifre: 1234
  • Baud rate: 9600

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.

bt_mac

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.
  }
}

]]>
1280
Flappy Bird https://kodlabafra.org/2019/04/20/flappy-bird/?utm_source=rss&utm_medium=rss&utm_campaign=flappy-bird Sat, 20 Apr 2019 12:01:26 +0000 https://kodlabafra.org/?p=1261 Bu oyunumuzda eski zamanların çok popüler bir oyunu olan flappy bird isimli oyunumuzu yapacağız. Oyunumuzda kahramanımız isminden de belli olduğu ]]> Bu oyunumuzda eski zamanların çok popüler bir oyunu olan flappy bird isimli oyunumuzu yapacağız. Oyunumuzda kahramanımız isminden de belli olduğu üzere bir kuş. Kuşumuz rastgele olarak gelen boruların arasından geçmeye çalışacak. Şimdi kısaca oyunumuzu anlatmaya çalışalım.

Oyun Ekranımız

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.

İşaretli kısım arka plan silici aracı

İ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.

El aracı ile borularımızın boylarını ve yerlerini ayarlıyoruz.

İ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.

Boru Kuklası Kodları

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ş Kuklası Kodlar

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.

flappy bird gif ile ilgili görsel sonucu
Kuş Gif
flappy bird boru png ile ilgili görsel sonucu
Boru Png
]]>
1261
Tuğla Kırmaca Oyunu https://kodlabafra.org/2019/04/20/tugla-kirmaca-oyunu/?utm_source=rss&utm_medium=rss&utm_campaign=tugla-kirmaca-oyunu Sat, 20 Apr 2019 08:50:11 +0000 https://kodlabafra.org/?p=1232 Oyunumuzda yukarıdan aşağı düşen topu çubuk yardımıyla yakalamaya ve çubuğa çarptırarak yukarıdaki  tuğlaları kırmaya çalışacağı]]> Oyunumuzda yukarıdan aşağı düşen topu çubuk yardımıyla yakalamaya ve çubuğa çarptırarak yukarıdaki  tuğlaları kırmaya çalışacağız. Her tuğla kırdığımızda puan alacağız. Eğer yukarıdan düşen topu yakalayamazsak yere çarparsa oyunumuz bitecek. Aynı zamanda tüm tuğlalar kırıldığında da oyunumuz bitecek. Şimdi nasıl yapıldığını aşağıdan adım adım takip edelim.

Oyun Sahnemiz ve Kuklalar

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ıza sahne üzerinde başlangıç noktası ayarlıyoruz.
İkizi yaratılmış tuğlalar.
Tuğla Kodu

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.

Tuğla Kodları

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.

4 Sıra olarak kopyalanan tuğla kodları

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.

Paddle Kodları (Çubuk)

Yukarıdaki paddle kodlarımız klavye üzerinden sağ ve sol tuşa basarak paddlemızın hareket etmesini sağlıyoruz.

Top Kodları
  • Topumuza önce sahnede tuğlaların altından başlaması için belirli noktadan başlatmak için “x:-8 y:23 noktasına git” kodumuzu kullandık.
  • Topun aşağıya rastgele bir açı ile gitmesini sağlayacak kodumuzu yazdık. (120 ile 230 arasında sayı tut ve yönüne dön)
  • Sürekli tekrarla kodunun içinde topumuzun sürekli olarak 5 adım giderek hareket etmesini sağlıyoruz. Kenara gelirse sekmesi için, kenara geldiysen sek kodunu kullanıyoruz.
  • Sürekli tekrarla içinde iki tane Eğer koşulumuz var. Bunlar topumuzun çubuğa çarpması ve tuğlaya çarpması durumunda ters açı ile geri sekmesi için kullanıyoruz. Bunun için 180 dereceden topun geliş açısını çıkartmamız yeterli olacaktır.
  • Oyunumuz bitmesi için iki olayımız var. Birincisi oyun esnasında topumuz zemine değerse bunu ayırt etmek için kırmızıya boyamıştık. İkincisi ise tüm tuğlaların Kırılması durumunda oyunumuz bitiyor. Her Tuğla için 1 puan ayarladık.
  • Oyunun bitmesi iki koşuldan hangisi gerçekleşirse Hepsini Durdur kodunu kullandık. Sizler bunun yerine haber salma kodu ile Game Over ekranı yapabilirsiniz.
Tuğla Kodunun Tamamı
  • Bu oyunda size en zor ve karmaşık kodlarımız tuğla kodları gelmiş olabilir. Fakat mantığını anlarsanız karmaşık olduğunu göreceksiniz.
  • Asıl tuğla kodumuzda ve ikizlerini yarattığımız kodlarımızda top tuğlalara çarparsa Puan değişkenin 1 puan artmasını sağlıyoruz.
  • Aynı zamanda top asıl tuğlamıza çarptığında gizlenecek. Tabi bu durumda oyun yeniden başladığında görünmesi için başta görün kodu koyuyoruz.
  • İkizler içinse ikiz tuğlaya çarptığında bu ikizi sil kodunu koyuyoruz.
Oyunun Son Görüntüsü
]]>
1232