JavaScript is disabled or you're using old browser, please turn on your JavaScript or upgrade your browser to see fancy looking.
Archive for the ‘robot’ Category

  Older Entries 

Line Follower Robot dengan PID

Sesuai janji saya, kali ini akan saya bahas robot line follower dengan sistem kontrol PID. Patokan yang saya gunakan berasal dari artikel di Chibots, perbedaannya adalah sistem steering yang digunakan robot. Pada artikel tersebut PID digunakan untuk mengontrol servo rear (steering) dan kecepatan 1 servo belakang (moving). Pada kasus saya, robot menggunakan differential wheeled. Keseluruhan fisik robot (yang diberi nama Semar Mesem ini) dibuat oleh Dadank, saya hanya menulis programnya saja. Saya tidak memegang skematiknya, tapi kurang lebih rangkaiannya terdiri dari:

  • Microcontroller ATMega16 dengan clock 4MHz
  • L298 untuk driver motor yang terhubung dengan PORD.1 - PORTD.6
  • 10 Sensor (menggunakan phototransistor dan LED biru) yang terhubung ke IC LM339 (komparator). 8 sensor terhubung dengan PINA untuk sensor depan, 2 sensor (PINB.5 dan PINB.6) untuk bagian tengah kiri dan kanan ujung.
  • LCD 2×16 yang terhubung dengan PORTC
  • 4 tactile switch yang terhubung dengan PINB.0 - PINB.3. Switch ini digunakan untuk tombol navigasi menu yang ditampilkan lewat LCD.

Read the rest of this entry »

PWM Motor DC dari ADC

Kebetulan Mamank lagi buat PI untuk joystick yang mengatur PWM motor DC dari nilai ADC. Rangkaian yang dibuat sebelumnya dibuat tanpa menggunakan microcontroller. Nah sebenarnya kita bisa memanfaatkan microcontroller yang punya fitur ADC internal (seperti ATMega16 atau ATMega8535) untuk mengurangi komponen elektronik. Kebetulan ada yang bertanya lewat email mengenai program untuk ini, jadi sekalian saya jawab lewat posting ini. Rangkaian seperti ini banyak digunakan untuk joystick pengendali robot manual di KRI (Kontes Robot Indonesia). Saya menggunakan ADC0 (PINA.0) yang terhubung ke potensio untuk mengatur PWM motor kiri dan ADC1 (PINA.1) untuk motor kanan. PORTB untuk LCD dan PORTD ke driver motor DC. Rangkaian yang terhubung ke PIN ADC kurang lebih seperti ini :

Nilai R1, R2, R3 dan R4 bisa 180, 220 atau 330 ohm. Resistor tersebut hanya menjaga agar VCC dan GND tidak langsung terhubung saat nilai R1 dan R2 kecil. R1 dan R2 adalah potensio 10k atau 50k. Program sederhananya bisa di download di sini. Saya akan jelaskan sedikit programnya. Karena range nilai adc adalah 1 - 255, maka saya ambil nilai tengah 126 - 128 untuk kondisi motor stop. Saat nilai adc lebih besar dari 128, maka motor akan bergerak maju (cw) dan range 129 - 255 menjadi nilai pengali PWM. Formula sederhananya untuk PWM saat motor bergerak maju adalah ( data_adc - 128 ) * 2. Saat nilai adc kurang dari 126 maka motor akan bergerak mundur (ccw) dan range 1 - 125 menjadi nilai pengali PWM. Formula sederhananya untuk PWM saat motor bergerak mundur adalah 255 - (data_adc * 2). Saya menggunakan interrupt timer 0 dengan overflow untuk PWM motor. Nilai 255 adalah full speed (100%). LCD digunakan untuk mendebug nilai adc dan PWM (paling kiri adalah data untuk motor kiri, baris atas berupa nilai PWM dan status pergerakan motor dan baris bawah adalah nilai ADC0. Sedangkan sebelah kanan adalah data untuk motor kanan). Sesuaikan formula PWM dengan kecepatan motor DC yang ingin digunakan. Pada kasus saya, nilai PWM di bawah 15 sudah membuat motor berhenti. Semoga membantu.

Technocorner 2008

