BAB III PERANCANGAN SISTEM
Pada bab ini akan diuraikan mengenai perancangan perangkat keras dan perangkat lunak yang digunakan untuk membangun Mesin Pemotong Akrilik Berbasis Mikrokontroler. Dalam skripsi ini akan dirancang sebuah sebuah mesin yang dihubungkan dengan sebuah komputer dimana kerja dari mesin tersebut berdasarkan data yang dikirim dari komputer.
Mekanik Penggerak X
Aplikasi Desktop Mikrokontroler
Mekanik Penggerak Y
Mesin Bor
Mekanik Penggerak Z
Catu Daya AC
Catu Daya DC
Gambar 3.1. Blok diagram Alat
3.1
Perancangan Perangkat Keras
3.1.1 Mekanik Bagian mekanik dibagi menjadi 3 bagian yaitu rangka, mekanik penggerak dan Bagian Pemotong a.
Rangka Rangka disusun menggunakan pipa segiempat dengan ukuran 20 mm x 30 mm
dengan ketebalan 1.9 mm. Dimensi rangka mempunyai ukuran panjang 80 cm x lebar 75 cm dan tinggi 25 cm
12
Gambar 3.2. Rancangan Gambar
Gambar 3.3. Mekanik
b.
Mekanik Penggerak X,Y dan Z
Masing-masing mekanik penggerak terdiri dari ulir, linear shaft dan linear bearing. Jenis ulir yang digunakan adalah jenis Ball screw. Tabel 3.1 : Ukuran ball screw Penggerak
Panjang
Diameter
Jarak Gang
X
65 cm
15 mm
10 mm
13
Y
65 cm
15 mm
10 mm
Z
11.2 cm
15 mm
4 mm
Linear Shaft
Linear Shaft
Ulir
Gambar 3.4 Penggerak X
Gambar 3.5 Penggerak Y
Gambar 3.6 Penggerak Z
14
Untuk menjaga gerakan ball screw agar stabil digunakan Linear shaft. Linear shaft menggunakan sebuah silinder pejal dengan bahan stainless steel dengan diameter 5/8 inch atau 15.85 mm dan untuk bagian yang bergerak menggunakan 2 buah linear bearing yang ditanam pada sebuah balok besi pada masing-masing sisi.
Gambar 3.7 Blok besi tempat linear bearing
15
c.
Bagian Pemotong Bagian pemotong adalah sebuah mesin bor dan mata bor potong
yang
diletakkan pada penggerak Z. Mesin yang menggunakan mesin trimmer merek Makita dengan seri MT370 . Tabel 3.2. Spesifikasi mesin trimmer Makita MT370 Model
MT370
Kapasitas Cekam Kolet
6.35 mm(1/4”) atau 6 mm -1
Kecepatan tanpa beban (min )
35.000
Panjang keseluruhan
199 mm
Berat Bersih
1.5 Kg
Kelas Keamanan
Kelas 1
Gambar 3.8 Mesin trimmer Makita MT370 3.1.2 Elektronik a.
Modul Mikrokontroler Mikrokontroler yang digunakan adalah ATmega32 . Mikrokontroler ini
mempunyai saluran I/O sebanyak 32 buah yang terbagi dalam 4 port yaitu port A, port B, port C, dan port D. Jumlah itu cukup untuk mengontrol 3 buah motor stepper yang masing-masing memerlukan 4 pin kontrol. Untuk komunikasi data digunakan port USART pada port D0 dan portD1 dan untuk input sensor digunakan port C. Untuk pembagian port dapat dilihat pada Tabel 3.3.
16
Gambar 3.9 Mikrokontroler Atmega 32.
Gambar 3.10. Skematik Modul Pengendali Mikrokontroler Atmega32
17
Tabel 3.3. Konfigurasi port mikrokontroler.
b.
PORT
Fungsi
Koneksi ke Modul
PortA.0
Output
Driver Motor X input 1
PortA.1
Output
Driver Motor X input 2
PortA.2
Output
Driver Motor X input 3
PortA.3
Output
Driver Motor X input 4
PortA.4
Output
Driver Motor Y input 1
PortA.5
Output
Driver Motor Y input 2
PortA.6
Output
Driver Motor Y input 3
PortA.7
Output
Driver Motor Y input 4
PortB.0
Output
Driver Motor Z input 1
PortB.1
Output
Driver Motor Z input 2
PortB.2
Output
Driver Motor Z input 3
PortB.3
Output
Driver Motor Z input 4
PortC.0
Input
Photo Interrupter Batas Atas
PortC.1
Input
Photo Interrupter Batas Bawah
PortC.6
Input
Photo Interrupter X titik 0
PortC.7
Input
Photo Interrupter Y titik 0
PortD.0
Serial
Serial terima data
PortD.1
Serial
Serial kirim data
Modul Driver Motor Driver motor menggunakan transistor BC546 dan MOSFET IRF 640 sebagai
komponen utamanya. Transistor BC546 difungsikan sebagai saklar dengan menerima input dari mikrokontroler.
18
Gambar 3.11. Skematik modul transistor sebagai saklar Karena difungsikan sebagai saklar, maka transistor harus dibuat dalam kondisi saturasi (low) dan cutoff (high). Berikut adalah perhitungannya:
= 12
ℎ= =
=
(3.1)
= 109
(3.2)
(Nilai hfe BC 546 pada datasheet adalah 110-800).
=
=
.
= 4311Ω
(3.3)
Dari perhitungan didapatkan nilai maksimal RB untuk mencapai nilai saturasi adalah 4311Ω. Output tegangan kolektor masuk di gate MOSFET. Tegangan ini untuk membuat channel di antara source dan drain, sehingga elektron dapat mengalir dari source ke drain.
19
Gambar 3.12. Grafik hubungan VDS, ID dan VGS MOSFET.
Gambar 3.13. Skematik Modul Driver Motor Stepper
20
c.
Modul Sensor Photo Interrupter Sensor photo interrupter yang digunakan adalah tipe H21A3. Pada saat photo interrupter terhalang, maka tidak ada cahaya yang ditangkap oleh photo transistor. Hal ini menyebabkan photo transistor dalam kondisi cutoff. Nilai tegangan kolektor sama dengan tegangan sumber sehingga VCE = 5 volt. Namun pada saat photo interrrupter tidak terhalang maka photo transistor dalam keadaan saturasi sehingga nilai tegangan kolektor sama dengan tegangan emitor = 0 volt. VCC 5V +V
R2 4k7
R1 100 U1 OPTOISO
Out
Gambar 3.14. Skematik Modul Sensor Photo Interrupter
Dua buah sensor digunakan untuk mendeteksi titik acuan atau 0,0 dari X dan Y dan 2 buah sensor untuk mendeteksi batas atas dan batas bawah posisi bor.
Gambar 3.15. Photo interrupter pembatas atas dan bawah
21
Gambar 3.16. Sensor Photo Interrupter X d.
Motor Stepper Motor stepper yang digunakan adalah motor stepper unipolar 2 phase merek Sanyo Denki seri 103H7124. Motor stepper ini mempunyai resolusi gerak 1.8° sehingga mempunyai 200 step dalam 1 putaran [6]. Terdapat 6 buah kabel yaitu hitam, putih, merah,biru, kuning dan orange.
Gambar 3.17. Motor Stepper Sanyo Denki
Gambar 3.18. Lilitan berdasarkan warna kabel
22
Gambar 3.19. Lilitan berdasarkan urutan kabel Untuk mengontrol gerakan motor stepper digunakan metode half step. Dengan menggunakan metoode half step, akan didapatkan resolusi dua kali lebih kecil dari resolusi jika menggunakan full step. Tabel 3.4 Half Step Konektor Step Hitam Putih
Merah
Biru
Kuning
Orange
1
1
1
1
1
0
2
1
1
1
0
0
3
1
1
1
0
1
4
1
1
0
0
1
5
1
1
0
1
1
6
1
0
0
1
1
7
1
0
1
1
1
8
1
0
1
1
0
23
3.2.
Perancangan perangkat lunak
3.2.1 Aplikasi Desktop Aplikasi desktop digunakan sebagai perangkat antarmuka antara mesin dengan user. Data yang ada dalam file plotter tersebut akan ditampilkan dalam bentuk tabel yang berisi data kedalaman data posisi pen, koordinat X dan koordinat Y. Data tersebut akan digunakan untuk membuat gambar yang ditampilkan pada aplikasi desktop.
5 4 1 6
2
7
3
Gambar 3.20. Aplikasi Desktop 1.
Data Garis Data Garis merupakan data asli dari file .PLT yang dipisahkan menjadi data tiap garis. Berisi data berupa nomer garis, data kedalaman dan data koordinatkoordinat yang menyusun garis. Data kedalaman dapat diubah langsung pada tabel.
2.
Data sebuah Garis Tabel 2 adalah data garis yang dipilih dengan mouse klik pada tabel 1 data garis. Melalui data ini dibuat gambar pada panel gambar dengan warna merah. Tujuannya adalah untuk melihat garis yang diinginkan ketika kita ingin mengubah data kedalamnya.
3.
Data Titik 24
Data Titik adalah data koordinat dan perintah dari semua data garis yang yang sudah dibagi ke dalam titik-titik koordinat sesuai urutan garisnya. Data titik-titik ini yang digunakan untuk membuat gambar pada panel gambar dengan warna biru dan data yang akan dikirim ke mikrokontroler. 4.
Data Kirim Data kirim adalah data yang dikirim dari aplikasi desktop ke mikrokontroler. Setiap pergantian data, isi dari text box akan berubah sesuai data yang dikirim.
5.
Data Terima Data yang sudah diproses di mikrokontroler akan dikirim kembali ke aplikasi desktop. Fungsinya untuk mengetahui bahwa mikrokontroler sudah melakukan proses yang diinginkan dan supaya aplikasi desktop mengirimkan data selanjutnya.
6.
Tombol Operasi Tombol operasi adalah tombol untuk menjalankan proses pemotongan. Dimulai dengan memilih port komunikasi. Kemudian ada tombol “connect” untuk membuka port serial yang dpilih. Tombol “send” untuk mulai mengirim data ke mikrokontroler. Sedangkan tombol “clear” untuk menghapus data yang ditampilkan pada texbox data kirim dan data terima
3.3
Pengiriman data Pengiriman data dilakukan dalam 1 paket data. Paket data berisi data dari data
Titik. Data yang dikirim berisi 4 data yaitu : 1. Kedalaman pemotongan 2. Data posisi Pen 3. Koordinat X 4. Koordinat Y. Berikut program untuk mengambil data dari tabel Data Titik. Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click rownumber = 0 totalrow = DataGridView1.RowCount + 2 25
While rownumber < DataGridView1.RowCount + 1 If rownumber = DataGridView1.RowCount Then griddata(rownumber) = "T" ElseIf rownumber > 0 And rownumber < DataGridView1.RowCount Then griddata(rownumber) = ("$" + DataGridView1.Rows(rownumber - 1).Cells(0).Value.ToString + "@" + DataGridView1.Rows(rownumber 1).Cells(1).Value.ToString + "x" + DataGridView1.Rows(rownumber - 1).Cells(2).Value.ToString + "y" + DataGridView1.Rows(rownumber 1).Cells(3).Value.ToString + "#") ElseIf rownumber = 0 Then griddata(rownumber) = "I" End If rownumber += 1 End While timer_receive = "" timer_send = "" BackgroundWorker2.RunWorkerAsync() Timer1.Start()
Setelah data diambil dan disimpan kemudian fungsi BackgroundWorker diaktifkan untuk mulai mengirim data. Private Sub BackgroundWorker2_DoWork(ByVal sender As System.Object, ByVal e As System.ComponentModel.DoWorkEventArgs) Handles BackgroundWorker2.DoWork rownumber = 0 While rownumber < totalrow data_sending = griddata(rownumber) timer_send = data_sending SerialPort1.WriteLine(data_sending) receive = "" While receive = String.Empty Or rownumber = totalrow - 2 Threading.Thread.Sleep(100) Try receive = SerialPort1.ReadLine() timer_receive = receive Catch End Try End While rownumber += 1 End While End Sub
Data dikirim sesuai urutan dalam tabel. Sebagai pemisah antar data disisipkan karakter penanda agar pembacaan di mikrokontroler menjadi lebih mudah. Setiap file 26
baru yang diproses selalu diawali dengan mengirim data Inisialisasi. Data ini bertujuan untuk menset posisi bor pada titik acuan pemotongan yaitu titik 0,0. Dan setiap selesai memproses data file, dikirim data Angkat bor untuk menset posisi bor dititik 0,0 dengan posisi mesin bor diatas. 3.4
Menentukan Koordinat Pemotongan Setelah data diterima oleh mikrokontroler, data akan diolah untuk menentukan
gerakan motor X dan motor Y. Pemprosesan data selalu menggunakan 2 titik yaitu titik awal dan titik akhir. Titik awal digunakan sebagai titik acuan dan titik akhir adalah titik yang diproses.
Titik awal Titik akhir
Gambar 3.21. Garis dengan 2 titik Karena ada kemungkinan perbedaan jarak X dan Y, maka gerakan motor harus diatur supaya hasil putaran motor sesuai dengan data yang diberikan. Berikut adalah urutan prosesnya. 1.
Tentukan Jarak Acuan Jarak Acuan berfungsi supaya gerakan motor mulai dan berhenti pada waktu yang sama. Jarak acuan adalah nilai yang lebih besar antara |X2-X1| dan |Y2-Y1|. if(abs(dx)>abs(dy)) {acuan=abs(dx);} else {acuan=abs(dy);}
27
X1
X2
Y1
Y2
Gambar 3.22 Garis X dan Y 2.
Ubah jarak ke dalam bentuk titik-titik Proses ini untuk membagi total gerakan motor yang dibutuhkan ke dalam tiap-tiap step gerakan motor.
Motor X
1
2
3
4
5
Motor Y
1
2
3
4
5
6
7
8
9
10 11 12 13 14 15 16 17 18 19 20
Gambar 3.23 Garis X dan Y dalam step 3.
Tentukan gerakan motor X dan Y Untuk menentukan gerakan motor X dan Y digunakan rumus berikut =
(
).
−
(3.4)
=
(
).
−
(3.5)
Xakhir
= Nilai koordinat X yang akan diproses
Xawal
= Nilai koordinat X yang diproses sebelumnya
Acuan
= Jarak yang terbesar antara Xakhir-Xawal dan Yakhir-Yawal
Motor X
= Nilai 1 step Motor X
Motor Y
= Nilai 1 step Motor Y
Nilai X awal dan Y awal adalah posisi koordinat dimana motor terakhir kali bergerak.
28
for(a=0;a<=acuan;a++) { fX=((dx*a)/acuan)-Xold; fY=((dy*a)/acuan)-Yold; Move_xy(fX,fY); Xold+=fX; Yold+=fY; }
Tabel : 3.5 Tabel nilai motor X dan Y N
Motor Y
Motor X
N=0
=
N=1
=
N=2
=
(
ℎ −
).0
(
ℎ −
).1
(
ℎ −
).2
(
ℎ −
).0
(
ℎ −
).1
(
ℎ −
).2
−
=
−
=
−
=
.
.
.
.
.
.
.
.
.
N=Acua =
n
Motor X
N Motor Y
N
(
ℎ −
).
−
=
(
ℎ −
).
−
−
−
−
1 0 0 0 1 0 0 0 1 0 0 0 1 0 0 0 1 0 0 0
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 .
.
.
N
1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 .
.
.
N
Gambar 3.24 Gerakan Motor X dan Y Kemudian setelah didapatkan nilai dari motor X dan motor Y baru digunakan untuk menggerakkan motor. void Move_xy(int flagX,int flagY) {
int x; if(flagX==1&&flagY==1) 29
{…}
if(flagX==1&&flagY==0) if(flagX==0&&flagY==1) if(flagX==0&&flagY==0) if(flagX==0&&flagY==-1) if(flagX==-1&&flagY==0) if(flagX==-1&&flagY==-1) if(flagX==1&&flagY==-1) if(flagX==-1&&flagY==1)
3.5
{…} {…} {…} {…} {…} {…} {…} {…}
}
Menghitung Jarak dan Putaran Motor Stepper. Motor stepper yang digunakan mempunyai resolusi 1.8° atau 200 step tiap
putaran. Ulir yang dipakai menggunakan ball screw dengan jarak gang 1 cm. Dengan menggunakan metode halfstep maka resolusi motor stepper bisa diperkecil menjadi 0.9° atau 400 step tiap putaran. Jika 1 langkah gerakan motor adalah 1 siklus halfstep maka jarak yang ditempuh dalam 1 langkah dapat dihitung sebagai berikut : 1
ℎ=
8 400
1
= 0.2
Jadi dengan resolusi gerak 0.2 mm maka untuk menghasilkan 50 cm dibutuhkan 2500 step. Karena resolusi jarak titik pada file plt adalah 50cm/20000 atau 0.025 mm maka resolusi tersebut harus disamakan dengan resolusi gerak mesin yaitu dikalikan dengan 8. 3.6
Menghitung Kecepetan Potong Kecepatan
potong
dipengaruhi
frekuensi
pulsa
yang
diberikan
untuk
menggerakkan motor stepper. Untuk memutar motor 1 putaran dibutuhkan motor stepper harus diberikan pulsa sebanyak 400 kali. Jika frekuensi pulsa sebesar 5 mili detik, maka untuk menggerakan motor 1 putaran penuh didapatkan waktu sebagai berikut :
1
= 400
5
=2
Jika menggunakan ulir dengan jarak gang 1 cm, maka kecepatan potong mesin adalah 1 cm / 2 detik atau 30 cm / menit.
30
3.7
Diagram Alir
3.7.1 Pengolahan Data pada Aplikasi Desktop Start Baca data Garis pada tabel Open file Pisahkan data menjadi data titik Open file Ubah resolusi dan masukan dalam tabel Baca data file
Buat gambar dari tabel data titik
Pisahkan data menjadi data pergaris
Stop Masukan dalam tabel
Gambar 3.25. Diagram Alir Pengolahan Data pada Aplikasi Desktop Untuk membuka file, pilih menu Open file kemudian pilih file yang diinginkan. Aplikasi Desktop akan membaca dan menyimpan semua data yang ada pada file. Data akan dipisahkan menjadi data tiap-tiap garis. Jumlah data tiap garis akan dihitung dan dimasukan ke dalam tabel. Setiap data Garis akan dipisahkan menjadi data Titik. Setiap data Titik akan diubah resolusinya dan dimasukan ke dalam tabel. Dari data Titik dalam tabel dibuat Gambar pada panel gambar berdasarkan data koordinat X dan Y
31
3.7.2 Pengiriman Data dari Aplikasi Desktop ke Mikrokontroler.
Gambar 3.26. Diagram Alir Pengiriman Data dari Aplikasi Desktop ke Mikrokontroler.
32
Ketika tombol “Connect” ditekan, maka serialport akan dibuka untuk melakukan pengiriman data. Saat tombol “Send” ditekan, maka program akan menghitung jumlah data yang ada pada tabel. Data pada tabel akan ditambah dengan data Inisialisasi dan Data Angkat Bor. Setelah semua data dihitung, data pada tabel akan dikirim satu per satu sesuai urutan data pada tabel. Data pertama yang dikirim adalah data Inisialisasi kemudian data Titik pada tabel dan diakhiri Data Angkat Bor. Setiap melakukan pengiriman data, data yang dikirim selalu ditampilkan pada TextBox “Data Kirim”. Selanjutnya aplikasi desktop akan menunggu data balik dari mikrokontroler. Jika ada data yang diterima, data akan ditampilkan pada TextBox “Data Terima”. Jika data sudah ditampilkan maka data selanjutnya akan dikirim lagi ke mikrokontroler. Proses tersebut dilakukan berulang sampai data habis.
33
3.7.3 Proses Mikrokontroler Start
Power On?
Tidak
Stop
Ya
Tunggu Data
Kirim Data Ke Aplikasi Desktop
Tidak
Ada Data?
Ya Proses Inisialisasi
Ya
Data Inisialisasi?
Tidak
Tidak Proses Angkat Pena
Ya
Data Angkat Bor?
Proses data koordinat
Ya
Data Titik
Gambar 3.27. Diagram Alir Proses Mikrokontroler
Jika catudaya pada mikrokontroler dihidupkan, mikrokontroler akan selalu menunggu data dari aplikasi desktop. Jika ada data diterima, data akan dicek apakah merupakan data Inisialisasi, data Titik atau data Angkat Bor. Jika data adalah data Inisialisasi maka dilakukan proses Inisialisasi. Jika data adalah data Angkat bor maka akan dilakukan proses angkat bor dan jika data adalah data Titik maka akan dilakukan proses pemotongan akrilik. Jika data sudah diproses, maka data akan dikirim kembali ke aplikasi desktop kemudian mikrokontroler akan selanjutnya.
34
menunggu sampai ada data
3.7.4
Proses Inisialisasi
Start Cek Posisi Motor Y
Cek Posisi Bor Putar Motor Y ke titik 0
Angkat Bor ke Batas atas
Tidak
Bor diposisi Batas Atas?
tidak
Motor Y sudah di titik 0?
Ya
Cek Posisi Bor
Ya Cek Posisi Motor X Turunkan Bor ke Batas bawah Putar Motor X ke titik 0
Tidak
Tidak
Motor X sudah di titik 0?
Bor diposisi Batas Bawah?
Ya Stop
Gambar 3.28. Diagram Alir Proses Inisialisasi Posisi bor akan dicek apakah di atas atau di bawah. Jika dibawah maka posisi bor akan diangkat ke atas. Setelah posisi bor diatas, bor akan dibawa ke posisi titik 0,0. Titik 0,0 adalah titik dimana sensor photo interrupter X dan Y dalam kondisi ‘1’. Jika posisi motor X da Y sudah di titik 0,0, bor akan diturunkan ke titik sampai sensor photo interrupter batas bawah dalam kondisi ‘1’.
35
3.7.5 Proses Pemotongan Start Naik
Data Posisi Bor Naik/turun?
Turun
Cek Data Posisi Bor = Naik?
Posisi Bor = Turun?
Tidak
Tidak
Angkat Bor sejauh Data Kedalaman
Turunkan Bor sejauh Data Kedalaman
Apakah Data Kedalaam?
Ya Cek dan Simpan Data Kedalaman
Ya
Ya Hitung Jarak X dengan X sebelumnya (dX)
Apakah Data Posisi Bor Hitung Jarak Y dengan Y sebelumnya (dY)
Ya Cek dan Simpan Data posisi bor
dY>dX?
Apakah Data Koordinat X?
Ya
Ya
Putar Motor X dengan dY sebagai acuan
Putar Motor X dengan dX sebagai acuan
Putar Motor Y dengan dY sebagai acuan
Putar Motor Y dengan dX sebagai acuan
Hitung dan simpan Data koordinat X
Apakah Data Koordinat Y? tidak
Stop Stop
Ya Hitung dan simpan Data Koordinat Y
Gambar 3.29 Diagram Alir Proses Pemotongan
36
Ketika data Titik diterima, terlebih dahulu data akan dicek dan dipisahkan. Data dikirim dengan format $kedalaman@posisiborXdatakoordinatxYdata koordinat y#. Karakter ‘$’, ‘@’, ‘X’, ‘Y’ digunakan sebagai penanda untuk memisahkan datanya. Sedangkan ‘#’ sebagai penanda akhir data. Jika format data tidak terpenuhi atau tidak sama maka data tidak akan dipakai dan mikrokontroler akan menunggu data lagi. Jika sesuai, maka data akan disimpan sesuai urutan data kedalaman, data posisi bor, data koordinat X dan data koordinat Y. Data kedalaman digunakan sebagai acuan untuk mengerakkan posisi bor. Naik atau turunnya posisi bor ditentukan oleh data posisi bor. Sedangkan data koordinat X dan Y digunakan untuk menggerakkan motor ke posisi yang diinginkan.
37