Archive for the ‘Motor’ Category

AN-0197 Dasar Robotika 2 – Motor Servo

Saturday, May 24th, 2014

Berbeda dengan motor DC, motor servo tidak bergerak kontinyu melainkan hanya menuju ke sudut tertentu dan berhenti di sudut tersebut. Motor ini digunakan untuk aplikasi gerakan-gerakan sudut dari robot contohnya gerakan lengan, gripper menjepit benda atau gerakan kaki melangkah.

Gambar 1 menunjukkan motor servo yang sering digunakan pada aplikasi robotik.

Motor Servo

Motor servo ini terdiri dari beberapa bagian sebagai berikut:

Jangkar untuk menghubungkan motor servo dengan obyek-obyek yang akan digerakkan.

Lubang Jangkar bagian ini berfungsi untuk menempatkan sekrup yang mengaitkan jangkar ke obyek-obyek yang akan digerakkan. Pada gambar 14 tampak lubang jangkar dihubungkan ke obyek dengan sekrup untuk gerakan memutar.

Lubang Sekrup yang berfungsi untuk mengaitkan motor servo dengan tubuh robot

Housing Servo, di dalam bagian ini terdapat motor DC, gearbox dan rangkaian pengatur sudut servo

Kabel, kabel yang menghubungkan rangkaian servo dengan pengendali servo

Konektor, konektor 3 pin yang terdiri dari input tegangan positif (+), input tegangan negatif (GND) dan input pulsa (Signal) dengan konfigurasi seperti pada gambar 4

jangkar motor servo

Gambar 2 Pemasangan obyek pada jangkar untuk gerakan memutar

motor servo pengait
Gambar 3 Pemasangan obyek untuk gerakan mengait

Pin Out Motor Servo
Gambar 4. Pin Out Motor Servo

Tidak seperti pada Motor DC, untuk mengendalikan motor servo harus dilakukan dengan terlebih dahulu melalui rangkaian pengatur sudut di mana rangkaian ini membutuhkan masukan berupa pulsa. Pada umumnya pulsa servo berada di antara 1 hingga 2 mS di mana 1.5 mS adalah merupakan titik tengahnya seperti tampak pada gambar 5

pulsa servo

Gambar 5. Pulsa Servo

Parameter-parameter yang perlu dipertimbangkan dalam memilih motor servo adalah:

  • Tegangan operasi: Tegangan sumber dari motor servo, contohnya pada HS-645MG adalah 4.8V – 6V.
  • Operating Speed atau kecepatan operasi: Merupakan kecepatan servo untuk bergerak menuju sudut tertentu. Contoh pada HS-645MG adalah 0.24 detik untuk menuju sudut 60 ?C pada tegangan 4.8V dan tanpa beban
  • Stall Torque adalah torsi paling maksimum yang dapat dilakukan oleh motor servo ini. Kondisi ini tidak boleh berlangsung terlalu lama. Contoh pada HS-645MG adalah 9.6 kg.cm yang artinya adalah menarik beban 9.6 kg dengan jangkar sepanjang 1 cm.
  • Current Drain adalah arus yang digunakan motor servo. Contoh pada HS-645MG 9.8mA saat standby dan 450mA saat beroperasi / bergerak tanpa beban
  • Dead Band Width adalah akurasi servo dalam bergerak. Gerakan servo baru terjadi apabila perubahan pulsa lebih besar ari 6 uS

Pulsa motor servo biasanya dibangkitkan oleh komponen cerdas seperti mikrokontroler atau modul elektronik Delta Servo Controller. Modul Delta Servo Controller berfungsi untuk membangkitkan pulsa-pulsa untuk mengendalikan motor servo dari PC. Dengan bantuan software PC Servo Controller maka enam motor Servo dapat dikendalikan dengan menggeser-geser panel yang ada pada software tersebut.

Gambar 6. PC Servo Controller

Paulus Andi Nalwan, ST Delta Electronic

Hardcopy

Dapatkan hardcopy artikel ini di

Dapatkan versi hardcopy disertai cara-cara membuat robot di sini

Modul Pendukung
- DSR-08 Delta Servo Controller

