You are on page 1of 18

KARADENİZ TEKNİK ÜNİVERSİTESİ

MÜHENDİSLİK FAKÜLTESİ
BİLGİSAYAR MÜHENDİSLİĞİ BÖLÜMÜ

PROJENİN ADI

HACI YATMAZ

TASARIM PROJESİ

Adı SOYADI

Hünkar PURTUL
İbrahim AKKAŞOĞLU
2015-2016 GÜZ DÖNEMİ

KARADENİZ TEKNİK ÜNİVERSİTESİ


MÜHENDİSLİK FAKÜLTESİ
BİLGİSAYAR MÜHENDİSLİĞİ BÖLÜMÜ

PROJENİN ADI

HACI YATMAZ

TASARIM PROJESİ

Adı SOYADI

Hünkar PURTUL
İbrahim AKKAŞOĞLU

Bu projenin teslim edilmesi ve sunulması tarafımca uygundur.

Danışman : Yrd. Doç. Dr. Tuğrul ÇAVDAR ......................


2015-2016 GÜZ DÖNEMİ

IEEE Etik Kuralları


IEEE Code of Ethics

Mesleğime karşı şahsi sorumluluğumu kabul ederek, hizmet ettiğim toplumlara ve


üyelerine en yüksek etik ve mesleki davranışta bulunmaya söz verdiğimi ve aşağıdaki etik
kurallarını kabul ettiğimi ifade ederim:

1. Kamu güvenliği, sağlığı ve refahı ile uyumlu kararlar vermenin sorumluluğunu kabul
etmek ve kamu veya çevreyi tehdit edebilecek faktörleri derhal açıklamak;
2. Mümkün olabilecek çıkar çatışması, ister gerçekten var olması isterse sadece algı
olması, durumlarından kaçınmak. Çıkar çatışması olması durumunda, etkilenen
taraflara durumu bildirmek;
3. Mevcut verilere dayalı tahminlerde ve fikir beyan etmelerde gerçekçi ve dürüst olmak;
4. Her türlü rüşveti reddetmek;
5. Mütenasip uygulamalarını ve muhtemel sonuçlarını gözeterek teknoloji anlayışını
geliştirmek;
6. Teknik yeterliliklerimizi sürdürmek ve geliştirmek, yeterli eğitim veya tecrübe olması
veya işin zorluk sınırları ifade edilmesi durumunda ancak başkaları için teknolojik
sorumlulukları üstlenmek;
7. Teknik bir çalışma hakkında yansız bir eleştiri için uğraşmak, eleştiriyi kabul etmek ve
eleştiriyi yapmak; hatları kabul etmek ve düzeltmek; diğer katkı sunanların emeklerini
ifade etmek;
8. Bütün kişilere adilane davranmak; ırk, din, cinsiyet, yaş, milliyet, cinsi tercih, cinsiyet
kimliği, veya cinsiyet ifadesi üzerinden ayırımcılık yapma durumuna girişmemek;
9. Yanlış veya kötü amaçlı eylemler sonucu kimsenin yaralanması, mülklerinin zarar
görmesi, itibarlarının veya istihdamlarının zedelenmesi durumlarının oluşmasından
kaçınmak;
10. Meslektaşlara ve yardımcı personele mesleki gelişimlerinde yardımcı olmak ve onları
desteklemek.

IEEE Yönetim Kurulu tarafından Ağustos 1990’da onaylanmıştır.

II
ÖNSÖZ

Proje konusu gereği bizi araştırmaya, yeni bilgiler öğrenmeye itmiştir. Bu sayede
Tasarım Projesi dersinin temel amacı da aslında gerçekleşmiş oldu. Yani bir proje sürecini
baştan sona yaşayarak, bilgi birikimimize önemli katkıları olmuştur. İmkanların projeyi ne
derecede etkilediğini, bazen isteklerimizde imkan sınırları dolayısıyla kısıtlamaya
gidebileceğimizi de gördük. Bu proje aslında bizim için sadece bir kapı aralanması oldu da
diyebiliriz. Robotikte dengenin önemi çok yüksek ve bu yaptığımız basit robot geliştirilerek
gerçek hayatta bir çok soruna çözüm üretebilir niteliktedir.

Ayrıca proje çalışmalarımı ve araştırmaları boyunca karşılaştığımız sorunlarda bize


