Uzun süredir yavaş yavaş ilerlettiğim projem olan Carputer hakkında bir makale yazmak istedim. Bu uzun soluklu projenin ilk aşamalarından bu zamana ilerleyişi adım adım paylaşmaya çalıştım. Zaten blog’umda bir çok yazdığım makale Carputer projemle ilgiliydi.Carputer Projesiyle ilgili diğer yazdığım makaleler :

Carputer projesi ilk 2009 yılında başladı. İlk amacım 7 inç dokunmatik bir ekran temin edip bu ekranı aracıma “in-dash” olarak monte etmek ve eski bir laptop’u bu ekrana bağlayıp araçta bilgisayar kullanımına imkan sağlamaktı.

Bu amaçla ilk olarak internette dokunmatik ekran arayışına girdim. CarTFT mağazasını buldum ve birçok seçenek arasından CTF700-SH modelini seçip siparişini verdim. Bu ürün 7 inç boyutlu, güneş altında parlamayı engellemek için güçlü bir arkaışık, ve yansımayı engelleyen özel bir kaplama kullanılmış bir LCD ekrandı. Native ekran çözünürlüğü 800×480 olup 800×600’da interpolasyon edilmiş çözünürlükle de sorunsuz kullanılıyor. Çok arzu ederseniz ürün 800×480 intel sürücüleriyle de destekleniyor. Bu şekilde Windows’un standartta desteklememesine rağmen modifiye edilmiş sürücü ile bilgisayaraınızı 800×480 çözünürlükte kullanabiliyorsunuz. Ama bu düşük çözünürlük windows içinde hiç de kullanışlı değil. Bu arada vakit çok eski değil doğru ama 7 inç bir ekranın 800×480 çözünürlükte olması, 2010 yılı öncesi için hiç de fena bir çözünürlük değildi.

CTF700_SH

Ekran üstüne üstlük gümrükte takılınca bu ilk hamle bana oldukça pahalıya patladı. Şimdiki imkanlar daha uygun, bu ekranı aradığımda Türkiye’de bulmak mümkün değildi.

Ekran 1 hafta sonra elime ulaştı. Bundan sonraki aşama dizüstü bilgisayarıma bağlayıp denemelere başlamak oldu.

Araçta kullanmak için her zaman basit bir ön yüze ihtiyaç duyuyorsunuz. Bu amaçla yazılmış bir çok Carputer uygulaması var ücretli ve ücretsiz olarak. İlk olarak kullandığım uygulama yukarıdaki fotoğrafta gördüğünüz arayüzdü. Bu arayüz CarTFT tarafından ücretsiz dağıtımı yapılan bir uygulama. Basit bir arayüz sunuyor ve kullanımı kolaydı.

Biraz bu tip uygulamaları gördükten sonra kendi uygulamamı kendim yazmam gerektiğini düşündüm ve C#.NET ile 3 yıl boyunca 3-4 farklı birbirini takip eden uygulama geliştirdim.

Eskiden yeniye 3 ekran görüntüsü paylaşıyorum :

Aşağıdaki görüntü aynı zamanda Doğuş Üniversitesi Projistör ’11 Teknik proje yarışmasında birincilik alan proje prototipinden:

Carputer projesi uygulama prototipi

Aşağıdaki görüntü uygulama ön yüzünü Windows standardı kontrollerden kurtarıp Photoshop’ta kendi tasarımımı yapmam gerektiğini anladıktan sonraydı. Temel uygulama özellikleri ve ‘code behind’ büyük oranda aynı kaldı.

CarPad.NET

