Jumat, 29 Januari 2010

program srf04

Program Mikrokontroler AVR Untuk Sensor SRF04 Menggunakan CVAVR

SRF04 adalah sensor non-kontak pengukur jarak menggunakan ultrasonik. Prinsip kerja sensor ini adalah transmitter mengirimkan seberkas gelombang ultrasonik, lalu diukur waktu yang dibutuhkan hingga datangnya pantulan dari obyek. Lamanya waktu ini sebanding dengan dua kali jarak sensor dengan obyek, sehingga jarak sensor dengan obyek dapat ditentukan persamaan
jarak = kecepatan_suara × waktu_pantul/2
SRF04 dapat mengukur jarak dalam rentang antara 3 cm – 3 m dengan output panjang pulsa yang sebanding dengan jarak obyek. Sensor ini hanya memerlukan 2 pin I/O untuk berkomunikasi dengan mikrokontroler, yaitu TRIGGER dan ECHO. Untuk mengaktifkan SRF04 mikrokontroler mengirimkan pulsa positif melalui pin TRIGGER minimal 10 us, selanjutnya SRF04 akan mengirimkan pulsa positif melalui pin ECHO selama 100 us hingga 18 ms, yang sebanding dengan jarak obyek.


Dibandingkan dengan sensor ultrasonik lain, seperti PING, SRF04 mempunyai kemampuan yang setara, yaitu rentang pengukuran antara 3 cm – 3 m, dan output yang sama, yaitu panjang pulsa. Meski cara pengoperasiannya juga mirip, namun kedua sensor tersebut berbeda jumlah pin I/O-nya, yaitu 2 untuk SRF04 dan 1 untuk PING. Jika boleh memilih di antara keduanya, penulis cenderung untuk memilih PING dengan pertimbangan harga dan juga adanya lampu indikator yang menunjukkan kondisi PING sedang aktif, selain juga jumlah pin I/O yang lebih sedikit.
Selain SRF04 Devantech juga mengeluarkan beberapa macam sensor ultrasonik lain. Tidak seperti kebanyakan saudaranya yang mempunyai 2 transduser ultrasonik sebagai transmitter dan receiver, SRF02 hanya mempunyai 1 transduser ultrasonik yang berfungsi sekaligus sebagai transduser dan receiver dengan output I2C dan serial UART. SRF05 mirip dengan SRF04, hanya jangkauan maksimumnya 4 m dan terdapat 2 mode operasi menggunakan 1 atau 2 pin I/O. SRF08 mampu mengukur jarak dalam rentang 3 cm – 6 m dengan antarmuka I2C.
Inti program yang dibuat adalah fungsi baca_srf04 yang disesuaikan dengan timing diagram dari datasheet.

unsigned char baca_srf04(){
count=0;
//pemberian pemicu berupa pulsa positif minimal 10us utk aktivasi sensor
PORTA.1=1;
delay_us(15);
PORTA.1=0;
//menunggu hingga ECHO = 1
while(PINA.0==0){};
//mencacah untuk mengukur waktu lamanya pulsa 1 dari ECHO
while(PINA.0==1)
{count++;
};
//mengkonversikan hasil cacahan menjadi jarak dalam cm
jrk=count*10/232;
return jrk;
}

Berikut adalah program selengkapnya untuk membaca data dari SRF04 dan menampilkannya pada LCD menggunakan ATMEGA8535 dan kristal 4 MHz dengan penggunaan pin mikrokontroler sebagai beikut :

* Echo – PINA.0 (sebagai input bagi mikrokontroler)
* Trigger – PINA.1 (sebagai output bagi mikrokontroler)
* LCD – PORTC (susunan pin disesuaikan dengan wizard LCD pada CVAVR)

Semoga bermanfaat.

/*****************************************************
This program was produced by the
CodeWizardAVR V1.24.7d Evaluation
Automatic Program Generator
© Copyright 1998-2005 Pavel Haiduc, HP InfoTech s.r.l.
http://www.hpinfotech.com
e-mail:office@hpinfotech.com

Project : SRF04
Version :
Date : 12/14/2008
Author : Agung Nugroho A
Company : Lab. Mekatronika Jurusan Teknik Mesin UII
Comments:

Chip type : ATmega8535
Program type : Application
Clock frequency : 4.000000 MHz
Memory model : Small
External SRAM size : 0
Data Stack size : 128
*****************************************************/

#include
#include
#include

// Alphanumeric LCD Module functions
#asm
.equ __lcd_port=0×15 ;PORTC
#endasm
#include

// Declare your global variables here
unsigned int count=0;
unsigned char jrk;
unsigned char jrk_dpn;
unsigned char kata1[16];
unsigned char kata2[16];

unsigned char baca_srf04(){
count=0;
//pemberian pemicu berupa pulsa positif minimal 10us
PORTA.1=1;
delay_us(15);
PORTA.1=0;
//menunggu hingga ECHO = 1
while(PINA.0==0){};
//mencacah untuk mengukur waktu lamanya pulsa 1 dari ECHO
while(PINA.0==1)
{count++;
};
//mengkonversikan hasil cacahan menjadi jarak dalam cm
jrk=count*10/232;
return jrk;
}

