Blog Zonaduino

  • Home
  • Sub Menu
    • Lorem Ipsum
    • Ipsum Lorem
    • Muspi Merol
    • Merol Muspi
  • Menu
  • Sub Sub Menu
    • Lorem Ipsum
    • Ipsum Lorem
      • Lorem Ipsum
      • Ipsum Lorem
      • Muspi Merol
      • Merol Muspi
    • Muspi Merol
    • Merol Muspi
  • 404
Home » Arduino » Mikrokontroler » Robot » Robotic » Sensor » Tak Berkategori » Ultrasonik » Robot Avoider Menggunakan Arduino

Robot Avoider Menggunakan Arduino



IMKONTROL.COM- Robot Ultrasonic ini dapat berjalan dengan bebas tanpa pengawasan atau kontrol dari manusia secara manual. Robot Ultrasonic ini menggunakan Sensor ultrasonik yang akan mendeteksi benda di depannya. Robot Ultrasonic menggunakan Arduino sebagai mikrokontroler sehingga Anda dapat menyesuaikan robot Anda berfungsi untuk perintah spesifik Anda. Menyediakan jam menyenangkan untuk pemula atau robotician menengah.

Alat dan Bahan yang dibutuhkan :

  • 1x Arduino

  • 1x Motor Servo

  • 1x Motor Shield

  • 2x Motor DC / Motor Gearbox

  • 2x Roda (Bila diperlukan)

  • Kabel jumper secukupnya

Konfigurasi PIN :

  • Motor DC Kanan dihubungkan ke M2

  • Motor DC Kiri dihubungkan Ke M3

  • Pin Trig pada Sensor Ultrasonik Dihubungkan ke pin 13

  • Pin Echo pada Sensor Ultrasonik Dihubungkan ke pin 11

  • Pin PWM Servo Dihubungkan ke pin 7
robot

robott


Baca Juga Mengontrol 2 Motor DC Menggunakan HP Android


#include <AFMotor.h>
#include <Servo.h>
#define trigPin 13
#define echoPin 11 
AF_DCMotor motor2(2,MOTOR12_8KHZ);
AF_DCMotor motor3(3, MOTOR34_8KHZ);
Servo myservo;

void setup() {
  Serial.begin (9600);
    myservo.attach(7);

  Serial.begin(9600);
  Serial.println("Motor test!");
   pinMode(trigPin, OUTPUT);
  pinMode(echoPin, INPUT);
  motor2.setSpeed(255);
motor3.setSpeed (225);
}

void sweepServo(){
        myservo.write(180);
delay(200);
myservo.write(90);
delay(100);
        myservo.write(90);
delay(100);
myservo.write(1);
delay(100);
        myservo.write(1);
delay(100);
myservo.write(90);
delay(100);
        myservo.write(90);
delay(100);
myservo.write(180);
        delay(100);
        myservo.write(180);
delay(100);
myservo.write(90);
delay(1000);

}

 
void loop() {
  sweepServo();
   long duration, distance;
  digitalWrite(trigPin, LOW);
  delayMicroseconds(2);
  digitalWrite(trigPin, HIGH);

  delayMicroseconds(10);
  digitalWrite(trigPin, LOW);
  duration = pulseIn(echoPin, HIGH);
  distance = (duration/2) / 29.1;
  if (distance < 25) {
   Serial.println ("Close Obstacle detected!" );
Serial.println ("Obstacle Details:");
Serial.print ("Distance From Robot is " );
Serial.print ( distance);
Serial.print ( " CM!");

Serial.println (" The obstacle is declared a threat due to close distance. ");
Serial.println (" Turning !");
    motor2.run(FORWARD);
    motor3.run (BACKWARD);

}
  else {
   Serial.println ("No obstacle detected. going forward");
   delay (15);
   motor2.run(FORWARD);
    motor3.run(FORWARD);
  }  
  
  

  
  
  
 
}


Libraries : AFMotor

[embed width="" height=""]https://www.youtube.com/watch?v=6ruf4tQKUiw[/embed]

Baca juga Cara install arduino clone


REVISI





revisi1 revisi2

Coding

#include <AFMotor.h>
#include <Servo.h>
#include <NewPing.h>

#define TRIG_PIN A4 //A4
#define ECHO_PIN A5 //A5
#define MAX_DISTANCE_POSSIBLE 1000
#define MAX_SPEED 150 //
#define MOTORS_CALIBRATION_OFFSET 3
#define COLL_DIST 20
#define TURN_DIST COLL_DIST+10
NewPing sonar(TRIG_PIN, ECHO_PIN, MAX_DISTANCE_POSSIBLE);

AF_DCMotor leftMotor(4, MOTOR12_8KHZ);
AF_DCMotor rightMotor(3, MOTOR12_8KHZ);
Servo neckControllerServoMotor;

int pos = 0;
 int maxDist = 0;
 int maxAngle = 0;
 int maxRight = 0;
 int maxLeft = 0;
 int maxFront = 0;
int course = 0;
int curDist = 0;
String motorSet = "";
int speedSet = 0;


