T1 612006027 BAB III

(1)

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.