Kamis, 08 Mei 2014

Aplikasi - Robot Pengikut Garis (Seri Robotika [I])

Robot Pengikut Garis adalah robot yang bergerak mengikuti garis yang melintang di bawahnya.

Pada aplikasi kali ini, Robot Pengikut Garis, sensor yang digunakan untuk mendeteksi keberadaan garis adalah sensor LDR yang terintegrasi di modul DI-MLDR. Agar robot dapat bergerak ke kanan dan ke kiri dengan baik, maka digunakan dua motor DC yang terhubung pada mekanik roda, yaitu pada sisi kanan dan pada sisi kiri. Sedangkan pada sisi depan sebagai penyeimbang digunakan roda bebas. Agar mikrokontroler dapat menggerakkan motor DC, digunakan driver motor DC tipe H-Bridge dalam bentuk IC, L298, yang telah terintegrasi pada modul DI-MDCD4A. Dan sebagai pengendali utama robot digunakan mikrokontroler AVR tipe ATmega8535 yang terintegrasi pada modul DI-Smart AVR System.

Modul-Modul Depok Instruments yang Mendukung:
Blok Diagram:


Disain Mekanik:



Flowchart:


Skrip Program:

A. BASCOM (BASIC COMPILER)
$regfile = “m8535.dat”
$crystal = 7372800
Config Porta.0 = Input
Config Porta.1 = Input
Ldr_kanan Alias Pina.0
Ldr_kiri Alias Pina.1
Config Portc.0 = Output
Config Portc.1 = Output
Config Portc.2 = Output
Config Portc.3 = Output
Motor_kanan_maju Alias Portc.0
Motor_kanan_mundur Alias Portc.1
Motor_kiri_maju Alias Portc.2
Motor_kiri_mundur Alias Portc.3
Main:
Motor_kanan_maju = 0
Motor_kanan_mundur = 0
Motor_kiri_maju = 0
Motor_kiri_mundur = 0
Do
If Ldr_kiri = 0 Then
If Ldr_kanan = 0 Then
‘motor off
Exit Do
Else
‘belok kanan
Motor_kiri_maju = 1
Motor_kiri_mundur = 0
Motor_kanan_maju = 0
Motor_kanan_mundur = 1
End If
Else
If Ldr_kanan = 0 Then
‘belok kiri
Motor_kiri_maju = 0
Motor_kiri_mundur = 1
Motor_kanan_maju = 1
Motor_kanan_mundur = 0
Else
‘Maju
Motor_kiri_maju = 1
Motor_kiri_mundur = 0
Motor_kanan_maju = 1
Motor_kanan_mundur = 0
End If
End If
Loop
Goto Main
End

B. CODE VISION
/*****************************************************
This program was produced by the
CodeWizardAVR V2.03.4 Standard
Automatic Program Generator
© Copyright 1998-2008 Pavel Haiduc, HP InfoTech s.r.l.
http://www.hpinfotech.com
Project :
Version :
Date    : 3/4/2011
Author  :
Company :
Comments:
Chip type           : ATmega8535L
Program type        : Application
Clock frequency     : 7.372800 MHz
Memory model        : Small
External RAM size   : 0
Data Stack size     : 128
*****************************************************/
#include <mega8535.h>
// Declare your global variables here
#define ldr_kanan PINA.0
#define ldr_kiri PINA.1
#define ddr_ldr_kanan DDRA.0
#define ddr_ldr_kiri DDRA.1
#define motor_kanan_maju PORTC.0
#define motor_kanan_mundur PORTC.1
#define motor_kiri_maju PORTC.2
#define motor_kiri_mundur PORTC.3
#define ddr_motor_kanan_maju DDRC.0
#define ddr_motor_kanan_mundur DDRC.1
#define ddr_motor_kiri_maju DDRC.2
#define ddr_motor_kiri_mundur DDRC.3
void main(void)
{
ddr_ldr_kanan=0;
ddr_ldr_kiri=0;
ddr_motor_kanan_maju=1;
ddr_motor_kanan_mundur=1;
ddr_motor_kiri_maju=1;
ddr_motor_kiri_mundur=1;
ACSR=0×80;
SFIOR=0×00;
while (1){
motor_kanan_maju=0;
motor_kanan_mundur=0;
motor_kiri_maju=0;
motor_kiri_mundur=0;
if (ldr_kiri==0){
if (ldr_kanan==0){
continue;
}else
{
//belok kanan
motor_kiri_maju = 1;
motor_kiri_mundur = 0;
motor_kanan_maju = 0;
motor_kanan_mundur = 1;
}
}else
{
if (ldr_kanan == 0){
//’belok kiri
motor_kiri_maju = 0;
motor_kiri_mundur = 1;
motor_kanan_maju = 1;
motor_kanan_mundur = 0;
}
else
{
//’Maju
motor_kiri_maju = 1;
motor_kiri_mundur = 0;
motor_kanan_maju = 1;
motor_kanan_mundur = 0;
}
}
};
}

0 komentar:

Posting Komentar