void main(void)
{
// Declare your local variables here

// Input/Output Ports initialization
// Port A initialization
// Func7=In Func6=In Func5=In Func4=In Func3=In Func2=In Func1=Out Func0=In
// State7=T State6=T State5=T State4=T State3=T State2=T State1=0 State0=P
// 7 6 5 4 3 2 1 0
PORTA=0×01; //0 0 0 0 0 0 0 1 = 01h, PINA.0 pullup
DDRA=0×02; //0 0 0 0 0 0 1 0 = 02h, PINA.0 input, PINA.1 output

// Port B initialization
// Func7=In Func6=In Func5=In Func4=In Func3=In Func2=In Func1=In Func0=In
// State7=T State6=T State5=T State4=T State3=T State2=T State1=T State0=T
PORTB=0×00;
DDRB=0×00;

// Port C initialization
// Func7=In Func6=In Func5=In Func4=In Func3=In Func2=In Func1=In Func0=In
// State7=T State6=T State5=T State4=T State3=T State2=T State1=T State0=T
PORTC=0×00;
DDRC=0×00;

// Port D initialization
// Func7=In Func6=In Func5=In Func4=In Func3=In Func2=In Func1=In Func0=In
// State7=T State6=T State5=T State4=T State3=T State2=T State1=T State0=T
PORTD=0×00;
DDRD=0×00;

// Timer/Counter 0 initialization
// Clock source: System Clock
// Clock value: Timer 0 Stopped
// Mode: Normal top=FFh
// OC0 output: Disconnected
TCCR0=0×00;
TCNT0=0×00;
OCR0=0×00;

// Timer/Counter 1 initialization
// Clock source: System Clock
// Clock value: Timer 1 Stopped
// Mode: Normal top=FFFFh
// OC1A output: Discon.
// OC1B output: Discon.
// Noise Canceler: Off
// Input Capture on Falling Edge
// Timer 1 Overflow Interrupt: Off
// Input Capture Interrupt: Off
// Compare A Match Interrupt: Off
// Compare B Match Interrupt: Off
TCCR1A=0×00;
TCCR1B=0×00;
TCNT1H=0×00;
TCNT1L=0×00;
ICR1H=0×00;
ICR1L=0×00;
OCR1AH=0×00;
OCR1AL=0×00;
OCR1BH=0×00;
OCR1BL=0×00;

// Timer/Counter 2 initialization
// Clock source: System Clock
// Clock value: Timer 2 Stopped
// Mode: Normal top=FFh
// OC2 output: Disconnected
ASSR=0×00;
TCCR2=0×00;
TCNT2=0×00;
OCR2=0×00;

// External Interrupt(s) initialization
// INT0: Off
// INT1: Off
// INT2: Off
MCUCR=0×00;
MCUCSR=0×00;

// Timer(s)/Counter(s) Interrupt(s) initialization
TIMSK=0×00;

// Analog Comparator initialization
// Analog Comparator: Off
// Analog Comparator Input Capture by Timer/Counter 1: Off
ACSR=0×80;
SFIOR=0×00;

// LCD module initialization
lcd_init(16);

while (1)
{
// Place your code here
jrk_dpn=baca_srf04();
sprintf(kata1,”jarak= %3d cm”,jrk_dpn);
if (jrk_dpn>30)
{
sprintf(kata2,”masih jauh”);
}
else
{
sprintf(kata2,”sudah dekat”);
};
lcd_clear();
lcd_gotoxy(0,0);
lcd_puts(kata1);
lcd_gotoxy(0,1);
lcd_puts(kata2);
delay_ms(500);
};
}

Sumber Pustaka

* ____, SRF04 - Ultra-Sonic Ranger Technical Specification, diakses dari http://www.robot-electronics.co.uk/htm/srf04tech.htm
* ____, Devantech SRF04 Ultrasonic Range Finder, Parallax Inc, 2003.
* Riyanto Sigit (Editor), Robotika, Sensor, dan Aktuator, Graha Ilmu, 2007
* Agung Nugroho, Bahan Ajar Kuliah Robotika, tidak diterbitkan, Jurusan Teknik Mesin & Teknik Elektro UII, 2008.

perogram

Program Mikrokontroler AVR Untuk Sensor GP2D12 Menggunakan CVAVR

Posted by adjie on December 15th, 2008

GP2D12 adalah sensor pengukur jarak yang diproduksi oleh Sharp. Sensor ini mengeluarkan sinyal analog dan mampu mengukur jarak pada rentang 10 – 80 cm. Versi lain dari jenis ini adalah GP2D15 yang mengeluarkan sinyal biner (0 atau 1 saja) dengan treshold 24 cm (dan ternyata cukup sulit untuk mengatur treshold ini) dan GP2D02 dengan output serial digital.
Prinsip kerja sensor inframerah ini dalam mengukur jarak berbeda dengan sensor ultrasonik yang menggunakan waktu pantul gelombang bunyi karena waktu pantul cahaya jelas terlalu singkat untuk dapat diukur. Cahaya inframerah dengan frekuensi 40 kHz dipancarkan dan hasil pantulannya diterima oleh susunan detektor inframerah. Sudut pantulan sinar inframerah akan berubah sesuai jarak sensor dan obyek.


Antarmuka sensor GP2D12 dengan AVR sangatlah mudah, terutama karena telah terdapat ADC internal yang dimiliki AVR. Namun sayangnya output analog sensor ini sangatlah tidak linier. Ada beberapa cara yang dapat dilakukan untuk mengatasi hal ini, yaitu

* lookup table
* interpolasi
* persamaan non-linier

Untuk melakukan ketiga cara tersebut diperlukan data hubungan input-output yang dapat diperoleh dari datasheet ataupun proses kalibrasi. Pada tulisan ini yang digunakan adalah cara ketiga.
Hal pertama yang dilakukan adalah melakukan kalibrasi. Tabel 1 di bawah ini menunjukkan hasil kalibrasi yang telah dilakukan menggunakan ADC 8 bit dan tegangan referensi VCC.
data_adc jarak,cm
120 10
88 15
69 20
57 25
49 30
42 35
37 40

Meskipun jarak tidak proporsional terhadap data_adc, namun ternyata mempunyai hubungan yang cukup linier terhadap 1/data_adc (tabel 2)
1/data_adc jarak,cm
0.008333 10
0.011364 15
0.014493 20
0.017544 25
0.020408 30
0.02381 35
0.027027 40
Gambar 1 menunjukkan hasil grafik yang diperoleh dari tabel 2 beserta persamaan korelasinya yang dapat dibuat dengan mudah menggunakan sembarang software spreadsheet. Pada MS Excel cukup menambahkan trendline pada grafik.

Dari gambar 1 diperoleh persamaan (setelah dibulatkan)
jarak = (1611/data_adc)-3
Meskipun ketelitiannya hanya dalam orde cm, namun sudah cukup memadai untuk berbagai macam aplikasi, misalnya untuk deteksi jarak pada robot.
Program yang dibuat cukup sederhana. Jika menggunakan wizard yang diatur adalah ADC (8 bit dan tegangan referensi VCC) dan LCD (PORTC). Sebuah sensor GP2D12 dihubungkan dengan input 0 ADC (PINA.0).
Inti dari program ini adalah fungsi baca_gp2d12
unsigned char baca_gp2d12()
{
data_adc=read_adc(0);
jrk=(1611/data_adc)-3;
return jrk;
}
Fungsi ini mengambil data dari input 0 ADC, yang kemudian hasilnya dimasukkan ke persamaan hasil kalibrasi untuk memperoleh jarak dalam cm.
Hal yang perlu diperhatikan dalam penggunaan sensor GP2D12 adalah :

