Merhaba arkadaşlar. Bu yazımızda Android işletim sistemli akıllı cihazlar tarafından kontrol edilebilen Robot Kol uygulaması yapacağız. Projeyi internette bulup, tasarımını çok beğendik ve yapmaya karar verdik.
Projemiz Mobil Uygulama, Arduino ve 3 boyutlu yazıcıdan basılmış mekanik olmak üzere 3 kısımdan oluşmaktadır.
Gelin önce malzemelere bi’ göz atalım.
Projeye ait malzeme listesi
Projenin montajına buradan erişebilirsiniz.
Projenin 3D baskı dosyalarına buradan erişebilirsiniz.
App Inventor Nedir?
MIT tarafından geliştirilen ve bloklar ile “sürükle-bırak” mantığında programlanabilen Android uygulama geliştirme programıdır. Kullanmanız için Android programlamaya dair hiçbir bilginiz olmasına gerek yoktur
Projeden kısaca bahsetmek gerekirse önce MIT App Inventor 2 isimli bir uygulama geliştirme programında arayüz oluşturuyoruz. Oluşturduğumuz uygulama yoluyla Android cihazımızı Arduino’ya bağladığımız Bluetooth modülü ile eşleştiriyoruz. Bu eşleşme sayesinde Robot Kolunu Android cihaz üzerinden kontrol edebiliyoruz.
Öyleyse başlayalım !
Önce MIT App Inventor 2 programından bir uygulama oluşturalım.
Tasarım kısmında Arduino’ya göndereceğimiz Bluetooth sinyallerini “slider”lar ile kontrol edebiliyoruz. Arduino programımızdaki sinyal değerlerinin ne anlama geldiğini aşağıdaki şekilde inceleyebilirsiniz.
Uygulamanın tasarımı tamamen size kalmış. Bizim tasarımımız örnekteki gibidir :
Örnek Apk dosyasına buradan ulaşabilirsiniz.
Bağlantıları buradan da takip edebilirsiniz :
Arduino, 12V DC Adaptör ile beslenmektedir.
Shield-Servo Bağlantı Örneği
Arduino Programı
Öncelikle programın çalışma mantığından bahsetmek istiyorum. Programın hemen başında Servo motorlarımızı, Bluetooth modülümüzü ve pinlerini tanımlıyoruz. Void setup() bölümünde ayrıca seri iletişimi etkinleştirmek için serial.begin(9600); , bluetooth iletişim için bluetooth.begin(9600); fonksiyonlarını yazıyoruz. Void loop() kısmı programımızın ana fonksiyonudur. Eğer 2 bit veya üzeri bluetooth sinyali gelirse ana fonksiyonun çalışmasını istiyoruz. Eğer bu şart gerçekleşiyor ise fonksiyonumuz servo motorumuzun pozisyon bilgisini bluetooth sinyalleri ile okumaya başlıyor. ( unsigned int servopos = bluetooth.read(); unsigned int servopos1 = bluetooth.read(); unsigned int realservo = (servopos1 *256) + servopos; )
Android cihazımızdan gönderdiğimiz Bluetooth sinyalleri 1000-1135 arasında ise birinci servomuzu 0-135 derece arasında kontrol edebiliyoruz. (Tut/Bırak)
Bluetooth sinyalleri 2000-2090 arasında ise ikinci servomuzu 0-90 derece arasında kontrol edebiliyoruz. (Sağ/Sol)
B sinyalleri 3000-3180 arasında ise üçüncü servomuzu 0-180 derece arasında kontrol edebiliyoruz. (Yukarı/Aşağı)
Bluetooth sinyalleri 4000-4120 arasında ise dördüncü servomuzu 0-150 derece arasında kontrol edebiliyoruz. (İleri/Geri)
Not: Derece değerleri robotun mekaniğine göre değişebilir. Robotumuz 3d baskı olduğu için montajda ve robotun hareketinde çeşitli problemler meydana gelebilir. Robotun yazılımı, bu problemlere göre güncellenebilir.
Kodlar:
Ve bu da projemizin son hali
14.11.2018