Arduino’nun Anlatılmayan Hikayesi -1- Wiring’in Doğuşu

Arduino şu an gündemdeki yerini kaybetse de bir dönem medya tarafından oldukça şişirilen bir geliştirme platformu idi. Mblok ve Scratch gibi şekilleri birbirine uydurup programlama yaptığımız sistemler yaygınlaşmadan önce sürekli Arduino’yu tanıtmaya yönelik makaleler yayınlanıyordu. Bazılarına göre ise Arduino yüzyılın icadı idi ve yapabileceklerimiz ancak hayal gücümüzle sınırlıydı.  Bilgisi olmayan insanları manipüle etmenin yollarından biri böyle yaldızlı ve yalan sloganlar idi. Sonrasında iki düğmeye basıp robot yaptım diye sevinen insanlar ortaya çıkacak ve devamında hazır kitleri yüzlerce dolara alan bir kitle ortaya çıkacaktı. Öyle bir dönemde Arduino Eğitim Kitabı’nı yazarak Arduino’nun ne olduğunu ortaya koyma adına bir girişimde bulundum.

Şimdi ise Arduino hakkında yeterli Türkçe kaynak olmasına rağmen Arduino’nun eski popülerliğini göremesem de (belki yükselen döviz kurlarından) sizinle Türkçe kaynaklarda okuyamayacağınız bir bilgiyi paylaşacağım.

Üstelik bu bilgi bizzat Arduino’nun gerçek öncüsü olan Hernando Barragán tarafından yazılmıştır. Barragan, şu an Arduino’nun esas aldığı Wiring platformu fikrini ortaya atan asıl kişidir. Kendisi kendi dilinden bu süreci yazmış ve paylaşmıştır. Şu bağlantıdan yazının tamamını okuyabilirsiniz.

https://arduinohistory.github.io/

Ben ise  Barragan’ın kendi ağzından anlattığı Arduino’nun tarihini kısa kısa sizinle paylaşarak Türkçe’ye kazandıracağım. Şimdi yazımıza başlayalım.

Neden Bunu Yazıyorsun ?

Merhaba, Benim adım Hernando Barragan.

Yıllar boyu insanlar tarafından Wiring ve Arduino’nun tarihi üzerine sorular aldım.

Arduino’nun tarihi pek çok insan tarafından yazılmıştır. Hiç biri de birbiriyle uyuşmaz. Ben Arduino etrafında dönen bazı gerçekleri aydınlığa kavuşturacağım. Ayrıca bunları delilleri ile beraber paylaşacağım ki sizinle daha iyi iletişim sağlayabileyim.

Ayrıca, benim hakkımda yazılan yanlış yazıları düzeltme gayreti içinde olacağım.

Neden Wiring Dilini Ortaya Attın ?

Wiring diline 2003’de Master (Yüksek lisans) tez projesi olarak İtalya’da  Interaction Design Institute Ivrea (IDII)’de başladım. Bu tezin amacı sanatçılar ve tasarımcılar için  (Çevirmen Notu: Fark edilirse mühendisler veya geliştiriciler için denmiyor.) elektroniği kolaylaştırmak ve karmaşık ayrıntıları ortadan kaldırıp kendi işlerine odaklanmalarını sağlamaktı.

Tezin tamamı şuradan okunabilir:

http://people.interactionivrea.org/h.barragan/thesis/thesis_low_res.pdf

Massimo Banzi ve Casey Read (Processing ile bilinir.) tez değerlendirme kurulundaydı.
(Çevirmen Notu: Banzi ve Read, Barragan’ın hocası olup öğrencinin bu parlak fikrine daha sonra kayıtsız kalamadığı belli oluyor. )

Proje IDII’de oldukça dikkat çekti ve okulun kapanış tarihi olan 2005’e kadar birkaç diğer projede kullanıldı. Tezimden dolayı onur öğrencisi olarak mezun oldum. 2004’de onur öğrencisi olarak mezun olan tek öğrenciydim. Wiring’i geliştirmeye Kolombiya’da Los Andes üniversitesinde çalışırken devam ettim.