destek veren sayın danışman hocamız Yrd. Doç. Dr. Tuğrul ÇAVDAR'a ve destek veren
arkadaşlarımıza teşekkürü bir borç biliriz.

Hünkar PURTUL
İbrahim AKKAŞOĞLU
Trabzon 2015

III
İÇİNDEKİLER

Sayfa No
IEEE ETİK KURALLARI II
ÖNSÖZ III
İÇİNDEKİLER IV
ÖZET V
1. GENEL BİLGİLER 1
1.1. Giriş 1
1.2. Kullanılan Malzemeler 1
1.2.1. Arduino Mega 1
1.2.2. Mpu6050 Gyro Sensör 2
1.2.3. DC Motor 3
1.2.4. L293D Arduino Motor Sürücü Shield 4
1.2.5. Lipo Batarya 5
2.YAPILAN ÇALIŞMALAR 6
2.1. Donanım 6
2.2. Yazılım 6
2.2.1. PID Algoritması 6
2.2.2. Mpu6050 Sensörünün Programlanması 7
2.2.3. Motor Sürücünün Programlanması 8
3.ÖNERİLER 9
4. KAYNAKLAR 10
5. STANDARTLAR ve KISITLAR FORMU 11– 1

IV
ÖZET

Projemizde arduino programlama ile dengede duran robot oluşturulmuştur. Arduino'nun


programlanması için C dilinde bilgi sahibi olmak gerekmektedir. Ayrıca yapılacak olan
devreler için de temel elektronik bilgisine sahip olmak gerekirdi.

Devrelerin kurulumu için gerekli malzemeler tespit edilmiş ve bu malzemeler temin


edilmiştir. Büyük yapıda olacak olan tasarımımızı prototip olarak değiştirdik. Bunun sebebi
gerekli donanımım tam olarak elde edilememesiydi. Ardından prototip için gerekli olan
malzemeler hakkında tekrar araştırmalar yaparak, temin ettik. Aslında kullanım açısından çok
bütük farklar olmayacaktı. Ayrıca bu malzemeler hakkında gerekli kulanım bilgileri
araştırılarak öğrenilmiştir. Gerekli programlama dilleri hakkında bilgi sahibi olduğumuz için
nasıl bir algoritma kuracağımız hakkında araştırmalar yaptık. Hangi yöntemlerin ne derecede
kararlı olabileceğini, projemizi nasıl ayakta tutabileceğini tespit ettik.

Projemizde sensör olarak MPU6050 (3 AXİS GYRO VE EĞİM SENSÖRÜ) kullnıldı.


Bu sensör sayesinde gerekli eğim verilerini alarak, motorlarımızı buna göre hareket ettirdik.
Sensörün arduino ile uyumunun kolay olması avantajını kullanmak istedik. Fakat sensörün
kalitesi tam olarak iyi denilemez. Özellikle sinyallerdeki gürültülerden dolayı veri alımında
hatalar meydana gelmekteydi.

Motor sürücü olarak L293D Arduino Motor Sürücü Shield kullandık. Bu shield arduino
üzerine takılarak 4 DC motoru veya 2 step motoru (unipolar veya bipolar) bunlara ek olarakda
2 servo motoru kontrol etmenize imkan sağlayan bir karttır.

Projemizde ayrıca şasi yapılırken epey sorunla karşılaştık. Bunun nedeni kendimizin
yapacak ortamımızın bulunmamasıydı. Bundan ötürü şasi konusu tam isteğimizi
karşılayamıyor. Ayrıca bu tür projelerde en büyük etkenlerden birisi de şasidir. Çünkü denge
sağlamaya çalışıyoruz ve olabilecek denge sorunları sistemi farklı bir çalışma davranışı
göstermeye yönlendiriyor. Örneğin ön tarafın ağır olması demek sistemin denge için devamlı
öne doğru gitmesine neden olacaktır.

Bu proje insanlara hareket esnekliği sağlayacaktır. Aynı zamanda denge gerektiren


robotik işlemler için giriş kapısı olacaktır. Bu yüzden önemi oldukça fazladır.

V
1

1. GENEL BİLGİLER

1.1. GİRİŞ

