SlideShare a Scribd company logo
T.C.
GEBZE TEKNİK ÜNİVERSİTESİ
Bilgisayar Mühendisliği Bölümü
PROJE 1 DERSİ HAPTIC
NAVİGASYON PROJE
RAPORU
GRUP 3
Danışman
Prof. Dr. Erkan ZERGEROĞLU
Ocak, 2016
Gebze, KOCAELİ
ii
iii
T.C.
GEBZE TEKNİK ÜNİVERSİTESİ
Bilgisayar Mühendisliği Bölümü
PROJE 1 DERSİ HAPTIC
NAVİGASYON PROJE
RAPORU
GRUP 3
Danışman
Prof. Dr. Erkan ZERGEROĞLU
Ocak, 2016
Gebze, KOCAELİ
iv
v
ÖNSÖZ
Çalışma sırasında engin bilgisiyle bizlere her zaman yol gösteren Sayın Prof. Dr. Erkan
ZERGEROĞLU hocamıza ve Ayşe TURAN hocamıza içten teşekkürlerimizi sunarız.
Ocak, 2015 Grup 3 Üyeleri
vi
İÇİNDEKİLER
İÇİNDEKİLER ....................................................................................Vİ
ÖZET................................................................................................. Vİİİ
1. GİRİŞ ..................................................................................................1
1.1. PROJE TANIMI .............................................................................1
1.2. PROJENİN NEDEN VE AMAÇLARI.........................................2
1.3. PROJE GEREKSİNİMLERİ ........................................................2
1.4.1. Fonksiyonel Gereksinimler .................................................................... 2
1.4.2. Fonksiyonel Olmayan Gereksinimler ................................................... 2
2. YÖNTEM............................................................................................3
3. PROJE PLANLAMASI.....................................................................3
3.1. SİSTEM MİMARİSİ ......................................................................3
3.6. UML DİYAGRAMLARI .............................................................12
3.6.1. Etkinlik Diyagramı ............................................................................... 12
4. DENEYLER......................................................................................12
5. SONUÇLAR .....................................................................................14
5.1. BAŞARILI OLUNAN KISIMLAR .............................................14
5.2. BAŞARISIZ OLUNAN KISIMLAR...........................................14
6. DEĞERLENDİRME.....................................................................15
6. KAYNAKLAR .................................................................................16
vii
viii
ÖZET
Projemiz yayaların kullanabileceği türden bir navigasyon cihazı hazırlamak üzere
başlatılmıştır. Proje, kullanıcıya yön bilgisini sunmak üzere bir adet küp şeklinde bir
donanım ve bir server bilgisayardan oluşmaktadır.
Kullanıcı server üzerinden gitmek istediği noktayı belirledikten sonra haptic
sandwich adını verdiğimiz donanımın sağ, sol, ileri ve geri hareketleri ile yön
tarifini alarak gitmek istediği noktaya ulaşabilecektir. Aynı zamanda, kullanıcının
hareketleri server üzerindeki arayüz sayesinde harita üzerinde gerçek zamanlı olarak
takip edilebilecektir. Kullanıcı, bulunduğu noktadan belirlediğimiz hedeflerden
birini harita üzerinde işaretleyip haptic sandwich yardımıyla hedef noktaya
gidebilecektir.
Projemizde hareket alanı bilgisayar mühendisliği bölümü binası zemin katı ve
bilgisayar mühendisliği bölümü binasının çevresini kapsayan kısıtlı bir alan olarak
belirlenmiş olup tasarımımız ve gereksinimlerimiz buna göre düzenlenmiştir.
Geliştirilen sistemin Windows ve Linux tabanlı sistemlerde çalışabilmektedir.
1
1. GİRİŞ
1.1. PROJE TANIMI
Projemiz, tasarladığımız haptic sandwich yardımı ile harita üzerinde belirlenmiş
noktalardan seçilen hedefe, iç ve dış mekanda doğru bir şekilde yol tarifi verebilen,
kullanıcı hareketlerinin haptic sandwich cihazının bağlı olduğu server üzerinden
izlenilebildiği bir sistem hazırlamaktır.
Şekil 1.1.1 Sistemin Genel Çalışma Şeması
2
1.2. PROJENİN NEDEN VE AMAÇLARI
Projemizin amacı, bilgisayar mühendisliği bölümü binası zemin katı ve bilgisayar
mühendisliği bölümü binasının çevresinde kullanılmak üzere bir navigasyon cihazı
tasarlamak ve kullanıcı hareketlerini server üzerinde gerçek zamanlı olarak
izleyebilmektir.
1.3. PROJE GEREKSİNİMLERİ
Proje gereksinimlerini fonksiyonel gereksinimler ve fonksiyonel olmayan
gereksinimler diye iki başlık altında ifade etmek daha doğru olacaktır.
Bu kısımda fonksiyonel gereksinimler sistemin iç yapısına ait detaylara yer
verirken, fonksiyonel olmayan gereksinimler, performans, kullanım kolaylığı gibi
kullanılabilirlik ile alakalı gereksinimlere yer vermektedir.
1.4.1. Fonksiyonel Gereksinimler
Fonksiyonel gereksinimler şu şekildedir;
 Haptic Sandwich cihazından iç mekanda konum bilgilerinin alınması
 Haptic Sandwich cihazından dış mekanda konum bilgilerinin alınması
 Haptic Sandwich cihazının yön bilgisine göre hareket etmesinin sağlanması
 Yol bulma algoritmasının kodlanması
 Belirli bir süre içinde konum verilerinin güncellenmesi
 İç ve dış mekan haritasının hazırlanması
 Server üzerinde bulunacak haritada, gidilecek konumun seçilebilmesi
 Modüllerin birbirine bağlanması
1.4.2. Fonksiyonel Olmayan Gereksinimler
 Sunucu yazılımının kullanıcı dostu arayüze sahip olması
 Linux ve Windows tabanlı cihazlarda çalışabilme
