You are on page 1of 20

T.C.

SEYH

BILEC
IK

EDEBALI NIVERS
ITES
I
IK
FAKLTESI
MHENDISL
I BLM
ISAYAR

IG
BILG
MHENDISL

ARDUINO
ILE
TELEFON KONTROLL ARABA

Cihat S INAR
PROJE II ALISMASI

PROJE DANISMANI

:gr. Gr. Murat ZALP

BILEC
IK
16 Ocak 2017

T.C.

SEYH

BILEC
IK

EDEBALI NIVERS
ITES
I
IK
FAKLTESI
MHENDISL
I BLM
ISAYAR

IG
BILG
MHENDISL

ARDUINO
ILE
TELEFON KONTROLL ARABA

Cihat S INAR
PROJE II ALISMASI

PROJE DANISMANI

:gr. Gr. Murat ZALP

BILEC
IK
16 Ocak 2017

ZET
Projenin Amac

Arduino Uno ile Motor Src ve HC-06 bluetooth sensrnn kodlanarak telefon ile
bluetooth zerinden haberlesip arabann hareket ettirilmesi amalanmstr.

Projenin Kapsam

Iki blmden olusacak projenin ilk blmnde motor src devresine DC motorlar ve
bluetooth sensrnn baglanmas , ikinci blmnde ise kullanlan sensr ve motorlarn
kodlanarak kontorol edilmesi yer almaktadr.

Sonular

Arduino Uno ile dc motor ve bluetooth sensrnn kodlanmas grenildi.

ii

ABSTRACT
Project Objective

With Arduino Uno, engine driver and HC-06 bluetooth sensor are coded to communicate
with the phone via Bluetooth to move the car.

Scope of Project

In the first part of the project, which will be composed of two parts, the connection of the
DC motor and the bluetooth sensor to the motor drive circuit and the second part is the
coding and control of the sensors and motors used.

Results

Arduino Uno learned how to encode dc engine and bluetooth sensor.

iii

TESEKKR

Bu projenin basndan sonuna kadar hazrlanmasnda emegi bulunan ve beni bu konuya


ynlendiren saygdeger hocam ve dansmanm Sayn gr. Gr. Muart ZALPe tm katklarndan ve hi eksiltmedigi desteginden dolay tesekkr ederim.

CIHAT S INAR
16 Ocak 2017

iv

INDEK

I
ILER
ZET

ii

ABSTRACT

iii

TESEKKR

iv

LISTES

SEK

IL
I

vi

IS
1 GIR

ILER

2 GENEL BILG

2.1

Arduinonun Genel zellikleri . . . . . . . . . . . . . . . . . . . . . . . .

2.1.1

Arduino ile Yazlm Gelistirme . . . . . . . . . . . . . . . . . . .

2.1.2

Arduino IDE . . . . . . . . . . . . . . . . . . . . . . . . . . . .

2.1.3

G . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

2.1.4

Bellek . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

2.1.5

Giris-ks . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

2.1.6

Haberlesme . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

2.1.7

Programlama . . . . . . . . . . . . . . . . . . . . . . . . . . . .

2.2

DC MOTORLAR . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

2.3

L293D Motor Src Shield . . . . . . . . . . . . . . . . . . . . . . . .

2.4

HC-06 Bluetooth Modl . . . . . . . . . . . . . . . . . . . . . . . . . .

3 PROGRAM KODLARI

3.1

Motorlarn alsmas iin Gerekli Kodlar . . . . . . . . . . . . . . . . . .

3.2

Bluetooth Baglants . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

11

4 SONULAR VE NERILER
4.1

12

Sonular . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

12

KAYNAKLAR

13

ZGEMIS

14

LISTES

SEK

IL
I
1

Arduino Uno zerindeki elemanlar . . . . . . . . . . . . . . . . . . . . .

Arduino IDE . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

DC motor . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

L293D motor src kart . . . . . . . . . . . . . . . . . . . . . . . . . .

Hc-06 bluetooth modul . . . . . . . . . . . . . . . . . . . . . . . . . .

Hc-06 bluetooth modul ile arduino baglaants . . . . . . . . . . . . . .

Motorlarn ileri hareketini saglayan kod . . . . . . . . . . . . . . . . . .

Motorlarn geri hareketini saglayan kod . . . . . . . . . . . . . . . . . .

10

Motorlarn saga hareketini saglayan kod . . . . . . . . . . . . . . . . . .

10

10

Motorlarn sola hareketini saglayan kod . . . . . . . . . . . . . . . . . .