AN-0193 Dasar Robotika 1 – Motor DC

Sunday, March 24th, 2013

Pada sebuah robot, motor ini merupakan bagian penggerak utama di mana hampir setiap robot pasti selalu menggunakan motor DC. Kecuali beberapa robot yang menggunakan pneumatic, muscle wire atau motor AC.

Motor DC terdiri dari sebuah magnet permanen dengan dua kutub dan kumparan, cincin belah yang berfungsi sebagai komutator (pemutus arus)

  1. Arus mengalir dari sisi kiri cincin belah ke sisi kanan. Arus ini akan dilanjutkan ke kumparan yang terkait pada cincin belah
  2. Arus mengalir dalam kumparan menimbulkan medan magnet dan membentuk kutub-kutub magnet pada kumparan
  3. Kutub magnet yang sama dengan kutub magnet permanen akan saling tolak menolak dan kumparan akan bergerak memutar hingga kumparan berada pada posisi di mana kedua kutubnya berbeda dengan kutub magnet permanen.

Fase 1 Motor DC

Fase 2 Motor DC

  1. Perputaran kumparan yang terkait pada cincin belah akan mengakibatkan perubahan polaritas pada kumparan karena sikat-sikat (brush) yang dialiri listrik terhubung pada sisi cincin belah yang berbeda
  2. Perubahan polaritas kumparan juga mengakibatkan perubahan kutub pada kumparan sehingga kumparan kembali bergerak memutar.
  3. Proses tersebut terjadi berulang-ulang sehingga kumparan akan berputar secara kontinyu selama aliran arus terjadi pada kedua kutub sikat.

Arah putaran motor DC dapat diubah dengan mengubah polaritas aliran arus yang terhubung ke sikat-sikatnya. Sedangkan kecepatan putar motor tergantung dari berapa besar arus yang mengalir. Paulus Andi Nalwan, Delta Electronic

Hardcopy

Dapatkan versi hardcopy disertai cara-cara membuat robot di sini

Buku Robot Dasar

Artikel-artikel pendukung

AN0182 Membangun Sistem Mekanik Pada Robot KRCI kategori beroda

AN0181 Membangun Rangkaian Elektronik Robot Beroda

AN0043 Pengaturan Arah Motor DC

Bahan-bahan pendukung

AN0182 Membangun Sistem Mekanik Pada Robot KRCI kategori beroda

Friday, February 3rd, 2012

Pada Robot KRCI kategori beroda, motor adalah merupakan bagian penggerak robot. Dalam hal ini motor yang digunakan adalah motor DC. Untuk memperoleh torsi yang kuat maka perlu ditambahkan gearbox pada motor tersebut. Gear berfungsi memperkuat torsi sesuai dengan perbandingan gigi-giginya.

Rasio gear

Dengan rasio 2:1 maka torsi motor Robot KRCI akan diperkuat dua kali lipat namun kecepatan akan turun juga dua kali.

Berikut ini adalah jenis-jenis gear yang digunakan pada sebuah motor

  • Worm gear adalah gigi yang berbentuk ulir yang berfungsi mengubah arah putaran dari horizontal menjadi vertical
  • Transfer Gear adalah gigi yang berfungsi untuk konversi antara gigi dengan jumlah banyak ke jumlah kecil ataupun sebaliknya.
  • Gear Shaft adalah gigi yang terhubung langsung dengan as atau sumbu motor

Arduino DC Motor dengan torsi 5.5 kg dan kecepatan 240 RPM dalam hal ini yang kita gunakan sebagai motor penggerak robot.

Arduino DC Motor

Agar diperoleh torsi pada Robot KRCI yang kuat dalam bergerak dapat digunakan sistem 4 wheel drive pada mekanik robot beroda yaitu dengan menggunakan 4 buah motor dc yang terpasang di setiap sudut dari Robot KRCI seperti pada gambar berikut.

4 wheel drive robot

