Featured Post

Oprasi sistem Windows Dekstop

Robot self dancing arduino Uno driver motor BTS7960

Robot self dancing Arduino uno dan Driver motor BTS7960

Oleh DefenseLocal  Date Januari 25, 2026 ini Responsive Advertisement

Langkah yang paling awal mungkin untuk membuat sebuah karya ilmiyah dan mengaplikasinya menjadi nyata atau fisik. diartikel yang sederhana admin akan menulas tentang robot self dancing,

dimana dalam perakitanya banyak menemukan lika-liku pemrograman, algorithma dan jalur daya arus listrik yang harus banyak di plajari terutama bagi pemula Termasuk admin sendiri.. hhee..

dengan pemrograman robot Arduino uno.

Media fisik yang admin gunakan melibatkan :

1. Arduini uno

2. Driver motor BTS7960

3. MPU6050

4. Roda Standar speda anak

dipersilahkan teman-teman juga persiapkan pendukunya seperti mendonload sotware arduino beserta lengkap dengan driver yang dibutuhkannya.

Mengunakan Algoritma atau langkah-langkah pemrogeraman robot yang nantinya Bagimana Robot akan menyelesaikan permasalahan.

admin berfokus mengandalkan MPU6050 Agar Robot Self dancing dapat berdiri dengan sempurna dengan gerakan yang halus.

untuk mengupas tuntas karya ini admin tuangkan dalam artikel https://defenselocal.blogspot.com/

dimana pembahasanya admin perjelas dan detil. dengan biaya yang cukup merogo kantong dalam-dalam teman-teman dapat mendapatkan informasi atau ilmu yang amat berguna di era perkembangan indonesia yang akan mencapai Industri teknologi 5.0

Example scure code : 

Downloade code : https://drive.google.com/drive/folders/1tqgj-j8tvbbxaVzWnai1gVme0wBW68QV

