Minggu, 23 Maret 2014

Robot Line Tracking



   Cara Kerja Alat

Cara kerja sistem robot line tracking secara umum ialah dimulai dari pembacaan lintasan atau garis dari sensor photodiode beserta LED dimana intensitas pantulan sinar LED akan berbeda jika terkena bidang pantul yang gelap dengan bidang pantul yang lebih terang, dari perbedaan inilah dimanfaatkan sebagai pendeteksi lintasan atau garis dan selanjutnya diteruskan pada rangkaian untai pengkondisi sinyal (komparator). Rangkaian komparator (IC LM324) berfungsi untuk membandingkan nilai yang dibaca sensor photodioda dengan nilai referensi komparator sehingga perbedaan terlihat sangat kontras saat sensor photodioda mendeteksi objek pantul gelap maupun terang. Hasil keluaran komparator kemudian diteruskan dan diproses oleh rangkaian pengendali utama yakni IC mikrokontroller AT89S51. Didalam minsys jika input yang didapat dari pin input 1 adalah 0 dan input 2 adalah 1 maka minsys akan mengeluarkan output untuk ic driver yang bernilai f4h (11110100) sehingga IC LM293D akan mengerakan motor kiri secara ccw dan motor kanan akan diam, kondisi ini akan membuat arah gerak robot berbelok ke kanan. Kemuduian jika input 1 bernilai 1 dan input 2 bernilai 0 maka minsys akan mengeluarkan output melalui port 2 yang bernilai f1h (11110001) sehingga IC L293D akan menggerakkan motor kanan secara cw dan motor kiri diam, kondisi ini akan membuat arah robot berbelok ke kiri.
 
    Aktivator
Sumber tegangan DC dapat berupa baterai atau adaptor. Line Tracking Robot ini menggunakan sumber tegangan DC berupa baterai 9 Volt. Tegangan DC 9 Volt tersebut digunakan untuk mengaktifkan minsys dan rangkaian sensor yang terdapat pada Line Tracking Robot. Saat sumber tegangan diaktifkan, maka proses berikutnya adalah ke bagian input.
   Input
Pada alat line tracking robot yang berfungsi sebagai inputan adalah  sensor. Sensor yang digunakan sebagai inputan pada alat line tracking robot adalah infra merah dan photo dioda. Inframerah berfungsi sebagai pemancar cahaya dan photo dioda berfungsi sebagai penerima pantulan sinar dari infra merah.
Infra merah berfungsi memberikan pantulan cahaya ke photo dioda. Jika permukaan yang dikenai cahaya infra merah berwarna gelap, maka cahaya yang dipantulkan akan sedikit atau tidak ada sama sekali, sedangkan jika permukaannya putih maka pantulan cahaya yang dihasilkan oleh inframerah lebih banyak.
Photo dioda pada line tracking robot ini berperan sebagai penerima cahaya yang dipantulkan oleh inframerah. Dengan kondisi jika photo dioda menerima cahaya yang dipantulkan oleh inframerah, maka base pada photo dioda (berupa cahaya) akan aktif dan terjadi saturasi (kondisi dimana arus akan mengalir) ke arah ground. Sedangkan, jika cahaya pantul sedikit atau tidak ada, maka akan terjadi cut off (kondisi dimana arus tidak dialirkan).
    Proses
Pada blok proses line tracking robot menggunakan 3 buah IC sebagai alat pemrosesan dari inputan. 3 buah IC tersebut adalah IC komparator (IC LM324), Mikrokontroler (IC AT89S51), dan Driver Motor (IC LM293).

     Blok Komparator
IC komparator atau IC LM324 ini memiliki 4 komparator dengan 4 output. Sedangkan untuk mengaktifkan Line Tracking Robot ini hanya membutuhkan 2 komparator dan 2 output. Adapun pin yang digunakan adalah pin 2 dan 3 yang menghasilkan output pada pin 1 sebagai komparator 1, dan pin 5 dan 6 yang menghasilkan output pada pin 7 sebagai komparator 2.


Text Box: Gambar 3.2 Datasheet IC LM324




Sesuai dengan namanya, IC ini bertugas membandingkan 2 tegangan input yang masuk dan menghasilkan 1 tegangan output.





         Vb
 
 
  

Va 
Gambar 3.3 Konsep kerja komparator
Vout = (Vb – Va) * 90% Vcc

 
Untuk bisa mengetahui hasil output pada komparator adalah dengan menggunakan rumus di bawah ini:


Jika photo dioda tidak menerima cahaya, maka output yang dihasilkan oleh komparator bernilai 0, dan jika menerima cahaya maka output komparator bernilai 1.
Trimpot yang terhubung dengan LM324 berfungsi sebagai pengatur besarnya inputan pada kaki non inverting.








