SauRo Akıllı Araba (Android – Arduino RC Araç)

SauRo Akıllı Araba bir Eğitim ve Gömülü Sistem Tanıtım Projesidir.

Özet
Bu proje bir SauRo eğitim projesi olarak gerçekleştirilmiş ve ürünün üniversite öğrencilerine gömülü sistemin tanıtımı için kullanılacağı ön görülmüştür. Bu kapsamda Android işletim sistemi yüklü akıllı telefonlar için uygulama geliştirilmiştir. Telefon hareketi algılanarak RC-Jip ‘e (oyuncak jip) bluetooth aracılığıyla komutlar gönderilerek aracın hareketi sağlanmıştır. Çarpma korumalı, kademeli yön ve hız kontrollü, bir araç geliştirilmiştir. Stant görevlisi yetki vermeden yani RFID (Öğrenci kimlik) kartını aracın üzerinde bulunan RFID kart okuyucusuna okutmadan araç ziyaretçi (öğrenci) tarafından kullanıma geçmeyecek şekilde tasarlanmıştır.

Aracın ve Uygulamanın Görüntüsü

Aracın ve Uygulamanın Görüntüsü

Üretilme Sebebi
Araç, Sakarya Üniversitesi Elektrik elektronik topluluğu olarak eğitim faaliyetlerimize farklı bir bakış açısı getirmek amacıyla başlatılan eğitim projesi kapsamında üretilmiştir. Üniversite öğrencilerine gömülü sistemin tanıtımı amacıyla stantlarda kullanılmak üzere tasarlanmıştır.

Kapsam

Uygulama projesi kapsamı belirl enirken üretilecek ürünün gömülü sistemin tanıtımı için kullanılacağı göz önünde bulundurulmuştur. Bu amaçla günümüz üniversite gençliğine hitap edeceğini düşündüğümüz, stantlarımızda kişilerin kendi akıllı telefonlarıyla kullanabilecekleribir RC araç üretilmiştir.

Üst Soldan itibaren: RFID, Bluetooth, Lipo Pil Orta Soldan itibaren: Ultrasonik Sensor, Servo Motor, Arduino Mega 2560, LCD, DC Motor, Ultrasonik Sensor Alt Soldan itibaren: Motor Sürücü

Üst Soldan itibaren: RFID, Bluetooth, Lipo Pil
Orta Soldan itibaren: Ultrasonik Sensor, Servo Motor, Arduino Mega 2560, LCD, DC Motor, Ultrasonik Sensor
Alt Soldan itibaren: Motor Sürücü

Gömülü sistem eğitimi Arduino ü zerinden verildiği için Merkezi Yönetim Birimi olarak Arduino Mega 2560 Kartı yani ATmega 2560 ter cih edilmiştir. Bunun yanı sıra:

Donanımsal olarak ,

  • Neredeyse her akıllı telefonda bulunan bluetooth modülü sayesinde kontrol edilebilen bir RC araç geliştirilmiştir. Bluetooth iletişimi için HC06 modülü kullanılmış ve B u modülle AT komutları kullanılarak ay arlar yapılmış ve Kullanıcı bilgileri elde edilmiştir.Donanımsalserial ile haberleştirilmiş akıllı tel efondan gelen hareket komutları modül aracılığı yla alınıpArduino megadaişlenmiştir.
  • Stantlarda tanıtım esnasında görevlinin kontrolünü kolaylaştırmak amacıyla RFID (RFID- RC522) modülü kullanılm ıştır. Üniversite kimlikleri sayesinde stant görevlileri yetkilendirilmiştir.
  • Ekip üyelerinden birine a it olan RC-Jipin arka motor haricindeki tüm aksam sökülmüş ve Şekil 2’de ki modüller monte edilmiştir.
  • Aracın üzerinde bulunan DC yön motoru Servo motor ile değiştirilmiştir. Bu sayede kademeli bir dönüş sağlanmıştır.
  • L298N Motor sürücü entegresi içeren sürücü kartı kullanılarak aracın kendi DC motoruna kademeli ileri-geri hareket özelliği kazandırılmıştır.
  • 2 Adet HC-SR04Ultrasonik mesafe sensoru aracın ön ve arkasına 1 adet olmak üzere yerleştirilmiştir. Testler sonucunda aracın çarpmadan kullanılabilmesi için uygun mesafeler tespit edildi. Mesafe ölçümleri doğrultusunda kumandadan bağımsız çarpmayı önleyici kontroller gerçekleştirilmiştir.
  • LCD panel kullanılarak aracın durumu hakkında bilgi verilmiştir.
  • Akıllı telefonların pozisyon bilgisini elde edebilmek için telefonlarda bulunan sensorler kullanılmıştır.

