180 likes | 522 Views
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.
E N D
RANCANG BANGUN ROBOT ARM BERBASIS MIKROKONTROLER ATMEGA 8535 DisusunOleh: Nama : Guntorositumorang NPM : 20406880 Jurusan : T. Mesin Pembimbing : Dr. Sri Poernomo Sari, ST., MT.
LatarBelakang • Penggunaansistemrobotik (otomatis) disetiapbidangindustri, bergunauntukmeringankanbebanmanusiadalammelakukan / mengerjakanprosesproduksinya • Permintaanpasaryang semakinbanyakdanmembutuhkanwaktukerja yang lama, tenaga yang besarhanyadapatdigantikanolehsebuahalat, yaitualat yang bisamenggantimanusiauntukmelakukanhaltersebut. • SistemRobotika yang bisabekerjamengambil, memindahkanbarangsangattepatdalammempermudahpekerjaanmanusia, Robot arm (lengan) memilikifungsigerak yang lebihtepatdanefisien.
BatasanMasalah • BatasanmasalahpadapenulisaniniadalahsistemMekanikdanpengaturan motor DC sebagai motor penggerakpadasistempenggerakan robot agar robot dapatbergeraksesuai yang diinginkan. Penulistidakmembahassistemmekanikafisik robot lebihlanjut, sepertibeban yang dapatdiangkat, torque padatiap motor dankekuatanbahan yang dipakai • PadaAplikasiProgramingpembuatan program perangkatlunak (software) yang nantinyasebagaiperintahyang ditanamkankedalammikrokontrolleryang berfungsiuntukpengendaliansistematikapolakerjaataugerak Robot Arm, Sehinggacarakerja / sistemkontrolerdarisistem Robot Arm mudahdipelajaridandipahami. • Penggunaanfungsi – fungsikomponenMikrokontrollerAVR Atmega 8535 lebihlanjutsebagaikontroler.
TujuanPenelitian tujuanpenelitianiniadalahmerancangdanmembuatsistemsebuah Robot Arm (lengan robot) yang mampubergeraksecaraotomatisuntukmengangkatdanmemindahkanbarangsesuaiberatdanjarak yang telahditentukan.
PERANCANGAN • PerancanganMekanik Robot Bahan yang digunakanuntuk robot iniadalahaklyrikdanaluminium . Aklyrikdipilihuntukbahandasarrangkakerenasifatnya yang kokohtetapimemilikibobotyang ringan, sedangkanalumuniumdigunakansebagairangkapada robot, inisangatefektifuntukmenopangseluruhrangkaian. Penggerak yang digunakanadalah motor DC demgamvoltase 12 Volt. Total berat robot ± 3 kg, • jikarobot terlaluberatmakaakanberpengaruhpadakerja motor.
Ukuranrobot 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, Pergerakanporoslengan = 180° Tinggipengangkatanbeban = 45 cm Panjangjangkauanlengan = 30 cm • tinggitianglengan = 25 cm Perancangan Dan PembuatanPerangkatLunak Algoritmapergerakan robot diprogramdenganmenggunakanperangkatlunakCodeVision AVR C Compiler. Dalampenulisaninidigunakanbahasa C sebagaibasicprogram yang nantinyaakan di flashkedalam IC typeATMega 8535
Gambar robot arm Gambar robot tampakkanan. Gambar robot tampakkiri.
. GambarRobot tampakAtas Gambar Robot tampakDepan
PENGUJIAN PengujianMotor DC Kecepatan putaran dari motor DC sebanding dengan tegangan yang diberikan dan juga sebanding dengan arus listrik yang diberikan Untukmengetahuilebihlanjutdilakukanpengujian motor DC inigunamengetahuipergerakan robot beroda jalan maju, mundur, ataubelok. Untukmenggerakan motor DC dibutuhkanrangkain yang dapat mengatur DIRIECTION (arah cw atau ccw) dan PWM (kecepatan untuk motor itu sendiri). Peralatan : 1. Mikrokontroler AVR ATMEGA8535 2. Motor DC 3. Seperangkatdownloader ISP & program code visionRangkaian : Atmega 8535 Driver Motor Motor DC
LogikaPergerakanRobot Robot akanbergeraksesuaidengannavigasi yang ditanamkanpadanyasistemnavigasipada robot lenganmenggunakaninputannilailogika yang adapada limit switch yang jugaberperansebagaiinputan. Pergerakan robot berdasarkannilai yang didapatdari limit switch : • KondisiiniterjadipadaSetCounter 3 Apabila sw1_lengan_bawah=0 dan sw3_penjepit=1 maka robot akanmembukapenjepitdengancara motor menariktali yang terhubungkepenjepitsampainilai sw3_penjepit = 0 maka motor penarikpenjepitakanberhentidalambeberapadetik, laluakanmelonggarlagidankembalimenjepitlalulompatke program selanjutnyayaitusetcounter 5. • Pada set counter 5 Apabila sw1_lengan_bawah=0 dan sw3_penjepit=1 maka motor lenganakanberputarsehinggamembuatlenganbergerakkeatas, sampainilai sw2_lengan_atas=0, maka motor akanberhentilalumelompatkeSetCounter 4.
PadaSetCounter 4 jika ((sw5_poros2==0) dan (sw4_poros1==1)) maka motor porosbawahakanbergeraksearahjarum jam, sampainilai ((sw5_poros2==1) dan (sw4_poros1==0)) makagerak motor akanberhentilalumelompatkeSetCounter 6. • Jika ((sw5_poros2==1) dan (sw4_poros1==0)) maka motor porosbawahakanbergerakberlawananjarum jam sampainilai ((sw5_poros2==0) dan (sw4_poros1==1)) makagerak motor akanberhentilalumelompatkeSetCounter 6. • PadaSetCounter 6 jika (sw1_lengan_atas==0) makalenganakanturun , danapabilasudahsampaidalamkondisi ((sw2_lengan_bawah==0) dan (sw3_penjepit==1)) makagerak motor akanberhentidanmelompatkeSetCounter 7. • PadaSetCounter 7 jika ((sw2_lengan_bawah==0) dan (sw3_penjepit==1)) makapenjepitakanterbuka, terbukanyapenjepitdisebabkanolehgerak motor yang menggulungtali yang terhubungpadapenarik. • Apabilanilai ((sw3_penjepit==0) dan (sw2_lengan_bawah==0)) makagerakan motor yang menggulungtalipenjepitakanberhenti, setelahbeberapadetik motor akanbergerakkembalitetapibergerak kea rah yang berlawanansehinggamengendurkangulungantali yang adapada motor, setelahitu program melompatkeSetCounter 3 kembali.
InisialisasiVariabelMenjadiAlamat Port yangdigunakansebagai media Output yang dihubungkanPada IC L298, dan Port Yang digunakanadalah PORT D padaMikrokontroler //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 InisialisasiVariabelMenjadiAlamat Port yang berfungsisebagaiInputan yang diterimaolehMikrokontrolerdan Port Yang digunakanadalah 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 merupakanfungsigerakdari robot. Fungsidibawahinimerupakangerakporosbawah, variabel yang telahdidefinisikansebagai 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; //pwm_poros=100; }
Program yang merupakanfungsigerakdari robot. FungsidibawahinimerupakangerakLengan, variabel yang telahdidefinisikansebagai 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; //pwm_lengan=100; }
Program yang merupakanfungsigerakdari robot. FungsidibawahinimerupakangerakJepit, variabel yang telahdidefinisikansebagai Port void putar_jepit_buka() { dirE_jepit = 0; dirF_jepit= 1; //pwm_lengan=100; } void putar_jepit_tutup() { dirE_jepit = 1; dirF_jepit= 0; //pwm_lengan=100; } void putar_jepit_berhenti() { dirE_jepit= 1; dirF_jepit= 1; //pwm_lengan=100; }
Program NavigasiPergerakan Robot, Jikanilai Switch 3 bernilailogika high atau 1 makaPenjepit Robot akan Terbuka if (sw3_penjepit==1) { lcd_gotoxy(0,0); lcd_putsf("penjepitbuka"); putar_jepit_buka(); • Program NavigasiPergerakan Robot, Jikanilai Switch 3 bernilailogika low atau 0 makaPenjepit Robot akanTertutup if (sw3_penjepit==0) { lcd_gotoxy(0,0); lcd_putsf("penjepittutup"); putar_jepit_berhenti(); delay_ms(3000); putar_jepit_tutup(); delay_ms(6000); putar_jepit_berhenti(); delay_ms(3000); • Program NavigasiPergerakan Robot, Jikanilai Switch 2bernilai logika low atau 0 makalengan Robot akannaik if (sw2_lengan_bawah==0) { lcd_gotoxy(0,0); lcd_putsf(" lengannaik "); putar_lengan_naik();
Program NavigasiPergerakan Robot, Jikanilai Switch 1 bernilailogika low atau 0 makalengan Robot akanberhenti if (sw1_lengan_atas==0) { putar_lengan_berhenti(); • Program NavigasiPergerakan Robot, Jikanilai Switch 4 bernilailogika low atau 0 makaporosakanbergerkberlawananjarum jam. if (sw4_poros1==0) { putar_poros_berlawanan_jarum_jam(); • Program NavigasiPergerakan Robot, Jikanilai Switch 5 bernilailogika low atau 0 makaporosakanberhenti. if (sw5_poros2==0) { putar_poros_berhenti(); } Jikanilai Switch 1 bernilai 0 makalenganakanturunhingganilai switch 2 bernilai 0 makageraklenganberhenti. if (sw1_lengan_atas==0) { putar_lengan_turun(); } if (sw2_lengan_bawah==0) { putar_lengan_berhenti(); } }
Kesimpulan Setelahmelakukanperencanaan dan pembuatansistemkemudiandilakukanpengujian dan analisanya, makadapatdiambilbeberapakesimpulantentangsistemkerjadaridarisistem yang dibuat : • 1. Prosespergerakandapatdilakukandengansebuahsistembergerak dan bermanuver • secara sistematikataubergeraksesuaisistemnavigasi dan dapatdilakukanoleh robot • sambilmelakukansistempergerakan robot yang bergeraksesuaipolanya. • Dalampenulisaninidigunakanbahasa C sebagaibasicprogram yang nantinyaakan di flashkedalam IC typeATMega 8535. • 3.Polagerakditentukanolehswitch yang digunakan pada robot iniberupalimitswitch • untuknavigasimendeteksiposisi yang ditentukanuntukpergerakan robot yang • diinginkan.