Robot KRCI dapat bergerak berputar di tempat dengan menggerakkan motor di sisi kiri dan kanan secara berlawanan. Robot KRCI juga dapat berbelok dengan membuat perbedaan kecepatan pada motor di kedua sisi. Contohnya agar robot dapat berbelok ke kanan maka motor di sisi kiri diputar lebih lambat dan sisi sebelah kanan lebih cepat. Ketajaman belokan dapat diatur dengan besarnya perbedaan kecepatan. Apabila perbedaan kecepatan semakin besar maka belokan akan semakin tajam.

Robo Kits Body

Pengaturan kecepatan pada motor kita lakukan dengan menggunakan sistem PWM (Pulse Width Modulation) yaitu pengaturan lebar pulsa yang diberikan pada motor. Semakin lebar pulsa maka semakin cepat pula motor berputar.

Pulse Width Modulation

T On / Periode x 100 % = Duty Cycle. Semakin besar pulsa ON maka akan semakin besar pula duty cyclenya. Kecepatan maksimum motor akan diperoleh dengan duty cycle 100%.

Sinyal yang digambarkan di atas adalah merupakan kondisi tegangan pada output mikrokontroler yang diinputkanke rangkaian pengendali kecepatan yang dibahas pada AN0181 (rangkaian gate 74ls02). Rangkaian ini bersifat aktif low, oleh karena itu T ON di sini adalah T saat berlogika low.

Pada aplikasi ini kami sediakan pengaturan PWM dengan 8 buah tingkat kecepatan, oleh karena itu duty cycle yang ditimbulkan adalah 12.5%, 25%, 37.5%, 50%, 62.5%, 75%, 87.5% dan 100%. Hal ini dilakukan dengan menggunakan menggeser variabel 8 bit ke I/O mikrokontroler. Contoh variabel 00000000b akan menghasilkan duty cycle 100% karena semua logika yang digeser adalah logika low. Sedangkan variabel 00001111b akan menghasilkan 50% karena perbandingan logika high dan low yang sama.

Potongan Program Pembangkit PWM 8 step pada dua buah motor pada Robot KRCI

PWMMotor:
Mov    A,PWMValueMOtor1    ;PWM Motor 1
Rl    A            ;
Mov     C,ACC0                   ;
Mov    LeftEnable,C        ;
Mov    PWMValueMotor1,A    ;
Mov    A,PWMValueMotor1+1    ;
Rlc    A            ;
Mov    PWMValueMotor1+1,A    ;
Mov    A,PWMValueMotor1    ;
Mov     ACC0,C                   ;
Mov    PWMValueMotor1,A    ;

Mov    A,PWMValueMOtor2    ;PWM Motor 2
Rl    A            ;
Mov     C,ACC0                   ;
Mov    RightEnable,C        ;
Mov    PWMValueMotor2,A    ;
Mov    A,PWMValueMotor2+1    ;
Rlc    A            ;
Mov    PWMValueMotor2+1,A    ;
Mov    A,PWMValueMotor2    ;
Mov     ACC0,C                   ;
Mov    PWMValueMotor2,A    ;
Ret

Pada listing di atas, nilai variabel terletak di PWMValueMotor1 dan PWMValueMotor 2 untuk motor 2.

Agar robot dapat bergerak dengan jarak tertentu ada dua macam cara yang digunakan, yaitu dengan menghitung durasi gerakan atau dengan menghitung putaran roda. Perhitungan durasi atau delay adalah metode yang paling sederhana, namun metode ini memiliki kelemahan apabila sumber daya mengalami penurunan. Contoh saat battery robot turun maka kecepatan robot akan menurun sehingga dengan perhitungan delay yang sama maka jarak yang ditempuh akan berbeda.

Cara perhitungan putaran roda adalah cara yang paling efektif dan dibutuhkan tambahan sensor yang disebut encoder. Rangkaian ini dibangun oleh optocoupler MOC70T3 seperti yang dibahas pada AN0181. Perhitungan gerakan dilihat dari berapa banyak piringan encoder menghalangi cahaya pada encoder saat motor berputar.

Potongan Program Encoder pada Robot KRCI

CekEncoder1:
Mov    A,FlagEncoder

Jb    ACC0,CekEncode1Low
Jnb     DetectEncoder1,NoFlagEncode

Setb    ACC0
Mov    FlagEncoder,A
Lcall    IncCounterEncoder1

Ret

