Arduino Otonom Araç Projesi




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.
  1. Arduino Uno
  2. Arduino Renk Tanıma Sensörü Gy-31
  3. Lm2596PowerSupply Modül
  4. Km103 Anahtar
  5. 5 mm LED kırmızı
  6. 20 Adet her türden jumper kablo
  7. Lehim
  8. Havya
  9. TCRT5000Sensör
  10. S90 Servo Motor
  11. HC-SR04  Mesafe Sensörü
  12. L298D DC Motor Sürücü
  13. 4 Adet DC motor
  14. Robot Araba Platformu
  15. 18650 li-on batarya 2 Adet
  16. 4 Adet tekerlek
  17. Dönme işlemi için şase
  18. 1k,10k,100k  direnç
  19. Plaka
  20. Çift Taraflı bant
  21. Elektrik Bandı
  22. Arduino Programı
  23. USB kablosu
  24. 18650 2 girişli pil yatağı
  25. Tornavida
  26. 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);
 }
}

Yorum Gönder

0 Yorumlar