Projenin ana teması aslında robotik dengedir. Biz yerçekimine karşı dengenin nasıl
olabileceğine dair çalışmalar yapmış olduk. Temel alındığında bu proje ile çok geniş
çalışmalar yapılabilir. Ayrıca ana hedefimiz olan robot insan ulaşımı için de büyük
kolaylık sağlayabilecek potansiyeldedir.

Günümüzde artık robotik büyük bir çalışma alanıdır. Gerçek hayatta kullanılabilecek
cihazlar üretilmesi için bu cihazlara gerçek hayata entegre olabilecekleri kabiliyetler
verilmeye çalışılır. Zaten gerçek hayatta kullanılamayan üretimler pek değer kazanamazlar.

Biz de yapacağımız ürünü olabildiğince gerçekte kullanmaya yönelik tasarlasak da


bazı kısıtlama ve sorunlar bizi bu amaçtan ne yazık ki alıkoydu. Biz de gerekli algoritmayı
kurup, yazılımını yaparak sistemin beynini daha küçük cihazda göstermeye çalıştık.
Gerekli donanım ayarlandığı takdirde yapımızın büyük sistemlerde de bazı küçük
değişiklikler ile doğru sonuçlar vereceğini öngörüyoruz.

1.2. KULLANILAN MALZEMELER

1.2.1. ARDUINO MEGA

Arduino temel olarak çeşitli sistemlerin tasarlanabileceği açık kaynaklı bir


platformdur. Arduino kartları üzerinde Atmega firmasının 8 ve 32 bit mikrodenetleyicileri
bulunur. Bu mikrodenetleyiciler PIC ile aynı kategoridedir. Piyasada en çok kullanılan
PIC, ARM gibi gömülü sistem yazılımlarına alternatif olarak doğmuş, onlara göre çok
daha kolay bir şekilde programlanabilen ve sahip olduğu geniş kütüphane sayesinde çok
kısa kodlarla karmaşık işlemleri yapabilmeye imkan sağlayan bir platformdur. Kendi
kütüphaneleri sayesinde mikrodenetleyiciler kolaylıkla programlanabilir. Bu da kullanım
açısından pratiklik kazandırmaktadır. Analog ve digital verilerin işlenebileceği girişleri
vardır. Bilgisayardan veya başka cihazlardan gelen verileri alabileceği gibi dışarıya da ses,
ışık gibi veriler üretebilir.
Arduino’nun; Arduino Uno, Arduino Mega, Arduino Nano, Arduino Leonardo gibi
çeşitleri vardır. Arduino Shield denilen ve Arduino’nun pinlerine kolaylıkla takılıp
çıkarılabilen parçaları da vardır. Aynı zamanda RC Alıcı Verici Modülü, SD Card Modülü,
Ultrasonic Mesafe Ölçer Modülü vb. gibi modüller sayesinde de birçok basit kullanım
alanı sunmaktadır.
2

Arduino Mega Teknik Özellikler:

 Mikrodenetleyici Atmega2560
 Çalışma Gerilimi 5V
 Giriş Gerilimi (önerilen) 7-12V
 Giriş Gerilimi (limit) 6-20V
 Dijital I/O Pinleri 54 (15 tanesi PWM çıkışı)
 Analog Giriş Pinleri 16
 Her I/O için Akım 40 mA
 3.3V Çıkış için Akım 50 mA
 Flash Hafıza 256 KB (Atmega2560) 8 KB kadarı bootloader tarafından
kullanılmaktadır
 SRAM 8 KB (ATmega2560)
 EEPROM 4 KB (ATmega2560)
 Saat Hızı 16 MHz
 Uzunluk 101.6 mm
 Genişlik 53.4 mm
 Ağırlık 36 g

Arduino’nun Programlanması:

