PENERAPAN INTERPOLASI MENGGUNAKAN METODE DIGITAL DIFERENTIAL ANALYZER PADA PENGENDALI MESIN CNC GRAFIR 2.5D PDF

Title PENERAPAN INTERPOLASI MENGGUNAKAN METODE DIGITAL DIFERENTIAL ANALYZER PADA PENGENDALI MESIN CNC GRAFIR 2.5D
Author naufal aziz syahmenan
Pages 9
File Size 1 MB
File Type PDF
Total Downloads 2
Total Views 555

Summary

PENERAPAN INTERPOLASI MENGGUNAKAN METODE DIGITAL DIFERENTIAL ANALYZER PADA PENGENDALI MESIN CNC GRAFIR 2.5D Yofan Aulia Wisnu Hendi Rudiansyah, Tika Meizinta Jurusan Teknik Otomasi Manufaktur dan Mekatronika Politeknik Manufaktur Negeri Bandung Jl. Kanayakan 21 Bandung, Indonesia ABSTRAK Mesin CNC g...


Description

PENERAPAN INTERPOLASI MENGGUNAKAN METODE DIGITAL DIFERENTIAL ANALYZER PADA PENGENDALI MESIN CNC GRAFIR 2.5D Yofan Aulia Wisnu Hendi Rudiansyah, Tika Meizinta Jurusan Teknik Otomasi Manufaktur dan Mekatronika Politeknik Manufaktur Negeri Bandung Jl. Kanayakan 21 Bandung, Indonesia ABSTRAK Mesin CNC grafir 2.5D merupakan mesin yang memiliki kemampuan untuk melakukan proses pengukiran terhadap permukaan benda kerja sesuai yang diinginkan pengguna. Mesin dapat bekerja secara otomatis dan manual. Terdapat empat buah penggerak pada mesin ini, yaitu 3 buah stepper motor 2 fasa pada sumbu X, sumbu Y dan sumbu Z, serta satu buah motor DC untuk menggerakkan mesin dan untuk memutar spindel. Mesin CNC grafir 2.5D ini dikendalikan oleh sistem yang terintegrasi yang terdiri atas kendali berbasis mikrokomputer yaitu Raspberry Pi 3. Sebuah LCD dan keypad digunakan sebagai antarmuka antara mesin dan operator. Untuk dapat menjalankan mesin dengan dua buah sumbunya bergerak secara bersamaan, maka diperlukan sebuah metode algoritma perhitungan. Metode Digital Differential Analyzer (DDA) merupakan sebuah metode perhitungan yang digunakan untuk memungkinkan dua buah motor mampu bergerak secara bersamaan pada sumbusumbunya. Dengan menggunakan metode Digital Differential Analyzer memungkinkan stepper motor pada sumbu X dan sumbu Y mampu untuk bergerak secara simultan dalam waktu yang bersamaan. Dengan adanya metode DDA nilai error terhadap proses interpolasi berkisar diantara 0 – 2,5%. Sehingga dengan metode DDA, file G-Code yang dimasukkan secara external dapat dibaca dengan baik oleh mesin dibuktikan dengan hasil output yang disajikan secara nyata terhadap benda kerja maupun ploting melalui grafik. Kata kunci : Mesin CNC grafir 2.5D, Raspberry Pi 3, DDA,LCD dan keypad ABSTRACT 2.5D engraving CNC machine is a machine that has the ability to perform the process of engraving on the workpiece surface as desired by the user. The machine can work automatically and manually. There are four drive elements on this machine, which are 3 stepper motor 2 phase on the X axis, Y axis and Z axis, and one DC motor to move the engine and to rotate the spindle. The 2.5D engraving CNC machine is controlled by an integrated system consisting of a microcomputer-based control Raspberry Pi 3. An LCD and a keypad are used as interfaces between machines and operators. To be able to run the machine with two axes moving simultaneously, a method of calculation algorithm is required. Digital Differential Analyzer (DDA) method is a calculation method used to enable two motors to move simultaneously on their axes. Using Digital Differential Analyzer method allows stepper motors on X axis and Y axis able to move simultaneously at the same time. With the DDA method the error value for the interpolation process ranges between 0 - 2.5%. So with the DDA method, G-Code files that are inserted externally can be read properly by the machine as evidenced by the output that is presented clearly to the workpiece and ploting through the graph. Keywords: 2.5D Engraving Machine, Raspberry Pi 3, DDA, LCD and keypad .

