HAFTA1 - DERS2 ROBOT UYGULAMALARI ATÖLYESI 05.01.2018 Bilgisayar Mühendisi RABIA YEL
HAFTA1 - DERS2
ROBOT UYGULAMALARI ATÖLYESI
05.01 .2018
Bilgisayar Mühendisi
R A B I A Y E L
D E R S T E K U L L A N I C A K A R A Ç V E M A L Z E M E L E R
Bilgisayar
Genunio 101
Breadboard
1 adet 220 ohm direnç
1 adet LED
Jumper kabloları
AB USB kablosu
PROGRAMLAMA ILE NELER
YAPILABILIR?
Neler yaptın?
Daha önce Arduino gibi platformlar kullanmış olan var mı?
ARDUINO/GENUINO PLATFORMUNA GIRIŞ
Arduino Ivrea Interaction Design Institute’da
programlama ve elektronik geçmişi olmayan
öğrenciler için geliştirilmiş bir hızlı prototipleme
cihazıdır.
Bütün Arduino kartları ve yazılımı tamamen
açık kaynaklı olup kullanıcılarını bu kaynakları
kullanıp kendi ihtiyaçlarına göre
şekillendirmelerine teşfik eder.
Arduino kartlarıyla bir sensör okuyarak, bir
butona basarak yada bir Twitter mesajıyla giriş
alabilirsiniz ve bunlarla bir motoru döndürebilir,
bir LED yakabilir yada internette bir şeyler
yapabilirsiniz. Bunu yapmak için Wiring dili baz
alınarak hazırlanmış Arduino Programlama dili
ve Processing baz alınarak hazırlanmış
Arduino Yazılımı kullanılır.
N E D E N A R D U I N O / G E N U I N O
?
Ucuzdur.
Her işletim sisteminde çalışır.
Basit ve temiz bir programlama
arayüzüne sahiptir.
Açık kaynaklı, genişletilebilir bir
yazılım ve donanım
platformudur.
Shieldlar Nedir?
Kısaca Arduino için özel
tasarlanmış donanım
eklentileridir. Standart
olarak Arduino’da
bulunmayan özellikleri
basit bir şekilde geliştirme
kartınıza eklemenizi
sağlar.
Arduino/Genuino
Her Arduino kartı çalışması için bir
güç kaynağına ihtiyaç
duymaktadır. İsterseniz
bilgisayarınıza USB kablo ile
bağlayarak isterseniz de adaptör
takarak kartınızı çalıştırabilirsiniz.
Şekil 26’da (1) numara ile
gösterilen bölge USB bağlantısı
(2) numara ile gösterilen bölge de
adaptör bağlantısının yapıldığı
kısımdır. USB bağlantısını
kullanarak geliştirdiğiniz yazılımı
da gönderebilirsiniz.
Güç
Ground, yani toprak diğer
bir deyişle şase,
kelimesinin kısaltmasıdır.
Pillerdeki eksi bacaklar
gibi düşünülebilir.
GND (3):
5V(5) ve 3.3V(4):Tahmin edilebileceği gibi 5V bacağı 5 voltluk güç,
3.3V de 3.3 voltluk güç anlamına gelmektedir. Bu
bacakları kullanarak kullancağınız devre elemanlarına
güç verebilirsiniz.
Analog(6):“Analog In” olarak etiketlenmiş
bu bölgede A0’dan A5’e kadar
toplamda altı adet bacak
bulunur.Bu bacaklar ile sıcaklık
sensörü gibi analog
sensörlerden veri okuması
yapabilirsiniz.
Dijital(7): Analog bacakların tam karşısında bulunan 0’dan 13’e kadar
toplamda 14 adet bacağa sahip bölgedir. Bir butonun basılı
olup olmadığını kontrol etmek için kullanabileceğini dijital
giriş veya bir LED’i yakmak için kullanabileceğiniz dijital
çıkışları kontrol edebileceğiniz bölgedir.
PWM(8):Dijital bölgede bazı bacakların
yanındaki ~ işareti dikkatinizi
çekmiştir (Genuino 101 için 9,6,5 ve
3 numaralı bacaklar). Bu bacaklar
dijital olarak kullanılabildiği gibi
Pulse-Width Modulation (PWM)
denen bir yeteneğe de sahiptir. Basit
bir şekilde anlatmak gerekirse bu
bacakları kullanarak analog çıkışverilebilir. Örneğin bir LED’i yakıp
söndürmek yerine parlaklığını
değiştirebilirsiniz.
AREF(9) :Analog Referans’ın kısaltmasıdır. Bu
bacak büyük bir çoğunlukla kullanılmaz.
Ancak bilinmesinde fayda bulunmaktadır.
Analog sensörlerin giriş voltajlarına üst
sınır koymak için kullanılmaktadır
Reset ve Master Reset ButonlarıBilgisayarlardaki reset butonları gibi
bunlarda da reset butonu bulunmaktadır.
(10) numaralı buton sizin kartın içine
attığınız yazılımı yeninden başlatmanızı
sağlayacaktır. Bu buton eğer yazılımınız
kendini tekrarlamayan bir düzene
sahipse ve sürekli olarak tekrarlamanız
gereken bir durumda çok kullanışlıdır.
(11) numaralı MASTER RESET butonu
normal RESET butonundan biraz
farklıdır. Bu buton sadece yazılımı
yeniden başlatmakla kalmaz kartın
kalbinde bulunan Curie modülündeki
sensörleri de yeniden başlatır. Bu
sayede ölçümlerinizi sıfırdan
yapabilirsiniz. Bu butona bastıktan sonra
yazılımın çalışmaya başlaması 5-10
saniye gecikme yaşayacaktır.
Güç Durumu LED’iKartın üzerinde bulunan
Intel logosunun hemen
altında yanında “ON”
yazan bir LED
bulunmaktadır ((13)
numaralı bölge). Bu LED
kartınıza elektrik geldiğine
yanacaktır.
TX/RX LED’inin görevi Güç LED’i gibi bildirim
amaçlıdır. TX – Transmit yani gönderim, RX –
Receive yani alım anlamlarına gelmektedir. Dijital
bacaklardan 0 ve 1’e seri olarak bağlı olan bu LED,
kartla farklı bir cihaz arasında haberleşme yani veri
alışverişi oluyorsa yanıp sönecektir.
TX/RX LED’i (12)
İşlemci (14İşlemci (14) numaralı
bölgede bulunan Intel’in
geliştirdiği Curie entegre
devresidir. Basit bir
şekilde kartın beynidir.
Yazımınız bu kart
sayesinde çalışmaktadır.
Arduino IDEhttps://www.arduino.cc/en/Main/Software
Genuino 101’i Arduino IDE’ye Ekleyelim
Arduino IDE’yi açıp üst taraftaki menüden Tools > Board >
Boards Manager... seçeneğine tıklanır.
Ardından açılan Boards Manager ekranındaki arama çubuğuna Intel
Curie yazılır. Gelen seçenek Install tuşuna basarak yüklenir. Yükleme
sırasında gerekli sürücülerin kurulumu için sizden yetki istenecektir.
Sorun yaşanmaması için bunları uygulayınız.
Sürücüler açısından hiçbir sorun yaşamamak için ekstra olarak
Boards Manager menüsünden Arduino SAM Boards (32-bits ARM
Cortex-M3) aramasını yapıp gelen seçeneği de mutlaka yükleyiniz.
Arduino IDE Arayüzü
1. Verify: Yazdığınız kodu derler, kontrol eder ve hataları yakalar.
2. Upload: Kodu Genuino 101’e yükler. Yüklemeden önce Verify
butonunun yaptığı işlemi yapar eğer hiç bir sorun yoksa karta
gönderir.
3. New: Yeni bir yazılım sekmesi açar.
4. Open: Önceden kaydedilmiş bir programı açmanızı sağlar.
5. Save: Çalışmakta olduğunuz yazılımı kaydeder.
6. Serial Monitor: Bu butona tıkladığında Genuino 101’in
bilgisayarınıza gönderdiği verileri kontrol etmenizi sağlayan bir
pencere açılır.
7. Yazılım Adı: Çalışmakta olduğunuz yazılıma verdiğiniz ismin
gösterildiği bölgedir.
8. Kod Bölgesi: Yazılımınızı yazdığını bölgedir.
9. Mesaj Bölgesi: Bu bölge yazılımınızda bir sorun olup
olmadığını size bildiren bölgedir. Eğer bir hata varsa turuncu
renge dönüşür.
10. Yazı Konsolu: Bu bölgede detaylı hata mesajları
verilmektedir. Mesaj Bölgesi’nde yer alan hatanın neyden
kaynaklandığını size bildirir.
11. Kart ve Seri Port: Seçtiğiniz kart tipini ve onun hangi
haberleşme portuna bağlı olduğunu gösteren bölgedir.
Kartın Arduino IDE’ye Gösterilmesi
Çalışmalara başlamadan önce elimizdeki kart tipinin ve bu kartın hangi
haberleşme portunda olduğunun Arduino IDE’ye söylenmesi gerekmektedir.
Bu sayede yapılan çalışmalar karta kolayca yüklenebilir. Üst menüden “Tools
> Board > Arduino/Genuino 101” seçilir. Eğer baka bir model kullanılıyorsa o
model seçilmelidir.
Ardından kartın hangi
haberleşme portunda
olduğu seçilmelidir. Bunun
için “Tools > Port >
COMXXX
(Arduino/Genuino 101)”
seçeneği seçilir. COM3
veya yukarısı COM
adresleri gözükecektir.
Yanında
“(Arduino/Genuino 101)”
veya elinizde bulunan kart
modeli yazan seçenek
seçilmelidir.
Kartın bağlantısı tamamlandıktan sonra aşağıdaki şemada
gösterilen devre kurulur.
Wiring Programlama Dili ve Blink Örneği
Ardından menüden File > Examples > 01. Basics > Blink örneğine tıklanır.
“Blink” basitçe bir LED’i yanıp sönmesini sağlayan bir koddur.
void setup() {...} Bu fonksiyon kartınızın kurulum fonksiyonudur. Reset
butonuna bastığınızda yada elektrik verdiğiniz anda sadece bir defa
çalışır. Süslü parantezler bu fonksiyonun bölgesini temsil eder. Kurulum
işleminde kullanmak istediğiniz fonksiyonlar void setup() fonksiyonunun
süslü parantezlerinin arasında yazılmalıdır.
void loop() {...} Bu fonksiyon kodunuzun aktif olarak kartınızı kontrol ettiği
bölgedir. Adından da anlaşılacağı gibi döngünün olduğu bölgedir.
İçerisinde bulunan kodları satır satır gerçekleştirir ve en sonuncusunu da
bitirdiğinde içerisindeki ilk satıra geri döner.
pinMode(BACAK, MOD) Kartın üzerindeki bacakları dijital giriş yada çıkış
olarak kullanmanızı sağlayan fonksiyondur. BACAK yazan bölgeye
kullılacak bacağın numarası, MOD yazan bölgeye de giriş mi çıkış mı
(INPUT/OUTPUT) olduğu yazılır. Tek satırlık bir fonksiyondur.
digitalWrite(BACAK, DEĞER) Seçtiğiniz bacağa HIGH veya LOW
göndermenizi sağlar.
HIGH = 5V
LOW = 0V
delay(ms) Programı yazıldığı satırda ms yerine yazıldığı süre kadar
(milisaniye bazında) bekletir.
Bu fonksiyonun doğru kullanılabilmesi için kendisinden önce mutlaka
pinMode() fonksiyonunun aynı bacak için OUTPUT olarak tanımlanması
gerekmektedir. Aksi takdirde digitalWrite() fonksiyonunda belirtilen bacak
doğru çalışmayacaktır
0. 1 – 17 Satırları – Yorum satırlarını atlar.
1. 18. Satır -- void setup() Kurulum işlemi için içerisine (süslü
parantezlerin arasına) bakar.
2. 20. Satır – pinMode(13,OUTPUT); 13. bacağı çıkış olarak tanımlar.
3. 24. Satır – void loop() fonksiyonun içerisine girdi ve döngü başlar.
4. 25. Satır – digitalWrite(13, HIGH); 13. bacağa 5 volt gönderdi.
5. 26. Satır – delay(1000); 1 saniye bekledi (1000 milisaniye = 1 saniye).
6. 27. Satır – digitalWrite(13, LOW); 13. bacağa 0 volt gönderdi. ,
7. 28. Satır – delay(1000); 1 saniye bekledi.
8. Döngünün son satırı olduğu için döngünün başına döner yani 25. satıra
tekrar gider ve Genuino’nun gücü kesilmediği sürece. Sonsuza kadar bu
döngüyü gerçekleştiri
DIĞER DERSE
GÖRÜŞMEK ÜZERE...