Flowchart Algoritma Diagram Blok Secara garis besar, diagram blok alat digambarkan pada gambar berikut ini:

3.3 Flowchart Algoritma

Untuk flow chart short way sebagai berikut : Gambar 3.3 Flowchart Algoritma Backtracking

3.4 Analisis Kebutuhan

Analisis kebutuhan adalah hal-hal apa saja yang dibutuhkan untuk merangkai atau merancang robot line maze solving ini. Berikut ini adalah komponen-komponen yang dibutuhkan untuk perancangan robot tersebut.

3.4.1 Kontrol PID

Kontrol PID merupakan hal terpenting dari robot ini, karena akurasi robot ini bergantung pada kestabilan kontrol PID yang berimbas kepada kestabilan putaran motor, penting bagi robot untuk dapat mencapai kestabilan dalam waktu yang cepat terutama ketika berada di persimpangan, ilustrasi di bawah dapat dilihat keadaan robot yang stabil dan yang tidak stabil mengingat robot hanya akan mendeteksi persimpangan. Jika sensor robot berada pada posisi gambar kedua maka robot akan medeteksi persimpangan kiri, hal ini akan membuat proses algoritma backtracking tidak bekerja optimal. Gambar 3.4 Ilustrasi robot dalam kondisi stabil dan tidak stabil Blok PID terdiri dari kontrol P, Kontrol I dan Kontrol D seperti yang terlihat pada gambar di bawah ini : Adapun formula dari kontrol PID adalah: Agar formula dapat digunakan dalam program, maka kita menggunakan model matematisnya sebagai berikut : Berikut ilustrasi proses PID Gambar 3.5 Ilustrasi Proses PID Dari gambar di atas terlihat robot terdiri dari 8 sensor robot sari S1 sampai S8, masing- masing sensor memiliki point value PV yang berbeda-beda, jika S4 dan S5 mendeteksi garis hitam maka robot dalam keadaan stabil dan PV adalah 0, secara berjenjang PV sensor akan membesar sebanding dengan urutan sensor terhadapa S4 dan S5. Untuk mendapatkan nilai error maka nilai Set Poin SP dikurang PV, sedangkan nilai last error di dapat dari nilai error dari peroses n-1, dan nilai Time Sampling TS didapat dari interval pembacaan pertama dengan pembacaan kedua, semakin rendah nilai TS semakin akurat pembacaan sensor.

3.4.2 Rangkaian H-Bridge

