arduino ile robotik projeler book · Arduino Nedir? 2 Arduino Çeşitleri 3 Arduino UNO 3 Arduino...

39
Arduıno ile Robotik Projeler Akın Akçaoğlu

Transcript of arduino ile robotik projeler book · Arduino Nedir? 2 Arduino Çeşitleri 3 Arduino UNO 3 Arduino...

Page 1: arduino ile robotik projeler book · Arduino Nedir? 2 Arduino Çeşitleri 3 Arduino UNO 3 Arduino Mega 6 ... Kablo, Devreyolu, Devre Elemanları Testi 71 Osiloskop Nedir? 72 ... Servo

Arduıno ile Robotik Projeler

Akın Akçaoğlu

Page 2: arduino ile robotik projeler book · Arduino Nedir? 2 Arduino Çeşitleri 3 Arduino UNO 3 Arduino Mega 6 ... Kablo, Devreyolu, Devre Elemanları Testi 71 Osiloskop Nedir? 72 ... Servo

İçindekiler

Bölüm 1: Arduıno Nedir? Arduıno Çeşitleri ve IDE Kurulumu 1

Arduino Nedir? 2

Arduino Çeşitleri 3

Arduino UNO 3

Arduino Mega 6

Arduino Nano 7

Arduino Pro Mini 9

Arduino IDE Yazılımı ve Kurulumu 11

Neler Öğrendik? 13

Bölüm 2: Arduıno Programlama ve Haberleşme 15

Arduino Programlamaya Giriş 16

Kodun Derlenmesi ve Arduino’ya Aktarılması 17

Kütüphane 17

Seri Port 17

Örnek Programlar 17

HEX Dosyası 18

Arduino’ya Sürücü Yükleme ve Port Ayarı 19

Arduino ile LED Uygulamaları 20

Dijital Giriş-Çıkış LED Uygulaması 21

Fritzing Programı ve LED Devresi 24

Analog Giriş-Çıkış LED Uygulaması 25

Analog Giriş–Çıkış LED Devresi 27

Scratch ile Arduino Programlama 28

Scratch Nedir? 28

Scratch Programının İndirilmesi ve Kurulumu 28

Scratch ile Dijital Çıkış LED Uygulaması 30

Page 3: arduino ile robotik projeler book · Arduino Nedir? 2 Arduino Çeşitleri 3 Arduino UNO 3 Arduino Mega 6 ... Kablo, Devreyolu, Devre Elemanları Testi 71 Osiloskop Nedir? 72 ... Servo

x Arduıno ile Robotik Projeler İçindekiler

App Inventor 2 ve Arduino Programlama 32

App Inventor 2 Nedir? 32

App Inventor 2 Giriş 32

Arduino HC-06 Bluetooth ile LED Uygulaması 33

Arduino HC-06 Bloetooth ile LED Kontrol Yazılımı 36

App Inventor 2 LED Uygulaması Devre Tasarım 37

Android Cihazda Uygulamanın Çalıştırılması 38

Vısual Basıc 6.0 ve Arduino Programlama 39

Visual Basic Nedir? 39

Visual Basic 6.0 ile Arduino Kontrolü 39

Visual Basic 6.0 Bluetoth HC-06 Bağlantısı 47

Seri Haberleşme, IC2 Protokolü, SPI Haberleşme 49

Seri Haberleşme (RS232) 49

I2C Haberleşme Protokolü 50

SPI Haberleşme Protokolü 53

Neler Öğrendik? 56

Bölüm 3: Elektrik, Elektronik ve Devre Yapımı 59

Elektrik Nedir? 60

Elektrik İletim Çeşitleri 60

AC (Alternating Current) Alternatif Akım 60

DC (Direct Current) Doğru Akım 62

Temel Elektrik Bilgisi 63

Elektrik Akımı 63

Elektrik Voltajı 63

Diranç (Rezistans) 64

OHM Kanunu 64

Elektriksel Güç 65

DC (Direct Current) Elektrik Semboller 65

Page 4: arduino ile robotik projeler book · Arduino Nedir? 2 Arduino Çeşitleri 3 Arduino UNO 3 Arduino Mega 6 ... Kablo, Devreyolu, Devre Elemanları Testi 71 Osiloskop Nedir? 72 ... Servo

xi Arduıno ile Robotik Projeler İçindekiler

Elektrik Değerlerinin Ölçümü 66

Multimetre Nedir? 66

Multimetre ile Ölçüm ve Test Yapmak 68

Voltaj Ölçme 68

Direnç Ölçümü 68

Amper Ölçümü 69

Kapasitans Ölçümü 70

Kablo, Devreyolu, Devre Elemanları Testi 71

Osiloskop Nedir? 72

Elektrik Bağlantı Şekilleri 72

DC (Direct Current) Güç Kaynağı Seri Bağlantı 72

DC (Direct Current) Güç Kaynağı Paralel Bağlantı 73

Elektronik Nedir? 74

Temel Devre Elemanları 74

Güç Kaynağı 75

Güç Kaynaklarının Ölçümü 77

Direnç 78

Basit Direnç Devresi 78

Seri Bağlı Dirençler 79

Paralel Bağlı Dirençler 79

Direnç Değerini Okuma 79

Kondansatör 80

Basit Kondansatör Devresi 82

Kondansatör Seri Bağlantı 83

Kondansatör Paralel Bağlantısı 83

Kondansatör Değerlerinin Okunması 83

Page 5: arduino ile robotik projeler book · Arduino Nedir? 2 Arduino Çeşitleri 3 Arduino UNO 3 Arduino Mega 6 ... Kablo, Devreyolu, Devre Elemanları Testi 71 Osiloskop Nedir? 72 ... Servo

xii Arduıno ile Robotik Projeler İçindekiler

Diyotlar 84

Basit Diyot Devresi 85

Diyot Seri Bağlantı 85

Diyot Parelel Bağlantı 85

Diyot ile Ters EMK (Elektromotor Kuvveti) Önleme 85

Diyot Çeşitleri 86

Diyotların Ölçülmesi 88

Transistörler 88

Arduino, Transistör ile DC Motor Kontrolü 89

Transistörlerin Ölçülmesi 91

Potansiyometre ve Trimpot, Ayarlı Dirençler 92

Arduino ile Potansiyometre DC Motor Kontrol Devresi 92

Entegreler 94

Gerilim Regülatörü 78XX Fix’ler 94

Motor Sürücü Entegreleri 95

Port Çoğaltma (Shift Register) Entegresi 98

74HC595 Port Çoğaltma Entegresi 98

RTC Gerçek Zaman Entegresi 1307 100

Arduino DS1307 Uygulaması 100

ULN2003 Entegre 103

EEPROM Entegre 105

Harici EEPROM 24LC256 106

Kristal 107

Hoparlör ve Buzzer 108

Buton, Anahtar 108

Devre Tasarımı ve PCB Yapımı 109

Elektronik Devre Nedir? 109

Fritzing ile Devre Tasarımı 110

Devre Tahtası 113

Page 6: arduino ile robotik projeler book · Arduino Nedir? 2 Arduino Çeşitleri 3 Arduino UNO 3 Arduino Mega 6 ... Kablo, Devreyolu, Devre Elemanları Testi 71 Osiloskop Nedir? 72 ... Servo

xiii Arduıno ile Robotik Projeler İçindekiler

Delikli Plaket (Pertınaks) ile Devre Yapımı 114

Frıtzıng ile PCB Devre Tasarımı 115

PCB ve Baskılı Devre Çıkartma 116

Lehimleme 120

Neler Öğrendik? 121

Bölüm 4: Sensörler, Algılayıcılar ve Kompanentler 123

Sıcaklık ve Nem Sensörleri 124

LM35 Sıcaklık Sensörü 124

DHT11 Isı ve Nem Sensörü 125

K Tipi Termokupl ile Max6675 Sensörü 127

Mesafe Ölçümü ve Cisim Algılama Sensörleri 129

CNY70 Kızılötesi Sensör 131

Işık ve Renk Algılama Sensörleri 133

Fotodirenç (LDR) Işık Algılama Sensörü 134

Tcs3200 Renk Sensörü 135

Mpu6050 6 Eksen İvme ve Jireskop Sensörü IMU 138

İvme (Accelerometer) Sensör Nedir? 138

Jireskob (Gyro) Sensörü Nedir? 138

Kuvvet ve Eğim Sensörler 140

Kuvvet Ölçüm Sensörleri 140

Flex Eğim Ölçüm Sensörler 142

Ağırlık Ölçüm Sensörü (Load Cell) ve HX711 Kuvvetlendirici 143

Titreşim Sensörü SW420 144

ACS712 Akım Sensörü 146

Basınç ve Pusula Sensörleri 148

BMP180 Basınç Sensörü 148

HMC5883L3 Üç Eksen Pusula Sensörü 151