1

1. PENDAHULUAN 1.1 Tujuan Tujuan dari proyek akhir ini adalah sebagai berikut :

1. 2. 3. 4. 5. 6.

Mengotomasikan sebuah mesin CNC Grafir 2,5D. Mesin harus mampu membuat pola berbentuk huruf alfabet dengan menerapkan sistem interpolasi linier dan circular. Mesin dapat menggerakan aktuator dengan ketepatan posisi yang diberikan. Mesin dapat menggerakan sumbu X dan Y secara simultan sehingga dapat berinterpolasi. Mesin dapat menggerakkan sumbu Z sehingga mampu melakukan proses pemakanan pada kedalaman tertentu. Input G-Code dapat dilakukan dengan memasukkan file dari memori secara external.

1.2 Teknologi Teknologi yang digunakan pada proyek akhir ini adalah teknologi yang berada pada ranah teknologi kontrol dan produksi. Adapun perangkat yang digunakan pada proyek akhir ini adalah sebagai berikut: 1.2.1 Perangkat pengendali : 1. Unit Antarmuka : LCD berwarna 5 inci – Keypad (Numpad set). 2. Unit Proses : Microcomputer – Raspberry Pi 3. 3. Unit Pengendali : Microcomputer – Raspberry Pi 3. 1.2.2 Perangkat keras : 1. 2. 3. 4. 5.

Stepper motor : 2-phase hybrid stepping motor 57BYGH56-4011YD, 8 segments drive. Motor DC : 500W / 11000r/min (Very Smallnoise). Driver Stepper : MOSFET HBridge drive stepper motor. Driver DC : MOSFET HBridge drive motor DC. HMI : 5 inch LCD HDMI 800x480 + Qliptec Numerical Keypad

1.2.3 Perangkat lunak : 1. 2. 3. 4. 5. 6. 7.

Visual Studio 2015 64bit, digunakan untuk membuat program antarmuka mesin. Python 3.5.1, digunakan untuk membuat program inti yang mengendalikan pergerakan mesin. PyQt 5.6, digunakan untuk membuat program program antarmuka mesin. Qt 5.7.1 Creator & Designer, digunakan untuk membuat program antarmuka mesin. Proteus 8, digunakan untuk membuat skematik unit pengendali. Autocad Electrical, digunakan untuk membuat desain PCB dan skematik unit pengendali. Solidworks 2014, digunakan untuk membuat desain panel kontrol.

1.2.4 Spesifikasi mesin Tabel berikut merupakan spesifikasi mesin secara keseluruhan. Tabel 1.1 Spesifikasi Mesin Area kerja 275 x 385 x 55 mm sumbu X, Y, Z Maksimal tinggi ≤70mm pemakanan Dimensi luar 610 x 480 x 400 mm Ukuran meja 530 x 320 mm Struktur 6061/6063 Alumunium alloy material Stepper motor Two phase 57/1.8A Unit penggerak 1204 Ball Screw Unit penggeser Chromeplate shaft Kecepatan 0- 4000 mm/min maksimum Kecepatan 300 – 2500mm/min pemakanan Ketepatan posisi 0.05mm pengulangan Motor spindel dengan arus Motor spindel langsung (200w) Kecepatan 1000~8000 RPM/min spindel Alat pemotong ER11/3.175mm Antarmuka Pararel port (interface) Komtabilitas Mach3/Emc2, perangkat lunak (Type3,Wentai,ArtCAM) (software) Kode perintah G-Code/.nc/.ncc/.tab/.txt

1

2. METODOLOGI PENULISAN Penyelesaian masalah dalam proyek akhir ini menggunakan metode sebagai berikut. a. Studi pustaka, yaitu melakukan pengumpulan data dari buku-buku, jurnal, dan artikel di internet. b. Studi analisis, yaitu melakukan analisa dari teori dan hasil pengamatan. c. Metode wawancara, yaitu dengan mendapatkan informasi dari alumni, serta melalui bimbingan dengan dosen-dosen, terutama dosen pembimbing. d. Studi lapangan, yaitu melakukan pengumpulan data dari hasil pengamatan.