Input pada rangkaian H-Bridge terdiri dari 2 input, 1 input untuk PWM dan 1 input untuk mengendalikan arah putar motor. Input untuk mengendalikan arah putar motor rangkaian ini hanya memerlukan 1 input karena rangkaian ini dilengkapi dengan IC gate NAND, dan hal ini juga menambahkan fitur auto break sistem. Gambar 3.6 Rangkaian H-bridge Dari rangkaian di atas dapat terlihat input untuk arah putar dan input kecepatan motor dihubungkan dengan gerbang NAND 1, sedang untuk gerbang NAND 2 inputnya berasal dari output gerbang NAND 1 dan input kecepatan motor. Output gerbang NAND 1 dihubungkan dengan half H-Bridge 1 dan output dari NAND 2 dihungkan dengan half H-Bridge 2. Mengingat tabel kebenaran gerbang NAND yang hanya akan menghasilkan output low ketika kedua input gerbang NAND bernilai satu, maka ketika input arah putar bernilai high dan input kecepatan arah putar bernilai high maka, output pada gerbang NAND 1 adalah low dan output pada gerbang NAND 2 adalah high, dan jika input arah putar bernilai high dan input kecepatan motor bernilai low maka, output gerbang NAND 1 adalah high dan ouput gerbang NAND 2 adalah high. Jika input arah putar bernilai low dan kecepatan putar bernilai high maka, output gerbang NAND 1 bernilai low dan output gerbang NAND 2 bernilai high, dan jika input arah putar bernilai low dan input kecepatan putar motor bernilai low, maka output gerbang NAND 1 bernilai high dan output gerbang NAND 2 bernilai high, dari 4 kemungkinan di atas maka dapat disimpulkan tabel kebenaran sebagai berikut: Tabel 3.1 Tabel Kebenaran INPUT dan Output DIR arah putar PWM Kecepatan putar Output NAND 1 Output NAND 2 1 1 1 1 1 1 1 1 1 1 Output dari gerbang NAND 1 dan gerbang NAND 2 akan menjadi input untuk H- Bridge, ketika output dari NAND 1 bernilai low dan output NAND 2 bernilai high maka, transistor Q5 cut off, hal ini menyebabkan arus tidak mengalir dari dari kolektor ke emitter, sehingga gate Q1 dan Q4 adalah 12 V, sebaliknya Q6 akan saturasi sehingga arus mengalir dari kolektro ke emitter, sehingga gate Q2 dan Q3 adalah 0 V. mengingat Q1, Q2 adalah P-Channel dan Q3, Q4 adalah N-Channel maka Q1 akan cut off dan Q4 akan saturasi, sedangkan Q2 akan saturasi dan Q3 akan cut off. Kejadian ini mengakibatkan arus mengalir dari Q2 ke Q4 dan motor akan berputar kearah jarum jam. Ketika output dari NAND 1 bernilai high dan output NAND 2 bernilai low maka, transistor Q5 saturasi, hal ini menyebabkan arus mengalir dari dari kolektor ke emitter, sehingga gate Q1 dan Q4 adalah 0 V, sebaliknya Q6 akan cut off sehingga arus tidak mengalir dari kolektro ke emitter, sehingga gate Q2 dan Q3 adalah 12 V. hal ini menyebabkan Q1 akan saturasi dan Q4 akan cut off, sedangkan Q2 akan cut off dan Q3 akan saturasi. Kejadian ini mengakibatkan arus mengalir dari Q1 ke Q3 dan motor akan berputar berlawanan dengan arah jarum jam. Ketika output dari NAND 1 bernilai high dan output NAND 2 bernilai high maka, transistor Q5 cut off, hal ini menyebabkan arus tidak mengalir dari dari kolektor ke emitter, sehingga gate Q1 dan Q4 adalah 0 V, sedangkan Q6 akan cut off sehingga arus tidak mengalir dari kolektro ke emitter, sehingga gate Q2 dan Q3 adalah 0 V. hal ini menyebabkan Q1, Q2,Q3 dan Q4 akan cut off. Kejadian ini mengakibatkan motor akan berhenti. Mengingat robot ini menggunakan PWM, maka kecepatan motor akan berbentuk pulsa, sehingga saat PWM bernilai low maka motor akan berhenti hal ini menyebabkan motor akan secara otomatis berhenti ketika PWM bernilai low. Dari kejadian di atas maka dapat disimpulkan sebagai berikut : Tabel 3.2 Hubungan nilai PWM dengan kecepatan Motor DIR arah putar PWM Kecepatan putar Arah motor Status motor 1 1 CW ON 1 Break OFF 1 CCW ON Break OFF Dari penjelasan di atas bisa dibuktikan bahwa rangkaian H-Bridge di atas mempunyai fitur auto break sistem, hal perlu untuk mengurangi drift dari robot ini, karena inti kestabilan robot ini ada pada akurasi pembacaan persimpangan, dan jika motor tidak dapat dikendalikan secara baik maka kemungkinan error akan lebih besar terjadi.

3.4.3 Rangkaian Regulator

Agar rangkaian dapat bekerja, maka dibutuhkan sumber tegangan. Pada perancangan ini dibutuhkan sumber tegangan yang konstan 5 volt DC, yang digunakan untuk menyupply tegangan ke IC ATMega32 dan sensor proximity. Dalam hal ini digunakan IC regulator 7805 yang mampu menghasilkan output 5 volt DC, untuk menghindari bouncing ketika robot dihidupkan pertama kali maka pada output IC regulator ditambahan filter yaitu capasitor C2, sedangkan C1 berfungsi sebagai filter yang berfungsi untuk menstabilkan arus yang masuk ke IC regulator. Rangkaian tampak seperti gambar di bawah ini: Gambar 3.7 Rangkaian Regulator Rangkaian di atas cukup stabil, dan komponen yang digunakan juga minim, sehingga PCB yang digunakan dapat diminimalisir.

3.4.4 Rangkaian Sensor Priximity

