Pemrograman Robot

Pendahuluan

Aplikasi elektronika masa depan banyak berhubungan dengan teknologi robotika. Oleh karena itu, pengetahuan akan berbgai sensor dan teknik penggerakan aktuar sangatlah penting. Durasi untuk praktikum ini 4 jam.

Tujuan Praktikum

1.       Praktikan dapat menjelaskan cara kerja berbagai sensor yang umum digunakan pada robotika

2.       Praktikan dapat memprogram mikrokontroler AVR ATmega16 sebagai pengendali utama mobile robot.

3.       Praktikan mengusulkan suatu rancangan dan program Fire Fighting Robot.

 

 

Konsep Sensor Robotika

Sensor Sharp GP2D12

GP12D12 dan keluarganya merupakan sensor deteksi jarak Infra Red pada aplikasi robot, selain itu juga ukurannya yang kecil menghemat tempat dan daya Karena outputnya analog, maka sangat tepat jika dipasangkan dengan mikrokontroler AVR. Output sensor ini tidak linear, jadi Anda harus membuat look up table pada program untuk memperoleh hsil bacaan yang linear.

 

 

 

 

Gambar 10.1 Sharp GP2D12 dan kabel JST 3 pin

 

Blok diagram dari Sharp GP2D12 berisi led pemancar dan penerima yang memiliki rangkaian pemroses, pengemudi, dan rangkaian osilasi serta rangkaian output analog seperti gambar berikut:

 

Gambar 10.2 Blok Diagram GP2D12

 

 

Sensor ini mempunyai output 3 kabel, yang terdiri dari :

 

      Pin 1 sebagai tegangan output (Vo),

      Pin 2, GND

      Pin 3, Vcc

Zone de Texte:   3      2       1
 

 

 


Gambar 10.3 Susunan pin Sharp GP2D12

 

 

Untuk standarisasi, disarankan untuk kabel berwarna hitam sebagai GND, kuning untuk Vo dan Merah untuk Vcc.

GP2D12 mendeteksi bacaan terus menerus ketika diberi daya. Outputnya berupa tegangan analog yang sesuai dengan jarak yang diukur. Nilai tersebut diperbaharui setiap 32 ms. Berdasarkan pengukuran, tegangan yang dihasilkan pada jarak 10cm ialah 2.6V, dan menurun tidak secara linear pada jarak 80 cm beriksar pada tegangan 0.5 V.

Gambar 10.4 Karakteristik sensor Sharp GP2D12

 

Sensor Jarak Ultrasonik Devantech SRF04

Devantech SRF04 Ultrasonic Range Finder memberikan informasi jarak dari kisaran 3cm hingga 3 meter, atau SRF08 yang mencapai 6 meter. Kit ini sangat mudah untuk dirangkai dan membutuhkan sumber daya yang kecil sekali, yang sangat ideal untuk aplikasi mobile robot. Susunan kakinya sebagai berikut:

 

Gambar 10.5 Susunan kaki SRF04

 

 

Pencari jarak ini bekerja dengan cara memancarkan pulsa suara dengan kecepatan suara (0.9 ft/milidetik).

 

Tabel 10.1 Karakteristik SRF04

Tegangan

5v

Arus

30mA Typ. 50mA Max

Frekwensi

40KHz

Maximum Range

3 m

Minimum Range

3 cm

Sensitifitas

Mendeteksi jarak min 3cm

Trigger input

10uS Min. TTL level pulse

Pulsa echo

Positive TTL level signal, width proportional to range.

 

 

 

 

Photoreflector Hamamatsu P5587

 

 

Photoreflector P5587 dan P5588 ialah fotoreflektor yang mengkombinasikan LED infrared dengan daya tinggi dan IC foto rendah tegangan. Foto IC ini terdiri dari fotodioda sensitifitas tinggi, penguat, Schmitt trigger dan output fototransistor pada 1 chip. Chip ini dapat digunakan untuk sensor line follower.

Gambar 10.6 Penerapan P5587

 

Lynxmotion Singeline Detector

 

Single Line detector ini merupakan sensor refleksif infrared yang biasanya dipasang pada robot sumo atau mobile robot lainnya. Sensor ini mengeluarkan sinyal TTL yang tergantung pada tingkat kecerahan permukaan di depan sensor tersebut. Gunakan 2 atau lebih sensor untuk menghasilkan robot line follower.

Gambar 10.7 Lynxmotion Single Line detector

 

 

Sensor Hamamatsu UVTron Flame Detector

Hamamatsu UVTron Flame Detector dan rangkaian driver dapat mendeteksi api dari lilin atau puntung rokok dalam jarak 5 meter. Biasanya digunakan sebagai alat untuk mendeteksi sumber api seperti lilin, yang beroperasi pada panjang spectral 185 hingga 160nm.

 

 

 

Gambar 10.8 Paket sensor UVTRON dan driver C3704

 