Arduino Mega kartı Arduino bilgisayar programı (Arduino IDE) ile programlanır.
Programda Tools > Board sekmesi altında Arduino Mega'yı seçip programlamaya
başlayabilirsiniz. Ayrıntılı bilgi için referans ve temel fonksiyonlar sayfasını
inceleyebilirsiniz. Arduino Mega üzerindeki Atmega2560 üzerine bootloader denilen özel
bir yazılım yüklü gelir. Bu sayede kartı programlarken ekstra bir programlayıcı
kullanmanıza gerek yoktur.Haberleşme orjinal STK500 protokolü ile sağlanır.
Bootloader yazılımı bypass edilerek kart doğrudan mikrodenetleyicinin ICSP
header'i üzerinden ISP programlayıcı ile programlanabilir (Referans).
Bootloader yazılımı gibi Atmega16u2 içerisindeki kaynak yazılımda açık
kaynaklıdır. Bu yazılıma da DFU bootloader adı verilir. Atmel's FLIP software (Windows)
veya DFU programmer (Mac OS X and Linux) kullanılarak bu yazılım yeniden
yüklenebilir. Veya Atmega2560'da olduğu gibi 16u2'de ISP programlayıcı ile
programlanabilir. Gerek Atmega2560 gerekse 16u2 içerisindeki yazılımlar her zaman en
güncel hali ile gönderilir. O yüzden mecbur kalmadıkça bu yazılımları değiştirmenize
gerek yoktur.

1.2.2. MPU6050 GYRO SENSÖR

MPU-6050 çeşitli hobi, multicopter ve robotik projelerinde sıklıklı kullanılan


üzerinde 3 eksenli bir gyro ve 3 eksenli bir açısal ivme ölçer bulunduran 6 eksenli bir IMU
sensör kartıdır. Kart üzerinde voltaj regulatörü bulunduğundan 3 ile 5 V arası bir besleme
voltajı ile çalıştırılabilir. İvme ölçer ve gyro çıkışlarının her ikisi de ayrı kanallardan I²C
çıkışı vermektedir. Her eksende 16 bitlik bir çözünürlükle çıkış verebilmektedir. Pinler
arası boşluk standart olarak ayarlandığı için breadboard veya farklı devre kartlarında
rahatlıkla kullanılabilir.
3

Özellikleri:

 Çalışma gerilimi: 3-5V


 Gyro ölçüm aralığı: + 250 500 1000 2000 ° / s
 Açısal ivme ölçer ölçüm aralığı: ± 2 ± 4 ± 8 ± 16 g
 İletişim: Standart I²C

1.2.3. DC MOTOR

İki adet DC motoru projemizde kullandık. Aşağıda motorların belli başlı


özelliklerini paylaştık. Burada özellikle Çalışma voltajı, devir ve zorlanma akımı
önemlidir. Çünkü devir fazla ise dengeyi sağlarken daha çok zorlanacaktık. Ayrıca voltaj
ve akım ise kaynağı belirleyen etkendi. Bunların değişik olması, devreyi zorlayabilir ve
belkide devre yanabilir.

Namiki DC Motor Özellikleri

 Motor Tipi: 22CL-3501PG Redüktörlü Dc Motor


 Çalışma Voltajı: 12V
 Devir: 120Rpm/Dakika
 Zorlanma Akımı: 1.8A
4

 Zorlanma Torku: 5kg/cm


 Durdurma Torku: 16kg/cm
 Motor Çapı: 22mm
 Redüktör Düşürme Oranı: 80:1 (Metal Planet Redüktör)
 Mil Çapı: 4mm
 Mil Uzunluğu: 12mm
 Boyut: 67mm

1.2.4. L293D Arduino Motor Sürücü Shield

Arduino Motor Sürücü Shield, Arduino üzerine takılarak 4 DC motoru veya 2 step
motoru (unipolar veya bipolar) bunlara ek olarakda 2 servo motoru kontrol etmenize imkan
sağlayan bir karttır. Kart üzerinde 2 adet L293D motor sürücü entegresi mevcuttur. Yani
0.6A 4 ayrı DC motor veya 0.6A 2 ayrı step motor sürülebilir. Motorların hız ve yönlerini
birbirinden bağımsız olarak kontrol edebilirsiniz. Motor kontrolleri AFMotor Kütüphanesi
ile yapılır.

Özellikleri :

 5-12V çalışma voltajı


 L293D motor kontrolcüsü
 4 adet DC motorun bağımsız kontrolü
 2 adet step motorun bağımsız kontrolü
 2 adet servo motor için 3-pin soket
 Her bir kanaldan sürekli 0,6A
 Sensör bağlantıları için boş bırakılmış analog giriş pinleri
 Arduino Uno ile uyumludur
 Ürün Boyutları: 69x53x14,3mm
 Ağırlık: 32g
5