10

11

Bluetooth zerinden veri gnderme . . . . . . . . . . . . . . . . . . . . .

11

vi

IS
GIR

Projenin konusu, mobil cihazdan kablosuz olarak bluetooth ile ara kontrol yapmaktr.DC motorlarn hareketi mobil cihaz ile saglanacaktr. Bu ynlendirme islemi iin ise
mobil cihazmzda bir uygulama tasarlanacak ve dizayn edilen uygulamadan gerekli bilgileralnarak mekanik aksam zerinde ki degisimler gzlenecektir.Teknolojinin ilerlemesiyle birlikte insanlarn yasamlarn kolaylastran cihazlara ynelmesi ve bu cihazlarn tek
elden kontrol edilmesi istendigi gzlemlenmektedir.Bu kontrolsrasnda gereksiz kablo ve
kullanm zor olan aletlerden kanlmaktadr. Bu nedenle gnmzde yavas yavas btn
cihazlarn kablosuz cihazlar zerinden kontrolne geis yaplmaktadr. Mobil cihazlardan, gereken islerin karslanmas ve gndelik yasam kolaylastran yeni buluslarn insan
yasam ierisine girmesi olduka nemlidir. Tm bu nedenlerden dolay projeyi degerlendirdigimizde aslnda projenin ne kadar nemli olduguve gz nnde bulundugu ortadadr.

2
2.1

ILER

GENEL BILG
Arduinonun Genel zellikleri

Arduino temel olarak esitli sistemlerin tasarlanabilecegi ak kaynakl bir platformdur.Arduino


kartlar zerinde Atmega firmasnn 8 ve 32 bit mikrodenetleyicileri bulunur. Bu mikrodenetleyiciler PIC ile ayn kategoridedir. Piyasada en ok kullanlan PIC, ARM gibi gml sistem yazlmlarna alternatif olarak dogmus ,onlara gre ok daha kolay sekilde
programlanabilen ve sahip oldugu genis ktphane sayesinde ok ksa kodlarla karmask
islemleri yapabilmeye imkan saglayan bir platformdur. Kendi ktphaneleri sayesinde
mikrodenetleyiciler kolaylkla programlanabilir. Bu da kullanm asndan pratiklik kazandrmaktadr. Analog ve digital verilerin islenebilecegi girisleri vardr. Bilgisayardan
veya baska cihazlardan gelen verileri alabilecegi gibi dsarya da ses, sk gibi veriler
retebilir. Arduino Uno, Arduino Mega, Arduino Nano, Arduino Leonardo gibi esitleri
vardr. Arduino Shield denilen ve Arduinonun pinlerine kolaylkla taklp karlabilen
paralar da vardr. Ayn zamanda RC Alc Verici Modl, SD Card Modl, Ultrasonic
Mesafe ler Modl vb. gibi modller sayesinde de birok basit kullanm alan sunmaktadr.

Sekil

1: Arduino Uno zerindeki elemanlar


2

2.1.1

Arduino ile Yazlm Gelistirme

Arduino programlamada kullanlan dil C ile ayn szdizimine sahiptir. Gelistirme ortam
olarak Processing Programlama ortamna dayanmaktadr. Processing, resim, animasyon
ve etkilesim yntemleri gelistirilebilecek ak kaynak bir programlama dili ve ortamdr.
oklu ortam malzemeleriyle (resim, video ve ses gibi) sorunsuz alsabilir ve isleyebilir.
Kendi yaptklar profesyonel islerinde prototip uygulama, sergi gesi veya islerinin niteliklerini artracak nitelikte kullanmaktadr. Arduino iin arka planda Atmega mikrodenetleyicileri iin kullanlan GNU GCC derleyici ve derlenen programlarn mikrodenetleyiciye yklenmesinde kullanlan AVRDude yazlm bulunmaktadr. Program Processing
tabanl Arduino Yazlm Gelistirme Ortam (IDE) yardm ile karta yklenir. Gelistirme
ortam kodlar derleyip kolaylkla mikrodenetleyiciye yklemeyi saglar. Arduino ktphaneleri birok islemi donanm seviyesine inmeden yani kaydediciler zerinde islem yapmaya gerek kalmadan yapmay saglar.[3]

2.1.2

Arduino IDE