Page 7: arduino ile robotik projeler book · Arduino Nedir? 2 Arduino Çeşitleri 3 Arduino UNO 3 Arduino Mega 6 ... Kablo, Devreyolu, Devre Elemanları Testi 71 Osiloskop Nedir? 72 ... Servo

xiv Arduıno ile Robotik Projeler İçindekiler

Reed Röle Manyetik Algılayıcı 153

Android İşletim Sistemli Akıllı Cihazlar 154

2X16 LCD Ekran ve I2C Modülü 155

2X16 LCD I2c Modülü 156

LCD Ekran Özel Karekter Oluşturma 157

GSM Modülü 159

GSM At Komutları 165

ESP8266 WiFi Modülü 165

WiFi Modem, Port Yönlendirme Ayarı 167

AT Komutları 167

ESP8266 DHT11 Sıcaklık, Nem ve LED Uygulaması 168

Bluetooth Modülü (HC-05, HC-06) 171

433 MHZ RF Alıcı Verici 173

KY-040 Rotary (Döner) Enkoder 175

KY-038 Mikrofon Ses Sensör Modülü 177

IR Alıcı Verici Kumanda 178

Röle 180

Batarya Şarj Cihazları 182

USB Serial Dönüştürücü 182

Neler Öğrendik? 183

Bölüm 5: Robotik Kontrol Elemanları ve Sürücüler 185

DC Motorlar 186

DC Motor Sürücüleri 186

Arduino L293D Motor Shıeld 187

L298N Motor Sürücü Kartı 189

Fırçasız (Brushless) DC Motorlar 191

Page 8: arduino ile robotik projeler book · Arduino Nedir? 2 Arduino Çeşitleri 3 Arduino UNO 3 Arduino Mega 6 ... Kablo, Devreyolu, Devre Elemanları Testi 71 Osiloskop Nedir? 72 ... Servo

xv Arduıno ile Robotik Projeler İçindekiler

Servo Motor 194

DC Silecek veya Cam Kaldırma Motorunu Servo’ya Dönüştürme 195

BTS7960B DC Motor Sürücü Kartı 196

Step Motor 200

ULN2003 ile Step Motor Kontrolü 201

A4988 Step Motor Sürücü ile Step Motor Kontrolü 202

Doğrusal (Lineer) Motorlar 205

Pinomatik ve Hidrolik Sistemler 205

Neler Öğrendik? 205

Bölüm 6: Algoritma Geliştirme, Robot Tasarımı ve Yapımı 207

Algoritma Geliştirme 208

Algoritma 208

Akış Diyagramı 209

Oparatörler 210

Karşılaştırma Oparatörleri 211

Mantık Oparatörleri 211

Matematiksel Aritmatik Oparatörler 211

Bit İşlem Oparatörler 212

Değişkenler 212

Sabit Değişkenler 213

Veri Türleri 214

Stringler 216

Diziler 218

Kontrol Yapıları 218

if/else Kontrol Yapısı 218

for Döngüsü 219

switch/case Kontrolyapısı 220

while 221

Page 9: arduino ile robotik projeler book · Arduino Nedir? 2 Arduino Çeşitleri 3 Arduino UNO 3 Arduino Mega 6 ... Kablo, Devreyolu, Devre Elemanları Testi 71 Osiloskop Nedir? 72 ... Servo

xvi Arduıno ile Robotik Projeler İçindekiler

do – while 221

continue 222

return 222

goto 222

Sayı Sistemleri 223

İkilik (Binary) Sayı Sistemi 223

Sekizlik (Oktal) Sayı Sistemi 224

Onaltılık (Hexadesimal)Sayı Sistemi 224

PID Kontrol Algoritması 225

Robot Tasarımı 227

FreeCAD Tasarım Programı 228

Robot Yapımı ve Kullanılması 229

Alet ve Ekipmanlar 229

Materyaller 229

Ahşap 229

Metal 229

Plastik 230

Flaxyglass 230

Esun Polymorph 230

Derlin 230

Dekota 230

Depron 230

Dış Cephe Kaplama Alüminyum Levha 230

PCB Levha 231

SUN-FIX Yapıştırıcı 231

Çift Taraflı Köpüklü Yapışkan Bant 231

Robot Çalıştırılması Gereken Alanlar 231

Neler Öğrendik? 231

Page 10: arduino ile robotik projeler book · Arduino Nedir? 2 Arduino Çeşitleri 3 Arduino UNO 3 Arduino Mega 6 ... Kablo, Devreyolu, Devre Elemanları Testi 71 Osiloskop Nedir? 72 ... Servo

xvii Arduıno ile Robotik Projeler İçindekiler

Bölüm 7: Arduıno Çizgi İzleyen Robot 233

Parça Listesi 234

Devre Şeması 235

Robotun Yapılışı ve Çalıştırılması 235

Karşılaşılan Problemler ve Çözümleri 239

Neler Öğrendik? 240

Bölüm 8: Bluetooth Kontrollü Robot 241

App Inventor 2 ile Bluetooth Robot Kontrol 242

Devre Şeması 245

Visual Basic 6 ile Bilgisayar Bluetooth Robot Kontrol 248

Karşılaşılan Problemler ve Çözümleri 250

Neler Öğrendik? 251

Bölüm 9: Kendi Kendini Dengeleyen Balans Robotu 253

Parça Listesi 254

Devre Şeması 255

Robotun Yapılışı 255

Karşılaşılacak Problemler ve Çözümleri 267

Neler Öğrendik? 267

Bölüm 10: Engel Algılayan Robot 269

Devre Şeması 270

Parça Listesi 270

Robotun Yapılışı ve Çalıştırılması 271

Tasarım Düzenleme 273

Karşılaşılan Problemler ve Çözümleri 279

Neler Öğrendik? 279

Page 11: arduino ile robotik projeler book · Arduino Nedir? 2 Arduino Çeşitleri 3 Arduino UNO 3 Arduino Mega 6 ... Kablo, Devreyolu, Devre Elemanları Testi 71 Osiloskop Nedir? 72 ... Servo

xviii Arduıno ile Robotik Projeler İçindekiler

Bölüm 11: Dört Servo İnsansı Yürüyen Robot 281

Parça Listesi 282

Devre Şeması 283

Robotun Yapılışı ve Şeması 283

Karşılaşılan Problemler ve Çözümler 287

Neler Öğrendik? 287

Bölüm 12: İki Eksenli Işık Takip Eden Robot ve Güneş Enerjisi 289

Parça Listesi 290

Devre Şeması 290

Robotun Yapılışı ve Çalıştırılması 291

Karşılaşılabilecek Problemler ve Çözümleri 296

Neler Öğrendik? 296

Bölüm 13: Fırçasız Motorlu Bluetooth Kontrollü Gemi 297

Parça Listesi 298

Devre Şeması 298

Robotun Yapılışı 299

App Inventor 2 Gemi Kontrol Uygulaması 300

Karşılaşılan Problemler ve Çözümleri 303

Neler Öğrendik? 303

Bölüm 14: Arduıno Kontrollü Robot Kol 305

Devre Şeması 306

Robotun Yapılışı ve Çalıştırılması 307

Karşılaşılacak Problemler ve Çözümleri 314

Neler Öğrendik? 314

Page 12: arduino ile robotik projeler book · Arduino Nedir? 2 Arduino Çeşitleri 3 Arduino UNO 3 Arduino Mega 6 ... Kablo, Devreyolu, Devre Elemanları Testi 71 Osiloskop Nedir? 72 ... Servo

xix Arduıno ile Robotik Projeler İçindekiler

Bölüm 15: Androıd ile 433 Mhz RF (Radıo Frekans) Kontrollü Uçak 317

Parça Listesi 319

Devre Şeması 319

Uçağın Yapılışı ve Çalıştırılması 320

App Ivertor 2 ile Uçak Kontrol Uygulaması 323

Karşılaşılan Problemler ve Çözümler 330

Neler Öğrendik? 330

Bölüm 16: İki Katlı Dairesel Otorark Otomasyon Sistemleri 333

Otopark Parça Listesi 333

Otoparkın Yapılışı ve Çalıştırılması 334

Devre Şeması 334

Karşılaşılan Problemler ve Çözümleri 343

Neler Öğrendik? 343

Son Söz 344

Dizin 345

Page 13: arduino ile robotik projeler book · Arduino Nedir? 2 Arduino Çeşitleri 3 Arduino UNO 3 Arduino Mega 6 ... Kablo, Devreyolu, Devre Elemanları Testi 71 Osiloskop Nedir? 72 ... Servo

Bu Bölümde

Arduıno Nedir? Arduıno Çeşitleri ve IDE Kurulumu

1