* Hasil dari proses kalibrasi tergantung banyak hal. Untuk itu sebaiknya persamaan yang digunakan berasal data hasil kalibrasi anda sendiri.
* Output sensor ini akan menghasilkan pembacaan yang salah untuk pengukuran jarak kurang dari 8 cm. Cara pemecahan paling sederhana adalah dengan mengatur posisi sensor sehingga obyek tidak akan berjarak kurang dari 8 cm. Misalnya jika dipasang pada robot maka sensor tidak dipasang di tepi badan robot, namun agak masuk di tengah badan robot.

Dibandingkan dengan sensor jarak ultrasonik, seperti PING atau SRF04, harga GP2D12 relatif lebih murah, namun rentang dan jangkauan pengukurannya lebih sempit (10-80 cm) dibanding PING dan SRF04 yang berkisar antara 3 cm – 3 m.
Selain itu karena outputnya analog diperlukan ADC. Meski demikian keberadaan mikrokontroler dengan ADC internal, seperti seri AVR, mempermudah penggunaan sensor ini.
Berikut adalah program selengkapnya untuk membaca data dari GP2D12 dan menampilkannya pada LCD menggunakan ATMEGA8535 dan kristal 4 MHz. Output GP2D12 dihubungkan dengan PINA.0 sedangkan LCD dengan PORTC. Semoga bermanfaat.

/*****************************************************
This program was produced by the
CodeWizardAVR V1.24.7d Evaluation
Automatic Program Generator
© Copyright 1998-2005 Pavel Haiduc, HP InfoTech s.r.l.
http://www.hpinfotech.com
e-mail:office@hpinfotech.com

Project : GP2D12
Version :
Date : 12/14/2008
Author : Agung Nugroho A
Company : Lab. Mekatronika Jurusan Teknik Mesin UII
Comments:

Chip type : ATmega8535
Program type : Application
Clock frequency : 4.000000 MHz
Memory model : Small
External SRAM size : 0
Data Stack size : 128
*****************************************************/

#include
#include
#include

// Alphanumeric LCD Module functions
#asm
.equ __lcd_port=0×15 ;PORTC
#endasm
#include

#define ADC_VREF_TYPE 0×60

// Read the 8 most significant bits
// of the AD conversion result
unsigned char read_adc(unsigned char adc_input)
{
ADMUX=adc_input|ADC_VREF_TYPE;
// Start the AD conversion
ADCSRA|=0×40;
// Wait for the AD conversion to complete
while ((ADCSRA & 0×10)==0);
ADCSRA|=0×10;
return ADCH;
}

// Declare your global variables here
unsigned char data_adc;
unsigned char kata[16];
unsigned char jrk;
unsigned char jarak;

// Fungsi untuk membaca data GP2D12
unsigned char baca_gp2d12()
{
//ambil data ADC
data_adc=read_adc(0);
//masukkan ke dalam persamaan hasil kalibrasi
//untuk mendapatkan jarak dalam cm
jrk=(1611/data_adc)-3;
return jrk;
}

void main(void)
{
// Declare your local variables here

// Input/Output Ports initialization
// Port A initialization
// Func7=In Func6=In Func5=In Func4=In Func3=In Func2=In Func1=In Func0=In
// State7=T State6=T State5=T State4=T State3=T State2=T State1=T State0=T
PORTA=0×00;
DDRA=0×00;

// Port B initialization
// Func7=In Func6=In Func5=In Func4=In Func3=In Func2=In Func1=In Func0=In
// State7=T State6=T State5=T State4=T State3=T State2=T State1=T State0=T
PORTB=0×00;
DDRB=0×00;

// Port C initialization
// Func7=In Func6=In Func5=In Func4=In Func3=In Func2=In Func1=In Func0=In
// State7=T State6=T State5=T State4=T State3=T State2=T State1=T State0=T
PORTC=0×00;
DDRC=0×00;

// Port D initialization
// Func7=In Func6=In Func5=In Func4=In Func3=In Func2=In Func1=In Func0=In
// State7=T State6=T State5=T State4=T State3=T State2=T State1=T State0=T
PORTD=0×00;
DDRD=0×00;

// Timer/Counter 0 initialization
// Clock source: System Clock
// Clock value: Timer 0 Stopped
// Mode: Normal top=FFh
// OC0 output: Disconnected
TCCR0=0×00;
TCNT0=0×00;
OCR0=0×00;

// Timer/Counter 1 initialization
// Clock source: System Clock
// Clock value: Timer 1 Stopped
// Mode: Normal top=FFFFh
// OC1A output: Discon.
// OC1B output: Discon.
// Noise Canceler: Off
// Input Capture on Falling Edge
// Timer 1 Overflow Interrupt: Off
// Input Capture Interrupt: Off
// Compare A Match Interrupt: Off
// Compare B Match Interrupt: Off
TCCR1A=0×00;
TCCR1B=0×00;
TCNT1H=0×00;
TCNT1L=0×00;
ICR1H=0×00;
ICR1L=0×00;
OCR1AH=0×00;
OCR1AL=0×00;
OCR1BH=0×00;
OCR1BL=0×00;

// Timer/Counter 2 initialization
// Clock source: System Clock
// Clock value: Timer 2 Stopped
// Mode: Normal top=FFh
// OC2 output: Disconnected
ASSR=0×00;
TCCR2=0×00;
TCNT2=0×00;
OCR2=0×00;

// External Interrupt(s) initialization
// INT0: Off
// INT1: Off
// INT2: Off
MCUCR=0×00;
MCUCSR=0×00;

// Timer(s)/Counter(s) Interrupt(s) initialization
TIMSK=0×00;

// Analog Comparator initialization
// Analog Comparator: Off
// Analog Comparator Input Capture by Timer/Counter 1: Off
ACSR=0×80;
SFIOR=0×00;

// ADC initialization
// ADC Clock frequency: 125.000 kHz
// ADC Voltage Reference: AVCC pin
// ADC High Speed Mode: Off
// ADC Auto Trigger Source: None
// Only the 8 most significant bits of
// the AD conversion result are used
ADMUX=ADC_VREF_TYPE;
ADCSRA=0×85;
SFIOR&=0xEF;

// LCD module initialization
lcd_init(16);

while (1)
{
// Place your code here
jarak=baca_gp2d12();
sprintf(kata,”Jarak = %2d cm”,jarak);
lcd_clear();
lcd_gotoxy(0,0);
lcd_puts(kata);
delay_ms(500);
};
}

Sumber Pustaka