Agak telat menulis sebenarnya, karena saya baru ke kampus hari ini untuk mencari photo yang tercecer di kawan lainnya. Technocorner 2008 yang merupakan lomba robot line follower ini juga diikuti oleh anak bengkel robot gundar. Walaupun saya tidak menjadi peserta, tapi cukup seru menonton lomba robot ini. Semua juara dipegang oleh tuan rumah UGM. Saat saya pertama kali melihat peserta-peserta yang ikut, sepertinya mukanya tidak familiar semua. Oh ternyata mereka juga mantan peserta galelobot 2008 dan KRI/KRCI 2008. Kalau mengikuti galelobot 2008, pastilah kenal dengan juara I dan juara II di technocorner 2008 ini, mereka adalah Robotiko-X dan Mozaem. Photo-photo nya bisa diubek di picasa saya. Untuk anak UNES photonya juga bisa diubek disitu, soal email yang dimaksud saya tidak menemukannya di inbox (kalau mau bisa add YM saya : kotzen86).  Untuk program sederhana PID robot line follower saya bahas pada postingan selanjutnya (kasus robot Semar Mesem).

Hamamatsu UV Tron dan AVR

Mmhh.. saya pertama kali menggunakan UV Tron (Hamamatsu R2868) sekitar awal 2007 (kalau tidak salah). Saya coba googling penggunaan UV Tron dan AVR, tapi belum menemukan hasil yang memuaskan. Jadi dulu seharian saya mengoprek ATMega8535 dan UV Tron, alhamdulillah akhirnya bisa juga. Well, tulisan kali ini saya akan sharing bagaimana menggunakan AVR (chipnya tidak masalah) dan Hamamatsu UV Tron. Banyak robot fire fighting menggunakan sensor UV ini untuk mendeteksi nyala lilin. Nyala sebuah lilin dapat dideteksi oleh UV Tron yang masih apik hingga jarak 5 meter, bahkan bara rokok juga dapat dideteksi dari jarak lebih dari 5 meter. UV Tron ini mendeteksi ultraviolet dari penggunaan efek photoelektrik dari logam dikombinasikan dengan efek penggandaan gas. Spektral cahaya yang dijangkau adalah 185 - 260 nm, jadi cahaya terlihat tidak mempengaruhi UV Tron (Nah, bagi yang menganggap senstifitas UV Tron dipengaruhi oleh terang tidaknya ruangan sepertinya salah ;) Tapi untuk mengantisipasi kondisi di luar ruangan bisa menggunakan background cancel level pada board - akan saya jelaskan di bawah ). UV Tron ini mempunyai sudut sensitivitas seperti gambar di bawah:

uvtron angular sensitivity

Gambar 1. Sudut jangkauan UV Tron

Dengan jangkauan sudut seperti gambar 1, maka cukup sulit menentukan posisi absolut sebuah lilin. Teknik yang lazim dilakukan adalah menggunakan pelindung untuk mengurangi jangkauan sudut. Pelindung yang digunakan kurang lebih nampak seperti ini:

uvtron dengan pelindung

Gambar 2. UV Tron dengan pelindung (sumber: http://www.superdroidrobots.com/product_info/uvtron_files/image017.jpg)

Read the rest of this entry »

Interfacing antara AVR dengan CMPS03

Well, malam rabu (or kamis ya?) saya bergadang dengan teman CERC lainnya. Dua robot kami belum menggunakan modul kompas, jadi saya terpaksa menemani Memet and friend. Sebelumnya terima kasih untuk teman CERC yang telah mentraktir makan di pasar ikan (egh pancingan untuk menginap?), lumayan juga ternyata upah dari pameran. Sesuai dengan janji saya pada postingan sebelumnya kali ini saya akan membahas penggunaan CMPS03 melalui jalur I2C, mungkin ini bisa juga berguna bagi yang lainnya yang ingin mencoba menggunakan CMPS03 dengan AVR (saya menggunakan AT90s2313), bahasa yang digunakan adalah C (dengan CodeVisionAVR). Untuk module CMPS03 ini terdapat dua cara interfacing, yaitu menggunakan PWM dan menggunakan I2C. Nah saya hanya akan membahas yang I2C. Yang dibutuhkan adalah: AT90s2313 (ini bisa digantikan dengan chip AVR lainnya), CMPS03 (serta 2 resistor 1K s/d 47K untuk pullup, nilai resistornya tidak menjadi masalah) dan LCD 2×16 (serta trimpot atau potensio untuk kontras LCD). Lebih bagus jika ada kompas marinir untuk kalibrasi nantinya. Jika Anda belum mengetahui susunan pin CMPS03, berikut adalah susunan pinnya:

Gambar 1. Susunan pin CMPS03 (sumber: http://www.robot-electronics.co.uk/images/cmps3pin.jpg)

Read the rest of this entry »

  Older Entries