3
2. YÖNTEM
Bu kısımda, projede kullanılan yöntemlerin nasıl geliştirildiği ve kullanılan araçların
ne için ve nasıl kullanıldığı ile ilgili detaylı açıklamalar yer almaktadır.
Projemizin donanım kısmında microcontroller olarak Ardunio kullanılmıştır. İç
mekanda haberleşmeyi sağlamak için wifi modülü, dış mekanda haberleşmeyi
sağlamak için ise GPS modülü kullanılmıştır. Ardunio ile wifi ve GPS modülünün
entegrasyonu yapılarak haptic sandwich adını verdiğimiz ergonomik boyutlarda bir
gömülü cihaz elde edilmiştir.
Elde edilen cihazın server üzerinden gidilecek yön bilgisini alması ve bulunduğu
konumu harita üzerinde gösterilmek üzere server cihaza göndermesi sağlanmıştır.
Server kısmında, haptic sandwich cihazının bulunduğu konum iç mekanda wifi, dış
mekanda GPS modülü üzerinden alınacak, harita üzerinde işaretlenen hedefe giden
bir yol belirlenecek ve bu yola uygun yön bilgileri haptic sandwiche
gönderilmektedir. Ayrıca haptic sandwich cihazından wifi ya da GPS modülü ile
alınan konum bilgileri de server cihazında harita üzerinde gerçek zamanlı olarak
gösterilecek şekilde tasarlanmıştır.
3. PROJE PLANLAMASI
Bu bölümde projenin planlaması ve projedeki işleyiş hakkında bilgi veren
diyagramlar belirtilmiştir.
3.1. SİSTEM MİMARİSİ
Proje 1 dersi kapsamında geliştirilen bu sistem, yayaların kullanabileceği türden bir
navigasyon cihazı hazırlamak üzere başlatılmıştır. Proje iç ve dış mekanda
çalışabilecek şekilde tasarlanmıştır. Her iki durumda da alınan veriler aşağıdaki gibi
işlenmektedir;
1. Donanım modülünden alınan koordinatlara göre kullanıcının bulunduğu alan
tespit edilir.
2. Arayüz modülünden gidilecek olan alan bilgisi alınır.
3. Bulunulan alan ve gidilecek alan arasındaki en kısa yol ve yönler hesaplanır.
4. Haptic navigasyona yol ve yön bilgisi gönderilir.
4
5. Haptic navigasyon cihazından alınan yol ve yön bilgisi arayüz üzerinde
gösterilir.
Projede şu anda gelinen noktada tüm kodlar Linux ve Windows ortamında sorunsuz
bir şekilde çalışabilmektedir.
3.2 DONANIM MODÜLÜ
Donanım modülü olarak, arduino uno’ya wifi modülü eklenerek başlandı. Wifi
modülü eklendikten sonra servo motorlar çalıştırıldı. Yön bulmak için ise gyroscope
kullanılması düşünülmüştü fakat cihaz her çalıştırıldığında kalibre edilmesi
gerektiğinden gyroscope kullanmaktan vazgeçildi. Bunun yerine manyetometre
alındı, çalıştırıldı ve test edildi. Daha sonra dış mekanda konum bilgisini almak için
gps modülü üzerinde çalışıldı. Dış mekanda haberleşme için gsm veya radyo
sinyalleri kullanılması karar verildikten sonra iki teknoloji arasındaki artılar ve
eksikler araştırıldı. Maliyet açısından ve desteklenecek uzaklık göz önüne alındıktan
sonra radyo sinyalleri kullanmak daha uygun olacağından bu teknolojinin
kullanılmasına karar verildi. Bunun için iki arduino kullanmak gerektiğinden ikinci
bir arduino temin edildi. Dış mekanda haberleşme için radyo sinyallerini
kullanmaya karar verildiği için iç mekanda da haberleşmenin wifi yerine radyo
sinyalleriyle haberleşmeye geçildi. Bu nedenlerden dolayı başta belirttiğimiz bazı
modüllerde değişikliğe gidildi. Sonuç olarak, haberleşme radyo sinyalleri ile, konum
bulma wifi ve gps modülleri ile, yön hesabı ise manyetometre ile yapıldı.
Donanım modülünde iki nRF24l01+ modülü, arduinolar arasında haberleşme için
kullanılmaktadır. HapticNavigator olarak kullanılan Arduino Mega microcontroller
server ile haberleşme için bir nRF24l01+ ve iç kısımda yer tespiti yapabilmek için
station mode da çalışan ESP8266 modülü kullanılmaktadır. Servera bağlı olan
microcontroller sadece haberleşme ve serial port üzerinden bilgisayar ile iletişim
kuracağından fazla maliyeti olmayan Arduino Uno olarak seçilmiştir. Üzerine
nRF24l01+ modülünden aldığı dataları serial port üzerinden Servera yazmaktadır.
5
Figure 1 . Devre Şeması
Devre şeması üzerinde gösterilen cihazlar ve kullanılan malzemeler aşağıda
listelenmektedir.
 Servo Motor (2 Adet)
 Manyetometre - HMC5883L Triple Axis
 Arduino Uno R3
 Arduino Mega
 GPS Modül - GY-NEO6MV2
 RF Modül – nRF24l01+
 Wi-Fi Modül – ESP8266
 5Volt – Güç Kaynağı
 Direnç 4.7k, 10k, Kapasitör 100nF