Temel olarak uygulamada bulunan özellikleri ve bunları nasıl implimente ettiğimden bahsedeyim:

  • Medya Oynatıcısı: Arkaplanda ‘Windows Media Player’ API’ını kullandım. Kullanımı basit tutma amacıyla dosya ve klasörler içinde seçtiğiniz müzik&video dosyasını oynatmaya başlıyor, o klasör içindeki diğer tüm dosyalar içinde sanal bir playlist oluşturup otomatik oynatmaya devam ediyor. Görsel efekt için kullanılan küçük ekran aynı zamanda video göstericisi olarak kullanıyor, çift tıkla tam ekran vb. özellikleri mevcut.
  • Internet TV: Çok ilkel bir şekilde WebView komponentlerini kullanarak Digiturk Play’e bağlanıp kullanıcı doğrulama sağladıktan sonra belli başlı kanalları izlemeye imkan tanıyor. Yöntem ilkel ama bütün kullanıcı girişi ve kanal seçimi işlemleri arkaplanda otomatik yapılıyor. Size sadece ilk ekranda seçtiğiniz kanalı tam ekran olarak izlemek kalıyor.
  • ibbTrafik: İstanbul’da yaşayanlar araç kullanırken trafik durumunu bir taraftan takip etmenin önemini bilir. Bu uygulama da bu amaçla yola çıktı. ibbTrafik web sitesine otomatik bağlanıp mod edilmiş bir önyüz sunuyor. Tabi bunlar yine arkaplanda gerçekleşiyor. Siz sadece harita üstünde parmağınızla sağa sola harita navigasyonu sağlayıp ihtiyacınız olan trafik bilgisini ediniyorsunuz.
  • iGO Navi: iGO’nun PC versiyonunu kullanıyorum. Bu kısımda benim çok yaptığım birşey yok. Sadece uygulamanın açılmasını sağlayıp mevcut ön yüz uygulamamın ‘always on top’ özelliğini devre dışı bırakıyorum.
  • Telefon: Telefon kısmı biraz muamma. İlk projeye başladığımda Nokia N97 kullanıyordum. Cihaz AT komutlarını desteklediği için bluetooth ile cihaza bağlanıp telefon özelliklerini kontrol edebiliyordum.  Bakınız : AT Komutlarıyla Bluetooth Üzerinden Cep Telefonunu Kontrol Etmek 
    Daha sonra iphone kullanmaya başladım ve AT komutlarıyla bir iphone’u yönetemeyeceğimi öğrendim. Hatta hiçbir şekilde yönetemeyeceğimi öğrendim. Bluetooth’la HFP protokolünü implemente edecek bilgim olmadığından, telefonuma jailbreak uygulayıp Veency adlı uygulamayla VNC ile bağlanıp o şekilde kontrol etmeyi denedim. Bakınız: Veency ile iPhone’a uzaktan bağlanmak 
    Daha sonra jailbreak’siz bu işi çözmem gerektiğini düşündüm ve ‘Bluesoleil’ çözümlerine yöneldim. Bluesoleil’in kendi bluetooth API’larıyla bilgisayara kolaylıkla HFP tanımlanabiliyor. Bakınız: BlueSoleil 10
  • Bilgi Ekranı: Araçtan OBD-2 üzerinden veri aldığım ekrandır kendisi. Hız, devir, sıcaklık, motor yükü gibi verileri alıp çeşitli görsel verileri sunuyorum. Hız-zaman grafiği, ivmelenme, vites (aracım düz vites, vites bilgisi gösterebilmek için aracın o anki motor devrini hıza bölüp dişli oranını tahmin ediyorum.) bilgisi gibi verileri yukarıdaki ham datadan elde ediyorum. Aynı şekilde otomatik olarak USB bir GPS’e bağlanıp Google Map API’dan gerçek zamanlı adres verisi alıyorum. Son olarak da OBD-2 üstünden, daha doğrusu bu özellik OBD-2 protokolünden ziyade ELM327 marifetlerinden biri : akü voltajını alıyorum. Bu şekilde kontağı kapattığımda bilgisayar çalışmaya devam ettiği durumda bile akü voltajı kritik duruma geldiğinde bilgisayar otomatik olarak kendini kapatıyor.

Aşağıdaki görüntü Centrafuse için geliştirdiğim bir arayüz çalışmasından;
My Centrafuse Theme

Centrafuse demişken o durumdan da bahsedeyim. En son uygulama için yeni arayışlara gittiğimde Centrafuse adlı bir ön yüz uygulamasını gördüm. Uygulamanın güzel tarafı standart ön yüzleri, özellikleri ve uygulamaları yanında API ve SDK ‘ları aracılığıyla size plug-in’ler ve temalar geliştirme olanakları sağlaması. Bu yüzden bu uygulamayı incelemeye değer buldum ve kurdum. Son 5 ayımı askerde geçirdiğimi saymazsanız 3-4 ay kadar da Centrafuse’u kullandım. Askere gitmeden öncede yukarıdaki temayı tasarlamıştım. Araca CAN-BUS’la bağlanıp araca özel verileri alabildiğimden bunları Centrafuse’a dahil edebilecek bir plug’in ve tema çalışması yapıyordum.