1.2.5. LİPO BATARYA

 Giriş Voltajı:11,1V
 1050mAh
 25C (50C de patlamaya sebep olur)
 Ağırlığı 88gr
 Boyutları: 51x29x27mm
 Hücreli JST ve Balancer Şarj Soketi Mevcuttur.
6

2. YAPILAN ÇALIŞMALAR

2.1.DONANIM

Donanımsal anlamda, daha uygun bir şasi yapmak için uğraşlarımız oldu. Özellikle
dengenin korunması asıl amacımız olduğundan dengeli bir donanım yapmak öncelikli
hedefimizdi. Bunu için kotrplak kullanmayı tercih ettik. Ve bunu 3 katlı yapmayı uygun
gördük. Bunlardan ilkinde pil, ikincisinde ise Arduino, motor sürücüsü ve sensör yer aldı.
En üst kat ise boş kaldı. 4 civata ile bu sistemi ayakta tutmayı sağladık diyebiliriz. Aşağıda
şasinin son halini görebiliriz.

2.2. YAZILIM

2.2.1. PID ALGORİTMASI

"PID" Oransal İntegral Türev için kullanılan bir kısaltmadır. Adından da anlaşılacağı gibi,
bu terimler hataya uygulanan üç temel matematiksel fonksiyonu açıklamaktır. PID
kontrolörün ana görevi ne olursa olsun hatayı en aza indirmektir. Bir girdiyi alır,
amaçlanan davranış sapmasını hesaplar ve amaçlanan davranışı sapmanın minimize ve
daha yüksek doğruluk elde edilir ki buna göre çıkışını ayarlar.

Bir PIDi anlamak için gerekecek temel terminoloji şunlardır:


• Hata - Hata bir referans değerinde sapmadır.
• Orantılı (P) - orantılı terimi şu andaki hata ile doğru orantılıdır.
• Entegre (I) - tamamlayıcı terimi süresi (t) boyunca yapılan toplam hatadır.
• Türev (D) - Türev terimi hata değişim oranı
• Sabit (faktör) - Her zaman (P, I, D) kodu kadar müdahale gerekecektir. Bu nedenle,
bunlar ilgili sabitler ile çarparak koda dahil edilir.
P-Faktörü (Kp) - Oransal etkisini artırmak veya azaltmak için kullanılan bir sabit değer
I-Faktörü (Ki) - İntegral etkisini artırmak veya azaltmak için kullanılan bir sabit değer
D-Faktörü (Kd) - Türev etkisini artırmak veya azaltmak için kullanılan bir sabit değer
7

2.2.2. MPU6050 SENSÖRÜNÜN PROGRAMLANMASI

Mpu6050 ivme sensörü ile arduino bağlantısını yapabilmek için aşağıdaki kodlar
yazıldı. Ve bu sayede sensörden gelen veriler arduino programlama arayüzünün serial print
kısmında gözlendi.

#include "I2Cdev.h" //I2C kütüphanesi


#include "MPU6050.h" //Mpu6050 kütüphanesi
#include "Wire.h"
MPU6050 accelgyro; // Mpu6050 sensör tanımlama
int16_t ax, ay, az; //ivme tanımlama
int16_t gx, gy, gz; //gyro tanımlama

void setup() {
Wire.begin();
Serial.begin(38400);
Serial.println("I2C cihazlar başlatılıyor...");
accelgyro.initialize();
Serial.println("Test cihazı bağlantıları...");
Serial.println(accelgyro.testConnection() ? "MPU6050 bağlantı başarılı" :
"MPU6050 bağlantısı başarısız");
}

void loop() {
accelgyro.getMotion6(&ax, &ay, &az, &gx, &gy, &gz); // ivme ve gyro değerlerini
okuma

//açısal ivmeleri ve gyro değerlerini ekrana yazdırma


Serial.print("a/g:\t");
Serial.print(ax); Serial.print("\t");
Serial.print(ay); Serial.print("\t");
Serial.print(az); Serial.print("\t");
Serial.print(gx); Serial.print("\t");
Serial.print(gy); Serial.print("\t");
Serial.println(gz);
}
8

2.2.3. MOTOR SÜRÜCÜNÜN PROGRAMLANMASI

