Buka Senin - Jumat jam 08.30 s/d jam 16.30 , Sabtu Jam 8.30 s/d jam 13.00 , Minggu tutup
  • Selamat Datang di Indomaker ❯ Silahkan pesan produk sesuai kebutuhan anda, kami siap melayani.
  • Selamat Datang di Indomaker ❯ Silahkan pesan produk sesuai kebutuhan anda, kami siap melayani.
Beranda » Blog » Tutorial Menggerakan Motor Servo sebagai Leher Robot dengan Raspberry Pi

Tutorial Menggerakan Motor Servo sebagai Leher Robot dengan Raspberry Pi

Diposting pada 19 September 2025 oleh indo maker / Dilihat: 70 kali / Kategori: , ,

Pada robot elektronik sering kali digunakan motor servo sebagai leher yang bisa bergerak, motor servo adalah perangkat elektromekanis yang dirancang menggunakan sistem kontrol jenis loop tertutup (servo) sebagai penggerak dalam sebuah rangkaian yang menghasilkan torsi dan kecepatan yang berdasarkan arus listrik dan tegangan yang ada.

Sederhananya motor servo ini perangkat listrik mandiri yang dapat mendorong, memutar objek dengan presisi tinggi. Jika ingin memutar suatu objek pada beberapa sudut atau jarak tertentu, maka bisa menggunakan motor servo. Dalam proyek kali ini, kita akan belajar cara menggerakkan motor servo untuk mensimulasikan gerakan leher robot, menggunakan Raspberry Pi.

Dengan memanfaatkan sinyal PWM dari GPIO Raspberry Pi, kita bisa mengatur posisi sudut motor servo secara presisi. Proyek ini cocok sebagai dasar untuk membuat robot yang bisa mengangguk, menoleh, atau bahkan mengekspresikan emosi lewat gerakan leher.

Alat dan Bahan yang Diperlukan

Untuk menjalankan proyek ini, berikut yang kamu butuhkan:

  • Raspberry Pi Trainer Kit v2
  • Motor Servo
  • Breadboard dan kabel jumper
  • Software:
    • MobaXterm (untuk remote terminal)
    • Notepad++ (untuk menulis skrip Python)

Wiring Rangkaian Motor Servo

Susun rangkaian dengan panduan seperti ini:

  • Pin merah ke VCC 5v
  • Pin cokelat ke GND
  • Pin jingga ke GPIO 13 dan 25

Wiring Rangkaian Motor Servo dan Raspberry Pi

Gambar 1. Wiring Rangkaian Motor Servo dan Raspberry Pi

Menulis Program Menggerakkan Motor Servo

Setelah semua komponen terpasang, buka Notepad++ dan buat file Python baru. Tulis kode berikut dan simpan file dengan nama servo.py :

import time
from gpiozero import Servo
from time import sleep

servo_angguk_pin = 25
servo_geleng_pin = 13

TITIK_NOL_ANGGUK = 0.95

rentang_angguk = 0.3
rentang_geleng = 1.0 # Nilai ini membuat gerakan menggeleng menjadi lebih luas

servo_angguk = Servo(servo_angguk_pin, min_pulse_width=0.5/1000, max_pulse_width=2.5/1000)
servo_geleng = Servo(servo_geleng_pin, min_pulse_width=0.5/1000, max_pulse_width=2.5/1000)

def gerak_halus(servo, posisi_mulai, posisi_akhir, durasi):

    langkah_halus = 200
    selisih_posisi = posisi_akhir - posisi_mulai
    jeda_waktu = durasi / langkah_halus
    
    for i in range(langkah_halus + 1):
        posisi_saat_ini = posisi_mulai + (i / langkah_halus) * selisih_posisi
        posisi_saat_ini = max(-1.0, min(1.0, posisi_saat_ini))
        servo.value = posisi_saat_ini
        sleep(jeda_waktu)

try:
    print("Mengatur kedua servo ke posisi awal...")
    servo_angguk.value = TITIK_NOL_ANGGUK
    servo_geleng.value = 0.0
    sleep(1) 

    print("Memulai gerakan mengangguk dan menggeleng...")
    
    while True:
        posisi_depan = TITIK_NOL_ANGGUK - rentang_angguk
        gerak_halus(servo_angguk, TITIK_NOL_ANGGUK, posisi_depan, 2.0)
        gerak_halus(servo_angguk, posisi_depan, TITIK_NOL_ANGGUK, 2.0)
        
        posisi_kanan = rentang_geleng # Menggunakan nilai 1.0
        posisi_kiri = -rentang_geleng # Menggunakan nilai -1.0
        
        gerak_halus(servo_geleng, 0.0, posisi_kanan, 1.5) 
        gerak_halus(servo_geleng, posisi_kanan, posisi_kiri, 3.0) 
        gerak_halus(servo_geleng, posisi_kiri, 0.0, 1.5) 
        
except KeyboardInterrupt:
    print("Program dihentikan.")
    servo_angguk.close()
    servo_geleng.close()

Penjelasan Kode

  • import time dan from gpiozero import Servo: Mengimpor library untuk kontrol waktu dan servo.
  • servo_angguk_pin = : Menentukan pin GPIO untuk masing-masing servo.
  • TITIK_NOL_ANGGUK = 0.95: Titik netral untuk servo angguk.
  • rentang_angguk = 0.3: Rentang gerak servo angguk
  • rentang_geleng = 1.0: Rentang maksimum servo geleng.
  • Servo(..., min_pulse_width=..., max_pulse_width=...): Mengatur lebar pulsa PWM agar kompatibel dengan jenis servo.
  • gerak_halus(): Fungsi untuk menggerakkan servo secara halus dengan interpolasi 200 langkah kecil.
  • servo_angguk.value = TITIK_NOL_ANGGUK: Mengatur servo angguk ke posisi awal.
  • servo_geleng.value = 0.0: Mengatur servo geleng ke posisi tengah.
  • while True: Program berjalan terus-menerus hingga dihentikan.
  • except KeyboardInterrupt: Program berhenti dengan aman saat ditekan Ctrl+C.
  • servo.close(): Menutup koneksi servo saat program dihentikan.

Apa yang Akan Terjadi dengan Motor Servo?

Hasil Percobaan Rangkaian Motor Servo dan Raspberry Pi Trainer KitGambar 2. Hasil Percobaan Rangkaian Motor Servo dan Raspberry Pi Trainer Kit

Saat program dijalankan, Raspberry Pi akan menggerakkan dua buah servo yang berperan sebagai leher robot. Servo pertama akan mengangguk perlahan, meniru gerakan kepala menunduk dan kembali tegak. Setelah itu, servo kedua akan menggeleng perlahan dari kanan ke kiri, lalu kembali ke tengah. Seluruh gerakan dibagi ke dalam banyak langkah kecil, Gerakan ini akan berlangsung terus-menerus selama program berjalan.

Bagikan ke

Tutorial Menggerakan Motor Servo sebagai Leher Robot dengan Raspberry Pi

Saat ini belum tersedia komentar.

Silahkan tulis komentar Anda

Tutorial Menggerakan Motor Servo sebagai Leher Robot dengan Raspberry Pi

Produk yang sangat tepat, pilihan bagus..!

Berhasil ditambahkan ke keranjang belanja
Lanjut Belanja
Checkout
Produk Quick Order

Pemesanan dapat langsung menghubungi kontak dibawah: