Wednesday, February 4, 2009

Robot Penghindar Halangan

Oleh Deddy Susilo

Topik yang kami buat berbasis mikrokontroler keluarga MCS-51, dalam hal ini kami gunakan AT89S51 buatan ATMEL. Kelebihan tipe 89SXX daripada pendahulunya 8031/51 yaitu didalam chip sudah terdapat Flash Memory yang dapat diprogram sebesar 4Kbytes, 128 x 8 bit RAM internal. Jadi dengan menggunakan mikro tipe ini akan didapat desain yang cukup kompak dan pemrogramannya relatif lebih mudah. Desain yang kami buat terdiri dari beberapa bagian yaitu:

1. Modul Mikrokontroler 89S51 + Regulator.
2. Modul Penggerak Motor DC.
3. Modul Penggerak Motor Stepper.
4. Modul Transceiver Infra Red + Pendeteksi Benturan Samping (Limit Switch).
5. Modul Penyuara.

Gambar 1. Robot Penghindar Halangan

Penjelasan Modul

1. Modul Mikrokontroler AT89SXX + Regulator.

Berikut contoh skematik dari modul tersebut. Komponen Modul Mikrokontroler 89CXX

1.Pasif : Resistor 8K2 W, array 10K W 9 pin, Crystal 12 MHz, kapasitor 30 pF, 10uF, 100 uF, 1000uF, switch.
2.Semikonduktor : AT89S51, LM7805.
3.Battery charger 9 VoltDC 700mAH

Modul yang ditunjukkan pada gambar 2 berfungsi mengendalikan seluruh proses pekerjaan sistem robot ini dengan cara penanaman instruksi dalam Flash PEROM didalam chip 89S51. Bahasa yang dipergunakan adalah assembler, bahasa C dengan bantuan Compiler C (Franklin C, Keil C, SDCC atau yang lain). Baterai menggunakan baterai yang dapat diisi ulang sebesar 700mAH dengan asumsi bila sistem memakai arus 0,75 A akan dapat bertahan selama satu jam. LM7805 digunakan untuk meregulasi tegangan dan arus dari baterai sekaligus menyesuaikan level tegangan chip 89S51 serta piranti lain yang akan dipaparkan selanjutnya.

Gambar 2. Modul Mikrokontroler AT89S51

2. Modul Penggerak Motor DC

Komponen Modul Penggerak Motor DC

1. Pasif : Resistor 1 ohm 5 watt untuk pembatas arus dan sensing arus.
2. Semikonduktor : IC Driver Motor L298 buatan ST Microelectronic
3. 2 buah motor DC 9 Volt 2400 RPM dengan pengurang kecepatan dan penguat torsi

Gambar 3. Modul Penggerak Motor DC

Modul ini menggunakan IC driver L298 yang memiliki kemampuan menggerakkan motor DC sampai arus 2A dan tegangan maksimum 40 VoltDC untuk satu kanalnya. Pin Enable A dan B untuk mengendalikan jalan atau kecepatan motor, pin Input 1 sampai 4 untuk mengendalikan arah putaran. Pin Enable diberi VCC 5 Volt untuk kecepatan penuh dan PWM (Pulse Width Modulation) untuk kecepatan rotasi yang bervariasi tergantung dari level highnya. Ilustrasinya ditunjukkan pada gambar 4.

Gambar 4. Ilustrasi Pulse Width Modulation

Dari gambar 4 dapat dijelaskan jika dikehendaki kecepatan penuh maka diberikan 5 Volt konstan, jika dikehendaki kecepatan bervariasi maka diberikan pulsa yang lebar high dan low-nya bervariasi. Satu periode pulsa memiliki waktu yang sama sehingga dalam contoh diatas, kecepatan motor akan berubah dari setengah kecepatan penuh menjadi mendekati kecepatan penuh. Biasanya digunakan lebar pulsa dalam beberapa milisekon misalnya 2 ms. Input untuk motor servo kanan adalah input 1 (C) dan 2 (D), direction-nya dapat dilihat pada tabel 1.

