Anda di halaman 1dari 24

Masukan Plant atau Keluaran

Kontroler
proses

Masukan Plant atau Keluaran


Kontroler
proses

Elemen
ukur
Deskripsi Error Hasil
KONTROLER AKTUATOR ROBOT
Tugas Tugas

SENSOR
MOTOR KIRI
Setpoint Kecepatan
Kecepatan Error Robot
+ PID ROBOT
-

MOTOR KANAN

Kecepatan
Aktual SENSOR
KECEPATAN
ROBOT

ROBOT MOBILE
MANIPULATOR ROBOT

GROUND ROBOT ROBOT


ROBOT SUBMARINE AERIAL

ROBOT ROBOT
BERKAKI BERODA
R L

+
M i v
-

-
Roda
Y
Base (Basis)

O X
P 𝐾  𝑝 𝑒(𝑡)

Set point Error + Keluaran


+
-
I 𝐾
 
𝑖 ∫ 𝑒 ( 𝑡 ) 𝑑𝑡 +
+
Proses

𝑑𝑒 (𝑡 )
D   𝑑
𝐾
𝑑𝑡
Mulai

Inisialisasi

Pembacaan
Jarak dan
Kecepatan

Jarak
< 40

PID

Atur Kecepatan Robot Beroda


Robot Beroda Berhenti

Selesai
Mulai

Inisialisasi
Setpoint
Kecepatan

Pembacaan data
Kecepatan

Menghitung nilai
error

PID

Mengatur Nilai
PWM
berdasarkan
keluaran PID

Selesai
Studi literatur

Penentuan spesifikasi alat

Perancangan robot

Implementasi algoritma

Pengujian dan analisis data

Penarikan kesimpulan
Studi
Literatur

Analisis
Kebutuhan

Pengumpulan
Data

Desain
Sistem

Implementasi

Pengujian dan
Analisis Hasil

Penarikan
Kesimpulan
dan Saran
Kebutuhan
Pengguna
Analisis
Kebutuhan
Kebutuhan
Sistem
Pengguna dapat melihat
kecepatan robot beroda

Pengguna dapat melihat


nilai error dari sistem

Pengguna dapat melihat


nilai keluaran PID
Sensor
Motor Kiri
Jarak
Mikrokontroler
Driver Motor
Arduino
Sensor
Motor Kanan
Kecepatan
Sensor
Jarak
Sensor
Jarak

Sensor
Kecepatan

Motor Motor
Kiri Kanan

Arduino
Sensor
Jarak
Sensor
Kecepatan

Mikrokontroler

Motor Driver Motor


Kiri Motor Kanan

Jarak

PID

Kecepata
n
VCC

9 ENA OUT1 Motor


7 IN1 OUT2 Kiri
6 IN2 Driver
Arduino
Motor
UNO 3 ENB
VCC 5 IN3 L298N OUT3 Motor
Sensor GND 4 IN4 OUT4
DO 2 Kanan
Kecepatan
AO
GND

VCC

9 ENA OUT1 Motor


7 IN1 OUT2
6 IN2 Driver Kiri
Arduino
Motor
UNO 3 ENB
VCC 5 IN3 L298N OUT3 Motor
Sensor GND 4 IN4 OUT4
DO 2 Kanan
Kecepatan
AO
GND
VCC
Pin 5 ENA OUT1
Motor
Pin 6 IN1 OUT2
VCC Driver Kiri
Sensor Arduino Pin 7 IN2
DO Pin 2 Motor
Kecepatan UNO Pin 8 IN3
GND
Pin 9 IN4
L298N OUT3 Motor
GND
Pin 10 ENB OUT4 Kanan
volatile byte half_revolutions = 0; int IN1 = 6;
unsigned int rpm = 0; int IN2 = 7;
unsigned long timeold = 0; int IN3 = 8;
void setup() int IN4 = 9;
{  
Serial.begin(9600); int ENA = 5;
attachInterrupt(0, rpm_fun, RISING); int ENB = 10;
}  
void loop() void setup() {
{ // put your setup code here, to run once:
if (half_revolutions >= 20) { pinMode(IN1, OUTPUT);
//Update RPM every 20 counts, increase this for better RPM pinMode(IN2, OUTPUT);
resolution,
pinMode(IN3, OUTPUT);
//decrease for faster update pinMode(IN4, OUTPUT);
rpm = 30*1000/(millis() - timeold)*half_revolutions;
}
timeold = millis();
 
half_revolutions = 0; void loop() {
Serial.println(rpm,DEC);
// put your main code here, to run repeatedly:
} digitalWrite(IN1, HIGH);
}
digitalWrite(IN2, LOW);
void rpm_fun()
analogWrite(ENA, 150);
{ digitalWrite(IN3, HIGH);
half_revolutions++; digitalWrite(IN4, LOW);
}
analogWrite(ENB, 150);
delay(100);
}
PC atau
Baterai 6V
Laptop

Motor
Kiri
Sensor Arduino Driver
Kecepatan UNO Motor
Motor
Kanan