* Braunl, Embedded Robotics, Mobile Robot Design and Applications with Embedded Systems, Springer, 2006
* McComb & Priedko, Robot Builder’s Bonanza, McGraw-Hill, 2006.
* ___, Datasheet GP2D12/GP2D15, Sharp.

Posted in Uncategorized | No Comments »
Program Mikrokontroler AVR Untuk Sensor SRF04 Menggunakan CVAVR

Posted by adjie on December 15th, 2008

SRF04 adalah sensor non-kontak pengukur jarak menggunakan ultrasonik. Prinsip kerja sensor ini adalah transmitter mengirimkan seberkas gelombang ultrasonik, lalu diukur waktu yang dibutuhkan hingga datangnya pantulan dari obyek. Lamanya waktu ini sebanding dengan dua kali jarak sensor dengan obyek, sehingga jarak sensor dengan obyek dapat ditentukan persamaan
jarak = kecepatan_suara × waktu_pantul/2
SRF04 dapat mengukur jarak dalam rentang antara 3 cm – 3 m dengan output panjang pulsa yang sebanding dengan jarak obyek. Sensor ini hanya memerlukan 2 pin I/O untuk berkomunikasi dengan mikrokontroler, yaitu TRIGGER dan ECHO. Untuk mengaktifkan SRF04 mikrokontroler mengirimkan pulsa positif melalui pin TRIGGER minimal 10 us, selanjutnya SRF04 akan mengirimkan pulsa positif melalui pin ECHO selama 100 us hingga 18 ms, yang sebanding dengan jarak obyek.


Dibandingkan dengan sensor ultrasonik lain, seperti PING, SRF04 mempunyai kemampuan yang setara, yaitu rentang pengukuran antara 3 cm – 3 m, dan output yang sama, yaitu panjang pulsa. Meski cara pengoperasiannya juga mirip, namun kedua sensor tersebut berbeda jumlah pin I/O-nya, yaitu 2 untuk SRF04 dan 1 untuk PING. Jika boleh memilih di antara keduanya, penulis cenderung untuk memilih PING dengan pertimbangan harga dan juga adanya lampu indikator yang menunjukkan kondisi PING sedang aktif, selain juga jumlah pin I/O yang lebih sedikit.
Selain SRF04 Devantech juga mengeluarkan beberapa macam sensor ultrasonik lain. Tidak seperti kebanyakan saudaranya yang mempunyai 2 transduser ultrasonik sebagai transmitter dan receiver, SRF02 hanya mempunyai 1 transduser ultrasonik yang berfungsi sekaligus sebagai transduser dan receiver dengan output I2C dan serial UART. SRF05 mirip dengan SRF04, hanya jangkauan maksimumnya 4 m dan terdapat 2 mode operasi menggunakan 1 atau 2 pin I/O. SRF08 mampu mengukur jarak dalam rentang 3 cm – 6 m dengan antarmuka I2C.
Inti program yang dibuat adalah fungsi baca_srf04 yang disesuaikan dengan timing diagram dari datasheet.

unsigned char baca_srf04(){
count=0;
//pemberian pemicu berupa pulsa positif minimal 10us utk aktivasi sensor
PORTA.1=1;
delay_us(15);
PORTA.1=0;
//menunggu hingga ECHO = 1
while(PINA.0==0){};
//mencacah untuk mengukur waktu lamanya pulsa 1 dari ECHO
while(PINA.0==1)
{count++;
};
//mengkonversikan hasil cacahan menjadi jarak dalam cm
jrk=count*10/232;
return jrk;
}

Berikut adalah program selengkapnya untuk membaca data dari SRF04 dan menampilkannya pada LCD menggunakan ATMEGA8535 dan kristal 4 MHz dengan penggunaan pin mikrokontroler sebagai beikut :

* Echo – PINA.0 (sebagai input bagi mikrokontroler)
* Trigger – PINA.1 (sebagai output bagi mikrokontroler)
* LCD – PORTC (susunan pin disesuaikan dengan wizard LCD pada CVAVR)

Semoga bermanfaat.

/*****************************************************
This program was produced by the
CodeWizardAVR V1.24.7d Evaluation
Automatic Program Generator
© Copyright 1998-2005 Pavel Haiduc, HP InfoTech s.r.l.
http://www.hpinfotech.com
e-mail:office@hpinfotech.com

Project : SRF04
Version :
Date : 12/14/2008
Author : Agung Nugroho A
Company : Lab. Mekatronika Jurusan Teknik Mesin UII
Comments:

Chip type : ATmega8535
Program type : Application
Clock frequency : 4.000000 MHz
Memory model : Small
External SRAM size : 0
Data Stack size : 128
*****************************************************/

#include
#include
#include

// Alphanumeric LCD Module functions
#asm
.equ __lcd_port=0×15 ;PORTC
#endasm
#include

// Declare your global variables here
unsigned int count=0;
unsigned char jrk;
unsigned char jrk_dpn;
unsigned char kata1[16];
unsigned char kata2[16];

unsigned char baca_srf04(){
count=0;
//pemberian pemicu berupa pulsa positif minimal 10us
PORTA.1=1;
delay_us(15);
PORTA.1=0;
//menunggu hingga ECHO = 1
while(PINA.0==0){};
//mencacah untuk mengukur waktu lamanya pulsa 1 dari ECHO
while(PINA.0==1)
{count++;
};
//mengkonversikan hasil cacahan menjadi jarak dalam cm
jrk=count*10/232;
return jrk;
}