Output dari IC komparator LM324 akan diproses di dalam IC mikrokontroler AT89S51, IC AT89S51 merupakan IC yang dapat diprogram dengan menggunakan bahasa assembler.
3.1.3.2.     Blok Mikrokontroller
Pemrosesan input pada IC AT89S51 yaitu ketika kedua output dari IC LM324 masuk melalui port 1.0 dan 1.1. Port - port ini hanya akan aktif apabila diberi masukan rendah (aktif low). Aktif atau tidaknya port 1.0 dan 1.1 in akan berpengaruh pada output mikrokontroler pada port 2.0 sampai 2.3. Port - port output ini dihubungkan dengan pin 2, 7, 10, dan 15 pada IC L293D. Di bawah ini adalah ketentuan pemasangan pin-nya:

·            Port 2.0 dengan pin 15
·            Port 2.1 dengan pin 10
·            Port 2.2 dengan pin 2
·            Port 2.3 dengan pin 7


Text Box: Gambar 3.5 Datasheet IC AT89S51







Pada alat line tracking robot yang berfungsi sebagai penggerak motor DC adalah IC L293D. IC ini berfungsi untuk menggerakkan motor DC dengan mengalirkan arus dengan tegangan 9V ke kedua motor DC.
3.1.3.3      Blok Driver Motor
Dari IC mikrokontroler masuk ke pin input L293D yaitu 2, 7, 10, dan 15. Input ini akan diteruskan ke pin output L293D yaitu 3, 6, 11, dan 14 dengan nilai yang sama dengan input. Adapun input berasal dari pin :

·            Pin 2 input untuk motor 1
·            Pin 7 input untuk motor 1
·            Pin 10 input untuk motor 2
·            Pin 15 input untuk motor 2
Output L293D dihubungkan dengan motor DC dengan ketentuan pemasangannya sebagai berikut:
·           Pin 14 dengan kutub negatif  (-) motor 1
·           Pin 11 dengan kutub positif (+) motor 1
·           Pin 3 dengan kutub negatif (-) motor 2
·           Pin 6 dengan kutub negatif (+) motor 2
 
       Analisa Rangkaian Secara Detail

Text Box: Gambar 3.6 Schematic Line Tracking Robot
Pada alat line tracking ini analisa rangkaian secara detail dimulai dari aktivator menerima daya untuk mengaktifkan semua komponen, lalu sensor menerima inputan. Kemudian inputan masuk ke IC komparator dan diproses lalu dikirimkan kembali ke IC AT89S51, setelah itu dikirimkan ke IC L293D Untuk  mengeluarkan output berupa putaran pada motor DC. Selanjutnya akan dipaparkan lebih jelas.
Pada alat line tracking robot menggunakan aktivator berupa baterai 9V atau Adaptor. Aktivator ini berfungsi untuk mengaktifkan semua rangkaian yang terdapat dalam line tracking robot.
Setelah daya dari aktivator mengaktifkan seluruh rangkaian maka selanjutnya masuk ke tahap inputan. Inputan yang digunakan pada line tracking robot berupa pantulan cahaya dari infra merah yang ditangkap oleh photo dioda. Pada line tracking robot menggunakan 2 buah infra merah dan 2 buah sensor photo dioda.
Jika photo dioda menerima pantulan cahaya dari infra merah atau di beri alas putih pada sensor tersebut maka akan memberi logika low. Apabila photo dioda tidak menerima pantulan dari infra merah atau di beri alas hitam pada sensor tersebut maka akan memberi logika high.
Setelah menerima inputan dari sensor maka masuk pada tahap pemrosesan inputan. Inputan yang telah diterima masukke IC LM324 atau sering disebut IC komparator. Inputan yang berasal dari sensor masuk pada kaki 2 dan kaki 6 IC LM324 yang berfungsi sebagai kaki inverting. Sedangkan sebagai tegangan pembanding berasal dari trimpot yang masukke kaki 3 dan 5 IC LM324 yang berfungsi sebagai kaki non inverting. Setelah itu tegangan akan dibandingkan dan menghasilkan output pada kaki 1 sebagi inputan 1 dan 7 sebagai inputan 2 untuk IC AT89S51.
Setelah itu kedua inputan tersebut akan masukke IC AT89S51 yang berfungsi sebagai mikrokontroller. Pada IC ini inputan 1 masuk pada port 1.0 dan inputan 2 masuk pada port 1.1. Pada IC ini inputan akan di proses sesuai dengan program yang telah dibuat. Setelah itu output dari IC AT89S51 ini akan dikeluarkan pada port 2.0, port 2.1, port 2.2, dan port 2.3
sesuai dengan program. Setelah itu output pada port – port tersebut akan diteruskan sebagai inputan untuk IC L293D sebagai IC penggerak motor.
Pada IC L293D output dari IC AT89S51dimasuk sebagai inputan dengan ketentuan sebagai berikut :
·      Output Port 2.0 IC AT89S51 => Input kaki 2 IC L293D
·      Output Port 2.1 IC AT89S51 => Input kaki 7 IC L293D
·      Output Port 2.2 IC AT89S51 => Input kaki 10 IC L293D
·      Output Port 2.0 IC AT89S51 => Input kaki 15 IC L293D
Setelah itu input – input tersebut diproses pada IC L293D.Pada IC ini input pada kaki 2 dan 7 menghasilkan output pada kaki 3 dan 6 sedangkan input dari kaki 10 dan 15 menghasilkan output pada kaki 11 dan 14. Output pada kaki 3 dan 6 untuk menggerakkan motor DC kanan dan kaki 11 dan 14 untuk menggerakkan motor DC kiri.
Output yang dihasilkan pada motor DC adalah putaran cw (Clock Wise) dan ccw (Counter Clock Wise). Dengan ketentuan sebagai berikut :
Tabel 3.1 Output logika pada Motor DC
No
Input Kaki:
Ouput Kaki:
Gerakan Line tracking
Kondisi Alas Sensor
2
7
10
15
3
6
11
14
Kiri
Kanan
1
1
1
1
1
1
1
1
1
Diam
Putih
Putih
2
1
0
1
1
1
0
1
1
Belok kanan
Hitam
Putih
3
1
1
1
0
1
1
1
0
Belok Kiri
Putih
Hitam
4
1
0
1
0
1
0
1
0
Maju
Hitam
Hitam
Keterangan :
1 = Input / Output High
0 = Input / Output Low
     Flowchart
