Nah pada postingan kali ini ane mau ngeshare nih buat temen2 yg mungkin saat ini pengen tahu tentang apa itu motor servo dan bagaimana pemrogramannya… ni ane jelasin sedikit yg ane tahu ya… 😀
Nah dipasaran itu terdapat dua jenis tipe motor servo yaitu servo standard dan servo rotation (continuous). Dimana biasanya untuk tipe standar hanya dapat melakukan pergerakan sebesar 180° sedangkan untuk tipe continuous dapat melakukan rotasi atau 360°. Contoh gambar di bawah ini adalah Servo dari Hitech dan dalemannya (hush saru c*k… hehehe ^_^)
Nah didalam motor servo tersebut terdapat motor DC, komposisi gearbox dan rangkaian kontrolernya. Rangkaian kontrol pada motor servo digunakan untuk mengendalikan motor DC yang ada pada motor servo tersebut, oleh sebab itu untuk mengendalikan motor servo cukup hanya dengan cara memberikan pulsa-pulsa tertentu kepada rangakain kontrolernya. Nah kalo Gearbox pada motor servo berfungsi untuk meningkatkan torsi. Dikarenakan bentuknya yang compact motor servo sering digunakan di dunia robotika, aeromodeling, car remote controler dsb.
hmmm cuma segitu teori yg ane tahu… langsung deh selanjutnya ane jelasin tentang pin pada motor servo yaitu mempunyai 3 buah pin yang terdiri dari VCC, GND dan SIGNAL/KONTROL. Berikut adalah konfigurasi pin motor servo berdasarkan merk.
Hehehe sama aja ya… Cuma beda warna doank… buat yg suka warna putih beli aja futaba begitu juga buat yg suka ma warna kuning beli ja hitec (ngaco…. :D)
Nah selanjutnya yang temen2 harus fahami lebih jauh lagi ato yg paling penting adalah mengetahui timing penggunaan servo tersebut (biasanya dijelasin di datasheetnya). Secara umum untuk mengakses motor servo tipe standard adalah dengan cara memberikan pulsa high selama 1,5 ms dan mengulangnya setiap 20 ms, maka posisi servo akan berada ditengah atau netral (0°). Untuk pulsa 1 ms maka akan bergerak berkebalikan arah jarum jam dengan sudut -90°. Dan pulsa high selama 2 ms akan bergerak searah jarum jam sebesar 90°. Untuk lebih jelasnya perhatikan gambar berikut ini.
Untuk servo tipe continuous berbeda timing pengontrolannya… ya gitu deh teori timingnya hehehee 😀 Karakteristik lamanya pulsa high yang diberikan untuk mengatur motor servo tergantung dari merk servo yang kita gunakan dengan mengacu kepada datasheet. So jangan terpaku pada teori timming diatas. Itu cuma buat pemahaman saja temen2… untuk lebih akurat dan presisinya temen dapat melakukannya secara ekperiment berlandaskan teori tersebut dan melihat spesifikasi servo temen2 pada datasheetnya. Good luck selamat berekperiment ^_^
Capek ya… baca tulisan diatas heheee maaf ya ane gak to do point alias muter2 dulu ke teorinya… maksud ane supaya temen2 dapat lebih faham tentang apa itu motor servo. Oke deh selanjutnya kita coba untuk memprogram motor servo dengan BASCOM AVR (hush ini bukan temen nya ember bukan juga bakso complit wkwkwkwk :D) oiya untuk ekperiment servo kali ini ane di bantu software PROTEUS so gak perlu punya servo dulu buat mrogramnya cukup maen simulasi aja dan baru dari hasil simulasi ini ane terapkan ke REAL WORLD 😀 nah ni dia susunan komponenya pada PROTEUS:
Kalo di running hasilnya kayak gini temen2:
Nah yg ane lingkaran merah itu adalah kondisi netral dari servo… di simulasi aja susah untuk presisi pada sudut 0 derajat ada error sebesar +3 derajat (ya masih kecil sih dan biasa ditolerir ^_^), nah ni dia potongan program untuk posisi netral.
Pada pemrograman servo menggunakan BASCOM AVR terlebih dahulu temen2 konfigurasi jumlah servo yang temen2 ingin gunakan dan status dari port servo temen2 diset sebagai output, contohnya temen2 gunakan 3 servo (maksimum yg dapat digunakan adalah 16 servo). Nah kalo untuk reload penjelasanya adalah “The reload value specifies the interval of the timer in uS” sebagai contoh reload temen set pada nilai 10 itu artinya “servos with 10 uS resolution(steps)”. Nah yang terpenting terakhir temen2 jangan lupa untuk mengaktifkan interrupt timernya cukup dengan menuliskan “Enable Interrupts”
Berikut ini contoh program dengan kondisi:
- Servo 1 berputar ke kiri dengan sudut -90 derajat
- Servo 2 berputar ke kanan dengan sudut +90 derajat
- Servo 3 meneng ae hehehehehee ^_^
Dan ni dia potongan programmnya :
Nah untuk ekperiment temen2 semua nih… coba deh lakukan perubahan nilai pada reload dan nilai pada step nya lalu amati apa yg terjadi… nanti temen2 akan memahaminya. Selamat mencoba ^_^
Posted by BOWO on Februari 8, 2012 at 6:33 pm
salam kenal mas fahmi. mau tanya kalau untuk menggerakan 2 servo dg kecepatan sudut berbeda tapi eksekusinya berjalan pada waktu yang sama gimana ya mas???
contoh:
for p=104 to 150 step 5
servo(1)=p
wait T1
next
for p=104 to 150 step 3
servo(2)=p
wait T2
next
end
kalau untuk program diatas nanti resultnya yang dieksekusi adalah gerak servo1 dulu baru servo2(eksekusi program secara seri). saya kepinginya dua servo itu berputar pada waktu start bersamaan tapi beda kecepatan(eksekusi pararel).Mohon pencerahan sang master hehehehe. trims
Posted by Fahmizal on Februari 20, 2012 at 8:13 pm
pake tambahan SSC mas… serial servo controler…nah nanti mengakses servonya pake alamat…nah itu bisa berbarengan 😀
Posted by dash racer on Februari 26, 2012 at 5:15 am
bisa kasi contoh pengirimAn perintahnya menggunalan komunikasi serial lwt bascom?
Posted by mirzadanu on Februari 9, 2012 at 7:03 pm
monggo silahkan kunjungi juga http://goes-open.blogspot.com/2012/02/akses-eeprom-internal-atmega32-dengan.html
Posted by Fahmizal on Februari 20, 2012 at 8:14 pm
sip-sip ^_^
Posted by safri on Februari 14, 2012 at 1:56 pm
mas, gimana caranya kalau mau akses port I2c menggunakan bascom untuk mengontrol servo kontroller????
di sini saya menggunakan 18 servo. sehingga harus menggunakan servo kontroller. tetapi modul servo kontrollernya menggunakan interface I2c untuk interface dengan microkontroller masternya.
Posted by reins on Juni 9, 2012 at 8:22 am
mas saya mau nxa.. saya mau menghidupkan kipas menggunakan mikro dan sensor suhu ni dia programmnya ‘————————–
‘Pengatur Kecepatan Motor DC
‘————————–
$regfile = “m16def.dat”
‘Jika menggunakan ATMega16 maka diganti dengan “m16.dat”
$crystal = 12000000
‘————————–SET_PENGATURAN PUTARAN
Config Timer1 = Pwm , Pwm = 8 , Compare A Pwm = Clear Up , Prescale = 1024
Config Lcdpin = Pin , Db4 = Portc.5 , Db5 = Portc.4 , Db6 = Portc.3 , Db7 = Portc.2 , E = Portc.6 , Rs = Portc.7 ‘Pin LCD yang dihubungkan ke mikro
Config Lcd = 16 * 2
Compare1a = 100
Compare1b = 10
‘————————–SET_TOMBOL
Pwm1a = 200
‘———–
Ddrb.0 = 0
Portb.0 = 1
Ddrb.1 = 0
Portb.1 = 1
‘————————–
Config Adc = Single , Prescaler = Auto , Reference = Avcc
Start Adc
Dim Putar As Integer
Dim Dataadc As Word
Dim Datasuhu As Single
Const Vreff = 5
Relay Alias Porta.1
Inisialisasi:
Gosub Init_devices
‘========================================================
‘ “”””MULAI””””
‘========================================================
Putar = 1
Do
‘—————————-
Dataadc = Getadc(2)
Datasuhu = Dataadc / 1024
Datasuhu = Datasuhu * Vreff
Datasuhu = Datasuhu * 100
Locate 1 , 1
Lcd “suhu:” ; Fusing(datasuhu , “# . ##”)
Wait 1
If Datasuhu >= 30 Then
Waitms 200
Putar = Putar + 1
End If
If Datasuhu 7 Then
Putar = 1
End If
If Putar < 1 Then
Putar = 7
End If
'—————————
If Putar = 7 Then
Pwm1a = 25
End If
If Putar = 6 Then
Pwm1a = 50
End If
If Putar = 5 Then
Pwm1a = 70
End If
If Putar = 4 Then
Pwm1a = 90
End If
If Putar = 3 Then
Pwm1a = 150
End If
If Putar = 2 Then
Pwm1a = 200
End If
Waitms 300
Loop
Init_devices:
Ddra = &B00000010
Relay = 1
Return
'————————— end , tapi saat saya coba dia mutarnya gak sesuai suhunya… dia mutar seenaknya saja.. saya mau bt kipasnya pelan dan cepat.. tapi gak bisa.. mohon bantuannya makasih.
Posted by dedi-smk on Januari 2, 2013 at 5:20 pm
aku mah nggak ngerti sama beginian 😀
Posted by song on April 30, 2013 at 12:51 pm
mas mau nanya ni…kalau program motor servo continuous itu timing chart-nya gimana? sebenarnya apa bisa si servo continue itu di program kalau misal udah 360 drajat trus berhenti?
Posted by R Zafran Viro on Oktober 2, 2013 at 1:20 am
mas minta source code bascom nya donk ?
Posted by Service Servo on Februari 9, 2015 at 3:09 pm
Perkenalkan mas bro, kalau kami melayani dan menerima service servo , namun layanan service servo kami untuk skala pabrik atau mesin industri yang menggunakan servo, kalau ada yang tanya unutk service servo kelas hobiest bsa kami sarankan ke mas bro tidak?
Posted by Ngr on Agustus 26, 2015 at 7:25 pm
Mas fahmi,,saya salut banget dgn mas fahmi mau berbagi untuk sesama.itu mulia sekali mas,,,saya pemula dan blum bgtu paham dgn bascom dan saya mau belajar.apa mas fahmi jual ebook ttg bascom yg ada contoh beserta penjelasannya,,krn bnyk saya liat kata kata ysng anehh,,hee hee tapi saya gak ngerti maksudnya,,bisa dbantu mas, email saya mas. mayura280783marta@gmail.com ,trimksh mas