void main(void)
{
// Declare your local variables here

// Input/Output Ports initialization
// Port A initialization
// Func7=In Func6=In Func5=In Func4=In Func3=In Func2=In Func1=Out Func0=In
// State7=T State6=T State5=T State4=T State3=T State2=T State1=0 State0=P
// 7 6 5 4 3 2 1 0
PORTA=0×01; //0 0 0 0 0 0 0 1 = 01h, PINA.0 pullup
DDRA=0×02; //0 0 0 0 0 0 1 0 = 02h, PINA.0 input, PINA.1 output

// Port B initialization
// Func7=In Func6=In Func5=In Func4=In Func3=In Func2=In Func1=In Func0=In
// State7=T State6=T State5=T State4=T State3=T State2=T State1=T State0=T
PORTB=0×00;
DDRB=0×00;

// Port C initialization
// Func7=In Func6=In Func5=In Func4=In Func3=In Func2=In Func1=In Func0=In
// State7=T State6=T State5=T State4=T State3=T State2=T State1=T State0=T
PORTC=0×00;
DDRC=0×00;

// Port D initialization
// Func7=In Func6=In Func5=In Func4=In Func3=In Func2=In Func1=In Func0=In
// State7=T State6=T State5=T State4=T State3=T State2=T State1=T State0=T
PORTD=0×00;
DDRD=0×00;

// Timer/Counter 0 initialization
// Clock source: System Clock
// Clock value: Timer 0 Stopped
// Mode: Normal top=FFh
// OC0 output: Disconnected
TCCR0=0×00;
TCNT0=0×00;
OCR0=0×00;

// Timer/Counter 1 initialization
// Clock source: System Clock
// Clock value: Timer 1 Stopped
// Mode: Normal top=FFFFh
// OC1A output: Discon.
// OC1B output: Discon.
// Noise Canceler: Off
// Input Capture on Falling Edge
// Timer 1 Overflow Interrupt: Off
// Input Capture Interrupt: Off
// Compare A Match Interrupt: Off
// Compare B Match Interrupt: Off
TCCR1A=0×00;
TCCR1B=0×00;
TCNT1H=0×00;
TCNT1L=0×00;
ICR1H=0×00;
ICR1L=0×00;
OCR1AH=0×00;
OCR1AL=0×00;
OCR1BH=0×00;
OCR1BL=0×00;

// Timer/Counter 2 initialization
// Clock source: System Clock
// Clock value: Timer 2 Stopped
// Mode: Normal top=FFh
// OC2 output: Disconnected
ASSR=0×00;
TCCR2=0×00;
TCNT2=0×00;
OCR2=0×00;

// External Interrupt(s) initialization
// INT0: Off
// INT1: Off
// INT2: Off
MCUCR=0×00;
MCUCSR=0×00;

// Timer(s)/Counter(s) Interrupt(s) initialization
TIMSK=0×00;

// Analog Comparator initialization
// Analog Comparator: Off
// Analog Comparator Input Capture by Timer/Counter 1: Off
ACSR=0×80;
SFIOR=0×00;

// LCD module initialization
lcd_init(16);

while (1)
{
// Place your code here
jrk_dpn=baca_srf04();
sprintf(kata1,”jarak= %3d cm”,jrk_dpn);
if (jrk_dpn>30)
{
sprintf(kata2,”masih jauh”);
}
else
{
sprintf(kata2,”sudah dekat”);
};
lcd_clear();
lcd_gotoxy(0,0);
lcd_puts(kata1);
lcd_gotoxy(0,1);
lcd_puts(kata2);
delay_ms(500);
};
}

Sumber Pustaka

* ____, SRF04 - Ultra-Sonic Ranger Technical Specification, diakses dari http://www.robot-electronics.co.uk/htm/srf04tech.htm
* ____, Devantech SRF04 Ultrasonic Range Finder, Parallax Inc, 2003.
* Riyanto Sigit (Editor), Robotika, Sensor, dan Aktuator, Graha Ilmu, 2007
* Agung Nugroho, Bahan Ajar Kuliah Robotika, tidak diterbitkan, Jurusan Teknik Mesin & Teknik Elektro UII, 2008.

srf05

Sensor Ultrasonic SRF04
Posted in Artikel on Januari 22, 2010 by digitallaboratory

SRF04

SRF04 adalah sensor non-kontak pengukur jarak menggunakan ultrasonik. Prinsip kerja sensor ini adalah transmitter mengirimkan seberkas gelombang ultrasonik, lalu diukur waktu yang dibutuhkan hingga datangnya pantulan dari obyek. Lamanya waktu ini sebanding dengan dua kali jarak sensor dengan obyek, sehingga jarak sensor dengan obyek dapat ditentukan persamaan
jarak = kecepatan_suara × waktu_pantul/2
SRF04 dapat mengukur jarak dalam rentang antara 3 cm – 3 m dengan output panjang pulsa yang sebanding dengan jarak obyek. Sensor ini hanya memerlukan 2 pin I/O untuk berkomunikasi dengan mikrokontroler, yaitu TRIGGER dan ECHO. Untuk mengaktifkan SRF04 mikrokontroler mengirimkan pulsa positif melalui pin TRIGGER minimal 10 us, selanjutnya SRF04 akan mengirimkan pulsa positif melalui pin ECHO selama 100 us hingga 18 ms, yang sebanding dengan jarak obyek.
Dibandingkan dengan sensor ultrasonik lain, seperti PING, SRF04 mempunyai kemampuan yang setara, yaitu rentang pengukuran antara 3 cm – 3 m, dan output yang sama, yaitu panjang pulsa. Meski cara pengoperasiannya juga mirip, namun kedua sensor tersebut berbeda jumlah pin I/O-nya, yaitu 2 untuk SRF04 dan 1 untuk PING. Jika boleh memilih di antara keduanya, penulis cenderung untuk memilih PING dengan pertimbangan harga dan juga adanya lampu indikator yang menunjukkan kondisi PING sedang aktif, selain juga jumlah pin I/O yang lebih sedikit.
Selain SRF04 Devantech juga mengeluarkan beberapa macam sensor ultrasonik lain. Tidak seperti kebanyakan saudaranya yang mempunyai 2 transduser ultrasonik sebagai transmitter dan receiver, SRF02 hanya mempunyai 1 transduser ultrasonik yang berfungsi sekaligus sebagai transduser dan receiver dengan output I2C dan serial UART. SRF05 mirip dengan SRF04, hanya jangkauan maksimumnya 4 m dan terdapat 2 mode operasi menggunakan 1 atau 2 pin I/O. SRF08 mampu mengukur jarak dalam rentang 3 cm – 6 m dengan antarmuka I2C.

skema srf04
Dimensi : 24mm (P) x 20mm (L) x 17mm (T).
Spesifikasi :
- - Tegangan : 5 VDC
- - Konsumsi Arus : 30 mA (rata-rata), 50 mA (max)
- - Frekuensi Suara : 40 kHz
- - Jangkauan : 3 cm – 3 m
- - Sensitivitas : Mampu mendeteksi gagang sapu berdiameter 3 cm dalam jarak > 2 m
- Input Trigger : 10 mS min. Pulsa Level TTL
- Pulsa Echo : Sinyal level TTL Positif, Lebar berbanding proporsional dengan jarak yang dideteksi





Tugas Akhir Ari Wahyuni, Bikin Telemetri Pendeteksi Banjir
Petugas Tak Perlu Lihat Alat Ukur di Tanggul