Wiring’in ne olduğu benim tezimin özet kısmı okunmakla anlaşılabilir. Bunun 2003 yılında yazıldığına dikkat edelim.

“Programlama ve elektronik için mevcut prototipleme araçları çoğunluklukla mühendislik, robotik ve teknik camiaya yönelik oluyor. Bunları öğrenmesi zor ve bu diller belli bir teknoloji alanına yönelik.”

“Ayrıca bununla bilgisayar programlamak ve prototip yapmakelekronikle öğretilebilir. ”

“Wiring, Processing tabanlıdır.”

Şunlar Wiring’e dair belli başlı ilkelerdir.

  • Basit entegre geliştirme ortamı (IDE). Bu geliştirme ortamı Processing tabanlı olacaktır.
  • Mikrodenetleyiciyi programlamak için basit bir “dil” ya da “framework”.
  • Tam alet zinciri alımı. Kullanıcıya açık olacaktır.
  • Program yüklemeyi kolaylaştıran bootloader.
  • Seri port ekranı ile mikrodenetleyiciden gelen bilgileri okuma ve yazma.
  • Açık kaynak yazılım.

Wiring Nasıl Ortaya Koyuldu ?

Tez yazım okunduğunda süreç anlaşılabilir. Süreci daha kolay anlatmak için birkaç noktaya değineceğim.

Dil

Arduino komutlarının nereden geldiğini hiç düşündünüz mü ? Aşağıdaki komutları çoğu Arduino kullanıcısı programlarında kullanmaktadır. Bu komutların hepsi Wiring için benim tarafımdan yapılmıştır.

  • pinMode()
  • digitalRead()
  • digitalWrite()
  • analogRead()
  • analogWrite()
  • delay()
  • millis()
  • ve diğer..

Mikrodenetleyicinin ayaklarını numaralara indirgemek şüphesiz olarak büyük bir karardı çünkü söz dizimi herhangi bir platformda kullanılmaya yönelik tanımlanmıştı. Bütün dil komutları ve söz dizimi oldukça yorucu bir sürecin ürünüdür. Ben bu komutları öğrencilerle test edip gözlem ve analizlerle ortaya koydum.

Donanım prototiplerini üretmemle dil doğal olarak gelişti. En son prototip yapılana kadar dil tam bir halde değildi. Eğer tasarım aşamasını hala merak ediyorsanız bunu tez dokümanında okuyabilirsiniz.

Donanım

Tasarımcının bakış açısından bu muhtemelen en zor konu olmalıdır. Ben çeşitli üreticilerden deneme kartlarını tedarik ettim. Burada Wiring’e donanım geliştirmeye yönelik bazı noktalar vardır.

Prototip 1

İlk Wiring prototipi Parallax’ın Javelin Stamp kartı oldu. Ben Java ve haliyle Processing ortamında çalıştığım için öncelikli olarak bunu seçtim. Burada problem yazdığımız programı derleme, bağlama ve yükleme işlemleri Parallax’ın kendi programları vasıtasıyla yapılıyordu. Wiring açık kaynak bir yazılım olacağı için bu uygun bir seçim değildi.

Resim: https://arduinohistory.github.io/images/WiringPrototype1-JavelinStamp.jpg

Sonraki prototipler için açık kaynak araçları olan mikrodenetleyiciler tercih konusu oldu. Bu konuda PIC’in açık kaynak derleyicisi olmadığı için PIC mikrodenetleyicileri listemizden öncelikle çıkardık.

Prototip 2

İkinci Wiring prototipi Atmel ARM tabanlı AT91R40008 mikrodenetleyicisiydi ve mükemmel sonuç verdi. Burada ilk program örnekleri yazıldı ve denendi. Byurada Atmel R4008 mikrodenetleyicisi çok güçlü olsa da el ile üretmeye yönelik değildi. Bunu PCB’ye lehimlemek imkansız gibiydi.