Robot ini menggunakan sensor proximity untuk pembacaan garis, sensor ini sering digunakan pada industry sebagai sensor encoder untuk menghitung jumlah putaran motor, sebagai sensor limit dan sebagai penggunaan lainnya. Pada robot ini juga menggunakan sensor yang sama mengingat sensor ini termasuk sensor yang tidak kontak langsung, selain sensor ini, ada sensor lain yang dapat digunakan seperti sensor warna dan kamera. Proses pembacaan sensor proximity jauh lebih cepat dibanding sensor warna dan kamera dengan mikrokontroller yang sama, selain alasan di atas harga juga menjadi pertimbangan mengapa robot ini menggunakan sensor poriximity. Tetapi bukan berarti sensor ini tidak mempunya kekurangan, kekurangan terbesar dari sensor ini adalah mudah terganggu oleh cahaya luar, tetapi mengingat robot ini dijalankan di dalam ruang maka gangguan cahaya luar dapat di redam. Sensor ini menggunakan sifat cahaya yang cenderung lebih banyak memantulkan cahaya pada permukaan putih jika dibanding dengan permukaan hitam, mengingat robot ini mengikuti garis dengan permukaan berwana putih dan gari berwarna hitam. Sensor proximity mempunyai transmitter dan receiver, untuk transmitter robot ini menggunakan led. Selain led transmitter juga bisa menggunakan IR. Kinerja kedua transmitter ini tidak begitu signifikan, dengan alasan kemudahan untuk mengetahui apakah transmitter on atau off, maka led lebih unggul karena gelombang cahanya led dapat terlihat langsung tanpa menggunakan bantuan alat. Dengan alasan tersebut maka transmitter yang digunakan adalah led. Untuk transmitter yang digunakan adalah photodiode, output yang dihasil photodioda berbanding terbalik dengan pantulan cahaya, semakin banyak cahaya yang diterima maka output photodiode semakin kecil sebaliknya semakin sedikit cahaya yang diterima maka output akan semakin besar. Gambar 3.8 Sensor Proximity Photodioda dan Led Untuk membedakan pembacaan photodiode ketika cahaya dipantulkan pada permukaan hitam atau putih dapat menggunakan rangkaia komparator, menggunakan IC Op-Amp dan kalibrasi diatur menggunakan rangkaian pembagi tegangan menggunakan potensiometer. Namun masalah terbesar rangkaian tersebut adalah memerlukan waktu yang lebih lama untuk proses kalibrasi sensor, karena harus mengatur tegangan refrensi, dan dilakukan untuk masing-masing sensor. Untuk menghindari hal itu maka output photodiode langsung dihubungkan ke robot ini dengan memanfaatkan fitur ADC yang ada pada mikrokontroller ATMega32, sehingga peroses kalibrasi dapat dilakukan dengan program yang diflash pada mikrokontroller, dalam sekali kalibrasi robot mampu mendapatkan nilai kalibrasi untuk semua sensor. Kalibarasi dengan cara mengambil nilai rata-rata sensor ketika di atas garis hitam dan garis putih, atau dengan kata laian mengambil nilai rata-rata dari pembacaan nilai tertinggi dengan nilai terendah. Gambar 3.9 Rangkaian Sensor Proximity

3.5 Diagram Blok Secara garis besar, diagram blok alat digambarkan pada gambar berikut ini:

Gambar 3.10 Diagram Blok Rangkaian Pada diagram blok di atas terlihat mikrokontroller terhubung dengan 4 buah tombol, tombol tersebut digunakan agar kita dapat dengan mudah melakukan kalibrasi sensor, mengatur konstanta KP, KI dan KD dan mengatur kecepatan motor. Untuk memudahkan kita dalam mengatur konstanta KP, KI, KD dan kecepatan motor, maka robot ini dilengkapi LCD, sehingga konstanta tersebut dapat dimonitoring secara real time. Robot ini menggunakan robot kendali PID agar robot dapat bergerak sesuai dengan pergerakan yang diperlukan, sehingga robot dapat tetap di atas garis. Agar robot bekerja dengan baik maka kestabilan robot sangat diperhatikan, kestabilan ini dapat di atur dengan mengubah kostanta KP, KI, KD dan kecepatan motor, mengingat robot harus dapat membaca persimpangan agar algoritma dapat berjalan dengan baik. Pada diagram blok di atas juga terlihat ada delapan buah sensor proximity, dan empat buah tombol. Sensor poriximity digunakan untuk sensor garis, dengan ini robot dapat membaca sensor garis yang dilalui robot, output sensor proximity berupa tegangan analog sehingga dibutuhkan ADC agar mikrokontroller dapat memproses output sensor, dalam hal ini mikrkontroller ATMega32 menyediakan fiture ADC 8 channel, masing-masing channel mempunyai resolusi 10 bit sehingga garis hitam dan putih memupunyai perbedaan nilai yang jauh, hal ini memudahkan dalam menentukan nilai refrensi sensor. Pada output ada 2 buah motor, agar robot dapat bergerak sesuai dengan yang diharapkan maka robot ini menggunakan dirver H-Bridge motor dari mosfet, agar proses switching bisa lebih cepat. Kecapatan motor dikendalikan mikroktronller menggunakan PWM yang dihasilkan dari robot kendali PID. PWM digunakan agar mikrokontroller dapat melakukan pembacaan terhadap sensor dengan waktu sampling yang stabil dan lebih cepat, mengingat PWM bekerja terpisah, sehingga mikrokontroller dapat menjalankan rutin program dan PWM secara parallel.

3.6 Perancangan Rangkaian Mikrokontroller ATMega32