Yazılımsal olarak,

  • Akıllı telefon (Android işletim sistemli) tarafında sensorler yardımıyla telefonun Y ve Z düzlemindeki derecesi algılanarak aracın hareketi için komutlar gönderecek yazılım geliştirilmiştir. Bu yazılım sayesinde RC aracımıza on kademe sağa, on kademe sola
    Mobil cihazın X,Y,Z ordinat sistemindeki görüntüsü

    Mobil cihazın X,Y,Z ordinat sistemindeki görüntüsü

    olmak üzere yön verilmiştir. Yine onar kademe olmak üzere ileri ve geri hız ayarı yapılabilmektedir.

  • Ekip çalışmalarını kolaylaştıran Uzak Git Deposu kullanılarak proje geliştirildi. Tam testlerin soncunda proje Özgür yazılım olarak Git sistemi üzerinden erişime açılacaktır.
  • Araç üzerindeki tüm kodlamalar Arduino IDE’si ile geliştirilmiştir. Nesneye Dayalı Programlama metodolojisi kullanılmıştır.

ihtiyaçları karşılanmıştır.

Otonomluk

  • Araç güç verildikten sonra bluetooth aracılığıyla uzaktan bağlanılıldığında kullanıla bilmektedir. Proje kapsamında kullanılan RFID üzerinden yetki sistemi sürücü açısından otonomluğa zarar veriyor gibi gözükse de aslında çok sayıdaki stant görevlisinin yetkilendirilebilmesi açısından bakıldığında otonumluğa katkısı görülecektir.
  • Aracın Ultrasonik sensorler ve bu sensorlerin yazılımsal olarak ileri-geri motor kontrolüne yani hız kademesine müdahalesi sayesinde ön ve arkadan olası çarpmalara karşı önce yavaşlatılması ve gerektiğinde durdurulması sureti ile korunması sağlanmıştır.
  • Lcd panel aracılığıyla aracın durumu hakkında kullanıcıya anlık bilgi verilmektedir. Bu sayede cihaz bluetooth bağlantı durumu, stant görevlisi yetki durumu, aracın hızı ve yönü ile alakalı bilgiler kullanıcıya sunulmuştur.

Yenilikçilik

  • Kumanda olarak akıllı telefonların kullanılması ve yine buton kontrolü yerine sensörler aracılığıyla kontrolün gerçekleştirilmesi.
  • Uygulayarak öğrenme projesi olması.

Dayanıklılık

  • Kullanılan modüllerin tamamı endüstriyel standartlarda fabrika üretimi modüller (kartlar) olup sadece kablolar aracılığıyla birbiriyle haberleştirilmiştir.
  • Kablolamada tanıtım amaçlı olduğu için sabit kablolar yerine modüller arası bağlantı için özel tasarlanmış Jumperler kullanılmıştır.
  • Dayanıklılığı sürdürülebilir kılmak için çarpmaya karşı sensörler ve yazılımsal iyileştirmeler aracığıyla önlemler alınmıştır.
  • RC araç kullanmış olduğumuz projede çarpmalara karşı gerekli önlem alınmış olsa da araç tercih edilirken mümkün oluğunca dış ortam koşullarından: tümsek, engebeli zemin, gibi; etkilenmeyecek yüksek ve süspansiyonlu bir jip tercih edilmiştir.

Maliyet tablosu

Adı Kulanılan adet Birim maliyet (TL) Toplam maliyet (TL)
ATmega 2560 1 150 150
HC-SR04 Ultrasonik mesafe sensoru 2 10 20
L298N Motor sürücülü kart 1 16 16
Servo motor 1 9 9
RC-Jip 1 100 100
RFID-RC522 1 20 20
HC06 bluetooth modülü 1 20 20
Kablolama 7
1450 mA Lipo Pil 1 80 80
Toplam 422

Basitlik

  • Yön kontrolü için değiştirilen servo motorun uyumlaştırması dışında donanımsal olarak kartların kablolama ile birleştirilmesinin dışında bir zorluğu yoktur.
  • Geliştirirmiş olan yazılımın sadece Araç üzerindeki Arduino Mega geliştirme kartına yüklenmesi gerekmektedir.
  • Ziyaretçiler Google Play üzerinden yayınlayacağımız uygulamayı aratarak indirebilecekleri gibi broşürümüzde bulunan kare kod vasıtasıyla da indirebilecekleridir.

