RANCANG BANGUN ROBOT ARM BERBASIS MIKROKONTROLER ATMEGA 8535 Disusun Oleh: Nama : Guntoro situmorang NPM : 20406880 Jurusan : T. Mesin Pembimbing : Dr. Sri Poernomo Sari, ST., MT.
Latar Belakang Penggunaan sistem robotik (otomatis) disetiap bidang industri, berguna untuk meringankan beban manusia dalam melakukan / mengerjakan proses produksinya Permintaan pasar yang semakin banyak dan membutuhkan waktu kerja yang lama, tenaga yang besar hanya dapat di gantikan oleh sebuah alat, yaitu alat yang bisa mengganti manusia untuk melakukan hal tersebut. Sistem Robotika yang bisa bekerja mengambil, memindahkan barang sangat tepat dalam mempermudah pekerjaan manusia, Robot arm (lengan) memiliki fungsi gerak yang lebih tepat dan efisien.
Batasan Masalah Batasan masalah pada penulisan ini adalah sistem Mekanik dan pengaturan motor DC sebagai motor penggerak pada sistem penggerakan robot agar robot dapat bergerak sesuai yang diinginkan. Penulis tidak membahas sistem mekanika fisik robot lebih lanjut, seperti beban yang dapat di angkat, torque pada tiap motor dan kekuatan bahan yang di pakai Pada Aplikasi Programing pembuatan program perangkat lunak (software) yang nantinya sebagai perintah yang di tanamkan ke dalam mikrokontroller yang berfungsi untuk pengendalian sistematika pola kerja atau gerak Robot Arm, Sehingga cara kerja / sistem kontroler dari sistem Robot Arm mudah dipelajari dan dipahami. Penggunaan fungsi – fungsi komponen Mikrokontroller AVR Atmega 8535 lebih lanjutsebagai kontroler.
Tujuan Penelitian tujuan penelitian ini adalah merancang dan membuat sistem sebuah Robot Arm (lengan robot) yang mampu bergerak secara otomatis untuk mengangkat dan memindahkan barang sesuai berat dan jarak yang telah ditentukan.
PERANCANGAN Perancangan Mekanik Robot Bahan yang digunakan untuk robot ini adalah aklyrik dan aluminium . Aklyrik dipilih untuk bahan dasar rangka kerena sifatnya yang kokoh tetapi memiliki bobot yang ringan, sedangkan alumunium digunakan sebagai rangka pada robot, ini sangat efektif untuk menopang seluruh rangkaian. Penggerak yang digunakan adalah motor DC demgam voltase 12 Volt. Total berat robot ± 3 kg, jika robot terlalu berat maka akan berpengaruh pada kerja motor .
Perancangan Dan Pembuatan Perangkat Lunak Ukuran robot Rancangan robot ini menggunakan base dasar berbentuk balok dengan ukuran : Panjang = 20 cm, Lebar = 20 cm, tinggi = 35 cm yang di dalamnya terdapat motor gearbox, tempat peletakan komponen elektronika, Pergerakan poros lengan = 180° Tinggi pengangkatan beban = 45 cm Panjang jangkauan lengan = 30 cm tinggi tiang lengan = 25 cm Perancangan Dan Pembuatan Perangkat Lunak Algoritma pergerakan robot diprogram dengan menggunakan perangkat lunak CodeVision AVR C Compiler. Dalam penulisan ini digunakan bahasa C sebagai basic program yang nantinya akan di flash ke dalam IC type ATMega 8535
Gambar robot arm Gambar robot tampak kanan. Gambar robot tampak kiri.
. Gambar Robot tampak Atas Gambar Robot tampak Depan
PENGUJIAN Pengujian Motor DC Kecepatan putaran dari motor DC sebanding dengan tegangan yang diberikan dan juga sebanding dengan arus listrik yang diberikan Untuk mengetahui lebih lanjut dilakukan pengujian motor DC ini guna mengetahui pergerakan robot beroda jalan maju, mundur, atau belok. Untuk menggerakan motor DC dibutuhkan rangkain yang dapat mengatur DIRIECTION (arah cw atau ccw) dan PWM (kecepatan untuk motor itu sendiri). Peralatan : 1. Mikrokontroler AVR ATMEGA8535 2. Motor DC 3. Seperangkat downloader ISP & program code vision Rangkaian : Atmega 8535 Driver Motor Motor DC
Logika Pergerakan Robot Robot akan bergerak sesuai dengan navigasi yang ditanamkan padanya sistem navigasi pada robot lengan menggunakan inputan nilai logika yang ada pada limit switch yang juga berperan sebagai inputan. Pergerakan robot berdasarkan nilai yang di dapat dari limit switch : Kondisi ini terjadi pada SetCounter 3 Apabila sw1_lengan_bawah=0 dan sw3_penjepit=1 maka robot akan membuka penjepit dengan cara motor menarik tali yang terhubung ke penjepit sampai nilai sw3_penjepit = 0 maka motor penarik penjepit akan berhenti dalam beberapa detik, lalu akan melonggar lagi dan kembali menjepit lalu lompat ke program selanjutnya yaitu setcounter 5. Pada set counter 5 Apabila sw1_lengan_bawah=0 dan sw3_penjepit=1 maka motor lengan akan berputar sehingga membuat lengan bergerak ke atas, sampai nilai sw2_lengan_atas=0, maka motor akan berhenti lalu melompat ke SetCounter 4.
Pada SetCounter 4 jika ((sw5_poros2==0) dan (sw4_poros1==1)) maka motor poros bawah akan bergerak searah jarum jam, sampai nilai ((sw5_poros2==1) dan (sw4_poros1==0)) maka gerak motor akan berhenti lalu melompat ke SetCounter 6. Jika ((sw5_poros2==1) dan (sw4_poros1==0)) maka motor poros bawah akan bergerak berlawanan jarum jam sampai nilai ((sw5_poros2==0) dan (sw4_poros1==1)) maka gerak motor akan berhenti lalu melompat ke SetCounter 6. Pada SetCounter 6 jika (sw1_lengan_atas==0) maka lengan akan turun , dan apabila sudah sampai dalam kondisi ((sw2_lengan_bawah==0) dan (sw3_penjepit==1)) maka gerak motor akan berhenti dan melompat ke SetCounter 7. Pada SetCounter 7 jika ((sw2_lengan_bawah==0) dan (sw3_penjepit==1)) maka penjepit akan terbuka, terbukanya penjepit disebabkan oleh gerak motor yang menggulung tali yang terhubung pada penarik. Apabila nilai ((sw3_penjepit==0) dan (sw2_lengan_bawah==0)) maka gerakan motor yang menggulung tali penjepit akan berhenti, setelah beberapa detik motor akan bergerak kembali tetapi bergerak kea rah yang berlawanan sehingga mengendurkan gulungan tali yang ada pada motor, setelah itu program melompat ke SetCounter 3 kembali.
Inisialisasi Variabel Menjadi Alamat Port yang digunakan sebagai media Output yang di hubungkan Pada IC L298, dan Port Yang di gunakan adalah PORT D pada Mikrokontroler //motor DC #define dirA_lengan PORTD.7 #define dirB_lengan PORTD.6 #define dirC_poros PORTD.5 #define dirD_poros PORTD.4 #define dirE_jepit PORTD.3 #define dirF_jepit PORTD.2 Inisialisasi Variabel Menjadi Alamat Port yang berfungsi sebagai Inputan yang diterima oleh Mikrokontroler dan Port Yang digunakan adalah PORTC //switch #define sw1_lengan_atas PINC.7 #define sw2_lengan_bawah PINC.6 #define sw3_penjepit PINC.5 #define sw4_poros1 PINC.4 #define sw5_poros2 PINC.3
Program yang merupakan fungsi gerak dari robot Program yang merupakan fungsi gerak dari robot. Fungsi di bawah ini merupakan gerak poros bawah, variabel yang telah di definisikan sebagai Port void putar_poros_berhenti() { dirC_poros = 1; dirD_poros= 1; //pwm_poros=0; } void putar_poros_searah_jarum_jam() dirC_poros = 1; dirD_poros= 0; //pwm_poros=100; void putar_poros_berlawanan_jarum_jam() dirC_poros = 0; dirD_poros= 1;
Program yang merupakan fungsi gerak dari robot Program yang merupakan fungsi gerak dari robot. Fungsi di bawah ini merupakan gerak Lengan, variabel yang telah di definisikan sebagai Port void putar_lengan_turun() { dirA_lengan = 0; dirB_lengan= 1; //pwm_lengan=100; } void putar_lengan_berhenti() dirA_lengan = 1; dirB_lengan= 1; //pwm_lengan=0; void putar_lengan_naik() dirA_lengan = 1; dirB_lengan= 0;
Program yang merupakan fungsi gerak dari robot Program yang merupakan fungsi gerak dari robot. Fungsi di bawah ini merupakan gerak Jepit, variabel yang telah di definisikan sebagai Port void putar_jepit_buka() { dirE_jepit = 0; dirF_jepit= 1; //pwm_lengan=100; } void putar_jepit_tutup() dirE_jepit = 1; dirF_jepit= 0; void putar_jepit_berhenti() dirE_jepit= 1; dirF_jepit= 1;
Program Navigasi Pergerakan Robot, Jika nilai Switch 3 bernilai logika high atau 1 maka Penjepit Robot akan Terbuka if (sw3_penjepit==1) { lcd_gotoxy(0,0); lcd_putsf("penjepit buka"); putar_jepit_buka(); Program Navigasi Pergerakan Robot, Jika nilai Switch 3 bernilai logika low atau 0 maka Penjepit Robot akan Tertutup if (sw3_penjepit==0) lcd_putsf("penjepit tutup"); putar_jepit_berhenti(); delay_ms(3000); putar_jepit_tutup(); delay_ms(6000); Program Navigasi Pergerakan Robot, Jika nilai Switch 2bernilai logika low atau 0 maka lengan Robot akan naik if (sw2_lengan_bawah==0) lcd_putsf(" lengan naik "); putar_lengan_naik();
Program Navigasi Pergerakan Robot, Jika nilai Switch 1 bernilai logika low atau 0 maka lengan Robot akan berhenti if (sw1_lengan_atas==0) { putar_lengan_berhenti(); Program Navigasi Pergerakan Robot, Jika nilai Switch 4 bernilai logika low atau 0 maka poros akan bergerk berlawanan jarum jam. if (sw4_poros1==0) putar_poros_berlawanan_jarum_jam(); Program Navigasi Pergerakan Robot, Jika nilai Switch 5 bernilai logika low atau 0 maka poros akan berhenti. if (sw5_poros2==0) putar_poros_berhenti(); } Jika nilai Switch 1 bernilai 0 maka lengan akan turun hingga nilai switch 2 bernilai 0 maka gerak lengan berhenti. putar_lengan_turun(); if (sw2_lengan_bawah==0)
Kesimpulan Setelah melakukan perencanaan dan pembuatan sistem kemudian dilakukan pengujian dan analisanya, maka dapat diambil beberapa kesimpulan tentang sistem kerja dari dari sistem yang dibuat : 1. Proses pergerakan dapat dilakukan dengan sebuah sistem bergerak dan bermanuver secara sistematik atau bergerak sesuai sistem navigasi dan dapat dilakukan oleh robot sambil melakukan sistem pergerakan robot yang bergerak sesuai polanya. Dalam penulisan ini digunakan bahasa C sebagai basic program yang nantinya akan di flash ke dalam IC type ATMega 8535. 3. Pola gerak ditentukan oleh switch yang digunakan pada robot ini berupa limit switch untuk navigasi mendeteksi posisi yang ditentukan untuk pergerakan robot yang diinginkan.