CekEncode1Low:
Jb      DetectEncoder1,NoFlagEncode

Clr    ACC0
Mov    FlagEncoder,A

NoFlagEncode:
Ret

IncCounterEncoder1:
Inc    CounterEncoder1
Mov    A,CounterEncoder1
Jnz    Nox1
Inc    CounterEncoder1+1
Nox1:
Ret

Potongan program di atas adalah merupakan potongan program pendeteksi encoder yang dilakukan dengan mendeteksi kondisi port mikrokontroler yang terhubung ke encoder. Setiap adanya pulsa akan menambah nilai pada variable 16 bit counterencoder1. Potongan program ini akan lebih efektif ditempatkan pada timer interrupt yang aktif sehingga kita tidak perlu bingung kapan program ini dijalankan.

Berikut adalah contoh program untuk menggerakkan robot dengan kecepatan tertentu dan berhenti setelah encoder mencapai posisi tertentu pula.

Main Program

Start:
Mov     A,#4                    ;Set kecepatan 50%
Lcall   SetKecepatan            ;
Lcall   StartPWM                ;

Mov     EncoderVCompare,#50     ;Set nilai komparasi encoder
Mov     EncoderVCompare+1,#0    ;
Mov     R7,#6
Lcall   RobotPutarKananEncoder  ;Gerakkan robot putar kanan
TungguEncoder:
Mov     A,TaskTimer             ;Tunggu encoder sesuai dengan nilai
Jb      ACC0,TungguEncoder      ;komparasi
Ljmp    $

Nilai kecepatan diisikan pada R7 adalah 6 yaitu 75% duty cycle sedangkan variabel komparasi encoder (EncoderVCompare) adalah 0050. Robot akan berputar ke kanan dengan 75%  kecepatan hingga garis encoder terpotong sebanyak 50 kali dan robot akan berhenti.

Di dalam include file motor.asm juga terdapat prosedur2 atau subroutine untuk menggerakkan robot maju, mundur, berputar maupun berbelok. Program-program ini dapat didownload di

Roboencd.zip untuk versi assembler

Robotc.zip untuk versi C

Sedangkan program assemblernya dapat didownload di asm51.zip

Paulus Andi Nalwan, Delta Electronic

AN0181 Membangun Rangkaian Elektronik Robot Beroda

Tuesday, January 31st, 2012

Robot beroda adalah merupakan robot yang paling sederhana karena hanya menggunakan dua motor DC saja untuk mengatur gerakan. Robot ini termasuk kategori vehicle yang bergerak dengan menggunakan roda. Kadang-kadang untuk memperkuat torsi digunakan empat buah motor yaitu sistem 4 wheel drive. Namun untuk pengatur gerakannya tetap hanya dibutuhkan dua, karena motor depan dan motor belakang untuk setiap sisi terhubung paralel.

Agar robot dapat bergerak maju, mundur, berbelok maupun berputar dilakukan dengan permainan arah putar dan kecepatan motor yang akan dibahas lebih detail di bagian membangun bagian mekanik. Pengaturan arah putar pada motor DC dilakukan dengan mengalirkan arus pada motor tersebut di mana arah arus akan menentukan arah putaran motor.

Pengaturan Arah Motor berdasar Aliran Arus

Agar arah arus dapat mengalir bergantian maka dibutuhkan dua buah saklar SPDT seperti pada gambar berikut.

Pengaturan Aliran Arus Motor

Pada sebuah robot, pengaturan motor dilakukan oleh otak robot yaitu mikrokontroler. Agar pengaturan aliran arus dapat dilakukan oleh mikrokontroler maka saklar SPDT S1 dan S2 digantikan dengan rangkaian transistor yang disebut H-Bridge. Rangkaian ini sebetulnya dapat juga digantikan dengan IC seperti L293 atau LMD18200T namun dalam hal ini penulis lebih cenderung menggunakan transistor. Dengan penggunaan transistor akan lebih mudah bagi kita untuk meningkatkan arus apabila motor yang digunakan untuk aplikasi-aplikasi yang lebih berat. Cukup dengan mengganti transistor dengan transistor yang memiliki arus kolektor lebih besar maka rangkaian H-Bridge akan dapat mengendalikan motor yang lebih besar pula.

