ATMEGA328p etiketine sahip kayıtlar gösteriliyor. Tüm kayıtları göster
ATMEGA328p etiketine sahip kayıtlar gösteriliyor. Tüm kayıtları göster

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ış...

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.