4.2.5. Pengujian  Keberhasilan  Lengan  Robot  Saat  Mengambil  dan
Memindahkan Benda
Pada  pengujian  lengan  robot  mengambil  dan  memindahkan  benda  dilakukan sebanyak  sepuluh  kali  percobaan  dari  masing-masing  bentuk  benda.  Ketika  sistem  telah
mengenali  bentuk  benda,  maka  sistem  akan  mengirimkan  sebuah  karakter  secara  serial kepada mikrokontroler ATmega32 untuk selanjutnya mengontrol pergerakan lengan robot
mengambil  dan  memindahkan  benda  sesuai  dengan  peletakan  yang  telah  ditentukan sebelumnya.
Tabel 4.4. Pengujian Keberhasilan Lengan Robot Mengambil dan Memindahkan Benda PENGUJIAN KEBERHASILAN LENGAN ROBOT
MENGAMBIL DAN MELETAKAN BENDA BENDA
1  2  3  4  5  6  7  8  9 10
KUBUS V  V  V  V  V  V  V  V  V
V BALOK
V  V  V  V  V  V  V  V  V V
TABUNG V  V  V  V  V  V  V  V  V
V BOLA
V  V  V  V  V  V  V  V  V V
Keterangan : VBerhasil  XTidak Berhasil
Berdasarkan  tabel  4.4  maka  dapat  dianalisa  bahwa  lengan  robot  dapat  mengambil dan  memindahkan  benda  sesuai  bentuk  dengan  baik.  Hal  ini  dapat  dibuktikan  dengan
melihat  tingkat  keberhasilan  lengan  robot  mengambil  dan  memindahkan  benda  seperti tabel  4.4.  Tingkat  keberhasilan  lengan  robot  yaitu  100  dengan  catatan  peletakan  dan
jarak benda sesuai dengan batasan masalah.
4.2.6. Pengujian  Sistem  Dalam  Proses  Pengenalan  Benda  dan  Proses
Pemindahan Benda 4.2.6.1.
Menggunakan Looping
Looping merupakan  suatu  proses  dimana  sistem  akan  terus  bekerja  dan  selalu
mengeksekusi  program  secara  otomatis  sampai  tombol  atau  pemicu  berhenti  ditekan. Kelebihan  dari  sistem  yang  menggunakan  looping  yaitu  sistem  dan  lengan  robot  mampu
bekerja  secara  otomatis  tanpa  harus  menekan  tombol  untuk  memberikan  isyarat  tertentu. Namun sistem menggunakan looping memiliki kelemahan yaitu proses pengenalan bentuk
benda  dan  proses  pemindahan  benda  menjadi  lebih  lama.  Waktu  yang  diperlukan  untuk proses pengenalan bentuk benda dan proses pemindahan benda  yaitu + 33 detik.
4.2.6.2. Tidak Menggunakan Looping
Sistem tidak menggunakan looping memiliki kelebihan dan kelemahan. Kelebihan dari sistem tanpa menggunakan looping yaitu sistem dan lengan robot dapat menyelesaikan
tugas  pengenalan  bentuk  benda  dan  proses  pemindahan  benda  lebih  cepat  dibanding menggunakan  looping  yaitu  +  27  detik.  Kelemahan  dari  sistem  tanpa  menggunakan
looping yaitu  sistem  dan  lengan  robot  tidak  mampu  bekerja  secara  otomatis  karena
dibutuhkan  peran  user  untuk  menekan  tombol  untuk  memulai  proses  pengenalan  bentuk benda.
4.3. Analisa dan Pembahasan Perangkat Lunak
Pada sub bab ini akan dibahas mengenai listing program pada CodeVision AVR dan MATLAB.
4.3.1. Aplikasi CodeVision AVR
Pada sub bab ini akan dijabarkan dan dijelaskan masing-masing fungsi pada listing program
yang  diprogram  menggunakan  software  CodeVision  AVR  diantaranya  program pengendali sensor photodioda menggunakan fasilitas ADC Analog to Digital Converter,
program  untuk  komunikasi  serial  menggunakan  USART  Universal  Synchronous Asynchronous  Receiver  Transmiter
,  program  pengendali  motor  servo  menggunakan fasilitas interrupt.
4.3.1.1. Pengendali Sensor Photodioda
Program  pengendali  sensor  photodioda  menggunakan  fasilitas  yang  dimiliki  oleh mikrokontroler  ATmega32  yaitu  ADC  Analog  to  Digital  Converter.  Fungsinya  yaitu
untuk mengubah tegangan analog menjadi tegangan digital. Tegangan digital tersebut akan digunakan untuk mengontrol conveyor saat membawa benda.
Gambar 4.35. Listing Program ADC Pada  listing  program  yang  ditunjukan  gambar  4.35,  digunakan  read_adc0  yang
artinya menggunakan PORTA.0 sebagai PORT masukan untuk mengubah tegangan analog menjadi  tegangan  digital.  Pada  bagian  sensor=  read_adc02  maksud  dari  pembagian  2
yaitu  agar  nilai  desimal  ADC  maksimal  yaitu  1023  dibagi  2  yaitu  511.  Sehingga  apabila
tegangan  masukan  0  Volt  sampai  5  Volt,  akan  diubah  melalui  ADC  menjadi  0  desimal hingga 511 desimal.
Gambar 4.36. Listing Program Pengendali Conveyor Pada    bagian  listing  program  gambar  4.36,  fungsinya  yaitu  untuk  mengendalikan
motor  penggerak  conveyor  yang  dikontrol  menggunakan  PORTD.2.  Terdapat  nilai  200 pada bagian
if sensor=200 ini dimaksudkan untuk membuat PORTD.2 bernilai “0” jika nilai sensor lebih besar sama dengan dari 200 desimal ADC. Hal ini berarti menyebabkan
motor  pada  conveyor  berhenti  berputar.  Jika  kondisi  sensor  kurang  dari  200,  maka PORTD.2 akan bernilai “1” yang artinya motor conveyor akan terus berputar.
4.3.1.2. Pengendali Komunikasi USART
Pada  bagian  ini  berfungsi  sebagai  komunikasi  serial  USART  untuk menghubungkan  antara  mikrokontroler  ATmega32  dengan  laptop.  Baudrate  yang
digunakan  yaitu  9600  bps.  Fungsi “getchar” yaitu untuk menerima karakter dari laptop
agar  mikrokontroler  dapat  mengerti  apa  yang  dimaksud  oleh  laptop  saat  mengirimkan karakter  yang  mendefinisikan  bentuk  benda.  Sedangkan  fungsi
“putchar”  yaitu  untuk mengirimkan  suatu  karakter  kepada  laptop  agar  laptop  dapat  memulai  proses  pengenalan
benda. Listing program dapat dilihat pada gambar 4.37.
Gambar 4.37. Listing Program Komunikasi USART
4.3.1.3. Pengendali Motor Servo
Program  pengendali  motor  servo  menggunakan  interrupt  timer0  sebagai pembangkit pulsa untuk menggerakan motor servo. Listing program pengendali sudut putar
motor servo ditunjukan gambar 4.38.
Gambar 4.38. Listing program pengendali sudut putar motor servo Listing
program pada gambar 4.38 adalah penyetingan port yang digunakan motor servo. Kodisi nilai i++ artinya adalah timer mulai mencacah dari 0 hingga 255, jika lebih
dari itu maka timer overflow dan mulai mengaktifan PWM. Nilai 864 adalah nilai overflow selama perioda motor servo yaitu 20ms. Kemudian pemberian logika high pada tiap port,
jika kondisi  nilai  i  lebih kecil dari pada nilai  variabel  data1, data2, data3, data4 sehingga mulai  memberikan  pulsa  agar  motor  servo  bergerak  dan  logika  low  jika  kondisinya  tidak
terpenuhi maka portb akan direset.
Gambar 4.39. Pemberian Nilai OCR Motor Servo
Listing program  yang  ditunjukan  pada  gambar  4.39  merupakan  pemberian  nilai
OCR pada masing-masing motor servo pada saat  posisi siaga. Sedangkan untuk posisi lain seperti  posisi  siaga_grip,  pengambilan  benda,  penyimpanan  benda  kubus,  penyimpanan
benda balok, penyimpanan benda tabung, dan penyimpanan benda bola dapat dilihat pada tabel 4.5.
Tabel 4.5. Pemberian Nilai OCR Fungsi
Nilai OCR Data 1
Data 2 Data 3
Data 4 Siaga
71 53
94 89
Siaga_grip 71
53 94
122 Ambil_benda
71 84
76 122
Kubus 33
53 90
89 Balok
48 67
82 89
Tabung 92
67 82
89 Bola
111 53
90 89
Gripper -
- -
89
Gambar 4.40. Listing Program Gerakan Mengambil Benda Listing
program pada gambar 4.40 adalah pergerakan motor servo saat mengambil benda secara bertahap satu persatu. Untuk mempermudah dalam penentuan tahapan sudut
motor servo, digunakan fungsi for untuk mencacah nilai OCR secara satu per satu. Dengan cara  ini,  maka  tidak  diperlukan  menulis  nilai  OCR  secara  satu  per  satu.  Tujuannya  yaitu
agar  pergerakan  motor  servo  menjadi  lebih  halus  ketika  menggerakan  lengan  robot. “Void” merupakan perintah untuk membuat suatu fungsi agar ketika dieksekusi selama
proses  tidak  perlu  menulis  ulang  subrutin  yang  terdapat  didalam  void.  Gambar  4.41 merupakan  listing  program  memindahkan  benda  kubus,  gambar  4.42  merupakan  listing
program  memindahkan  benda  balok,  gambar  4.43  merupakan  listing  program memindahkan  benda  tabung,  dan  gambar  4.44  merupakan  listing  program  memindahkan
benda bola.
Gambar 4.41. Listing Program Memindahkan Benda Kubus
Gambar 4.42. Listing Program Memindahkan Benda Balok