Setelah data berhasil ditampung kemudian dilakukan kalkulasi terhadap data dengan algoritma seperti pada Gambar 3.1. MULAI

Gcode, X , Y,F,R

Gcode = G00 atau G01

3.1 Pembuatan unit proses Unit proses berfungsi untuk menentukan pergerakan mesin. Segala perhitungan pergerakan mesin dilakukan oleh unit proses terutama perhitungan interpolasi. Unit proses menerima data berupa G-Code yang kemudian diteruskan ke driver agar driver dapat menggerakan aktuator. Oleh sebab itu maka dibutuhkan suatu alat yang dapat menyalurkan data dari unit proses ke driver. Alat tersebut mampu menggerakan aktuator untuk dapat melakukan interpolasi dua sumbu secara bersamaan, serta mampu mengaktifkan spindel untuk melakukan proses pemakanan. 1. Program perhitungan interpolasi dengan menggunakan metode DDA Interpolasi yang dimaksud dalam proyek akhir ini adalah kemampuan mesin untuk bergerak secara simultan yaitu sumbu X dan sumbu Y secara bersamaan menuju koordinat yan.g telah ditentukan. Aktuator yang digunakan dari kedua sumbu ini adalah stepper motor dua fasa. Output dari program perhitungan interpolasi dengan metode DDA adalah urutan pulse (pulse train output) sebagai sinyal input masing-masing motor. Dengan metoda DDA, dapat dianalisis perbedaan antara urutan pulse motor X dan motor Y yang pada akhirnya akan mengakibatkan frekuensi pulse yang berbeda di setiap sumbu. Pada unit proses, hasil data interpolasi dengan perhitungan DDA ditampung terlebih dahulu ke dalam data array sumbu X dan sumbu Y.

Gcode = G02

Ya

Ya

DDA Linier

DDA Circular CW

Tidak

Gcode = G03

DDA Circular CCW

Tabulasi data pada array sumbu X dan sumbu Y

Selesai baris program

3. SUBSISTEM RANCANGAN PENGENDALI Subsistem merupakan bagian dari sistem yang memiliki fungsi tertentu sehingga sistem dapat bekerja sebagaimana mestinya.

Tidak

Tidak

Ya

SELESAI

Gambar 3. 1 Diagram alir perhitungan DDA. Pada diagram alir Gambar 3.1, eksekusi program dilakukan secara baris per baris. Dalam satu baris program berisikan perintah G-Code , koordinat x , koordinat y, feedrate, dan nilai r untuk interpolasi circular). Jenis perhitungan dipilih berdasarkan variabel G-Code yang diinputkan yaitu “G01” dan “G00” untuk interpolasi linier dan “G02” dan “G03” untuk interpolasi circular. Pada metode DDA, integrasi digital dilakukan dengan melalukan penambahan pada suatu register (QK) disetiap iterasinya. Penambahan ini dilakukan secara berulang-ulang. Pada program interpolasi linier nilai register (QK) bersifat konstan sehingga tidak ada perubahan nilai register tersebut disetiap iterasinya. Sedangkan, pada program interpolasi circular nilai register berubah-ubah setiap iterasi perhitungan DDA circular. Hal ini karena harus adanya perubahan frekuensi pergerakan pada kedua sumbu yang berinterpolasi agar terciptanya gerakan melingkar.

Dimana: QKx = QKy = PKx = PKy =

nilai register DDA sumbu X nilai register DDA sumbu Y masukan register X masukan register Y

Berdasarkan pada rumus , register (qk) terus mengalami penambahan nilai, akan ada saatnya nilai register akan melebihi kapasitas, kelebihan ini disebut overflow. Kondisi overflow akan memberikan data keluaran berupa perintah maju sejauh satu BLU. Jika tidak terjadi kondisi overflow, data keluaran berupa

2