Uygulanabilirlik

  • Donanımsal olarak piyasadan alınabilecek her türlü RC araca uygulanabilecek bir mimariye sahiptir. Kısa süreli bir çalışma sonucunda donanımsal olarak araç hazır hale getirilebilecektir.
  • Nesneye dayalı programlama ile geliştirilmiş olan yazılım modüler olarak geliştirilmiştir. Birkaç parametre değiştirilerek farklı hız ve ebatlardaki araçlarda kullanılabilecek hale getirilebilmektedir.

Eğitim Katılımcıları ve Proje Ekibi:

Proje kapsamında Sakarya Üniversitesi Bilgisayar Mühendisliği bölümünden 7, Elektrik-Elektronik Mühendisliği Bölümünden 1, Mekatronik Mühendisliği Bölümünden 3 ve Makine Mühendisliği Bölümünden 1 kişi olmak üzere 12 kişilik bir ekip çalışmıştır.

Rabia KARA
Elif Esra GÖRGÜLÜ
Sümeyye SARIÇAM
Halil İbrahim  ŞEKER
Mehmet KARAKAYA
Hayyam İSLAMZADE
Abdullah Salih BAYRAKTAR
Fatih ARSLAN
Yasemin KARACA
Bilal MAT
Fadime USLU
Yunus Emre KAHVECİOĞLU

Kütüphane Kodlamak Eğitim Serisi (Video Anlatım ve Notlar)

Bismillahirrahmanirrahim. Bir başlangıçsa bu Besmeleyle olsun: Aziz olsun, kolay olsun, hayırlı olsun. Muhataba Selam olsun.

Öncelikle şunu belirtmek isterim ki bu yazıda ve eğitim içeriğinde vaat edilen her şey doğal olarak şuana kadar edinmiş olduğum tecrübelerim ve bilgim dahilinde olacaktır. Sürç-i lisan ederisek affola.

Bu eğitim serisi kapsamında Drawing Dendrogram isimli bir kütüphane kodlayacak, örnek kullanım kodlarıyla birlikte son kullanıcı dokümanı oluşturarak hizmete sunacağız.

Dendrogram Örneği

Kütüphanemiz veri madenciliği ( data maining ) alanında gösterim şekli olarak kullanılan dendrogram’ın c# ortamında çizilmesine yardımcı olacaktır.

 

KazanımSeri sonunda elde edeceğimiz kazanımlardan bahsedersek:

Fikrin ürüne yolculuğu

Fikrin ürüne yolculuğu

  1. Bir Projenin Fikir aşamasından son kullanıcıya sunulması arasında geçen tüm sürecin aktarılması.
  2. Açık kaynak (open source) dünyasına bir adım.
  3. Git sürüm kontrol sistemlerinin öğrenilmesi (Github – SourceTree).
  4. Nesneye dayalı programlamanın standartlarına uygun kodlama.
  5. Projelerin Analiz, Tasarım, Mimari ve Gerçekleştirim kısımlarının anlaşılması.
  6. Artırımsal (çevik) kodlamanın öğrenilmesi. ( Giriş seviyesinde görmüş olduğum en büyük problem ).
  7. Programlama temellerinin öğrenilmesi, kütüphaneleri kullanma becerisini geliştirme, algoritma geliştirme.
  8. Analiz.
  9. Tasarım (Kağıt kalem çalışmak).
  10. Seri boyunca kullanılacak olan teknoloji ve araçları tanıma olanağı.

Daha fazla söz etmeden sizi Seri ile başa bırakmak isterim: Görüş, öneri ve uyarılarınızı gerek e-mail gerekse yorum aracılığıyla iletmeniz işleyişi iyileştirecektir.

İyi seyirler.

Git projelerini commit bazlı nasıl takip edebileceğinizi bu_videodan (5:28 dk’lık) öğrenebilrisiniz.

Not: Ayrıntılar Zamanla Eklenecektir. Kodlara ve Hazır olan eğitim videolarına asağıdaki linklerden ulaşabilirisiniz.

Linkler:

Github kod deposu : https://github.com/AbdullahBay/DrawingDendrogram

Youtube Seri Linki: Oynatma Listesi: Kütüphane Kodlamak ( Dendrogram c# )

BitBucket ve SourceTree ile Ekip olarak kodlamak

Bitbucked nedir?

Genelde kod paylaşımı ve ekip çalışmalarında ortak bir havuz oluşturmak için kullanılan depolama sistemlerinden biridir. Tabi paylaşmak istediğiniz yazı, tanıtıcı dokuman, ders dokumanı gibi şeyleride paylaşmak mümkün.

Ekip çalışmalarında projeyi yönetmek için kullanacağınız araçlar sayesinde tek bir proje ekip olarak çalışmayıda mümkün kılar.

Neden Bitbucket derseniz :

  • 5 kullanıcıya kadar ücretsiz ekip kurabilme,
  • Projelerinizi gizli olarak geliştirebilme,
  • En az 5 farklı ekip kurabilme (tecrübe)- Her ekibe 5 kişi :),

