27 Temmuz 2008 Pazar

Tekrar Üniversiteliyim

Metu WBL LogoBilgi Teknolojileri konusunda hayatımda bir kez olsun eğitim almak hep hayalimdi. Uzun bir aradan sonra sonunda ODTÜ Enformatik Enstitüsü WBL yüksek lisans programına kabul edildim ve sevinçten havalara uçtum. Eylül ayında kayıtlarım ve dersler başlayacak şimdiden sabırsızlınayorum. Herkesin hayallerine bir adım daha yaklaşması dileğiyle.

27 Mayıs 2008 Salı

Robotunuzda Difransiyel Sürüş ile Köşeleri Almak

Servo ile sürüşten vazgeçmemle birlikte difransiyel sürüş ile ilgilenmem gerekti. Kınematik ve matematik bilgim oldukça temel olmasına rağmen biraz araştırınca difransiyel sürüşü ilgilendiren denklemler konusunda biraz fikir sahibi oldum. Burada gidilen mesafe açısından istenilen açıları dönmek için ne yapmak gerekir buna değineceğim. Zaman, hız ve ivmelenme burada bahsedeceklerim içersinde yer almıyor belki ileride bunlar üzerinde zaman harcama fırsatım olduğunda değinebilirim.


Sorunumuza şöyle bakalım iki tekerlekli bir aracı nasıl istediğimiz açıda döndürebiliriz? Örneğin bir tekerlekli sandalyeyi 90 derece sola döndürmek için hangi tekerleği ne kadar döndürmek gerekir? Bunun gibi basit soruların cevapları robotun hareketi ile ilgili sorularımızın da cevaplarını oluşturuyor olucak.
Konuya pivot noktasından başlayalım örneğin bir köşeyi almak istiyorsunuz ama burada 90 derecelik direk dönüşler yerine ark çizmek işimize gelecektir. O zaman bu ark'ı nereye göre çizeceğiz. Bir sütunun etrafından köşeyi sola doğru alacağımızı hayal edersek sütun bizim pivot noktamız oluyor. "r" sütun ile sol tekerlek arasındaki mesafemiz olarak ve "b" yi de iki tekerleğin merkez noktaları (şaftı) arasındaki mesafe olarak kabul edersek.


"SL" Sol tekerleğin gideceği mesafe "SR" ise Sağ tekerleğin gideceği mesafe oluyor. Böylece "Q" açısında yuvarlak bir dönüş için gerekenleri temel olarak tamamlamış oluyoruz. PID veya PWM motor kontrolü ile birlikte ilk denemelerimi yakında paylaşıyor olurum. Bir sonraki merak konum ise zaman, ivmelenme, hız gibi etkenlerin de dahil olduğu daha az hata payı barındıran modeller nedir?

26 Mayıs 2008 Pazartesi

İsminizi Ay'a Gönderin

isminizi aya gönderin sertifika
Nasa LRO yani "Lunar Reconnaissance Orbiter" uzay aracı ile birlikte isminizi Ay'a göndermek için bir proje düzenlemiş. http://lro.jhuapl.edu/NameToMoon/ adresinden isminiz ve soyisminizi girdiğinizde sağdaki resimde görebileceğiniz bir sertifika basma imkanı da olabiliyor. Bu girilen bilgiler bir veritabanına aktarıldıktan sonra bir mikroçip üzerine gömülecek. 27 Haziran 2008 bu güzel projeye katılım için son gün . Kaynak:http://www.nasa.gov/mission_pages/LRO/main/index.html

25 Mayıs 2008 Pazar

Microsoft Robotics Studio, C#, Servo ve IR Sensör ile Engel Tanıma

En son makalemde açı mesafe arasındaki ilişkiden bahsetmiş rota planlama için nasıl kullanılabileceğine değinmiştim. Basit trigonometriden faydalandığımız bir diğer konuda engel tanıma. Bildiğiniz üzere mesafe ölçümü için sharp ir mesafe sensörleri kullanıyorum. Bu yazımda C# ve Microsoft Robotics Studio ile sabit olarak duran robotun çevredeki engelleri olan algısından bahsedeceğim.
Engel tanıma için bu testimde robot durağan iken etrafındaki engelleri nasıl algılıyor bunu merak ettim. Video da daha iyi görebileceğiniz gibi robotumun üzerinde servo üzerine monte edilmiş 3 adet Sharp IR mesafe sensörü var. Aslında burada basit olarak yaptığım 20 derece lik hareketlerle sensöre ait okumaları alıp bunları bir kartezyen koordinat sisteminde göstermek. "+" işaretleri algıladığı engelleri belirtiyor. Aslında robotun yaptığı işlemler basit ve şu şekilde.
  1. Son dereceye 20 derece ekle ve servoyu hareket ettir.
  2. 500 ms bekle (daha doğru bir okuma için)
  3. Sharp IR sensörden gelen mesafeyi oku.
  4. Mesafe ve açıdan gelen bilgilere göre merkez nokta kendin olmak üzere bunu kartezyen koordinat sitemine çiz.