Banjir yang sering melanda Jatim dan beberapa daerah lain, mengilhami Ari Wahyuni membuat alat pengukur ketinggian air untuk tugas akhirnya. Dalam ujian, mahasiswi Stikomp (Sekolah Tinggi Ilmu Komputer) itu mendapat nilai A. Dia diwisuda Sabtu lalu.

ASTANTO AL BUDIMAN

---

SEBUAH paralon berbentuk L dipasang menempel di pintu air. Di dalam paralon itu terdapat pelampung yang bergerak sesuai ketinggian air sungai. Tepat di atas mulut paralon diletakkan sebuah sensor infra merah yang mengukur ketinggian pelampung di dalam paralon.

Sensor tersebut dilengkapi LCD mini dan sebuah alat komunikasi radio yang akan mengirimkan data itu ke receiver di kantor pengendalian banjir. Dengan demikian, petugas bisa memantau ketinggian air sungai setiap saat dari kantornya, tanpa harus melihat alat ukur yang ada di bibir sungai.

Hanya, saat ini alat tersebut masih dalam bentuk konsep. Ari Wahyuni, mahasiswi Stikomp yang membuat alat itu sebagai tugas akhir (TA), sudah mengujinya di kampus. ''Alat ini saya namakan Telemetri Pengukur Ketinggian Air,'' kata gadis berjilbab itu. ''Teruji bisa merekam perubahan ketinggian air sangat akurat dalam hitungan per detik,'' lanjutnya.

Receiver akan mengeluarkan bunyi berbeda pada setiap ketinggian air. ''Alat akan berbunyi otomatis jika ketinggian air berada di level-level rawan atau bahaya. Siaga dua atau siaga satu,'' kata karyawan salah satu Bank Syariah di Surabaya itu. Semakin bahaya, bunyi akan semakin cepat.

Di laboratorium, Ari menggambarkan ketinggian air tersebut dalam sebuah kotak transparan dari fiber berukuran 25 x 25 cm dan tinggi 15 cm. Kotak yang disebut transmitter itu, antara lain berisi sirkuit board, aki 12 volt, LCD mini, dan alat komunikasi berupa frekuensi radio PRW 24 GHZ. Sebuah kabel menjulur keluar kotak. ''Ini sensornya,'' kata Ari.

Dia kemudian menggerak-gerakkan telapak tangannya di depan sensor. Sebuah grafik muncul di laptopnya yang tersambung ke kotak receiver. Kotak tersebut ukurannya sama dengan kotak transmitter. Isinya, antara lain sirkuit board, kabel serial, LCD, dan aki 12 volt dua biji. ''Tampak sekali kepekaan sensor pendeteksi banjir ini,'' ujar mahasiswi program studi Sistem Komputer itu.

Kotak transmitter itulah yang, jika kelak diaplikasikan, ditempelkan di pintu air. Sedangkan receiver berada di kantor pengendali banjir. Transmitter bertugas mengirim data ke server, melaporkan berapa ketinggian air dari permukaan tinggi sungai. ''Transmitter ini harus berada sedikit di atas di permukaan sungai,'' ujarnya.

Dia perlu dua kali kerja menggarap transmiterr tersebut. Sebab, harus memprogram ulang sensornya, SRF05, agar bisa dibaca program lainnya. ''Sensor ini hanya mampu mendeteksi kedalaman empat meter dari ketinggian sungai. Jika kedalamannya lebih dari itu, harus memakai sensor SRF08,'' kata alumnus SMA Bhayangkari 1 Surabaya itu.

Jarak antara transmitter dengan paralon ditempatkan sedemikian rupa sehingga sensor tetap mampu membaca pelampung di dalam paralon. Sementara kotak transmitter-nya aman dari empasan air sungai. ''Karena itu, alat tersebut tidak diletakkan di pintu air paling tengah, cukup di pinggir saja,'' kata Ari. Yang penting, ketinggian air di dalam paralon sama dengan ketinggian air sungai. Bibir bawah paralon menghadang arus sungai agar air bisa masuk.

Data dalam bentuk grafik yang diterima receiver, akan disimpan dalam memori komputer. Dengan demikian, seluruh pergerakan air dapat terekam. ''Dari rekaman data ketinggian air itu bisa dihitung kecepatan ketinggian air dalam hitungan menit,'' ujar wanita kelahiran 23 Juni 1986 itu.

Receiver tersebut mampu menerima kiriman dari transmitter dalam jarak 300 meter. ''Itu bergantung kekuatan radio komunikasinya. Sekarang pakai PRW 24 GHZ, kalau mau lebih jauh harus ditambah kekuatan frekuensinya,'' kata Ari yang menyelesaikan tugasnya dalam satu semester.

Saat ini, dia masih memanfaatkan suplai energi dari aki untuk energi di masing-masing kotak itu. ''Jika menggunakan collar cell, ukuran kotak tidak akan sebesar ini,'' katanya.

Untuk membuat alat itu, Ari merogoh tabungannya Rp 1.200 ribu untuk membeli seluruh komponen. ''Itu belum komponen yang rusak,'' katanya sambil tersenyum. ''Wireless ini saya ganti dua kali karena rusak, saya harus mengeluarkan Rp 400 ribu lagi,'' lanjutnya. Meski begitu, Ari yang mendapat nilai A untuk tugas akhirnya, mengaku cukup puas. ''Fungsi yang saya targetkan tercapai,'' ujarnya.

Dalam penelitian TA-nya, Ari dibimbing dua dosen, Hariyanto S.kom, dosen mata kuliah Micro Controller dan I Gede Arya Uthama MMT dosen Metodologi Penelitian. ''Setiap kali ada kesulitan, saya selalu minta nasihatnya,'' sambung Ari.

Khusus kotaknya, dia dibuatkan ayahnya. ''Saat mau bikin kotak, ayah tidak tega melihat anak perempuannya memotong aluminium dengan gerinda, mengebor,''katanya. ''Masak anak perempuan pegang gerinda,'' lanjut Ari menirukan ucapan ayahnya.

Sebelum membuat alat itu, Ari mensurvei beberapa sungai di Surabaya. Rata-rata bendungan di Surabaya masih menggunakan alat ukur manual. Alat itu berupa meteran yang terpasang di tanggul atau pelapis pintu air. ''Cara kerjanya dengan melihat berapa tinggi air di meteran itu,'' katanya.

Dia juga sempat mensurvei kota-kota lain, antara lain Malang, Solo, dan Jakarta. Dia menemukan alat pendeteksi banjir di Jakarta dan Solo. ''Namun, alat tersebut hanya pendeteksi elektronik biasa, kalau rawan banjir lampu menyala kuning, kalau banjir, lampu merah menyala,'' ujarnya.

