View
75
Download
1
Category
Preview:
Citation preview
Arduıno ile Robotik Projeler
Akın Akçaoğlu
İç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
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
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
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
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
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
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
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
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
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
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
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
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)
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.
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
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
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ışı
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
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.
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
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ü
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ı
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
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ı
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
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
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.
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.
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
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.
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
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.
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
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
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.
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
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
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.
Recommended