3.3 YAZILIM MODÜLÜ
Bu kısımda yazılım modülü üzerinde oluşturulan algoritmalar, kullanılan
fonksiyonlar ve yazılım dizayn parçalarından bahsedilecektir.
6
3.3.1. Genel Çalışma Yapısı
Yazılım modülü genel olarak iç ve dış ortamda sensörler yardımıyla elde ettiği
verileri yorumlayarak, grafik arayüzünde göstermekte ve haptic cihazın nereye
gideceğini tespit eden algoritmaları çalıştırarak tekrar haberleşmeyi sağlaması için
kendisine bağlı olan mikrokontrollera iletmektedir.
Genel yapı aşağıdaki diyagramda gösterilmektedir.
Figure 2. Genel Yapı
3.3.2. Paket Yapısı
Proje içerisinde en önemli kısımlardan biri haberleşme sırasında gönderilecek paket
yapısının belirlenmesi oldu. Gönderilecek paket donanımdan aldığı verileri en az yer
kaplayarak, ileride eklenecek yeni özellikler ve refactoring göz önüne alınarak
tasarlanmıştır. Proje implementasyonu sırasında büyük kolaylık sağlamıştır.
Aşağıda genel itibariyle haberleşme için kullanılan paket yapısı gösterilmektedir.
İçeride yer tespiti yapmak için routerların yaydığı rssi değerleri kullanılmaktadır. Bu
sebeple routerın yaydığı rssi (radio signal strengt indicator) ve mac adresi yani bssid
değeri tutulması gerekmektedir. Wifi 802.11bgn standartlarına göre kanal değeri
2.4Ghz üzerinde 1-13 arasında değiştiğinden 1 byte (0-255) yer kaplayan char
olarak seçildi.
7
Yer tespiti için kullanılacak routerlar belirli olduğundan map etme işlemi sonrası tek
byte gönderimi ile hangi cihazın yayın yaptığı anlaşılabilmektedir.
Haptic cihaz üzerinde bulunan manyotometre kuzey ile yaptığı açıyı northDegree
vasıtasıyla server a göndermektedir. Server gidilecek varış noktası için haptic
navigatörün dönmesi gereken açıyı hesaplayıp turnDegree ile tekrar cihaza
göndermektedir.
GPS koordinatları en az virgülden sonra beş basamak hassasiyetinde olduğundan
2^32 = 32 bit lik bir alan ile enlem veya boylam bilgisini tutabilmekteyiz. Toplamda
x ve y koordinatları için 64bit = 8 bytes yer harcamaktayız.
Tüm modüllerin anlamlı olarak göndermesi gereken bilgiler kendi struct yapısıyla
göndermektedir. Ekstra olarak eklenen type, paket tipini belirlemekte ve böylece tek
tip paket yapısı kullanarak server ve haptic navigator arasındaki haberleşme,
REQUEST (haptic-to-server), RESPONSE (server-to-haptic) sağlanmaktadır. Flag
değişkeni eklenebilecek yeni özellikler için göz önünde bulundurulmuştur.
8
Oluşabilecek paket dropları ve eksik paket gelmesini kontrol etmek amacıyla son
olarak checksum eklenmiştir. Toplam paket boyutu 15byte olarak tasarlanmıştır.
3.3.3 Serial Port Haberleşmesi
Server ile Arduino Uno arasındaki haberleşmeyi serial port üzerinden
sağlamaktayız. Bunun için cross-platform olarak çalışan RS-232 kütüphanesi
kullanılmıştır. Bu sayede Arduino Uno’nun Haptic üzerinden aldığı verileri PC’ye
string olarak yazabilmektedir. Server kısmında bu veriler Linux ve Windows’da
belirli aşağıda ki comportlar üzerinden sağlanmaktadır.
Figure 3 . Comport Listesi
3.4 ARAYÜZ MODÜLÜ
Arayüz modülü için ilk önce Qt kullanılmasına karar verildi. Qt'nin yeteri kadar
esneklik sağlamamasından dolayı 1 hafta denendikten sonra Irrlicht kütüphanesi
kullanılmaya başlandı. Kullanıcı, harita ve gidilebilecek yerleri temsil eden butonlar
Blender kullanılarak modellendi. Okul planlarını içeren Autocad dosyaları
düzenlendi, fazla detaylar kaldırıldı, elde edilen resimden harita için iç ve dış olmak
üzere iki texture oluşturuldu.
Harita, kullanıcı ve marker'lar için class oluşturuldu. Mouse event için bir receiver
class'ı oluşturuldu ve scroll in - scroll out yapıldığında iç ve dış haritalar arasında
geçiş yapılabilmesi sağlandı. Sol tıklama ile marker'lara tıklanabilme özelliği
eklendi, handler'da collision detection'la hangi marker'a tıklandığı belirlendi.
Mouse'taki middle click ile seçilen yerin sıfırlanması özelliği eklendi. Kullanıcının
dış mekan için ekranda göründüğü yer gerçek haritayla ekrandaki harita arasındaki
oran kullanılarak hesaplandı. İç mekan içinse koridor üzerinde kullanıcıyı göstermek
için 12 tane nokta belirlendi. Hedefin kaydedilmesi için bir onaylama ekranı
9
çıkmasını sağlayacak pop-up class'ı oluşturuldu. Gidilecek noktanın butonuna
tıklandığında pop-up çıkması sağlandı.
Gidilecek yer seçildiğinde hedefin id'sinin yazılım modülünün yol bulma
fonksiyonuna gönderilmesi sağlandı. GPS modülünden alınan veriler dönüştürülerek
harita üzerine yerleştirildi ve harita üzerindeki konum ve yön bilgileri tespit edilerek
gösterildi.
Figure 4. Uygulama Arayüzü
10
Figure 5. Kat Planı
3.5 YER TESPİTİ
3.5.1 Algoritma
Bu kısımda server üzerinde çalıştırılan genel yapı, iç ve dış mekan üzerinde yer
tespit algoritmaları anlatılacaktır.
Bir noktadan diğerine gitmek için gerekli olan yol haritası oluşturulduktan sonar, iç
mekan için gidilecek noktalar 12, dış mekan için gidilecek noktalar 19 parça olarak
belirlendi. Dış mekan için bu noktalar belirli bir aralıktaki enlem-boylam değerlerini
ifade etmektedir. Bu noktaların her biri yazılımda node olarak ifade edilip
kullanılmaktadır. Noktalar arasındaki kısa yolu bulmak için Dijkstra en kısa yol
algoritması kullanılmaktadır. Ayrıca, noktalar arasındaki hareketlerin yönü iki farklı
11
dizi üzerinde tutulmaktadır. Oluşturulan yol için gidilmesi gereken yönler bu diziler
yardımıyla tespit edilmektedir. Bu kodların testleri kendi girdiğimiz verilerle
yapıldı. Bunların dışında, kullanıcının durduğu yönü belirlemek için donanım olarak
manyetometre kullanıldı. Yazılım modülünde, manyetometrenin konumuna göre
kullanıcının gidilecek yöne dönmesi sağlandı.
3.5.1 İç Mekanda Yer Tespiti
İç mekanda yer tespiti için access point cihazlarının yaydığı RSS değerlerine göre
konum tahmini yapılmaktadır. İç mekan belirli alanlara ayrılıp her alan
numaralandırılmıştır. Belirlenen alanlara konulan 10-12 AP cihazı alanın çok geniş
olmaması sebebiyle ve yayılan RSS değerlerinin birbiriyle karışmaması için düşük
seviyede sinyal yayıcak şekilde ayarlanmıştır. Her AP kendi bulunduğu alanın
numarasına göre SSID değeri almaktadır. Haptic cihaz üzerine bulunan station
moddaki wifi modülü bulunmuş olduğu konumdaki AP cihazlarını taramakta ve en
yüksek RSSİ değerine sahip olan AP’nin SSID değerini kendi konumu olarak kabul
etmektedir.
Proje başlangıç aşamasında daha az sayıda AP kullanılarak belirlenmiş alanlar için
yüksek sayıda örnek RSSİ değerleriyle konum tespit işlemi yapılmaya çalışılmıştır.
Bu aşamada RSSİ değerlerinin sapmaya uğraması, ortamdaki gürültüden çok fazla
etkilenmesi ve test ortamında az sayıda AP bulunması sebebiyle bu yöntemden
vazgeçilmiştir. Bu işlem için makine öğrenmesi yöntemi olan kNN algoritması
implement edilmiş olup, testler örnek datalar üzerinde gerçekleştirilmiştir.
3.5.2 Dış Mekanda Yer Tespiti
Dış mekanda yer tespiti, GPS modülünden alınan enlem ve boylam verilerinin
belirlenen 19 alan sınırı içerisinde, dahil olduğu alanın kontrol edilmesi ile elde
edilmektedir. Alınan veriye göre kullanıcının bulunduğu alan bilgisi server ve
araryüz üzerinde güncellenmektedir. Örnek arayüz Figure 4. Uygulama Arayüzü
üzerinde gösterilmektedir.
12
3.6. UML DİYAGRAMLARI
3.6.1. Etkinlik Diyagramı
Şekil 3.6.1.1 Etkinlik Diyagramı
4. DENEYLER
Denemeler Windows 10 ve Linux Ubuntu 10.04 işletim sistemine sahip bilgisayarlar
üzerinde Visual Studio 2013, Eclipse kullanılarak yapıldı.
GPS ‘den gelen verilerin hata payı ve gecikme süresi tecrübe edildi. Bu verilerin dış
mekanda doğru bir şekilde server’a ulaşması ve arayüzde anlamlandırılması denendi
ve başarılı olundu.
13
Manyotometre kuzeyi doğru göstermesi için kalibre edildi. Kuzey referans alınarak
elde edilen bilgiler basit bir algoritma ile yön göstermesi için Servo motorlar
çalıştırıldı.
Wifi mödülünün cihazda yaptığı gecikme denendi ve en aza indirilmesi için kodda
düzeltilmeler yapıldı. Yeniden implement edildi. Modülden etraftaki wifi chazlarına
dair bilgi elde edilmesi sağlandı ve bu bilgilerden iç mekanda yaklaşık bir konum
bulundu.
Radio modülü ile server ve haptic cihaz arasında çift yönlü haberleşme sağlandı,
azami haberleşme mesafesi denendi.
Haptic cihazdan radio dalgaları ile gelen bilgilerin serial haberleşme ile servera
iletimi sağlandı fakat serverdan haptic cihaza bilgi aktarımı düzenli bir şekilde
sağlanamadı.
Manyotometre ile kuzey referans alınarak yön bilgisi elde edildi.
Servo motorları denendi ve manyotometre ile senkronize bir şekilde çalışması
sağlandı.
Radio modülü ile çift yönlü telsiz mantığında haberleşme yapıldı.
Server(PC) ile haptic cihaz arasında serial com port üzerinden haberleşme denendi.
İç mekanda Wifi mödülü kullanarak yaklaşık konum bulundu.
Dış mekanda GPS mödülü kullanarak konum bulundu.
Arayüz için Qt denendi, ekran güncellemesi konusunda yeteri kadar esnek olmadığı
için Irrlicht kütüphanesine geçiş yapıldı. Blender kullanılarak oluşturulan modeller
Irrlicht’te denendi. Yol ve yön bulma algoritmaları arayüz modülüne başarılı bir
şekilde entegre edildi. Donanımdan alınan konum bilgilerinin ekranda gösterdiği yer
hesabı yapıldı ve doğruluğu denendi.
14
5. SONUÇLAR
5.1. BAŞARILI OLUNAN KISIMLAR
 Haptic Sandwich cihazından iç mekanda konum bilgilerinin alınması
sağlandı.
 Haptic Sandwich cihazından dış mekanda konum bilgilerinin alınması
sağlandı.
 Yol bulma algoritmasının kodlanması gerçekleştirildi.
 Belirli bir süre içinde konum verilerinin güncellenmesi sağlandı.
 İç ve dış mekan haritasının hazırlanması yapıldı.
 Server üzerinde bulunacak haritada, gidilecek konumun seçilebilmesi
