Arduino ve Android Telefon ile Bluetooth Kontrollü Araba Yapımı


Bir önceki yazımda yazmış olduğum MIT: App Inventor ile geliştirdiğim bir Android uygulaması ile Arduino kullanarak hazırlamış olduğum arabamı kontrol etmeyi başardım. Yazının içerisinde arabanın çalışma mantığından ve yazılım kısmından elimden geldiğince ayrıntılı olarak bahsetmeye çalışacağım. Arabamız, ileri, geri, sağ, sol, durma, sağ sinyal, sol sinyal, dörtlü yakma ve korna özelliklerine sahip. Bu özelliklerin hepsini bluetooth ile telefonumuz üzerinden kontrol edebiliyoruz.

Daha önceki yazımda sadece entegre olarak elinizde bulunan L288N sürücüsünü nasıl kullanacağınızı anlatmıştım.

2 tekeri Eskişehir’de unuttuğum için şuan fotoğraf ve video ekleyemiyorum. Ama en kısa sürede ekleyeceğim.

Kullandığım komponentler:

  • Arduino Uno
  • HC-06 Bluetooth modülü
  • L298N Motor Sürücüsü
  • 4 adet DC Motor
  • Harici Güç Kaynağı (Pil)
  • Led’ler
  • Jumper kablolar

İlk olarak aracımızın devre şeması ile başlayalım. Benim oluşturduğum aracın devre şeması tamamen aşağıdaki gibidir. Eğer daha çok özellik ekleyerek geliştirmek isterseniz Arduino Mega 2560‘da kullanabilirsiniz. Devre şeması biraz karışık gelebilir, ilk defa Fritzing üzerinden devre çizdim. Bunun hakkındaki sorularınızı yorum olarak belirtebilirsiniz.

Arduino-Android-Telefon-ile-Bluetooth-Kontrollü-Araba-Devre-Çizimi

Arduino Kodumuzu İnceleyelim

Devremizi sıkıntısız şekilde kurduysak aşağıdaki arduino içerisine atarak küçük bir deneme yapalım. Eğer benim gibi motor sürücü kartı değil de motor sürücü modülü kullanırsanız devreniz biraz karışık görünebilir. O yüzden çalışma sırasında küçük sorunlar ortaya çıkabilir, bu deneme kodunu o yüzden çalıştırıp denemeniz sorunlar çözmek için en kolay yoldur. Kodları burada paylaşınca yazılımsal bir sıkıntı ile karşılaştığım için Github Linkleri üzerinden erişim sağlayabilirsiniz.

Github: Araba Motor Sürücü Deneme Kodu

Denedik ve çalışıyor ise artık arabamızı araba yapan kodları içerisine atabiliriz. Benim arabam için kullandığım Pin yapısı devre şemasındakinin aynısıdır, o yüzden kodlar benim devre şemama göre yazılmıştır. Eğer siz pinlerde değişiklik yaparsanız kodların en üst kısmında yer alan kısımdan düzeltebilirsiniz.

Github: Araba Kontrol Dosyası

Son olarak MIT: App Inventor ile oluşturduğum Android uygulamasını telefona kurmanız gerekmektedir. Bu yazıda uygulamanın nasıl yazıldığı hakkında ayrıntılı bilgi vermeyeceğim. Dosyalar içerisinde uygulamanın App Inventor dosyasını da paylaşacağım, incelemek isteyenler o dosyayı import ederek inceleyebilirler. Uygulama hakkındaki her türlü soru ve geliştirme önerilerinizi bana iletebilirsiniz.

Arduino-Android-Telefon-ile-Bluetooth-Kontrollü-Araba-Telefon-Uygulaması

Uygulamanın tüm dosyalarına ulaşmak için aşağıdaki linki kullanabilirsiniz.

Uygulamaya gelen geri dönüşler ile birlikte güncellemeler gelecektir. Lütfen hatalı veya daha iyi olmasını istediniz kısımları yorum olarak belirtiniz.

Github: Arduino ve Android telefon ile bluetooth kontrollü araba yapımı

Gelecek Güncellemeler:

  • Uygulama ile Motorların Hız Kontrolü Yapılacak.
  • Kullandığımız kod daha tutarlı hale getirilecek. Kod içerisinde yapılandırmalar olacak.

MIT: App Inventor