perintah diam. Nilai BLU ideal pada mesin didapat berdasarkan hubungan resolusi stepper motor dan pitch dari ballscrew. Konfigurasi yang digunakan untuk menggerakan stepper motor adalah konfigurasi full-step. Sehingga perhitungan BLU ideal paling kecil yang dapat digunakan adalah sebagai berikut. 𝑩𝑳𝑼 = 𝒍𝒆𝒂𝒅 𝒃𝒂𝒍𝒍𝒔𝒄𝒓𝒆𝒘 / 𝑺𝑷𝑹 𝑩𝑳𝑼 = 𝟒𝒎𝒎 / 𝟐𝟎𝟎 𝑩𝑳𝑼 = 𝟎. 𝟎𝟐𝒎𝒎 Dimana ; Lead ballscrew = Jarak translasi yang dihasilkan ballscrew dalam satu putaran SPR = Jumlah step dalam satu putaran Nilai kapasitas register DDA pada perhitungan ditentukan berdasarkan nilai maksimal masukan pergerakan motor. Dalam hal ini dimensi area kerja pada plant adalah 200 mm x 300 mm. Maka jumlah maksimal BLU yang dikeluarkan adalah : 𝟑𝟎𝟎 𝒎𝒂𝒙 𝒖𝒔𝒆𝒅 𝑩𝑳𝑼 = = 𝟏𝟓𝟎𝟎𝟎 𝟎. 𝟎𝟐 Maka minimal kapasitas register yang digunakan adalah 15000. Pada DDA ini, max register yang digunakan bernilai 20000. a.

Interpolasi linier Pada interpolasi linier menghasilkan gerakan antara posisi awal dan posisi akhir dari koordinat yang telah diberikan berupa garis lurus. Program menerima input berupa nilai sumbu X dan sumbu Y dari proses perintah G-Code. Sehingga didapatkan diagram alir proses DDA linier ditunjukkan pada Gambar 3.2. Mulai

X0, X1, Y0, Y1, Mode koordinat PKx = ∆X1/BLU Pky = ∆Y1/BLU QKx = QKx-1 + PKx QKy = QKy-1+ PKy

OutX = 0 QKx-1 = QKx

Tidak

B

X1 > 0

Tidak OutX = 2

OutX = 1 QKx-1 = QKx – Max Register

A

QKy > Max Register

OutY = 0 QKy-1 = QKy

Ya Ya

Y1 > 0

Tidak OutY = 2

OutY = 1 QKy-1 = QKxy– Max Register

Data ditampung ke array sumbu X dan sumbu Y

Loop = Loop + 1 Loop > iterasi

Tidak

B

Ya Selesai

Gambar 3.2 Diagram alir interpolasi linier Seperti yang terlihat pada Gambar 3.2 , penambahan masukan register dimasukan ke dalam block perulangan sehingga proses penambahan dilakukan terus menerus sampai register menghasilkan overflow atau keluaran. Agar didapatkan hasil integrasi DDA yang menyeluruh, jumlah perulangan di-set sebanyak jumlah max register. Dengan menggunakan metode pemograman conditional dapat dipilah hasil keluaran overflow X dan Overflow Y. Ketika nilai keluaran overflow bernilai 1 maka hasil DDA akan ditampung untuk menggerakkan motor. Dan ketika hasil keluaran overflow bernilai 0 maka data tidak akan tersimpan pada penampung. Berikut adalah cuplikan progam DDA linier. for j in range(iteration): qkx = qkx+abs(pkx) qky = qky+abs(pky)

QKx > Max Register Ya

Ya

A

if qkx >= capacity: if pkx > 0: OutX = 1 elif pkx < 0: OutX = 2 qkx = qkx - capacity else: OutX = 0 if qky >= capacity: if pky > 0:

3

OutY = 1 elif pky < 0: OutY = 2 qky = qky - capacity else: OutY = 0

Mulai

Kuadran, Radius, Iterasi = Max Reg*1.57