Berikut ini adalah flowchart berdasarkan program Line Tracking Robot :
Gambar 3.7 Flowchart Line Tracking Robot
Keterangan :
·         SKI                  : Sensor Kiri
·         SKA                 : Sensor Kanan
·         MGBKA          : Motor GearBox Kanan
·         MGBKI            : Motor GearBox Kiri

Pada gambar 3.7 di atas merupakan gambar flowchart dari line tracking robot. Diawali dengan Mulaikemudian masuk ke decision apakah power pada rangkaian sudah di hubungkan apabila tidak maka masukke terminate selesai. Apabila aktif masuk ke inisialisasi port – port yang digunakan.
            Setelah inisialisasi port – port yang digunakan selasaiselanjutnya masuk ke decision apakah kedua sensor aktif. Apabila kedua sensor aktif berarti port 1 menerima inputan berupa FF selanjutnyaIC AT89S51 mengirim output ke IC L293D melalui port 2 dengan perintah F0. Perintah tersebut membuat motor gearbox diam, kemudian kembali lagi ke decision power on. Apabila kedua sensor tidak aktif maka masuk ke decision apakah sensor kanan aktif.
            Apabila sensor kanan aktif berarti port 1 menerima inputan berupa FD selanjutnya IC AT89S51 mengirim output ke IC L293D melalui port 2 dengan perintah F4. Maka output pada motor gearbox kanan diam dan motor gearbox kiri berputar dengan arah ccw (counter clock wise) yang membuat robot belok ke arah kanan kemudian kembali lagi ke decision power on. Apabila sensor kanan tidak aktif maka masuk ke decision apakah sensor kiri aktif.
            Apabila sensor kanan aktifberarti port 1 menerima inputan berupa FE selanjutnya IC AT89S51 mengirim output ke IC L293D melalui port 2 dengan perintah F1. maka output pada motor gearbox kiri diam dan motor gearbox kanan berputar dengan arah cw (counter clock wise) yang membuat robot belok ke arah kanan kemudian kembali lagi ke decision power on.
Apabila sensor kanan tidak aktifberarti port 1 menerima inputan berupa FC selanjutnya IC AT89S51 mengirim output ke IC L293D melalui port 2 dengan perintah F5. maka masuk ke output motor gearbox kanan berputar cw (clock wise) dan motor gearbox kiri berputar ccw (counter clock wise) yang mengakibatkan robot bergerak maju. Setelah itu kembali lagi ke decision power on.

       Analisa Software
Pada bagian analisa software ini menjelaskan tentang bagaimana cara kerja rangkaian sesuai dengan program yang telah dimasukkan pada IC AT89S51.
Sebuah pemrograman dibutuhkan agar Line Tracking Robot dapat bergerak sesuai yang diinginkan, dimana pemrograman tersebut harus di download ke dalam IC AT89S51.
 Program ini dibentuk melalui software MIDE 51 dengan ketentuan bahwa Line Tracking Robot bergerak berdasarkan garis putih.