Artık elektroniğe biraz daha yönelmemden dolayı bazı şeylere ihtiyacım oldu. Bunlar arasında – özellikle kablosuz haberleşme için – mobil uygulamalar da yer alıyordu. Şuan sıfırdan bir Android uygulama yazma için bilgim olmadığı için hazır olarak uygulama oluşturmama yardımcı olacak araçlar arayışına girdim. MIT: App Inventor ile karşılaştım.

Önce, App Inventor hakkında internetteki yorumları okuyunca biraz şaşırdım ve çok basit olduğunu düşündüm. Çünkü o yorumlar arasında, “Çocuklar bile yapabilir. Sürükle-bırak ile istediğiniz uygulamayı yazabiliyorsunuz. Hiç kod bilginiz olmasına gerek yok.” gibi yorumlar görmüştüm. Bu aslında bende hem merak uyandırdı hem de uygulamadan uzaklaştırdı ama merakım daha ağır bastı ve araştırıp öğrenmeye karar verdim.

Yorumlarda bahsedildiği gibi sürükle bırak yöntemiyle uygulamanızı tasarlayıp programlıyorsunuz. Ama öyle hiç programlama bilmeden de yapılabilecek bir şey değil. En basitinden kod bloklarının ne işe yaradığını bilmeniz gerekiyor. Ama eğer programalama mantığına hakimseniz gerçekten de tek bir kod yazmadan sadece sürükle bırak ile uygulamanızı oluşturuyorsunuz.

Ben şuan için başlangıç seviyesinde sayılırım, kendimi geliştiriyorum. Çok yakın zamanda oluşturacağım uygulama ile telefonum ile yaptığımız arabayı kontrol etmeyi planlıyorum. Uygulamayı yaptıktan sonra buradan paylaşacağım.

Şuan Bluetooth ile ilk kontrolümü gerçekleştirdim. Uygulamaya aşağıdaki linkten ulaşabilirsiniz. Uygulamayı HC-06 modülü ile birlikte kullanıyorum. Uygulama içerisinden modüle bağlanıp led yakıp söndürüyorsunuz. Oldukça basit, başlangıç seviyesi bir uygulama ama oldukça kullanışlı olduğunu söyleyebilirim. Bunu yakın zaman içerisinde geliştireceğim.

App Inventor – Bluetooth ile Led Yakma

Soft Grid CSS Framework

Front-end projelerinde belirli standartlar kullanılarak projeyi geliştirdiğimiz zaman hem yapısal olarak oturmuş bir şekil ortaya çıkıyor hem de tekrardan düzenlememiz gerektiğinde kolay bir şekilde gerekeni yapabiliyoruz.

Tasarımın yapısını oluştururken belirli bir ızgaraya uygun şekilde yaparsak, hem sabit ölçülere göre işlem yapmış oluruz hem de gözü yormadan ve görünümü göze hoş gelecek şekilde kodlamalar yapmış oluruz.

Ben bu konuda, bu güne kadar çeşitli sistemleri denedim. Yakın zaman önce ise severek takip ettiğim Baran Somaklı tarafından hazırlanmış olan oldukça sade bir Grid Sistem Framework‘ü ile karşılaştım. Birkaç projemde kullandıktan sonra bana çok pratik geldiğini farkettim ve sizinle paylaşmak istedim. Düşük boyuta sahip olduğu için temayı şişirmiyor, 2 küçük düzenleme ile hemen kullanmaya başlayabiliyorsunuz.

Artık, yazın da gelmesiyle birlikte kullandığım, gördüğüm framework‘leri, eklentileri sizlere sunmaya çalışacağım. Grid sistemini, aşağıdaki linke tıklayarak Github üzerinden inceleyebilirsiniz.

Baran Somaklı – Soft Grid CSS Framework

Academic Writing – 3 Boyutlu Yazıcı Nedir?

Bu dönem aldığım derslerden birisi olan Academic Writing için konu seçme aşamasında iken, ben pek fazla zorlanmamak adına ve biraz da bildiğim ve ilgimi çeken bir konu olması açısından 3 boyutlu yazıcıları tercih ettim.