sağlandı.
 Modüllerin birbirine bağlanması tamamlandı fakat stabil hale getirilemedi.
5.2. BAŞARISIZ OLUNAN KISIMLAR
 Tüm modüllerin iç ve dış mekanda uyumlu bir şekilde çalışması
sağlanamadı. Bunun nedeni; server ile taşıyıcı arduino uno arasındaki serial
iletişimin çift yönlü olmasının sağlanamaması olarak belirlendi. Bu
noktadaki sorun veri paketini parse eden kodun hatalı olmasından
kaynaklandığı tespit edildi fakat çözüm sağlanamadı.
 Haptic Sandwich cihazının yön bilgisine göre hareket etmesinin sağlanması
yukarıdaki maddede açıklanan nedenlerden dolayı gerçekleştirilemedi.
15
6. DEĞERLENDİRME
Projemiz haberleşmede olulşan sorunlardan dolayı, kullanıma hazır hale
getirilememiş olsa da bizler grubun her bir üyesi olarak bu proje sayesinde, arduino,
gps, irrlicht kütüphanesi ve yol bulma gibi konularda tecrübe ve bilgi sahibi
olmamızı sağlamıştır.
16
6. KAYNAKLAR
[1] Spiers, Adam, et al. "First validation of the Haptic Sandwich: a shape changing
handheld haptic navigation aid." 17th International Conference on Advanced
Robotics. IEEE, 2015.
[2] Gints Jekabsons, Vadim Kairish, Vadim Zuravlyov. (2011). An Analysis of Wi-
Fi Based Indoor Positioning Accuracy. Scientific Journal of Riga Technical
University. 47 (1), 131-137.
[3] Meghan Brown . (2015). Haptic Device Offers GPS Navigation for the Blind.
Available: http://www.engineering.com/PLMERP/ArticleID/10649/Haptic-Device-
Offers-GPS-Navigation-for-the-Blind.aspx. Last accessed 20th Nov 2015.

More Related Content

Viewers also liked

Atún en Bolsa
Atún en BolsaAtún en Bolsa
Geothermal Heat Exchenger
Geothermal Heat ExchengerGeothermal Heat Exchenger
Geothermal Heat Exchenger
Raji Panicker
 
Seminario di europrogettazione
Seminario di europrogettazioneSeminario di europrogettazione
Seminario di europrogettazione
Alessia De Matteo
 
Predicting and Optimising CT LWT
Predicting and Optimising CT LWTPredicting and Optimising CT LWT
Predicting and Optimising CT LWT
Raji Panicker
 
Presentasi E-Cash Global Indonesia 2016
Presentasi E-Cash Global Indonesia 2016Presentasi E-Cash Global Indonesia 2016
Presentasi E-Cash Global Indonesia 2016
Deny Santoso
 
Anonymity & the Darknet
Anonymity & the DarknetAnonymity & the Darknet
Anonymity & the Darknet
Neil Shankar
 
Condensate Recovery System for Large AHU with Enthalpy Wheel
Condensate Recovery System for  Large AHU with Enthalpy WheelCondensate Recovery System for  Large AHU with Enthalpy Wheel
Condensate Recovery System for Large AHU with Enthalpy Wheel
Raji Panicker
 
Razas de Perros
Razas de Perros Razas de Perros
Razas de Perros
Laura Del pino
 
Seminario di Europrogettazione
Seminario di EuroprogettazioneSeminario di Europrogettazione
Seminario di Europrogettazione
Alessia De Matteo
 
Swati Gupta Resume
Swati Gupta ResumeSwati Gupta Resume
Swati Gupta Resume
Swati Gupta
 
Part of human bodies
Part of human bodiesPart of human bodies
Part of human bodies
laurentjaluu
 
Inspección atún en lata
Inspección atún en lataInspección atún en lata
Inspección atún en lata
Noé Josafáth Hernandez de la Cruz
 
Inspeccion 2latadechiles en rajas
Inspeccion 2latadechiles en rajasInspeccion 2latadechiles en rajas
Inspeccion 2latadechiles en rajas
Noé Josafáth Hernandez de la Cruz
 
Metales
Metales Metales
Metales
Laura Del pino
 
Metodos de-prueva
Metodos de-pruevaMetodos de-prueva

Viewers also liked (15)

Atún en Bolsa
Atún en BolsaAtún en Bolsa
Atún en Bolsa
 
Geothermal Heat Exchenger
Geothermal Heat ExchengerGeothermal Heat Exchenger
Geothermal Heat Exchenger
 
Seminario di europrogettazione
Seminario di europrogettazioneSeminario di europrogettazione
Seminario di europrogettazione
 
Predicting and Optimising CT LWT
Predicting and Optimising CT LWTPredicting and Optimising CT LWT
Predicting and Optimising CT LWT
 
Presentasi E-Cash Global Indonesia 2016
Presentasi E-Cash Global Indonesia 2016Presentasi E-Cash Global Indonesia 2016
Presentasi E-Cash Global Indonesia 2016
 
Anonymity & the Darknet
Anonymity & the DarknetAnonymity & the Darknet
Anonymity & the Darknet
 
Condensate Recovery System for Large AHU with Enthalpy Wheel
Condensate Recovery System for  Large AHU with Enthalpy WheelCondensate Recovery System for  Large AHU with Enthalpy Wheel
Condensate Recovery System for Large AHU with Enthalpy Wheel
 
Razas de Perros
Razas de Perros Razas de Perros
Razas de Perros
 
Seminario di Europrogettazione
Seminario di EuroprogettazioneSeminario di Europrogettazione
Seminario di Europrogettazione
 
Swati Gupta Resume
Swati Gupta ResumeSwati Gupta Resume
Swati Gupta Resume
 
Part of human bodies
Part of human bodiesPart of human bodies
Part of human bodies
 
Inspección atún en lata
Inspección atún en lataInspección atún en lata
Inspección atún en lata
 
Inspeccion 2latadechiles en rajas
Inspeccion 2latadechiles en rajasInspeccion 2latadechiles en rajas
Inspeccion 2latadechiles en rajas
 
Metales
Metales Metales
Metales
 
Metodos de-prueva
Metodos de-pruevaMetodos de-prueva
Metodos de-prueva
 

Similar to Dokunsal Navigasyon Cihazı

Tcp ip taşima ve uygulama katmani
Tcp ip taşima ve uygulama katmaniTcp ip taşima ve uygulama katmani
Tcp ip taşima ve uygulama katmaniOnur Şaner
 
Bunyamin sogut cv
Bunyamin sogut cvBunyamin sogut cv
Bunyamin sogut cv
bnymnsgt
 
Inertial Navigation System Positioning and Applications (Turkish)
Inertial Navigation System Positioning and Applications (Turkish) Inertial Navigation System Positioning and Applications (Turkish)
Inertial Navigation System Positioning and Applications (Turkish)
Said Türksever
 
Sinema Seans Bilgi ve Rezervasyon Sisteminin Mikro Servis Yaklaşımıyla Gelişt...
Sinema Seans Bilgi ve Rezervasyon Sisteminin Mikro Servis Yaklaşımıyla Gelişt...Sinema Seans Bilgi ve Rezervasyon Sisteminin Mikro Servis Yaklaşımıyla Gelişt...
Sinema Seans Bilgi ve Rezervasyon Sisteminin Mikro Servis Yaklaşımıyla Gelişt...
Tolga Kaprol
 
Prtg Network Monitor
Prtg Network MonitorPrtg Network Monitor
Prtg Network Monitor
Kavi International
 