Motor sürücü devresi olarak L293D Motor süücü shield kullanılmıştı. Arduino ile
bu devreye bağlı motorları kullanmak için AFMotor kütüphanesi kullanıldı. Bir Dc
motorun kontrolü için aşağıdaki kodlar yazıldı.

#include <AFMotor.h>

AF_DCMotor motor(4);

void setup() {

motor.setSpeed(200); // Motorun çalışma hızı

motor.run(RELEASE); // Motorun çalışma durumu


}

void loop() {
uint8_t i;

motor.run(FORWARD); // İleri Yönde Dönüş


for (i=0; i<255; i++) {
motor.setSpeed(i);
delay(10);
}

motor.run(BACKWARD); // Geri Yönde Dönüş


for (i=0; i<255; i++) {
motor.setSpeed(i);
delay(10);
}

motor.run(RELEASE); // Dönüş Yok


delay(1000);
}
9

3. ÖNERİLER

Bu sistem için biz PID Algoritma kullandık fakat, yapay sinir ağları kulanılarak
daha etkili bir sistem oluşturulabilirirdi. Yapay sinir ağlarından kısaca bahsetmek
gerekirse;
YSA; birbiriyle akson bağlantılarıyla haberleşen nöron (sinir hücresi) birimlerinin
oluşturduğu gerçek sinir sistemlerinin soyut olarak simule edilmiş özel bir halidir.
YSA, kendi kendini örgütleyebilmesi ve adaptif yapısı nedeniyle, geleneksel paralel
işleme tekniklerinden kullanım kolaylığı ve hataları tolere edebilme yönleriyle
ayrılmaktadır. Sinir ağlarının temel modeli ilk olarak 1943 yılında McCulloch ve Pitts
tarafından, sinir sistemi aktivitesinin bilgisayar bilimi yaklaşımıyla modellenmesiyle
gerçekleştirilmiştir. McCulloch ve Pitts’in modeline göre “nöron” ikili sayısal sisteme
sahip bir cihazdır ve herbir nöronun kendi eşik değerine sahip olması nedeniyle, basit
eşik mantığına (threshold logic) göre çalışmaktadır. D. O. Hebb, 1947’de yayınlanan
“Davranışın Örgütlenmesi” (Organisation of Behavior) isimli çalışmasında; nöronların,
kendi kendini örgütleyebilmeleri özellikleri sayesinde uygun biçimde birbirleriyle
bağlantılar oluşturduklarını; nöronların ve aralarındaki bağlantıların, canlının öğrenme
sürecine bağlı olarak sürekli bir biçimde değiştiğini yada yenilendiğini ileri sürmüştür.
YSA’ nın hesaplama ve bilgi işleme gücünü, paralel dağılmış yapısından,
öğrenebilme ve genelleme yeteneğinden aldığı söylenebilir. Genelleme, eğitim ya da
öğrenme sürecinde karşılaşılmayan girişler için de YSA’ nın uygun tepkileri üretmesi
olarak tanımlanır. Bu üstün özellikleri, YSA’ nın karmaşık problemleri çözebilme
yeteneğini gösterir.
Robot denge sisteminde ise YSA kullanırken Yapay sinir ağına girdi olarak robotun
konumu, hızı ve ivmesi verilebilir ve hata ile geri beslemeli bir ağ oluşturulabilir. Bu
sayede daha kararlı ve şartlara göre öğrenebilen bir robot elde edilebilir.
Ayrıca bir diğer konu ise donanımla ilgili. Biz donanımı farklı parçalar bularak ve
onları elimizde şekillendirerek yapmaya çalıştık. Bunun yerine 3D yazıcı kullanarak
tam dengeli bir şasi yapabilirdik. Üç boyutlu yazıcı teknolojisi, bir çok farklı
malzemeyi kullanarak üç boyut modeli katmanlarına ayırıp, tasarlanan modeli gerçek
bir ürün olarak ortaya çıkarır. Üç boyutlu bilgisayar çizimleriyle ya da internetten
indirilen 3D yazıcı programlarla çıktı almak mümkün. Yani tasarladığınız, 3D yazıcı
sayesinde dakikalar içinde ulaşabiliyorsunuz. Bilgisayarda şasiyi tam hesaplamalarla,
örneğin Autodesk Inventor kullanarak tasarlayabilir ve kusursuz elde edebilirdik.
İmkanların elvermemesi bu opsiyonu yapamamamıza sebep olmuştu.
10