Tabel 1. Pengaturan IC driver motor

Berikut didalam IC L298 mengapa pengendaliannya sesuai dengan tabel 1.

Gambar 5. Ilustrasi Pengendalian Motor didalam IC Driver Motor

Didalam chip L298, untuk mengendalikan arah putaran motor digunakan metode bridge-H dari kombinasi transistor, jadi dengan metode demikian arus yang mengalir kemotor polaritasnya dapat diatur dengan memberikan logika ke transistor Q1 sampai Q4. Pengaturannya seperti tabel kebenaran disamping gambar 5. Kondisi high untuk semua input tidak diijinkan sebab akan mengakibatkan semua transistor aktif dan akan merusakkan transistor karena secara otomatis arus dari kolektor Q1 dan Q2 langsung mengalir ke Q2 san Q3 sehingga arus sangat besar tanpa melalui beban motor DC.

Berikut contoh penggalan pengendalian motor dengan bahasa assembly (contoh robot akan berjalan kedepan X meter)

subrutin-1

Delay diatas menggunakan fasilitas timer dalam chip 89C51. Untuk lamanya delay dapat divariasikan sendiri dengan proses looping atau perulangan. Jika dikehendaki robot berputar sesuai porosnya maka dapat dicoba penggalan source code sebagai berikut:

Subrutin-2

Fungsi Rsense1 dan 2 adalah untuk monitor arus jika diperlukan keperluan umpan balik untuk kestabilan system, contoh menjaga kestabilan putaran motor dengan memberikan umpan balik negatif arus ke pengendali mikro, dapat dengan ADC sebagai interface-nya.

3. Modul Penggerak Motor Stepper

Komponen Modul Penggerak Motor Stepper

1. Pasif : Resistor 1K, 12K
2. Semikonduktor : Transistor 2SD313 + heatsink
3. Motor Stepper

Motor stepper yang kami gunakan adalah motor stepper yang ada dalam floppy disk drives yang sudah jarang dipakai lagi (ukuran 5¼ inch). Berikut skematik diagram penggerak motor stepper:

Gambar 6. Motor stepper dan penggeraknya

Untuk menggerakkan motor stepper masing-masing titik kumparan harus diberikan arus secara bervariasi, pada contoh diatas, titik A, B, C dan D diatur seperti pada contoh penggalan source code dibawah ini.

subrutin-3

Urutan data untuk putar kiri adalah 1000-0100-0010-0001, sehingga untuk putar kanan adalah sebaliknya yaitu 0001-0010-0100-1000. Delay tengok diatur kira-kira sebesar 5-20 msekon. Digunakan transistor adalah untuk interface antara mikro dan stepper, arus dari mikro tak akan sanggup langsung mengendalikan motor stepper. Transistor yang digunakan adalah transistor yang cocok untuk penguat daya menengah dengan bandwidth yang cukup lebar (2SD313). Melalui pengukuran diketahui tiap step dari stepper terhadap common mempunyai nilai hambatan sebesar 68 ohm, sehingga jika sumber tegangan diberi 5 voltDC maka nilai arus yang mengalir ke tiap step dengan mengasumsikan transistor saturasi adalah I = V/R = 5 V / 68 ohm = 73 mA.

4. Modul Transceiver Infra Red + Pendeteksi Benturan Samping (Limit Switch).

Modul Transmitter

Cara kerja IR transmitter dapat dilihat dari timing diagram dibawah ini : Sinyal IR disetting sebesar 30 - 50 KHz, sinyal data kita pakai untuk mengendalikan ada atau tidaknya pancaran sinyal infra merah. Jadi data dan sinyal infra merah yang akan dipancarkan perlu dimodulator terlebih dahulu. Maksud dari frekuensi kerja IR Led adalah supaya pancarannya dapat jauh dan kurang terpengaruh noise dari luar.

Gambar 7. Ilustrasi Komunikasi Data Sinyal Infra Merah