Bu bölümde Arduino’nun açık kaynaklı olmasının avantajlarına değineceğiz. Bölüm boyunca Ardui-no’nun temelini ve teknik özelliklerini hep beraber öğrenecek Arduino’nun çeşitlerini tanıyıp Arduino seçiminin önemi anlayacağız. Biraz parmaklarımızı çalıştırarak Arduino IDE programını internetten indi-rerek basit bir örnek ile konuyu kavramaya çalışalım.

Ayrıca bölüm boyunca Arduino IDE programı ile ilgi-li ilk izlenimlerinizi edinecek ve sonrasında Arduino ile yapabileceğiniz projelerin zihninizde yavaş yavaş canlanmasını sağlayacaksınız.

Arduino ile tanışmaya hoş geldiniz.

Hadi başlayalım!

Arduino Nedir? 2Arduino Çeşitleri 3Arduino IDE Yazılımı ve Kurulumu 11Neler Öğrendik? 13

Page 14: arduino ile robotik projeler book · Arduino Nedir? 2 Arduino Çeşitleri 3 Arduino UNO 3 Arduino Mega 6 ... Kablo, Devreyolu, Devre Elemanları Testi 71 Osiloskop Nedir? 72 ... Servo

2 Bölüm 1 Arduıno Nedir? Arduıno Çeşitleri ve IDE Kurulumu

Arduıno Nedir?Arduino, açık kaynaklı geliştirme ortamı sunan elektronik ve fiziksel program-lama platformudur. Arduino donanımlarında Atmel tarafından üretilen Atmel AVR Mikroişlemci (ATmega328, ATmega2560, ATMEGA32U4) bulunur. Bu plat-form basit bir C dili kullanılarak geliştirilmiştir. Ticari açıdan olayı ele alacak olur-sak, açık kaynaklı olması sebebiyle herkes tarafından geliştirilebilir, üretilebilir ve satılabilir. En güzel tarafı ise Arduino’ya bilgisayar üzerinden yazılım yükle-yip, giriş ve çıkış pinlerini kullanarak kontrol devreleri oluşturabilmemizdir.

Arduino ile analog ve dijital verileri işleyebilir ve yine aynı şekilde analog ve dijital veriler olarak çıktı sağlayabiliriz. Kitaba başlarken Arduino kullanmanın püf noktasını vereyim; dijital ve analog terimleri. Bu terimlerin mantığını anladığımızda, kontrol sistemleri oluşturmanın büyük kısmını halletmiş oluruz. Merak etmeyin ilerideki bölümlerde bu terimleri daha iyi anlayacaksınız.

Elektronik cihazların gelişmesi ve talebin artması, bu sistemlerin daha geniş kitleler tarafından anlaşılması ve geliştirilmesi gerekliliğini beraberinde getirdi. Arduino ile mikroişlemciler ve onların nasıl çalıştığını anlamak işimiz daha da kolaylaştıracaktır. Bu sayede Arduino, her yaştan insanın kullanabileceği bir platform haline gelmiştir. Arduino uyumlu yan devre elemanlarının (Sensör, Motor Sürücü, LCD Ekran vb.) artışı, yazılımların gelişmesini sağlamış, kullanılabilirliği artmış ve kolaylık kazanmıştır. Atmel işlemcisi ve donanımsal özelliği ile her türden kontrol ve robotik sistemleri, hobi sistemleri, otomasyon sitemleri geliştirebiliriz.

Açık Kaynaklı Arduino UNO PCB Çizimi (www.arduino.cc)

Page 15: arduino ile robotik projeler book · Arduino Nedir? 2 Arduino Çeşitleri 3 Arduino UNO 3 Arduino Mega 6 ... Kablo, Devreyolu, Devre Elemanları Testi 71 Osiloskop Nedir? 72 ... Servo

3Arduıno Çeşitleri

Arduino’yu geniş kütüphane desteği sayesinde karmaşık işlemleri kolaylaştır-ması, hızlı çalıştırıp sonuç alınması, benzerlerine göre fiyatının uygun olması, gereken kütüphanelerin ve yazılımlarının ücretsiz elde edilmesi gibi etmenler-den dolayı tercih ediyoruz. Esasında, bu özellikler sayesinde Arduino elektronik ve bilişim dünyasında önemli bir yere sahip olmuştur diyebiliriz.

Düşünsenize, Arduino kartı aldığımızda programlamak için sadece bir bilgisayar ve standart USB kablosu gerekiyor. Yani USB kablosu veya harici bir güç kaynağı ile Arduino’yu çalıştırabiliriz. Ne güzel değil mi?

Programlama kısmına değinecek olursak; C tabanlı bir dil olması sebebiyle C, C++, C# gibi dillerini bilen arkadaşlar için Arduino programlamak çok zor olmayacaktır. Bu dilleri bilmiyorsanız yine sorun değil. Birkaç basit örnekle Arduino programlamaya giriş yapabilir ve kendinizi geliştirebilirsiniz. Tabi programlama haricinde devre elemanları, devre kurma ve devre oluşturma konularında da bilgi sahibi olmamız gerekecek. Bu kitabın amacı da zaten tüm bunlar hakkında sizi olabildiğince donanımlı hale getirmek.

Değerli Maker arkadaşlar, gelecek bölümlerde bazı temel robotik uygulamalar ile Arduino programlayacağız. Devre elemanlarını tanıyıp devre tasarımı yapa-cağız. İlaveten sensör ve algılayıcılar, robotik mekanizmalar hakkında bilgi ve örnekler göreceğiz. Arduino’yu yan elemanlar ile birlikte anlamaya çalışacağız. Yabancısı olduğunuz çok konu var değil mi? Korkmayın. Öğreneceğimiz konu-lar çok görünse de beraber bu işin altından kalkacağımıza inanıyorum.

Arduıno ÇeşitleriArduino’nun bir çok modeli var. Arduino modellerinde mikroişlemci, giriş çıkış pinlerinin sayısı, boyut ve çalışma gerilimi gibi özellikleri farklılık gösterebilir. Projelerde en çok kullanılan ve kitapta tercih etteğimiz Arduino modellerini tanıyacak, sensör ve algılayıcılar kullanarak bu modellerle istediğimiz projeleri geliştirebileceğiz. Hadi Arduino’ları bilikte tanımaya çalışalım.

Arduıno UNOEn çok kullanılan ve tercih edilen Arduino türü diyebiliriz. Üzerinde Atmega328 mikroişlemci, güç regülatörü, USB bağlantı portu, 16 MHz kristal osilator, serial USB dönüştürücü haberleşme çipi, 5 adet analog giriş pinleri, 11 adet dijital giriş-çıkış pinleri, 2 adet RX–TX haberleşme pinleri, GND, 3.3 Volt ve 5 Volt çıkış pinleri, Reset butonu, LED’ler bulunmaktadır.

Datasheet’ini inceleyerek ayrıntılı bilgi edinebiliriz.

Page 16: arduino ile robotik projeler book · Arduino Nedir? 2 Arduino Çeşitleri 3 Arduino UNO 3 Arduino Mega 6 ... Kablo, Devreyolu, Devre Elemanları Testi 71 Osiloskop Nedir? 72 ... Servo

Bu Bölümde

Arduıno Programlama ve Haberleşme

2

Bu bölümde Arduino ile programlamaya giriyoruz. Sanal ortamda Arduino IDE programında yazılımın derlenmesi ve seri port monitöründe veri akışını inceleyeceğiz. Hemen ardından kodlarımızı yazmaya başlayıp Arduino’ya fiziksel olarak temas edeceğiz. Basit dijital giriş ve çıkış LED uygulamaları yapacağız. Bununla birlikte analog giriş ve çıkış LED uygulamaları yaparak Arduino ile neler yapabilir fikir sahibi olacağız.

İlaveten Scratch, App Inventor 2, Visual Basic 6 prog-ramlarıyla uygulamalar gerçekleştireceğiz. Bilgisayar ve akıllı cihazlar ile Arduino’yu kontrol ederek Ardui-no ile konuşup neler yapmak istediğimizi anlatacağız. Seri Haberleşme, I2C haberleşme ve SPI haberleşme gibi Arduino haberleşme protokollerini tanıyacağız. Fritzing devre tasarım programını inceleyeceğiz. Be-raber devre tahtasında devrelerimizi hazırlayarak, uy-gulamalarımızı yapacağız.

Arduino ile konuşmak için sabırsızlıkla beklediğinizi düşünüyorum.

Arduino Programlamaya Giriş 16Arduino ile LED Uygulamaları 20Scratch ile Arduino Programlama 28App Inventor 2 ve Arduino Programlama 32Visual Basic 6.0 ve Arduino Programlama 39Seri Haberleşme, IC2 Protokolü, SPI Haberleşme 49Neler Öğrendik? 56

Page 17: arduino ile robotik projeler book · Arduino Nedir? 2 Arduino Çeşitleri 3 Arduino UNO 3 Arduino Mega 6 ... Kablo, Devreyolu, Devre Elemanları Testi 71 Osiloskop Nedir? 72 ... Servo