özellikleri benim tercih sebebim oldu.

Bitbucket’e aşağıdaki linkten üye olunuz:

https://bitbucket.org/

Ve Alttaki linkten yönetim aracını indiriniz.

http://www.sourcetreeapp.com/

Kurulum ve kullanım için videoya göz atınız:

Kullanım ayrıntıları

Daha fazla bilgi için :

Bitbucket Dokumanları:

SourceTree Dokumanları:

Genel Git Dökümanları:

KPI

Kurumların faaliyet gösterdikleri alandaki başarılarını değerlendirilmesi için gereken eylemin referans olarak daha başarılı bir eyleme göre durumunun gösterilmesine başarım ölçütü denir, bu ölçüt sayısal sözel veya yargı olabilir. Bir kurumun çok yönlü işleri varsa karmaşık bir başarım ölçütüne sahip olur. Başarıyı daha objektif olarak değerlendirebilmeleri için, daha az sayıda ve yenilenebilen başarım ölçütü   gerekir ki buna anahtar başarım ölçütleri (KPI) denilmektedir.

Terim olarak hedeflerimizde belirttiğimiz kritik performans ölçütünün İngilizce karşılığıdır.

Kurum bölümlerinin, çalışanlarının performansı ölçülerek hedefe ne kadar ulaştığı belirlediği amaca ilerleyip ilerlemediği hakkında derli toplu bilgiler verir.

Okumaya devam et

Bir Yapı (Bağlı Liste) ve Gerçeklenmesi (C++ Kodlama)

Bu Eğitim vidyosuda Nesneye dayalı programlama prensiplerine bağlı kalınarak aşşağıda ki konular işlenmeye çalışılmıştır. Ayrıca kod test edilerek ve debug işlemleri ile incelenerek geliştirilmiştir.
Delete işlemleri ilk iki class için yapılmış diğer classlarda zaman almaması için gerçeklenmemiştir.

Konular – İçerik:

  • Giriş – Senaryo(0-8:45 dk)
  • Bağlı liste (8:45) yapısının oluşturulması

    4 adet class(Karakter,Dugum,BagliListe, Yonetim,) + Main.cpp oluşturularak Bir bağlı  liste üzerinde ekleme işlemleri gerçekleştirildi.

  • Bağlı liste yazdırma(1:43:00- 1:53:40)
  • string(char) tipli sayıların toplanması (1:53:40 – 2:08:00)
  • Operatör Aşırı Yükleme (Fonksiyonla benzerliği) (2:08:00 – 2:15:00)

Sorularınız ve Önerilerinizi yorum yazarak belirtebilir diğer okurlarada takıldığınız konularda bilgi aktarımını sağlayabilirisiniz.

Dökümanlar ve Kodlar: https://www.dropbox.com/sh/llycfi61is4yreo/AAD5tukR3meWxgYUVGTW_k8_a?dl=0

Abdullah Salih BAYRAKTAR

Bir Probleme nasıl yaklaşmalı – Veri yapıları – Algoritma – Ödev

Bir bilgisayar programcısının ödeve(projeye) bakması gereken açıyı anlatmya çalıştım.

İçerik :

  1. Ödev dökümanı nasıl okunlmalı,
  2. ekrana şekil bastırma (çıktıyı düzenleme)
  3. Nesneye dayalı programlama,
  4. cout aşırı yükleme (function overloading)- 35:52 dk,
  5. hep bellek bölgesi (new)
  6. eden çöpleri toplamalıyız: (delete)
  7. Örnek bir uygulama incelendi

Birkaç aksaklık (girişte biraz heycan, static 🙂 ) olsada, faydalı olması dileğiyle…..

Dökümanlar:
https://www.dropbox.com/sh/jwar422ozjtxo36/AAAH0osmak05V8rJTuWbZ3ZBa?dl=0

Not: İlk anlatılan dökümanda(ödev dokumanı): Sepet içinde çivilerin bulunmsa durumu değilde, Sepetlerin Çiviye asılamsı durumu istenmiş görselde de gösterilmiş. Yani harfler Çivi değil.

çivi

Keywordler: Veri yapıları, Ödev1, Sakarya Üniversitesi, Bir yaklaşım, Problem Çözme, Algortima geliştirme, Ödev yapmak, Bilgisayr Mühendisliği, c++