Buraya kadar projenin yazılımsal tarafından bahsettik. Proje yarışmasına katılmadan önce projeyi artık in-dash duruma getirmeye karar verdim. Bunun için önce Maslak Sanayide ses&görüntü sistemleriyle uğraşan yerlerle görüştüm. Çoğu açık söyleyim sallamadı bile beni. Baktım bizim ustalarda vizyon yok, iş başa düştü dedim ve araştırmalara başladım.

2007 model Citroen C4 aracımın fabrika çıkışı ön konsol durumu:
1336149995_25151_FT0_img_20120504_165808

Aşağıdaki fotoğraf 7 inç ekranın ön konsola fabrika çıkışı olarak konmuş hali. Avrupa’daki araçlara (opsiyon olarak) 2-DIN ‘lik bir alana navigasyon, bluetooth ile telefon görüşmesi vb. medya ortamı sağlayan bir sistem takılı. Türkiye’deki araçlarda bu opsiyon yok ve yukarıdaki fotoğrafta görüldüğü gibi 1-DIN’lik, yol bilgisayarı ve Radyo&CD-Çalar  bilgilerini gösteren basit bir segment lcd bulunuyor. Altındaki 1-DIN’lik boş alanı değerlendirmek içinde kapaklı bir bölme yerleştirilmiş.
citroen original navigation 

İlk fotoğraftaki ön konsolu kullanıp ikinci fotoğraftaki gibi in-dash şekilde 7 inç’lik monitörümü yerleştirebilmek için bildiğiniz ön konsolu kestim. İşe aşağıdaki gibi ön gövdeyi havyayla keserek başladım 🙂
file1099

Ön konsol parçasını yukarıdaki şekilde kaba haliyle havyayla eriterek kestikten sonra maket bıçağıyla ve zımparayla plastik çapakları düzelttim.

CarTFT’den aldığım 7içnlik ekran dış plastik kasasıyla birlikte konsol parçasının arka kısmına sığmayınca, ekranın plastik kasasının alt ve üst kısmından çok az keserek konsola tam olarak oturmasını sağladım.

Dokunmatik ekranın, kestiğim konsola yandan oturtulmuş şekli:
file805

Önden Görünüş:
file320

Yukdarıdaki görüntü hiç de iç açıcı değil kabul etmek gerek. Yukarıdaki parça kalından inceye zımparalandı. Daha sonra sağ ve soldan içe doğru boşlukları kapatılmak üzere şampuan şişsesinden plastik parçalar yapıştırıldı kesilerek. Daha sonra macunla boşluklar doldurularak zımparalama işlemine başlandı. Bu macun + zımpara döngüsü 2-3 gün boyunca sürdü. Elimde süreçle ilgili çok daha fazla fotoğraf vardı ama macunlamanın son haliyle ilgili sadece aşağıdaki fotoğrafı bulabildim.

Boyamadan önce konsolun son hali:
Untitled-2

Macunlamadan sonra 3 kat mat siyah sprey boya attım ve aşağıdaki görüntüyü elde ettim:
file256

Ekran bağlantısının tamamlanmasından sonraki problemimiz bilgisayar. Laptop ile bu geminin yürümeyeceğini anladığımda mini-atx bir anakartla torpidoya bir sistem gerektiğine karar verdim. Asus’un DDR3 Ram ve USB 3.0 destekli, video ve ses onboard bir anakartını aldım. Intel i3 bir işlemci ve 60 GB SSD, OCZ marka bir sabit disk kullandım. Mekanik disk araç titreşimleri göz önüne alındığında uzun vadeli değildi ve tabi SSD’nin boot hızına etkisinin gazına geldiğimi söyleyebilirim.
IMG_0350

Yukarıdaki görüntünün hala korkutucu olduğunu kabul ediyorum 🙂 Torpido bu şekilde dağınık gözüküyor ama kapağını kapatınca hiçbir sorun yok. Torpido’nun içinde bulunan havalandırma özelliği ve yeterli bulduğum hacim, kapak kapatıldığında bile bilgisayara güzel bir yaşam alanı sağlıyor.

Bu arada yukarıdaki ekranın sol altından çıkmış soket Carputer Projesinin devamı niteliğinde sürdürdüğüm çalışmalarımın temelini oluşturuyor. Eskiden 7 inç lcd’nin yerinde bulunan küçücük yol bilgisayarı ekranımızın bağlantı soketi. Hem güç hem de veri iletişimi bu hat üstünden sağlanıyor. 3 yıl önce bu veri haberleşmesinin tipinin VAN (Vehicle Area Network) olduğunu sanmış ve konuyla ilgili bir araştırma yapıp aldığım verileri de blogta yazdığım bir makaleyle paylaşmıştım. Osiloskopla yaptığım veri analizinin beni yanılttığını düşündüm ve USB ile bilgisayara bağlanabilen bir Protocol Analyzer satın aldım.

