Monday, January 13, 2020

Robotik Ders 2

Bu ders için gerekli parçalar:
  1. Üzerine Arduino Nano monteli dMoto kartı
  2. Mini USB kablo
Siren kodunu açıkla:
  • Kod C++ programlama dilinde yazıldı. C++ elektronikte yaygın olarak kullanılır.
  • #define: Yanındaki isim ve rakam çiftini rakamı isimle çağırabilmek için kullanmamızı sağlar. Örneğin #define NOTE_C4  262 ile kodda NOTE_C4 yazarak 262 yazmakla aynı sonucu elde ederiz. Rakam yerine isimleri daha kolay aklımızda tutabildiğimiz için yararlıdır. Kodda 262 gördüğümüzde bunun C4 notası olduğunu bilemeyebilir, şarkıyı koda bakarak anlayamayız.
  • Fonksiyonlar (setup(), play(), loop())
    • Blockly Games, Müzik, İşlevler'de yaptığımız şey fonksiyon tanımlamaktı.
    • setup(): Karta güç verildiğinde bir kez çalışır. Bir kez yapılması yeterli ayarlamalar için kullanılır.
      • pinMode()
        • buzzerPin, LED_BUILTIN (13): Arduino Nano'nun hangi numaralı bacaklarına buzzer (basit hoparlör) ve LED bağlı olduğunu gösterir
        • OUTPUT: Nano'nun bu bacaklara elektrik vereceğini ifade eder.
    • loop(): Sürekli çalışır, kartın elektriğini kesene kadar tekrar tekrar (saniyede 117bin kezi bulabilir) çağrılır.
      • digitalWrite(): Nano'nun hangi bacağında ne işlem yapılacağını belirler
        • Pin numarası = LED_BUILTIN
        • HIGH: Elektrik ver = LED'i yak.
        • LOW: Elektriği kes = LED'i söndür.
      • play(): Buzzer'dan ses çıkar
        • freq_Hz, duration_ms. Frekans örneği: Elin bir aşağı yukarı hareket süresi = period, frekans = 1/period. Elimin aşağı yukarı hareket süresi 2 saniye ise frekans 0.5Hz olur.
        • Ses dalgaları havanın titreşmesi ile olur, insan 20Hz ile 20kHz arasını duyabilir. 1kHz = 1000Hz, 1kg = 1g gibi.
        • tone(): frekans, Hz, süre, 1000 milisaniye [ms] = 1 saniye. Arduino Nano 16MHz'te çalışıyor, saniyede 16 milyon işlem yapabilir.
        • delay(): Girilen ms kadar bekler.
Kodda değişiklik yaparak sonuçlarını gözle:
  • loop() içerisindeki kodu kes ve setup() içerisine yapıştır, kodu karta yükle, öncekine göre ne farkı var?
  • play()'e girdi olarak verdiğin duration_ms değerlerini azalt, hangi değerde LED'in yanıp sönmesi ayırt edilemez oluyor?
  • NOTE_C4 değerini azalt, ne zaman ses bozuluyor? Aynısını arttırarak dene.
  • digitalWrite() fonksiyonuna LED_BUILTIN yerine buzzerPin'i girdi olarak verince ne oluyor?

No comments:

Post a Comment