void setup() {
 neckControllerServoMotor.attach(10);  
 neckControllerServoMotor.write(90);
 delay(2000);
 checkPath();
 motorSet = "FORWARD";
 neckControllerServoMotor.write(90);
 moveForward();
}



void loop() {
 checkForward();  
 checkPath();
}

void checkPath() {
 int curLeft = 0;
 int curFront = 0;
 int curRight = 0;
 int curDist = 0;
 neckControllerServoMotor.write(144);
 delay(120);
 for(pos = 144; pos >= 36; pos-=18)
 {
   neckControllerServoMotor.write(pos);
   delay(90);
   checkForward();
   curDist = readPing();
   if (curDist < COLL_DIST) {
     checkCourse();
     break;
   }
   if (curDist < TURN_DIST) {
     changePath();
   }
   if (curDist > curDist) {maxAngle = pos;}
   if (pos > 90 && curDist > curLeft) { curLeft = curDist;}
   if (pos == 90 && curDist > curFront) {curFront = curDist;}
   if (pos < 90 && curDist > curRight) {curRight = curDist;}
 }
 maxLeft = curLeft;
 maxRight = curRight;
 maxFront = curFront;
}

void setCourse() {
   if (maxAngle < 90) {turnRight();}
   if (maxAngle > 90) {turnLeft();}
   maxLeft = 0;
   maxRight = 0;
   maxFront = 0;
}

void checkCourse() {
 moveBackward();
 delay(500);
 moveStop();
 setCourse();
}

void changePath() {
 if (pos < 90) {lookLeft();}
 if (pos > 90) {lookRight();}
}


int readPing() {
 delay(70);
 unsigned int uS = sonar.ping();
 int cm = uS/US_ROUNDTRIP_CM;
 return cm;
}

void checkForward() { if (motorSet=="FORWARD") {leftMotor.run(FORWARD); rightMotor.run(FORWARD); } }

void checkBackward() { if (motorSet=="BACKWARD") {leftMotor.run(BACKWARD); rightMotor.run(BACKWARD); } }

void moveStop() {leftMotor.run(RELEASE); rightMotor.run(RELEASE);}

void moveForward() {
   motorSet = "FORWARD";
   leftMotor.run(FORWARD);
   rightMotor.run(FORWARD);
 for (speedSet = 0; speedSet < MAX_SPEED; speedSet +=2)
 {
   leftMotor.setSpeed(speedSet+MOTORS_CALIBRATION_OFFSET);
   rightMotor.setSpeed(speedSet);
   delay(5);
 }
}

void moveBackward() {
   motorSet = "BACKWARD";
   leftMotor.run(BACKWARD);
   rightMotor.run(BACKWARD);
 for (speedSet = 0; speedSet < MAX_SPEED; speedSet +=2)
 {
   leftMotor.setSpeed(speedSet+MOTORS_CALIBRATION_OFFSET);
   rightMotor.setSpeed(speedSet);
   delay(5);
 }
}  

void turnRight() {
 motorSet = "RIGHT";
 leftMotor.run(FORWARD);
 rightMotor.run(BACKWARD);
 delay(400);
 motorSet = "FORWARD";
 leftMotor.run(FORWARD);
 rightMotor.run(FORWARD);      
}  

void turnLeft() {
 motorSet = "LEFT";
 leftMotor.run(BACKWARD);
 rightMotor.run(FORWARD);
 delay(400);
 motorSet = "FORWARD";
 leftMotor.run(FORWARD);
 rightMotor.run(FORWARD);
}  

void lookRight() {rightMotor.run(BACKWARD); delay(400); rightMotor.run(FORWARD);}
void lookLeft() {leftMotor.run(BACKWARD); delay(400); leftMotor.run(FORWARD);}


Libraries : AFMotor dan NewPing

[embed width="" height=""]https://www.youtube.com/watch?v=jQwYBc7YBXs[/embed]


Robot Avoider Menggunakan Arduino , Pada: 11:51:00



Share to

Facebook Google+ Twitter

Related with Robot Avoider Menggunakan Arduino :

Tags: #Arduino, #Mikrokontroler, #Robot, #Robotic, #Sensor, #Tak Berkategori, #Ultrasonik Diposkan oleh syafrie di 11:51:00

0 komentar :

Post a Comment

« Next Prev »
  • Home

Labels

Acer Alat Ukur Analog Applications Arduino Arduino Projects Artikel atmega8 Blogger CMS CNC Coding Drone Dunia Komputer Edukasi Elektronika Analog Elektronika Dasar Flashing HP Google Adsense HandPhone IBM Internet Laptop Laptop Rusak Library Logic Probe Mekatronika Mikrokontroler Netbook Netbook Rusak PLC Pneumatik Robot Robotic Sekilas Info Dunia Elektronika Sensor Service Service Compaq Service FUJITSU Service HP Service IBM Service Lenovo Service LG Service Medion Service Panasonic Service Toshiba Servie Sevice Acer Software Tak Berkategori Trainer Tutorial Ultrasonik
Copyright © 2016 Blog Zonaduino All Rights Reserved | Sonic SEO Template