Untuk memudahkan pembuatan program tersebut, sebelumnya buat flowchart program terlebih dahulu. Dari flowchart program yang sudah dibuat, kita dapat mengembangkannya dengan mudah menjadi sebuah pemrograman yang tepat.
Pembuatan flowchart program Line Tracking Robot ini harus memperhatikan syarat-syarat pergerakan motor berdasarkan jalur yang dilalui oleh kedua sensor.  Syarat-syarat tersebut adalah sebagai berikut:
NO
Sensor Kiri
Sensor Kanan
Roda Kiri
Roda Kanan
1
Alas  Putih
Alas  Putih
Diam
Diam
2
Alas   Hitam
Alas Putih
Berputar CCW
Diam
3
Alas  Putih
Alas Hitam
Diam
Berputar CCW
4
Alas  Hitam
Hitam
Berputar CCW
Berputar CW
Tabel 3.2 Syarat-syarat pergerakan motor




Berikut listing program Line Tracking Robot beserta analisanya :
Tabel 3.3 Listing Program Line Tracking Robot
Program
Analisa
$mod51
Untuk inisialisasi awal program
org 00h
Untuk pengalamatan awal program
mov p0,#0ffh
memindahkan nilai 0ffh ke port 0
mov p1,#0fch
memindahkan nilai 0fch ke port 1
mov p2,#0f0h
memindahkan nilai 0f0h ke port 2
;

diam :

mov p2,#0f0h
memindahkan nilai 0f0h ke p2
jnb p1.0, maju
lompat ke label maju ketika p1.0 bernilai 0
jnb p1.1, maju
lompat ke label maju ketika p1.1 bernilai 0
sjmp diam
lompat ke diam
maju :

jb p1.0, kanan
lompat ke kanan ketika p1.0 nernilai 1
jb p1.1, kiri
lompat ke kiri ketika p1.1 nernilai 1
mov p2,#0f5h
memasukkan nilai 0f5h ke port 2
sjmp maju
lompat ke maju
kanan :

jb p1.1, diam
lompat ke diam ketika p1.1 bernilai 1
jnb p1.0, maju
lompat ke maju ketika p1.0 bernilai 0
mov p2,#0f4h
memasukkan nilai 0f4h
sjmp kanan
lompat ke kanan ketika p1.0 nernilai 1
kiri :

jb p1.0, diam
lompat ke diam ketika p1.0 bernilai 1
jnb p1.1, maju
lompat ke maju ketika p1.1 bernilai 0
mov p2,#0f1h
memasukkan nilai 0f1h ke port 2
sjmp kiri
lompat ke kiri ketika p1.1 nernilai 1
end


Berdasarkan tabel program di atas pada bagian awal $mod 51 hingga mov p2, #0f0h berfungsi untuk mengaktifkan seluruh port pada minsys sesuai dengan perintah yang diberikan.
Pada label diam berfungsi untuk membuat kedua motor gearbox diam dengan memasukkan perintah mov p2, #0f0h ke port 2. Perintah jnb p1.0, maju dan jnb p1.1, maju berfungsi untuk melakukan lompatan ke label maju jika terjadi perubahan inputan pada port 1.0 dan port 1.1.

 Setelah itu sjmp diam berfungsi untuk melakukan short jump ke label diam ketika proses diam telah selesai dilakukan.
Pada label maju berfungsi untuk membuat robot bergerak maju dengan perintah mov p2, #0f4h ke port 2. Sebelumnya terdapat perintah jb p1.0, kanan yaitu lompat ke label kanan jika p1.0 bernilai 1. Dan jb 1.1, kiri yaitu lompat ke label kiri apabila port 1.1 bernilai 1. Selanjutnya terdapat perintah sjmp maju, yaitu lompat kembali ke label maju ketika proses pada label maju telah selesai.
Pada label kanan berfungsi untuk membuat robot bergerak belok ke kanan dengan perintah mov p2, #0f5h ke port 2. Sebelumnya terdapat perintah jb p1.1, diam  yaitu lompat ke label diam jika p1.1 bernilai 1. Dan jnb 1.0, maju yaitu lompat ke label maju apabila port 1.0 bernilai 0. Selanjutnya terdapat perintah sjmp kanan, yaitu lompat kembali ke label kanan ketika proses pada label maju telah selesai.
Pada label maju berfungsi untuk membuat robot bergerak belok ke kiri dengan perintah mov p2, #0f1h ke port 2. Sebelumnya terdapat perintah jb p1.0, maju  yaitu lompat ke label maju jika p1.0 bernilai 1. Dan jnb p1.1, diam yaitu lompat ke label diam apabila port 1.1 bernilai 0. Selanjutnya terdapat perintah sjmp kiri, yaitu lompat kembali ke label kiri ketika proses pada label maju telah selesai. Selanjutnya terdapat perintah end untuk mengakhiri program.