Gelistirme ortam ile programmz yazp derleyip kartmza ykleyebiliyoruz. Bunun iin
Arduino gelistirme ortamnda ksa yollar bulunmaktadr. Derlenilen kodlar upload butonu
ile arduino kartna yklenir. Arduino gelistiricilerinin yazdg bir ok programa gelistirme editr zerinden ulaslabilmektedir. Bunun iin File Examples yolu takip edilir.Bu
kodlarn Arduinoya aktarm, zerinde bulunan usb girisi ile bilgisayara baglantsyla
saglanmaktadr.
3

Sekil

2: Arduino IDE

Arduno IDE de yazlan kodlar genel yaps ile C diline benzemektedir. C ve C++ dillerinin szdizimini kullanmaktadr.setup() arduino taslag baslatlrken agrlan hazrlama
fonksiyonudur. Degiskenleri ilklendirmek ve pinleri ayarlamak iin kullanlr. loop() setup() agrs sonlandktan mikroislemci srekli (kapatlana veya resetlenene kadar) bu
fonksiyonu agrr.

2.1.3

Arduino Uno USB baglants veya harici g kaynag ile g alabilir. G kaynag otomatik olarak seilir. Harici (non - USB) g bir AC - DC adaptr veya pil ile gelebilir.

2.1.4

Bellek

Bu kart ATMega328 ve nceden ykl olarak bootloader ile tam montajl ve test edilmis
olarak gelmektedir. ATMega328, bootloader kullandg 0.5KB dahil olmak zere 32KB
bellege sahiptir. 2KB SRAM ve 1KB EEPROMa sahiptir.
4

2.1.5

Giris-ks

Uno zerindeki 14 dijital pinden her biri pinmode(), digitalWrite() ve dijitalRead() fonksiyonlar kullanlarak giris yada ks olarak kullanlabilmektedir. Bu pinler 5V ile alstrlabilmektedir. Her bir pin max 40 mA alr ve 20 - 50 kOhms olan i direncine sahiptir.
Ek olarak baz pinler zellestirilmis fonksiyonlara sahiptir.

2.1.6

Haberlesme

Arduino Uno bir bilgisayarla, diger bir Arduino ile ya da diger mikrodenetleyiciler ile
haberlesmek iin bir takm zelliklere sahiptir. ATMega328, pin 0 ( RX ) ve pin 1 ( TX )
dijital pinleri zerinde kullanlabilir olan UART TTL ( 5V ) seri haberlesme saglar. Board
zerindeki bir ATmega16U2 USB zerinden seri haberlesme saglar ve bilgisayarda sanal
bir com port gibi gzkmektedir.

2.1.7

Programlama

Arduino programlama dilinde 2 temel fonksiyon bulunur. 1-) setup () : Bu fonksiyon Arduino alsmaya basladktan sonra ya da reset butonuna basldktan sonra 1 kere alstrlr. Bu fonksiyonda tek seferlik fonksiyonlar alstrlr. rnegin pin ayarlamas, seri
haberlesme baslatlmas gibi. 2-) loop() : Bu fonksiyon sonsuz dng fonksiyonlardr.
setup() fonksiyonunun hemen ardndan alstrlr ve arduino alstg srece devam eder.
Birok programlama dilinde oldugu gibi arduino programlama dili de case-sensitive( byk kk harf duyarl) bir dildir. Arduino da yazdgmz programlar Verify butonu ile
derleriz. Yannda ki buton ise upload butonudur. Bu buton ile yazdgmz program Arduinoya ykleriz.
5

2.2

DC MOTORLAR

Dogru akm elektrik enerjisini, mekanik enerjiye eviren elektrik makinesine DC motor
denir. Dogru akm motorlarna DA veya DC motor denilmektedir. Dogru akm zamanla
yn ve siddeti degismeyen akma denir. Ingilizce Direct Current kelimelerinin ksaltlmas DC ile gsterilir.

Sekil

3: DC motor

Manyetik alan iinde kalms bir iletken tel zerinden akm geerse iletken tel zerinde
bir hareket gzlenir. DC motorlarn elde ettigi hareket enerjisi bu temel prensibe bagldr.
Ierisinden akm geen iletken, manyetik alana sokulursa iletkene bir kuvvet etkir.

2.3

L293D Motor Src Shield

Sekil

4: L293D motor src kart


6

Grdgmz bu motor shield 4 DC Motor, 2 Servo Motor, 2 Step Motor girisine sahiptir.Bunu direk mikrodenetleyicinin stne takarak kullanyoruz. [2]

2.4

HC-06 Bluetooth Modl

Sekil

5: Hc-06 bluetooth modul

