Skip to content

Membuat Lengan Robot (Robotic Arm) Berbasis Arduino dengan Kendali Joystick

Menjembatani Kendali Fisik dan Mekanik Lewat Proyek Lengan Robot

Lengan robot (robotic arm) adalah salah satu aplikasi paling menarik dalam dunia mekatronika dan otomasi industri. Dari pabrik perakitan mobil hingga ruang bedah medis, teknologi ini digunakan untuk memindahkan barang dengan tingkat presisi tinggi. Bagi pemula, proyek lengan robot berskala kecil adalah gerbang terbaik untuk memahami interaksi antara perangkat masukan analog dan aktuator fisik.

Pada proyek kali ini, kita akan merakit sebuah lengan robot 4 Degree of Freedom (4 DOF) sederhana. Lengan robot ini akan digerakkan oleh empat buah motor servo kecil (SG90) sebagai sendi mekanisnya, dan dikendalikan secara interaktif menggunakan dua buah modul joystick analog ganda. Mari kita sulap baris kode Arduino menjadi gerakan mekanis yang menakjubkan!


Komponen yang Diperlukan dan Estimasi Biaya

Komponen untuk proyek ini sangat mudah didapatkan dalam bentuk kit perakitan instan di berbagai toko online dengan total estimasi anggaran sekitar 180 ribu hingga 250 ribu rupiah:

  1. Arduino Uno atau Nano: Berfungsi memproses nilai input analog dari joystick dan mengubahnya menjadi sudut gerak servo (Estimasi: Rp45.000 – Rp60.000).
  2. Kit Akrilik Lengan Robot 4 DOF (termasuk 4 Pcs Servo SG90): Kerangka fisik lengan mekanis beserta sendi penggeraknya (Estimasi: Rp100.000 – Rp120.000).
  3. Modul Joystick Dual-Axis (2 Pcs): Sensor analog untuk mengontrol arah sumbu X dan Y pada sendi-sendi robot (Estimasi: Rp20.000).
  4. Sumber Daya Eksternal 5V (Minimal 2A): Penting! Arduino tidak kuat memasok arus untuk menghidupkan 4 servo sekaligus. Gunakan adaptor eksternal (Estimasi: Rp30.000).
  5. Breadboard & Kabel Jumper (Male to Female & Male to Male): Untuk menghubungkan jalur distribusi daya dan sinyal (Estimasi: Rp15.000).

Langkah-Langkah Perakitan dan Pembuatan Robot

Ikuti instruksi bertahap berikut untuk merakit lengan mekanik pintar Anda sendiri:

1. Perakitan Fisik Kerangka (Assembly)

Ikuti petunjuk manual bawaan dari kit akrilik lengan robot Anda. Pasang keempat motor servo SG90 pada posisinya masing-masing: satu sebagai pemutar poros bawah (Base), satu sebagai sendi lengan bawah (Shoulder), satu sebagai sendi lengan atas (Elbow), dan satu sebagai pencapit (Claw). Pastikan semua sekrup terpasang dengan kuat namun tidak menghambat putaran gir servo.

2. Pengabelan Komponen (Wiring)

Hubungkan komponen dengan skema kelistrikan berikut secara hati-hati:

  • Joystick 1 (Mengontrol Base & Shoulder): Hubungkan pin VCC ke 5V Arduino, GND ke GND. Hubungkan pin VRX ke pin Analog A0, dan VRY ke pin Analog A1.
  • Joystick 2 (Mengontrol Elbow & Claw): Hubungkan pin VCC ke 5V Arduino, GND ke GND. Hubungkan pin VRX ke pin Analog A2, dan VRY ke pin Analog A3.
  • Motor Servo (Sinyal): Hubungkan pin kabel oranye/kuning (Sinyal) masing-masing servo ke pin PWM Arduino: Base (Pin 3), Shoulder (Pin 5), Elbow (Pin 6), dan Claw (Pin 9).
  • Distribusi Daya (VCC & GND Servo): Hubungkan kabel merah (positif) keempat servo ke kutub positif (+) sumber daya eksternal 5V, dan kabel cokelat (negatif) ke kutub negatif (-) sumber daya eksternal. Sangat Penting: Hubungkan GND sumber daya eksternal 5V tersebut ke pin GND Arduino agar sinyal kontrol dapat mengalir dengan benar.

3. Penulisan Kode Program (Coding)

Tuliskan kode pemrograman di bawah ini menggunakan aplikasi Arduino IDE, lalu unggah (upload) ke papan Arduino Anda:

cpp\n#include \n\n// Deklarasi objek untuk masing-masing servo\nServo servoBase;\nServo servoShoulder;\nServo servoElbow;\nServo servoClaw;\n\n// Definisi Pin Input Analog Joystick\n#define JOY1_X A0\n#define JOY1_Y A1\n#define JOY2_X A2\n#define JOY2_Y A3\n\n// Variabel posisi sudut awal servo (90 derajat / posisi tengah)\nint angleBase = 90;\nint angleShoulder = 90;\nint angleElbow = 90;\nint angleClaw = 90;\n\nvoid setup() {\n // Hubungkan pin kontrol ke pin PWM Arduino\n servoBase.attach(3);\n servoShoulder.attach(5);\n servoElbow.attach(6);\n servoClaw.attach(9);\n}\n\nvoid loop() {\n // Membaca nilai analog joystick (0 sampai 1023)\n int valJoy1X = analogRead(JOY1_X);\n int valJoy1Y = analogRead(JOY1_Y);\n int valJoy2X = analogRead(JOY2_X);\n int valJoy2Y = analogRead(JOY2_Y);\n\n // Logika pergerakan Base (Joystick 1 Sumbu X)\n if (valJoy1X < 400 && angleBase > 0) angleBase–;\n else if (valJoy1X > 600 && angleBase < 180) angleBase++;\n\n // Logika pergerakan Shoulder (Joystick 1 Sumbu Y)\n if (valJoy1Y < 400 && angleShoulder > 10) angleShoulder–;\n else if (valJoy1Y > 600 && angleShoulder < 170) angleShoulder++;\n\n // Logika pergerakan Elbow (Joystick 2 Sumbu X)\n if (valJoy2X < 400 && angleElbow > 10) angleElbow–;\n else if (valJoy2X > 600 && angleElbow < 170) angleElbow++;\n\n // Logika pergerakan Claw (Joystick 2 Sumbu Y)\n if (valJoy2Y < 400 && angleClaw > 30) angleClaw–; // Batasi agar tidak menjepit terlalu keras\n else if (valJoy2Y > 600 && angleClaw < 150) angleClaw++;\n\n // Terapkan nilai sudut baru ke servo\n servoBase.write(angleBase);\n servoShoulder.write(angleShoulder);\n servoElbow.write(angleElbow);\n servoClaw.write(angleClaw);\n\n // Delay kecil untuk menghaluskan transisi gerakan\n delay(20);\n}\n


Kesimpulan

Proyek lengan robot terkendali joystick ini memberikan pemahaman berharga mengenai manipulasi variabel analog menjadi gerakan fisik yang presisi. Kunci kesuksesan proyek ini terletak pada manajemen daya eksternal servo yang stabil dan penyaringan batas sudut gerak agar komponen mekanis akrilik tidak patah akibat pemaksaan putaran motor.