20140726 122709

Engelden Kaçan Robot Yapımı

Bu proje yapabileceğiniz en zevkli projelerden birisidir. Engelden kaçıcı robot için gerekli olan sadece bir adet ultrasonik sensor ve iki adet dc motor yada 360 derece donebilen servo motordur .Resimde bir proje için kullanmak istediğim Wall-E oyuncağının

 

Arduino Pro Mini (robotun küçük olabilmesi için ),

20140726 122709

1 adet 180 derecelik servo (normal servo)

2 adet DC motor yada 360 derecelik servo motor (countinous servo)

1 adet batarya (ben 3.6 voltluk sarjlı batarya kullandım)

1 adet Ultrasonik sensör

Paletler için kullandığım servo motorlar servo motorlar normal servo motorlardır, bu motorları elden geçirerek 360 derece dondurmeniz mümkün

Paletlere servo motorları yerleştirdikten sonra artık ultrasonik sensör için kullanacağımız servonun yerleştirilmesine geldi

Daha sonra bataryanın yerleştirilmesi ve üzerine arduino pro mini yada kullanmak istediğiniz herhangi bir arduinonun yerleştirilmesi



#include <Servo.h> //include Servo library

const int RForward = 0;
const int RBackward = 180;
const int LForward = 113;
const int LBackward = 0;
const int RNeutral = 73;
const int LNeutral = 92; //constants for motor speed
const int trigpin = 13;
const int echopin = 12;
const int dangerThresh = 10; //threshold for obstacles (in cm)
int leftDistance, rightDistance; //distances on either side
Servo panMotor;
Servo leftMotor;
Servo rightMotor; //declare motors
long duration; //time it takes to recieve PING))) signal

void setup()
{
rightMotor.attach(11);
leftMotor.attach(9);
panMotor.attach(10); //attach motors to proper pins
panMotor.write(90); //set PING))) pan to center
}

void loop()
{
int distanceFwd = ping();
if (distanceFwd>dangerThresh) //if path is clear
{
leftMotor.write(LForward);
rightMotor.write(RForward); //move forward
}
else //if path is blocked
{
leftMotor.write(LNeutral);
rightMotor.write(RNeutral);
panMotor.write(0);
delay(500);
rightDistance = ping(); //scan to the right
delay(500);
panMotor.write(180);
delay(700);
leftDistance = ping(); //scan to the left
delay(500);
panMotor.write(90); //return to center
delay(100);
compareDistance();

}

}

void compareDistance()
{
if (leftDistance>rightDistance) //if left is less obstructed
{
leftMotor.write(LBackward);
rightMotor.write(RForward); //turn left
delay(500);
}
else if (rightDistance>leftDistance) //if right is less obstructed
{
leftMotor.write(LForward);
rightMotor.write(RBackward); //turn right
delay(500);
}
else //if they are equally obstructed
{
leftMotor.write(LForward);
rightMotor.write(RBackward); //turn 180 degrees
delay(1000);
}
}

long ping()
{
// Send out PING))) signal pulse
pinMode(trigpin, OUTPUT);
pinMode(echopin,INPUT);
digitalWrite(trigpin, LOW);
delayMicroseconds(2);
digitalWrite(trigpin, HIGH);
delayMicroseconds(10);
digitalWrite(trigpin, LOW);

//Get duration it takes to receive echo

duration = pulseIn(echopin, HIGH);

//Convert duration into distance
return duration / 29 / 2;
}

  1. orhan 7 Ekim 2016 22:27

    Yapan ve çalıştırabilen var mı ?

    Cevapla
  2. Sinan Ugur Yilmaz 23 Mayıs 2016 00:46

    Merhaba iyi çalışmlar aynı kodlarla denedim fakat robot cisimleri algılamıyor bağlanılarımın hepside doğru kendine sabit bir eksen çizdi ve o eksende kendi kendine dolaşıp duruyor cisim algılamıyor 2 gündür uğraşıyorum bütün bağlantılarımda doğru cevabınız için teşekkürler

    Cevapla
  3. Devrim Eren SEZGİN 12 Mayıs 2016 17:07

    Sistemde kullanılan ekipmanların adını verebilirmisiniz?

    Cevapla
    • Arduinocu 13 Mayıs 2016 08:21

      1 Pro mini ama istediginiz arduinoyu kullanabilirsiniz
      2 adet servo motor tekerlekler icin (hackledim boylelikle 360 derece donuyor)
      1 ader servo motor Ultrasonic sensor icin
      1 adet Ultrasonik sensor (HC-SR04)

      Cevapla

Bir Cevap Yazın

Time limit is exhausted. Please reload CAPTCHA.