OV7670 CAMERA SENSOR APPLICATION USING ZYBO
OV7670 CAMERA SENSOR APPLICATION USING ZYBOOV7670 CAMERA SENSOR APPLICATION USING ZYBO
OV7670 CAMERA SENSOR APPLICATION USING ZYBO
Melek Sönmez
 
Yönlendirme temelleri
Yönlendirme temelleriYönlendirme temelleri
Yönlendirme temelleriErol Dizdar
 
Pic programlama-hocasi
Pic programlama-hocasiPic programlama-hocasi
Pic programlama-hocasisersld90
 
KABLOSUZ PROB YARDIMIYLA GEOPHONE SİSTEMİ TASARIMI
KABLOSUZ PROB YARDIMIYLA GEOPHONE SİSTEMİ TASARIMIKABLOSUZ PROB YARDIMIYLA GEOPHONE SİSTEMİ TASARIMI
KABLOSUZ PROB YARDIMIYLA GEOPHONE SİSTEMİ TASARIMI
Mutugu Gultepe
 
Akıllı Otopark Sistemi
Akıllı Otopark SistemiAkıllı Otopark Sistemi
Akıllı Otopark Sistemi
Burak Fırçasıgüzel
 
Cihazlara bağlanma
Cihazlara bağlanmaCihazlara bağlanma
Cihazlara bağlanmaOnur Şaner
 
Pic programlama-2014
Pic programlama-2014Pic programlama-2014
Pic programlama-2014sersld90
 
Hastane Poliklinik Otomasyonu
Hastane Poliklinik OtomasyonuHastane Poliklinik Otomasyonu
Hastane Poliklinik Otomasyonu
Resul Rıza Dolaner
 
Intro to Apps with Maps for Series 40 (Turkish)
Intro to Apps with Maps for Series 40 (Turkish)Intro to Apps with Maps for Series 40 (Turkish)
Intro to Apps with Maps for Series 40 (Turkish)
Microsoft Mobile Developer
 
Ab2015 sunum
Ab2015 sunumAb2015 sunum
Ab2015 sunum
Aydan RENDE
 
Bilgisayar destekli çizim 482 bk0021 (1)
Bilgisayar destekli çizim 482 bk0021 (1)Bilgisayar destekli çizim 482 bk0021 (1)
Bilgisayar destekli çizim 482 bk0021 (1)Iklimlendirme Sogutma
 

Similar to Dokunsal Navigasyon Cihazı (20)

Tcp ip taşima ve uygulama katmani
Tcp ip taşima ve uygulama katmaniTcp ip taşima ve uygulama katmani
Tcp ip taşima ve uygulama katmani
 
Bunyamin sogut cv
Bunyamin sogut cvBunyamin sogut cv
Bunyamin sogut cv
 
Inertial Navigation System Positioning and Applications (Turkish)
Inertial Navigation System Positioning and Applications (Turkish) Inertial Navigation System Positioning and Applications (Turkish)
Inertial Navigation System Positioning and Applications (Turkish)
 
TÜBİTAK 2209
TÜBİTAK 2209TÜBİTAK 2209
TÜBİTAK 2209
 
Sinema Seans Bilgi ve Rezervasyon Sisteminin Mikro Servis Yaklaşımıyla Gelişt...
Sinema Seans Bilgi ve Rezervasyon Sisteminin Mikro Servis Yaklaşımıyla Gelişt...Sinema Seans Bilgi ve Rezervasyon Sisteminin Mikro Servis Yaklaşımıyla Gelişt...
Sinema Seans Bilgi ve Rezervasyon Sisteminin Mikro Servis Yaklaşımıyla Gelişt...
 
Prtg Network Monitor
Prtg Network MonitorPrtg Network Monitor
Prtg Network Monitor
 
OV7670 CAMERA SENSOR APPLICATION USING ZYBO
OV7670 CAMERA SENSOR APPLICATION USING ZYBOOV7670 CAMERA SENSOR APPLICATION USING ZYBO
OV7670 CAMERA SENSOR APPLICATION USING ZYBO
 
Yönlendirme temelleri
Yönlendirme temelleriYönlendirme temelleri
Yönlendirme temelleri
 
Pic programlama-hocasi
Pic programlama-hocasiPic programlama-hocasi
Pic programlama-hocasi
 
KABLOSUZ PROB YARDIMIYLA GEOPHONE SİSTEMİ TASARIMI
KABLOSUZ PROB YARDIMIYLA GEOPHONE SİSTEMİ TASARIMIKABLOSUZ PROB YARDIMIYLA GEOPHONE SİSTEMİ TASARIMI
KABLOSUZ PROB YARDIMIYLA GEOPHONE SİSTEMİ TASARIMI
 
Akıllı Otopark Sistemi
Akıllı Otopark SistemiAkıllı Otopark Sistemi
Akıllı Otopark Sistemi
 
Cihazlara bağlanma
Cihazlara bağlanmaCihazlara bağlanma
Cihazlara bağlanma
 
Pic programlama-2014
Pic programlama-2014Pic programlama-2014
Pic programlama-2014
 
Serkan-KOCA-CV
Serkan-KOCA-CVSerkan-KOCA-CV
Serkan-KOCA-CV
 
Proje dökümanı
Proje dökümanıProje dökümanı
Proje dökümanı
 
Hastane Poliklinik Otomasyonu
Hastane Poliklinik OtomasyonuHastane Poliklinik Otomasyonu
Hastane Poliklinik Otomasyonu
 
Intro to Apps with Maps for Series 40 (Turkish)
Intro to Apps with Maps for Series 40 (Turkish)Intro to Apps with Maps for Series 40 (Turkish)
Intro to Apps with Maps for Series 40 (Turkish)
 
Ab2015 sunum
Ab2015 sunumAb2015 sunum
Ab2015 sunum
 
Bilgisayar destekli çizim 482 bk0021 (1)
Bilgisayar destekli çizim 482 bk0021 (1)Bilgisayar destekli çizim 482 bk0021 (1)
Bilgisayar destekli çizim 482 bk0021 (1)
 
Sayıcılar
SayıcılarSayıcılar
Sayıcılar
 

