RANCANG BANGUN SISTEM KONVERSI FILE BOARD EAGLE KE GCODE BERBASIS VISUAL BASIC .NET DAN PROGRAM MIKROKONTROLER RASPBERRY MIKROKONTROLER RASPBERRY PI
Thafhan Fathur Rahman Gun Gun Maulana, Bolo Dwiartomo Jurusan Teknik Otomasi Manufaktur dan Mekatronika Politeknik Manufaktur Bandung Jl. Kanayakan 21 Bandung, Indonesia ABSTRAK Printed Circuit Board PCB ( ) adalah sebutan untuk papan pemasangan dan penjaluran komponen-ko mponen elektronika yang digunakan untuk mengimplementasikan sistem rangkaian elektronika. Proses pembuatan PCB mempunyai 3 tahapan, yaitu mencetak jalur, menghapus tembaga yang tidak digunakan, dan pengeboran PCB. Pengeboran PCB ini dapat dilakukan secara manual dengan tangan manusia. Namun akan menghabiskan banyak waktu ketika lubang-lubang komponen pada PCB ters ebut sangat banyak serta kurangnya kepresisian saat pengeboran dikarenakan tangan manusia rentan akan getaran. Untuk itu diperlukan mesin yang dapat membantu kerja pengeboran PCB. Mesin CNC PCB Drill 2,5D merupakan mesin yang digunakan untuk membuat lubang instalasi komponen pada papan sirkuit secara otomatis. Proses drilling dengan spindle yang berputar konstan menggunakan metode kontrol PID. Pergerakan sumbu X, Y dan Z menggunakan motor stepper bipolar dengan driver TB6560 . Sistem kontrol mesin menggunakan mikrokontroller Raspberry Pi dan dikontrol melalui antarmuka PC berbasis VB.NET . Raspberry Pi diprogram menggunakan bahasa Python versi 3.6. Data papan sirkuit yang diproses oleh mesin ini EAGLE ) didapat dari file board EAGLE yang dikonversi ke Gcode. Easy Applicable Graphical Layout Editor ( EAGLE merupakan perangkat lunak yang digunakan untuk pembuatan desain papan sirkuit dan diagram elektrik. File board EAGLE merupakan file desain papan sirkuit dengan fomat Extention Markup Languange (XML). File board EAGLE dikonversi ke Gcode menggunakan metode regular expression berbasis VB.NET . Data hasil konversi nantinya akan dikirim ke mikrokontroler untuk diproses. Hasil pengujian drilling PCB menunjukkan koordinat drill yang seusai dengan desain PCB yang telah dibuat di perangkat lunak EAGLE dengan dengan kepresisian satu angka dibelakang koma. Kata kunci : kunci : mesin pcb drill 2,5D, Raspberry Pi, regular expression, VB.NET, Python, file board, EAGLE 1. PENDAHULUAN 1.1 Tujuan Tujuan dari Proyek Akhir (PA) ini adalah untuk menerapkan kompetensi di bidang mekatronika dengan mengendalikan dan mengotomasikan sebuah mesin PCB drill 2,5D yang mampu menjangkau titiktitik pola sesuai parameter kontrol yang diberikan dengan menerapkan metode interpolasi linear dan menggerakan spindle dengan kecepatan putar konstan menggunakan metode kontrol PID. Data Gcode sebagai parameter kontrol didapat dari hasil konversi file board EAGLE . Pada pengerjaan proyek akhir ini, fokus penulis terdapat pada pengerjaan subsistem konversi file board ke gcode. Tujuan akhir dari subsistem konversi file board ke gcode adalah mampu membuat gcode dari file board EAGLE dan gcode dapat dieksekusi sesuai dengan desain yang telah dibuat pada file board EAGLE .
1.2 Teknologi yang Digunakan Dalam proyek akhir ini, digunakan beberapa teknologi baik hardware maupun software yang digunakan sebagai perangkat kontrol utama dan beberapa lainnya sebagai penunjang pekerjaan. Hardware yang digunakan sebagai perangkat kontrol mesin adalah Raspberry Pi 3 Model B dan Arduino Nano v3 . Sedangkan software yang digunakan adalah Visual Studio IDE Community 2017 yang yang digunakan untuk pembuatan program pengonversi file board EAGLE ke gcode. Program pengonversi ditulis dalam Bahasa Visual Basic .NET . Untuk memprogram Raspberry Pi 3 sebagai kontroler utama mesin PCB drill 2,5D, digunakan bahasa pemrograman phyton versi 3.5.
2. METODOLOGI PENYELESAIAN PROYEK Proses pengumpulan data dan informasi dalam pembuatan proyek ini menggunakan beberapa metode, di antaranya. a.
Studi pustaka, yaitu melakukan pengumpulan data dari buku-buku yang berhubungan dengan mesin CNC PCB drill 2,5D, VB.NET, Raspberry Pi, Python Programming Languange, dan Arduino. b. Dari media internet, yaitu melakukan pengumpulan data dari berbagai jurnal, tutorial dan artikel yang dapat menunjang penyelesaian proyek. debugging program. c. Pengujian dan Mengevaluasi program yang dibuat untuk mengetahui, dan melakukan perbaikan dari kesalahan yang terjadi pada program. d. Diskusi dengan pihak terkait yang ahli mengenai masalah sejenis.
PCB. Didalamnya terdapat sub wire dan pad . Dalam sub wire terdapat data koordinat x awal, koordinat y awal, koordinat x akhir, koordinat y akhir, width/lebar jalur, dan layer desain. Dalam sub pad terdapat data koordinat x diukur dari koordinat x element , data koordinat y diukur dari koordinat y element , data diameter drill, shape/bentuk pad , dan rot /rotasi /rotasi pad . Element name adalah nama dari komponen yang digunakan dalam file board . Dalam element name terdapat data koordinat x diukur dari titik nol desain, koordinat y diukur dari titik nol desain, package yang digunakan oleh element , library yang digunakan oleh element , dan rot /rotasi /rotasi komponen. Data rotasi komponen mempengaruhi koordinat pad dari package yang digunakan sebagai referensi. Koordinat pad akan berotasi sejauh sudut rot dari koordinat element . Urutan dari data yang terdapat dalam file board juga perlu diperhatikan agar hasil koordinat yang didapat sesuai dengan file board yang telah didesain. START
3. PERANCANGAN DAN PEMBUATAN SUBSISTEM.
Input parameter drilling
Input file Input file board
3.1 Subsistem Konversi File Board EAGLE ke Gcode (Visual Studio : Visual Basic .NET ). .NET ). Subsistem merupakan bagian dari sistem yang memiliki fungsi tertentu sehingga sistem dapat bekerja sebagaimana mestinya. Dalam pemrosesan gcode, parameter drill perlu didefinisikan terlebih dahulu untuk melengkapi data gcode. Proses konversi dilakukan dengan cara membaca data koordinat drill yang terdapat dalam file board desain desain PCB. File board dibaca sebagai data string dalam program. Proses mencari data dalam file board dilakukan menggunakan fungsi match regex. Setiap hasil match disimpan dalam sebuah array. Data-data yang telah di simpan dalam array diolah untuk mendapatkan nilai koordinat yang sesuai dengan desain PCB. Dalam proses ini, hanya data yang diperlukan saja yang dibaca oleh program konversi yang dibuat. Data-data yang diperlukan dari file board diantaranya adalah package name (termasuk jumlah dan urutannya), element name (termasuk jumlah dan urutannya), x, y, serta rotasi komponen ( rot ) dari element name, data x, y, dan drill pad dari package. Package name adalah nama jenis komponen yanng digunakan dari library komponen dalam file board
Baca file Baca file board Match regex : : Ambil data package nam e Smpan data package data package name dalam array : : tipe komponen
Match regex : Ambil data element package
Hitung jumlah element package: package : elementpackage.Count
Hitung jumlah element package: package: elementpackage.Count ReDim array : koordinat X-element X- element Index: elementpackage.Count ReDim array : koordinat Y-element Y- element Index : elementpackage.Count ReDim array : urutan element Index: elementpackage.Count ReDim array : urutan package Index: elementpackage.Count
i=0 Match regex (specific package name): data koordinat X-element Add Match to array : Match to koordinat X-element X- element Match regex (specific package name): data koordinat Y-element Add Match Match to to array : koordinat Y-element Y- element Match regex (specific package name): data package name sesuai urutan element data package Add Match Match to to array : urutan package urutan package Match regex (specific package name):
data element name sesuai urutan package dalam element Add Match Match to to array : urutan element Match regex (specific package name):
data rotasi element sesuai urutan element dan dan package package Add Match to array : Match to
data rotasi element i +=1
ReDim array : rotasi element Index: elementpackage.Count i< tipeKomponen .Count
A
Gambar 3.1.a Diagram Alir Sistem Konversi
A
Dim New List: koordinat X drill Dim New List: koordinat Y drill Dim New List: diameter drill
List: koordinatX drill To Array: koordinatX drill
List: koordinatY drill To Array: koordinatY drill
dengan indeks setelah perintah gcode. Setiap selesai mengeksekusi perintah gcode, program akan mengirim feedback ke antarmuka sebagai tanda bahwa program dilanjutkan ke tahap selanjutnya. 4. HASIL PENGUJIAN
ReDim array: Jumlah drill package Index: elementpackage.Count j =0
Match regex (specific package name): data koordinat X drill Add Match to Add Match to List List: : koordinat X drill
Match regex (specific package name): data koordinat Y drill Add Match to Add Match to List List: : koordinat Y drill Match regex (specific package name): data diameter drill Add Match to Add Match to List List: : diameter drill
List: diameter drill To Array: diameter drill
k =0
l =0
Hitung koordinatX final final PCB PCB = KoordinatXelement(k) KoordinatX element(k) + + ((KoordinatXdrill(l) * Cos(datarotasi(k))) - (KoordinatYdrill(l) * Sin(datarotasi(k)))
Add Data Data to to List List: : koordinatX final final
Hitung koordinatY final PCB final PCB = KoordinatY KoordinatYelement(k) element(k) + + ((KoordinatXdrill(l) * Sin(datarotasi(k))) - (KoordinatYdrill(l) * Cos(datarotasi(k)))
Hitung jumlah drill = Matc Match.Count h.Count(data (data diameter drill drill) )
Add Data Data to to List List: : koordinatY final final
Add Data Data to to Arra Array y: jumlah drill
l += 1
j += 1
l < jumlahdrill .Count
j < tipeKomponen .Count
ReDim array array: : koordinatXdrill koordinatX drill Index: koordinatX drill.Count
4.1 Pengujian Konversi File Konversi File Board Pengujian dilakukan dengan cara melakukan perbandingan antara hasil drilling dengan file desain yang telah dibuat. Desain yang digunakan untuk pengujian drilling berupa sebuah komponen relay DPDT yang memiliki 8 terminal. Kedelapan terminal tersebut yang akan diproses sebagai drilling spot proses konversi ke gcode.
k += 1
k < koordinatelement .Count
ReDim array array: : koordinatYdrill koordinatY drill Index: koordinatY drill.Count
ReDim array array: : diameterdrill diameter drill Index: diameter drill.Count
Dim New List: koordinatXfinal
Menyusun data koordinat final dan parameter drill kedalam format gcode G82 gcode G82
END
Dim New List: koordinatYfinal
Gambar 4.1 Desain PCB Gambar 4.1 menunjukkan desain PCB yang telah dibuat menggunakan perangkat lunak EAGLE . Koordinat lubang drill diukur dari titik nol desain.
Gambar 3.1.b Diagram Alir Sistem Konversi 3.2
Subsistem Program Pengolah Gcode ( Raspberry Raspberry Pi : phyton phyton 3.5). 3.5 ). Gcode dikirim dari interface dalam satu baris data string. Setiap perintah dan variabel gcode dipisahkan oleh karakter spasi dalam urutan yang sesuai dengan syntax gcode. Gcode yang dikirim dicacah dan dimasukkan kedalam list menggunakan fungsi split . Untuk mengeksekusi gcode, list yang berisi perintah dan variabel gcode yang berurutan dipanggil satu persatu menggunakan fungsi for .. .. in range... . Jika terbaca perintah gcode tertentu seperti G00, G01, G82, M3, M4, M5, D, atau lainnya, program akan memanggil subprogram yang akan mengeksekusi gcode tersebut. Variabel yang digunakan oleh gcode diambil dari data dalam list
Gambar 4.2 Parameter Untuk Gcode Gambar 4.2 menunjukkan parameter yang perlu ditentukan sebelum melakukan proses pembuatan gcode. Parameter tersebut menjadi nilai variabel untuk perintah gcode G82.
Tabel 4.1 Pengujian 1: Pengukuran Posisi Koordinat No 1 2 3 4 5 6 7 8
Gambar 4.3 Hasil Konversi ke Gcode
G-code
Koordinat Aktual
Error (x, y)
G82 X8.89 Y11.43
(9.00, 11.1) mm
(0.11, -0.13) mm
G82 X16.51 Y11.43
(16.80, 11.1) mm
(0.29, -0.13) mm
G82 X21.59 Y11.43
(21.90, 11.1) mm
(0.31, -0.13) mm
G82 X26.67 Y11.43
(27.20, 11.1) mm
(0.53, -0.13) mm
G82 X26.67 Y19.05
(27.20, 18.8) mm
(0.53, -0.25) mm
G82 X21.59 Y19.05
(21.90, 18.8) mm
(0.31, -0.25) mm
G82 X16.51 Y19.05
(16.80, 18.8) mm
(0.29, -0.25) mm
G82 X8.89 Y19.05
(9.00, 18.8) mm
(0.11, -0.25) mm
Dari tabel 4.1, didapat grafik error seperti berikut.
Gambar 4.3 memperlihatkan hasil konversi dari file board ke gcode yang telah dibuat. Perintah G90, G00, M3, dan M5 merupakan perintah gcode tambahan agar operasi drilling sesuai dengan standard. 4.2 Pengujian Eksekusi Gcode Berikut ini adalah gcode hasil konversi yang akan diuji oleh mesin CNC PCB Drill 2,5D. Gcode ini memiliki kesamaan koordinat G82 dengan hasil desain PCB sebesar 100 persen. G90 G00 X1 Y1 M3 G82 X8.89 Y11.43 Z1 R1 P1 L1 F10 G82 X16.51 Y11.43 G82 X21.59 Y11.43 G82 X26.67 Y11.43 G82 X26.67 Y19.05 G82 X21.59 Y19.05 G82 X16.51 Y19.05 G82 X8.89 Y19.05 M5 G00 X0.0 Y0.0 M30
Berikut ini perbandingan antara data hasil drilling dengan koordinat gcode yang diuji pada pengujian 1.
Gambar 4.6 Grafik Error Grafik Error Pengujian 1 Pada pengujian 1, didapat error paling tinggi sebesar +0.53mm dan -0.25mm. Nilai error yang didapat pada sumbu x memiliki pola bertambah seiring bertambahnya nilai x, sedangkan pada sumbu y nilai error bertambah (negatif) seiring bertambahnya nilai sumbu y. Berikut ini perbandingan antara data hasil drilling dengan koordinat gcode yang diuji pada pengujian 2. Tabel 4.2 Pengujian 2: Pengukuran Posisi Koordinat No 1 2 3 4 5 6 7 8
G-code
Koordinat Aktual
Error (x, y)
G82 X8.89 Y11.43
(9.00, 11.4) mm
(0.11, -0.03) mm
G82 X16.51 Y11.43
(16.62, 11.4) mm
(0.11, -0.03) mm
G82 X21.59 Y11.43
(21.70, 11.4) mm
(0.11, -0.03) mm
G82 X26.67 Y11.43
(26.80, 11.4) mm
(0.13, -0.03) mm
G82 X26.67 Y19.05
(26.80, 18.95) mm
(0.13, -0.1) mm
G82 X21.59 Y19.05
(21.70, 18.95) mm
(0.11, -0.1) mm
G82 X16.51 Y19.05
(16.62, 18.95) mm
(0.11, -0.1) mm
G82 X8.89 Y19.05
(9.00, 18.95) mm
(0.11, -0.1) mm
Dari tabel 4.2, didapat grafik error seperti berikut.
Gambar 4.9 Grafik Error Grafik Error Pengujian 2
5.2 Permasalahan Permasalahan yang dihadapi adalah, untuk file board yang dibuat di perangkat lunak EAGLE dengan versi dibawah 7.0 dan versi 8 keatas menghadapi masalah konversi karena terdapat sedikit perbedaan format XML yang digunakan dalam file board EAGLE . 5.3 Solusi
Pada pengujian 2, didapat error paling tinggi sebesar +0.13mm dan -0.1mm. Nilai error yang didapat pada sumbu x memiliki pola bertambah seiring bertambahnya nilai x, sedangkan pada sumbu y nilai error bertambah (negatif) seiring bertambahnya nilai sumbu y.
Solusinya, program yang digunakan dibatasi untuk konversi file board yang dibuat di EAGLE versi 7.0 sampai 7.7.
Dari data error yang didapat, dapat diperkirakan beberapa hipotesis yang menyebabkan error tersebut. Pertama, error dapat terjadi akibat backlash motor stepper . Kedua, error dapat terjadi akibat kesalahan algoritma program interpolasi. Ketiga, error dapat terjadi akibat homing position yang bergeser dari koordinat yang seharusnya. Keempat, error dapat terjadi akibat alignment mata bor yang tidak center dengan spindle. Dari data error yang didapat juga,
DAFTAR PUSTAKA
dapat disimpulkan ketelitian mesin, yaitu 0.6mm.
Mackenzie, D. & Sharkey, K. (2002). SAMS teach yourself visual basic .NET in 21 days. United States of America: Pearson Education, Inc.
5. PENUTUP
Grundgeiger, Dave. (2002). Programming Visual Basic .NET . Sebastopol: O’Reily. Goyvaerts, J. & Levithan, S. (2009). Regular expression cookbook . Sebastopol: O’Reily. Kenneth & Goldberg, M. (1983). XY Interpolation algorihtm. Philadelphia: ROBOTIC AGE.
5.1 Ketercapaian Tujuan Mesin CNC PCB drill 2,5D dapat melakukan proses interpolasi linear dari titik awal dan ti tik akhir proses drilling sesuai gcode masukan yang dikonversi dari file board . Spindle juga dapat bergerak dan berhanti sesuai dengan perintah M3, M4, dan M5 pada gcode. a.
Dari data hasil pengujian, koordinat drill yang diperoleh yang merupakan hasil proses konversi data sesuai dengan data koordinat hasil desain board PCB dengan ketelitian 0.6mm.
b.
Format gcode yang dihasilkan memenuhi standard gcode proses drilling, yaitu G82.
Prasetyo,
D.D. (2006). Pemrograman aplikasi database dengan visual basic .NET 2005 dan Ms Access. Jakarta: Elex Media Komputindo.
Tanpa nama. (2016). G & M code reference manual . Newburg: MachMotion.