16 Ocak 2018 Salı

R-bot


Robot deyince aklınıza insan görünümlü otomatlar olan androidler gelmesin. Bu tür uygulamalar için otomatik kontrol sistemleri henüz emekleme aşamasında olduğu için pahalı yatırımlar ve araştırmalar gerektirmektedir, ki  bol sıfırlı kazancı olan şirketler ve para kazanma amacı gütmeyen üniversite gibi araştırma için üzerrinde çalışmalar yapılabilir olmaktadır. Bu alanda bizim payımıza düşen nispeten daha yapılabilir ve kullanıcıya ulaşılabilir tekerlekli robotlar.

Düşünürsek, NASA'nın Mars gezegeni üzerindeki Curiosty, Opportunity. Spirit gibi robotları bizim o beklediğimiz insansı robotlar yerine çek çek arabaları andıran tekerlekli makinelerdi. Kaldı ki, engelden kaçma, yolunu bulma ve gerektiğinde analiz yapabilme kapasitesi olan makinelerdi. Çünkü  Mars ile dünya arasındaki haberleşme 25 dakikalık bir gecikme içeriyordu. Aynı şekilde Amazon internet pazarlama şirketi ürün taşımasında akıllı robotlar kullanmakta. ki robotları tekerlekli taşıma arabalarıdır.
Resimde paket içeriği görülmektedir. Rbot gövde, pil yuvası,Rbot kontrol kartı, Ardunio UNO, motorları (tekerlekleri ile birlikte, serbest tekerleği, hatta pilleri ile birlikte.

Burada anlatmaya çalıştığımız otomat olarak (robot diyelim) giriş seviyesinde üzerinde çalışmalar gerçekleştirebileceğimiz bir platform sunmayı amaçladık. Mikrokontroller tabanlı bile olsa en azından yönlendirme ve kontrol için temel araçları barındıran bir donanım sunduk.
Alüminyum gövde için çok fazla renk seçeneği (eloksal) olmadığı için ve de  stok maliyeti açısında iki renk üzerinde sınırladık

Robotik uygulamalar açısından üç tekerlek ki bunlardan iki tanesi kontrol edilerek R-bot, hareketi kontrol edilebilir olmaktadır. Üçüncü tekerlek  kadar önemli olmayıp sadece  R-bot' un dengede durmasını sağlamak amaçlanmaktadır.. 3 tekerlek aslında bir yüzeyin statik olarak dengede durması için gereken minimum tekerlek sayısını belirtmektedir. (Hali hazırda 2 veya tek tekerlek ile dengede durabilen sistemler var ise de bunlar ya sürekli olarak kontrol gerektirir ya da dinamik denge kurallarının uygulanmasını gerektirir) Matematik deki bir yüzey en az 3 noktadan geçer yaklaşımından gelmektedir.
Rbot Kontrol kartına monte edilmiş Arduino UNO. Bağlantıları gerçeleştirilip Rbot'un çalıştırılması için hazır.

Kontrol yaklaşımı olarak Arduino UNO tarafından sağlanmaktadır,  dolayısı ile Arduino programı ile programlanabileceği gibi scratch gibi görsel bir dil kullanılarak da programlanması mümkündür.
(Bacak uyumluluğu olduğu sürece daha güçlü bir işlemci içeren bir kartın takılması da mümkündür)
Elektrikli aletler için enerji vazgeçilmez. Burada 4 adet kalem pil kullanımı için pil yuvası hazır. Sadece pilleri bekliyor.

NOT: Ürün tanıtımları esnasında  ürünün neden şarjlı pil kullanılmadığı veya lipo pil olarak bilinen ürünlerin kullanılmadığını sordular. Fakat bu ürünü tasarlarken hedef kitlemizin hata yapması durumunda çıkabilecek sorunları minimum düzeyde tutmayı hedefledik.  Ürünü kullanırken siz, istediğiniz tipte pili kullanmayı elbette seçebilirsiniz.

Dolayısı ile anlaşılacağı gibi motor kontrol, bluetooth haberleşme , çizgi izleme ve ultrasonik sensörlerin bağlantılar Arduino UNO için uyumlu olacak şekilde oluşturulmuştur. Hali hazırda besleme 4 adet kalem pile yapılabilmektedir. Bu da pil bitince kolaylıkla yenisi ile değiştirilebileceği anlamını taşır.
Rbot çizgi izleme testinde.

Rbot'un tablet ile bluetooth üzerinden kontrolu. (tablet arayüzü)

Bluetooth haberleşme olduğu için android cep telefonu veya tablet ile  R-bot kontrolü mümkün olabilmektedir. (isteyen kendi kontrol cihazını kolaylıkla yapabilir)

Motor sürücüler kontrol kartı üzerine monte edildiği için, ek bir sürücü gerektirmez.

Proje açısından gözden geçirilecek olursa;

  • Bluetooth üzerinden bilgisayar, cep telefonu veya tablet ile haberleşme. (Cep telefonu veya tablet için Android işletim sistemi ile sınırlanmıştır)
  • Kontrol kartı üzerindeki butonların kullanımı  ile kontrol veya programlama seçeneği
  • Arduino programlanması ile otonom işlemlerin gerçeklenmesi
  • Çizgi izleme sensörü kullanımı ile çizgi izleme özelliği
  • Ultrasonik sensör kullanımı ile mesafe algılama ve gerekirse, nesnelerden kaçırma
  • Ek servo motor desteği ile gerektiğinde kıskaç gibi ek donanımlara izin verme özelliği


Elbette bunlar hali hazırda desteklenen yapılar olup, gerektiğinde paletli sistem, veya ayak yapıları eklenerek kullanım esnekliğinin artırılabilir.

Cep telefonu kontrolu ile veya tablet ile kolaylıkla yönlendirilebilir. Kameralı olsun isterseniz, size kim engel olabilir ki.(Maliyet açısından ürünün fiyatını artırmamak için üzerinde çalışılmamıştır. Elbette güzel olacağının bizde farkındayız, ama kabul edersiniz ki, özellikle hitap etmek istediğimizi kitle açısından fiyatının fazla yükseltilmemesi önemlidir.)

Programlama olayına gelince; birçok seçeneğiniz olabileceği gibi, en başta Arduino  geliştirme ortamı ve özellikle görsel kodlama açısından kullanılan scratch kodlama kullanılabilir.(mbot programı kullanılmaktadır).

Ürün tanıtımı esnasında birçok arkadaşımız gelip neler yaptığını sormaktaydı. Ürün özelliklerine anlattığımızda hayal kırıklığı yaşamaktalar. Oysa ki burada asıl anlatmaya çalıştığımız bu ürünün kod geliştirme sonrası kodların deneneceği bir ortam sunmasıdır. Yani kodlamanın sonucunun fiziksel bir ortamda karşılığının olmasını sağlamaktadır.

Cep telefonu ile kontrol edilebilir, hızı ayarlanabilir. Rbot destek amacı ile üretilmiştir.

Asıl önemli olan şu, bu robot üzerinde kodlama öğrenildiğinde ne olacak? Bu sorunun cevabını da çeşitli etkinliklerde vermeye çalıştık. En basitinden bu robot gibi bir Arduino/Genuino üzerinde kodların çalıştığı tekerlekli sandalye oldu. Burada sadece cep telefonundan kontrol edilen bir sandalye değil, aynı zamanda üzerine binip dolaşabileceğiniz bir sandalye olduğunu belirtmeye çalışıyoruz. Ama mantık aynı!

Rbot Montajı

Rbot esas olarak alüminyom bir gövde üzerine monte edildiği ve dolayısı ile kesme , delme gibi işlemler gerektirmediğinden, sadece bir pense veya karga burun ve bir yıldız tornavida ile monte edilebilmektedir. Kablo montajları birkaç geçme konnektör olduğundan montaj işini bir çocuğun yapabileceği ölçeğe indirmektedir. (Amacımız  Rbot ürünün Kodlama dersine destek olması idi)


Rbot montajı...

Ürünü monte ettikten sonra neler yapabileceğiniz hayal gücünüze kalmış...

Scratch Kartı (Kodlama için)


Biliyorsunuz, şu anda okullarda kodlama dersi kondu ve her ne kadar gelecek yıl mecburi olacak ise de, bu yıl dersi eğitim planına alan okullar var.

Çoğu uygulamada bilgisayar üzerinde kodlama dersi gösterilmektedir. Yani çöpten adam sağa, çöpten adam sol şeklinde. Ama bu kodlama sonucunun fiziksel ortama taşınması gerekir. En azından daha canlı ve etkileşimli olması açısından.

Bu noktadan yola çıkarak Arduino/genuino tabanlı bir ürün ortaya koymak istedik. Sonuçta Arduino/genuino UNO işlemcisini içeren ve USB üzerinden programlanabilen ve ek olarak shield olarak bilinen ek donanımı bir araya toplayıp, birleştirdik. Özellikle Arduino UNO maliyeti artı shiled maliyetine girmeden sadece shield maliyeti ile UNO özelliklerinde bir geliştirme kartı ortaya çıkmış oldu.


Scratch kartının bir robot kol ile birlikte uygulaması


Robot kol uygulamasından küçük bir örnek. Kodlaması scratch kodu üzerinden gerçekleştirildi. Bu ne yapıyor sorusu, yeni nasıl yapılır sorusunu tercih ediyoruz!

Ürün özelliklerini bir göz atarsak;

  • USB üzerinden bilgisayardan programlanabilme ve veri iletişimi,
  • Arduino/Genino UNO programlama özelliklerine sahip olması;
  • harici besleme girişi ile bilgisayardan bağımsız olarak çalışabilmesi,
  • 5 adet LED üzerinden kontrol imkanı;
  • bir potansiyometre ve bir trimpot üzerinden ayar değerinin okunabilmesi,
  • bir LDR (ışık ile direnci değişen eleman) üzerinden analog değerinin okunabilmesi,
  • bir buton ile veri girişi imkanı,
  • 8x8 LED matris üzerinden istenilen şeklin oluşturulması ve yazının yazılması,
  • 4 adet  3'lü pin üzerinden örneğin bir robot kol imkanı, istenilen sensör okuması veya çıkış olarak kullanılma imkanı,
  • İster Arduino programı, ister scratch kodu üzerinden kodlama yapabilme imkanı;
Ürün üzerinde çip Arduino UNO için kullanılan modeldir ve özellikle bootloader olarak bilinen ve Arduino kartları üzerinde yüklü olan kodların aynen bu geliştirme kartı üzerinde de yüklü olduğunu bilmek, elbette sizin açınızdan süpriz değildir.

8x8 matris ekran üzerinde kayan yazı örneği


Kodlama
Scratch kartı  hem Arduino studio , hem de Scratch programları üzerinden kodlama yapılabilmektedir. Hatta Arduino kodlama yapılabilen her türlü  studio üzerinden üretilen kodlar  scratch kartını programlamak mümkündür. Ama yineden biz Scratch ve Arduino studio üzerinden programlama (kodlama üzerinde) durulacaktır.

Scratch iki modda çalışabilmektedir. Birincisi çevrimiçi modu olup, Arduino kartı üzerine yüklenmiş bir program yardımı ile scratch ile sürekli iletişim halinde bulunur ve Scratch üzerinde oluşturulan kod anında  Arduino kartında işleme alınır. Sıkıntısı kullanıcı için kütüphane oluşturmak zordur. Çünkü Arduino kodları yanında Java kodlamanın bilinmesidir. (Bu son kullanıcıyı etkilemez)Ayrıca Arduino kartı üzerine ön yüklemiş kodun desteklemediği işleri yapmak mümkün değildir (ön yükleme programında değişiklik yapılmadığı sürece). Arduino kartı bilgisayara bağlı ve Scratch programı ile bağlantı kurulabildiği sürece çalışır. Çünkü kodlar bilgisayar üzerinden yürütülür.
Arduino modunda ise kodlama , Arduino kodlarına dönüştürülür ve Arduino kodları derlenir ve yüklenir. Dolayısı ile Arduino koduna dönüştürüldüğü zaman istenildiği gibi Arduino Studio üzerinde istenildiği gibi değişiklik yapılabilir ve daha esnek yaklaşım sağlanabilir. Arduino kartı program yüklendikten sonra, istenirse ayrı bir besleme yardımı ile bağımsız olarak  çalışabilir. Kodlar arduino üzerinde yürütülür.

Kodlama olayına girmeden bazı terimler konusunda hemfikir olmamız gerekiyor. Bunlar;

Scratch kartı üzerindeki elemanları yerleşimi ve kısa tanımları.
Scratc kartı için ekran olarak düzenlenmiş 8x8 (64 LED) matris ekranı oluşturmaktadır.
Matris ekran üzerinde www.kontrolcepte.com yazarken.

lojik-1:  Temelde +5Volt gerilimini temsil eder. Sistemimiz besleme olarak dışarıdan 9-12Volt gibi besleme aralıklarında olsa bile, bilgisayar olsun veya kart içi besleme +5Volt'dur. (regülatör vardır) Arduino çipi ve diğer birçok eleman açısından bakılırsa, (bazılarında farklılık görülse de) 3.5Volt ile 5Volt aralığını lojik-1 olarak kabul edilmektedir.

lojik-0: Temelde 0Volt gerilimini temsil eder. Ama elektronik açısından bakıldığında (+5Volt beslemede ) +1 Volt ile 0 Volt aralığını temsil eder.

LED: Işık yayan diyot. Devreye seri bir direnç yardımı ile bağlanır. Yoksa bozulur

Buton: Basıldığı zaman devreyi kapat ve bırakıldığı zaman devreyi açan eleman.

LDR:Direnci ışığa göre değişen eleman.

Potansiyometre: Direnç değeri bir kol (mil) yardımı ile değişen eleman.

Trimpot: Direnç değeri bir tornavida yardımı ile değiştirilebilen eleman.

Buzer: Elektrik akımı uygulandığında  ses çıkaran eleman. (vızıldar)

Mikrokontroller: Bu kart üzerinde tüm işlemlerin (kodların) yürütüldüğü, kodun bilgisayar üzerinden yüklendiği ve çalıştırıldığı yerdir. Kısacası bu bir orkestra şefidir. Hayallerinizi yıkmak gibi olmasın ama mikrokontroller üzerindeki kod sizin ekranda gördüğünüzden çok daha farklıdır ve sadece sayılar vardır. (aslında 1 ve 0).

Bit:Mikrokontroller üzerindeki hafızanın en küçük birimine denir. Yani 1 veya 0 değerinin saklandığı yer.

Bayt:Özellikle scratch kartı üzerindeki 8 tane bit'in birlikte oluşturulduğu gruptur. Bu noktada sayı sistemlerine girmemiz gerekecek ama o ayrı bir konudur.

17 Kasım 2017 Cuma

Rbot, Raduino,Sende yap (Arduino) ve Sende yap (Android)


Raduino ile düştük yola, arkasına Sende yap kitapları takıldı peşi sıra, önce Arduino kitabı ardından Android kitabı. Birde baktık ki peşlerine Rbot düşmüş büyük bir şevk ile. Arkalarında daha neler var  sırada bekleyen?
Araya biri girmiş şöyle şirin mi şirin! 
O da ne?

Arkalarından kimler gelecek,  birlikte çalışıyoruz!


16 Haziran 2017 Cuma

Motor Sürücü


DC elektrik motorlarında hız kontrolu ile birlikte, başlat ve durdur işlemlerini yerine getirmek için küçük bir sürücü tasarlanması gündeme geldiğinde;

  • devre mümkün olduğunca küçük,
  • mümkün olduğu kadar uygun fiyatlı;
  • malzemelerin mümkün olduğu kadar piyasa da yer alması 
  • hız ayarı için potansiyometre 
  • hızlanma ayarı için tirimpot kullanılmaktadır,

konular ortaya konuldu.
Sonuç yukarıda görülen devre ortaya çıktı.
Baskılı devre kartı
Motor sürücü devrenin bağlantıları. Motor 12Volt veya 24 Volt olabileceği gibi besleme gerilimide motora göre 12Volt veya 24Volt  olabilir. Besleme girişi maksimum 32Volt olabilir ki, bu gerilimi aşmamak gerekir.

Motor Sürücü

Malzeme Listesi
Eleman
Tanım
Miktar
1000uF/25V
Elektrolitik Radyal dip
1
1000uF/50V
Elektrolitik Radyal dip
2
10u
Elektrolitik Radyal dip
1
100nF
dip
2
100R
dip
1
10k
dip
5
10R
dip
1
1k
dip
2
220R
dip
1
680R
dip
1
47R/5W
dip
1
10k trimpot
Japon trimpot
1
10 pot
potarsiyometre
1
10A
20mm cam sigorta
1
Sigorta yuvası
20mm cam sigorta için yuva
1
IRL540
TO220
1
UGI8
TO220
1
LM317
TO220
1
PIC12F683
dip8
1
Entegre soketi
dip8
1
Kırmızı LED
3mm
1
Yeşil LED
3mm
1
Transil diyot
33V Transil diyot
1
terminal blok
5 bacak terminal blok 7,62mm bacak arası
1
Soğutucu
30mmx30mm Alüminyum soğutucu
2





5 Haziran 2017 Pazartesi

Arduino Bootloader Yükleyici


Arduino ile uzun süre uğraşınca, ki asıl nokta kendi devrelerinizi oluşturmak veya bir şekilde hasar almış eski  Arduino'ların ayağa kaldırılması gibi bir durumla karşılaşılınca, yeni takılan işlemciye ilk olarak bootloader yüklenmesi gerekir. Bu USB üzerinden gönderilen bilgi ile işlemcinin için program yazılmasını sağlayan programdır.

Bu program kendisi için ayrılan bölgede korunaklı bir şekilde durur. İşlemci yenisi takıldığı zaman tekrar bu kodun yüklenmesi gerekir. Bunun için SPI üzerinden (Atmel işlemcilerde ISP olarak geçer)  bootloader'ın yüklenmesi (veya herhangi bir programın) için programlayıcıya ihtiyaç vardır.

Burada biz olaya basitçe yaklaşık. Yani başka bir Arduino üzerinden bootloader yüklenebileceğinden yola çıkaraktan, sadece bootloader yükleyebilen bir Arduino yapmış olduk.
 Devre beslemesini ve yükleme yapacağı işlemcinin devresinin beslemesini bilgisayardan almakta.
Arduino Bootloader Yükleyici devresinin baskılı devre kartı. O kadar karışık gözükmesin,  Yinede çift yüzlü delik için geçişli ve meşhur kutu sorunu nedeniyle elemanlar yüzey montaj.

İşlemci olarak Atmega328p kullanıldı ve kristal olarak 16 MHz  seçildiği için aşağı yukarı UNO ayarında bir cihaz oldu. Kart üzerine eklenen birkaç LED ile uyarıların görüntülenmesi hedeflendi. Elbette devrenin vazgeçilmezi, (Atmega328 üzerinde USB port yer almadığı için) USB -TTL çevirici oldu ki, sonuçta devreye entegre bir şekilde konumlanmıştır.

SPI bacak bağlantısı. Soldaki 6 pin ve sağdaki 10 pin üstten görünüm şeklinde düzenlenmiştir.

ISP için öngörülmüş iki bağlantı şekli vardır. Birincisi 10 bacaklı bağlantıdır. Diğeri ise 6 bacaklıdır. Çalışma açısından bir farkı yoktur. Ama devre üzerinde kapladığı yer önemli ise 6 bacaklı bağlantı seçilmesi yerinde olacaktır. Öyle sık bir programlama durumu yoksa, pin takmaya bile gerek yoktur, ama geliştirme esnasında sıkça kullanım durumlarında sıra pin takılması  uygun olabilir.

 ISP programlama portu  SPI bacaklarına ek olarak bağlanan Arduino kartının resetlenmesi için reset işlemini sağlayacak bir bacak yer almaktadır.(RST olarak adlandırılmış bacak)

Malzeme Listesi
Eleman
Tanımı
Miktar
100n
SMD 805
10
10u
CAPAE-5.3x5.3h6.1
2
22p
SMD 805
4
10k
SMD 805
1
1k
SMD 805
5
470R
SMD 805
3
1N5819
SMD
1
ATMEGA328P
TQFP32
1
CH340G
SOIC16
1
16MHz
Kristal dip
1
12MHz
Kristal dip
1
LED
SMD 805
8
USB A
USB konnektör
1




Örnek olarak Arduino UNO eşdeğeri bir  işlemci içeren devreye bootloader yüklenmesi


Aynı devre  (Arduino As ISP) (Arduino Mega 2560 eş değeri) Raduino  kartına bootloader yüklenmesi için de kullanılabilir.

28 Mayıs 2017 Pazar

Mini RGB

Bu projenin asıl  çıkış noktası "PIC16F1824 ve ESP8266-01 ile WiFi RGBW LED sürücü (Android telefon desteği ile)" projesidir. Özellikle projenin alüminyum  çubuk LED'lerin kullanımı (alüminyum çubuk led kutularının) öngörüldüğü ve özellikle küçük bir yapı olarak tasarlandı. O kadar ki, Serit LED için bağlantı noktaları klemens yerine LED çubuk doğrudan lehimlenecek şekilde ve besleme girişi olarak adaptör girişi kullanılacak şekilde tasarlandı. Bir Alüminyum kutu içine yerleştirilecekse zaten bu gereklidir.
Projedeki PCB üzerinde bağlantıların isim ve tanımları Piyasada yer alan LED bağlantıları değişiklik gösterebilmektedir. Bu nedenle bağlantı yapılmadan önce  kontrol edilmesi yerinde olur.

Temelde bu projedeki her bir kanal kendi başına mini mono gibi davranır. Ama 3 renk olarak bağlayıp birleştirildiği zaman sonuç RGB olarak bilinen birlikte yandığı zaman beyaz (ideal şartlarda) ışığı oluşturan kırmızı, yeşil ve mavi renkleri sürmektedir.
Tablet ile birlikte projedeki devre

Devreye besleme verilip LED'ler ışık verdiği zaman %50 ile ışık verecektir. Temel düşünce ilk anda kullanıcı yanında cep telefonu olmayabileceği veya ilk anda aktif olmayacağı yönünde idi. Daha sonra istenildiği gibi cep telefonu veya tablet üzerinden ayarlanması mümkündür.

Şerit LED üzerinde gösterilmiş değişik renkler

Alüminyum tüp içine konmuş Şerit LED görünümleri.


Projeye yukarıdaki gibi bir şerit LED bağlanarak da kullanımı mümkündür. 5 metre kadar olan ürün ile kullanım durumunda devre küçük bir kutuya konması yerinde olacaktır.
Sözü edilen kutu buna benzer bir ürün olabilir.. 

Wifi ile devrenin PCB genişlikleri aynıdır. Dolayısı ile  her ikisi de aynı kutuya birlikte girebilirler.
Şerit LED ucuna takılmış miniRGB devresi. Tek yapılması gereken şerit LED konumlanıp miniRGB ucuna besleme adaptörü bağlamak.
Şerit LED bu şekilde çalıştırmak pek iyi olmasa da (LED'ler ısınmaya başlıyor, nomalde yerleştirildikleri yerlerde ısıyı yapıştırıldıkları yüzeye aktarıyorlar) görülmesi açısından önemli idi.
Bilindik 3 renkte ayarlanmış görünümlerin birleştirilmiş hali..



Malzeme Listesi
Eleman
Tanımı
Miktarı
10uF elektrolitik
radyal (çap 5mm, yükseklik 7.5mm)
2
470uF elektrolitik
radyal
1
100nF
SMD 805
2
2x4 sıra pin dişi
bacak arası 2.54mm
1
adaptor girişi
90 derece adaptor girişi
1
PJA3406
Sot23 N kanal lojik level mosfet
3
1k
SMD 805
1
2k2
SMD 805
1
10R
SMD 805
3
10k
SMD 805
4
680R
SMD 805
1
220R
SMD 805
1
LM317
SOT223 ayarlı regülatör
1
PIC16F1824
Soic 14 /150mil
1
LM1117-3V3
SOT223 3.3V regülator
1
3A sigorta
kart tipi 3A sigorta
1
5'lı sıra pin
bacak arası 2.54mm erkek
1
RGB modül
RGB için 12V LED modül (*)
1
12Volt Adaptör
Adaptör girişine uygun fişi olan 12Volt adaptör(*)
1
Devre için kutu
PCB yapısına uygun kutu(*)
1

Aynı zamanda işin içinde cep telefonu veya tablet olduğu için App inventor kitabının bir konusudur.

Android cep telefonu veya tablet için programlar sayfasından erişilebilir.