16 Bölüm 2 Arduıno Programlama ve Haberleşme

Arduıno Programlamaya GirişBir önceki bölümde bahsettiğimiz gibi Arduino programlamak için basit bir C dili kullanırız. Arduino IDE programına, Arduino’nun neler yapacağını yazarız. Arduino ise yazdığımız kodları yorumlayarak bize sonuçlarını gösterir. Bu so-nuçlar doğrultusunda kontrol mekanizmaları harekete geçer.

C dilini öğrenmek için birçok kaynak vardır. Özellikle internet ortamında C dili ile ilgili kaynak bulmak kolaydır. Siz değerli maker arkadaşlar öğrenmek iste-diğiniz birçok konuya internet ortamında ulaşabilirsiniz. Günümüzde bilgiler kütüphanenin tozlu raflarından sanal ortama geçmiştir. Maker ruhunun önemli bir özelliği de araştırmacı olmaktır. Kitapta C dilini teknik detaya inmeden ver-dik. Uygulama yaparak fikir sahibi olacağınızı düşünüyorum. Şimdi birlikte, Ar-duino IDE programını ve C dilini inceleyelim.

Arduino IDE’de kod yazarken genelde aynı mantık yürütülür. Başlangıç olarak kütüphaneler tanıtılır. İkinci olarak değişkenler tanıtılır. Üçüncü noktada void setup() bölümüyle kullanacağımız parametre değerleri tanıtılır. Dördüncü noktada void loop() ile program yazılır.

Arduino IDE programında yapılacak her işlemi alt alta yazarız. Arduino her satırı okur ve işlemlerini gerçekleştirir. Biz ne yazarsak onu yapar. Bizi dinler. Beraber yapacağımız uygulamalarla eminim Arduino’ya daha fazla söz geçireceksiniz.

Dosya-Örnekler-Servo-Knop Dosya Yolu

Page 18: arduino ile robotik projeler book · Arduino Nedir? 2 Arduino Çeşitleri 3 Arduino UNO 3 Arduino Mega 6 ... Kablo, Devreyolu, Devre Elemanları Testi 71 Osiloskop Nedir? 72 ... Servo

1 7Arduıno Programlamaya Giriş

Kodun Derlenmesi ve Arduıno ya AktarılmasıArduino IDE’de Tik butonu programımızı derleyip hata kontrolünü yap-mamızı sağlar. Ok butonu ile yazdığımız programın HEX dosyası (hexademal dosya) Arduino’ya aktarılır.

HEX dosyası hakkında merak ettiğikleriniz bir sonraki sayfada mevcuttur.

KütüphaneBir önceki bölümde masaüstüne indirdiğimiz Arduino program klasöründe, libraries klasörü içerisinde bulunan .cpp ve .h uzantılı dosyalarıdır. Bu dosyaları yazacağımız Arduino kodlarına ekleyerek kolay kullanım ve yazılım özelliği sağ-lanmış olur. Arduino programlamayla ilgilenen kişiler veya yan devre eleman-ları üreten firmalar kütüphaneler geliştirip yayınlarlar. Bunlar ücretsizdir. Web ortamında birçok kütüphaneyi indirebiliriz. İlerideki bölümlerde silecek moto-runu, servo motora dönüştürürken basit bir kütüphane uygulaması yazacağız.

Serı PortServo kontrol uygulamasında, seri port ikonuna tıkladığımızda servo motorun açı bilgisi farklı bir ekrandan akacaktır. Bilgisayar ile iletişimimizi sağlayacaktır. Servo motor ile ilgili detaylı incelemelerimizi ilerideki bölümlerde yapacağız. Servo motor da nerden çıktı şimdi duygusuna kapılmayın.

Örnek ProgramlarArduino IDE programında Dosya>Örnekler yolunda birçok basit ve biraz da zor örnekler bulunmaktadır. Bu örnek programları anlayıp, devreler kurup çalışa-bilirsiniz. Örnekleri inceleyip Arduino C dili hakkında bilgi sahibi olabilirsiniz.

Seri Port ve Açı Değerlerinin Akışı

Page 19: arduino ile robotik projeler book · Arduino Nedir? 2 Arduino Çeşitleri 3 Arduino UNO 3 Arduino Mega 6 ... Kablo, Devreyolu, Devre Elemanları Testi 71 Osiloskop Nedir? 72 ... Servo

Bu Bölümde

Elektrik, Elektronik ve Devre Yapımı

3

Hayatımızın vaz geçilmez parçası olan elektrik, yaşa-mımızın her alanında yer almıştır. Artık onsuz yaşa-mayı bile hayal edemiyoruz.

Bu bölümde Robotik ve elektronik projelerimizin te-meli olan elektrik konusunu inceleyecek, multimetre ile ölçümler gerçekleştirerek ve elektronik temel dev-re elemanlarını tanıtarak elektroniğe giriş yapacağız. Ayrıca projelerimizi hayata geçirebilmek için devre tasarımı ve devre yapımını göreceğiz.

Robotik projeler uygulamalarını anlamak için bu bö-lüm önemlidir. Teknik detaylara inmeden, bezetme-ler yaparak siz değerli Maker arkadaşlarla beraber konuları inceleyeceğiz.

Elektrik Nedir? 60Elektrik İletim Çeşitleri 60Temel Elektrik Bilgisi 63Elektrik Değerlerinin Ölçümü 66Multimetre ile Ölçüm ve Test Yapmak 68Elektronik Nedir? 74Temel Devre Elemanları 74Direnç 78Kondansatör 80Diyotlar 84Transistörler 88Potansiyometre ve Trimpot, Ayarlı Dirençler 92Entegreler 94Kristal 107Hoparlör ve Buzzer 108Buton, Anahtar 108Devre Tasarımı ve PCB Yapımı 109Neler Öğrendik? 121

Page 20: arduino ile robotik projeler book · Arduino Nedir? 2 Arduino Çeşitleri 3 Arduino UNO 3 Arduino Mega 6 ... Kablo, Devreyolu, Devre Elemanları Testi 71 Osiloskop Nedir? 72 ... Servo

60 Bölüm 3 Elektrik, Elektronik ve Devre Yapımı

Elektrik Nedir?İki cismin birbirine sürtünmesi, sıkıştırılması gibi herhangi mekanik etki sırasın-da veya ısının bazı kristallere olan tesiri nedeniyle meydana gelen ve etkisini çekme, itme, mekanik, kimyasal ve ısı olarak gösteren fiziksel bir olaydır. Atom-ların dış yörüngelerinde bulunana elektronlar koparak serbest hale gelirler. Elektrik akımını ve elektrik voltajını meydana getirip, elektronları hareket etti-rerek, aydınlatmalarımızı, ısınmamızı, ev eşyalarını çalıştırmamızı, endüstriyel alanda kullanılan makinelerin çalışması, motorların çalışması gibi birçok alanda kullanmaktayız. Elektrik yükleri eksi ( - ) yükten artı ( + ) yüke akmasıyla, etkiler elde edilir. Günümüzde enerji insan hayatının içinde her zaman vardır ve uğrun-da savaşlar bile çıkmaktadır.

Elektrik, iletkenler (bakır tel veya alüminyum tel) vasıtasıyla aktarılarak, kullan-mamız sağlanmıştır. İletkenlerin elektriği iletiminde %100 olarak verim sağla-namaz. Bir iç direnç vardır. İletkenin kalınlığı, uzunluğu ve cinsi bu iç dirençte önemli bir faktördür. Maliyet ve iletkenlik bakımından bakır kablolar kullanılır. Elektrik günümüzün vaz geçilmez bir parçası olmuştur. Hatta aramızda espiri konusu olan, bay ve bayanın tanışmaları için bile birbirlerinden elektrik alması gerekmektedir :)

NOTProjelerimizde ve hayatımızda elektrikle sürekli ilgileneceğimiz için onu iyi anlamamız gerekmektedir. Yanlış bir durum karşısında, projemizde veya sağ-lığımızda tehlikeli durumlar oluşturabilir. Elektrik kullanımına dikkat edelim.

Elektrik İletim ÇeşitleriAC (Alternatıng urrent) Alternati AkımZamana bağlı olarak, genliği ve yönü sürekli olarak değişen elektriksel akımdır. En çok sinüs dalga türü kullanılır. Konutlarda ve endüstriyel alanda elektrik da-ğıtımı AC-Alternatif Akım olarak gerçekleşmektedir. Bunun nedeni AC akımda elektrik iletiminin, veriminin yüksek ve maliyetinin düşük olmasıdır. Bir iletim hattındaki kayıp güç iletkendeki akımın karesi ve direncinin çarpımı ile bulu-nur. P=I^2x R formül ile iletkenden geçen akım 2 katına çıkarsa güç kaybı 4 katına çıkmaktadır. Bu nedenle AC akımla beraber yüksek gerilimler ile elekt-rik akımı sağlanarak, direnç düşürülmüştür. Ülkemizde 50 Hz frekansla elektrik dağılmaktadır. Elektrik saniyede 50 defa yön değiştirmektedir. Yüksek gerilimle gelen elektrik Transformatorler ile düşürülerek konutlarda 220 Volt, endüstriyel alanda 380 Volt veya daha fazlası kullanılır.

