top of page

İÇERİK VE AMAÇ

Projenin Amacı ve Kapsamı

Projemizin amacı, 8x8x8 Led Küp donanımını istenilen algoritmaya göre gerçek zamanlı simüle etmektir. Projemiz bu amaç doğrultusunda, uygulama ekranından girilen kullanıcı istekleriyle hem grafiksel hem de donanımsal gösterimde 8x8x8 boyutlu birkübünledlambalarının yanmasını sağlamaktadır.Ayrıca geliştirdiğimiz bu uygulama, üç adet kübe göre tasarlanmıştır. Gerçeklediğimizanimasyon ile şekiller, üç küpte de gösterilmekte ve küplerin birbiri ile etkileşim içerisinde olması sağlanmaktadır.

 

Ayrıca projemizin,Windows ve Linuxtabanlı işletim sistemlerinde çalışmasıhedeflenmiştir.

 

Projenin Genel Tanımı

8x8x8 ebatlarında 512 adet led ile küp şeklinde bir donanım hazırlanmıştır. Donanımın farklı zamanlarda ilgili ledleri yakmasıyla görsel bir şölen oluşturulmuştur. Aynı zamanda bilgisayar üzerinden gerçeklediğimiz uygulama ile donanıma ulaşılıp, seçilen animasyon hem uygulama hem donanım üzerinde görüntülenmiştir. Projenin sonucunda, oluşturduğumuz donanım diğer grupların donanımlarıyla birleştirilebilecek şekilde hazırlanmıştır.Uygulamamızın çoklu led küpler üzerinde çalıştırılması sağlanmıştır.

 

Modüller

Donanım Modülü

512 tane ledin çalıştırılabilir durumda olduğu test edilip onaylandı.Ledlerden oluşan kübün

duracağı tahta yaptırıldı.Ledler 8 li biçimde 64 tane ızgaraya ayrıldı.Yazılım modülü ile seri port ile iletişim kurularak veriler alındı ve ledlerde gösterildi. Diğer led küplerle kendi geliştirdiğimiz iletişim yöntemi kullanılarak iletişim kuruldu. Küplerin birleşmiş halde testleri yapıldı.

 

Shiftregisterlar kullanılarak, aktif olan katmandaki istenen ledler yakılır. Decadiccounter kullanılarak ise aktif olan katman değiştirilir. Her 8 değiştirmede bir decadiccounter ı resetlenir ve 1.(en alttaki) katman aktif edilir. Katmanlar 2 ms aralıklarla değiştirilerek, bütün katmanlar sürekli aktifmiş görüntüsü verilir.

Ardunio IDE’ de programlanmıştır.

 

Yazılım Modülü

Şekillerin hareketi ve istediğimiz şekli çizebileceğimiz çizim arayüzümüz için Irrlicht oyun motoru kullanıldık.

Kullanıcı ile etkileşim sağlayacak uygulamamızı içeren modüldür. Bu kısımda kullanıcı,exe’sini çalıştırdığı uygulama üzerinden 3 boyutlu editör içerisindeki hazır objeleri seçme ya da çizim özellikleriyle istediği şekli oluşturarak, 3 boyutta döndürme, taşıma, boyut değiştirme işlemlerine tabi tuttuğu şekli led küpte görüntülenmesi için iletişim modülüne aktarabilmektedir.Giriş ekranında “Draw”, “Test” ve “Quit” butonları içeren pencere açılmaktadır. Draw butonu ile kullanıcının hazır şekilleri ve çizim özelliğini kullanarak 3 boyutlu çizim yapabileceği pencere ve çizimin aktarımının yapılacağı pencere açılacaktır. 3B çizim ekranında hazır objeler, çizim kalemi, silgi, 3B döndürme, taşıma ile boyut değiştirme, kamera bakış açıları, bulunduğumuz düzlemin anlaşılabilmesi için xyz koordinat vektörleri, küp içerisinde görüntülenecek bölgenin şematik sınırları bulunmaktadır. Şeklin aktarımını yaptığımız ekranda,oluşturulan şekli istediğimiz gibi hareket ettirebileceğimiz rotateve movebutonlarımız bulunuyor.Boyut değiştirme işlemi bu ekranda da yapılabilmektedir(tuşları yaz).Bu pencerede sınırlandırılmış 3 küp görüntüsü bulunmaktadır. Bir önceki pencereden aktarılan şekli burada tek bir obje gibi hareket ettirilebilmektedir. Bu pencereye yapılan her aktarım, ayrı bir obje olarak davranacaktır. “Apply” butonuna bastığımız anda küpte hangi ledlerin yakılacağı hesaplanarak ve küpe aktarılmaktadır. Giriş ekranından “Test” butonuna bastığımızda ise donanımın çalışıp çalışmadığını test eden, silen ve animasyonları çalıştıran butonları barındıran pencere açılmaktadır. Çalıştırılan animasyonlar grafik arayüzünde bulunan 3 led küp üzerinde, donanımsal led küplerle gerçek zamanlı olarak görüntülenebilmektedir. Ekranlardan herhangi birinden çıkınca tüm arayüzlerin kapanması sağlanmıştır ve bu zaman zarfında donanıma reset atmak için gerekli süreyi sağlamak amaçlanmıştr. Giriş ekranındaki “Quit” butonuna basıldığında da 3B editörden çıkış sağlanmaktadır.

İletişim Modülü

Bu modül sürekli olarak küpün son durumunu hafızasında tutar. Yazılım modülünden aldığı küplerin içindeki ledlerin yanıp yanmadığını belirten 3 boyutlu diziyi alır ve bunu, küpün o andaki durumu ile karşılaştırır. Değişim olan satırları bularak verileri kendi oluşturduğumuz iletişim şekliyle donanım modülüne aktarır.

Bu modülün kullandığı iletişim şeklinde gönderilen ilk byte ya küpün içindeki değişimin nerede olduğunu belirten koordinat bilgisidir ya da küpe gönderilen bir komuttur(reset vs.). İkinci byte, eğer önceki byte ta koordinat bilgisi verildi ise o koordinattaki ledlerin hangilerinin yandığını belirten veridir. İlk byte ta verilen koordinat bilgisinin ilk 3 biti değişimin olacağı katmanı belirtir, son 5 biti ise değişimin yapılacağı satır bilgisini belirtir. Donanımımız sadece 3 küpü desteklediği için satır numarası en fazla 24 olabilir. Bundan dolayı son 5 bitin 24’ten büyük olduğu veriler için geliştirici tarafından belirlenmiş olan komutlar için ayrılmıştır.

Küpler de kendi aralarında aynı iletişim sistemi ile çalışmaktadırlar. Serialport’a bağlanmak için cross platformda çalışan RS232 kütüphanesi kullanılmıştır ve modül, C++ dili ile geliştirilmiştir.

PROJE İLE İLGİLİ BÜTÜN BİLGİLERE AŞAGIDAKİ DÜĞMEDEN ULAŞABİLİRSİNİZ

© 2015 by GTU

© 2015 by GTU

bottom of page