Bu projeyi oluşturma sebebimiz trafikte akıcılığı artırmak
ve trafik kazalarını engellemektedir. Bu proje bir prototip oluşturulacaktır. Bu
proje başarılı olması durumunda uygulamaya geçirilebilecektir. Projemizde ki
amacımız kendi şeritin de yoluna devam eden ,önüne araç çıktığında yan şeriti
kontrol edip dikkatli şekilde şerit değiştiren ve şeritleri dikkate alarak
yoluna devam eden bir araç tasarlamaktır. Projemiz aynı zamanda araç önündeki
araç ile mesafesini koruyacaktır.
Mesafe trafik kurallarının belirlediği mesafe
olacaktır. Aracımızda bulunan sensörler vasıtasıyla aracımız kırmızı ışıkta duracak ve yeşil ışık
yandığında yoluna devam edecektir. Aracımızda kullanılması gereken malzeme
listesi aşağıda oluşturulmuştur.- Arduino Uno
- Arduino Renk Tanıma Sensörü Gy-31
- Lm2596PowerSupply Modül
- Km103 Anahtar
- 5 mm LED kırmızı
- 20 Adet her türden jumper kablo
- Lehim
- Havya
- TCRT5000Sensör
- S90 Servo Motor
- HC-SR04 Mesafe Sensörü
- L298D DC Motor Sürücü
- 4 Adet DC motor
- Robot Araba Platformu
- 18650 li-on batarya 2 Adet
- 4 Adet tekerlek
- Dönme işlemi için şase
- 1k,10k,100k direnç
- Plaka
- Çift Taraflı bant
- Elektrik Bandı
- Arduino Programı
- USB kablosu
- 18650 2 girişli pil yatağı
- Tornavida
- Pense
Projenin işleyişi
Bu malzemeler internet platformu üstünden temin edilmiştir. Temin edilmesi yaklaşık olarak bir
hafta sürmüştür. Bu işlemin ardından yapım aşamasına başlanmıştır. İlk olarak
aracın şasesi toplanmıştır. Bu işlemin
ardından gerekli devre elemanları birbirine bağlanmıştır. Baglantı şekillerini ardından Arduino programı Arduinonun kendi web sitesinden indirilmiş Windows
işletim sistemine yüklenmiştir. Bu işlemin ardından CH340 entegrasyon yazılımı
indirilmiş ve Windows platformuna
kurulmuştur. İlk olarak motor sürücü kodlanmıştır. Bu işlemin ardından mesafe
sensörü ile birlikte motor sürücü kodlanmış ve belirli bir mesafe
belirlenmiştir.
Devre Şeması
Arduino Kodu
const int in1 = 8; // Motor sürücümüze bağladığımız pinleri tanımlıyoruz
const int in2 = 9;
const int in3 = 10;
const int in4 = 11;
const int enA = 5; //Enable pinlerini arduino 5,6 pwm pinlerine bağladık.
const int enB = 6;
void setup()
{
Serial.begin(9600);
pinMode(in1, OUTPUT);
pinMode(in2, OUTPUT);
pinMode(in3, OUTPUT);
pinMode(in4, OUTPUT);
pinMode(enA, OUTPUT);
pinMode(enB, OUTPUT);
}
void loop()
{
int sensorValue = analogRead(A1);
int sensorValue2 = analogRead(A2);
// motor 1
delay(1000);
if(sensorValue<100 && sensorValue2 <500){
analogWrite(enA, 100); //1. motor 255 ile tam hızda dönüyor...
digitalWrite(in1, HIGH);
digitalWrite(in2, LOW);
// motor 2
analogWrite(enB, 100); //2. motor 40 ile yavaş dönüyor...
digitalWrite(in3, HIGH);
digitalWrite(in4, LOW);
Serial.println("1.if");
}
if(sensorValue>100 && sensorValue2 <500){
analogWrite(enA, 150); //1. motor 255 ile tam hızda dönüyor...
digitalWrite(in1, HIGH);
digitalWrite(in2, LOW);
// motor 2
analogWrite(enB, 80); //2. motor 40 ile yavaş dönüyor...
digitalWrite(in3, HIGH);
digitalWrite(in4, LOW);
Serial.println("2.if");
}
if(sensorValue<100 && sensorValue2 >500){
analogWrite(enA, 80); //1. motor 255 ile tam hızda dönüyor...
digitalWrite(in1, HIGH);
digitalWrite(in2, LOW);
// motor 2
analogWrite(enB, 150); //2. motor 40 ile yavaş dönüyor...
digitalWrite(in3, HIGH);
digitalWrite(in4, LOW);
Serial.println("3.if");
}
if(sensorValue<100 && sensorValue2 >500){
analogWrite(enA, 0); //1. motor 255 ile tam hızda dönüyor...
digitalWrite(in1, HIGH);
digitalWrite(in2, LOW);
Serial.println("4.if");
// motor 2
analogWrite(enB, 0); //2. motor 40 ile yavaş dönüyor...
digitalWrite(in3, HIGH);
digitalWrite(in4, LOW);
}
}
0 Yorumlar
Bizimle fikirlerinizi paylaşabilirsiniz.