Page 21: arduino ile robotik projeler book · Arduino Nedir? 2 Arduino Çeşitleri 3 Arduino UNO 3 Arduino Mega 6 ... Kablo, Devreyolu, Devre Elemanları Testi 71 Osiloskop Nedir? 72 ... Servo

6 1Elektrik Nedir?

NOTDC akım, Güç Elektroniği ile AC akıma çevrilebilir. AC akım da elektronik cihaz-larda kullanmak üzere DC akıma çevrilebilir.

DİKKAT

AC akımda 60 voltun üstü, insan sağlığı ve hayatı için tehlikeli durum oluştur-maktadır. Elektrikle yapacağınız işlemlerde çok dikkatli olmalısınız. Unutma-yın elektrik gevşekliği, suyu, dikkatsizliği sevmez. Yüksek Voltajlar ile çalışır-ken iş güvenliği kurallarını lütfen dikkate alınız. Benim de elektrik çarpması ile tecrübem olmuştur. Tecrübesiz zamanımda iş yerinde çalıştıktan sonra banyo etmiştim. Kimse yoktu. Banyo ederken işyerindeki elektrik panosundan garip bir ses gelmekteydi. Sanırım kablolardan bir kaçı gevşek bağlanmıştı. Banyo ettikten sonra ıslak bir şekilde ve güvenlik tedbirleri almadan elektrik panosu-nun yanına gittim. Arızalı bir durum olup olmadığını kontrol edecektim. Pano kapağına dokunduğumda elektrik çarpmaya başladı. Adeta pano ile horon tepiyordum. Kısa süre çarpıldıktan sonra beni fırlattı. Çok şükür bir şey olma-dı. Belki daha çok sorun yaşayabilirdim. Bu durum bende tecrübe kazandırdı. Endüstriyel otomasyon çalışmalarımda, otomasyon panoları yaparken her zaman o çarpılmam aklıma gelir ve gereken önlemleri alırım. Elektrikle ilgili bilmediğim arızalara veya durumlara bakmam. Siz değerli Maker arkadaşlar-da böyle durumları dikkate almalısınız.

AC Zamana Bağlı Olarak Elektrik Yükünün DeğişmesiSinüs Dalgası Grafiği

AC Akımda İletken İçinde Elektronların Hareketi

Page 22: arduino ile robotik projeler book · Arduino Nedir? 2 Arduino Çeşitleri 3 Arduino UNO 3 Arduino Mega 6 ... Kablo, Devreyolu, Devre Elemanları Testi 71 Osiloskop Nedir? 72 ... Servo

68 Bölüm 3 Elektrik, Elektronik ve Devre Yapımı

Direnç ÖlçümüElektronik kartlarda en çok kullanılan kompanent olması nedeni ile sık sık ölçüm yapacağımız bölümdür. Dirençleri ölçerek doğruluklarının tespitini yapmakta-yız. Direnç ölçümünde buton Ω Ohm kademesine getirilmelidir. COM ve VΩMA soketlerine bağlı iki probun ucu, direncin iki ucuna bağlanarak ölçüm yapılır. Direnci ölçülecek elemanın gerilim altında bulunmaması gerekir. Dirençleri öl-çtüğümüzde tam değerini Multimetre göstermeyebilir. Ölçü aletin iç direnci, prob ve kablo direnci azda olsa etkileyebilir. Dirençlerde belirlenen bir telorans değeri vardır. Ölçüm yaptığımızda o teloranslar arasında kalıyorsa bizim için uy-gundur. Örnek olarak 470Ω %5 teloranslı bir direnci ölçüm aletiyle ölçtüğümüz-

Multimetre ile Ölçüm ve Test Yapmakoltaj Ölçme

Voltaj büyüklüklerinin ölçümü AC (Alternating Current) Alternatif Akım ve DC (Direct Current) Doğru Akım olmak üzere ikiye ayrılır. AC voltaj ölçüm yapmak istediğimizde, Multimetre’miz kademeli el ile seçme özellikteyse ve yaklaşık öl-çeceğimiz değerin ne olduğundan emin değilsek, butonumuzu V – bölümünde en üst değere çekerek ölçüm yapabiliriz. Multimetre’miz Kademe otomatik seç-me özellikteyse, butonumuzu V konumuna getirip AC - DC butonunu AC konu-muna getirelim. COM soketinden çıkan siyah prob ile VΩMA soketinden çıkan kırmızı prob elektrik kaynağa temas ettirerek ölçüm yapılır. AC akımda probun yeri önemli değildir ve yerleri değişse de aynı değeri alırsınız. DC voltaj ölçüm yapacak isek Multimetre’nin DC özelliğine alıp iki prob kablomuzu, elektrik kay-nağına temas ettirerek ölçüm yapılır.

Ölçümüzde eksi ( - ) değer alıyorsak, problarımızın yerlerini değiştirmeliyiz. Bu nedenle siyah kablolu probun, DC elektrik kaynağında hangi kablonun eksi ( - ) olduğu anlaşılır. Diğer kablo ( + ) olacaktır.

Multimetre ile DC Voltaj Ölçümü

Page 23: arduino ile robotik projeler book · Arduino Nedir? 2 Arduino Çeşitleri 3 Arduino UNO 3 Arduino Mega 6 ... Kablo, Devreyolu, Devre Elemanları Testi 71 Osiloskop Nedir? 72 ... Servo

6 9Multimetre ile Ölçüm ve Test Yapmak

Amper Ölçümü AC gerilimlerde dijital Multimetre ile amper ölçümü sağlıklı olmayacaktır. AC gerilimlerin amper değerini ölçmek için ampermetreler mevcuttur. Bu amper-metreler, iletkenin akım trafosu içinden geçerek, iletkenin dışında oluşan man-yetik alanı okuyarak veya akım trafosu iletken ile seri bağlanarak amper ölçümü gerçekleştirir.

de, ekranda 466Ω gösterebilir. Hassas olmayan devreler için bu değer değişimi önemli değildir. Direnç ile ilgili teknik bilgi ilerideki konuda verilecektir.

Multimetre ile Direnç Ölçümü

Dijital Ampermetre-Multimetre Dijital Göstergeli Ampermetre, Akım Trafoları

Page 24: arduino ile robotik projeler book · Arduino Nedir? 2 Arduino Çeşitleri 3 Arduino UNO 3 Arduino Mega 6 ... Kablo, Devreyolu, Devre Elemanları Testi 71 Osiloskop Nedir? 72 ... Servo

Bu Bölümde

Sensörler, Algılayıcılar ve Kompanentler

4Sensörler ve algılıyıcılar, otomasyon kontrol sistem-lerinin çevre ve dış ortam koşullarını algılayan duyu organlarına verilen addır. Canlıların çevresinde olup bitenleri algılamasına benzer şekilde; makineler ve robotik projelerde sıcaklık, basınç, hız, iletişim vb. gibi değerleri algılayarak algoritmalar geliştiririz.

Bu bölümde robotik projelerimizde kullanabileceği-miz uygun maliyette sensörler ve algılayıcılar tanıtıp Arduino ile değerler okuyacağız. Bunun haricinde projelerimizde kullanacağımız kompanent ve cihazları tanıtacağız.

Robotik duyu organlarının Arduino ile hangi prose-dürde iletişim sağladıklarını ve bağlantı şekillerini öğ-renerek proje geliştirmeye bir adım daha yaklaşacağız. Sensörlerden aldığımız bilgileri Seri Portta inceleyece-ğiz. Duyularımızı harekete geçirmeye var mısınız?

Sıcaklık ve Nem Sensörleri 124Mesafe Ölçümü ve Cisim Algılama Sensörleri 129Işık ve Renk Algılama Sensörleri 133Mpu6050 6 Eksen İvme ve Jireskop Sensörü IMU 138Kuvvet ve Eğim Sensörler 140Basınç ve Pusula Sensörleri 148Reed Röle Manyetik Algılayıcı 153Android İşletim Sistemli Akıllı Cihazlar 1542X16 LCD Ekran ve I2C Modülü 155GSM Modülü 159ESP8266 WiFi Modülü 165ESP8266 DHT11 Sıcaklık, Nem ve LED Uygulaması 168Bluetooth Modülü (HC-05, HC-06) 171433 MHZ RF Alıcı Verici 173KY-040 Rotary (Döner) Enkoder 175KY-038 Mikrofon Ses Sensör Modülü 177IR Alıcı Verici Kumanda 178Röle 180Batarya Şarj Cihazları 182USB Serıal Dönüştürücü 182Neler Öğrendik? 183