Rangkaian H-BridgeLebih detail mengenai pengaturan arah motor DC ini dapat dilihat di link berikut. Pada rangkaian H-Bridge tidak diperkenankan terjadi dua buah transistor di sisi yang sama aktif bersamaan, kondisi ini disebut kondisi inhibit. Apabila terjadi kondisi tersebut maka V+ dan Ground akan terhubung singkat dan dapat merusak rangkaian. Untuk mencegah terjadinya kondisi tersebut maka ditambahkan rangkaian gate yang dibangun dengan 74LS02 seperti yang tampak pada gambar berikut. Dengan rangkaian tersebut, DRV0 dan DRV1 tidak mungkin berkondisi logika 1 secara bersamaan.

Rangkaian Gate 74LS02

Dalam hal ini P1.3 berfungsi sebagai pengatur aktivasi motor. Saat P1.3 logika 1 maka motor akan OFF apapun kondisi P1.2 sedangkan saat P1.3 logika 0 maka motor akan ON dan P1.2 berfungsi sebagai pengatur arah (Lihat tabel kebenaran di gambar di atas)

Melalui rangkaian ini, mikrokontroler juga dapat mengatur kecepatan putar motor dengan dengan memberikan logika 0 dan logika 1 secara periodik dengan durasi tertentu. Semakin durasi logika 0 dibanding logika 1 maka akan semakin cepat putaran motor. Teknik ini adalah teknik PWM (Pulse Width Modulation) yang akan kita bahas lebih lanjut.

Kelemahan motor DC adalah kesulitan dalam menentukan posisi, sudah berapa jauh motor tersebut berputar? Untuk mengetahui hal ini ditempatkan sebuah encoder dan rangkaian opto interrupt yang dibangun dengan sensor  MOC70T3. Encoder akan memotong aliran cahaya infrared pada celah yang ada di MOC70T3 sehingga sensor ini akan mengeluarkan pulsa-pulsa sebagai indikasi terpotong dan tidaknya cahaya.

Opto Interrupt MOC70T3

Output dari Opto interrupt ini akan berupa pulsa-pulsa yang dapat dihitung oleh mikrokontroler.

Otak dari sebuah robot adalah bagian pemroses atau mikrokontroler dan bagian pengingat atau memori. Berikut adalah rangkaian sistem mikrokontroler yang dilengkapi memori I2C AT24C08. Rangkaian juga dilengkapi jumper yang dapat mengubah reset dari logika 1 menjadi logika 0 sehingga sistem mikrokontroler selain digunakan untuk AT89S51 juga dapat digunakan untuk mikrokontroler ATMega8515

Sistem Mikrokontroler

Skema Mikrokontroler dan Driver Motor Robot

Pada skema tersebut terdapat JP5 yaitu Port UART yang dapat menghubungkan robot ke modul lain yang menggunakan UART seperti Subsystem DST Navi yang merupakan sub system yang menangani 8 buah sensor jarak inframerah GP2D12 / GP2Y0A21, 8 buah sensor jarak SRF05 serta sebuah compass cmps10 / cmps03, atau ke Modul Servo Control seperti DSR-08 dan lain-lain.

JP12 merupakan port dengan 8 I/O yang dapat difungsikan secara bebas oleh pengguna, seperti mengaktifkan relay kipas, menghitung pulsa output UVTRON dan lain-lain.

JP8, JP9, JP10 dan JP11 yang ditempatkan pada 4 sisi robot pada Delta Robo Kits berfungsi sebagai port input untuk mendeteksi garis yang dapat dihubungkan pada Modul Single Line Follower seperti DSF-01

Anda dapat membeli komponen-komponen dari skema tersebut dengan mengirimkan file berikut ke email kami paulus@delta-electronic.com atau anda dapat membeli rangkaian yang telah siap pakai dengan PCB dan dilengkapi downloader serta kabel USB dan CD Software di sini

Paulus Andi Nalwan, Delta Electronic

Aplikasi kendali servo dengan DSR-30

Tuesday, November 11th, 2008

AN0141