Bahsi geçen adımlar için bir timerdan faydalanıp son okuma derecesini integer olarak tuttum. Timer tick fonksiyona ise yukarıdaki işlemleri ekledim oldukça basit.

Microsoft Robotics Studio C# ve IR Sensör ile Engel Tanıma Bu tarz bir tarama işleminin en kötü yanı tarama işleminin aldığı süre zira okuma derecesini düşürürseniz tarama çok uzun sürüyor ama aldığınız veriler daha detaylı oluyor. Dereceyi arttırırsanız ise doğal olarak o açı aralığındaki bir nesneyi kaçırma ihtimaliniz oldukça artıyor.
Okumalarda yaşadığım bir diğer sıkıntı ise ortamın ısısı, ışık, parlaklı ve matlık gibi etkenlerin sharp ir mesafe sensörü üzerindeki etkisi. Sharp IR sensörün gönderdiği ışın ve çarptığı yüzeyin açısı sanki algılamada hata payını arttırıyor. Video da izleyeceğiniz gibi eğimi düşük yani ışını daha küçük bir açıyla çarptığı noktalar algılanan mesafede değişimlere sebep oluyor. Geniş açıdan baktığımızda ise turret'ın dönme hareketi ile okumalar arasında bir ilişki olduğunu söyleyebilirim. Duvar gibi düz bir yüzeyi çizgi olarak algılamak yerine eğri olarak algılıyor. Bunun üzerine yoğunlaşmam ve ışının olası çarpma açılarını değerlendirecek bir normalizasyon algoritması üzerinde çalışmam gerekecektir. Yoksa robot olduğunu düşündüğü yerde hiçbir zaman olamayacak ve engel olmadığını düşündüğü yerde bir engel ile karşılaşacaktır. Bunların hepsi ayrı bir dalın uzmanlık alanı bu sebeple ileride odometri ve slam algoritmaları üzerine biraz daha yoğunlaşacağım.

Bir sonraki denememde servoyu sadece gerekli olduğu zamanda kullanarak okuma yapmak ve hareketli olarak yapılan algılamalar üzerinde yoğunlaşacağım. Bu durumda önümde SLAM algoritamaları, odometri gibi kavramlar beni bekliyor olacak. Engellere takılmamanız dileğiyle.

8 Mayıs 2008 Perşembe

Robotik Rota Planlama. Gidilecek Açı ve Mesafe Bilinen Noktanın Koordinatlarını Bulmak.

Otonom hareket işin içine girince ne kadar sevmesemde matematik ile uğraşmak bir zorunluluk halini alıyor. Robotumun hareketlerini kendi başına yapabilmesi için Kartezyen koordinat sistemi üzerinden rotaların(waypoint) hesaplanması temel trigonometri kullanımını mecburi kılıyor. Örneğin robotumun a(0,0) bilinen noktasından Q açısında c mesafe ilerlemesi istendiği zaman b(x,y) varış koordinatı ne olur? Bu soruyu cevaplamak için ezber halinde verilen ama ne işe yaradığını öğrenemediğim matematik bilgilerim üzerinde düşünmem gerekti. Zira keşke üçgenler üzerinde formüller göstermek yerine örnek kullanım alanlarını da lise de bize öğretselerdi.
SinA = a/c formülBu formül çıkış noktamız oluyor. Biz A açısını ve c yani mesafemizi biliyoruz. Böylece a = SinA x c ve b=CosA x c oluyor. Artık x ve y ekseninde kaç birim ekleyeceğimizi bildiğimiz için a(0,0) noktasından b(?,?) noktasına gidiş için a(0+a,0+b) bizim varış noktamızın yani b noktasının koordinatları oluyor. C# math class yardımıyla bu hesaplamaları basit bir kod yazarak yapabiliriz. Örnek olarak aşağıda yazdığım kodun bir bölümünü bulabilirsiniz.

double rada = double.Parse(numDirection.Value.ToString()) * (Math.PI / 180);

double sina = System.Math.Sin(rada);
double da = sina * Double.Parse(numDistance.Value.ToString());

double cosa = System.Math.Cos(rada);
double db = cosa * Double.Parse(numDistance.Value.ToString());

int x = lastx + Convert.ToInt32(da);
int y = lasty - Convert.ToInt32(db);

fncPaintChangePoint(x, y);
fncPaintDrawLine(lastx, lasty, x, y);

start = false;
lastx = x;
lasty = y;
Artık gidilecek noktamızı açı ve mesafe girerek görebildiğimize göre rotamızı planlamaya başlayabiliriz. Yazdığım ufak bir uygulama ile sonucu görebilirsiniz.


Robotik Rota Planlama ve Waypoint

Gidilecek mesafe ve açı verildikten sonra gördüğünüz gibi bu noktalar işaretleniyor. Rotanızdan şaşmamanız dileğiyle.

16 Nisan 2008 Çarşamba

Beyin ile Kontrol, EEG(Electroencephalography), OpenEEG, Örüntü Tanıma ve Alternatif Kullanım Alanları

