Pada bab ini akan dijelaskan tentang perencanaan sistem secara keseluruhan. Bab ini dibagi menjadi tiga bagian besar yaitu bagian pertama yang membahas mengenai desain sistem, dilanjutkan dengan bagian kedua yang menjelaskan mengenai perangkat keras yang digunakan, dan yang terakhir dibahas adalah mengenai perencanaan perangkat lunak yang digunakan untuk mengolah informasi yang didapat dari perangkat keras. Blok diagram dari robot lengan secara garis besar dapat dilihat pada gambar berikut:
Gambar 3.1. Blok Diagram Robot Lengan
3.1. Desain Sistem
Robot lengan pengebor PCB dalam tugas akhir ini didesain untuk memiliki 3 derajat kebebasan(DoF). Kontrol robot lengan ini dilakukan dengan menggunakan PC untuk memberi input kepada microcontroller. Didalam microcontroller, input dari komputer akan diproses dengan metode PID. Hasil proses dari PID ini, akan digunakan sebagai nilai program PWM untuk menggerakkan lengan..
Cara kerja dari sistem ini adalah robot akan mengebor pada sudut yang diinputkan. Input dari tujuan robot adalah dalam bentuk derajat. Input ini dikirim oleh komputer. Sebelum robot menerima input, maka lengan robot harus menuju ke posisi awal. Setelah robot menuju posisi awal, maka robot dapat menerima
36
input. Input yang diterima adalah nilai Kp, Ki, Kd, dan setting point untuk tiap lengan. Input yang diterima akan di simpan di dalam microcontroller.
Setelah robot menerima input maka robot akan mulai membaca posisi dari lengan robot tersebut saat itu. Robot lengan ini menggunakan incremental rotary encoder untuk membaca posisi dari lengan-lengannya. Incremental rotary encoder ini dilewatkan pada sebuah rangkaian D flip-flop terlebih dahulu sebelum dapat dibaca oleh microcontroller. Rangkaian D flip-flop ini digunakan untuk membantu dalam pembacaan rotary dan untuk menunjukkan perputaran dari rotary yaitu clockwise dan counterclockwise.
Pembacaan rotary encoder ini menggunakan fungsi interrupt eksternal dari microcontroller. Setelah robot membaca posisi awal dari lengannya, maka robot akan memproses nilai input (setting point) dan posisi robot lengan pada keadaannya saat itu (present value). Dari proses tersebut maka akan di dapatkan nilai error. Rumus dari error adalah:
Error = SP-PV (3.1)
dimana : SP = Setting point.
PV = Present Value
Setelah mendapatkan error, maka nilai error akan di proses di dalam microcontroller. Pemrosesan di dalam microcontroller menggunakan metode PID controller dimana program tersebut dibuat menjadi prosedur di dalam IC microcontroller. Rumus dari PID adalah;
(
1) (
1 1 2)
1
0 = − + − − + + e −2e − +e−
T T K e K e
e K V
V on p n n i n d n n (3.2)
Setelah diproses di dalam microcontroller, maka microcontroller akan menggeluarkan PWM untuk menjalankan rangkaian H-Bridge. Rangkaian H- Bridge ini akan menjalankan motor yang digunakan sebagai aktuator pada robot lengan untuk mencapai setting point yang diinginkan.
3.2. Desain Mekanik
3.2.1. Desain Rangka Robot Lengan
Robot lengan merupakan salah satu aplikasi dalam dunia robotika dimana bentuknya dibuat supaya dapat serupa dengan tangan manusia. Jumlah
derajat kebebasan yang dimiliki oleh robot lengan pengebor PCB ini secara keseluruhan ialah 3 derajat kebebasan. Pada dasarnya robot lengan ini menggunakan PC dan IC microcontroller untuk mengontrol arah gerak dari robot lengan ini.
Secara keseluruhan, robot lengan ini terdiri dari empat bagian yaitu bagian base, lengan pertama, lengan kedua dan lengan ketiga seperti tampak pada gambar 3.2. sampai gambar 3.4.
Gambar 3.2. Tampak Samping dari Robot Lengan Pengebor PCB
Gambar 3.3. Tampak 3 Dimensi Robot Lengan Pengebor PCB 910 mm
38
(a) (b)
Gambar 3.4. Tampak Belakang dan Tampak Depan dari Robot Lengan Pengebor PCB
Materi pembentuk dari robot lengan ini menggunakan bahan yang terbuat dari besi plat yang memiliki ketebalan 3 milimeter untuk bagian Base dan 2 milimeter untuk bagian lengan pertama, lengan kedua, serta rumah bagi motor, sensor, bor dan lain-lain. Sedangkan lengan ketiganya berupa rack gear.
Pemilihan jenis bahan ini didasarkan dari kekuatan bahan dan dari segi harga bahannya sendiri. Desain robot lengan ini digambar dengan menggunakan program “Autodesk AutoCAD 2007”.
705 mm 156,63 mm
3.2.2. Base Robot Lengan
Bagian base dari robot lengan pengebor PCB ini memiliki dimensi panjangnya mencapai 30,6 cm, sedangkan lebarnya yaitu 15,663 cm dan untuk tingginya adalah 31,5 cm. Bagian base dari robot lengan ini memiliki bentuk seperti huruf C pada bagian depannya. Bentuk tersebut didesain supaya dapat menopang beban lengan pertama dan untuk menjaga agar lengan pertama tetap pada posisi horizontal tidak mengalami penurunan yang diakibatkan beban yang terlalu berat. Selain itu bentuk dari huruf C tersebut berguna untuk membatasi pergerakan dari lengan pertama agar hanya dapat bergerak 180° saja. Bagian base ini berguna untuk menopang keseluruhan dari lengan robot tersebut dan merupakan tempat kontroler berada.
Gambar 3.5. Sketsa Base dari Robot Lengan
40
Gambar 3.6 Bagian Dalam Base Tampak Samping
Gambar 3.7. Bagian Dalam Base Tampak 3 Dimensi
Gambar 3.6. merupakan bagian dalam dari base. Bagian dalam dari base ini terdapat shaft pejal setebal lima sentimeter yang digunakan untuk poros penggerak lengan pertama. Untuk dapat bergerak, shaft tersebut memiliki spur
gear yang terhubung dengan spur gear dari motor wiper. Motor wiper inilah yang nantinya akan menggerakkan lengan pertama ini ke kanan atau ke kiri sedangkan untuk perbandingan spur gear antara motor dan shaft tersebut dipilih perbandingan 1:1 yang mana berarti kecepatan putar dari motor akan sama dengan kecepatan putar shaft.
Agar shaft tetap pada posisi tengah dari tempatnya berada, maka diberikan bearing yang diletakkan pada sisi paling atas dan paling bawah dari shaft. Dan agar lengan pertama dapat bergerak dengan lancar dan dapat mengurangi gaya gesekan yang terjadi, maka diberikan dua buah thrust bearing yang diletakkan mengapit lengan pertama diatas dan bawah.
Untuk mendeteksi posisi dari lengan pertama, maka digunakan sensor rotary encoder. Pada sensor rotary encoder ini ditambahakan kombinasi spur gear yang memiliki jumlah gigi lebih sedikit dari spur gear yang berada pada shaft. Perbandingan gear antara spur gear sensor rotary dengan shaft adalah 1:2.
Perbandingan gear antara sensor dengan shaft ini didesain dikarenakan resolusi dari sensor yang ingin dinaikkan untuk memperoleh hasil yang lebih presisi.
3.2.3 Lengan Pertama Robot Lengan
Gambar 3.8. Bentuk Keseluruhan Lengan Pertama.
42
Gambar 3.9 Bagian Dalam Lengan Pertama Tampak Samping
Gambar 3.10 Bagian Dalam Lengan Pertama Tampak 3 Dimensi
Gambar 3.8. adalah gambar dari lengan pertama robot pengebor PCB.
Lengan pertama ini memiliki panjang 42 cm, lebarnya 12 cm dan tinggi 7 cm untuk ukuran dimensinya. Pada lengan pertama ini terdapat lubang besar di salah satu ujung sisinya dan lubang yang lebih kecil di sisi yang satunya. Lubang yang besar tersebut digunakan sebagai tempat shaft dari base dan lubang yang kecil digunakan sebagai jalur shaft untuk lengan kedua.
Pada gambar 3.9. dapat dilihat bagian dalam dari lengan pertama. Bagian dalam dari lengan pertama ini terdapat shaft pejal yang memiliki diameter 2 cm,
rotary encoder sebagai sensor posisi, motor DC kecil 12 volt dengan spesifikasi 185 RPM, bearing, dan thrust bearing.
Shaft setebal 2 cm ini digunakan untuk menghubungkan lengan pertama dan lengan kedua sekaligus untuk menggerakkan lengan kedua. Supaya lengan kedua ini dapat berputar, maka digunakanlah kombinasi ground worm dan worm wheel gear dengan perbandingan 1:10 yang telah dipasangkan pada motor DC untuk memutarnya sekaligus worm gear ini berfungsi sebagai mengunci lengan kedua agar tetap berhenti setelah motor tidak berputar.
Untuk sensor rotary-nya berfungsi sama halnya dengan sensor rotary pada base, hanya saja sensor rotary di lengan pertama ini digunakan untuk mendeteksi posisi dari lengan kedua.
Bearing pada lengan pertama ini memiliki fungsi yang sama dengan bearing pada base yaitu untuk mempertahankan posisi shaft lengan kedua agar tetap tegak lurus sedangkan untuk thrust bearing-nya berguna untuk mengurangi gesekan antara lengan kedua dan lengan pertama.
3.2.4 Lengan Kedua and Ketiga Robot Lengan
Gambar 3.11. Bentuk Keseluruhan Lengan Kedua dan Ketiga
44
Gambar 3.12 Bagian Dalam Lengan Kedua Tampak Samping dan Atas
Gambar 3.13 Bagian Dalam Lengan Kedua dan Ketiga Tampak 3 Dimensi Gambar 3.11. adalah gambar dari lengan kedua dan ketiga. Lengan ketiga dari robot ini berupa rack gear.
Lengan kedua ini memiliki dimensi panjang lengan adalah 35 cm, lebarnya adalah 10 cm dan tingginya adalah 10 cm.
Pada lengan kedua ini terdapat sepasang tiang yang menjulang tinggi pada ujung depannya. Tiang ini berguna sebagai jalur atau rel bagi lengan ketiga agar dapat bergerak naik dan turun tetap pada jalurnya.
Gambar 3.12 merupakan gambar dari bagian dalam lengan kedua. Pada bagian dalam lengan kedua ini terdapat motor DC 12 volt dengan spesifikasi 38 RPM, rotary encoder untuk sensor posisi lengan ketiga, ground worm dan worm wheel gear, pinion dari rack gear untuk menggerakkan lengan ketiga atau rack gear.
Sama halnya dengan lengan pertama, ground worm dan worm wheel gear memiliki fungsi untuk meningkatkan torsi dan mengunci pergerakan dari rack gear atau lengan ketiga waktu motor tidak bergerak. Sedangkan rotary encoder memiliki fungsi mengetahui posisi dari lengan ketiga. Rotary encoder ini dikombinasikan dengan sepasang spur gear yang memiliki perbandingan 1:2 yang berguna unutk meningkatkan resolusi dari sensor.
Dari gambar 3.11. dapat dilihat bahwa secara umum lengan kedua memiliki dimensi panjang 35 cm, lebar 10 cm, dan tinggi 10 cm, sedangkan lengan ketiga atau rack gear dibuat dengan ukuran sepanjang 40 cm. Lengan kedua secara khusus didesain untuk menggerakkan lengan ketiga atau rack gear.
Lengan ketiga atau rack gear secara khusus dibuat untuk dapat mengangkat dan menurunkan mesin bor sehingga robot lengan dapat melakukan proses pengeboran.
Dari gambar 3.13. dapat dilihat bahwa lengan ketiga secara khusus berfungsi untuk menggerakkan lengan ketiga atau rack gear. Dari gambar terlihat bahwa spur gear biasa digunakan untuk dapat menggerakkan lengan ketiga atau rack gear. Spur gear tersebut terhubung dengan ground worm karena lubang shaft dapat terhubung menjadi satu menggunakan sebuah shaft pejal. Shaft pejal tersebut dapat digerakkan oleh motor DC yang telah dikombinasikan dengan ground worm dan worm wheel gears dengan perbandingan 1 : 10 . Sensor rotary digunakan untuk mengetahui seberapa jauh rack gear telah bergerak. Sensor rotary ini telah dikombinasikan dengan spur gear yang memiliki perbandingan 1:1.
46
3.3. Desain Hardware
Desain perangkat keras ini meliputi antara lain pemilihan power supply, pembuatan single chip untuk microcontroller, incremental rotary encoder, gerbang logic untuk pembacaan posisi dan arah rotary, gerbang logic untuk keluaran PWM dari microcontroller dan driver motor H-Bridge.
3.3.1. Power Supply
Dalam pembuatan Robot Lengan Pengebor PCB dengan Menggunakan PID Controller ini di perlukan dua level tegangan yang berbeda, yaitu 5 V dan 12 V. Dan dalam pembuatan robot ini digunakan power supply komputer sebagai sumber power nya. Power supply computer ini memiliki daya 500 Watt dan memiliki 4 level output tegangan yaitu 3 Volt, 5 Volt, 12 Volt, dan 24 Volt.
Digunakan power supply computer ini karena power supply ini mampu untuk menjalankan 3 buah motor dan untuk penyesuaian dengan desain mekaniknya.
3.3.2. Microcontroller
Pada bagian kontroler digunakan microcontroller ATMEGA8535. Tugas dari microcontroller ini adalah menerima nilai Kp, Ki, Kd, dan set point untuk tiap lengan dari PC. Selain itu microcontroller ini juga menghitung atau membaca pulsa rotary dari rotary encoder. Setelah itu microcontroller akan memproses data yang input yang diterima dengan menggunakan metode PID controller. Nilai dari proses perhitungan dengan metode PID controller ini akan menjadi nilai PWM untuk menggerakkan motor menuju ke set point.
Data yang dikirimkan dari PC ke microcontroller dilewatkan melalui IC MAX232 yang berguna untuk mengubah tegangan komputer menjadi tegangan TTL. Gambar 3.14 adalah gambar dari rangkaian microcontroller.
Gambar 3.14. Single Chip ATmega8535
3.3.3. Incremental Rotary encoder
Pada pembuatan robot untuk tugas akhir ini digunakan incremental rotary encoder karena untuk memudahkan dalam membaca posisi dari lengan robot yang ada. Selain itu juga ada alternatif lain yaitu dengan menggunakan absolute rotary encoder atau menggunakan potentiometer ten-turn yang di gabung dengan ADC untuk pembacaannya. Incremental rotary encoder yang di pakai ini bekerja dengan tegangan 5 Volt. Vcc pada rotary yang digunakan ini terletak pada pin no 2 dari rotary, sedangkan pin ground terletak pada pin no 6 dari rotary. Dan pin yang mengeluarkan gelombang atau pulsa adalah pin no 1 (CHA) dan pin no 8 (CHB).
Incremental rotary encoder ini jika berputar clockwise maka pin no 1(CHA) akan mengeluarkan pulsa terlebih dulu dari pin no 8 (CHB), jika incremental rotary encoder ini diputar counterclockwise maka pin no 8 (CHB) akan mengeluarkan pulsa terlebih dulu dari pin no 1 (CHA), lebar pulsa yang dikeluarkan sama besar antara pin no1(CHA) dan no 8 (CHB), yang berbeda adalah fasa nya. Jumlah pulsa pada rotary dihitung untuk dapat menentukan
48
seberapa lama rotary berputar. Dengan demikian arah dan gerakan dari rotary dapat dideteksi oleh incremental rotary encoder ini.
Gambar 3.15. Prinsip Kerja Incremental Rotary encoder
3.3.4. Rangkaian untuk Pembacaan Rotary
Rangkaian ini dibuat untuk memudahkan dari segi pembacaan sensor.
Dimana untuk memudahkan membaca sensor rotary maka dibutuhkan suatu rangkaian flip-flop. Tipe flip-flop yang paling baik untuk membaca sensor incremental rotary encoder ialah D flip-flop. Berikut adalah tabel kebenaran dari D flip-flop.
Tabel 3.1. Tabel Kebenaran D flip-flop
D Clock Q
0 0 1 1 1 0
Pada rangkaian sensor ini, IC D flip-flop yang digunakan adalah IC 74HC74. Pada IC D flip-flop ini terdapat 2 buah input yaitu input D dan input clock. Sedangkan pada sisi output memiliki 2 buah output yaitu Q dan . Pada D flip-flop, ketika logic pada input clock menuju ‘1’, logic pada output Q akan sama dengan logic pada input D. Ketika clock berogika ‘0’, keadaan terakhir dari input D akan di tangkap dan disimpan. Jika CH A dimasukkan ke pin input clock dan CH B dimasukkan ke pin input D, maka kita dapat menentukan arah gerak rotary encoder.
Jika CH A mendahului CH B, maka ketika clock menuju ke logic ‘1’, output-nya akan ber-logic ‘1’. Tetapi jika sebaliknya, maka ketika clock menuju logic ‘1’, maka output-nya akan ber-logic ‘0’.
IC 74HC74 yang digunakan pada pembuatan rangkaian sensor ini bekerja pada tegangan 5 Volt. Pada pembuatan tugas akhir ini IC ini digunakan untuk membuat output dari rotary menjadi 2 bagian yaitu arah dan pulsa dari rotary, sehingga membantu dalam hal pembuatan program pada tugas akhir yang di buat. Input dari IC logic ini adalah dari pin rotary yang menggeluarkan pulsa yaitu pada pin 1 dan 8 dari rotary.
Gambar 3.16. Rangkaian Pembaca Rotary
3.3.5. Rangkaian Pengontrol Output dari Microcontroller ke H-Bridge
Gambar 3.17. Rangkaian Pengontrol dari Microcontroller ke H-Bridge
50
Rangkaian ini dibuat untuk memudahkan microcontroller dalam pemberian input pada h-bridge, karena pada microcontroller yang digunakan hanya memiliki 3 pin yang digunakan untuk PWM. Rangkaian ini memiliki dua buah masukkan, dimana satu masukkan berfungsi sebagai enable atau sekaligus sebagai PWM rangkaian dan masukkan yang lain berfungsi untuk menentukan arah gerakkan motor. Apabila pin enable mendapat logic low maka H-Bridge akan membuat motor DC berputar. Apabila pin enable mendapat logic high maka H- Bridge akan membuat motor DC diam.
3.3.6. H-Bridge
Rangkaian H-Bridge pada robot lengan pengebor PCB ini dibuat untuk menggerakkan motor DC yang berfungsi sebagai aktuator dari robot lengan pengebor PCB. Pada robot lengan pengebor PCB ini dibuat 3 buah rangkaian H- Bridge, karena ada 3 buah motor DC yang berfungsi sebagai aktuator. Rangkaian ini digunakan untuk mengatur arah gerak dari motor pada robot lengan berdasarkan perintah yang diterima dari microcontroller ATMega8535.
Berikut adalah gambar dari rangkaian H-Bridge
Gambar 3.18. Rangkaian H-Bridge
Rangkaian H-Bridge ini memiliki dua buah masukkan dan dua buah keluaran.Dengan rangkaian H-Bridge ini motor DC dapat bergerak clockwise dan counterclockwise.
Rangkaian H-Bridge ini bekerja pada kondisi saturasi. Karena MOSFET bekerja berdasarkan input tegangan, maka arus yang diperlukan untuk men-drive MOSFET sangat kecil dan hanya bekerja pada kondisi saturasi dan mati (cut-off).
Dari keterangan pada datasheet MOSFET yang digunakan, tegangan on minimum kedua MOSFET adalah 4V dan pada tegangan tersebut dapat mengalirkan arus lebih dari yang dibutuhkan oleh motor DC, maka dapat dipastikan MOSFET langsung berada pada kondisi saturasi. Oleh karena itu semua perhitungan pada MOSFET ini dapat diabaikan. Berikut bentuk driver dari rangkaian H-Bridge dengan mengabaikan bagian MOSFET.
Gambar 3.19. Rangkaian Sederhana Driver H-Bridge
Rangkaian driver diatas diperoleh dengan perhitungan sebagai berikut.
Pada transistor tipe TIP 122 dan TIP127 ini memiliki hFE sebesar 1000. Ic maks dari TIP122 adalah 5 A untuk pengunaan secara continuous, sedangkan jika digunakan secara pulse maka IC maks nya adalah 8 A. Dalam perhitungan ini dianggap IC maks yang digunakan secara pulse adalah 10 A, karena untuk memastikan IC dalam kondisi saturasi.
hFE = IC/IB
1000 = 10/Ib
Ib = 10/1000
52
Ib = 0,01A
Ib = 10mA
Dari perhitungan diatas, maka kita memerlukan arus pada IB transistor Tip122 dan 127 sebesar minimal 10mA untuk membuat transistor TIP 122 dan 127 dalam kondisi saturasi sehingga dapat men-drive MOSFET.
Setelah diketahui Ib pada TIP 122 dan TIP127, maka dapat diperoleh Rb pada TIP 122 dan TIP 127.
V = I x Rb
12-(0,7 x 2) = 10 mA x Rb 10,6 = 10 mA x Rb Rb = 10,6 / 10mA Rb = 1060 Ω ≈ 1 kΩ
Sedangkan untuk men-drive transistor TIP 122 dan TIP 127, maka diperlukan sebuah transistor 2N3904.Transistor 2N3904 ini memiliki hFE sebesar 30. IC maks dari 2N3904 adalah sebesar 200 mA pada keadaan continuous dan memiliki IC maks sebesar 300mA pada keadaan pulse. Dalam perhitungan ini diketahui IC yang diperlukan adalah 10mA, dan dalam perhitungan ini akan dicari berapa besar IB dan berapa besar resistor yang diperlukan oleh transistor 2N3904 untuk mendrive transistor TIP 122 dan TIP127.
hFE = IC/IB
30 = 10mA/Ib
Ib = 10mA/30
Ib = 0,333mA
Untuk mencari berapa nilai resistor yang digunakan pada basis dari transistor 2N3904, maka perhitungan adalah sebagai berikut:
V = I*R
5-0,7 = 0,333mA *R 4,3 = 0,333mA *R R = 4,3 / 0,333mA R = 12912,912Ω ≈ 10kΩ
Dari perhitungan diatas, maka didapatkan besar nilai resistor pada basis dari 2N3904 maksimal adalah 12912,912 sehingga pada rangkaian digunakan
resistor sebesar 10K pada basis dari tranistor 2N3904. Dengan demikian dapat dipastikan transistor 2N3904 bekerja dalam kondisi saturasi.
Rangkaian H-Bridge memiliki empat kondisi ketika kedua input-nya menerima masukan. Masukan tersebut yang menentukan motor DC akan berputar ke arah mana. Berikut keempat kondisi tersebut.
Tabel 3.2. Kondisi H-Bridge IN – A IN – B Arah Motor DC
0 0 Diam 0 1 Clockwise
1 0 Counterclockwise
1 1 Diam
Dari tabel tersebut terlihat bahwa apabila terjadi kondisi 1–1 maka motor DC akan diam. Pada kenyataannya motor DC memang betul diam, namun rangkaian H-Bridge akan menjadi panas. Untuk mencegah terjadi kondisi 1–1 maka pada rangkaian H-Bridge ini ditambahkan rangkaian logika seperti berikut ini.
Gambar 3.20. Rangkaian Gerbang Logic
3.3.7. Rangkaian Sensor Kondisi Awal
Rangkaian ini dibuat karena, pada incremental rotary encoder yang digunakan dalam pembuatan tugas akhir ini tidak memiliki penanda awal kapan sensor akan dibaca. Ini disebabkan karena output dari incremental rotary encoder ini berupa pulsa. Jika incremental rotary encoder digunakan untuk membaca
54
kecepatan motor maka kelamahan tersebut bukan suatu masalah karena kita dapat membaca output incremental rotary encoder kapanpun kita inginkan. Jika incremental rotary encoder digunakan untuk membaca posisi maka, kita tidak dapat mengetahui awal dari incremental rotary encoder berada pada posisi berapa.
Untuk itulah dibutuhkan suatu rangkaian sensor tambahan. Dalam hal ini masing-masing lengan pada robot lengan pengebor PCB diberi suatu rangkaian sensor yang dapat digunakan untuk menandakan posisi awal dari lengan robot.
Sensor awal yang digunakan untuk lengan pertama ialah sensor photointerrupter.
Sensor awal yang digunakan untuk lengan kedua ialah infrared pemancar dan penerima sebagai sensor warna. Sensor awal untuk lengan ketiga ialah limit switch.
3.3.7.1. Sensor Awal Lengan Pertama
Sensor awal untuk lengan pertama ialah sensor photointerrupter. Sensor photointerrupter merupakan sensor berbentuk huruf C yang mana sensor ini mampu mendeteksi ada tidaknya plat yang lewat ke celah sensor. Ada dua sisi yang utama dalam photointerrupter, yang pertama adalah sisi pemancar dan yang kedua adalah sisi penerima. Sisi pemancar hanya berupa led infrared biasa. Dari sisi penerima, selain memiliki sensor pembaca led juga terdapat rangkaian yang mampu mengolah hasil pembacaan sensor ke dalam logic 1 atau logic 0. Output photointerrupter mampu bekerja pada tegangan 0 sampai 17 Volt. Bagian dalam dari photointerrupter dapat dilihat pada gambar 3.21.
Gambar 3.21. Photointerrupter GP1A15.
3.3.7.2. Sensor Awal Lengan Kedua
Sensor awal untuk lengan kedua ialah sensor untuk mendeteksi warna.
Hanya ada dua kemungkinan warna yang digunakan yaitu hitam dan putih. Dalam hal ini sensor yang digunakan adalah sensor infrared pemancar dan penerima.
Rangkaian dari infrared pemancar dan penerima dapat dilihat pada gambar 3.22.
Gambar 3.22. Rangkaian Infrared Pemancar dan Penerima.
Output dari photosensor ialah tegangan yang berubah-ubah berdasarkan jarak benda dan warna dari sinar yang dihasilkan oleh infrared. Untuk dapat dibaca oleh micro maka output yang dihasilkan harus dimasukkan dulu ke comparator. Output dari comparator akan menghasilkan logic 1 atau logic 0.
3.3.7.3. Sensor Awal Lengan Ketiga
Untuk lengan ketiga tidak membutuhkan sensor awal yang khusus.
Sensor awal untuk lengan ketiga ialah berupa switch biasa. Hal ini dikarenakan lengan ketiga hanya bergerak translasi. Arah gerakannya jelas hanya naik atau turun. Jika badan lengan ketiga menabrak sensor maka logic-nya 1 dan jika tidak maka logic-nya 0.
3.4. Desain Software
Pada bagian ini akan dibahas mengenai masalah pemrograman. Bahasa pemrograman yang digunakan adalah bahasa pemrograman C. Program yang digunakan adalah Delphi dan Code Vision AVR. Pemrograman dengan program Delphi ini dibuat pada PC. Software ini terdiri dari input Kp, Ki, Kd, dan setting point untuk tiap-tiap lengan. Software ini akan mengeksekusi input tersebut, dan
56
kemudian mengirim data hasilnya ke microcontroller. Setelah pengiriman data maka software tersebut akan menerima feedback dari hasil pembacaan sensor.
Software pada microcontroller bertugas untuk menerima input data dari PC, memproses data yang didapat dari pembacaan rotary, menghitung error, kemudian memproses semua input yang diterima dengan menggunakan metode PID setiap selang waktu tertentu dan menjalankan PWM untuk motor. Di bawah ini adalah flowchart program dalam microcontroller.
Gambar 3.23. Gambar Flowchart Program Utama
3.4.1 Flowchart Zero Position
Gambar 3.24. Flowchart Zero
Pada bagian zero position ini robot lengan akan digerakkan menuju ke posisi awal, dimana posisi awal dari robot lengan ini di tandai dengan sensor pada posisi tertentu. Jika sensor masih memiliki nilai 0 maka tiap lengan robot akan digerakkan menuju ke titik dimana sensor diletakkan. Pada lengan ke-1, motor akan digerakkan ke arah kiri dengan nilai PWM sebesar 80 hingga mencapai daerah dimana sensor zero untuk lengan ke-1 berada, jika lengan ke-1 sudah mencapai daerah dimana sensor maka motor akan berhenti. Pada lengan ke-2, motor akan digerakkan ke arah kanan dengan nilai PWM sebesar 80 hingga mencapai daerah dimana sensor zero untuk lengan ke-2 berada, jika lengan ke-2 sudah mencapai daerah dimana sensor berada, maka motor untuk lengan ke-2 akan dihentikan. Pada lengan ke-3, motor akan digerakkan ke atas dengan nilai PWM sebesar 150 hingga mencapai daerah dimana sensor zero untuk lengan ke-3 berada, jika lengan ke-3 sudah mencapai daerah dimana sensor berada, maka motor ke-3 akan dihentikan.
58
3.4.2. Flowchart Interupt Serial
Gambar 3.25. Flowchart Interrupt Serial
Gambar diatas adalah flowchart untuk interrupt serial. Pada bagian interupt serial ini, microcontroller menerima input data dari komputer. Input data yang diterima ini harus diproses dan disatukan dulu sebelum dapat dipakai dalam proses perhitungan PID yang terjadi setiap kali timer 2 ter-interrupt. Setelah data dari serial diterima dan disatukan maka didapat nilai Kp, Ki, Kd, dan setting point untuk lengan robot.
3.4.3 Flowchart Interupt Eksternal
Pada bagian software robot lengan untuk membaca nilai rotary encoder ini digunakan program Code Vision AVR yang menggunakan bahasa C dalam pemrogramannya. Program ini membaca nilai rotary berdasarkan banyaknya falling edge dari pulse yang di keluarkan rotary encoder pada saat rotary encoder bergerak. Dalam hal ini maka digunakan pin external interrupt pada ATMega8535 yaitu, Pin D2, Pin D3, dan Pin B2. Pin D2 digunakan untuk membaca sinyal dari rotary encoder untuk lengan pertama, Pin D3 digunakan untuk membaca sinyal dari rotary encoder untuk lengan kedua, dan Pin B2 digunakan untuk membaca sinyal dari rotary encoder untuk lengan ketiga.
Berikut adalah flowchart untuk pembacaan rotary pada tiap lengan.
Interupt eksternal 0 (Sensor rotary
lengan1)
Lengan 1 clockwise
Lengan 1 Counterclockwise
PV1++
PV1--
Reti
Y N
Y
Gambar 3.26. Flowchart Interupt Eksternal untuk Rotary Lengan ke-1
Interupt eksternal 1 (Sensor rotary
lengan1)
Lengan 2 clockwise
Lengan 2 Counterclockwise
PV1++
PV1--
Reti
Y
Y N
Gambar 3.27. Flowchart untuk Membaca Rotary untuk Lengan ke-2
Interupt eksternal 2 (Sensor rotary
lengan3)
Lengan 3 Up
Lengan 3 down
PV1++
PV1--
Reti
Y
Y N
Gambar3.28. Flowchart untuk Membaca Rotary untuk Lengan ke-3
60
3.4.4 Flowchart Interrupt Timer
Berikut adalah flowchart dari proses Interrupt Timer:
Gambar 3.29. Flowchart proses Interrupt Timer
Pembuatan software proses PID untuk robot lengan ini menggunakan program Code Vision AVR dan menggunakan bahasa C dalam pemrogramannya.
Pada awalnya software proses PID ini dipanggil setelah prosedur zero dipanggil.
Prosedur di dalam interrupt timer 2 ini akan melakukan prosedur PID. Jadi setiap kali timer 2 ter-interrupt, maka akan dilakukan berbagai perhitungan dan proses menggerakkan motor. Beberapa perhitungan yang dilakukan adalah perhitungan error untuk proses perhitungan PID tiap lengan dan juga proses perhitungan untuk mengupdate error-nya. Setelah perhitungan selesai dilakukan maka nilai perhitungan proses PID akan dijadikan nilai PWM untuk menggerakkan motor.
Nilai maksimum dari PWM tiap lengan adalah 255. Pin pada ATMega8535 yang digunakan sebagai PWM adalah pin D5 (OCR1A), pin D4 (OCR1B), dan pin B3 (OCR0).