HC-05 ve HC-06 Bluetooth modlleri zellik olarak hemen hemen birbirinin aynsdr.
Tek fark, HC-05 hem kendisine gelen baglant isteklerine cevap verirken hem de baska
Bluetooth cihazlarna baglant istegi yollayabilmesidir. HC-06 Bluetooth modl ise yalnzca kendisine gelen baglant isteklerini cevaplayabilir, baska bir Bluetooth modlne
baglant istegi yollayamaz. Ksacas HC-05 hem master (ynetici) hem de slave (kle)
modunda alsabilirken, HC-06 sadece slave (kle) modunda alsabilmektedir.[4] HC06 Bluetooth modllerinin ortak zellikleri asagda verilmistir:

2,4 GHz haberlesme frekans (ISM)


Hassasiyet: ?-80 dBm
ks gc: ?+4 dBm
Asenkron hz: 2,1 MBps / 160 KBps
Senkron hz: 1 MBps / 1 MBps
alsma gerilimi: 1,8 - 3,6 V (nerilen 3,3 V
Akm: 50 mA
Kimlik dogrulama ve sifreleme

Sekil

6: Hc-06 bluetooth modul ile arduino baglaants

PROGRAM KODLARI

Program arayz iki ksmdan olusuyor.

setup()

loop()

loop() ksm fonksiyonlarn yazldg yerdir. setup() ksm ise fonksiyonlarn agrldg
yerdir.

3.1

Motorlarn alsmas iin Gerekli Kodlar

Motorlarn alsmas iin include <AFMotor.h> ktphanesi gerekmektedir. Motorlar hareket ettiren kodlar asagdaki gibidir.

Sekil

7: Motorlarn ileri hareketini saglayan kod


9

Sekil

8: Motorlarn geri hareketini saglayan kod

Sekil

9: Motorlarn saga hareketini saglayan kod

Sekil

10: Motorlarn sola hareketini saglayan kod


10

3.2

Bluetooth Baglants

Bluetooth ile haberlesmek iin include <SoftwareSerial.h> ktphanesini kullanyoruz.Bluetooth


zerinden veri almak iin asagdaki kodu kullanyoruz.

Sekil

11: Bluetooth zerinden veri gnderme

11

4
4.1

SONULAR VE NERILER
Sonular

Projede amalanan bluetooth modl ile android cihaz haberlestirip sinyali Arduinoya
ynlendirmektir.Android telefon zerinden bluetooth modl sayesinde robot kontrol edildi.
Robotu ynetecek uygulamaya sahip bir mobil cihaz ile arduino uno baglants kuruldu.
Mobil cihazda kullanc arayz olusturuldu. Projede kullanlan robotun kontrolnn kolay olabilmesi iin 2 adet DC Motor kullanlmstr.Android cihaz zerindeki uygulamadan
bluetooth modl sayesinde arduinoya sinyal gnderilmistir ve bu sinyal sayesinde DC
motorlarn dnme yn ve hz ayarlanarak robota istenilen ynde hareket edebilme kabiliyeti kazandrlmstr. Projenin yapm asamalarndan bu yana arastrma yaplarak mobil
cihazlarn insan yasam ierisine ne kadar girdigi grld. Yaplan proje iin java programlama dili arastrld.Yazlan kodlarla yaplan projenin uyumlulugu sagland. Tasarmn
insan yasantsnda de gibi kolaylklar saglayacag tartsld.Yasanan zorluklar arasnda ise
kullanlan modllerin voltaj degisikliklerinde verdikleri sonularda sapma gzlemlendi.
Ve ayr ayr alsan modllerin birlikte kullanldgnda voltaj degisimlerinden etkilenmeleri sonucu istenmeyen hareketlilikler gzlemlendi.

12

KAYNAKLAR
[1] .http://mekatronizm.com/arduino-ve-\
bluetooth-haberlesme-ile-arac-kontrolu/
[2] .http://www.robimek.com/adafruit-motor-shield\
discretionary{-}{}{}pin-yapisi-ve-yazilim-fonksiyonlari/
[3] .https://gelecegiyazanlar.turkcell.com.tr/konu/arduino/
egitim/arduino-103/
[4] .http://maker.robotistan.com/arduino-dersleri-17\
-hc-05-bluetooth-modulu-kullanimi/
[5] .https://learn.adafruit.com/category/learn-arduino
[6] .http://maker.robotistan.com/arduino-dersleri\
-14-dc-motor-hiz-ve-yon-kontrolu/

13

You might also like