Arduino ile Araba Kontrol Kütüphanesi

Daha önce L298N entegresinin nasıl kullanıldığını ve Arduino ve Android cihaz kullanarak arabamızı nasıl kontrol edeceğimize dair yazılar yazmıştım. Bu yazımda ise o projeleri biraz daha geliştirip herkesin hemen ve kolaylıkla kullanabileceği bir kütüphane yazdım ve paylaşmak istiyorum.

Kütüphane kullanmamızın avantajları ve dezavantajları olabilir. Avantajlarından bazıları, fonksiyonları tek tek elimizle yazmak yerine hazır olarak ulaşılabilir bir şekilde elde ederiz. Dökümantasyonlarını inceleyerek hangi fonksiyonların ne işe yaradığını öğrenebiliriz. Dezavantajları ise kullandığımız programda sadece bir fonksiyonu kullanmak varken, kütüphaneyi dahil ederek tüm fonksiyonları dosyamıza çağırmış oluruz ve bu da fazladan boyuta yol açar.

Kullanmaya Başlayalım

Benim bu kütüphaneyi yazmamdaki amaç, sadece motor pinlerinin girilmesi ile harekete hazır bir arabamızın olmasıdır. Bunun için kütüphanemizi dahil ettikten sonra bir Araba nesnesi oluşturmamız gerekiyor. Daha önce kütüphaneler kullandıysanız nesnelerin nasıl oluşturulacağını az çok biliyorsunuzdur. Kütüphane eklendikten sonra ilk eklemeniz gereken kod aşağıdaki gibidir.

Araba calistir(3, 4, 7, 8, 5, 6);

Bu kod artık kütüphane içerisindeki kodlarımızı “calistir” nesnesi ile birlikte kullanabileceğimizi ifade eder. Nesnemizin parametreleri ise şu şekilde.

Pin 3 ---->  Sol Motorun 1. Çıkışı
Pin 4 ---->  Sol Motorun 2. Çıkışı

Pin 7 ---->  Sağ Motorun 1. Çıkışı
Pin 8 ---->  Sağ Motorun 2. Çıkışı

Pin 5 ---->  Sol Motorun Enable (Hız Kontrolü Yapacağımız) Çıkışı
Pin 6 ---->  Sağ Motorun Enable (Hız Kontrolü Yapacağımız) Çıkışı

Burada dikkat etmemiz gereken nokta motorların enable (hız kontrol) pinlerinin PWM sinyali verebilecek pinler olmasıdır. PWM sinyali veren pinler Arduino Uno‘da 3, 5, 6, 9, 10, 11. pinlerdir. Çeşitli Arduino modelleri için farklılık gösterebilir.

Fonksiyonlar ve Kullanımları

Motor tanımlamamızı yaptıktan sonra kullanabileceğimiz fonksiyonlara geçebiliriz. Kütüphane içerisinde şu an kullanıma hazır 8 fonksiyon bulunuyor. Fonksiyonların listesi ve kullanım talimatları aşağıdaki gibidir.
https://gist.github.com/f1fce472f8ba5423f2009601c01d4ed3

Örnek kullanım dosyası

Fonksiyonların kullanımları bu şekilde. İsterseniz örnek bir kodla nasıl kullanıldıklarını görelim.
https://gist.github.com/91a9aeb15da291b720be41f83e709d9e

Bağlantılarınızı yaptıktan sonra fonksiyonları test ederken Seri Monitörü kullanarak fonksiyonların çalışıp çalışmadığını kontrol edebilirsiniz. Her fonksiyon kendine özgü değerleri ekrana bastırıyor.

Her şeyi uygun yaptığınızı düşünüyorsanız ama yine de araçtan bir tepki alamıyorsanız ilk önce bağlantınızı, daha sonra da kod içerisinde nesne oluştururken belirtmiş olduğunuz pinlerin doğru şekilde olup olmadığını tekrar kontrol edin. Yine çözemezseniz, yorum bölümünden ve ya iletişim sayfamdan benimle iletişime geçebilirsiniz.

Projedeki gelişmeleri takip etmek için: Github — Arduino Araba Kontrol Kütüphanesi