4. KAYNAKLAR

1. https://www.arduino.cc/

2. http://arduinoturkiye.com/

3. https://learn.adafruit.com/adafruit-motor-shield/using-dc-motors

4. https://www.arduino.cc/en/Guide/Windows

5. http://playground.arduino.cc/Code/PIDLibrary

6. http://playground.arduino.cc/Main/AdafruitMotorShield

7. https://blog.adafruit.com/2015/06/01/make-a-self-balancing-robot-with-arduino/
11

8. STANDARTLAR ve KISITLAR FORMU

Projenin hazırlanmasında uyulan standart ve kısıtlarla ilgili olarak, aşağıdaki soruları


cevaplayınız.

1. Projenizin tasarım boyutu nedir? (Yeni bir proje midir? Var olan bir projenin tekrarı
mıdır? Bir projenin parçası mıdır? Sizin tasarımınız proje toplamının yüzde olarak ne
kadarını oluşturmaktadır?)

Daha önceden de böyle projelerle uğraşılmış olduğunu biliyoruz. Aslında yapılacak


olan büyük boyutu insan taşıma için kullanılacaktı. Kaynak yetersizliğinden dolayı,
algoritma konusuna eğilerek bunun prototipini yaptık. Yani bir projenin parçası
denilebilir. Tasarımını kendimiz oluşturduk ve benzerleri de yok değil. Bundan dolayı
%50 bizim tasarımımız diyebiliriz.

2. Projenizde bir mühendislik problemini kendiniz formüle edip, çözdünüz mü?


Açıklayınız.

PID Algoritmasını kullandık, ve aslında bu tam olarak formüle etmek olmadı, fakat
çözüm oldu diyebiliriz. Ayrıca tasarımın nasıl olacağına dair de denge hesaplamalarımız
oldu.

3. Önceki derslerde edindiğiniz hangi bilgi ve becerileri kullandınız?

Robotik ve Elektrik, Elektronik Derslerinin bilgileri kullanıldı. Ayrıca kod kısmı için de
C yararlı oldu diyebiliriz.

4. Kullandığınız veya dikkate aldığınız mühendislik standartları nelerdir? (Proje


konunuzla ilgili olarak kullandığınız ve kullanılması gereken standartları burada kod ve
isimleri ile sıralayınız).

1.PID(Oransal İntegral Türev)

5. Kullandığınız veya dikkate aldığınız gerçekçi kısıtlar nelerdir? Lütfen boşlukları uygun
yanıtlarla doldurunuz.

a) Ekonomi

Ekonomi konusunda sorunlarımız vardı. Bu sebepten dolayı projemiz başta düşünülen


işlevselliğini tam olarak yerine getiremedi.
12

b) Çevre sorunları:

Çalışmak için gerekli bir ortam tam anlamıyla yoktu. Yurtta kalmamızın bu konuda
dezavantajları olduğu gibi kullanılabilecek laboratuvar alanları da çok kısıtlıydı.
c) Sürdürülebilirlik:

Proje için sürdürülebilirlik bir sorun teşkil etmiyor. Gerçekten çok geniş bir kullanım
alanı oluşturabilir ve geliştirilebilir. Aslında a ve b seçenekleri bu konuda bize engel
oldu.

d) Üretilebilirlik:

Projenin üretilebilirliği vardır. Özellikle insan taşıma konusunda geliştirilip seri üretime
geçilerek bir piyasa oluşturulabilir. Zaten bunu yapan şirketler var. Fakat bizim için bu
bir kısıtlamaydı.

e) Etik:

Etik konusunda bir sorun teşkil etmemektedir.

f) Sağlık:

İnsanlara hareket esnekliği sağlaması sağlık açısından yararlı olabilir. Engelli insanlar
için de bir avantaj oluşturabilir. Fakat günümüz koşullarının insanı giderek hareketsiz
bir hayata sürmesi süşünüldüğünde dezavantaj da olabilir.

g) Güvenlik:

Çok hızlı bir cihaz olmaması bu konuda güvenliği pozitif yönde etkiler. Fakat
oluşabilecek bazı kazalar ihtimaller dahilindedir.

h) Sosyal ve politik sorunlar:

Sosyal ve politik sorun teşkil etmemektedir.

You might also like