Kaskus

News

joeragankodokAvatar border
TS
joeragankodok
ROBOT OBSTACLE /ROBOT MENGHINDARI RINTANGAN
Kita membangun robot yang berfungsi penuh yang mampu bergerak di sekitar dan menghindari rintangan di jalannya.
Robot menggunakan sensor jarak Ultrasonik untuk mengukur jarak di depannya. Ketika jarak ini berkurang ke tingkat tertentu, robot menafsirkannya berarti kehadiran rintangan di jalurnya. Ketika robot mendeteksi rintangan di jalannya, ia berhenti, mundur ke belakang untuk beberapa cm, melihat sekeliling (kanan dan kiri) kemudian berbalik ke arah arah yang menunjukkan lebih banyak ruang kosong di depannya. Ketika Anda akan mencari tahu, membangun robot kecil yang mengesankan ini sangat menyenangkan dan mudah karena hanya akan memakan waktu beberapa jam untuk menyatukan semuanya. Setelah itu dapat menggunakan kode saya secara langsung atau memodifikasinya untuk menerapkan pola perilaku yang Anda inginkan untuk robot. Ini adalah pengalaman belajar yang hebat dan pengenalan yang bagus untuk anak-anak dan orang dewasa.
 
SELAMAT MENCOBA 
KOMPONEN YANG DIGUNAKAN
Robot Chassis Kit , Arduino Uno ,Motor Shield , Servo SG90 , Ultrasonic Sensor Switch , Capacitors 100nf dan 300μf , dan kabel
 
 
Merakit  Robot
Untuk memulai, kita mulai dengan menggabungkan sasis robot. Kit robot, berisi sasis, dua motor DC yang digerakkan, roda, roda depan, dudukan baterai, beberapa sekrup, dan kabel. Paket ini juga berisi panduan yang bisa diikuti dengan langkah-langkah seperti yang akan kita lakukan untuk membangun robot. Langkah 1. Hubungkan motor dan roda ke sasis. Untuk menyelesaikan langkah ini, kita mulai dengan menyolder kabel tebal merah dan hitam ke terminal positif dan negatif dari motor dan untuk mengurangi gangguan listrik yang dihasilkan motor, kita menyolder kapasitor keramik kecil ke motor seperti yang ditunjukkan pada gambar di bawah ini. Karena kita menggunakan kapasitor keramik yang tidak memiliki polaritas, cukup solder satu kaki ke setiap terminal motor karena orientasi itu tidak penting.


Langkah 1

ROBOT OBSTACLE /ROBOT MENGHINDARI RINTANGAN
 
 Langkah 2: 

 ROBOT OBSTACLE /ROBOT MENGHINDARI RINTANGAN
Langkah 3: 
ROBOT OBSTACLE /ROBOT MENGHINDARI RINTANGAN
 
Skema
Hubungkan komponen bersama-sama seperti yang ditunjukkan pada gambar di bawah ini.
ROBOT OBSTACLE /ROBOT MENGHINDARI RINTANGAN

Periksa kembali koneksi Anda untuk memastikan semuanya berjalan sebagaimana mestinya. Geser tombol untuk menyalakannya dan Anda akan melihat lampu hijau muncul di driver motor, menunjukkan keberadaan daya. Jika ini tidak terjadi, lihat skematik dan perbaiki kesalahan.

 

Setelah semuanya dikonfirmasi, kami dapat melanjutkan untuk melihat kode untuk proyek ini.

 

Kode program

 

Kode ini menggunakan tiga pustaka/library . Dua di antaranya harus diunduh agar program dapat dikompilasi. Yang pertama adalah drivermotor dari Adafru Library  kedua adalah perpustakaan NewPing untuk sensor jarak supersonik. Anda dapat menemukan tautan untuk kedua Library dalam deskripsi video.

 

 

Motor Shield Library: https://github.com/adafruit/Adafruit-Motor-Shield-library

New Ping Library: https://bitbucket.org/teckel12/arduino-new-ping/wiki/Home#!download-install

 
sekilas kode untuk melihat cara kerjanya. Hal pertama lakukan dalam
kode ini adalah memasukkan pustaka yang telah diunduh ke dalam kode.




#include <AFMotor.h>

#include <NewPing.h>

#include <Servo.h>

Selanjutnya, kami menyatakan pin yang atau sensor ultrasonik terhubung ke, dan beberapa variabel yang akan digunakan untuk menyimpan info sebagai kode berjalan kemudian kami mengatur kecepatan motor. Anda dapat menetapkan nilai apa pun hingga 255.

 

#define TRIG_PIN A4

#define ECHO_PIN A5

#define MAX_DISTANCE 200

#define MAX_SPEED 190 // sets speed of DC  motors

#define MAX_SPEED_OFFSET 20

 

Selanjutnya, kami menginisialisasi motor servo dengan membuat objek dari  lib. servo. Kami Juga menginisialisasi Motor yang roda terhubung menggunakan lib. AF.

AF_DCMotor motor1(1, MOTOR12_1KHZ);

AF_DCMotor motor2(3, MOTOR12_1KHZ);

 

Servo myservo;

 

Pindah ke fungsi void setup () di mana kami menginisialisasi motor servo dan kami mengaturnya agar "terlihat" lurus. Dalam kasus saya, ini adalah pada sudut 115 derajat, tetapi Anda mungkin perlu melakukan beberapa  coba-coba untuk mendapatkan derajat yang menandakan sensor ultrasonik menghadap ke depan. Selanjutnya, kita membaca jarak beberapa kali untuk mendapatkan pengukuran jarak yang valid.

 

void setup() {

 

  myservo.attach(9); 

  myservo.write(115);

  delay(2000);

  distance = readPing();

  delay(100);

  distance = readPing();

  delay(100);

  distance = readPing();

  delay(100);

  distance = readPing();

  delay(100);

}

 

Fungsi loop yang mengeksekusi setiap 40 ms. Jika jarak yang kami ukur kurang dari atau sama dengan 15 cm,  motor  mundur untuk 300ms, berhenti, lihat ke kanan dan ke kiri dan ukur jarak . Jika jarak dalam satu arah lebih besar , memutar robot ke arah dengan jarak terjauh  dan memerintahkannya untuk bergerak maju.

 

void loop() {

 int distanceR = 0;

 int distanceL =  0;

 delay(40);

 

 if(distance<=15)

 {

  moveStop();

  delay(100);

  moveBackward();

  delay(300);

  moveStop();

  delay(200);

  distanceR = lookRight();

  delay(200);

  distanceL = lookLeft();

  delay(200);

 

  if(distanceR>=distanceL)

  {

    turnRight();

    moveStop();

  }else

  {

    turnLeft();

    moveStop();

  }

 }else

 {

  moveForward();

 }

 distance = readPing();

}

 

 algoritma  sederhana untuk robot 



0
1.5K
0
GuestAvatar border
Komentar yang asik ya
GuestAvatar border
Komentar yang asik ya
Komunitas Pilihan