Saat pembuatan alat itu dalam proses, salah seorang karyawan PDAM Surabaya menyarankan, jika selesai, segera ajukan ke Dinas Pengairan. Sebab, alat tersebut berguna untuk mendeteksi banjir. ''Orang PDAM itu teman Ayah saya,'' katanya.

Kini, perempuan berkulit sawo matang itu ingin mengajukan karyanya ke Pemkot Surabaya. ''Mungkin karya ini bisa bermanfaat untuk mendeteksi banjir di Surabaya. Kalau berguna, saya akan senang sekali,'' katanya semangat. Jika alat tersebut dinilai kurang sempurna, dia siap menyempurnakan. (cfu)

soal LM35


Seperti kita tahu bahwa LM35, sensor suhu yg memiliki output yang linear sebesar 10mV/oCelcius. Jadi tiap kenaikkan 10mV, maka suhu bertambah 1 oC. Dengan tingkat akurasi 0.5 oC. Memiliki range pengukuran antara -55 s/d 150 oC.

Dengan menggunakan rangkaian dasar, atau yang disebut Basic Centigrade Temperature Sensor, maka si LM35 memiliki range pengukuran 0mV - 10mV/oC. Jika dibuatkan kesetaraaan antara voltage dengan suhu, maka akan terlihat sbb :
0V = 0 oC
10mv = 1 oC
100mV = 10 oC
1000mV = 100 oC
1500mV = 150 oC

Jika menggunakan rangkaian Full-Range Centigrade Temperature Sensor, lain lagi range pengukurannya.

Dengan melihat karakteristik tersebut, maka dengan teknik ADC (Analog to Digital Convertion) kita bisa melakukan konversi dari tegangan ke suhu.

Karena yang didiskusikan kali ini menggunakan mikrokontroler ATMEGA8535. Maka secara internal dia sudah memiliki ADC yang berjumlah 8 channel 10 bit. Range voltage dari 0 s/d volt_max sama dengan nilai 0 s/d 1024 (n10).

Secara internal, si uC menggunakan rumus sebagai berikut untuk mengeluarkan output ADC :

Hasil Konversi ADC = (Vin * 1024) / Vref Dimana Vin adalah output LM35.

Jika Vref diberi tegangan 5 V (5000 mV). Dan LM35 tidak mengeluarkan tegangan, maka

0 * 1024 / 5000 = 0

Jika LM35 mengeluarkan tegangan sebesar 1 mV, maka uC akan mengeluarkan angka digital:

1 * 1024 / 5000 = 0.2048 => 0

Jika LM35 mengeluarkan tegangan sebesar 10 mV, maka uC akan mengeluarkan angka digital :

10 * 1024 / 5000 = 2.048 => 2

Jika LM35 mengeluarkan tegangan sebesar 1 V (1000 mV), maka uC akan mengeluarkan angka digital

1000 * 1024 / 5000 = 204.8 => 205

Sekarang cara membacanya dibalik. Setiap kita mendapatkan output digital dari uC, berapa hasil konversinya dalam bentuk tegangan?. Dari pertanyaan tersebut dihasilkan kesimpulan, bahwa setiap satu digit LSB yang dikeluarkan ADC uC akan bernilai sebesar :

1 LSB = Vref / (2n - 1)

Jika Vref adalah 5000 mV, maka : 1 LSB-nya kurang lebih = 4.9 mV (pembulatan)

Sehingga rumus konversinya adalah :

SUHU = Ouput_ADC * Kenaikan_satu_LSB / Volt_per_Celcius

dimana :
Output_ADC = adalah hasil pembacaan ADC uC
Kenaikan_satu_LSB = 4.9 (jika Vref = 5V)
Volt_per_celcius = 10 (karakteristik LM35, 10mV/oC)


DAN ADA JUGA...............

Kali ini kami akan membahas lebih jauh mengenai sensor suhu dengan IC LM 35, dimana dalam pembahasan ini sensor di seting untuk pembacaan suhu antara 0 – 100 C. Sebelum itu apa sih IC LM 35 itu?

IC LM 35 sebagai sensor suhu yang teliti dan terkemas dalam bentuk Integrated Circuit (IC) 3 pin yang berbentuk seperti transistor FCS9013, dimana output tegangan keluaran sangat linear terhadap perubahan suhu. Sensor ini berfungsi sebagai pegubah dari besaran fisis suhu ke besaran tegangan yang memiliki koefisien sebesar 10 mV/°C yang berarti bahwa kenaikan suhu 1° C maka akan terjadi kenaikan tegangan sebesar 10 mV.

IC LM 35 ini tidak memerlukan pengkalibrasian atau penyetelan dari luar karena ketelitiannya sampai lebih kurang seperempat derajat celcius pada temperature ruang. Jangka sensor mulai dari – 55°C sampai dengan 150°C, IC LM35 penggunaannya sangat mudah, difungsikan sebagai kontrol dari indikator tampilan catu daya terbelah. IC LM 35 dapat dialiri arus 60 m A dari suplai sehingga panas yang ditimbulkan sendiri sangat rendah kurang dari 0 ° C di dalam suhu ruangan (27oC). Berikut adalah bentuk simbol IC LM 35.





Adapun keistimewaan dari IC LM 35 adalahKalibrasi dalam satuan derajat celcius.

* Lineritas +10 mV/ º C.
* Akurasi 0,5 º C pada suhu ruang.
* Range – 55 º C – 150 º C.
* Dioperasikan pada catu daya 4 V – 30 V.
* Arus yang mengalir kurang dari 60 µA.

Bagaimana menghubungkan IC LM 35 dengan mikrokontroler?

Apabila kita ingin membaca suhu aktual dari sensor IC LM 35 ini menggunakan mikrokontroler maka kita perlu menggunakan ADC (analog to digital converter). Misalkan kita menggunakan mikrokontroler AVR Atmega 16 maka kita tidak perlu menambahkan IC ADC, karena didalam mikrokontroler AVR Atmega 16 sudah terdapat 8 channel ADC 10 bit, dimana port ADC terhubung dengan portA (silahkan lihat datasheet AVR Atmega16).

