Pemrograman Dasar Robot ~ Ivul varel

Pemrograman Dasar Robot


Pendahuluan
Aplikasi elektronika masa depan banyak berhubungan dengan teknologi robotika. Oleh karena itu, pengetahuan akan berbgai sensor dan teknik penggerakan aktutor sangatlah penting. Durasi untuk praktikum ini 4 jam menggunakan SmartAVR Robotics ver 4, kita mengharapkan Anda memiliki kit ini agar mudah belajar pemrograman robot.
         
                                       SmartAVR Robotics Ver 4.0

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 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 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 



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 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 5  Susunan kaki SRF04


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

      Tabel 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.
                                            
                                    R64-P5587
                                                               Gambar 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.
                               R185-SINGLE-LINE-IR
                                                 Gambar 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.


                                    uvtron

Gambar 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 9  Paket CMUCam3

Penerapan pada Program
Percobaan 1.  Membaca data Sharp GP2D12
Langkah-langkahnya;
1.      Siapkan SmartAVR Robotics Ver 4.0, 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 L298D 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) {
ADMUX=adc_input | (ADC_VREF_TYPE & 0xff);
// Delay needed for the stabilization of the ADC input voltage
delay_us(10);
// Mulai konversi ADC
ADCSRA|=0x40;
// Tunggu konversi ADC selesai
while ((ADCSRA & 0x10)==0);
ADCSRA|=0x10;
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
ADMUX=ADC_VREF_TYPE & 0xff;
ADCSRA=0xA7;
SFIOR&=0x1F;
while (1)
      {
     PORTB=read_adc(0);  // Baca data sensor di PA.0
      printf(string1,PORTB);
             if (PORTB>100)
             {
             ...;  //Putar motor DC ke kanan
             }
             else
             {
             ...;  //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 L298.
7.      Buat program di bawah ini :

PWM.c:
// Percobaan 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
   // Inisialisasi Timer/Counter 1
   // Clock source: System Clock/8
   // Clock value: 500 kHz
   // Mode: Phase correct PWM, TOP value = ICR1 value
   //Jika TCCR1A=0x82 (Non-inverted PWM mode) maka:  
   // OC1A output: Clear OC1A on compare match when up-counting.
   //                          Set OC1A on compare match when down-counting.
   //Jika TCCR1A=0x22 (Non-inverted PWM mode) maka:
   // OC1B output: Clear OC1B on compare match when up-counting.
   //                          Set OC1B on compare match when down-counting.
   // OC1A output: Disconected (Normal)
   TCCR1A=0x82;
   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.


Previous
Next Post »
Post a Comment
Thanks for your comment