robot uygulamalar atölyesi hafta1 - ders2 · kartın arduino ide’ye gösterilmesi Çalışmalara...

23
HAFTA1 - DERS2 ROBOT UYGULAMALARI ATÖLYESI 05.01.2018 Bilgisayar Mühendisi RABIA YEL

Upload: others

Post on 05-Sep-2019

8 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: Robot Uygulamalar Atölyesi Hafta1 - Ders2 · Kartın Arduino IDE’ye Gösterilmesi Çalışmalara başlamadan önce elimizdeki kart tipinin ve bu kartın hangi haberleşme portunda

HAFTA1 - DERS2

ROBOT UYGULAMALARI ATÖLYESI

05.01 .2018

Bilgisayar Mühendisi

R A B I A Y E L

Page 2: Robot Uygulamalar Atölyesi Hafta1 - Ders2 · Kartın Arduino IDE’ye Gösterilmesi Çalışmalara başlamadan önce elimizdeki kart tipinin ve bu kartın hangi haberleşme portunda

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

Page 3: Robot Uygulamalar Atölyesi Hafta1 - Ders2 · Kartın Arduino IDE’ye Gösterilmesi Çalışmalara başlamadan önce elimizdeki kart tipinin ve bu kartın hangi haberleşme portunda

PROGRAMLAMA ILE NELER

YAPILABILIR?

Neler yaptın?

Daha önce Arduino gibi platformlar kullanmış olan var mı?

Page 4: Robot Uygulamalar Atölyesi Hafta1 - Ders2 · Kartın Arduino IDE’ye Gösterilmesi Çalışmalara başlamadan önce elimizdeki kart tipinin ve bu kartın hangi haberleşme portunda

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.

Page 5: Robot Uygulamalar Atölyesi Hafta1 - Ders2 · Kartın Arduino IDE’ye Gösterilmesi Çalışmalara başlamadan önce elimizdeki kart tipinin ve bu kartın hangi haberleşme portunda

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.

Page 6: Robot Uygulamalar Atölyesi Hafta1 - Ders2 · Kartın Arduino IDE’ye Gösterilmesi Çalışmalara başlamadan önce elimizdeki kart tipinin ve bu kartın hangi haberleşme portunda

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.

Page 7: Robot Uygulamalar Atölyesi Hafta1 - Ders2 · Kartın Arduino IDE’ye Gösterilmesi Çalışmalara başlamadan önce elimizdeki kart tipinin ve bu kartın hangi haberleşme portunda

Arduino/Genuino

Page 8: Robot Uygulamalar Atölyesi Hafta1 - Ders2 · Kartın Arduino IDE’ye Gösterilmesi Çalışmalara başlamadan önce elimizdeki kart tipinin ve bu kartın hangi haberleşme portunda

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üç

Page 9: Robot Uygulamalar Atölyesi Hafta1 - Ders2 · Kartın Arduino IDE’ye Gösterilmesi Çalışmalara başlamadan önce elimizdeki kart tipinin ve bu kartın hangi haberleşme portunda

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.

Page 10: Robot Uygulamalar Atölyesi Hafta1 - Ders2 · Kartın Arduino IDE’ye Gösterilmesi Çalışmalara başlamadan önce elimizdeki kart tipinin ve bu kartın hangi haberleşme portunda

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.

Page 11: Robot Uygulamalar Atölyesi Hafta1 - Ders2 · Kartın Arduino IDE’ye Gösterilmesi Çalışmalara başlamadan önce elimizdeki kart tipinin ve bu kartın hangi haberleşme portunda

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

Page 12: Robot Uygulamalar Atölyesi Hafta1 - Ders2 · Kartın Arduino IDE’ye Gösterilmesi Çalışmalara başlamadan önce elimizdeki kart tipinin ve bu kartın hangi haberleşme portunda

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.

Page 13: Robot Uygulamalar Atölyesi Hafta1 - Ders2 · Kartın Arduino IDE’ye Gösterilmesi Çalışmalara başlamadan önce elimizdeki kart tipinin ve bu kartın hangi haberleşme portunda

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)

Page 14: Robot Uygulamalar Atölyesi Hafta1 - Ders2 · Kartın Arduino IDE’ye Gösterilmesi Çalışmalara başlamadan önce elimizdeki kart tipinin ve bu kartın hangi haberleşme portunda

İş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

Page 15: Robot Uygulamalar Atölyesi Hafta1 - Ders2 · Kartın Arduino IDE’ye Gösterilmesi Çalışmalara başlamadan önce elimizdeki kart tipinin ve bu kartın hangi haberleşme portunda

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.

Page 16: Robot Uygulamalar Atölyesi Hafta1 - Ders2 · Kartın Arduino IDE’ye Gösterilmesi Çalışmalara başlamadan önce elimizdeki kart tipinin ve bu kartın hangi haberleşme portunda

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.

Page 17: Robot Uygulamalar Atölyesi Hafta1 - Ders2 · Kartın Arduino IDE’ye Gösterilmesi Çalışmalara başlamadan önce elimizdeki kart tipinin ve bu kartın hangi haberleşme portunda

Arduino IDE Arayüzü

Page 18: Robot Uygulamalar Atölyesi Hafta1 - Ders2 · Kartın Arduino IDE’ye Gösterilmesi Çalışmalara başlamadan önce elimizdeki kart tipinin ve bu kartın hangi haberleşme portunda

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.

Page 19: Robot Uygulamalar Atölyesi Hafta1 - Ders2 · Kartın Arduino IDE’ye Gösterilmesi Çalışmalara başlamadan önce elimizdeki kart tipinin ve bu kartın hangi haberleşme portunda

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.

Page 20: Robot Uygulamalar Atölyesi Hafta1 - Ders2 · Kartın Arduino IDE’ye Gösterilmesi Çalışmalara başlamadan önce elimizdeki kart tipinin ve bu kartın hangi haberleşme portunda

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.

Page 21: Robot Uygulamalar Atölyesi Hafta1 - Ders2 · Kartın Arduino IDE’ye Gösterilmesi Çalışmalara başlamadan önce elimizdeki kart tipinin ve bu kartın hangi haberleşme portunda

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.

Page 22: Robot Uygulamalar Atölyesi Hafta1 - Ders2 · Kartın Arduino IDE’ye Gösterilmesi Çalışmalara başlamadan önce elimizdeki kart tipinin ve bu kartın hangi haberleşme portunda

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

Page 23: Robot Uygulamalar Atölyesi Hafta1 - Ders2 · Kartın Arduino IDE’ye Gösterilmesi Çalışmalara başlamadan önce elimizdeki kart tipinin ve bu kartın hangi haberleşme portunda

DIĞER DERSE

GÖRÜŞMEK ÜZERE...