Apabila kita menginginkan sensor IC LM 35 ini untuk membaca suhu dengan range 0 – 100oC maka dapat dihitung bahwa tegangan keluaran dari sensor ini berkisar antara 0V – 1 Volt ( 10mV/oC), sedangkan ADC dari mikrokontroler dapat membaca tegangan antara 0 – 5V (bila Vreff diseting 5V), maka supaya pembacaan sensor lebih teliti dengan resolusi perubahan yang halus maka keluaran tegangan dari sensor yang semula berkisar antara 0 – 1V kita buat menjadi berkisar antara 0 – 5V dengan menggunakan rangkaian signal conditioning / pengkondisi sinyal. Suatu misal dengan menggunakan rangkaian penguat non-inverting amplifier, berikut adalah contoh rangkaiannya.

Dari gambar rangkaian diatas pengkondisisn sinyal analog terdiri dari penguat penyangga (buffer) dan penguat non-inverting amplifier, dimana penguat penyangga berfungsi untuk merubah tegangan impedansi tinggi menjadi tegangan sama pada impedansi rendah. Karena sensor suhu LM35 menghasilkan tegangan yang berubah-ubah sesuai dengan perubahan suhu, maka penguat penyangga memastikan agar sinyal ini tidak terpengaruh oleh pembebanan dari penguat berikutnya. Dan penguat non-inverting amplifier berfungsi untuk menguatkan sinyal yang keluar dari rangkaian buffer. Dimana didalam rangkaian diatas penguatan dari rangkaian palifier ini dapat diatur dengan mengubah posisi variabel resistor 100K.

Berikut adalah contoh program dengan bascom AVR untuk penampilan suhu dengan sensor IC LM 35 dengan menggunakan mikrokontroler AVR Atmega 16 dan ditampilkan ke LCD matriks 2*16 karakter.


$regfile "m16def.dat"

$crystal = 12000000

Config Adc = Single , Prescaler = Auto , Reference = Avcc
Start Adc

Config Lcdpin = Pin , Db4 = Portc.4 , Db5 = Portc.5 , Db6 = Portc.6 , _
Db7 = Portc.7 , E = Portc.2 , Rs = Portc.0
Config Lcd = 16 * 2
Cursor Off Noblink
Cls

Dim Adc0 As Integer
Dim Temp As Single
Dim S_temp As String * 5

Upperline
Lcd "Welcome In... "
Lowerline
Lcd "Juragan Elektro "
Wait 2

Cls
Upperline
Lcd "Sensor Suhu LM35"
Lowerline
Lcd "Temp= C"

Do
Adc0 = Getadc(0)
Temp = Adc0 / 10.23
S_temp = Fusing(temp , "#.##")
Locate 2 , 7
Lcd S_temp
Waitms 100
Loop
End

Sebelum menguji coba maka kalibrasikan terlebih dahulu rangkaian signal konditioning yaitu dengan cara lepas IC LM 35 dan beri tegangan pada masukan rangkaian signal conditioning tegangan 1V dan adjust VR100K supaya tegangan keluaran dari rangkaian signal conditioning sebesar 5V. Setelah selasai pasang kembali IC LM 35 ke rangkaian signal conditioning dan hubungkan keluaran rangkaian ke mikrokontroler dan hubungkan LCD ke portC. Apabila anda bingung bagaimana mengubungkan LCD ke portC maka lihatlah sambungan seperti gambar berikut.

VR 10K digunakan untuk mengatur kontras dari LCD. Kemudian download program diatas kemikrokontroler dan lihat hasilnya. Apabila pembacaan sensor terjadi osilasi yang tinggi maka pasanglah kapasitor elektrolit bernilai 47uF/16V untuk membuang/ mengurangi ripple pada tegangan keluaran rangkaian signal conditioning dan kapasitor non polar senilai 100nF untuk membuang effek arus kejut yang terinduksi ke sinyal analog ADC 0. Kedua kapasitor tersebut dipasang paralel dengan keluaran rangkaian signal conditioning atau paralel dengan portA.0(ADC0) mikrokontroler AVR Atmega16. Apabila masih terjadi osilasi maka periksa tegangan yang masuk ke AVCC (analog VCC) mikrokontroler, pasanglah rangkaian LPF (low pass filter > untuk memfilter frekuensi rendah) pada kaki tersebut (lihat dalam artikel www.juraganelektro.com > tutorial > mikrokontroler > minimum system AVR Atmega16) dan jangan lupa Vreff (ADC referensi) harus diberi tegangan 5V khusus untuk aplikasi ini.

Demikianlah uraian kami tentang sensor suhu IC LM 35. Semoga bermanfaat bagi anda. Apabila anda mengalami kesulitan silahkan menghubungki kami. Kritik dan saran yang membangun selalu kami nantikan. Terimakasih.

Rabu, 13 Januari 2010

pengumuman KRCI 2010 kategori beroda REGIONAL I

Daftar Calon Peserta KRCI 2010 Divisi Beroda yang lolos Seleksi Tahap I (Evaluasi Proposal)

No. Nama_Tim Institusi Kategori_Rbt REGIONAL
1 saxai AMIK Citra Gama - Duri Beroda I
2 BARELANG III Politeknik Batam Beroda I
3 4MeE Politeknik Bengkalis Beroda I
4 YASUDAH Politeknik LP3I Medan Beroda I
5 Anak_Medan Politeknik Negeri Medan Beroda I
6 BA-RODA Politeknik Negeri Padang Beroda I
7 CYBER Politeknik Negeri Sriwijaya Beroda I
8 YDS V1 Sekolah Tinggi Teknologi Pekanbaru Beroda I
9 PNP ROBO STIKOM Dinamika Bangsa Jambi Beroda I
10 BITRON STIMIK Nurdin Hamzah Jambi Beroda I
11 CRYBOTS STMIK "MDP" Palembang Beroda I
12 R-Project STMIK PalComTech - Palembang Beroda I
13 76G P-U STMIK Potensi Utama - Medan Beroda I
14 RAJO AL-ZHAFIR STMIK Teknokrat Bandar Lampung Beroda I
15 Run-Dunk Evo Universitas Andalas Beroda I
16 Ambuih_Li Dou Universitas Bung Hatta Padang Beroda I
17 SATOE_RASA Universitas Internasional Batam Beroda I
18 RAJA-BASA Universitas Lampung Beroda I
19 DOBRAXSON Universitas Negeri Medan Beroda I
20 Robo 8,2SR Universitas Negeri Padang Beroda I
21 Team Robotic UPI-YPTK PADANG Universitas Putra Indonesia - YPTK Padang Beroda I
22 BullDozerr Universitas Riau Kepulauan Beroda I
23 Pacet Brow Universitas Sriwijaya Beroda I
24 DTE-USU Universitas Sumatera Utara Beroda I