if OutX != 0 or OutY != 0 : #tabulation ptoX[a] = OutX ptoY[b]= OutY ptoZ[b] = 0 a=a+1 b=b+1 Gambar 3. 3 Program DDA linier Seperti yang terlihat pada Gambar 3.3, nilai dari keluaran iterasi ditampung pada variable data OutX dan OutY. Nilai yang ditampung pada OutX dan OutY dibagi atas dua arah. Pembagian akan menentukan arah pergerakan motor fordward dan backward. Sehingga didapatkan arah yang berbeda di setiap sumbu berdasarkan titik tuju masing-masing. Jika nilai OutX/OutY bernilai 1 maka motor akan bergerak menuju sumbu positif dan jika nilai OutX/OutY bernilai 2 maka motor akan bergerak menuju sumbu negatif. Jika nilai OutX dan OutY bernilai 0 maka tidak ada pergerakan pada motor. Selanjutnya nilai OutX dan OutY akan ditampung pada array ptoX[a] dan ptoY[a]. Penyaringan ini dilakukan untuk menyaring data yang bernilai tidak sama dengan 0. Interpolasi circular Pada diagram alir proses DDA lingkaran ini, program diinputkan dengan selisih nilai posisi dari setiap sumbu X dan sumbu Y yang didapatkan dari proses perintah G-Code, perintah G-Code untuk pergerakkan Clockwise dan Counterclockwise. Fungsi dari selisih nilai posisi sumbu X dan sumbu Y untuk menentukan titik awal pergerakkan serta titik awal posisi kuadran serta nilai Radius (R) yang digunakan untuk menentukan jari - jari lingkaran yang digunakan.

Kuadran II atau IV ?

Kuadran I atau III ?

PKx = Radius Pky = 0 Operator X = -1 OperatorY = 1

PKx = 0 Pky = Radius Operator X = 1 OperatorY = -1

PKx = PKx + (OperatorX*dY) PKy = Pky + (OperatorY*dX)

B

QKx = QKx-1 + PKx QKy = QKy-1 PKy

OutX = 0 QKx-1 = QKx

Tidak

QKx > Max Reg

Ya

K I atau IV

Tidak

Ya OutX = 1

OutX = 2

QKx-1 = QKx – Max Reg dX = 1

b.

QKy > Max Reg

Tidak

OutY = 0 QKy-1 = QKy

Ya

K I atau IV

Tidak

Ya OutY = 1

OutY = 2

QKy-1 = QKy – Max Reg dY = 1

Loop = Loop + 1 Simpan ke array X dan Y

Loop > Iterasi

Tidak

B

Ya

Selesai

Gambar 3. 4 Diagram alir interpolasi circular clockwise

4

Nilai masukan register (PK) di sumbu X dan sumbu Y bergantung kepada jenis kuadran yang dikerjakan. Pada kuadran II CW, IV CW, I CCW dan III CCW nilai awal masukan register X (PKx) bernilai Radius dari circular yang diinginkan dan nilai awal masukan register Y (PKx) bernilai nol. Untuk kuadran I CW, IIIV CW, II CCW dan IV CCW nilai awal masukan register X (PKx) bernilai nol dan nilai awal masukan register Y (PKx) bernilai Radius dari circular yang diinginkan. Berikut adalah algoritma DDA circular arah Counter Clock wise, ditunjukkan pada Gambar 3.5

A

QKy > Max Reg

Tidak

OutY = 0 QKy-1 = QKy

Ya

K I atau IV

Tidak

Ya

Mulai

OutY = 1

OutY = 2

Kuadran, Radius, Iterasi = Max Reg*1.57

QKy-1 = QKy – Max Reg dY = 1 Kuadran I atau III ?

Kuadranii atau IV ?

PKx = Radius Pky = 0 Operator X = -1 OperatorY = 1

PKx = 0 Pky = Radius Operator X = 1 OperatorY = -1

Loop = Loop + 1 Simpan ke array X dan Y

Loop > Iterasi

PKx = PKx + (OperatorX*dY) PKy = Pky + (OperatorY*dX)

QKx = QKx-1 + PKx QKy = QKy-1 PKy B

Tidak

B

Ya Selesai

OutX = 0 QKx-1 = QKx

Tidak

Gambar 3. 5 Diagram alir interpolasi circular counter clockwise

QKx > Max Reg

Ya

K I atau IV

Tidak

Ya OutX = 1

QKx-1 = QKx – Max Reg dX = 1

A

OutX = 2