Devais lain yang sering digunakan pada mobile robot ialah sensor kompas dan kamera CMUCam3 yang dapat mendeteksi objek yang bergerak berdasarkan warna, serta mampu melakukan pemrosesan image dengan cepat.

 

 

Gambar 10.9 Paket CMUCam3

 

Penerapan pada Program

Percobaan 1. Membaca data Sharp GP2D12

Langkah-langkahnya;

1.       Siapkan SmartAVR Robotics, dan hubungkan dengan kabel AVR ISP Programmer ke PC. Hubungkan kabel serial dari mikrokontroler ke port serial PC

2.       Hubungkan sensor Sharp GP2D12 di port A.0, motor DC 5-12V di output L293D pin OUT1 dan OUT2.

3.       Buat program di bawah ini :

 

SharpGP2D12.c:

// Percobaan 10.1, percobaan baca data sensor jarak Sharp GP2D12

// LED terhubung di Port B

#include <mega16.h>

#include <stdio.h>

#include <delay.h>

#define ADC_VREF_TYPE 0x60

flash unsigned char string1[]={"data adc: %d; "};

// Baca 8 bit terpenting

unsigned char read_adc(unsigned char adc_input) {

return ADCH;

}

void main(void) {

// Inisialisasi Port B

PORTB=0xFF;

DDRB=0xFF;

// USART initialization

// Communication Parameters: 8 Data, 1 Stop, No Parity

// USART Receiver: On

// USART Transmitter: On

// USART Mode: Asynchronous

// USART Baud Rate: 9600

UCSRA=0x00;

UCSRB=0x18;

UCSRC=0x86;

UBRRH=0x00;

UBRRL=0x19;

// ADC initialization

// ADC Clock frequency: 31,250 kHz

// ADC Voltage Reference: AVCC pin

// ADC Auto Trigger Source: Free Running

// Menggunakan 8 bit data

SFIOR&=0x1F;

while (1)

{

PORTB=read_adc(0); // Baca data sensor di PA.0

printf(string1,PORTB);

if (PORTB>100)

{

PORTD=128; //Putar motor DC ke kanan

}

else

{

PORTD=64; //Putar motor DC ke kiri

}

};

}

 

 

4.       Kompilasi dan jalankan, berikan halangan pada sensor jarak tersebut, lihat perubahan arah gerak motor DC. Buat grafik hasi pengukuran sensor tersebut.

 

Percobaan 2. Pengatur putaran Motor DC dengan PWM

Langkah-langkahnya;

5.       Siapkan SmartAVR Robotics, dan hubungkan dengan kabel AVR ISP Programmer ke PC.

6.       Hubungkan motor DC ke keluaran OUT3 dan OUT4 pada IC L293D.

7.       Buat program di bawah ini :

 

PWM.c:

// Percobaan 10.2, Percoban kontrol kecepatan motor dengan PWM

#include <mega16.h>

#include <delay.h>

bit i;

void main(void) {

unsigned int temp;

PORTC=0x00;

DDRC=0x00;

PORTD=0x00;

DDRD=0x30; //PD4 dan PD5 sebagai output

TCCR1B=0x12;

TCNT1=0x0000;

ICR1H=0xFF; //Resolusi phase correct PWM 16-bit

ICR1L=0xFF;

OCR1A=0x0000;

OCR1B=0x0000;

i=0;

temp=0x0FF0; //Nilai awal PWM

while (1)

{

if (PINC.0==0) //Jika tombol yang terhubung dengan PC0 ditekan,

{ // maka motor semakin lambat

delay_ms(100); // dan berputar sampai berhenti

temp-=0xFF;

if (temp==0xFF01) temp=0x0000;

}

else //Jika tombol yang terhubung dengan PC0 tidak ditekan,

{ // maka motor semakin cepat

delay_ms(100); // berputar sampai berputar terus

temp+=0xFF;

if (temp==0x00FE) temp=0xFFFF;

}

OCR1A=temp;

OCR1B=temp;

};

}

 

8.    Kompilasi dan jalankan program, tekan saklar pada Port C.0 dan lihat efeknya pada putaran motor DC.

 

 

 

Tugas Pendahuluan

1.       Jelaskan cara kerja sensor Sharp GP2D12, SRF04, Photoreflector P5887, PING, Pyroelectric, UVTRON Flame Detector dan Thermal Array Sensor.

2.       Buatlah contoh program C untuk mengatur kecepatan putar motor DC pada robot menggunakan PWM.

 

Tugas Akhir Praktikum

1.       Buatlah rancangan Fire Fighting Robot dan program yang dapat mendeteksi penghalang , mendeteksi adanya api serta mampu memadamkannya. Aktuator menggunakan motor DC yang dilengkapi dengan speed encoder. Sensor api menggunakan paket UVTRON Flame detector. Sensor jarak menggunakan Sharp GP2D12.

 

Miliki naskah lengkap ini pada buku

Panduan Praktikum Mikrokontroler AVR ATmega16

Terbitan Elex Media Komputindo, Januari 2008

Pesan ke widodo@widodo.com atau desy@elexmedia.co.id