in Klinik

Raspberry Pi 2 GPIO Servo

Pindah dari LED ke Servo kali ini saya ingin menjajal bagaimana mengontrol servo dengan Raspberry Pi 2. Nantinya bisa diaplikasikan untuk membuat RC Car, kaki robot atau yang lain.

Perlengkapan yang diperlukan, selain raspi:

  • Servo, pakai GWS S03N STD seharga Rp154ribu.
Servo

Servo

Servo memiliki 3 kabel, dalam kasus GWS S03N STD berwarna cokelat, merah dan merah lebih terang, menurut keterangan di sini, begini aturannya:

  1. Kabel gelap (cokelat, hitam) negatif.
  2. Kabel terang (merah), yang di tengah, selalu positif.
  3. Kabel lebih terang (merah terang atau putih) untuk sinyal.

Servo yang digunakan adalah servo yang umum ditemukan, bergerak 180°. Cara mengendalikannya adalah dengan mengirim Pulse-width Modulation (PWM) melalui kabel sinyal. Sudut putaran (0°, 90°, 180°) motor ditentukan oleh  lebar pulsa yang diterima.

  1. Lebar 1ms (miliseconds) atau < 1,5ms akan memutar servo ke sudut (ke kiri).
  2. Lebar 1,5ms menghasilkan sudut 90°.
  3. Lebar 2ms atau > 1,5ms menjadikan posisi servo ke 180° (ke kanan).
Servo PWM

Servo PWM

Untuk mempertahankan posisinya, servo membutuhkan sinyal diulang tiap 20ms. Jika terdapat sinyal HIGH selama 1ms maka posisi servo akan berada di sudut , demikian seterusnya untuk 1,5ms dan 2ms. Python script kita akan menggunakan frekuensi 50Hz, alternatif lain yang biasa digunakan adalah 100Hz.

Dengan frekuensi (f) 50Hz maka periode (T) yang dihasilkan adalah:

Period

Period

Sehingga periode (T) = 1/50 = 0,02seconds atau 20ms, tepat sesuai dengan kebutuhan servo. Pada raspi kita tidak menggunakan pulse width tapi Duty-Cycle dengan rumusan.

Duty-Cycle = Pulse width/Period

Period = 1/frequency

Duty-Cycle = Pulse width * frequency

Jika pulse width sebesar 1ms dengan frekuensi 50 Hz  maka Duty-Cycle yang dibutuhkan adalah:

Duty-Cycle = o,001 * 50 = 0,05 = 5%

Ilustrasi perhitungan selengkapnya untuk sudut , 90° dan 180° sebagai berikut.

Sudut Pulse Width frequency Duty-Cycle
0,001 50 5%
90° 0,0015 50 7,5%
180° 0,002 50 10%
  • Resistor, 1KΩ untuk mengamankan raspi.
Resistor

Resistor

  • Baterai AA, 4 buah biar kuat gerakin servo yang membutuhkan tenaga 5V 1A.
Baterai AA

Baterai AA

Jika ingin lebih rapi, 4 baterai AA dapat dikemas dalam boks, seharga Rp12ribuan.

Boks Baterai

Boks Baterai

Jumper wire

Jumper wire

  • Dan tentu saja tak ketinggalan, breadboard. Agar tak payah menyolder.
Breadboard

Breadboard

Diagram Rangkaian:

Diagram Rangkaian

Diagram Rangkaian

Arus positif dari baterai AA dialirkan ke servo (kabel tengah), dari servo kabel cokelat (negatif) dialirkan ke pin GND dan baterai AA. Sedang kabel terang (sinyal) servo dihubungkan ke resistor kemudian ke pin no 7 pada raspi.

Python script:

Hasilnya.

Seperti biasa, tak terlalu sukar karena memang hanya fungsi dasar yang saya kerjakan. Hahahaha.

Salam.

Lebih lanjut:

http://www.rcpowers.com/community/threads/help-needed-with-servo-wire-polarity.12494/

http://digiwarestore.com/en/servo/gws-servo-s03n-std-f-713084.html

http://www.toptechboy.com/raspberry-pi/raspberry-pi-lesson-28-controlling-a-servo-on-raspberry-pi-with-python/

https://www.rhydolabz.com/wiki/?p=8271

http://razzpisampler.oreilly.com/ch05.html

http://trikueni-desain-sistem.blogspot.co.id/2014/03/Pengertian-Motor-Servo.html

http://www.geyosoft.com/2014/pwm-pulse-width-modulation

Write a Comment

Comment

Webmentions

  • Raspberry Pi 2 16×2 LCD – aansubarkah 27 September, 2017

    […] LED dan Servo, sekarang saya coba koneksi Raspberry Pi 2 dengan 16×2 […]