Dokunsal Navigasyon Cihazı

  • 1. T.C. GEBZE TEKNİK ÜNİVERSİTESİ Bilgisayar Mühendisliği Bölümü PROJE 1 DERSİ HAPTIC NAVİGASYON PROJE RAPORU GRUP 3 Danışman Prof. Dr. Erkan ZERGEROĞLU Ocak, 2016 Gebze, KOCAELİ
  • 2. ii
  • 3. iii T.C. GEBZE TEKNİK ÜNİVERSİTESİ Bilgisayar Mühendisliği Bölümü PROJE 1 DERSİ HAPTIC NAVİGASYON PROJE RAPORU GRUP 3 Danışman Prof. Dr. Erkan ZERGEROĞLU Ocak, 2016 Gebze, KOCAELİ
  • 4. iv
  • 5. v ÖNSÖZ Çalışma sırasında engin bilgisiyle bizlere her zaman yol gösteren Sayın Prof. Dr. Erkan ZERGEROĞLU hocamıza ve Ayşe TURAN hocamıza içten teşekkürlerimizi sunarız. Ocak, 2015 Grup 3 Üyeleri
  • 6. vi İÇİNDEKİLER İÇİNDEKİLER ....................................................................................Vİ ÖZET................................................................................................. Vİİİ 1. GİRİŞ ..................................................................................................1 1.1. PROJE TANIMI .............................................................................1 1.2. PROJENİN NEDEN VE AMAÇLARI.........................................2 1.3. PROJE GEREKSİNİMLERİ ........................................................2 1.4.1. Fonksiyonel Gereksinimler .................................................................... 2 1.4.2. Fonksiyonel Olmayan Gereksinimler ................................................... 2 2. YÖNTEM............................................................................................3 3. PROJE PLANLAMASI.....................................................................3 3.1. SİSTEM MİMARİSİ ......................................................................3 3.6. UML DİYAGRAMLARI .............................................................12 3.6.1. Etkinlik Diyagramı ............................................................................... 12 4. DENEYLER......................................................................................12 5. SONUÇLAR .....................................................................................14 5.1. BAŞARILI OLUNAN KISIMLAR .............................................14 5.2. BAŞARISIZ OLUNAN KISIMLAR...........................................14 6. DEĞERLENDİRME.....................................................................15 6. KAYNAKLAR .................................................................................16
  • 7. vii
  • 8. viii ÖZET Projemiz yayaların kullanabileceği türden bir navigasyon cihazı hazırlamak üzere başlatılmıştır. Proje, kullanıcıya yön bilgisini sunmak üzere bir adet küp şeklinde bir donanım ve bir server bilgisayardan oluşmaktadır. Kullanıcı server üzerinden gitmek istediği noktayı belirledikten sonra haptic sandwich adını verdiğimiz donanımın sağ, sol, ileri ve geri hareketleri ile yön tarifini alarak gitmek istediği noktaya ulaşabilecektir. Aynı zamanda, kullanıcının hareketleri server üzerindeki arayüz sayesinde harita üzerinde gerçek zamanlı olarak takip edilebilecektir. Kullanıcı, bulunduğu noktadan belirlediğimiz hedeflerden birini harita üzerinde işaretleyip haptic sandwich yardımıyla hedef noktaya gidebilecektir. Projemizde hareket alanı bilgisayar mühendisliği bölümü binası zemin katı ve bilgisayar mühendisliği bölümü binasının çevresini kapsayan kısıtlı bir alan olarak belirlenmiş olup tasarımımız ve gereksinimlerimiz buna göre düzenlenmiştir. Geliştirilen sistemin Windows ve Linux tabanlı sistemlerde çalışabilmektedir.
  • 9. 1 1. GİRİŞ 1.1. PROJE TANIMI Projemiz, tasarladığımız haptic sandwich yardımı ile harita üzerinde belirlenmiş noktalardan seçilen hedefe, iç ve dış mekanda doğru bir şekilde yol tarifi verebilen, kullanıcı hareketlerinin haptic sandwich cihazının bağlı olduğu server üzerinden izlenilebildiği bir sistem hazırlamaktır. Şekil 1.1.1 Sistemin Genel Çalışma Şeması
  • 10. 2 1.2. PROJENİN NEDEN VE AMAÇLARI Projemizin amacı, bilgisayar mühendisliği bölümü binası zemin katı ve bilgisayar mühendisliği bölümü binasının çevresinde kullanılmak üzere bir navigasyon cihazı tasarlamak ve kullanıcı hareketlerini server üzerinde gerçek zamanlı olarak izleyebilmektir. 1.3. PROJE GEREKSİNİMLERİ Proje gereksinimlerini fonksiyonel gereksinimler ve fonksiyonel olmayan gereksinimler diye iki başlık altında ifade etmek daha doğru olacaktır. Bu kısımda fonksiyonel gereksinimler sistemin iç yapısına ait detaylara yer verirken, fonksiyonel olmayan gereksinimler, performans, kullanım kolaylığı gibi kullanılabilirlik ile alakalı gereksinimlere yer vermektedir. 1.4.1. Fonksiyonel Gereksinimler Fonksiyonel gereksinimler şu şekildedir;  Haptic Sandwich cihazından iç mekanda konum bilgilerinin alınması  Haptic Sandwich cihazından dış mekanda konum bilgilerinin alınması  Haptic Sandwich cihazının yön bilgisine göre hareket etmesinin sağlanması  Yol bulma algoritmasının kodlanması  Belirli bir süre içinde konum verilerinin güncellenmesi  İç ve dış mekan haritasının hazırlanması  Server üzerinde bulunacak haritada, gidilecek konumun seçilebilmesi  Modüllerin birbirine bağlanması 1.4.2. Fonksiyonel Olmayan Gereksinimler  Sunucu yazılımının kullanıcı dostu arayüze sahip olması  Linux ve Windows tabanlı cihazlarda çalışabilme
  • 11. 3 2. YÖNTEM Bu kısımda, projede kullanılan yöntemlerin nasıl geliştirildiği ve kullanılan araçların ne için ve nasıl kullanıldığı ile ilgili detaylı açıklamalar yer almaktadır. Projemizin donanım kısmında microcontroller olarak Ardunio kullanılmıştır. İç mekanda haberleşmeyi sağlamak için wifi modülü, dış mekanda haberleşmeyi sağlamak için ise GPS modülü kullanılmıştır. Ardunio ile wifi ve GPS modülünün entegrasyonu yapılarak haptic sandwich adını verdiğimiz ergonomik boyutlarda bir gömülü cihaz elde edilmiştir. Elde edilen cihazın server üzerinden gidilecek yön bilgisini alması ve bulunduğu konumu harita üzerinde gösterilmek üzere server cihaza göndermesi sağlanmıştır. Server kısmında, haptic sandwich cihazının bulunduğu konum iç mekanda wifi, dış mekanda GPS modülü üzerinden alınacak, harita üzerinde işaretlenen hedefe giden bir yol belirlenecek ve bu yola uygun yön bilgileri haptic sandwiche gönderilmektedir. Ayrıca haptic sandwich cihazından wifi ya da GPS modülü ile alınan konum bilgileri de server cihazında harita üzerinde gerçek zamanlı olarak gösterilecek şekilde tasarlanmıştır. 3. PROJE PLANLAMASI Bu bölümde projenin planlaması ve projedeki işleyiş hakkında bilgi veren diyagramlar belirtilmiştir. 3.1. SİSTEM MİMARİSİ Proje 1 dersi kapsamında geliştirilen bu sistem, yayaların kullanabileceği türden bir navigasyon cihazı hazırlamak üzere başlatılmıştır. Proje iç ve dış mekanda çalışabilecek şekilde tasarlanmıştır. Her iki durumda da alınan veriler aşağıdaki gibi işlenmektedir; 1. Donanım modülünden alınan koordinatlara göre kullanıcının bulunduğu alan tespit edilir. 2. Arayüz modülünden gidilecek olan alan bilgisi alınır. 3. Bulunulan alan ve gidilecek alan arasındaki en kısa yol ve yönler hesaplanır. 4. Haptic navigasyona yol ve yön bilgisi gönderilir.
  • 12. 4 5. Haptic navigasyon cihazından alınan yol ve yön bilgisi arayüz üzerinde gösterilir. Projede şu anda gelinen noktada tüm kodlar Linux ve Windows ortamında sorunsuz bir şekilde çalışabilmektedir. 3.2 DONANIM MODÜLÜ Donanım modülü olarak, arduino uno’ya wifi modülü eklenerek başlandı. Wifi modülü eklendikten sonra servo motorlar çalıştırıldı. Yön bulmak için ise gyroscope kullanılması düşünülmüştü fakat cihaz her çalıştırıldığında kalibre edilmesi gerektiğinden gyroscope kullanmaktan vazgeçildi. Bunun yerine manyetometre alındı, çalıştırıldı ve test edildi. Daha sonra dış mekanda konum bilgisini almak için gps modülü üzerinde çalışıldı. Dış mekanda haberleşme için gsm veya radyo sinyalleri kullanılması karar verildikten sonra iki teknoloji arasındaki artılar ve eksikler araştırıldı. Maliyet açısından ve desteklenecek uzaklık göz önüne alındıktan sonra radyo sinyalleri kullanmak daha uygun olacağından bu teknolojinin kullanılmasına karar verildi. Bunun için iki arduino kullanmak gerektiğinden ikinci bir arduino temin edildi. Dış mekanda haberleşme için radyo sinyallerini kullanmaya karar verildiği için iç mekanda da haberleşmenin wifi yerine radyo sinyalleriyle haberleşmeye geçildi. Bu nedenlerden dolayı başta belirttiğimiz bazı modüllerde değişikliğe gidildi. Sonuç olarak, haberleşme radyo sinyalleri ile, konum bulma wifi ve gps modülleri ile, yön hesabı ise manyetometre ile yapıldı. Donanım modülünde iki nRF24l01+ modülü, arduinolar arasında haberleşme için kullanılmaktadır. HapticNavigator olarak kullanılan Arduino Mega microcontroller server ile haberleşme için bir nRF24l01+ ve iç kısımda yer tespiti yapabilmek için station mode da çalışan ESP8266 modülü kullanılmaktadır. Servera bağlı olan microcontroller sadece haberleşme ve serial port üzerinden bilgisayar ile iletişim kuracağından fazla maliyeti olmayan Arduino Uno olarak seçilmiştir. Üzerine nRF24l01+ modülünden aldığı dataları serial port üzerinden Servera yazmaktadır.
  • 13. 5 Figure 1 . Devre Şeması Devre şeması üzerinde gösterilen cihazlar ve kullanılan malzemeler aşağıda listelenmektedir.  Servo Motor (2 Adet)  Manyetometre - HMC5883L Triple Axis  Arduino Uno R3  Arduino Mega  GPS Modül - GY-NEO6MV2  RF Modül – nRF24l01+  Wi-Fi Modül – ESP8266  5Volt – Güç Kaynağı  Direnç 4.7k, 10k, Kapasitör 100nF 3.3 YAZILIM MODÜLÜ Bu kısımda yazılım modülü üzerinde oluşturulan algoritmalar, kullanılan fonksiyonlar ve yazılım dizayn parçalarından bahsedilecektir.
  • 14. 6 3.3.1. Genel Çalışma Yapısı Yazılım modülü genel olarak iç ve dış ortamda sensörler yardımıyla elde ettiği verileri yorumlayarak, grafik arayüzünde göstermekte ve haptic cihazın nereye gideceğini tespit eden algoritmaları çalıştırarak tekrar haberleşmeyi sağlaması için kendisine bağlı olan mikrokontrollera iletmektedir. Genel yapı aşağıdaki diyagramda gösterilmektedir. Figure 2. Genel Yapı 3.3.2. Paket Yapısı Proje içerisinde en önemli kısımlardan biri haberleşme sırasında gönderilecek paket yapısının belirlenmesi oldu. Gönderilecek paket donanımdan aldığı verileri en az yer kaplayarak, ileride eklenecek yeni özellikler ve refactoring göz önüne alınarak tasarlanmıştır. Proje implementasyonu sırasında büyük kolaylık sağlamıştır. Aşağıda genel itibariyle haberleşme için kullanılan paket yapısı gösterilmektedir. İçeride yer tespiti yapmak için routerların yaydığı rssi değerleri kullanılmaktadır. Bu sebeple routerın yaydığı rssi (radio signal strengt indicator) ve mac adresi yani bssid değeri tutulması gerekmektedir. Wifi 802.11bgn standartlarına göre kanal değeri 2.4Ghz üzerinde 1-13 arasında değiştiğinden 1 byte (0-255) yer kaplayan char olarak seçildi.
  • 15. 7 Yer tespiti için kullanılacak routerlar belirli olduğundan map etme işlemi sonrası tek byte gönderimi ile hangi cihazın yayın yaptığı anlaşılabilmektedir. Haptic cihaz üzerinde bulunan manyotometre kuzey ile yaptığı açıyı northDegree vasıtasıyla server a göndermektedir. Server gidilecek varış noktası için haptic navigatörün dönmesi gereken açıyı hesaplayıp turnDegree ile tekrar cihaza göndermektedir. GPS koordinatları en az virgülden sonra beş basamak hassasiyetinde olduğundan 2^32 = 32 bit lik bir alan ile enlem veya boylam bilgisini tutabilmekteyiz. Toplamda x ve y koordinatları için 64bit = 8 bytes yer harcamaktayız. Tüm modüllerin anlamlı olarak göndermesi gereken bilgiler kendi struct yapısıyla göndermektedir. Ekstra olarak eklenen type, paket tipini belirlemekte ve böylece tek tip paket yapısı kullanarak server ve haptic navigator arasındaki haberleşme, REQUEST (haptic-to-server), RESPONSE (server-to-haptic) sağlanmaktadır. Flag değişkeni eklenebilecek yeni özellikler için göz önünde bulundurulmuştur.
  • 16. 8 Oluşabilecek paket dropları ve eksik paket gelmesini kontrol etmek amacıyla son olarak checksum eklenmiştir. Toplam paket boyutu 15byte olarak tasarlanmıştır. 3.3.3 Serial Port Haberleşmesi Server ile Arduino Uno arasındaki haberleşmeyi serial port üzerinden sağlamaktayız. Bunun için cross-platform olarak çalışan RS-232 kütüphanesi kullanılmıştır. Bu sayede Arduino Uno’nun Haptic üzerinden aldığı verileri PC’ye string olarak yazabilmektedir. Server kısmında bu veriler Linux ve Windows’da belirli aşağıda ki comportlar üzerinden sağlanmaktadır. Figure 3 . Comport Listesi 3.4 ARAYÜZ MODÜLÜ Arayüz modülü için ilk önce Qt kullanılmasına karar verildi. Qt'nin yeteri kadar esneklik sağlamamasından dolayı 1 hafta denendikten sonra Irrlicht kütüphanesi kullanılmaya başlandı. Kullanıcı, harita ve gidilebilecek yerleri temsil eden butonlar Blender kullanılarak modellendi. Okul planlarını içeren Autocad dosyaları düzenlendi, fazla detaylar kaldırıldı, elde edilen resimden harita için iç ve dış olmak üzere iki texture oluşturuldu. Harita, kullanıcı ve marker'lar için class oluşturuldu. Mouse event için bir receiver class'ı oluşturuldu ve scroll in - scroll out yapıldığında iç ve dış haritalar arasında geçiş yapılabilmesi sağlandı. Sol tıklama ile marker'lara tıklanabilme özelliği eklendi, handler'da collision detection'la hangi marker'a tıklandığı belirlendi. Mouse'taki middle click ile seçilen yerin sıfırlanması özelliği eklendi. Kullanıcının dış mekan için ekranda göründüğü yer gerçek haritayla ekrandaki harita arasındaki oran kullanılarak hesaplandı. İç mekan içinse koridor üzerinde kullanıcıyı göstermek için 12 tane nokta belirlendi. Hedefin kaydedilmesi için bir onaylama ekranı
  • 17. 9 çıkmasını sağlayacak pop-up class'ı oluşturuldu. Gidilecek noktanın butonuna tıklandığında pop-up çıkması sağlandı. Gidilecek yer seçildiğinde hedefin id'sinin yazılım modülünün yol bulma fonksiyonuna gönderilmesi sağlandı. GPS modülünden alınan veriler dönüştürülerek harita üzerine yerleştirildi ve harita üzerindeki konum ve yön bilgileri tespit edilerek gösterildi. Figure 4. Uygulama Arayüzü
  • 18. 10 Figure 5. Kat Planı 3.5 YER TESPİTİ 3.5.1 Algoritma Bu kısımda server üzerinde çalıştırılan genel yapı, iç ve dış mekan üzerinde yer tespit algoritmaları anlatılacaktır. Bir noktadan diğerine gitmek için gerekli olan yol haritası oluşturulduktan sonar, iç mekan için gidilecek noktalar 12, dış mekan için gidilecek noktalar 19 parça olarak belirlendi. Dış mekan için bu noktalar belirli bir aralıktaki enlem-boylam değerlerini ifade etmektedir. Bu noktaların her biri yazılımda node olarak ifade edilip kullanılmaktadır. Noktalar arasındaki kısa yolu bulmak için Dijkstra en kısa yol algoritması kullanılmaktadır. Ayrıca, noktalar arasındaki hareketlerin yönü iki farklı
  • 19. 11 dizi üzerinde tutulmaktadır. Oluşturulan yol için gidilmesi gereken yönler bu diziler yardımıyla tespit edilmektedir. Bu kodların testleri kendi girdiğimiz verilerle yapıldı. Bunların dışında, kullanıcının durduğu yönü belirlemek için donanım olarak manyetometre kullanıldı. Yazılım modülünde, manyetometrenin konumuna göre kullanıcının gidilecek yöne dönmesi sağlandı. 3.5.1 İç Mekanda Yer Tespiti İç mekanda yer tespiti için access point cihazlarının yaydığı RSS değerlerine göre konum tahmini yapılmaktadır. İç mekan belirli alanlara ayrılıp her alan numaralandırılmıştır. Belirlenen alanlara konulan 10-12 AP cihazı alanın çok geniş olmaması sebebiyle ve yayılan RSS değerlerinin birbiriyle karışmaması için düşük seviyede sinyal yayıcak şekilde ayarlanmıştır. Her AP kendi bulunduğu alanın numarasına göre SSID değeri almaktadır. Haptic cihaz üzerine bulunan station moddaki wifi modülü bulunmuş olduğu konumdaki AP cihazlarını taramakta ve en yüksek RSSİ değerine sahip olan AP’nin SSID değerini kendi konumu olarak kabul etmektedir. Proje başlangıç aşamasında daha az sayıda AP kullanılarak belirlenmiş alanlar için yüksek sayıda örnek RSSİ değerleriyle konum tespit işlemi yapılmaya çalışılmıştır. Bu aşamada RSSİ değerlerinin sapmaya uğraması, ortamdaki gürültüden çok fazla etkilenmesi ve test ortamında az sayıda AP bulunması sebebiyle bu yöntemden vazgeçilmiştir. Bu işlem için makine öğrenmesi yöntemi olan kNN algoritması implement edilmiş olup, testler örnek datalar üzerinde gerçekleştirilmiştir. 3.5.2 Dış Mekanda Yer Tespiti Dış mekanda yer tespiti, GPS modülünden alınan enlem ve boylam verilerinin belirlenen 19 alan sınırı içerisinde, dahil olduğu alanın kontrol edilmesi ile elde edilmektedir. Alınan veriye göre kullanıcının bulunduğu alan bilgisi server ve araryüz üzerinde güncellenmektedir. Örnek arayüz Figure 4. Uygulama Arayüzü üzerinde gösterilmektedir.
  • 20. 12 3.6. UML DİYAGRAMLARI 3.6.1. Etkinlik Diyagramı Şekil 3.6.1.1 Etkinlik Diyagramı 4. DENEYLER Denemeler Windows 10 ve Linux Ubuntu 10.04 işletim sistemine sahip bilgisayarlar üzerinde Visual Studio 2013, Eclipse kullanılarak yapıldı. GPS ‘den gelen verilerin hata payı ve gecikme süresi tecrübe edildi. Bu verilerin dış mekanda doğru bir şekilde server’a ulaşması ve arayüzde anlamlandırılması denendi ve başarılı olundu.
  • 21. 13 Manyotometre kuzeyi doğru göstermesi için kalibre edildi. Kuzey referans alınarak elde edilen bilgiler basit bir algoritma ile yön göstermesi için Servo motorlar çalıştırıldı. Wifi mödülünün cihazda yaptığı gecikme denendi ve en aza indirilmesi için kodda düzeltilmeler yapıldı. Yeniden implement edildi. Modülden etraftaki wifi chazlarına dair bilgi elde edilmesi sağlandı ve bu bilgilerden iç mekanda yaklaşık bir konum bulundu. Radio modülü ile server ve haptic cihaz arasında çift yönlü haberleşme sağlandı, azami haberleşme mesafesi denendi. Haptic cihazdan radio dalgaları ile gelen bilgilerin serial haberleşme ile servera iletimi sağlandı fakat serverdan haptic cihaza bilgi aktarımı düzenli bir şekilde sağlanamadı. Manyotometre ile kuzey referans alınarak yön bilgisi elde edildi. Servo motorları denendi ve manyotometre ile senkronize bir şekilde çalışması sağlandı. Radio modülü ile çift yönlü telsiz mantığında haberleşme yapıldı. Server(PC) ile haptic cihaz arasında serial com port üzerinden haberleşme denendi. İç mekanda Wifi mödülü kullanarak yaklaşık konum bulundu. Dış mekanda GPS mödülü kullanarak konum bulundu. Arayüz için Qt denendi, ekran güncellemesi konusunda yeteri kadar esnek olmadığı için Irrlicht kütüphanesine geçiş yapıldı. Blender kullanılarak oluşturulan modeller Irrlicht’te denendi. Yol ve yön bulma algoritmaları arayüz modülüne başarılı bir şekilde entegre edildi. Donanımdan alınan konum bilgilerinin ekranda gösterdiği yer hesabı yapıldı ve doğruluğu denendi.
  • 22. 14 5. SONUÇLAR 5.1. BAŞARILI OLUNAN KISIMLAR  Haptic Sandwich cihazından iç mekanda konum bilgilerinin alınması sağlandı.  Haptic Sandwich cihazından dış mekanda konum bilgilerinin alınması sağlandı.  Yol bulma algoritmasının kodlanması gerçekleştirildi.  Belirli bir süre içinde konum verilerinin güncellenmesi sağlandı.  İç ve dış mekan haritasının hazırlanması yapıldı.  Server üzerinde bulunacak haritada, gidilecek konumun seçilebilmesi sağlandı.  Modüllerin birbirine bağlanması tamamlandı fakat stabil hale getirilemedi. 5.2. BAŞARISIZ OLUNAN KISIMLAR  Tüm modüllerin iç ve dış mekanda uyumlu bir şekilde çalışması sağlanamadı. Bunun nedeni; server ile taşıyıcı arduino uno arasındaki serial iletişimin çift yönlü olmasının sağlanamaması olarak belirlendi. Bu noktadaki sorun veri paketini parse eden kodun hatalı olmasından kaynaklandığı tespit edildi fakat çözüm sağlanamadı.  Haptic Sandwich cihazının yön bilgisine göre hareket etmesinin sağlanması yukarıdaki maddede açıklanan nedenlerden dolayı gerçekleştirilemedi.
  • 23. 15 6. DEĞERLENDİRME Projemiz haberleşmede olulşan sorunlardan dolayı, kullanıma hazır hale getirilememiş olsa da bizler grubun her bir üyesi olarak bu proje sayesinde, arduino, gps, irrlicht kütüphanesi ve yol bulma gibi konularda tecrübe ve bilgi sahibi olmamızı sağlamıştır.
  • 24. 16 6. KAYNAKLAR [1] Spiers, Adam, et al. "First validation of the Haptic Sandwich: a shape changing handheld haptic navigation aid." 17th International Conference on Advanced Robotics. IEEE, 2015. [2] Gints Jekabsons, Vadim Kairish, Vadim Zuravlyov. (2011). An Analysis of Wi- Fi Based Indoor Positioning Accuracy. Scientific Journal of Riga Technical University. 47 (1), 131-137. [3] Meghan Brown . (2015). Haptic Device Offers GPS Navigation for the Blind. Available: http://www.engineering.com/PLMERP/ArticleID/10649/Haptic-Device- Offers-GPS-Navigation-for-the-Blind.aspx. Last accessed 20th Nov 2015.