eeg dalga örneği1929' da Hans Berger adında bir Alman doktor beyinin elektriksel hareketlerini kayıt edebilen ve bunları grafiksel olarak bir kağıtta gösterebilen buluşunu açıkladı. Ayrıca bu elektriksel hareketlerin beyinin aktivitelerine göre değiştiğini de keşfetti, bu değişimler uyku, oksijen eksikliği ve epilepsi gibi bazı hastalıklarda da ortaya çıkıyordu. İlk başta, diğer bilim adamları kendisine gülmesine rağmen çalışmaları klinik neuro fizyoloji alanında çığır açtı. Teknoloji günümüze kadar oldukça gelişti ve iş bilgisayarları bu yöntemle kontrol etmeye kadar geldi. Tabiki bunu "acaba herhangi bir cihazı düşünerek kontrol edebilirmiyim?" sorusunu biraz araştırırken öğrendim. Aklıma ilk gelen robot kontrolü için bu yöntem kullanılabilirmi sorusu oldu? (Resim Kaynak OpenEEG)

Eeg Delta Dalgası ÖrneğiEEG yani Electroencephalography beyindeki elektriksel hareketleri algılayan bir cihaz olduğundan bahsetmiştim. Peki nedir bu elektriksel hareketler? Beyinin farklı bölgelerinde sürekli olarak elektriksel faliyetler meydana geliyor, bu faliyetler bölgeye, algılara ve duyulara göre değişim gösteriyor ve çoğu 1-20Hz aralığında meydana geliyor. Bu hareketleri dalga olarak ortaya çıkıyor ve 5 çeşite ayrılyor Alpha, Beta, Delta,Theta ve Gamma dalgaları. Her bir dalga beyinin farklı bir bölgesinde ve farklı faliyetlerde ortaya çıkıyor örneğin Delta dalgaları 3 Hz e kadar çıkabilmekle beraber yetişkinlerin ön loblarda ortaya çıkıyor ve uyurken değişim gösterebiliyor (Sol tarafta örnek bir delta dalgasını görebilirsiniz). (Resim Kaynak: Wikipedia)

Bunları öğrendikten sonra bu dalgalardaki değişimleri algılayarak bunlara tepki veren bir yazılım yapılabilirmi konusunu araştırmaya başladım. İlk aşama olarak bu elektriksel faliyetleri ölçmek ve kaydetmek için bir eeg cihazına ihtiyacım olacaktır? Ancak EEG cihazları oldukça pahalı olduğu için kendime ait bir tane yapmam gerekecektir. Bu sebeple biraz araştırmadan sonra OpenEEG adında bir projeye denk geldi burada kendi EEG cihazını yapmak için devre planları ve bunlara ait firmware'lar mevcut. OpenEEG iki bileşeden oluşuyor Amplifikatör ve Dijital board.