Berbeda dengan motor DC dan motor Stepper, motor servo adalah sebuah motor dengan sistem umpan balik tertutup di mana posisi dari motor akan diinformasikan kembali ke rangkaian kontrol yang ada di dalam motor servo. Motor ini terdiri dari sebuah motor DC, serangkaian gear, potensiometer dan rangkaian kontrol.
Potensiometer berfungsi untuk menentukan batas sudut dari putaran servo. Sedangkan sudut dari sumbu motor servo diatur berdasarkan lebar pulsa yang dikirim melalui kaki sinyal dari kabel motor. Tampak pada gambar dengan pulsa 1.5 mS pada periode selebar 2 mS maka sudut dari sumbu motor akan berada pada posisi tengah. Semakin lebar pulsa OFF maka akan semakin besar gerakan sumbu ke arah jarum jam dan semakin kecil pulsa OFF maka akan semakin besar gerakan sumbu ke arah yang berlawanan dengan jarum jam.

Detail article dapat di lihat di sini

Pengendali Motor dengan Remote Sony

Tuesday, September 9th, 2008

AN0129

Artikel berikut dibangun dengan menggunakan 1. Modul ST-2051 (Small System AT892051), 1 Modul DDMI-01 (Delta DC Motor Interface), 1 Motor DC. Fungsi aplikasi pada artikel ini adalah mengatur arah putaran motor DC dengan menggunakan remote control Sony. Remote control Sony adalah remote yang cukup banyak ditemukan di pasaran sehingga pengguna tidak akan kesulitan untuk memperolehnya.

Detail article dapat di lihat di sini

Software pendukung

Modul Pendukung

Programmable DC/Servo Motor dengan menggunakan DDMI-01 dan DST-52

Tuesday, September 9th, 2008

AN0128

Berbeda dengan motor stepper, motor DC lebih mudah dikendalikan karena prosesnya hanya dilakukan dengan memberikan tegangan DC saja. Sedangkan arah dapat diubah dengan melakukan perubahan pada polaritasnya saja.  Pada artikel ini akan dibahas bagaimana mengatur motor DC agar bergerak ke arah-arah yang telah ditentukan sebelumnya selama periode waktu tertentu. Contohnya, step 1 bergerak se arah jarum jam selama 15 detik, kemudian step 2 bergerak berlawanan jarum jam selama 20 detik dan seterusnya

Detail article dapat di lihat di sini

Software pendukung

Modul Pendukung

Pengaturan Kecepatan Motor DC pada DST-R8C

Tuesday, September 9th, 2008

AN2010

Pengaturan Kecepatan Motor DC pada DST-R8C
Pada artikel ini dibahas bagaimana Modul DST-R8C mengatur kecepatan Motor DC dengan menggunakan remote sony.

Detail article dapat di lihat di sini

Software pendukung

Modul pendukung

Mengontrol Motor Steeper Dengan Sub System – 06 Stepper Motor Interface

Tuesday, September 9th, 2008

AN0110

Sub System – 06 Stepper Motor Interface adalah suatu antar muka driver motor stepper yang mampu menerima perintah-perintah dari mikrokontroller ataupun PC sebagai Master, sehingga Master dapat mengontrol mode kerja motor stepper, arah putar, kecepatan, dan jumlah step untuk masing-masing motor secara terpisah dan real time.

Masing-masing motor dapat dikontrol oleh Master secara terpisah dengan mengirimkan perintah-perintah yang sesuai. Selain itu dengan menggunakan sebuah Master saja sudah dapat menggunakan 8 buah modul SST-06 secara bersama-sama, karena modul SST-06 dapat dialamati sampai 8 Sub System, sehingga pengguna dapat mengontrol hingga 16 buah motor sekaligus.

Detail article dapat di lihat di sini

Modul pendukung

Antarmuka Motor Stepper dengan DST-R8C

Monday, September 8th, 2008

AN2006

Aplikasi ini adalah membahas proses kendali motor stepper unipolar dengan menggunakan Modul DST-R8C dan STP-06 .

Detail article dapat di lihat di sini

Software pendukung

Modul pendukung

  • DST-R8C Delta System Tools for R8C Tiny