Page 25: arduino ile robotik projeler book · Arduino Nedir? 2 Arduino Çeşitleri 3 Arduino UNO 3 Arduino Mega 6 ... Kablo, Devreyolu, Devre Elemanları Testi 71 Osiloskop Nedir? 72 ... Servo

124 Bölüm 4 Sensörler, Algılayıcılar ve Kompanentler

Sıcaklık ve Nem SensörleriSıcaklık ve Nem sensörleri piyasada en çok kullanılan sensör çeşitlerindendir. Ardino projelerimizde ve kontrol sistemlerinde çokça karşımıza çıkar. Sıcaklık ve Nem sensörleri ayrı ayrı özellikte olan sensörler ve ikisini bir arada taşıyan sensörler olarak ikiye ayrılır. Bilgi çıkış şekline göre sıcaklık ve nem sensörleri Dijital ve Analog çıkış vererek Arduino ile değerleri okumaktayız. Bir çok aralıkta, değerde ve hassasiyette ölçüm yapan sıcaklık ve nem sensörleri vardır. Biz de amacımıza uygun sensör tipini seçerek projeleri gerçekleştirebiliriz. Farklı çeşit sensörler hakkında bilgiler verip kullanım amacınıza göre seçim yapmayı inceleyelim.

M35 Sıcaklık Sensörü

LM35, kullanacağımız ortam sıcaklığına göre potansiyel fark oluşturarak, -50 santigrat derece ile 150 santigrat derece arasında değer alabileceğimiz analog çıkış verir. Pozitif ölçme durumunda her 1 derece artışı için 10mV gerilim değe-rini de arttırır. 5V ile 20V arasında gerilim verilebilir. Besleme gerilimi verildiğin-de sensör çıkışından okunacak değerler alınır.

Datasheet’ini bu adresten indirip inceleyebilirsiniz.

http://www.ti.com.cn/cn/lit/ds/symlink/lm35.pdf

Arduino LM35 Devre Şeması

Page 26: arduino ile robotik projeler book · Arduino Nedir? 2 Arduino Çeşitleri 3 Arduino UNO 3 Arduino Mega 6 ... Kablo, Devreyolu, Devre Elemanları Testi 71 Osiloskop Nedir? 72 ... Servo

1 2 5Sıcaklık ve Nem Sensörleri

Arduino - LM35 Kodlar

int deger; int sicaklikPin = A3;void setup(){Serial.begin(9600);}void loop(){deger = analogRead(sicaklikPin);float mvolt = (deger /1024.0)*5000; float celsius = mvolt/10; // santigrat hesabı yapılır.float farh = (celsius*9)/5 + 32; // fahrenayt hesabı yapılır.Serial.print("SICAKLIK C = "); // Seri Porta sıcaklık değeri yazılır.Serial.print(celsius);Serial.print("*C");Serial.println();delay(1000);

/* Serial.print("SICAKLIK F = ");Serial.print(farh);Serial.print("*F");Serial.println();*/}

LM35 örneğinde sıcaklık bilgisini Seri Port’tan okuyabiliriz. Yazılımı yaptığımız örneklere bakarak anlamaya çalışalım. Çok zor olmayacaktır.

DHT11 Isı ve Nem Sensörü

DHT11 Sıcaklık ve Nem sensörü dijital çıkış pininden verileri Arduino’ya atar. Arduino’da da bu verileri işler ve projemizi gerçekleştirebiliriz. DHT11 sensörü uygun maliyette ve çok fazla hassas değerlerin olmadığı yerlerde kullanılabi-lir. 0 santigrat derece ile 50 santigrat derece sıcaklık ölçüm değerini %2 hata payı, %20 - %90 nem ölçüm değerini %5 hata payı ile dijital değerler alabili-riz. 3.3 Volt veya 5 Volt gerilim ile çalışır. Programımızı çalıştırmamız için dht11

Page 27: arduino ile robotik projeler book · Arduino Nedir? 2 Arduino Çeşitleri 3 Arduino UNO 3 Arduino Mega 6 ... Kablo, Devreyolu, Devre Elemanları Testi 71 Osiloskop Nedir? 72 ... Servo

Bu Bölümde

Robotik Kontrol Elemanları ve Sürücüler

5

Bu bölümde, Arduino ile gerçekleştireceğimiz robo-tik veya otomasyon uygulamalarında kullanacağımız kontrol elemanları ve sürücülerini tanıtacağız. Sürü-cülerin hangi kontrol elemanları ile nasıl yazılımlarla kontrol edileceğini göreceğiz. Bununla birlikte Proje-lerimizde kontrol eleman ve sürücü seçimi nasıl ya-pılacağını anlayacağız. Robotik denilince bir hareket söz konusudur. Bu hareketleri nasıl ve hangi eleman-larla sağlarız örneklerle inceleyeceğiz. Hadi kontrol elemanları kullanarak, beraber harekete geçelim.

DC Motorlar 186Servo Motor 194DC Silecek veya Cam Kaldırma Motorunu Servo’ya Dönüştürme 195Step Motor 200Doğrusal (Lineer) Motorlar 205Pinomatik ve Hidrolik Sistemler 205Neler Öğrendik? 205

Page 28: arduino ile robotik projeler book · Arduino Nedir? 2 Arduino Çeşitleri 3 Arduino UNO 3 Arduino Mega 6 ... Kablo, Devreyolu, Devre Elemanları Testi 71 Osiloskop Nedir? 72 ... Servo

186 Bölüm 5 Robotik Kontrol Elemanları ve Sürücüler

DC Motorlar

Elektrik enerjisini mekanik enerjiye çe-viren elektrik makinesine Doğru Akım Motoru denir. DC motorlar isminden

DC motorlarının dönüş hızlarının kullanacağımız proje ihtiyacına göre ayarla-mamıza neden olan kapalı dişli, çark, yatak, mil sistemlerine redüktörlü motor denir. Redüktörle devir düşerek tork yükselir. Torkun artmasıyla robotik projeler-de daha çok kullanıma neden olmaktadır. Redüktörlü motorlara tekerlek veya mekanizma takılarak sistemimiz çalıştırırız. Piyasada farklı ebat ve büyüklükte, RPM hızında birçok DC redüktörlü motorlar bulunmaktadır. Biz de DC redüktör-lü motor kullanımını robotik projelerimize uygun olarak seçmeliyiz. Redüktörlü motorlar da DC motor gibi kontrol edebiliriz.

DC Motor SürücüleriProjelerimizde DC motorlar ve redüktörlü DC motorlar, sistemin çalışması için sağa sola hareket ettirilir. Arduino ile uyumlu veya entegreler ile bu işlemler ya-pılır. İçerisinde H köprü devresi bulunan kartlar ile değişik güçte ve özellikte DC motor kontrolü gerçekleştirebiliriz. L293D ve L293B entegreler ile Arduino DC motor kontrolünü Bölüm 3’te yaptık. Ama piyasada hazır ve hızlıca kullanabile-ceğimiz motor sürücü kartları vardır. Robotik projelerimizde bu hazır kartlardan faydalanabiliriz. Hazır kartlarımızı inceleyelim.

anlaşılacağı gibi DC akımla çalışırlar. Güç, büyüklük ve devirlerine göre birçok çe-şidi bulunur. DC motor elektrik verildiğinde, mili belirlenen bir hızda döner. Eğer DC motor milini biz kendimiz çevirirsek bize elektrik enerjisi üretir. Bölüm 3’te taransistör ile DC motor kontrol örneği verdik. Bu örneği inceleyerek DC motorla-rımızı çalıştırabiliriz. Robotik uygulamalarda amacımıza göre bir DC motor seçe-rek güç hesaplamamalarını doğru yapmalıyız. DC motorların dönüş yönü artı(+) ve eksi (-) kabloların bağlantısı ile değişmektedir. DC motorlar devir ölçümü RPM olarak belirtilir ve dakikada döndüğü tur sayısını açıklamaktadır. Örnek vermek gerekirse 200 RPM bir motor, dakikada 200 tam tur atıyor anlamındadır.

Page 29: arduino ile robotik projeler book · Arduino Nedir? 2 Arduino Çeşitleri 3 Arduino UNO 3 Arduino Mega 6 ... Kablo, Devreyolu, Devre Elemanları Testi 71 Osiloskop Nedir? 72 ... Servo

1 8 7DC Motorlar

Arduıno 293D Motor Shıeld