Resim: https://arduinohistory.github.io/images/WiringPrototype2-AtmelAT91R40008.jpg

Prototip 3

Önceki prototiplerde yapılan tecrübeler üçüncü prototipe ön ayak oldu. Burada mikrodenetleyici seviyesi aşağı çekilse de halen güçlü bir mikrodenetleyici mevcuttur. Böylelikle ekstra bir parçaya ihtiyaç duymadan kartta çalışabilecektir. Atmel STK500 deneme kartında Atmega128 mikrodenetleyicisini bu prototip için tercih ettim.

Resim: https://arduinohistory.github.io/images/WiringPrototype3-AtmelATmega128.jpg

STK500 ile yapılan testler hemen olumlu sonuç verdi. Bilgisayarlardaki geleneksel COM portları (RS-232) ortadan kalkmaya başlıyordu ve bunun için FTDI çipini seçtim. Böylelikle USB portuna bağlanan çip ile seri iletişim sağlanabilirdi. FTDI Windows, Mac ve Linux sistemler için sürücü desteği veriyordu.

Resim: https://arduinohistory.github.io/images/BDMICRO-MAVRIC-II.jpg

FTDI geliştirme kartı MAVRIC kartına bağlantı ve üçüncü Wiring prototipi ile test edildi.

2004’lerin başlarında MAVRIC kartı esas alınarak ilk Wiring kartı tasarlanmaya başlandı. Burada Drian Dean ve Pascal Stang’ın devre şeması tasarımları referans alındı. Buna göre kart şu özellikleri barındıracaktı,

  • Atmega128
  • FTDI232 Seri-USB Çevirici
  • Onboard LED
  • Power ve Serial Ledleri

Resim: https://arduinohistory.github.io/images/Wiring-schematic.png

Üçüncü prototiple beraber API’nin final versiyonu test edildi ve düzenlendi. Benim eklediğim örnek kodlar halen Arduino’nun örnek kodları olarak kullanılır. Hatta LCDler için, Seri port, Servo motor için yazdığım örnek kodlar Arduino tarafından kullanılmaktadır. Wiring’in Processing ile iletişimi de buna dahildir. Bununla ilgili ayrıntılar tezin 50. sayfasında bulunmaktadır.

2004’ün Mart ayında 25 adet Wiring kartının PCB’si SERP tarafından üretildi ve IDII tarafından ödendi. 25 kartı da kendi elimle lehimledim ve sınıf arkadaşlarımla test ettim.

Barragan’ın yazısı çok uzun olduğu için yazıyı parçalara ayırıp çevirmeye devam edeceğim. Şimdilik burada kalalım ve sonraki yazıda süreci Barragan’ın dilinden anlatmaya devam edelim. Wiring platformunun Arduino’dan geri kalır bir tarafının olmadığını ve Arduino’nun elde ettiği başarıyı asıl hak eden platformun Wiring olduğunu görüyoruz. Sonraki yazımızda ise hikayenin daha ilginç noktalarını göreceğiz.

Kaynak,

The Untold History of Arduino, Hernando Barragan, https://arduinohistory.github.io/, Erişim Tarihi : 14.10.2018

 

Gökhan Dökmetaş

"Arduino Eğitim Kitabı" ve "Arduino ve Raspberry PI ile Nesnelerin İnterneti" kitaplarının yazarı. Başkent Teknoloji ve Dedektör Merkezi'nde Ar-ge Sorumlusu. Araştırmacı-Yazar.

You may also like...

2 Responses

  1. Şahin dedi ki:

    Evet ilginç bir yazı. Arduino ve Wring in tarihini hiç bu şekilde bilmiyordum. Arduino yu İtalya da üniversite de doktora tezi olarak biliyordum.

Bir cevap yazın

E-posta hesabınız yayımlanmayacak.