T1 612006027 BAB III
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.
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
Aplikasi Deskt op
M ikrokont roler
M ekanik Penggerak X
M ekanik Pengger ak Y
M ekanik Pengger ak Z
Cat u Daya AC M esin Bor
(2)
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
(3)
Y 65 cm 15 mm 10 mm
Z 11.2 cm 15 mm 4 mm
Gambar 3.4 Penggerak X
Gambar 3.5 Penggerak Y
Gambar 3.6 Penggerak Z
Linear Shaft
(4)
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.
(5)
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
Kecepatan tanpa beban (min-1) 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.
(6)
Gambar 3.9 Mikrokontroler Atmega 32.
(7)
Tabel 3.3. Konfigurasi port mikrokontroler.
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
b. 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.
(8)
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
(9)
Gambar 3.12. Grafik hubungan VDS, ID dan VGS MOSFET.
(10)
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.
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 O
+V VCC
5V
U1 OPTOISO
R2 4k7 R1
(11)
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
(12)
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
Step Konektor
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
(13)
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.
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 koordinat-koordinat 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
3
1
2
5
6
7
(14)
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
(15)
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
(16)
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.
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);}
Titik awal
(17)
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.
M ot or X 1 2 3 4 5
M ot or 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.
(18)
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 X Motor Y
N=0 = ( ℎ − ).0− =
( ℎ − ) .0
−
N=1 = ( ℎ − ).1− =
( ℎ − ) .1
−
N=2 = ( ℎ − ).2− =
( ℎ − ) .2
−
. . .
. . .
. . .
N=Acua
n =
( ℎ − ).
− =
( ℎ − ) .
−
Mot or X 1 0 0 0 1 0 0 0 1 0 0 0 1 0 0 0 1 0 0 0
N 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 . . . N
Mot or Y 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1
N 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;
(19)
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.
(20)
3.7 Diagram Alir
3.7.1 Pengolahan Data pada Aplikasi Desktop
Open file Start
Open file
Baca data file
Pisahkan data menjadi data pergaris
Baca data Garis pada
tabel
Pisahkan data menjadi data
titik
Ubah resolusi dan masukan dalam tabel
Masukan dalam tabel
Buat gambar dari tabel data
titik
Stop
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
(21)
3.7.2 Pengiriman Data dari Aplikasi Desktop ke Mikrokontroler.
Gambar 3.26. Diagram Alir Pengiriman Data dari Aplikasi Desktop ke Mikrokontroler.
(22)
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.
(23)
3.7.3 Proses Mikrokontroler Tunggu Data Ada Data? Tidak Ya Data Inisialisasi? Proses Inisialisasi Ya Proses data
koordinat Ya Data Titik
Tidak Kirim Data Ke
Aplikasi Desktop Data Angkat Bor? Tidak Proses
Angkat Pena Ya
Start
Power On? Stop
Ya
Tidak
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 menunggu sampai ada data selanjutnya.
(24)
3.7.4 Proses Inisialisasi Angkat Bor ke Batas atas Bor diposisi Batas Atas? Putar Motor X ke titik 0
Putar Motor Y ke titik 0
Motor X sudah di titik 0?
Start
Motor Y sudah di titik 0?
Bor diposisi Batas Bawah? Tidak Turunkan Bor ke Batas bawah Stop Cek Posisi Bor Cek Posisi Bor Cek Posisi Motor X Ya Cek Posisi Motor Y Tidak Ya Tidak Ya tidak
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
(25)
3.7.5 Proses Pemotongan Cek dan Simpan Data Kedalaman Cek dan Simpan Data posisi bor Hitung dan simpan Data koordinat X Hitung dan simpan Data Koordinat Y
Hitung Jarak Y dengan Y sebelumnya
(dY) Hitung Jarak X
dengan X sebelumnya (dX) Angkat Bor sejauh Data Kedalaman
Data Posisi Bor Naik/turun?
Posisi Bor = Naik?
Naik Turun
Posisi Bor = Turun? Tidak Turunkan Bor sejauh Data Kedalaman Tidak Apakah Data Kedalaam? Ya Apakah Data Posisi Bor Ya Apakah Data Koordinat X? Apakah Data Koordinat Y? Ya Ya tidak Ya Ya dY>dX?
Putar Motor X dengan dY sebagai acuan
Ya
Putar Motor X dengan dX sebagai acuan
Putar Motor Y dengan dY sebagai acuan
Putar Motor Y dengan dX sebagai acuan Cek Data Start Stop Stop
(26)
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.
(1)
(2)
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.
(3)
3.7.3 Proses Mikrokontroler
Tunggu Data
Ada Data?
Tidak
Ya
Data Inisialisasi? Proses
Inisialisasi Ya
Proses data
koordinat Ya Data Titik
Tidak Kirim Data Ke
Aplikasi Desktop
Data Angkat
Bor? Tidak
Proses
Angkat Pena Ya
Start
Power On? Stop
Ya
Tidak
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
(4)
3.7.4 Proses Inisialisasi Angkat Bor ke Batas atas Bor diposisi Batas Atas? Putar Motor X ke titik 0
Putar Motor Y ke titik 0
Motor X sudah di titik 0?
Start
Motor Y sudah di titik 0?
Bor diposisi Batas Bawah? Tidak Turunkan Bor ke Batas bawah Stop Cek Posisi Bor Cek Posisi Bor Cek Posisi Motor X Ya Cek Posisi Motor Y Tidak Ya Tidak Ya tidak
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’.
(5)
3.7.5 Proses Pemotongan Cek dan Simpan Data Kedalaman Cek dan Simpan Data posisi bor Hitung dan simpan Data koordinat X Hitung dan simpan Data
Hitung Jarak Y dengan Y sebelumnya
(dY) Hitung Jarak X
dengan X sebelumnya (dX) Angkat Bor sejauh Data Kedalaman
Data Posisi Bor Naik/turun?
Posisi Bor = Naik?
Naik Turun
Posisi Bor = Turun? Tidak Turunkan Bor sejauh Data Kedalaman Tidak Apakah Data Kedalaam? Ya Apakah Data Posisi Bor Ya Apakah Data Koordinat X? Apakah Data Koordinat Y? Ya Ya tidak Ya Ya dY>dX?
Putar Motor X dengan dY sebagai acuan
Ya
Putar Motor X dengan dX sebagai acuan
Putar Motor Y dengan dY sebagai acuan
Putar Motor Y dengan dX sebagai acuan Cek Data Start Stop Stop
(6)
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.