Engelden Kaçan Robot Tasarımı
Bu yazımızda sizlere, Arduino ile engelden kaçan robot nasıl yapılır sorusuna cevap arayacağız ve için gerekli kodları paylaşacağız.
Arduino mesafe sensörü kullanarak, belli mesafedeki cismi veya engeli algılayıp geri dönen engelden kaçan model-1 ile bu seriye başlıyoruz. Mesafe sensörü kullanımı ile ilgili daha önce bir yazı yayınlamıştık.
Gerekli malzemeler,
- 1 adet Arduino Uno
- 1 adet Arduino Motor Entegre Kartı (motor shield)
- 4 adet DC motor ve tekerlek
- Robot şasesi
- 1 adet HC-SR04
- 1 adet mini devretahtası(breadboard)
- Yeterli sayıda kablo
Öncelikle işimize robotun motorlarını ve tekerlerini şaseye monte etmekle başlıyoruz ve daha sonra motorların pinlerine kabloları lehimliyoruz. Bu lehimlediğimiz kabloları motor kartın (shield) M1,M2,M3,M4 pinlerine bağlıyoruz. Shield’i arduinoya takmadan önce shield üzerindeki pinleri kullanabilmemiz için analog pinlere GNDve 5v çıkışlarına pin (header) lehimliyoruz. Bu işlemleri tamamladıktan sonra motor sürücüyü Arduino üzerine geçiriyoruz.
Sensör için,
Trig Pini=>A3 Echo Pini=>A2 Gnd=>Toprak Vcc=> 5v
bağlantılarını yapıyoruz. Bu aşamadan sonra tüm bağlantılarımız hazır. Şimdi kodlarımızı yazmaya başlayalım.
Kodlarımızı yazmadan önce Arduino IDE’sine, AFMotor.h kütüphanesini eklemeyi unutmuyoruz,
#include <AFMotor.h>
const int TriggerPin=A3;
const int Echo1Pin=A2;
long duration=0;
int distance=0;
AF_DCMotor motor(2, MOTOR12_64KHZ);
AF_DCMotor motor2(1, MOTOR12_64KHZ);
AF_DCMotor motor3(3, MOTOR12_64KHZ); //Motorlarınızı pinlerinizin bağlı olduğu pine göre kodlayın
AF_DCMotor motor4(4, MOTOR12_64KHZ);
void setup() {
pinMode(TriggerPin,OUTPUT);
pinMode(Echo1Pin,INPUT);
motor.setSpeed(200);
motor2.setSpeed(200);
motor3.setSpeed(200);
motor4.setSpeed(200);
}
void loop() {
digitalWrite(TriggerPin,LOW);
delayMicroseconds(500);
digitalWrite(TriggerPin,HIGH);
delayMicroseconds(500);
digitalWrite(TriggerPin,LOW);
duration=pulseIn(Echo1Pin,HIGH);
distance=(duration1/2)/29.1;
while( distance>=10)
{
motor4.run(FORWARD);
motor2.run(FORWARD);
motor3.run(FORWARD);
motor.run(FORWARD);
}
delay(500);
motor4.run(BACKWARD);
motor2.run(BACKWARD);
motor3.run(BACKWARD);
motor.run(BACKWARD);
}
Kodlarımızı yazdıktan sonra Arduinoya yüklüyoruz. Robotunuzun nasıl çalışmasını istiyorsanız, ona uygun değişiklikleri yapabilirsiniz kolay gelsin. Videomuzu izlemeyi ve Hobikod Eğitim kanalımıza abone olmayı unutmayın.