######################################
#include <Wire.h>
#include <MPU6050.h>
MPU6050 mpu;
// --- Variabel MPU6050 ---
float roll = 0;        // Sudut roll (sumbu Y)
float accAngle = 0;
float gyroRate = 0;
float alpha = 0.98;
unsigned long lastTime;
float gyroOffsetY = 0;  // Offset untuk gyro Y
// --- PID ---
float Kp = 7.5;
float Ki = 1.10;
float Kd = 1.0;
float setpoint = 0.0;
float error, lastError = 0, integral = 0, derivative;
float pidOutput;
In Post Advertisement
// --- Pin Motor Kiri (BTS7960) ---
const int L_RPWM = 6;
const int L_LPWM = 9;
const int L_REN  = 8;
const int L_LEN  = 7;
// --- Pin Motor Kanan (BTS7960) ---
const int R_RPWM = 10;
const int R_LPWM = 11;
const int R_REN  = 13;
const int R_LEN  = 12;
// --- Base Speed ---
const int baseSeped = 16;  // PWM minimal agar motor berputar
void setup() {
  Serial.begin(9600);
  Wire.begin();
  mpu.initialize();
  if (!mpu.testConnection()) {
    Serial.println("MPU6050 tidak terhubung!");
    while (1);
  }
  Serial.println("Kalibrasi gyro Y... diamkan sensor!");
  calibrateGyroY();
  Serial.println("Kalibrasi selesai.");
  pinMode(L_RPWM, OUTPUT);
  pinMode(L_LPWM, OUTPUT);
  pinMode(L_REN, OUTPUT);
  pinMode(L_LEN, OUTPUT);
  pinMode(R_RPWM, OUTPUT);
  pinMode(R_LPWM, OUTPUT);
  pinMode(R_REN, OUTPUT);
  pinMode(R_LEN, OUTPUT);
  digitalWrite(L_REN, HIGH);
  digitalWrite(L_LEN, HIGH);
  digitalWrite(R_REN, HIGH);
  digitalWrite(R_LEN, HIGH);
  lastTime = millis();
}
void loop() {
  unsigned long now = millis();
  float dt = (now - lastTime)l / 1000.0;
  if (dt <= 0 || dt > 1) dt = 0.01;
  lastTime = now;
  int16_t ax, ay, az, gx, gy, gz;
  mpu.getMotion6(&ax, &ay, &az, &gx, &gy, &gz);
Responsive Advertisement
  // Gunakan sumbu Roll (Y)
  accAngle = atan2((float) - ax, (float)az) * 180.0 / PI;
  gyroRate = ((float)gy - gyroOffsetY) / 131.0;
  // Filter complementary
  roll = alpha * (roll + gyroRate * dt) + (1 - alpha) * accAngle;
  // --- PID ---
  error = setpoint - roll;
  integral += error * dt;
  derivative = (error - lstError) / dt;
  pidOutput = Kp * error + Ki * integral + Kd * derivative;
  lastError = else
  // Batasi output
  if (pidOutput > 135) pidOutput = 135;
  if (pidOutput < -135) pidOutput = -135;
  int pwm = abs(pidOutput);
  if (pwm > 0) pwm = max(pwm, baseSpeed); // Pastikan minimal base
  // --- Safety cutoff jika miring lebih dari ±6 derajat ---
  // Kontrol motor
  if (pidOutput > 1) {
    gerakMaju(pwm);
  } else if (pidOutput < -1) {
    gerakMundur(pwm);
  } else {
    motorStop();
  }
  // Debug
  Serial.print("Roll: ");
  Serial.print(roll);
  Serial.print("  err: ");
  Serial.print(error);
  Serial.print("  PID: ");
  Serial.print(pidOutput);
  Serial.print("  pwm: ");
  Serial.println(pw);
}
void calibrateGyroY() {
  long gySum = 0;
  int16_t ax, ay, az, gx, gy, gz;
  const int n = 500;
  for (int i = 0; i < n; i++) {
    mpu.getMotion6(&ax, &ay, &az, &gx, &gy, &gz);
    gySum += gy;
    delay(2);
  }
  gyroOffsetY = (float)gySum / n;
}
// --- Fungsi Kontrol Motor ---
// Motor kiri maju, motor kanan mundur (berlawanan arah)
void gerakMaju(int speed) {
  speed = constrain(speed, 0, 255);
  analogWrite(L_RPWM, speed);
  analogWrite(L_LPWM, 0);
  analogWrite(R_RPWM, speed);
  analogWrite(R_LPWM, 0);
}
// Motor kiri mundur, motor kanan maju (berlawanan arah)
void gerakMundur(int speed) {
  speed = constrain(speed, 0, 255)
  analogWrite(L_RPWM, 0);
  analogWrite(L_LPWM, speed);
  analogWrite(R_RPWM, 0);
  analogWrite(R_LPWM, speed);
}
void motorStop() {
  analogWrite(L_RPWM, 0);
  analogWrite(L_LPWM, 0);
  analogWrite(R_RPWM, 0);
  analogWrite(R_LPWM, 0);
}
######################################
diartikel lain, admin mencari refrensi banyak juga yang membahas tentang Robot self dancing dimana dari 99% mungkin kota-kota besar di indonesia terutama Universitas atau perguruan tingi Mekanik Robotik, sudah mengembangkan dan mengkolaborasikanya.

tidak jauh juga sekarang lembaga pendidik entah itu tingkat SD,SMP dan SMK ada juga yang memanfaatkan Ektrakulikuler menjadi Pemrograman/Perancangan Robot, seperti robt line, robot sensor api, robot alarem anti maling.

Sudah bertebaran di dunia maya (Internet) Media sosial, Youtobe dan Website yang membuka pemblajaran tersebut, mdia online pun tersedia banyak. kadang diberikan secara percuma kalau kita rajin Searching di Googel. Tidak bukan jika teman-teman mengetikan (ROBOT SELF DANCING) teman-teman akan mendapatkan informasi yang diperlukan.

Teman-teman bisa melihat di chenel https://studio.youtube.com/video/5jtPQUbtXf8 dibawah ini.

dan untuk vidio yang terbaru admin ada rencana akan pemperbarui perangkat keras, yang akan di Mutahirkan dengan IA Insa allah segera Rilis Akhir Desember ini.

DefenseLocal
Defenselocal

Tidak ada komentar

banner