Skip to content

fajarjulyana/goods-moving-robots-forklift

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

10 Commits
 
 
 
 

Repository files navigation

goods-moving-robots-forklift

robot pemindah barang dari titik A ke titik B dengan tambahan servo sebagai forklift menggunakan Arduino

Bahan

  1. Arduino board (misalnya Arduino Uno)

  2. Motor DC (2 buah)

  3. L293D Motor Driver Shield

  4. Sensor jarak ultrasonik (misalnya HC-SR04)

  5. Breadboard

  6. Kabel jumper

  7. Baterai atau power supply

  8. Chassis robot atau bahan-bahan untuk membuat rangka robot

  9. Roda dan motor penggerak

  10. Arm servo (SG90 atau sejenisnya)

  11. Roda gigi

  12. Kabel servo

  13. Potensiometer

  14. Sensor Warna

Pengkabelan

Langkah Pengerjaan

  1. Pasang motor DC pada rangka robot dan sambungkan ke L293D Motor Driver Shield menggunakan kabel jumper

  2. Sambungkan Motor Driver Shield ke Arduino board menggunakan kabel jumper

  3. Pasang sensor jarak ultrasonik pada rangka robot dan sambungkan ke Arduino board menggunakan kabel jumper

  4. Pasang arm servo pada rangka robot dan sambungkan ke Arduino board menggunakan kabel servo

  5. Pasang roda gigi pada arm servo

  6. Gunakan bahan-bahan yang tersedia untuk membuat rangka robot

  7. Pasang roda penggerak dan motor penggerak pada rangka robot

Kodenya

#include <NewPing.h>
#include <Servo.h>
#define TRIGGER_PIN 12
#define ECHO_PIN 11
#define MAX_DISTANCE 200
Servo myservo;
int servoPin = 9;
int servoInitial = 90;
int servoAngle = servoInitial;
int servoMin = 0;


Penjelasan singkat tentang kode program di atas:
  1. Kita menggunakan library NewPing untuk membaca data dari sensor ultrasonik
  2. Kita menggunakan library Servo untuk mengendalikan servo
  3. Pertama-tama, kita mengatur pin untuk sensor ultrasonik, servo, dan motor DC
  4. Kemudian, di dalam fungsi setup(), kita menginisialisasi servo dan mengatur pin untuk motor DC sebagai output
  5. Di dalam fungsi loop(), kita membaca data dari sensor ultrasonik dan menentukan tindakan yang harus dilakukan berdasarkan jarak yang terdeteksi
  6. Jika jarak kurang dari 30 cm, maka robot akan berhenti, menggerakkan servo untuk menaikkan barang, maju sebentar, menurunkan barang, dan mundur sebentar
  7. Jika jarak lebih dari atau sama dengan 30 cm, maka robot akan bergerak maju terus Fungsi forward(), backward(), dan stop() digunakan untuk menggerakkan motor DC ke depan, ke belakang, dan untuk berhenti

Pengembangan

penambahan sensor warna untuk mendeteksi barang
robot pemindah barang dari titik A ke titik B dan sebaliknya dengan menggunakan Arduino, motor DC, dan servo forklift, serta sensor warna untuk mendeteksi barang yang diangkut.

pengkabelan dengan sensor warna

kode dengan sensor warna

berikut kodenya dengan sensor warna

/*
kode lengkap untuk robot pemindah barang dari titik A ke titik B dan sebaliknya dengan menggunakan Arduino, motor DC, dan servo forklift, serta sensor warna untuk mendeteksi barang yang diangkut.
*/
#include <Servo.h>
#include <TCS3200.h>
// definisikan pin untuk motor DC
#define MOTOR_A_EN 10
#define MOTOR_A_IN1 9
#define MOTOR_A_IN2 8
#define MOTOR_B_EN 5
#define MOTOR_B_IN1 7
#define MOTOR_B_IN2 6
// definisikan pin untuk servo forklift
#define FORKLIFT_PIN 3
// definisikan pin untuk output sensor warna
#define S0 2
#define S1 3
#define S2 4
#define S3 5
#define OUT 6
// definisikan variabel
int speed = 200; // kecepatan motor DC
int red_threshold = 100; // threshold warna merah untuk deteksi barang
int green_threshold = 100; // threshold warna hijau untuk deteksi barang
int blue_threshold = 100; // threshold warna biru untuk deteksi barang
// buat objek motor DC
class Motor {
private:
int enable_pin;
int in1_pin;
int in2_pin;
public:
Motor(int en, int in1, int in2) {
enable_pin = en;
in1_pin = in1;
in2_pin = in2;
pinMode(enable_pin, OUTPUT);
pinMode(in1_pin, OUTPUT);
pinMode(in2_pin, OUTPUT);
}
void forward() {
digitalWrite(in1_pin, HIGH);
digitalWrite(in2_pin, LOW);
analogWrite(enable_pin, speed);
}
void reverse() {
digitalWrite(in1_pin, LOW);
digitalWrite(in2_pin, HIGH);
analogWrite(enable_pin, speed);
}
void stop() {
digitalWrite(in1_pin, LOW);
digitalWrite(in2_pin, LOW);
analogWrite(enable_pin, 0);
}
};
Motor motor_A(MOTOR_A_EN, MOTOR_A_IN1, MOTOR_A_IN2);
Motor motor_B(MOTOR_B_EN, MOTOR_B_IN1, MOTOR_B_IN2);
// buat objek servo forklift
Servo forklift;
// buat objek sensor warna
TCS3200 tcs3200(S0, S1, S2, S3, OUT);
void setup() {
// set pin untuk motor DC dan servo forklift ke kondisi awal
motor_A.stop();
motor_B.stop();
forklift.attach(FORKLIFT_PIN);
forklift.write(0);
// set frekuensi pengambilan data sensor warna
tcs3200.setFrequency(TCS3200::FREQUENCY_2KHZ);
// mulai serial communication
Serial.begin(9600);
}
void loop() {
// baca data dari sensor warna
int red = tcs3200.readRed();
int green = tcs3200.readGreen();
int blue = tcs3200.readBlue();
// tampilkan data ke serial monitor
Serial.print("Red: ");
Serial.print(red);
Serial.print(" Green: ");
Serial.print(green);
Serial.print(" Blue: ");
Serial.println(blue);
// cek apakah ada barang yang diangkut
if (red > red_threshold && green > green_threshold && blue > blue_threshold) {
// jika ada barang, angkat forklift
forklift.write(90);
delay(500);
// maju ke titik B
motor_A.forward();
motor_B.forward();
delay(3000);
// turunkan forklift
forklift.write(0);
delay(500);
// mundur ke titik A
motor_A.reverse();
motor_B.reverse();
delay(3000);
// hentikan motor DC
motor_A.stop();
motor_B.stop();
} else {
// jika tidak ada barang, maju ke titik B dan kembali ke titik A tanpa angkat forklift
motor_A.forward();
motor_B.forward();
delay(3000);
motor_A.reverse();
motor_B.reverse();
delay(3000);
motor_A.stop();
motor_B.stop();
}
}
/*
*/

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages