FIKRI IBRAHIM N

Blog tentang Robotik, Fisika, Fisika Instrumentasi, Elektronika, Komputasi dll.

Search

Tuesday, July 17, 2018

Cara Membuat Robot AVOIDER Menggunakan Sensor HC-SR04 dan Motor Servo DC 180°


Pada postingan sebelumnya telah kita bahas mengenai cara pembuatan robot AVOIDER menggunakan sensor ultrasonik HC-SR04.
Kali ini kita akan membahas cara membuat robot AVOIDER dengan penambahan motor servo 180° sebagai leher robot. Dalam postingan ini akan ditujukan ke beberapa hal penting saja seperti :
  1. Cara menentukan sudut awal motor servo
  2. Cara memfungsikan motor servo sebagai leher/sendi pada robot
  3. Source code robot di software Arduino
  4. Simulasi rangkaian di Proteus dan Fritzing
  5. Kenapa sensor ultrasonik sering di samakan seperti sensor yang dimiliki hewan kelelawar

Cara membuat sudut awal motor servo

Untuk membuat sudut awal servo kita bisa melakukannya langsung dengan uji eksperimen, langsung aja rangkai motor servo ke arduino.

Dengan keterangan :
Kabel yang warna merah == hubungkan ke VCC atau 5 volt yang ada di arduino, kabel warna coklat/hitam sambungkan ke ground/GND di arduino. Sedangkan untuk kabel warna kuning atau kabel sisanya hubungkan ke salah satu pin digital arduino, yang dalam postingan ini, saya memakai pin digital 9 (pemakaian pin ini bebas, semau anda saja ya. Tinggal nanti bedain deklarasi pin nya di program).

Setelah proses perangkaian selesai, silahkan copy aja program dibawah ke jendela baru software arduino.

#include <Servo.h> 
char buffer[10]; 
Servo servo1;   

