Analisis Individual Praktikum Hands On 1 : Basic KU 1201 – Pengantar Rekayasa Desain II
Nama 2015 NIM Kelompok Kelas
:
Adi Purnama
: : :
16514310 3 10
5
Maret
Pada praktikum ini, kami membuat robot lego berjenis driving base , salah satu bentuk dasar dari robot lego. Robot ini memiliki dua buah motor untuk menggerakan roda . Selain itu, robot ini juga memiliki sebuah motor tambahan untuk menggerakkan penggeser cuboid pada modul praktikum ke 4. Robot driving base ini dilengkapi dengan beberapa sensor tambahan seperti : 1. Sensor Ultrasonik (Mendeteksi jarak) 2. Sensor Warna (Mendeteksi warna lakban pada lantai) 3. Sensor Gyro (Mendeteksi perubahan orientasi sudut pada robot) Dengan robot driving base tersebut. Kelompok kami telah memprogram robot tersebut untuk melakukan beberapa instruksi, diantaranya : 1. 2. 3. 4. 5. 6. 7. 8.
Bergerak lurus Bergerak membelok Gerakan Tank Menggerakan objek cuboid Berhenti pada garis hitam lakban Berhenti setelah menempuh sudut tertentu Berhenti pada objek Bergerak lurus, dengan brick programming
Berikut adalah hasil analisis beberapa instruksi robot yang telah kelompok saya lakukan.
1. Bergerak lurus (Straight Move) Pada modul ini, kami merakit robot berjenis driving base. Model robot jenis ini memiliki dua buah motor pada bagian kiri dan kanan. Motor kanan disambungkan ke port B, sementara motor kiri disambungkan ke port C. Instruksi yang harus dilakukan robot adalah : 1. Maju selama 5 detik 2. Berhenti selama 2 detik 3. Mundur selama 5 detik Untuk melakukan instruksi diatas, kelompok kami membuat program sebagai berikut
1 2
Start Move steering (Bergerak maju 5 detik) Steering = 0 (Bergerak lurus) Power = 50 (Kecepatan motor) Seconds= 5 (Bergerak selama 5 detik) Brake at end (Mengerem ketika berhenti) B + C (Motor disambungkan ke port B &C)
3 .
Wait (Diam 2 detik) Time indicator 2 (Menunggu 2 detik)
4 .
Move steering (Bergerak mundur 5 detik) Steering = 0 (Bergerak lurus) Power = -50 (Kecepatan motor, mundur) Seconds= 5 (Bergerak selama 5 detik) Brake at end (Mengerem ketika berhenti) B + C (Motor disambungkan ke port B &C)
Uji coba program ini pada robot berjalan dengan maksimal. Robot bergerak sesuai dengan waktu tempuh yang telah ditentukan.
2. Bergerak membelok (Curved move) Modul ini menggunakan tipe robot yang sama dengan modul pertama. Oleh karena itu, kelompok ini hanya menjalankan program yang dibuat tanpa harus melakukan modifikasi pada robot. Pada modul ini, instruksi yang diberikan pada robot adalah : 1. Robot bergerak maju 360 derajat dari pusatnya , ke kiri dan ke kanan dengan steering 100% 2. Robot bergerak mundur 360 derajat dari pusatnya, ke kiri dan ke kanan dengan steering 50%
2
Berikut adalah program yang digunakan 1. 2.
Start Move steering (Bergerak maju 360 derajat ke kanan) Steering = 100% (kanan) Power = 50% (maju) Derajat perputaran roda =800 Move steering (Bergerak maju 360 derajat ke kiri) Steering = -100% (kiri) Power = 50% (maju) Derajat perputaran roda =800 Move steering (Bergerak mundur 360 derajat ke kanan) Steering = 50% (kanan) Power = -50% (mundur) Derajat perputaran roda =1600 Move steering (Bergerak mundur 360 derajat ke kiri) Steering = -50% (kiri) Power = -50% (mundur) Derajat perputaran roda =1600
3.
4.
5.
Catatan : Di antara blok program tersebut disisipkan blok Wait selama 1 sekon. Sebelum melakukan eksekusi program pada robot, kami melakukan serangkaian tes untuk menentukan derajat perputaran roda yang tepat agar robot tepat berputar 360 derajat. Setelah melakukan tes, kami menemukan bahwa bila nilai steering diatur pada 100 % ,putaran roda 800 derajat akan mengakibatkan putaran robot sebesar 360 . Apabila nilai steering diatur pada 50% , derajat putaran roda yang diperlukan adalah 1600 derajat. Meskipun demikian, setelah diamati lebih cermat, putaran robot sedikit melenceng dari 360 derajat. Perlu dilakukan pengetesan dengan lebih cermat dengan memperhatikan dimensi robot, jarak antar kedua roda dan diameter roda robot untuk mendapatkan nilai sudut putaran roda yang mengakibatkan putaran robot tepat 360 derajat. Selain itu, kami mengalami kehabisan baterai saat melakukan percobaan modul dua. Oleh karena itu , perlu disiapkan cadangan baterai AA saat melakukan praktikum untuk mengatasi persoalan seperti ini.
3
3. Tank move Pada modul ini, jenis robot yang digunakan adalah jenis driving base. Blok program tank move memungkinkan kita untuk mengatur salah satu dari kedua motor yang digunakan pada driving base. Instruksi yang harus dilakukan robot adalah : 1. Putar robot sebesar 360 derajat , jadikan roda kiri sebagai pusat rotasi. Ke kiri dan ke kanan dengan steering 100% 2. Putar robot sebesar 360 derajat , jadikan roda kanan sebagai pusat rotasi. Ke kiri dan ke kanan dengan steering 100% Program yang digunakan adalah 1 2
Start Tank move (Putar kiri, roda kiri sebagai pusat) Roda kiri diam (sebagai pusat) Roda kanan bergerak dengan power 100% (Berputar ke kiri) Degrees = 800
3
Tank move (Putar kanan, roda kiri sebagai pusat) Roda kiri diam (sebagai pusat) Roda kanan bergerak dengan power -100% (Berputar ke kanan) Degrees = 800 Tank move (Putar kanan, roda kanan sebagai pusat Roda kanan diam (sebagai pusat) Roda kiri bergerak dengan power 100% (Berputar ke kanan) Degrees = 800 Tank move (Putar kiri, roda kanan sebagai pusat) Roda kanan diam (sebagai pusat) Roda kiri bergerak dengan power -100% (Berputar ke kiri) Degrees = 800
4
5
4
Catatan selama 1 sekon.
:
Di antara blok program tersebut disisipkan blok Wait
Kendala yang dihadapi saat mengeksekusi modul ini adalah kurang tepatnya sudut putaran roda yang mengakibatkan sudut putaran robot 360 derajat. Pemilihan 800 pada nilai degrees hanyalah taksiran kasar yang dipilih agar robot berputar mendekati 360 derajat.
4. Menggerakkan objek Pada modul ini digunakan robot jenis driving base dengan sedikit modifikasi, yaitu medium motor- driving base. Pada bagian depan robot, ditambahkan mekanisme penangkap objek yang dapat dinaikturunkan dengan menggunakan sebuah medium motor. Medium motor ini disambungkan pada port A. Selain itu, digunakan juga sensor ultrasonik untuk mendeteksi jarak. Instruksi yang dilakukan pada robot adalah sebagai berikut. 1. Menangkap objek cuboid 2. Bergerak 10 cm 3. Putar cuboid 180 derajat dari posisi awal 1 2
Start Medium motor (Menggerakan penangkap objek) Power = -30 (Menurunkan penangkap objek) Degree = 100 (Sudut penurunan)
3
Move steering (Maju) Dengan blok program ini, robot akan terus maju sampai kondisi pada blok program selanjutnya terpenuhi (bergerak 10 cm) Ultrasonic sensor (Bergerak 10 cm) Direction : 2 (Any) Amount : 10 Distance in cm Blok program ini mendeteksi pergerakan robot sampai 10 cm.
5
Move steering (stop) Berfungsi untuk menghentikan pergerakan robot apabila sensor ultrasonik telah mendeteksi perubahan jarak sebesar 10 cm Tank move (berputar 180 derajat dari poros) Power left : 50 Power right : 0 Degrees : 180 Blok program ini akan menginstruksikan robot untuk berputar 180 derajat ke kanan dengan roda kanan robot sebagai poros putaran.
Ketika di uji coba pada robot, sensor ultrasonik tidak berhasil mendeteksi pergerakan 10 cm robot. Menurut analisis saya, adanya beberapa benda di depan robot mengganggu pancaran sensor ultrasonik robot. Oleh karena itu, kelompok kami mengganti sensor ultrasonik dengan blok program timer. Kami melakukan beberapa uji coba untuk menentukan durasi waktu yang tepat agar robot bergerak tepat 10 cm. Durasi waktu yang kami temukan adalah dua detik.
5. Berhenti pada garis Untuk melakukan modul ini, robot driving base diberi sedikit modifikasi. Kelompok kami menambahkan sensor cahaya yang diarahkan ke bawah pada robot. Sensor ini dipasang di sisi robot dan disambungkan dengan port 3. Instruksi yang harus dilakukan robot adalah terus bergerak lurus dan akan berhenti sampai robot mendeteksi garis hitam pada lantai. Program yang digunakan pada modul ini adalah sebagai berikut 1. 2
Start Move tank (Bergerak lurus) Power right & power left = 20. (Maju) Blok program ini akan menginstruksikan robot untuk terus bergerak maju sampai kondisi pada blok selanjutnya terpenuhi.
6
Wait - Colour sensor , reflected light intensity (Deteksi lakban hitam) Compare type : 4 (Lebih kecil) Treshold value : 5 (Gelap) Blok ini akan mendeteksi apakah intensitas cahaya yang dipantulkan lebih kecil daripada 5. Ketika sensor mendeteksi lakban hitam, intensitas pantulan cahaya akan lebih kecil daripada intensitas pantulan cahaya keramik lantai ruangan. Move tank (Stop) Blok ini berfungsi untuk menghentikan pergerakan robot apabila kondisi sebelumnya (wait – color sensor) terpenuhi
Ketika pertama kali diuji coba pada robot, kelompok kami menentukan nilai treshold value dengan 50. Namun, program ini gagal dieksekusi. Robot gagal mendeteksi lakban hitam yang dipasang pada lantai. Menurut analisis saya, kondisi pencahayaan ruangan pada saat dilakukannya uji coba menentukan nilai treshold value cahaya. Ketika robot melewati lakban hitam, mungkin nilai treshold value yang dideteksi tidak bernilai lima puluh. Oleh karena itu, kami melakukan uji coba untuk menentukan nilai treshold value lakban hitam pada kondisi pencahayaan ruangan saat itu. Setelah dilakukan pengujian, nilai treshold value untuk lakban hitam adalah lima.
6. Berhenti pada sudut tertentu (gyro sensor) Jenis robot yang digunakan pada modul ini adalah robot berjenis driving base. Namun, robot ini diberi tambahan sensor gyro yang terkoneksi pada slot 2. Sensor ini dipasang di bagian sisi samping robot. Dalam modul ini, robot diinstruksikan untuk melakukan putaran 180 derajat. Program yang digunakan dalam modul ini adalah sebagai berikut.
1.
Start
7
2
Move tank (Bergerak berputar) Power left : 50 (Maju) Power right : 0 (berputar ke kanan dengan poros roda kanan) Blok program ini akan memerintahkan robot untuk terus berputar dengan roda kanan sebagai poros sampai kondisi pada blok selanjutnya terpenuhi (Gyro sensor, 180 derajat Wait – Gyro sensor Direction : 0 (increase) Amount : 180 derajat. Blok program ini mendeteksi perputaran robot dengan menggunakan sensor gyro.
3
4
Move tank (Stop) Blok program ini berfungsi untuk menghentikan pergerakan robot apabila kondisi blok sebelumnya (wait , gyro sensor) telah terpenuhi
Ketika dilakukan uji coba, robot bergerak berputar lalu berhenti apabila telah berputar 180 derajat. Namun, saat dilakukan pengamatan lebih cermat, robot tidak berputar tepat 180 derajat. Ada sedikit penyimpangan sudut yang teramati. Menurut analisis saya, hal ini disebabkan oleh pemasangan sensor gyro pada robot yang tidak stabil. Sensor gyro pada robot ini merupakan sensor yang cukup sensitif untuk mendeteksi sudut perputaran. Menurut instruction manual pada ev3 user guide, pemasangan sensor gyro pada robot harus dilakukan secara hati- hati. Sensor gyro harus benar benar tidak bergerak ketika disambungkan pada brick EV3. Sementara itu, dalam pemasangan sensor gyro pada robot kelompok kami, terdapat beberapa perubahan orientasi sudut pada sensor gyro. Hal ini menyebabkan penyimpangan sudut pada sensor gyro di robot kami.
7. Berhenti pada objek. Pada modul ini, robot ditambahkan sensor ultrasonik yang dipasang pada bagian depan robot. Sensor ini dikoneksikan pada port 4 dalam brick EV3. Sensor ultrasonik berfungsi untuk mendeteksi jarak robot terhadap benda – benda di depannya. Sensor ini bekerja dengan cara
8
mengukur lama pantulan suara frekuensi tinggi pada sensor. modul ini, robot diinstruksikan untuk melakukan :
Pada
1.Mendekat ke cuboid. Apabila jarak robot dengan cuboid telah mencapai 20 cm , robot akan berhenti 2. Menjauh dari cuboid. Apabila jarak robot dengan cuboid telah mencapai 35 cm, robot akan berhenti. Berikut adalah program yang digunakan untuk menjalankan modul ini. : 1. 2
3.
4.
Start Move tank (Mendekati cuboid) Power left & right = 20 (Maju) Blok program ini berfungsi untuk menggerakkan robot mendekati cuboid. Robot akan terus maju sampai kondisi pada blok selanjutnya (Wait , ultrasonic sensor) terpenuhi Wait – Ultrasonic sensor (Mendeteksi jarak cuboid) Compare type : 4 (Lebih kecil) Treshold value : 20 Distance in cm. Blok program ini berfungsi untuk mendeteksi jarak robot terhadap cuboid. Robot akan melakukan blok program selanjutnya (berhenti) apabila jarak robot terhadap cuboid lebih kecil daripada 20 cm. Move tank (stop) Blok program ini berfungsi untuk menghentikan pergerakan robot apabila kondisi sebelumnya (Jarak cuboid < 20 cm) terpenuhi
5.
Move tank (Menjauhi cuboid) Power right & left = -20 (Mundur) Blok program ini berfungsi untuk menggerakan robot menjauhi cuboid
6.
Wait – Ultrasonic sensor (Mendeteksi jarak cuboid) Compare type : 2 (Lebih besar) Treshold value : 35 Distance in cm. Blok program ini berfungsi untuk mendeteksi jarak robot terhadap cuboid.
9
7.
Robot akan melakukan blok program selanjutnya (berhenti) apabila jarak robot terhadap cuboid lebih besar daripada 35 cm. Move tank (stop) Blok program ini berfungsi untuk menghentikan pergerakan robot apabila kondisi sebelumnya (Jarak cuboid < 20 cm) terpenuhi
Ketika diuji coba pertama kali pada robot, kelompok kami membuat program agar robot berhenti ketika jarak cuboid dengan robot sama dengan nilai yang telah ditentukan (35 dan 20 cm). Namun, pada prakteknya , kondisi ini tidak pernah terpenuhi. Berdasarkan pengamatan kami pada perilaku robot, robot tidak pernah mendeteksi nilai jarak yang tepat sama dengan nilai yang telah ditentukan. Menurut analisis saya, nilai yang dihasilkan oleh sensor tidak selalu bilangan bulat. Jadi, nilai jarak yang dibaca sensor merupakan bilangan desimal. Sementara itu, robot baru akan berhenti ketika nilai jarak yang dibaca sensor tepat sama dengan bilangan bulat yang kami instruksikan dalam program. Karena pengambilan data sensor tidak bersifat kontinu (hanya mengambil sampel jarak setiap beberapa sekon), jadi ada saat dimana sensor melewatkan nilai pada jarak tertentu. Untuk mengatasi hal ini, kelompok kami memutuskan untuk mengubah program robot. Jadi, robot akan berhenti ketika nilai jaraknya lebih kecil daripada 20 & lebih besar daripada 35. Dengan program ini, ketika nilai jarak yang dibaca sensor sudah lebih kecil dari nilai yang ditentukan (misalnya 20) maka robot akan otomatis berhenti. Hal ini akan mengatasi angka desimal yang dihasilkan oleh sensor. Jadi, misalnya sensor membaca jarak sebesar 20,01 cm , robot akan berhenti. Selisih nilai yang kecil ini (0,01) tidak akan terdeteksi oleh mata kita. Meskipun demikian, jarak yang diamati pada uji coba robot yang kedua masih berbeda dari nilai 10 cm. Menurut analisis saya, hal yang menyebabkan ini adalah keterbatasan sensor yang digunakan. Menurut data yang tercantum pada EV3 user guide , tingkat akurasi sensor ini adalah 1 cm. Jadi , ada penyimpangan 1 cm terhadap jarak yang dideteksi dengan sensor.
8. Brick Programming
10
Pada modul kedelapan ini, digunakan robot berjenis driving base. Robot akan diinstruksikan dengan menggunakan block programming. Instruksi yang diberikan sama dengan instruksi pada modul pertama. Program yang digunakan untuk menjalankan modul ini adalah : 1. 2. 3. 4. 5. 6. 7. 8. 9.
Start Move steering, maju. Wait, 5 sekon Move steering, stop Wait, 2 sekon Move steering, mundur Wait, 5 sekon Move steering, stop Loop count = 1
Ketika dilakukan uji coba, program sukses dieksekusi. Namun , berdasarkan pengamatan, kecepatan robot jauh lebih tinggi daripada yang dilakukan pada modul pertama. Menurut analisis saya, hal ini disebabkan karena kita tidak dapat mengatur power pada motor ketika melakukan brick programming, sementara itu kita dapat mengatur power ketika memrogram di software. Jadi, nilai power langsung diatur secara default oleh sistem pada brick programming.
11