L293D Arduino motor kartı, Arduino pinleri ile uyumlu ve Arduino’nun üzerine birleştirerek kullanılır. 4 adet DC motoru veya 2 Step motoru kontrol edebili-riz. Bunun yanında iki servo motor da kontrol edebiliriz. Kart üzerinde 2 Adet L293D entegresi mevcuttur. Motorların hız ve yön kontrollerini yapabiliriz. 0.6 Amper motorlar için uygundur. 5V ve 12V çalışma özelliğindedir.

4 adet DC motor girişi için M, M2, M3, M4 klamensleri bulunur. Dört veya altı kablolu 2 adet step motor için M1-M2, M3-M4 klemensleri kullanılır. 2 adet ser-vo bağlantısı için üzerinde pin bulunmaktadır. Üzerinde güç jumper bulunarak, jumper takılı ise motorlar Arduino’ya takılan güç ünitesiyle beslenir ve güçle alakalı birbirlerine bağlantısı bulunur. Jumper takılı değilse Arduino ve motor kartı harici güç kaynağı ile beslenir. L293D Motor sürücü kartı Arduino’da bulu-nan dijital 2 pin, 13 pin , analog A0 , A1, A2, A3 , A4, A5, RX ve TX pinleri dışındaki pinlerin hepsini kullanır. Yapacağımız projelerde kullanılan pinleri dikkate ala-rak uygulama gerçekleştirmeliyiz. L293D Kütüphane dosyası;

https://github.com/akinakcaoglu/arduino-ile-robotik

NOTUSB üzerinden Arduino’yu besleyip motor sürmek uygun değildir. Amper de-ğeri uygun güç kaynağı seçip kullanmalıyız.

Page 30: arduino ile robotik projeler book · Arduino Nedir? 2 Arduino Çeşitleri 3 Arduino UNO 3 Arduino Mega 6 ... Kablo, Devreyolu, Devre Elemanları Testi 71 Osiloskop Nedir? 72 ... Servo

Bu Bölümde

Algoritma Geliştirme, Robot Tasarımı ve Yapımı

6

Tasarımlarımıza uygun, amacımıza hizmet edecek al-goritma geliştirerek projelerimizi yaparız.

Bu bölümde Algoritma geliştirme nedir? sorusunun üzerinde duracağız. Algoritma geliştirdikten sonra bu düşünceleri Arduino dili ile nasıl yazabilirizi ince-leyeceğiz. Bilgisayar destekli açık kaynaklı FreeCad çizim programına giriş yaparak tasarım mantığını oluşturacağız. Ayrıca robot yapımı için gereken alet ve ekipmanları ve işlenebilecek malzemeleri tanıya-cağız. Tasarladığımız robotların kullanılması gereken alanlardan bahsederek gerekli önlemleri anlatacağız.

Robotik projelere geçmeden önceki son bölümümü-zü inceleyelim.

Algoritma Geliştirme 208Oparatörler 210Değişkenler 212Diziler 218Kontrol Yapıları 218Sayı Sistemleri 223PID Kontrol Algoritması 225Robot Tasarımı 227Materyaller 229Robot Çalıştırılması Gereken Alanlar 231Neler Öğrendik? 231

Page 31: arduino ile robotik projeler book · Arduino Nedir? 2 Arduino Çeşitleri 3 Arduino UNO 3 Arduino Mega 6 ... Kablo, Devreyolu, Devre Elemanları Testi 71 Osiloskop Nedir? 72 ... Servo

208 Bölüm 6 Algoritma Geliştirme, Robot Tasarımı ve Yapımı

Algoritma GeliştirmeAlgoritmaProjelerimizde belirlediğimiz sistemin çalışması için problemlerin çözümle- menin mantıksal tasarlanan yoldur. Tüm programlama dillerin ve robotların temeli algoritmadır. Proje üzerinde algoritma geliştirerek, nasıl çalıştığını an- lamak, proaktif yaklaşım yani önceden belirlenemeyen etkenleri belirlemek konusunda yardımcı olmaktadır. Algoritma hayatımızın her anında bizler fark etmesekte yapmaktayız. İnsanoğlu düşünebilen bir canlı olması neticesinde yaşamı boyunca bir işi gerçekleştirmeden, genelde plan yaparak hareket eder. Yapılan plan sayesinde hedefimize ulaşmamız için, ne tür adımlar izleyeceği- miz, karşılaşılan problemlere nasıl çözüm bulacağımız hakkında yol göstererek bize kolaylık sağlamaktadır. İnsan hayatındaki geliştirilen bu planlar elektronik ve bilgisayar dünyasında algoritma olarak adlandırılır.

Algoritmaya örnek; Ayran Yapma Algoritması

1. Başla,

2. Bardağı getir, eğer bardak kirli ise yıka ve temizle,

3. Yoğurdu bardağın çeyreğine kadar koy,

4. Bardağın 3/2’lik kısmını su ile doldur,

5. Kaşık ile bardağı karıştır, eğer kaşık bardağın içine girmiyorsa küçük kaşık al,

6. Su ile yoğurt birbirlerine karışana ve homojen beyaz görüntü olana kadar ka-rıştırmaya devam et,

7. Beyaz görünüm sağlanınca ayran hazır.

Algoritma hazırlanırken yapılacak işler ve problemler iyice araştırılır. Tüm olası-lıklar gözden geçirilir. Sonuca ulaşmak için en az komutla, kısa sürede, hassas ve doğru çözüm yolları geliştirilir. Algoritma geliştirmede her işlem ve adım için numaralar verilir. Gerekli olan veriler girilir veya sensörlerden ve algılayıcılardan veriler alınır. Yapılacak işlemler sonuçlara göre gerçekleştirilir. Bulunan sonuçlar belirli ortamlarda saklanır.

Algoritma, program yazmayı kolaylaştırır. Yazılım yapmak için gereken süreyi kısaltır, kolaylık sağlar. Hata takibini kolaylaştırır.

Page 32: arduino ile robotik projeler book · Arduino Nedir? 2 Arduino Çeşitleri 3 Arduino UNO 3 Arduino Mega 6 ... Kablo, Devreyolu, Devre Elemanları Testi 71 Osiloskop Nedir? 72 ... Servo

2 0 9Algoritma Geliştirme

Bölüm 7’de yapacağımız çizgi izleyen robotumuzun algoritmasını oluşturalım.

1. Başla,

2. Sağ ve Sol CNY70 sensör değerlerini oku,

3. Eğer Sağ sensör değeri >200 ve Sol sensör değeri >200,

4. Sağ motor ileri, sol motor ileri,

5. Eğer Sağ sensör değeri <200 ve Sol sensör değeri >200,

6. Sağ motor dur, sol motor ileri,

7. Eğer Sağ sensör değeri >200 ve Sol sensör değeri <200,

8. Sağ motor ileri, sol motor dur,

9. Program başına dön.

Çizgi izleyen robotumuzun yukardaki gibi algoritmasını oluşturarak Arduino ile yazılım yapmamızda ve robotun çalıştırılmasında kolaylık sağlarız.

Akış DiyagramıAlgoritmanın özel geometrik şekillerle çizilmiş ve açıklamalar yapılmış durumu akış diyagramı olarak adlandırılır.

Algoritmanın şekiller, semboller ve yazılar ile yönlendirilmesi, oluşturulması.

Akış Diyagram Sembolleri

Page 33: arduino ile robotik projeler book · Arduino Nedir? 2 Arduino Çeşitleri 3 Arduino UNO 3 Arduino Mega 6 ... Kablo, Devreyolu, Devre Elemanları Testi 71 Osiloskop Nedir? 72 ... Servo

210 Bölüm 6 Algoritma Geliştirme, Robot Tasarımı ve Yapımı

Algoritmasını ve akış diyagramını yaptığımız çizgi izleyen robotta iki sensör-den okunan değerlere göre motorlara hareket vererek veya hareket verme-yerek algoritmamızı işleyişini belirleriz. Sistemimiz bu algoritma şekline göre bize çıktılar verir. Algoritma ve analitik düşünme yeteneğimizi pratikler yaparak geliştirmeliyiz. Biz Maker’lar algoritma ve analitik düşünmeyi istemsiz şekilde bilinçaltımızda yaparız. Bu yeteneği sizler de kazanabilirsiniz.

Algoritma geliştirme veya akış diyagramının çizilmesi yapacağımız uygulama-ların temelidir ve her zaman gereklidir. Algoritma geliştirirken matematiksel işlemler, oparatörler, sayısal değerler, stringler, değişkenler, kontrol yapıları, sa-yısal sistemler bir arada düşünülerek amacımıza hizmet etmeleri sağlanır. Farklı programlama dilleri kullanılsa da algoritma geliştirme ve akış diyagramı oluş-turma hiçbir zaman değişmeyecektir.