Amplifikatör Modular EEG Amplifikatör Modular EEG (Kaynak http://openeeg.sourceforge.net/doc/modeeg/modeeg.html)

Digital Board Modular EEG

Digital Board Modular EEG (Kaynak http://openeeg.sourceforge.net/doc/modeeg/modeeg.html)

Bu devrelere bağlı elektrodlar yardımıyla beyindeki elektriksel aktiviteleri kaydetmek için bilgisayarınıza bir arabirim sağlayabiliyorsunuz. Mantığıma göre eğer bir değişimi ölçebiliyorsak bunu bir girdi olarak kullanabiliriz. Bu girdi televizyonu açmak ta olabilir yada bir robotu ileri hareket ettirmek te olabilir. Bence buradaki normal dönemdeki patternları ölçerek ve farklı tepkilerimizdeki değişimlerini kullanarak bu tepkilerimizle bir devre yardımıyla acaba kontrol edebilirmiyiz?

Bunu öğrenmek için önce mevcut projemi bitirmem, 200€ luk bir tasarruf yapmam ve bu konudaki iştahımı arttırmam gerekiyor. Şimdilik sadece bir düşünceden ibaret.

15 Nisan 2008 Salı

12V u 5V a düşürmek

12v 5v a düşüren devre lm2575 devre şeması Daha önce robotuma SBC monte etmek istediğimden sözetmiştim. Bu isteğimle beraber 12V luk akümden 12V çeken serializer.net in yanına 5v çeken bir sbc kullanmam gerekiyor. İkisini aynı aküden besleme isteğimle beraber (ağırlık meselesi) bu tarz işlemleri yapmak için %45 verimlilikle çalıştığı söylenen lineer voltaj regülatörleri ve %80'e yakın verimlilikle çalışan switching voltaj regülatörleri olduğunu öğrendim. Bu switching voltaj regülatörlerini aramama rağmen bulamamla beraber esnaf arkadaşlar bu işi kendimin yapabileceğini söyledi. Kendi devrelerimi hazırlamaktan sürekli kaçmama rağmen bulduğum şemayla beraber gerekli devre elemanlarını istedim ve kendim yapmaya karar verdim.12v 5v a düşüren devre lm2575 devre şeması

Henüz fiyat gelmemiş olmasına rağmen 10 YTL gibi bir rakama bana patlayacağını esnaf arkadaş iletti. İşin ilginç yanı ise bana ikinci kez "bu işlere girişiyorsan eninde sonunda eline havya alman gerekecek" demesiydi. Sanırım temel olarak elektronik öğrenmem gerekecek ve bu da ilerideki belki olabilecek daha karmaşık projeler için gerekli ve faydalı olacak.

12 Nisan 2008 Cumartesi

İlk Robotumun ve İlk Hareketleri

Uzun bekleyişler ve biraz hayal kırıklığından sonra ilk robotumun ana hatlarıyla montajını bitirdim. Şu an için encoder bağlı değil ancak video da göreceğiniz gibi servo ve motorlar çalışıyor. Bir adet usb kamera eklemeyi de ihmal etmedim. SBC için bir regüle devre hazırlar hazırlamaz SBC nin montajını da yapacağım böylece artık laptop'a bağlı kalmama gerek kalmayacak ve robot kapalı bir sistem olma yolunda bir adım daha atmış olacak.



Microsoft Robotics Studio C# ile yapılan bir robotMekanik aksam beklediğimden çok daha iyi oldu plexiglass sakat ama kolay çalışabilir ve şık bir malzeme. Robotun ortaya çıkması ve belirginleşmesiyle beraber insan daha bir heyecanlanıyor. Bu arada eşimden robotun çok güzel olmasına rağmen çekimin ve çekim yerinin çok kötü olduğuna dair bir yorum aldım. Robotumu masadan kaldırıp evde dolaşırken bir video daha hazırlayacağım ancak bu konuda şu an için zaman harcamak istemiyorum. En azından bir fikir vermesi açısından bu ilk hareketler şimdilik yeterli olur sanırım.

Herkesin hayallerinin gerçek olması dileğimle.


Mekanik ve Robotik

Sunta şasi ile tasarladığım robot. Servo kontrolü ve tek motor ile sürmek konusundaki endişelerimi paylaşmıştım. Bunun dışında aksam olarak ilk bulduğum ahşap, kalem gibi parçaları kullanmak hata payının oldukça artmasına sebep oldu. Örneğin servo ile yön vermek bir işkence idi zira servoya gönderdiğiniz +10 derece komutu her serferinde ayrı bir etki yapıyordu sanki servo canlanmış o anki ruh haline göre takılıyordu. Bunun sonuçlarına ise "Autonoumus Navigation" açısından baktığımız zaman robotun nerede olduğunu bilmesinin imkanı yoktu zira sensörler 5 gittim derken mekanik aksam 2 gidebiliyordu(Matrix gibi algılarınız sizi acaba yanıltabilirmi).


Ayrıca aldığım eski akünrobot için küçük kru akü 12 voltün oldukça ağır ve büyük olduğunu fark ettim. Bu sebeple çok komik bir fiyata daha küçük ve hafif bir akü alıp denemek istedim. Güç konusunda bir ihtiyacım baştan beri var aslında. Single board computer kullanımından daha önce bahsetmiştim, buradaki sıkıntı ise SBC'nin 5V Serializer.NET'in ise 12V ile çalışması. Bu sebeple bir "Switching Voltage Regulator" kullanma ihtiyacı doğuyor zira enerjiyi ısı olarak kaybetmek yerine daha verimli bir şekilde kullanmak istiyorum. Ne kadar çok verim o kadar az şarj demek çünkü. Aslında robotics connection daki arkadaşlar bu konuda çok güzel küçücük bir devre hazırlamışlar ancak yurt dışından böyle bir şey için 30$ ödemek bana lüks geldi.
Gelelim fikir değişikliklerine aldığım 2 yeni motor ile birlikte servo sürüşünden vazgeçtim ve difransiyel olarak sürme konusunda karar kıldım. Boşa çıkan servo ile ise Sharp Sensörleri için bir turret yaparak dönmesini sağlamayı düşünüyorum. Ayrıca bu turret üzerine bir webcam de ileride monte edebilirim. Şimdilik ilk hedefim "Drive By Wire" konusunda bir adım atmak.

11 Nisan 2008 Cuma

Evlilik, Robotik ve Sağlık Hakkında

Bu yazının başlığını okuyanlar diğer makalelerimle karşılaştırdıklarında eşimin biyomekanik bir yapıya sahip olduğu fikrine kapılabilirler en baştan sizi temin ediyorum eşim %100 et ve kemiktendir. Günümüzde kendimizi ancak sıkıştırdığımız zamanlarda yaşıyoruz belkide bu sebeple hayatımız sevdiklerimiz arasından seçim yaptığımız anlarla dolu. Eşinizin her konuda sizi desteklemesi nasıl bir şey bir fikriniz varmı?

Kendimin bile emin olmadığı konularda beni iten. Yazı yazıyormu diye hiç kimsenin girmediği bir sayfayı bütün gün kontrol eden. Fotoğrafları aktarmadığım için yazı yazmadığımı anlayarak bozuk cardreaderlı laptop'a kartı tanıtmak için sabırla uğraşan ( ki iş kolu olarak bilgi teknolojileri alanında çalışan benim). Getireceği ekonomik, sosyal yükler ne olursa olsun bir kere bile aldırmadan her serferinde hayallerime, fikirlerime saygı duyan dünya tatlısı bir eşe sahipim. Düşündümde küçük yaşlarımdan beri bu tarz hobilerle uğraşmak istememe rağmen ancak evlendikten sonra buna başlamam zaten kendi kendine bir şeyler anlatıyor. Biz erkekler düz mantık adamlarız o yüzden özetlemek gerekirse ana fikir "Beyler robot yapmaya başlamak istiyorsanız evlenin!" gibi bir yargı olabilir.
Edindiğim parçalar ile birlikte robotumun mekanik aksamını para harcamamak için boşta bulduğum ahşap, kalem, eski printer parçalarından yapmaya çalışmıştım. Güç vermem ile birlikte aksamın kötü modifiye edilmiş bir serçe'ye benzediğini fark ettim. Zira sensörler doğru açılarla hizalanmamış, tekerlekler düz bir hat üzerinde oturmamış, servolar verilen komut dışında kendi benliğine sahipmiş gibi davranırken bütün düşüncelerimi gözden geçirmek zorunda kaldım. Birinci olarak servo ile bu aleti yönetmek konusundaki korkularım kabusa dönüştü ve bundan vazgeçtim. Sonuç olarak bütün ahşap, kalem gibi ıvır zıvırlardan vazgeçip düzgün bir başlangıç yapmak için Ankara Ulus'taki "Elektronikçiler Çarşısına" Gittim dükkandakilerin bilgisine, malzemelerin çeşitliliğine hayran kaldım açıkçası zira aradıklarımı bulmak konusunda çok umutlu değildim fakat çalışır durumda palet aksamı dahil bulmamla beraber bütün fikirlerim değişti.
Gittiğim dükandan 2 adet redüktörlü ve encoder'li motor aldım (Tek Kanal Encoder), bunun dışında şasi imalatı için plexiglass, vida, somun,ve daha küçük bir akü de temin ederek eve geri döndüm. Plexiglass çok zevkli bir malzeme ancak siz siz olun plexiglass keserken ki özellikle Dremel gibi bir rotary araç ile keserken güneş gözlüğü gibi bir korumanın yeterli olacağını düşünmeyin. Ben siz yapmadan bir deney gerçekleştirdim,saolsun eşim hastanede gözlerime ait fotoğrafı paylaşmak için çekti, düzgün korumanın önemi konusunda daha iyi bir fikir edinmek üzere inceleyebilirsiniz.

plexiglass kaçmış gözün fotoğrafı

Biz eşimle her çarşamba günü genelde oturur birlikte televizyon izleriz ancak bu çarşamba farklıydı çünkü aldığım parçaları denemek için sabırsızlanıyordum eşimde yeni oyuncaklarımı denemem konusunda bana destek oldu. Plexiglass ı kesmek için ölçtüm, biçtim, çizgileri çektim havalı kesiyim diye Matriximsi güneş gözlüklerimi de taktım ve dremel'i çalıştırdım. Bir süre kestikten sonra sıcak plastik malzemeler un ufak olup üstüme sıçramaya başladığını fark ettim, ancak sıcak plastiğin dayanılabilir ve güneş gözlüğünün gözlerimi korumaya yeterli olacağını düşündüm. Fakat yanılmışım, o sıcak plastik tozlardan bir demet yukarı doğrı fırladıktan sonra sol gözümün alt kapakçığına oturdu. Eşim bu konuya alıştığı için 5 dk içinde hazırlanmıştı (biz erkekler yaramaz çocuk gibi olabiliyoruz). Daha önce gözümle ilgili yaşadığım diğer travmalardan konuya alışkın olduğumdan(bile bile yine yaptım) gözümle hiç ama hiç oynamadan direk olarak hastaneye doğru eşimle beraber yola çıktım. Yolda gözlerim yaşarmaya başlamış ve batma hissi çok artmıştı ama yinede gözüme dokunmadım. Bu yazıyı okuyanlara bir uyarı gözünüze bir şey kaçarsa (toxic olmayan) sakın çıkarmaya veya gözünüzle oynamaya batma hissine rağmen çalışmayın, gözünüzü mümkün olduğunca hareket ettirmeden doğruca hastaneye gidin. Hastanede işlemler yapılıp acile girmemle beraber biriktirdiğim o koca göz yaşları bir anda damladı ve gözümdeki o parçalar ne ise çıkmıştı zira batma hissi bir anda geçmişti. Ancak mikrop kapmasını önlemek için doktorlar gözlerimi serum ile yıkamaya karar verdi. Bakın bir koruma neler değiştiriyor.

plexiglass ameliyat masasında gözden çıkarılırken fotoğraf

Sonuç olarak ekonomik olarak ta güneş gözlüğü ile bu işe kalkışmak mantıklı değil. Zira taxi gidiş ve dönüş 15 ytl, acilde tedavi 55 ytl, teramisin göz pomadı 1ytl ve gözünüz pahabiçilemez olarak hesaplarsak. Toplam fatura Pahabiçilemez+71 YTL ye geliyor, peki koruma gözlüğü ne kadar biliyormusunuz? Sadece 2 ytl!

Tüm hayalperestlere mutlu evlilik ve kazasız hayaller dileklerimle.

7 Nisan 2008 Pazartesi

Serializer.Net ve Sharp GP2D12 Infrared Sensör hakkında

Serializer.Net e bağlanabilir devre elemanlarının çeşitliliği konusunda Serializer.Net User Guide dan bilgi alabilirsiniz. Tekerleklerin dönmesini ve attığı tur sayısı üzerinden mesafeyi ölçebileceğiniz quadrature wheel encoder benim yapmayı düşündüğüm tasarımda bu encoderlar tekerlek yerine motor üzerinde zaten bulunuyor.

Serializer .NET Robot Kontrolorü ve bağlanan bileşenler

Bu sebeple tekerleğin çapı ile ilgili ufak bir matematik hesabıyla birlikte ne kadar mesafe katettiğine dair veri alabiliyor olacağım, tabiki teorik olarak. Zira cimriliğim yüzünden 2 motor kullanarak difransiyel olarak motoru sürmektense tek motor ve bir servo yardımıyla motor sürmek gibi bir fikire kapıldım bu bana 30$ gibi bir tasarruf sağlasada pişman olmama az kaldı. Bunun nedeni ise servo ile yön verdiğimiz zaman bu hesapların oldukça karmaşık bir duruma gelmesi. Diğer bir sıkıntı ise düzgün çalışan bir servo mekanizması yapmanın görünenden daha zor olması.

Sharp GP2D12 IR Sensor

Sürüş ve mesafe demişken duvar gibi engelleri algılamak için yine biraz cimrilik yaparak 3 tane Sharp GP2D12 IR Sensor aldım. Bu sensörler 10cm ile 80cm arasında ölçüm yapabiliyorlar ancak yüzeyin mat ve parlak olması ölçümlerde farklılık yaratabiliyor. Sensörler doğrusal olarak ölçüm yapıyor yani görünüşüne bakarak 60 derece bir açıda ne var ne yok ölçüm alacak diye bir fikre kapılmayın. 10cm 4 derece 80 cm ise 30 derece ile algılayabiliyor. Bu sensörlerden gelen verilere göre iki eksende gelen engelleri plot ederek bir harita çıkarmayı düşünüyorum. Burada önemli olan 10 cm den daha yakında bir engel olursa robotun nasıl davranacağı zira bump sensor gibi bir donanım almadım yine cimrilikten ve Gp2d12 bu mesafeden kısa olanları algılamıyor. Eğer daha fazla bir bütçem olsaydı Sonar tarzı sensörleri büyük olasılıkla tercih ediyor olurdum.

5 Nisan 2008 Cumartesi

Serializer.Net ve USB Ttl Modülü

Serializer .Net FotoğrafıSerializer.Net ve diğer devre elemanlarıyla ilgili biraz daha bilgi vermek istedim. Serializer.Net DC motorlar, servolar, analog sensörler, I2C , switchler ve diğer cihazları .NET framework ve Robotics Studio ile kontrol etmek için bize bir interface sunuyor. Üzerindeki TTL seri port'a USB, Serial, Bluetooth gibi farklı seri interface modülleri takabiliyorsunuz. Bu interface aracılığıyla Serializer.Net'i herhangi bir bilgisayar'a bağlıyabiliyorsunuz. Benim tercihim USB modül üzerinden oldu zira kablosuz modüller hem pahalı hem de ben robotumu üzerine bir Single Board Computer koymayı düşünüyorum. Böylece kablosuz aktarım benim için bir sorun olmaktan çıkıyor. Eğer ileride kablosuz veri aktarımı tercih edersem bunu direk olarak Serializer.Net'e modül takarak değil bunun yerine SBC üzerine takılan bir modül ile yapmayı düşünüyorum. Bunun nedeni ise robotumun kendi başına ihtiyacı olan her şeyi barındırmasını istemem. Zira kablosuz bir modül kullansaydım SBC nin başka bir lokasyonda bulunması gerekebilirdi. Tamamiyle tercih meselesi.
Seri Usb TTl Serial Modülü
TTL Portuna USB Modülünü oturtuktan sonra ve güç bağlantılarını yaptığınızda Serializer.Net çalışmaya hazır oluyor. USB den makinanıza bağladığınızda bunu bir seri port olarak XP de otomatik olarak tanıyor. Hyperterminal ile Baud ve parity ayarlarını yaptıktan sonra komutları göndererek led, servo pozisyonu, sensör okumaları gibi işlemleri burası üzerinden de yapabiliyorsunuz ilk denemeler için hızlı ve basit bir çözüm.



4 Nisan 2008 Cuma

C# .Net ve Microsoft Robotics Studio ile Harita Çıkaran ilk Robotum

Robot Şasi Tasarımı Çok uzun zamandır kendi robotumu yapmak istiyordum ve bir miktar yatırımla donanım üzerinde karar kıldım. Mekanik aksamı hazır almak fiyat üzerinde oldukça fark yaratacağından bu aksamı kendim yapmaya karar verdim.

Sensörler, motor, servo ve kontrol kartı için .Net ve C# üzerinden bu devre elemanlarını kontrol etmeyi sağlayan Serializer.Net platformunu tercih ettim. Oldukça yeni Microsoft Robotics Studio desteği olan bu platform .Net üzerinden devre elemanlarına oldukça kolay erişim sağlıyor. Robotics Connection tarafından üretilen ve tasarlanan parçaları sipariş ettim ve yüklüce bir kargo parası vermeyi de ihmal etmedim. Tabiki verdiğim siparişin 100$'ı aşması sebebiyle gümrüğü takılması kaçınılmazdı bu sebeple Türkiye'ye girişte yüklüce gümrük ödemeyi de kabullendim.

Siparişini verdiğim parçalar şu şekildeydi.
  1. Sharp IR Sensor Cable 3 adet 8,97$
  2. Serializer .NET Robot Controller 1 adet, 3 Sharp GP2D12 Infrared Sensors & Cables, +1 Pack of 5, 12" Female-to-Female Jumper Wires, 186,84$
  3. Optical Encoder Modules & Disks 1 adet 29,95 $
  4. DC Gearhead Robot Motor 37,97 $
  5. Hitec HS-322HD Servo 9,99$
  6. Kargo 38,13$

Toplam 311,83$ tuttu, ancak gümrüğe girmesiyle beraber tam hatırlamamam ile birlikte yaklaşık 100 YTL de gümrük ödemek durumunda kaldım.

Yüklü bir para vermeme rağmen bu parçaların ilerideki projelerim için yeniden kullanabilme fırsatım bunu uzun vadeli ve mantıklı bir yatırım olarak görmemi sağladı. Eşimin bu konuda bana desteği olmasaydı böyle bir parayı vermem imkansıza yakındı. Kadınlar çok ikna edici oluyorlar.

Bu parçaların tamamını ilk robotum da kullanmayacak olsamda ilerideki projelerim için satın almayı tercih ettim zira kargo ücreti oldukça yüklü tutuyor. Bu projemde Optical Encoder kullanmayı düşünmüyorum zira motorun üzerinde zaten bu encoder lardan bir tane geliyor.

Parçalarım gelmesi yaklaşık olarak 3 hafta sürdü ve inanın bana beklediğim her saniyeye değerdi. Kargo küçük bir kutuda gelmesine rağmen çok iyi paketlenmişti. Robotics Connection bu konuyu oldukça ciddiye alıyor zira kutunun içinde daha önce hiç bir kutuda görmediğim hava yastıkları vardı. Bu yastıklar büyük olasılıkla parçalara düşme çarma anında bir hasar gelmemesi sebebiyle özenle yerleştirilmişti.

Bu parçaların gelmesiyle birlikte bir hayalime daha yaklaşmış oldum. Bir sonraki yazımda projemle ilgili ilk denemeleri aktaracağım ayrıca yapacağım robot ile ilgili daha ayrıntılı bilgi vermeye çalışacağım.

Eski Fotoğraf Kurtarma ve Fotoğraf Renklendirme Devam

Arkadaşımın gönderdiği diğer fotoğrafları bitirememiştim. İşte onları bitirme fırsatı buldum. Bu sefer biraz daha detaylı oynadım üzerinde. Kıyafetler üzerindeki şekillere de doğal bir hava vermesi için renk kattım.
Yıpranmış eski iki kadın fotoğrafıDüzeltilmiş ve renklendirilmiş eski iki kadın fotoğrafı
Bir diğer fotoğraf ise çok daha zor oldu zira fotoğraf çok yıpranmıştı ve nerdeyse silüet halindeydi. Flu olan fotoğrafta detayları ortaya çıkarmak için uğraşsamda filtrelerin sıkıştığı yerde fırça kullanmak zorunda kaldım. Tabiki kaynak fotoğrafa göre biraz ifadede farklılıklar oldu.
Eski ve yıpranmış eski çocuk fotoğrafı
Düzeltilmiş ve renklendirilmiş eski çocuk fotoğrafı
Nice yeni fotoğraflarda görüşmek üzere.

1 Nisan 2008 Salı

Eski Fotoğraf Kurtarma ve Fotoğraf Renklendirme

Eski Siyah Beyaz Asker Askerlik Fotoğrafı Eski siyah ve beyaz fotoğraflar hep hüzünlü gelir bana. Eski raflardan indirilen fotoğraflar değilde anılar,geçmiş ve zamanın kendisidir sanki. Bir iş arkadaşımın babasının eski ve yıpranmış fotoğraflarını kurtarmak istemesi üzerine ufak bir denemeye giriştim. Taranmış fotoğrafları elde ettikten sonra sonra sabır gerektiren ama oldukça keyifli bir işe giriştiğimi fark ettim. Belki ileride bunun nasıl yapıldığına ilişkin daha detaylı bir yazı yazabilirim. Burada konusu geçen işlemler artık herkesin bildiği yada en azından duyduğu "Adobe Photoshop" adlı yazılım ile yapılıyor.

Düzeltilmiş Eski Siyah Beyaz Asker Askerlik Fotoğrafıİlk önce oldukça yıpranmış fotoğrafın üzerinden zamanın kötü izlerini yoketmek ile başlıyoruz. Fotoğraflar anı korusa da zamana bizim gibi yenik düşüyor. Zamanın biriktirdiği etkenler anıyla birlikte fotoğrafın kendisini de yaşlandırıyor. Solan ve sararan fotoğrafın kontrastını düzeltmek en azından kısa süre önce çekilmiş bir siyah beyaz fotoğraf havasını yaratmaya yardımcı oluyor. Yırtılmış, delinmiş ve lekeli bölümleri çıkarmak için ise sağlam bölümlerden parçalar alarak kötü durumdaki alanların üzerine yapıştırmaktan başka bir şey yapmıyorum. Yıllar öncesinin kağıtları da günümüzün kağıtlarına benzemediği ortada. Daha pütürlü olan eski kağıt fotoğrafın net görünmesine engel teşkil ediyor. Deri, kıyafet gibi alanları sadece seçerek bunları hafifçe flulaştırmak bu pütürlü yüzeyden kurtulmama yardımcı oluyor.

Düzeltilmiş Eski Renkli Renklendirilmiş Asker Askerlik Fotoğrafı
Fotoğrafı kurtardıktan sonra açıkçası o dönemdeki renklerle fotoğrafın neler ifade edebileceğini çok merak ettim. Nedense geçmiş hep siyah ve beyazdan ibaret. Atatürk'ün renklendirilmiş fotoğrafları hep ilgimi çekmiştir. Sanki fotoğraf renklenince geçmiş ile şimdiki zaman daha da yakınlaşıyor. Siyah ve beyaz e bürünen acaba tarihe gömülüyor olabilirmi?

Fotoğrafı renklendirmek için biraz dış bilgi gerekti açıkçası zira üniformanın ne renk olduğunu kestiremedim zira babasının karacımı havacımı oldu suallerinden sonra yeşil bir üniformanın uygun olacağına kanaat getirdim. Gözler ise ayrı bir fırtına konusu oldu zira iş arkadaşım babasının göz rengini hatırlayamadı bende mavi olabileceğini düşünüp (kendisinin ki de mavi) tercihimi bu yönde kullandım. Saat gibi aksesuarlar üzerindeki hafif renklendirme de detay kattığı için bence yerinde oldu.

Fotoğraf sahibinin değişimi ilk gördüğü andaki ifadesi benim için büyük bir merak konusu olsada istekte bulunan arkadaşımın yüz ifadesi de yeteri kadar anlam ifade ediyor.

31 Mart 2008 Pazartesi

Bölüm, Bölen ve Kalan

Nelson Mandela nın Fotoğrafı Aslında ilk yazımı özgüven ve herkesin erişebileceği bir internet günlüğü üzerine yazmayı düşünmüştüm ancak daha ilk kelimeyi yazmadan birbirinden alakasız sayısız telefon ve mesaj almam ile birlikte planlarımda küçük bir değişiklik yaptım.

Her gün bir başlangıç yapmak isteyip araya giren diğer başlangıçlar sebebiyle hayatınızda tamamlamadığınız başlangıçları hiç düşündünüzmü? Saniyeler içerisinde aklınıza gelen parlak fikirlerin daha bir yere yazamadan bir dış etken sebebiyle dikkatinizin dağılması ve yarı parlak fikrinizle ilgili bütün motivasyonunuzu kaybetmeniz. Yeni düzen işte bu olsa gerek. Kimsenin kimseyi takmadığı, müsaitmisin sorusunun sorulmadığı, hiç bir şeye dikkat edilmediği, özensiz yapılanın makbul olduğu, özensiz ve dikkatsiz bir dünya.

Merak ediyorum insanların inzivaya çekilme isteği nereden geliyor ve bazen anlıyorum. Kendinle başbaşa kalabilmek hem de hesap vermeden. Mükemmele yakın her maddenin ve manevi duygunun ancak arıtılmış bir ortamda ortaya çıkması bana çok olası geliyor. Örneğin aşk'ı ele alalım; hiç kimsenin anılarından bahsederken "sonra telefonum yine çaldı! ve ben tüm dikkatimi telefonuma vermeme rağmen ona aşık olmuştum!" dediğini duydunuzmu? Geçenlerde bir stand up show da ironik bir tespit yapmıştı komedyen. Mandela 27 sene süren işkence ve hapisten sonra yanlış hatırlamıyorsam karısıyla evli kalmaya 6 ay dayanamamıştı. Bunu karıma dayanamadığımdan söylemiyorum(onu çok seviyorum). Mandela bu sürenin belkide düşünmek ve kendini yaşamak için iyi bir fırsat olduğunu düşünmüştür. Nitekim adam "En azından karımın dırdır'ı yok" diyerek bir motivasyon örneği sergilemiş ve hayatta kalmayı başarmış. Bu "dırdır" sız dönem sonrasında ise 1993 te Nobel Barış Ödülünü almıştır.


Herkese bölümsüz,bölensiz ve kalansız bir hayat dileğiyle.