Tam markası modeli aklımda değil ama bunun başka bir varrasyonuydu: http://r.ebay.com/4bgJNr

CAN-BUS varsayımıyla çalışmama bir bakış açısı kazandırınca, anlamlandıramadığım verileri daha anlamlı halde toplamaya başladım. CAN-BUS’tan sniff ederek ulaştığım pek çok veri bulunmakta şu an.  Ama daha çalışma tamamlanmadı.

Screen Shot 2013-05-29 at 10.26.20 PM

CAN-BUS ‘ta uyguladığım reverse engineering başlı başına bir makale konusu bence. Çünkü bu verilerle ilgili herkese açık hiçbir döküman bulunmamakta. Citroen’le de yazıştım. Fransa’da bir kaç firma önerdiler. CAN-BUS ile ilgili test ekipmanları vs. satışı ve eğitimi sunuyorlar. Şimdilik ticari amaçlarımız olmadığına göre, ücretsiz CAN-BUS node ID’lerini ve değerleri de paylaşmadıklarına göre geriye tek kalan Reverse Engineering ile yola devam etmek

Aşağıda araçtan veriyi alıp bunlardan 1 sn – 50 saniye süreler arasında sample’lar alıyorum. Analiz için çok fazla veriye ihtiyacım olduğu için tüm verileri MYSQL veritabanında tutup o şekilde veri üstünde çalışıyorum. Analiz sırasında SQL komutlarıyla veri analizi yapmak hız ve kolaylık açısında son derece beni hızlandırıyor. Ama dediğim gibi bu çalışmanın konusu burası değil. Tamamlandığında bu konu ayrı bir makaleyi hak ediyor 🙂
IMG_0347

Citroen C4 Teybe AUX Bağlantısı

Değinmediğimiz diğer bir konu da bilgisayar ile orjinal teyp arasındaki ses bağlantısı. Blaupunkt marka teybin AUX girişinin yazılımsal olarak etkin duruma getirilmesi gerekiyor. Bu işi Altunizade Citroen Servisi’ne gidip yaptırdım. 30 TL’ye mal oldu. (5 dakikalık bir işlem )

Ses bağlantısı için teybin arka kısmından 3 adet pin kullanıyoruz (Sağ Ses+, Sol Ses+, ortak toprak). (Aşağıdaki imajı çok zaman önce bir türkçe forumdan almıştım. Yazan arkadaş kusura bakmasın kaynağı hatırlayamadığım için belirtemiyorum.)
file346

Yapacağımız kablonun bir ucu bu şekilde oluyor. Diğer ucu ise 3.5mm stereo jack. E-Bay’de hazır kitler bulmak mümkün. Ben yaklaşık 3 yıldır kendi yaptığım haliyle kullanıyorum arada temassızlık sorunları oluyor. Bağlantı için hazır kit almanın daha sağlıklı olduğu kesin.

Carputer Güç Kaynağı

Diğer bir konumuz ise Carputer projemizde kullandığımız bilgisayar anakartını beslemek. Bu amaçla DC-DC bir çevirici kullanıyorum. M4-ATX diye bir güç kartı.

M4-ATX_newcable

Bu yukarıda gördüğünüz küçük kart bilgisayarı beslemekle kalmıyor aynı zamanda ‘ignition’ beslemesiyle yarım kontak yapıldığında bilgisayarı otomatik çalıştırıyor, tekrar araç durdurulduğunda bilgisayarı hibernate&shutdown&sleep edebiliyor. Akü voltajı kritik duruma geldiğinde elektriği otomatik olarak kesebiliyor. Daha bir çok işlevsel özelliği var.  Cihazın teknik dökümanını buradan indirebilirsiniz.

Torpidoda bulunan ekipman: Asus Mini-ATX Anakart + M4-ATX DC-DC Güç Kaynağı + SSD Disk

ve Sonuç:

Carputer - Citroen C4

Carputer – Citroen C4

Projenin devam niteliğindeki yazılarıma aşağıdan ulaşabilirsiniz:

  1. Arabaya Tablet Montajı – iPad Mini
  2. Arabada iPad mini – Direksiyon Kontrolleri
  3. Arabada iPad mini – Direksiyon Kontrolleri