Oparatörler Nesneler veya değişkenler üzerinde işlemler yapmak için kullanılır. Oparatörler yardımı ile yazılımımızın algoritmasını oluştururuz ve yapılacak işlemleri belirti-yoruz. Oparatörler ile fonksiyonlar oluşturarak değişkenlerde saklanan verilerin hangi işlemlerden geçeceği ve bu verilerin fonksiyon çıktısı ile hangi kararlar alacağımızı belirleriz. Kısacası matematiksel işlemler yaparız.

Çizgi izleyen robotumuzun, akış diyagramını oluşturalım.

Page 34: arduino ile robotik projeler book · Arduino Nedir? 2 Arduino Çeşitleri 3 Arduino UNO 3 Arduino Mega 6 ... Kablo, Devreyolu, Devre Elemanları Testi 71 Osiloskop Nedir? 72 ... Servo

Bu Bölümde

Arduıno Çizgi İzleyen Robot

7

Bu bölümde Arduino ve CNY70 kontrast sensörü ile algoritma geliştirerek, siyah bantla yapılmış yolu ta-kip edeceğiz. Ellerimizi kirletmeye hazır mısınız?

Hadi ilk robotik projemize başlayalım!

Parça Listesi 234Robotun Yapılışı ve Çalıştırılması 235Karşılaşılan Problemler ve Çözümleri 239Neler Öğrendik? 240

Page 35: arduino ile robotik projeler book · Arduino Nedir? 2 Arduino Çeşitleri 3 Arduino UNO 3 Arduino Mega 6 ... Kablo, Devreyolu, Devre Elemanları Testi 71 Osiloskop Nedir? 72 ... Servo

234 Bölüm 7 Arduıno Çizgi İzleyen Robot

Arduino ile CNY70 sensörleri kullanarak klasik çizgi izleyen robot yapıp robotik projelere biraz ısınma turları atacağız. Bu projede kullanacağımız kolay bulu-nabilen, üzerinde değişiklikler yapılması kolay olan malzemeler seçerek basit yöntemlerle robotumuzu oluşturacağız.

Çalışma algoritması olarak, 2 adet CNY70 kontrast sensörü kullanarak, aldığımız siyah ve beyaz analog değerler ile Arduino’muza takılı L293D motor shield ve 2 adet tekerlekli redüktörlü DC motorları sürmeyi sağlayacağız.

Parça istesi2 adet tekerlekli redüktörlü DC motor, küre teker, 2 adet 10k Ohm direnç, 2 adet 220 Ohm direnç, delikli plaket, uygun boyutlarda saklama kabı, Arduino UNO, L293D Motor Shield, 2 adet CNY70 kontrast sensörü, 3 adet 3.7 Li-On veya Li-Po pil, jumper ve kablolar.

Projede Kullanılan Malzemeler

Page 36: arduino ile robotik projeler book · Arduino Nedir? 2 Arduino Çeşitleri 3 Arduino UNO 3 Arduino Mega 6 ... Kablo, Devreyolu, Devre Elemanları Testi 71 Osiloskop Nedir? 72 ... Servo

2 3 5Robotun Yapılışı ve Çalıştırılması

NOTDevre tasarımlarında devre şemasını ve yazılımı inceleyerek kafamızda birçok soruya cevap bulabiliriz.

Robotun Yapılışı ve ÇalıştırılmasıRobotumuzun ilk aşamada 2 adet sağ ve sol CNY70 devresini delikli plaket üze-rine yapacağız. Devre bağlantılarını dikkatlice, hata yapmadan hazırlamaya ça-lışalım. Ters bir durumda sensörlerimiz yanabilir.

Devre eması

CNY70 Sensör Delikli Plaket Devresi

Devreyi incelediğimizde CNY70 sensör bağlantıları önemlidir. Alışkanlık sağla-manız için Bölüm 4’te verdiğim CNY70 örneğini gerçekleştiriniz. Çizgi izleyen robot için hazır 3’lü kontrast sensörleri satılmaktadır. Benim tercihim konuyu daha iyi anlamanız için kendiniz yapmasıdır.

Page 37: arduino ile robotik projeler book · Arduino Nedir? 2 Arduino Çeşitleri 3 Arduino UNO 3 Arduino Mega 6 ... Kablo, Devreyolu, Devre Elemanları Testi 71 Osiloskop Nedir? 72 ... Servo

Bu Bölümde

Androıd ile 433 Mhz RF (Radıo Frekans) Kontrollü Uçak

15

Bu bölümde Bluetooth iletişim, seri iletişim ve RF modülü ile radyo frekansı iletişim sağlayarak uygun maliyette uzaktan kontrol sistemi kuracağız.

Fırçasız motor ve servo motor kontrolünü iletişim sistemlerinin bir arada bulunmasıyla sağlayacağız ve uçağımızı uçuracağız. Yapma ve eğlence duygusu yüksek proje olacaktır.

Uçmaya hazır mısınız? Arkadaşlar.

Parça Listesi 319Uçağın Yapılışı ve Çalıştırılması 320App Ivertor 2 ile Uçak Kontrol Uygulaması 323Karşılaşılan Problemler Ve Çözümler 330Neler Öğrendik? 330

Page 38: arduino ile robotik projeler book · Arduino Nedir? 2 Arduino Çeşitleri 3 Arduino UNO 3 Arduino Mega 6 ... Kablo, Devreyolu, Devre Elemanları Testi 71 Osiloskop Nedir? 72 ... Servo

318 Bölüm 15 Androıd ile 433 Mhz RF (Radıo Frekans) Kontrollü Uçak

Bu projemiz ile iletişim yoğunluğu yaşayarak uçak kontrol edeceğiz. App In-ventor 2 ile yaptığımız uygulama ile Android cihazdan verici devre Arduino NA-NO’ya bluetooth ile bilgi aktaracağız. Verici devreye Arduino NANO’ya aktardı-ğımız bilgileri işleyerek 433 Mhz RF modülü ile alıcı devre Arduino NANO’ya yön ve hız bilgilerini aktaracağız. Uçağın üstüne kurduğumuz alıcı devre Arduino NANO ile yön ve hız bilgilerini alıp seri port ile sürücü Arduino UNO’ya bilgileri aktaracağız. Aktardığımız bilgilere göre sürücü devre Arduino UNO fırçasız mo-torun hız kontrolünü, iki adet servo motor ile yön kontrolünü gerçekleştireceğiz.

Aklınıza şu soru gelebilir; Neden uçağın üstünde alıcı devre ve sürücü devre kullandık, tek bir Arduino ile halledilemez miydik? Bu durumla ilgili olarak uça-ğın üstünde tek Arduino kullandığımda RF modülü bilgi almamda ve servo motorları sürerken sorunlar yaşamama neden oldu. Bu nedenle Arduino NANO ile alıcı devre ve Arduino UNO ile sürücü devreyi ayrı ayrı kurarak ve seri haber-leştirerek çözüm üretmeye çalıştım. 433 Mhz RF alıcı, verici modülü ekleyerek ve uygun özellikte antenler takılarak kontrol uzaklığı 50 metre sağlayacağız. Bu sistemi bluetoothla kontrol etmemiz mesafe olarak zorlaşacaktı, bluetooth mo-dülü 20 metreye kadar veri akışı sağlanabilir.

Uçağın Üst Görünüşü

Verici Devre

Page 39: arduino ile robotik projeler book · Arduino Nedir? 2 Arduino Çeşitleri 3 Arduino UNO 3 Arduino Mega 6 ... Kablo, Devreyolu, Devre Elemanları Testi 71 Osiloskop Nedir? 72 ... Servo

3 1 9Parça istesi

Parça istesi1 adet 11.1 Volt fırçasız motor, 1 adet fırçasız motor sürücü 30Amper ESC, fırçasız motora uygun pervane, 1 adet Arduino UNO, 2 adet Arduino NANO, 433 Mhz alıcı ve verici modül, HC-05 Bluetooth modülü, 2 adet servo motor, 2 cm kalınlıkta köpük levha veya bina dış cephe kaplamalarında kullanılan strafor malzemesi, SUN-FIX yapıştırıcı, 1 adet 11.1 Volt 1050mAh Li-Po pil, 2 adet 3.7 Volt 230mAh Li-Po pil, 0.8mm krom kaynak teli, 4 adet 4mm x 80mm çivi, 2 adet metrik 3mm x 50mm vida, 0.5mm çaplı emaye tel.

Devre eması

Arduino NANO Verici Devre

App Inventor 2’de yaptığımız uygulamadan aldığımız bilgiler bu devre ile işle-nir. Verici devresinden Bluetooth’la alınan Bilgiler rf modülü ile uçak üzerindeki alıcı modüle iletilir. Verici devrede 2 adet 3.7 Volt Li-Po pil seri bağlayarak 7.4 Volt elde edip alıcı devre beslemesinde kullanabilirsiniz. 433 Mhz verici modül ile HC-05 Bluetooth modülünü Arduino NANO’ya bağlantılarını yapabiliriz.