void setup() 
       //posisi pin servo
        Servo1.attach(9);  
      
        Serial.begin(9600);
        Serial.flush();
       // kondisi awal servo
        servo1.write(175);  
       
       Serial.println("STARTING...");
  void loop() 
        if (Serial.available() > 0) { 
                int index=0;
                delay(1000); 
                int numChar = Serial.available(); 
                if (numChar>10) {
                numChar=10;
                }
                while (numChar--) {
                        
                        buffer[index++] = Serial.read();
                }
                splitString(buffer); 
        }
}
void splitString(char* data) {
        Serial.print("Data entered: ");
        Serial.println(data);
        char* parameter;
        parameter = strtok (data, " ,"); 
        while (parameter != NULL) { 
                setServo(parameter); 
                parameter = strtok (NULL, " ,"); 
        }                
        for (int x=0; x<9; x++) {
                buffer[x]='\0';
        }
        Serial.flush();
}
void setServo(char* data) {
        if ((data[0] == 'A') || (data[0] == 'a')) {
        // String to long integer
                int firstVal = strtol(data+1, NULL, 10);
        // Constrain values
                firstVal = constrain(firstVal,0,180);
                servo1.write(firstVal);
                delay(1000);
                Serial.print("Servo1 is set to: ");
                Serial.println(firstVal);
        } 

Setelah menemukan sudut yang sesuai, kita lanjut ke pembahasan selanjutnya yaitu :

kelas bimbingan online youtube



Cara memfungsikan motor servo sebagai leher robot
Karena Motor Servo merupakan sebuah perangkat atau akuator putar (motor) yang dirancang dengan sistem kontrol umpan balik loop tertutup (servo), sehingga dapet di set-up atau di atur untuk menentukan dan memastikan posisi sudut dari poros output motor.

Naah...dalam pembuatan robot ini, servo akan bergerak ke kiri dan ke kanan dalam waktu tertentu (delay).. saat servo memutar ke arah kiri...disitu kita fungsikan sensor ultrasonik untuk mengukur jarak / melihat (ultrasonik hc-sr04 sebagai mata robot) robot ke penghalang (jika ada penghalang), setelah beberapa detiik sensor mengukur jarak pandangnya, maka akan didapatkan nilai jarak, nilai jarak inilah yang nantinya akan di bandingkan dengan nilai jarak dari arah kanan robot, yang akhirnya akan di ambil kesimpulan, nilai jarak yang lebih dari penghalang atau nilai jarak yang lebih tinggi/besar sebagai acuan gerak robot selanjutnya.


Gambar dibawah merupakan desain keseluruhan robot, setelah anda merangkainnya maka tinggal copy paste aja program dibawah.


Source code robot di software Arduino

#include <Servo.h> //memasukan fungsi library servo

//definisi pin input-output sinyal ultrasonic
const int pingPin = 8 ;
const int echoPin = 7 ;
const int penghalang = 10; //batas penghalang 10 cm

//definisi pin motor driver
int kiriA = 13;
int kiriB = 12;
int kananA = 11;
int kananB = 10;

Servo kepala;
long duration, cm;
int jarak_kiri, jarak_kanan;

void setup()
{
  Serial.begin(9600);
  kepala.attach(9);
  pinMode(kiriA,OUTPUT);
  pinMode(kiriB,OUTPUT);
  pinMode(kananA,OUTPUT);
  pinMode(kananB,OUTPUT);

}

void loop()
{
  int jarak = ping();
  Serial.println(jarak);
  if (jarak>penghalang)
  {
    digitalWrite(kiriA,HIGH);
    digitalWrite(kiriB,LOW);
    digitalWrite(kananA,HIGH);
    digitalWrite(kananB,LOW);
    //maju
  }
  else
  {
    digitalWrite(kiriA,LOW);
    digitalWrite(kiriB,LOW);
    digitalWrite(kananA,LOW);
    digitalWrite(kananB,LOW);
 
    kepala.write(0);
    delay(500);
    jarak_kanan = ping(); //mengukur jarak kanan
    delay(500);
    kepala.write(180);
    delay(500);
    jarak_kiri = ping();  //mengukur jarak kiri
    delay(50);
    kepala.write(90);     //kembali ketengah
    delay(100);
    perbandingan_jarak();
  }
}
 
void perbandingan_jarak()
{
//penghalang di kiri lebih jauh
  if (jarak_kiri>jarak_kanan) 
  {
    digitalWrite(kiriA,HIGH);
    digitalWrite(kiriB,LOW);
    digitalWrite(kananA,LOW);
    digitalWrite(kananB,HIGH); //belok kiri
    delay(700);
  }
//penghalang di kanan lebih jauh
  else if (jarak_kiri<jarak_kanan) 
  {
    digitalWrite(kiriA,LOW);
    digitalWrite(kiriB,HIGH);
    digitalWrite(kananA,HIGH);
    digitalWrite(kananB,LOW); //belok kanan
    delay(700);
  }
   else //jika jarak kiri dan kanan sama
  {
    digitalWrite(kiriA,HIGH);
    digitalWrite(kiriB,LOW);
    digitalWrite(kananA,HIGH);
    digitalWrite(kananB,LOW); //mundur
    delay(700);
  }
}

long ping()
{
  pinMode(pingPin, OUTPUT);
  digitalWrite(pingPin, LOW);
  delayMicroseconds(2);
  digitalWrite(pingPin, HIGH);
  delayMicroseconds(10);
  digitalWrite(pingPin, LOW);
  pinMode(echoPin, INPUT);
  duration = pulseIn(echoPin, HIGH);
  cm = microsecondsToCentimeters(duration);
  Serial.println(cm);
  return duration / 29 / 2;
}
long microsecondsToCentimeters(long microseconds){
  return microseconds/29/2;
}

Nahh...itulah program keseuruhannya untuk robot avoider dengan motor servo sebagai leher robot. Tinggal praktekin aja ya, kalau ada pertanyaan silahkan komen aja, saya siap bantu..hhee

Nah yang terahir adalah :

Kenapa sih sensor ultrasonik hc-sr04 disamakan dengan sensor yang dimiliki kelelawar ?

Simak dulu ini ya..

Sensor HC-SR04 adalah jenis sensor ultrasonic yaitu sebuah sensor yang berfungsi untuk mengubah besaran fisis (bunyi) menjadi besaran listrik dan sebaliknya. Sensor tersebut biasa dikatakan sebagai sensor jarak karena mampu mendeteksi keberadaan benda di dekatnya tanpa kontak fisik.
Cara kerja sensor ini didasarkan pada prinsip dari pantulan suatu gelombang suara sehingga dapat dipakai untuk menafsirkan eksistensi (jarak) suatu benda dengan frekuensi tertentu.

Spesifikasinya :

1.   Jangkauan deteksi: 2cm sampai kisaran 400-500cm.

2.   Sudut deteksi terbaik adalah 15 derajat.

3.   Tegangan kerja 5V DC.

4.   Resolusi 1cm.

5.   Frekuensi Ultrasonik 40 kHz.

        Ketika diberikan tegangan positif pada pin Trigger selama 10uS, maka sensor akan mengirimkan 8 step sinyal ultrasonik dengan frekuensi 40kHz. Selanjutnya, sinyal akan diterima pada pin Echo. Untuk mengukur jarak benda yang memantulkan sinyal tersebut, maka selisih waktu ketika mengirim dan menerima sinyal digunakan untuk menentukan jarak benda tersebut, Dengan rumus S= 340. t/2. 

       Jelas ya... intinya sensor ultrasonik hc-sr04 kan memiliki 2 mata ya,, nah yang satu itu fungsinya untuk memancarkan sinyal gelombang suara, yang satu lagi untuk menangkap gelombang pantulannya. (triger=memancarkan sinyal. Echo=menangkap sinyal).


Semoga bermanfaat...


BACA JUGA :

Super Admob Pro Mastery White Hat Version =

Bikin Landing Page Pake Blogspot =

Cara Mempermudah Berbisnis Dropship =

Membuat Video Profesional dengan Power Point =