Kucaklaşmaya Çok İhtcımız Var

Girmeden tefrika bir millete düşman giremez.
Toplu vurdukça yürekler onu top sindiremez.
M.A.

Kendi seçtiklerimize ağız dolusu saldıran biz. Yabancı düşmana ne gerek.

Bize yakışmıyor.

Hz. Muhammed (SAV) :
(Bir kimseyi günün birinde, aranızın açılabileceğini hesaba katarak sev. Buğzettiğine de günün birinde dost olabileceğini düşünerek buğzet.) [Tirmizi]

Hazret-i Ali (RA):
(Benim yüzümden iki aşırı grup insan helak olur. Birisi, beni aşırı severek, bende olmayan şeyleri bana takarlar. Ötekiler de, bana düşman olup, birçok iftira yaparlar)

BU HATAYI ÇOK MU YAPIYORUZ? Ne dersiniz?

Matlab ile dicom Formatını avi’ye Çevirme

Dönüştüreceğimiz dicom dosyasının  seçimi için ‘uigetdir‘ komutu kullanılabilir yada direkt dosya yolu verilebilir.

%diyalog penceresi açarak seçilen dosya yolunu döndürür
%DICOMDIR_path=uigetdir;
%info=dicominfo('DICOMDIR_path');
info=dicominfo('D:\...\...); %dosya yolu
I=dicomread(info);  %dicom formatlı görüntü alınır

Alınan dosyanın avi formatına dönüşümü için aşağıdaki kodlar yazılır.

videoAd='video';  %yeni oluşturulacak video adı belirlenir
%strcat ile avi'nin kaydedileceği konum ile video adı birleştirilir
obj=VideoWriter(strcat('D:\...\...\',videoAd),'Uncompressed AVI');
open(obj);
writeVideo(obj,I); %Videoyu obj dosyasına yazar
close(obj);

Video formatı ‘Uncompressed AVI’ olarak seçilir. İstenirse diğer kayıt formatlarının listesine VideoWriter.getProfiles();  komutu ile ulaşılabilir.

Dicom Dosyasından Frame Alma

Dicom dosyasından istenen frameleri almak için öncelikle görüntü üç boyutlu hale dönüştürülür. Ardından üçüncü boyuttan görüntünün istenen frame’i alınabilir. Alınan resmi bilgisayara kaydetmek için de ‘imwrite’ komutu kullanılabilir.

I=I(:,:,:);  %3-D ye dönüştürme
indis=20; % alınacak indis
imshow(I(:,:,indis));
resim=I(:,:,indis);
resimAd='resim';
imwrite(resim,strcat('D:\Kullanıcılar\lenovo\Desktop\görüntü\',resimAd));

TARİH BOYU EZAN

Görmesin mi Abdullah rüyasında Cibrîli!
Oku demişti ona heybet ile Tekbîri
Gelmişti arkasından peşpeşe şehadetler
Eylemişti beraber ezanları talîmi

Kalkarak yatağından, heyecanla uyanıp
İstemişti anlatmak, bir bir Rasüle varıp
İniyordu göklerden yağmur gibi rahmetler
Bekliyordu ezanı Rasül Rabbe yakarıp

Duyunca sahabeler, o güzel öğretiyi
Kutladılar birlikte o kutlu getiriyi
Ne yalan söyleyelim gördük bizde dediler
Öğrendik Cebrailden inci gibi diziyi

Bilal okumuştu ilk, en güzel sada ile
Gelirdi lâl olanlar onun nutkundan dile
Dillenirdi çağrının namesinden bülbüller
Kulak vereyen ona, çekerdi bin bir çile

Ezan oldu yıllarca müslümanlara şiar
Onun susturulması insanlığa olur ar
Susturmayı denedi ara sıra zalimler
Hepsi pişman, zelîl, perişan oldular

Çalıştı yıllarca hem de çabaladı atan
Tebliğ etti cihana İslamı, ta en baştan
İnsanlar bölük bölük davete katıldılar
Okundu ezanlar hûb âvâz ile Davuttan

Uyan artık ey Mümin atanın yeri bomboş
Duruyor musun, çan asmış mabedine Yanoş
Gönüllerden kopup cûşa gelsin çağlayanlar
Kıtaları dolaşsın cihanı kaplasın koş

Okunmasa sökülür gök kubbenin hilâli
Oluverir bir anda baykuşların haremi
Hürriyetin sembolü ezanlı minareler
Gök kubbenin direği, minarenin alemi

HB