T1 612011052 BAB III
BAB III
PERANCANGAN SISTEM
Pada bab ini akan dijelaskan mengenai perancangan dari perangkat keras, serta perangkat lunak dari algoritma robot.
3.1. Sistem Kontrol
Sistem kontrol pergerakan pada robot dibagi menjadi 2 bagian utama, yaitu sistem kontrol utama dan sistem kontrol servo yang mengatur pergerakan servo pada robot. Sistem kontrol utama terdiri dari smartphone dan mikrokontroler ATmega 644p. Smartphone berfungsi sebagai processor utama yang menentukan gerakan yang akan dilakukan oleh robot, mikrokontroler ATmega 644p berfungsi sebagai sistem kontrol yang mengatur kesinambungan antara smartphone dan servo controller (CM530). CM530 menerima perintah gerakan dari smartphone yang sudah diterjemahkan oleh mikrokontroller ATmega 644p menjadi bahasa yang dimengerti oleh CM530, kemudian CM530 mengatur pergerakan servo pada robot.
DAC R/2RLadder Smartphone
OC1A/OC1B ATmega 644p
TX1/RX1
TX0/RX0 PORT A&C Servo Kepala
(2)
3.1.1. Kontrol Actuator Robot
Robot GP ini memiliki 18 motor servo, dengan rincian 3 servo di setiap lengan dan 6 servo di setiap kaki. Dengan demikian robot akan memiliki 18 derajat kebebasan sehingga pergerakan robot akan menyerupai pergerakan dari manusia. 18 motor servo ini akan dikontrol menggunakan servo controller CM530.
3.1.2. Kontrol Utama
Kontrol utama pada robot terdiri dari sebuah smartphone untuk mengirimkan perintah gerakan robot dan sebuah mikrokontroler untuk mengatur kesinambungan antara smartphone dan CM530. Modul bluetooth digunakan untuk komunikasi secara serial antara smartphone dan mikrokontroler menggunakan pin TX1 dan RX1 pada mikrokontroler. Pin TX0 dan RX0 pada mikrokontroler digunakan untuk mengirim data yang berisi perintah gerakan dari smartphone ke CM530. Port A dan port B pada mikrokontroler digunakan untuk mengirim nilai velocity dan direction yang berupa data digital yang nantinya akan digunakan untuk acceleration dan deacceleration pada gerakan robot.
(3)
3.2. Desain Perangkat Keras 3.2.1. Konstruksi Robot
(a) (b)
Gambar 3.2. (a)Perancangan mekanik robot dari depan (b)Perancangan mekanik robot dari samping.
Robot GP ini menggunakan bahan perpaduan antara aluminium dan acrylic untuk bodinya. Perpaduan kedua bahan ini dimaksudkan agar robot memiliki bobot yang ringan sehingga dalam bergerak diperoleh kecepatan dan keseimbangan yang baik. Robot ini memiliki 18 degree of freedom, dengan rincian 6 di setiap kaki, dan 3 di setiap lengan. Servo yang digunakan pada robot adalah servo seri AX-12A, AX-18A, dan MX-28. AX-12A digunakan pada bagian lengannya. AX-18A digunakan pada bagian kaki dengan id 7, 8, 11, 12, 17, dan 18. MX-28 digunakan pada bagian kaki dengan id 9, 10 ,13 ,14 ,15, dan 16. Untuk keterangan detail mengenai konstruksi ulang pada robot GP beserta servo-servo yang digunakan dapat dilihat pada tabel 3.1 sampai tabel 3.4.
(4)
Tabel 3.1. Tabel Keterangan Mekanik Robot. HARDWARE
Dimensi (plt) : 170129380 [mm]
Berat ± 2281 g
DOF 18 (tangan 32, kaki 62)
Tabel 3.2. Tabel Spesifikasi Servo AX-12A[8].
Sudut Operasi Maksimum 300 °
Torsi Maksimum 12 kg
Kecepatan Tanpa Beban 59 rpm pada 12v
Ukuran (plt) : 325040 [mm]
Berat 54,6 g
Tegangan Kerja 9-12 Volt
Tabel 3.3. Tabel Spesifikasi Servo AX-18A[9].
Sudut Operasi Maksimum 300 °
Torsi Maksimum 18 kg
Kecepatan Tanpa Beban 97rpm pada 12v
Ukuran (plt) : 325040[mm]
Berat 54,5 g
Tegangan Kerja 9-12 Volt
Tabel 3.4. Tabel Spesifikasi Servo MX-28[10].
Sudut Operasi Maksimum 360 °
Torsi Maksimum 28 kg
Kecepatan Tanpa Beban 55rpm pada 12v
Ukuran (plt) : 35,650,630,5 [mm]
Berat 72 g
(5)
3.2.2. Mikrokontroler Tipe Atmega 644p
Mikrokontroller Atmega 644p digunakan untuk menerima perintah dari smartphone android melalui bluetooth. Perintah yang diterima yaitu perintah untuk mengatur gerak servo kepala dan gerak servo tubuh. Pergerakan servo tubuh diatur dengan cara mengirimkan paket gerakan ke CM-530.
3.2.3. Modul Bluetooth
Modul bluetooth digunakan untuk media pengiriman data yang berupa perintah dari smartphone android ke mikrokontroler. Perintah akan dikirimkan dari smartphone melalui bluetooth sehingga diperlukan modul bluetooth agar mikrokontroler dapat terhubung dengan smartphone dan menerima data yang dikirimkan.
3.2.4. Sensor Gyroscope
Sensor gyroscope tipe GS-12 ini digunakan oleh CM-530 untuk mengatur keseimbangan robot GP. Sensor ini digunakan dengan cara memberikan offset pada kaki robot dengan id 11,12,17 dan 18 untuk axis x dan 13,14,15 dan 16 untuk axis y saat robot dalam kondisi yang tidak seimbang.
3.2.5. R/2R Ladder
Proses percepatan dan perlambatan motion maju membutuhkan nilai tilt kepala robot sebagai parameter besarnya langkah robot untuk maju. Mikrokontroler perlu mengirimkan nilai tilt yang berupa data digital ke CM-530. Pada CM-530 hanya tersisa pin ADC sehingga diperlukan modul konversi digital ke analog. R/2R Ladder digunakan sebagai pengkonversi data digital ke analog. Bentuk dan skematik rangkaian R/2R ladder dapat dilihat pada gambar 3.3 dan gambar 3.4.
(6)
Gambar 3.3. Rangkaian R/2R resolusi 8 bit yang digunakan pada robot.
Gambar 3.4. Rangkaian skematik R/2R resolusi 8 bit.
Vout
(7)
3.3. Bagian Software 3.3.1. Roboplus Motion
Roboplus motion merupakan program yang digunakan untuk membuat motion yang nantinya motion tersebut akan dipanggil di roboplus task untuk membuat robot bergerak sesuai dengan motion tersebut. Motion-motion tersebut disimpan dalam motion page. Roboplus motion menyediakan 255 motion page yang masing-masing motion page memiliki 6 step yang dapat diisi gerakan-gerakan untuk membentuk kesatuan gerakan tertentu. Gerakan tersebut dibuat dengan menentukan nilai pada masing-masing servo di pose of step. Pada motion page terdapat pilihan untuk mengatur motion page lanjutan dan motion page akhir dari motion page tersebut dengan cara mengisi kolom next dan exit dengan nomer motion page yang dituju. Seperti terlihat pada gambar 3.5 jika robot diberi perintah untuk melakukan motion page nomer 3, maka robot akan melakukan urutan motion page nomer 3 kemudian nomer 5 kemudian nomer 6 kembali ke nomer 5 lagi dan jika perintah berhenti diberikan ke robot, maka robot akan melakukan motion page nomer 8 seperti yang terdapat pada kolom exit pada motion page terakhir robot diberikan perintah.
(8)
(9)
3.3.3. Roboplus Task
Roboplus Task merupakan program dari roboplus yang digunakan untuk meletakkan algoritma pergerakan robot dan untuk memanggil motion yang sudah dibuat di roboplus motion. Pada roboplus task terdapat 2 fungsi yang berjalan secara terpisah. Fungsi pertama yaitu fungsi main yang merupakan fungsi yang pertama kali dijalankan dan didalamnya terdapat code untuk mengatur pergerakan servo pada robot. Jumlah variable yang dapat digunakan di roboplus task adalah 50 variabel dan memori maksimalnya adalah 16124 byte. Fungsi lain yang jalannya terpisah dari jalannya fungsi main adalah fungsi callback. Pada fungsi callback tidak dapat diisi code yang membutuhkan banyak waktu dan hanya memiliki maksimal ukuran 512 byte, jadi tidak diperbolehkan adanya penggunaan perulangan pada fungsi callback ini. Pada fungsi ini juga tidak diperbolehkan adanya label, jump dan pemanggilan fungsi lainnya. Fungsi callback ini biasanya berisi code untuk mengatur sensor gyroscope yang ada. Sensor gyroscope digunakan untuk membuat robot lebih seimbang dalam melakukan gerakan-gerakan yang ada.
(10)
3.3.4. Algoritma CutMotion
Pada bagian ini akan dijelaskan 2 buah flowchart yang digunakan untuk menggambarkan algoritma robot saat bergerak. Flowchart pertama merupakan flowchart yang digunakan tahun lalu saat robot pertama kali dibeli. Flowchart kedua merupakan flowchart yang digunakan sekarang dengan algoritma cut motion.
Gambar 3.7. Diagram Alir Algoritma Bawaan Robot.
Dapat dilihat pada Gambar 3.7 dimana robot hanya menerima perintah motion yang ada lalu melakukannya tanpa membedakan mana motion berulang mana motion sekali gerak. Motion berulang adalah motion yang dilakukan dengan mengulang pergerakan kaki kanan dan kaki kiri robot seperti maju, geser, geser putar, putar dan mundur. Motion berulang dapat dipotong pergerakannya. Motion sekali gerak adalah motion yang terdiri dari 1 gerakan utuh dan tidak dapat dipotong pergerakannya. Pada algoritma yang seperti ini motion berulang dibuat dengan memberikan nilai pada kolom next dan exit yang tersedia pada Roboplus motion seperti terlihat pada gambar 3.10. Robot hanya memanggil motion page awalnya saja kemudian dengan sendirinya robot akan berjalan sesuai dengan nilai next dan exit yang diberikan di Roboplus motion. Dengan di isinya nilai next dan exit maka tidak mungkin untuk dilakukan cut motion saat robot melakukan gerakan berulang karena robot hanya akan menjalankan motion page yang ada pada kolom exit jika robot diberi perintah motion lain. Oleh sebab itu, nilai next dan exit pada Roboplus motion dikosongi sehingga algoritma yang memungkinkan robot untuk melakukan cut motion dibuat. Flowchart algoritma cut motion dapat dilihat pada gambar 3.8
(11)
(12)
Gambar 3.8. Diagram Alir Cut Motion.
Flag standby bernilai 1 berarti robot sedang dalam kondisi diam ditempat, dan sebaliknya jika flag standby bernilai 0 berarti robot tidak dalam kondisi diam ditempat. Flowchart bagian A dan C berfungsi untuk menyamakan kaki kanan dan kaki kiri robot dan membuat flag standby bernilai 1 lagi. Perbedaan flowchart bagian A dan C yaitu pada flowchart bagian A masih ada kemungkinan jika flag standby bernilai 1, namun pada flowchart bagian C flag standby sudah pasti bernilai 0.
Pertama-tama flag standby bernilai 1. Robot menunggu perintah motion dari smartphone kemudian robot akan membandingkan apakah perintah motion berulang atau motion tidak berulang. Jika motion tidak berulang dan flag standby bernilai 1 maka robot akan langsung melakukan motion tersebut. Namun jika flag standby bernilai 0 maka robot akan masuk ke flowchart bagian C kemudian melakukan motion tersebut. Jika motion merupakan motion berulang dan flag standby bernilai 1 maka robot akan melakukan jalan di tempat terlebih dahulu kemudian melakukan motion berulang dengan kaki kanan atau kaki kiri terlebih dahulu tergantung oleh kaki yang terakhir menapak. Namun jika flag standby bernilai 0 maka robot akan langsung melakukan motion berulang tersebut yang dimulai dengan kaki kanan atau kaki kiri tergantung oleh kaki yang terakhir menapak.
Dengan digunakannya algoritma cut motion ini, robot akan lebih cepat dalam mengejar bola dan juga sistem robot akan menjadi real time dikarenakan smartphone tidak perlu lagi memberikan delay saat menjalankan motion.
(1)
3.3. Bagian Software 3.3.1. Roboplus Motion
Roboplus motion merupakan program yang digunakan untuk membuat motion
yang nantinya motion tersebut akan dipanggil di roboplus task untuk membuat robot bergerak sesuai dengan motion tersebut. Motion-motion tersebut disimpan dalam motion page. Roboplus motion menyediakan 255 motion page yang masing-masing motion page memiliki 6 step yang dapat diisi gerakan-gerakan untuk membentuk kesatuan gerakan tertentu. Gerakan tersebut dibuat dengan menentukan nilai pada masing-masing servo di pose of step. Pada motion page terdapat pilihan untuk mengatur motion page
lanjutan dan motion page akhir dari motion page tersebut dengan cara mengisi kolom
next dan exit dengan nomer motion page yang dituju. Seperti terlihat pada gambar 3.5 jika robot diberi perintah untuk melakukan motion page nomer 3, maka robot akan melakukan urutan motion page nomer 3 kemudian nomer 5 kemudian nomer 6 kembali ke nomer 5 lagi dan jika perintah berhenti diberikan ke robot, maka robot akan melakukan motion page nomer 8 seperti yang terdapat pada kolom exit pada motion page terakhir robot diberikan perintah.
(2)
(3)
3.3.3. Roboplus Task
Roboplus Task merupakan program dari roboplus yang digunakan untuk meletakkan algoritma pergerakan robot dan untuk memanggil motion yang sudah dibuat di roboplus motion. Pada roboplus task terdapat 2 fungsi yang berjalan secara terpisah. Fungsi pertama yaitu fungsi main yang merupakan fungsi yang pertama kali dijalankan dan didalamnya terdapat code untuk mengatur pergerakan servo pada robot. Jumlah variable yang dapat digunakan di roboplus task adalah 50 variabel dan memori maksimalnya adalah 16124 byte. Fungsi lain yang jalannya terpisah dari jalannya fungsi
main adalah fungsi callback. Pada fungsi callback tidak dapat diisi code yang membutuhkan banyak waktu dan hanya memiliki maksimal ukuran 512 byte, jadi tidak diperbolehkan adanya penggunaan perulangan pada fungsi callback ini. Pada fungsi ini juga tidak diperbolehkan adanya label, jump dan pemanggilan fungsi lainnya. Fungsi
callback ini biasanya berisi code untuk mengatur sensor gyroscope yang ada. Sensor
gyroscope digunakan untuk membuat robot lebih seimbang dalam melakukan gerakan-gerakan yang ada.
(4)
3.3.4. Algoritma CutMotion
Pada bagian ini akan dijelaskan 2 buah flowchart yang digunakan untuk menggambarkan algoritma robot saat bergerak. Flowchart pertama merupakan flowchart yang digunakan tahun lalu saat robot pertama kali dibeli. Flowchart kedua merupakan flowchart yang digunakan sekarang dengan algoritma cut motion.
Gambar 3.7. Diagram Alir Algoritma Bawaan Robot.
Dapat dilihat pada Gambar 3.7 dimana robot hanya menerima perintah motion
yang ada lalu melakukannya tanpa membedakan mana motion berulang mana motion
sekali gerak. Motion berulang adalah motion yang dilakukan dengan mengulang pergerakan kaki kanan dan kaki kiri robot seperti maju, geser, geser putar, putar dan mundur. Motion berulang dapat dipotong pergerakannya. Motion sekali gerak adalah motion yang terdiri dari 1 gerakan utuh dan tidak dapat dipotong pergerakannya. Pada algoritma yang seperti ini motion berulang dibuat dengan memberikan nilai pada kolom
next dan exit yang tersedia pada Roboplus motion seperti terlihat pada gambar 3.10. Robot hanya memanggil motion page awalnya saja kemudian dengan sendirinya robot akan berjalan sesuai dengan nilai next dan exit yang diberikan di Roboplus motion. Dengan di isinya nilai next dan exit maka tidak mungkin untuk dilakukan cut motion
saat robot melakukan gerakan berulang karena robot hanya akan menjalankan motion page yang ada pada kolom exit jika robot diberi perintah motion lain. Oleh sebab itu, nilai next dan exit pada Roboplus motion dikosongi sehingga algoritma yang memungkinkan robot untuk melakukan cut motion dibuat. Flowchart algoritma cut motion dapat dilihat pada gambar 3.8
(5)
(6)
Gambar 3.8. Diagram Alir Cut Motion.
Flag standby bernilai 1 berarti robot sedang dalam kondisi diam ditempat, dan sebaliknya jika flag standby bernilai 0 berarti robot tidak dalam kondisi diam ditempat.
Flowchart bagian A dan C berfungsi untuk menyamakan kaki kanan dan kaki kiri robot dan membuat flag standby bernilai 1 lagi. Perbedaan flowchart bagian A dan C yaitu pada flowchart bagian A masih ada kemungkinan jika flag standby bernilai 1, namun pada flowchart bagian C flag standby sudah pasti bernilai 0.
Pertama-tama flag standby bernilai 1. Robot menunggu perintah motion dari
smartphone kemudian robot akan membandingkan apakah perintah motion berulang atau motion tidak berulang. Jika motion tidak berulang dan flag standby bernilai 1 maka robot akan langsung melakukan motion tersebut. Namun jika flag standby bernilai 0 maka robot akan masuk ke flowchart bagian C kemudian melakukan motion tersebut. Jika motion merupakan motion berulang dan flag standby bernilai 1 maka robot akan melakukan jalan di tempat terlebih dahulu kemudian melakukan motion berulang dengan kaki kanan atau kaki kiri terlebih dahulu tergantung oleh kaki yang terakhir menapak. Namun jika flag standby bernilai 0 maka robot akan langsung melakukan
motion berulang tersebut yang dimulai dengan kaki kanan atau kaki kiri tergantung oleh kaki yang terakhir menapak.
Dengan digunakannya algoritma cut motion ini, robot akan lebih cepat dalam mengejar bola dan juga sistem robot akan menjadi real time dikarenakan smartphone