Yazıyı yazarken, derslerde anlatılan adımları kullanmaya dikkat ettim. İnternet üzerinde daha önce yazılmış olan onlarca makaleyi okuyarak kendime küçük taslaklar hazırlayarak ilerledim. Yazım aşamasında çok zorlandım, çünkü konu olarak çok kapsamlı bir konuydu ve nereye çekseniz oraya gidebilecek bir konu yoğunluğuna sahipti. Sayfa sınırlaması olduğu için yazdığım çoğu şeyi tekrar silmek zorunda kaldım ve kısalta kısalta 6 sayfa haline getirebildim. Kısaltmam gerektiği için içerik olarak çok eksik kaldı. Yazmam gerekenler arasından en önemli olarak gördüğüm şeyleri yazmaya çalıştım. Oldukça amatör bir yazı olduğunu da söylemek istiyorum.

3 boyutlu yazıcılar hakkında akademik yazı araştırması içinde olanlar belki faydalanır diyerekten bloguma koyma kararı aldım. İsteyen arkadaşlar bu linke tıklayarak Google Drive üzerinden indirebilir.

Telefonsuz Geçen 26 Gün

Artık hayatı mobil olarak takip etmeye alışmışken HTC One‘ımda ufak bir telefon sorunu yaşadım. Aslında sorunum şarjının doğru gösterilmemesiydi. %40’da kapanıyordu telefon. Bunun için garantiye göndermek istiyordum. Garanti 8 Mayıs’ta bitecekti ve ben 7 Mayıs (Cumartesi) günü Turkcell‘e giderek garanti işlemlerini yaptırdım. Bana işleme girmeme ihtimalinin olduğunu söylediler, sebebi de cumartesi günü verilen kargo servisin eline pazartesi günü ulaşacağı için garanti kapsamı dışında olarak kabul edilebilir dediler. Ben de bu riski göze alarak gönderdim.

Ben bu süre içerisinde hattımı 1100 benzeri bir telefona takarak kullanmaya devam ettim. Artık tüm hesaplarımız senkronize olduğu için SIM kart üzerinde de hiç numara tutmuyorum, bu yüzden hiçbir numarayı da telefondan göremedim, birisini aramak istediğim zaman bilgisayar üzerinden Google Contacts‘e girip oradan numarayı bulup arıyordum. Garantiye gönderdikten 3 gün sonra telefonuma “Telefonunuz garanti kapsamı dışıdır, sorunun çözülmesi için gereken ücret 172 TL’dir.” mesajı geldi. Telefonu elimden çıkartmaya çalışsam, zaten piyasa değeri 700 TL civarı. Bu yüzden sadece şarj sorunu için de o kadar para vermedim ve geri göndermelerini istedim. Telefon geldikten sonra, artık garanti kapsamı dışı da olduğu için içerisine ROM atmaya karar verdim. Her işlemi doğru yaparken bir yerde yanlış bir tuşa basmamla içerisindeki Android işletim sisteminin silinmesi bir oldu. Evet, Android silindi, içindeki ROM değil Android. Sistem dosyalarında Android’e ait hiçbir ibare göremedim. Uzun bir süre uğraştıktan sonra artık işi bilen birilerine bırakmaya karar verdim.

Arkadaşımın abisi Ankara’da telefon işleri yapıyor, rica ettim ve ona ilettik telefonu. 3-4 gün sonra, sağolsun oldukça düşük bir ücrete sorunumu çözdü ve telefon elime ulaştı. Ama telefonu gönderirken SIM kart yuvasını unutmuş ve 4-5 gündür sadece sosyal medya için kullanabiliyorum telefonumu. Ama elimde olması bile güzel bir şey.

Telefonumun sağlam bir şekilde kullanabilmem için geçen 26 günde sosyal medyadan oldukça uzak kaldım. Özellikle Instagram ve Snapchat‘ten. Instagram’ı bilgisayardan takip etmek – bence – olduça zor ve kullanışsız, o yüzden 1-2 gün takip ettikten sonra bıraktım takip etmeyi. Twitter ve Facebook‘u da bilgisayar üzerinden takip edebildiğim kadar takip edebildim. Bu süre zarfında maillerimi aksattım. Çünkü daha öncesinde mailler direk telefonuma geliyordu ve direk görüp, yanıtlıyordum. Bilgisayarda biraz bocaladım. Ama şuan telefonum elimde ve 1-2 gün içerisinde de SIM kart yuvası elimde olacak ve artık tek telefon kullanmaya başlayacağım.

Günümüzde sosyal medyanın o kadar içine girmişiz ki, telefonsuz günlerimde hayatımda boşluklar hissettim. Ama bu ilgilendiğim şeylere biraz daha odaklanmamı sağladı.

Son olarak, siz siz olun şu dönemde telefonunuzu bozmadan önce 2 kez düşünün.