Seperti yang terlihat pada Gambar 3.5, cara integrasi DDA circular tidak jauh berbeda dengan DDA linier. Untuk mendapatkan overflow hasil integrasi dilakukan dengan penambahan nilai register dalam perulangan. Perbedaan dengan DDA linier adalah terdapat pada nilai masukan register (PK). Berikut adalah persamaan nilai register di setiap sumbu. 𝑷𝑲𝒙 = 𝑷𝑲𝒙 ± 𝒅𝒀 𝑷𝑲𝒚 = 𝑷𝑲𝒚 ± 𝒅𝑿 Dimana, dY = Keluaran atau overflow sumbu Y dX = Keluaran atau overflow sumbu X Berikut adalah salah satu potongan pseudocode DDA circular di arah clockwise. if Quadrant == 1 or Quadrant == 3: pkx = 0 pky = Radius / BLU sumx = 1

5

sumy = -1 if Quadrant == 2 or Quadrant == 4: pkx = Radius / BLU pky = 0 sumx = -1 sumy = 1 for j in range(int(iteration)): pkx = pkx + (sumx * dpy) pky = pky + (sumy * dpx) qky = qky+abs(pky) qkx = qkx+abs(pkx) if Quadrant == 1 or Quadrant == 3: if dxx >= Xinit*100: enX = 1 enY = 1 else: enX = 0 enY = 0 if Quadrant == 2 or Quadrant == 4: if dyy >= Yinit*100: enX = 1 enY = 1 else: enX = 0 enY = 0 if qkx >= capacity: dpx = 1 dxx = dxx + 1 if Quadrant == 1 or Quadrant == 2: OutX = 1*enX elif Quadrant == 4 or Quadrant == 3: OutX = 2*enX qkx = qkx - capacity else: OutX = 0 dpx = 0

kecepatan pada setiap sumbu. Sumbu dengan PK awal bernilai Radius akan mengalami perlambatan, dan sumbu dengan PK awal bernilai nol akan mengalami percepatan. Hal ini dikarenakan, frekuensi overflow yang terjadi adalah berbanding lurus dengan besar nilai masukan register (PK). Pada DDA circular nilai iterasi dipengaruhi besarnya sudut circular yang dibuat. Sehingga dalam kasus dimana satu lingkaran penuh memiliki sudut 𝛑 sebesar ( ) maka nilai iterasi sama dengan nilai 𝟐

2. a.

Program sumbu Z dan spindel Sumbu Z Pada pengendali sumbu Z , motor bergerak tidak secara interpolasi tapi bergerak terpisah. Sehinggga perhitungan pada sumbu Z dapat dilakukan tanpa menggunakan metode DDA. Berikut adalah algoritma pada sumbu Z, ditunjukkan oleh Gambar 3.7. Mulai Z = (Z1 – Z0) / BLU

Z>0

Gambar 3. 6 Program DDA circular. Seperti yang terlihat pada Gambar 3.6, nilai PKx dan Pky diperbaharui pada setiap perulangan. Sumbu dengan PK awal yang bernilai Radius mengalami pengurangan pada setiap overflow di sumbu proyeksinya. Sumbu dengan nilai awal 0 akan mengalami penambahan pada setiap overflow pada sumbu proyeksinya, sehingga terjadinya perbedaan

Tidak

Ya OutZ = 1

OutZ = 2

Tabulasi data ke array sumbu Z

if qky >= capacity: dpy = 1 dyy = dyy + 1 if Quadrant == 1 or Quadrant == 4: OutY = 1*enY elif Quadrant == 3 or Quadrant == 2: OutY = 2*enY qky = qky - capacity else: OutY = 0 dpy = 0 if OutX != 0 or OutY != 0 : #tabulation ptoX[a] = OutX ptoY[b]= OutY ptoZ[b] = 0 a=a+1 b=b+1

𝛑

maksimal register dikali ( ). Kemudian hasil keluaran 𝟐 DDA akan ditampung kembali dalam array penampung PtoX[] dan PtoY[] untuk disaring keluarannya.

Loop = Loop +1

Loop > Z

Tidak

Ya Selesai

Gambar 3. 7 Diagram alir program sumbu z. Untuk mendapatkan data pergerakan sumbu Z, dibuat sebuah perulangan. Jumlah perulangan yang dibuat adalah senilai dengan jarak yang akan ditempuh oleh sumbu Z. Setiap akhir perulangan terdapat block program untuk menyimpan data posisi ke array sumbu Z. b.

Spindel Pada bagian spindel menggunakan sebuah motor DC untuk melakukan p...


Similar Free PDFs