"Enter"a basıp içeriğe geçin

Kategori: Yazılım

Çizgi İzleyen Robotlar için Sensör Fonksiyonu

Robot yaparken mekaniğiniz ve elektroniğiniz çok iyi olabilir, hatta belki yazılımınız da iyidir ancak fonksiyonlarınız ve algoritmalarınızda eksikler vardır. Amacınıza ulaşırsınız ancak epey vakit kaybedersiniz. Geçen hafta 12-15 Mayıs 2015 tarihleri arasında yapılan MEB Robot yarışmasında çizgi izleyen robot kategorisinde farklı üniversitelerden arkadaşlarla birlikte hakemdim.

Yapılan robotların bir çoğu bir birinin aynısıyken bir çoğu da okul bazında kopyala yapıştır robotlardı. Hepsinin ortak noktası mekanik ve elektronik bakımından tam yazılım kısmında eksiği olan robotlar olmasıydı. Türkiye’de robot çalışmaları üzerinde elektronik ve mekanik tasarımda zirveye ulaşılmış ancak yazılım konusunda çok eksiğimiz olduğu açıktı.

Yeni robotçuların yazılımda kendilerini geliştirmeleri ve fikir sahibi olmaları açısından örnek fonkisyonlar paylaşmanın faydalı olacağını düşünüp bu yazıyı yazma kararı aldım. Umarım kopyala yapıştır robotçuları değil de fikir edinip yazılım konusunda kendini geliştiren robotçular oluruz.

ULINK2 FIRMWARE ERASE

Merhaba arkadaşlar, bu yazımda güncellenmiş bir ulink2 programlayıcıyı eski programlarda kullanamadığımızdan napacağımızı göstermek amacıyla yazıyorum. Keil programının en son sürümü uvision5 ile çalışmaya başladığımızda ulink firmware’ini otomatik olarak güncelliyor. Eğer tekrar uvision4 te çalışmak istiyorsak bir türlü ulink2’i tanıtamıyoruz ve bu yüzden de tekrar uvision5’te çalışmak zorunda kalıyoruz. Aşağıdaki linkte vereceğim programları keil’in sitesinden indirdim. UL2_EraserFW.exe dosyasını çalıştırıp ulinkteki firmware silip uvision4‘ü çalıştırıyoruz. Target Options sekmesine tıklayıp Debug sekmesine geçiyoruz. ULINK Cortex Debugger‘ı seçip Settings‘e tıkladığımızda keil otomatik olarak ulink2’ye firmware yüklüyor. Kolay gelsin 🙂

Ankakit ile L3G4200D Gyro Okuma

Uzun zamandır bir şeyler yazmıyorum. İçimdeki isteksizlik ve tezimle olan husumetimi kırabildim ve tekrar sahalara döndüm diyebilirim. Ardunio ile başladığım bu serüvene pic ile devam edecekmişim gibi gözüküyor. Zırt pırt tatil olan çin yüzünden hala devrelerimi yollayamadım. Bu yüzden artık bir yerden başlama kararımı hayata geçirdim ve sonunda başladım 😀

gyro_devre

Seri Port Terminal Programı (C#)

Öncelikle kimseye sataşmadığımı ve gönderme yapmadığımı söylemekle yazıma başlamak istiyorum. Zira bir önceki yazımda özellikle birilerine atıfta bulunduğum gibi düşünceler oluştu. İnternetteki çizgi izleyen robot yapımı adındaki paylaşımların kötülüğünden ve gereksizliğinden yakınmıştım. Şimdiye kadar çizgi izleyen üzerinde bir çok çalışma yapıp ayrıntılı açıklamalarda bulunmuştum (Çizgi izleyen robot yapımı dökümanını indir) ancak ilk kez çizgi izleyen yapanların hazırladığım bu dökümanları kullanmadıkları, internette hazır kodu verilmiş şeması çizilmiş projeleri tercih ettiklerini görüp en azından adam gibi bir şey yapsın dediğim için bu tür bir yazı yazmıştım. Neyse çok uzatmayıp paylaşacağım projeyi anlatayım.

ANKAKİT Labirent Algoritması

Uzun bir süre sonra tekrar bir şeyler yazmak çok güzel. Yüksek lisans iş sınav derken paylaşımlarıma ara vermek zorunda kalmıştım. Bir çoğu düzene girdi. Bugün RoboGazi’de Cevat ile çok güzel bir projeye başladık. DörtGöz’ü ayağa kaldırmakla kalmayıp çok işlevli bir arayüz yaptık. Bir çok robotun performansını değerlendirebileceğimiz şu an için güzel görünümlü olmasa da işlevli bir  arayüz oldu.

Bir labirentte ilerlerken 4 yönümüz vardır. İleri – Geri – Sağa – Sola, ancak robot ileri hareketini her zaman yaparken sağa sola ve geri hareketini sadece kesişim noktalarında kullanmakta.  Yapılacak olan hareketler için bir karar mekanizması ve bir kaç kabullenme yapmak gerekmektedir. Şekil1’de labirentlerde karar verirken maksimum 3 farklı yönden birini seçerken genelde 2 farklı yoldan biri tercih edilir.

Seri İletişim -3

Seriporttan gelen daha önceden belirlenmiş bir protokoldeki verinin pic ile alınması. Devre seri iletişim -1 yazısındaki devre ile aynıdır.

Seri iletişim ile ilgili yazdığım ilk yazımda seriport’un debug olarak kullanıldığından bahsetmiştim. Bu örnekte de görüldüğü üzere her bir adıma değerler yazılarak hatanın nerede olduğunu anlamamızı sağlıyor. Böylelikle hata teşhisi çok daha kolay olmaktadır.

Seri İletişim -1

Seri iletişime giriş niteliği taşıyan bu yazımda en basit şekliyle veri yollayacağız. 16F628A mikrodenetleyicisi ile CCS C derleyicisini kullanarak bu uygulamayı gerçekleştireceğiz. Simülasyon için ise Proteus programından yaralanacağız. ilerleyen yazılarımda c# programıyla pic’i haberleştirip verileri grafik üzerinde nasıl göstereceğimizi anlatacağım.

16F628A mikrodenetleyicisi küçük uygulamalar için çok güzel bir denetleyici. Tek sorunu üzerinde analog giriş bulunmaması. İçerisinde Timer0, Timer1 ve Timer2 olmak üzere 3 adet timer bulunmakta. Projemizde Timer0’ı açacağız ve Timer0 bizim kontrol işlemlerimizi gerçekleştirmek için 256 us’de bir kontrol işlemi yapacak.

STM32VLDISCOVERY ile Matlab-Simulink projesi oluşturmak

Hızlı ve pratik olması nedeniyle hala pic’leri kullansak da gün geçtikçe ARM tabanlı mikro denetleyicilerin kullanımı yaygınlaşmaktadır. Matlab programı kendini kanıtlamış ve akademik projelerde yoğun olarak kullanılmaktadır. Matlab kullananlar bilir Sumulink bloglardan oluşmaktadır ve çok kısa sürede akıllı denetim sistemleri (pid vb) çalıştırılabilmektedir. Bu yazımda STM32VLDISCOVERY kitinin Matlab’de nasıl kullanıldığını anlatacağım.