Gambar 8. Untai Penghasil Osilasi 30 -40 kHz dan Modulator


Modul Receiver Infra Merah

Di bawah ini adalah gambar untai dari penerima infra merah yang dapat menangkap sinyal IR dengan frekuensi 30 - 50 KHz. Setelah diterima dalam bentuk pulsa maka diubah menjadi tegangan DC rata-ratanya yang kemudian akan dimasukkan ke komparator tegangan LM324. Out Receiver adalah active low yaitu bila ada sinyal IR hasil pantulan yang tertangkap cukup kuat akan membuat output opamp menjadi low. Cara selain ini juga dapat digunakan, untuk hasil yang lebih tepat dengan cara menghitung jumlah pulsa yang tertangkap di receiver. Untai yang sudah direalisasikan dapat mengindera sinar Infra Merah dengan jarak 0 hingga 15 meter, dengan menyetel amplitudo dari keluaran pulsa dari modulasi (penggabungan ) sinyal carrier dengan data. Receiver yang pernah dicoba adalah sensor receiver Infra Merah untuk VCD player yang sudah memiliki keluaran dengan level TTL ( +5 V dan 0 V).

Gambar 9. Modul Infra Merah dan Komparator

Modul Limit Switch

Untuk untai pendeteksi benturan kanan dan kiri digunakan limit switch seperti gambar dibawah ini.

Gambar 10. Untai pendeteksi halangan di depan dan samping

Untuk mengenali kanan atau kiri maka dari kedua switch diumpankan lagi ke port mikrokontroler. Output dari gerbang AND untuk limit switch diumpankan lagi ke gerbang AND untuk dibandingkan logikanya dengan output receiver, dan hasil akhirnya diumpankan ke Port3.2 sebagai tanda ada halangan. Jika ada halangan didepan maka mikro segera memerintahkan untuk menyimpan data halangan di kanan, kiri dan depan, yang kemudian disimpan di memori, contoh penggalan source code-nya sebagai berikut: (mikro memerintahkan juga motor stepper untuk bergerak dengan 180 derajat kebebasan).

subrutin-4

5. Modul Penyuara

Untuk modul penyuara ini hanyalah tambahan fitur. Kami gunakan untuk memberikan sinyal ketika ada halangan, ada benturan kanan-kiri dan tanda bahwa semua arah sudah tertutup bagi robot (robot tidak bisa menemukan jalan keluar). Digunakan interrupt timer supaya proses bunyi dan proses sistem dapat berjalan bersamaan. Gambar untainya :


Gambar 11. Modul suara

Kegunaan 74LS04 adalah untuk buffer arus ke speaker karena bila langsung ke mikro maka arus dari mikro akan drop (jatuh) akibat beban yang besar (speaker). Penggalan source code untuk membunyikan speaker:

subrutin-5

Untuk modul yang lain dapat ditambahkan sendiri misalnya modul sensor pendeteksi panas, pencari cahaya, pencari sumber suara, pengikut lintasan, pendeteksi arah gelombang RF yang terkuat dan lain sebagainya. Untuk proses berjalannya robot tergantung dari kreatifitas perancang, untuk itu kami tidak mencantumkan lengkap source code-nya, tetapi kami akan berikan contoh flowchart jalannya robot.

Gambar 12. Flowchart Sistem Robot Avoider



KESIMPULAN

Sistem robot yang dibangun cukup sederhana tetapi cukup menarik untuk dipelajari lebih lanjut. Sistem robot ini sangat berguna dan banyak kita jumpai di industri. Sebagai contoh, conveyor di sebuah pabrik mie instant adalah salah satu contoh bentuk robot industri yang populer. Ilmu robotika merupakan gabungan dari teknologi mekanik presisi, perangkat keras elektronika dan komputer, perangkat lunak, sistem penginderaan atau sensor, dan dapat dikatakan merupakan gabungan dari banyak ilmu elektronika dan komputer, serta mesin.

0 comments:

Template by : kendhin x-template.blogspot.com