Pinoo ile Gol Sayacı
Projenin Amacı: Pinoo kontrol kartı, ultrasonik mesafe sensörü, buzzer modülü ve lcd ekran modülü kullanarak kaleye giren her topu sayarak lcd ekrana yansıtıp buzzerdan ses çıkartan bir sistem yapmak.
Süre: 2 ders
Yaş Grubu: 7 yaş ve üzeri
Pinoo Seti: Maker set ve tam set.
Kazanımları:
- Pinoo kontrol kartını kodlamayı öğrenir.
- Ultrasonik mesafe sensörü kullanmayı öğrenir.
- Lcd ekran kullanmayı öğrenir.
- Buzzer kullanmayı öğrenir.
- Algoritma kurma becerisi gelişir.
- Kodlama becerisi gelişir.
Kullanılması Gereken Malzemeler: Mblock 3 programı, pinoo kontrol kartı, ultrasonik mesafe sensörü, buzzer modülü, lcd ekran modülü, bağlantı kabloları.
Tasarım için Gereken Malzemeler: Beyaz karton, yeşil aynalı karton, tahta çubuk, beyaz elektrik bandı, maket bıçağı, silikon tabancası ve silikon.
Proje Yapılışı:
Projemiz için ilk önce tahta çubuklarımızı alıyoruz.
Tahta çubuklarımızı kale görünümü vermek için silikon tabancası yardımı ile birleştiriyoruz.
Kalemizin arka tarafı için beyaz kartonumuzu resimdeki gibi kesiyoruz.(Karton ölçüleri karton ölçüleri ile aynı olmalı.)
Kalenin arka tarafı için yaptığımız beyaz kartonu kale için yaptığımız tahta çubuklarımızın arka tarafına yapıştırıyoruz.
Kalemizi yeşil aynalı karton zeminine silikon tabancası yardımı ile yapıştırıyoruz.
Ardından gol çizgimizi beyaz bant ile belirliyoruz. Ceza sahası çizgileri için ise beyaz karton ile tamamlıyoruz.
Lcd ekran modülümüzü, mesafe sensörümüzü ve buzzer modülümüzü resimdeki gibi yerleştiriyoruz. Mesafe sensörümüzü topun geçtiğini görebilmek için zemine bakması için ayarlamamızı yapıyoruz. Bu şekilde tasarım kısmımızı bitirmiş oluyoruz.
Pinoo uzantısı ekleme:
Kodlama kısmı:
İlk önce lcd ekran modülümüzün çalışıp çalışmadığını kontrol etmek için ‘Pinoo Program’ kodu altında lcd ekran tanıtma kodumuzu yerleştiriyoruz. Ardından ‘Pinoo LCD Yazdır’ kodumuzu da yerleştirip arduinoya yükle diyoruz. Yükleme bittikten sonra lcd ekranımızda ‘Merhaba Dünya!’ yazısını görüyoruz. Bu şekilde lcd ekranımızın çalışma durumunu kontrol etmiş oluyoruz.
Buzzer modülümüzü de yeşil bayrağa tıklanınca kodu altında ses çıkar kodu ile çalıştırarak kontrol ediyoruz.
İlk önce ultrasonik mesafe sensörümüzün çalışıp çalışmadığını kontrol etmek için panda kuklamıza ‘Tıklanınca’ kodu altında ‘Merhaba de’ kodumuz ile mesafe sensörünü çalışma durumunu kontrol ediyoruz.
Gol sayılarımızı saymak için Veri&Blok kısmından değişken oluşturuyoruz ve değişkenimizin adına ‘say’ diyoruz.
Lcd ekranımız ‘Yeşil Bayrak’ olayı altında çalıştıramadığımız için ‘Pinoo Program’ olayı altında say değişkenimizi 0 değerini aktarıyoruz. Lcd ekranımızı tanıtma amacıyla hazırla kodumuzu yerleştiriyoruz. İlk başta mesafe sensörümüz 12 cm değerini okuduğunu gördük. Bu değere göre mesafe sensörümüzün değeri 10 cm den küçük olduğunda buzzer modülümüz yarım saniye boyunca çalışacak. Ardından lcd ekranımızın 1. Satır 1. Kolon da ‘Gol Sayisi : ’(Türkçe karakter olmamalı) metinini yazdırdık. Ardından yazdırdığımız metin 13 karakter olduğu için say değişkenimizi de 1. Satırdan 14. Kolondan yazdırdık ve say değişkenimizi 1 saniye aralıkla artırdık.
“Pinoo Program” komutu üzerine sağ tıklıyoruz ve açılan pencerede “Arduino’ya Yükle” seçeneğini seçiyoruz.
Açılan sayfada kırmızı ile seçili olan “Arduino’ya Yükle” butonuna tıklıyoruz.
Kodlarımız Pinoo kontrol kartımıza yükleniyor.
“Yükleme Bitti” yazısı geldikten sonra “Kapat” butonuna tıklıyoruz. Yükleme bittikten sonra pil yuvası takılır ve proje çalıştırılır.
Projenin Çalışma Hali:
Gol değerlerimiz lcd ekranımıza yansıttık ve projemizi tamamlamış olduk.
ARDUINO IDE KODLARI:
// mesafe sensörünün pinlerini tanımladık int echoPin = 8; int trigPin = 9; // mesafe ve sure adlı değişkenleri tanımladık long mesafe, sure; // lcd ekran kütüphaneleri eklendı #include <Wire.h> #include <LiquidCrystal_I2C.h> LiquidCrystal_I2C lcd(0x27, 16, 2); // ekran tipi yazıldı int buzzer = 2; // buzzerı 2.pine atadık int sayac = 0; // sayac adında değiken olusturduk void setup() { Serial.begin(9600); // Serial monitoru baslattık // Mesafe sensorunun pinlerini giriş çıkış olarak tanımladık pinMode(echoPin, INPUT); pinMode(trigPin, OUTPUT); lcd.init(); // ekran başlatıldı lcd.backlight(); // ekranın ışıkları yandı pinMode(buzzer, OUTPUT); // buzzer çıkış pinidir } void loop() { // mesafe sensorünü başlattık digitalWrite(trigPin, LOW); delayMicroseconds(5); digitalWrite(trigPin, HIGH); delayMicroseconds(10); digitalWrite(trigPin, LOW); sure = pulseIn(echoPin, HIGH); mesafe = sure / 29.1 / 2; // mesafeyi ölçtü if (mesafe < 10) { // eger mesafe 10dan küçükse digitalWrite(buzzer, HIGH); delay(500); digitalWrite(buzzer, LOW); delay(500); sayac = sayac + 1; // sayıcı 1 arttır // lcd ekrana gol sayısını yazar lcd.clear(); lcd.print("Gol Sayisi = "); lcd.print(sayac); lcd.setCursor(0, 14); delay(1000); } }