• Tidak ada hasil yang ditemukan

Rancang Bangun Robot Keseimbangan Menggunakan Sensor Mpu6050 Berbasis Atmega328

N/A
N/A
Protected

Academic year: 2017

Membagikan "Rancang Bangun Robot Keseimbangan Menggunakan Sensor Mpu6050 Berbasis Atmega328"

Copied!
6
0
0

Teks penuh

(1)

LAMPIRAN 1

PROGRAM LENGKAP

#include "Wire.h"

#include "MPU6050.h"

MPU6050 accelgyro;

int16_t ax, ay, az;

int16_t gx, gy, gz;

#define Gry_offset 0

#define Gyr_Gain 0.00763358

#define Angle_offset 0

#define RMotor_offset 20

#define LMotor_offset 20

#define pi 3.14159

long data;

int x, y;

char recev;

float kp, ki, kd;

float r_angle, f_angle, omega;

float Turn_Speed = 0, Turn_Speed_K = 0;

float Run_Speed = 0, Run_Speed_K = 0, Run_Speed_T = 0;

float LOutput,ROutput;

unsigned long preTime = 0;

float SampleTime = 0.08;

unsigned long lastTime;

float Input, Output;

float errSum, dErr, error, lastErr;

int timeChange;

(2)

int ENC=10;

int END=5;

void setup() {

Serial.begin(9600);

Wire.begin();

accelgyro.initialize();

pinMode(ENA,OUTPUT);

pinMode(ENB,OUTPUT);

pinMode(ENC,OUTPUT);

pinMode(END,OUTPUT);

}

void loop() {

Recive();

accelgyro.getMotion6(&ax, &ay, &az, &gx, &gy, &gz);

r_angle = (atan2(ay, az) * 180 / pi + Angle_offset);

omega = Gyr_Gain * (gx + Gry_offset);

if (abs(r_angle)<30){

myPID();

PWMControl();

}

else{

analogWrite(ENC, 0);

analogWrite(END,0);

analogWrite(ENA, 0);

analogWrite(ENB, 0);

}

(3)

void Recive(){

void Analog(){

kp = analogRead(A1)*0.1;

kd = analogRead(A2);

ki =0;

}

void myPID(){

Analog();

unsigned long now = millis();

(4)

float K = 0.8;

float A = K / (K + dt);

f_angle = A * (f_angle + omega * dt) + (1 - A) * r_angle; //complemtari filter //

Serial.print("*D");Serial.print(f_angle);Serial.print("*" );

timeChange = (now - lastTime);

if(timeChange >= SampleTime){

Input = f_angle;

void PWMControl(){

if(LOutput > 0){

analogWrite(ENA, min(255, abs(LOutput) + LMotor_offset));

analogWrite(ENB, 0);

}

else if(LOutput < 0){

analogWrite(ENA, 0);

analogWrite(ENB, min(255, abs(LOutput) + LMotor_offset));

}

(5)

analogWrite(ENA, 0);

analogWrite(ENB, 0);

}

if(ROutput > 0){

analogWrite(ENC, min(255, abs(LOutput) + LMotor_offset));

analogWrite(END, 0);

}

else if(ROutput < 0){

analogWrite(ENC, 0);

analogWrite(END, min(255, abs(LOutput) + LMotor_offset));

}

else{

analogWrite(ENC, 0);

analogWrite(END,0);

}

(6)

LAMPIRAN 2

Referensi

Dokumen terkait

Dari penelitian ini diketemukan bahwa pembiayaan akad mudharabah mutlilateral didasarkan pada fatwa MUI dan Dewan Syariah Nasional dengan argumen yang dibangun atas dasar

Raya Bence Garum Blitar Hak Pakai 2/8/1992 SMAN 1 GARUM Pembelian Hak Pakai No.. Srengat Hak Pakai Blm

04 Pedoman pengendalian mutu pelaksanaan pemantauan tindak lanjut ini dimaksudkan untuk memberikan panduan bagi APIP dalam memantau dan mengevaluasi tindakan koreksi yang

(3) Jika barang-barang atau dokumen yang disita oleh Penolong Pengawal pada menjalankan kuasanya di bawah seksyen ini adalah disebabkan oleh jenis, saiz atau amaunnya

Jika Tertanggung menderita kerugian finansial karena kehilangan fisik Kartu Kredit Mandiri yang disebabkan oleh pencurian dan Kartu Kredit Mandiri Tertanggung

Masyarakat Indonesia dapat menggunakan herbal secara bebas tanpa harus berkonsultasi dengan dokter atau tenaga medis lainnya, kecenderungan yang ada adalah masyarakat

Penelitian ini bertujuan untuk mengetahui tingkat kolaborasi dan alasan yang melatarbelakangi pengarang melakukan kolaborasi pada jurnal Reference Service Review

W., Prajitno, G., (2012), Studi Awal Fabrikasi Dye Sensitized Solar Cell (DSSC) Dengan Menggunakan Ekstraksi Daun Bayam (Amaranthus Hybirdus L.) Sebagai Dye