Kotlin ve Firebase ile Wifi Tabanlı Robot Kontrolü

Selamlar herkese! Ben Murat, İzmir Ekonomi Üniversitesinde Bilgisayar Programlama birinci sınıf öğrencisiyim bugün sizinle birlikte MobilerDev ekibinin düzenlediği Robowars.dev için TankDrive sürüş metodu ile bir robot kontrol örneği oluşturacağız işin kod kısmı çok kısa, buradaki asıl olay sürüş tipini belirlemek.





İşe öncelikle robotumuzu tanıyarak başlıyoruz, nasıl bir robot? Nasıl bir sürüş sistemine sahip olacak? Gibi soruları kendinize yönetmeniz gerekiyor, bizim şu an kullandığımız sürüş sistemin adı TankDrive; bu sürüş tarzında sadece iki şey kontrol edilir, sol ve sağ motorlar bu sol ve sağ motorların kontrolü için birden fazla seçenek bulunabilir tabii ki ama benim genel olarak kullandığım iki tip mevcut; biri yazılımsal olanı diğeri daha mekaniksel olanı.


Mekaniksel olan sistem bu tür küçük robotlarda işlevsel olmayabilir ama yine de ufaktan değinelim, elimizde sağ ve sol tarafta üçer tane tekerlek olduğunu düşünelim. Bu üçer tane tekerlek ise birbirine kayışlar ile bağlılar.


Belirtmekte fayda var bu bizim robotumuz için değil tabii ki :) Bu bir FRC şasisi AndyMark üzerinden AM14U4 model numarasını arayarak bulabiliriz, görsel ona aittir.


TankDrive'da görüldüğü gibi tekerlekler bağımsız olarak kontrol edilmez, sürücü tarafından antremanlar yapılması gerekir, kullanımı zordur ama sürüş kabiliyeti ve imkan açısından Arcade Drive dediğimiz sürüş stiline oranla çok daha avantajlı bir konumdadır. Görsel üzerinden de anlaşılabileceği gibi burada kodunu yazmamız gereken sadece iki ana motor grubu bulunuyor. Bu motor gruplarının kodları mobil tarafta olmadığı için kodunu burada yazmıyoruz maalesef.


Firebase


Gelelim Firebase uygulamamızın oluşturulmasına, Firebase’i uzun uzun açıklama gereği duymuyorum. Kısaca o bir serverless sistem, size sunucu kurmadan bir veritabanına erişim imkanı sağlıyor. Şimdi proje oluşturma kısmına girişelim.


Bunun için önce https://console.firebase.google.com adresine gitmemiz gerekiyor. Bizi aşağıdaki gibi bir arayüz bekliyor olacak.



Öncelikle “Explore a demo project” kısmına basıyoruz. Yeni bir proje oluşturmak için “Add project” butonuna basıyoruz. Gerekli bilgileri doldurduktan sonra karşınıza çıkacak ekrandan, build sekmesinin altında Realtime Database’e giriş yapıyoruz.