● online
- 10mm Kapton Tape Polymide Film Gold High Temp isol....
- Tilt Sensor SW-520D Module Modul Sensor Kemiringan....
- LED 3mm Lampu LED 3 mm....
- LCD CHARACTER 16X2 1602 5V GREEN HIJAU BACKLIGHT M....
- Jasa Cetak PCB....
- ESR Meter Digital LCR-T4 Tester Transistor Diode M....
- LM35DZ Sensor Suhu - LM35....
- IIC I2C LCD 1602 16x2 2004 20x4 Backpack for LCD A....
- Selamat Datang di Indomaker ❯ Silahkan pesan produk sesuai kebutuhan anda, kami siap melayani.
- Selamat Datang di Indomaker ❯ Silahkan pesan produk sesuai kebutuhan anda, kami siap melayani.
Bikin Stabilizer 1-Axis Low Budget Pakai Arduino dan PID
Sobat Maker, pernah nggak sih lagi asik merekam video pakai robot atau drone, eh hasilnya malah goyang-goyang kayak jelly? Masalah kestabilan memang sering bikin pusing, tapi tenang, kita nggak perlu keluar uang jutaan rupiah buat beli gimbal mahal. Kita bisa banget rakit sendiri stabilizer 1-axis yang responsif cuma dengan modal di bawah 100 ribu! Dengan memanfaatkan Arduino dan algoritma PID, kita bakal bikin platform yang tetap anteng meski digoyang-goyang dengan cara yang sangat teknis tapi tetap ramah di kantong.
Kenalan dengan Alat dan Bahannya
Proyek ini benar-benar efisien karena kita cuma butuh beberapa komponen kunci yang gampang banget dicari. Berikut rincian biayanya:
| No. | Alat dan Bahan | Jumlah | Estimasi Harga |
|---|---|---|---|
| 1 | Arduino Uno R3 (Kompatibel CH340) | 1 buah | – |
| 2 | Modul Sensor MPU6050 (Gyro & Accelerometer) | 1 buah | Rp37.000 |
| 3 | Motor Servo SG90 Micro 9g | 1 buah | – |
| 4 | Kabel Jumper | 1 set | Rp10.000 |
| 5 | Protoboard atau Breadboard Mini | 1 buah | Rp8.000 |
Kalau dijumlahkan, total biayanya cuma sekitar Rp 55.000 (asumsi kamu sudah punya Arduino dan servo sendiri). Sangat ekonomis untuk sebuah sistem kendali otomatis yang canggih, kan?
Cara Kerja Sistem Stabilizer
Sistem ini bekerja dengan arsitektur closed-loop control atau sistem kendali loop tertutup. Artinya, ada aliran umpan balik yang terus-menerus terjadi, di mana sensor membaca kondisi sistem, kemudian controller memberikan koreksi berdasarkan hasil pembacaan tersebut. Konsep ini merupakan dasar dari banyak sistem kendali otomatis dan juga menjadi bagian penting dalam pembahasan PID Controller & Theory Explained dari National Instruments.

Setelah data diterima, Arduino akan menghitung seberapa besar simpangan yang terjadi dari titik setimbang. Hasil perhitungan ini kemudian dikonversi menjadi sinyal PWM untuk memerintahkan Motor Servo sebagai “otot” bergerak melawan arah kemiringan tersebut. Konsep kendali otomatis ini sebenarnya mirip banget dengan cara kita jaga tanaman tetap happy dengan sistem irigasi pintar berbasis PID dan Arduino yang memastikan variabel tetap berada di titik yang diinginkan secara konsisten.
Skematik Rangkaian
Menyusun rangkaiannya tergolong simpel. Sensor MPU6050 dihubungkan ke jalur I2C pada Arduino Uno, yaitu Pin A4 untuk SDA dan Pin A5 untuk SCL. Untuk penggeraknya, kabel sinyal Motor Servo SG90 disambungkan ke pin PWM, tepatnya Pin 9 pada Arduino.
Hal yang sangat krusial adalah memastikan jalur power terpasang dengan benar. Pastikan VCC dan GND pada sensor serta Motor Servo terhubung ke pin 5V dan GND pada Arduino. Jalur power yang stabil ini penting banget supaya pembacaan sensor nggak ngaco dan motor servo punya tenaga yang cukup buat melakukan koreksi posisi dengan secepat kilat.

Langkah Langkah Kalibrasi dan Persiapan
Saat alat pertama kali dinyalakan, sistem akan masuk ke fase kalibrasi dinamis selama 3 detik. Di sini, kamu harus pastikan sensor tetap diam dan nggak bergerak sama sekali. Sistem bakal merekam sudut awal kemiringan sebagai nilai offset supaya titik referensi keseimbangannya benar-benar murni berada di angka 0 derajat.
Uniknya, sistem ini juga dilengkapi antarmuka HMI sederhana lewat Serial Monitor. Motor servo nggak akan langsung bergerak liar saat dicolokkan ke listrik. Ia bakal berada di posisi siaga (90 derajat) dan baru akan mulai melakukan aksi stabilisasi setelah kita kirim perintah “START” lewat komputer. Nggak cuma itu, sistem ini juga mendukung real-time PID tuning, jadi kamu bisa langsung update parameter kendali lewat Serial Monitor tanpa perlu bolak-balik upload ulang kode program.
Bikin Sinyal Makin Halus dengan Filter EMA dan Deadband
Data mentah dari sensor biasanya punya banyak gangguan atau noise yang bikin gerakan motor jadi kasar dan getar. Untuk mengatasinya, kita pakai algoritma Exponential Moving Average (EMA). Algoritma ini bertugas menyaring sinyal supaya data orientasi yang diterima sistem jadi lebih halus dan stabil.

Selain filter, ada juga konsep deadband atau zona toleransi sebesar 0,8 derajat. Jadi, kalau kemiringannya cuma sedikit banget (di bawah batas itu), sistem menganggapnya sudah seimbang. Ini penting supaya motor servo nggak bergetar halus terus-menerus atau hunting saat posisinya sudah sangat dekat dengan titik setimbang, sehingga motor kamu jadi lebih awet.
Rahasia Keseimbangan Algoritma PID Diskrit

Kunci utama dari keandalan stabilizer ini ada pada algoritma PID (Proportional, Integral, Derivative) yang dijalankan dalam waktu diskrit:
- Proporsional (P) berperan sebagai reaksi langsung. Makin miring alat kita, makin besar pula gaya koreksi yang diberikan oleh servo.
- Integral (I) bertugas menghapus sisa kesalahan atau error yang nggak bisa diselesaikan oleh P. Di sini kita pakai fitur “Anti-Windup” (dibatasi di rentang -20 sampai 20) biar sistem nggak “kaget” atau mengalami ketidakstabilan saat terjadi guncangan ekstrem.
- Derivatif (D) adalah reaksi “anti-lebay”. Dia berfungsi sebagai peredam yang memprediksi gerakan dan memberikan efek ngerem agar posisi berhenti tepat di titik setimbang tanpa bergoyang berlebihan (osilasi).
Bedah Kode Program Arduino
Berikut adalah kode program utama yang bisa kamu gunakan untuk menjalankan sistem stabilizer 1-axis ini:
#include <Wire.h>
#include <MPU6050_tockn.h>
#include <Servo.h>
MPU6050 mpu6050(Wire);
Servo servo;
// PID Parameters
float Kp = 1.2;
float Ki = 0.0;
float Kd = 0.15;
float error = 0;
float lastError = 0;
float integral = 0;
float derivative = 0;
float output = 0;
// Filter & Sensor
float offsetX = 0;
float setpoint = 0;
float filteredAngle = 0;
float alpha = 0.1;
// Servo & System State
int servoCenter = 90;
int servoPos = 90;
bool systemRun = false;
unsigned long lastTime;
String serialBuffer = "";
void setup() {
Serial.begin(115200);
Wire.begin();
mpu6050.begin();
servo.attach(9);
servo.write(90);
Serial.println("Kalibrasi...");
delay(3000);
mpu6050.update();
offsetX = mpu6050.getAngleX();
lastTime = millis();
}
void loop() {
bacaSerial();
if (!systemRun) {
servo.write(90);
return;
}
mpu6050.update();
float angle = mpu6050.getAngleX() - offsetX;
// EMA Filter
filteredAngle =
alpha * angle +
(1.0 - alpha) * filteredAngle;
unsigned long now = millis();
float dt = (now - lastTime) / 1000.0;
if (dt <= 0) {
dt = 0.01;
}
lastTime = now;
// PID Calculation
error = setpoint - filteredAngle;
// Deadband
if (abs(error) < 0.8) {
error = 0;
}
// Integral
integral += error * dt;
// Anti-Windup
integral = constrain(integral, -20, 20);
// Derivative
derivative = (error - lastError) / dt;
// PID Output
output =
(Kp * error) +
(Ki * integral) +
(Kd * derivative);
// Actuating Servo
servoPos = servoCenter + output;
servoPos = constrain(servoPos, 0, 180);
servo.write(servoPos);
lastError = error;
// Kirim data ke Serial
Serial.print(setpoint);
Serial.print(",");
Serial.println(filteredAngle);
delay(20);
}
void bacaSerial() {
while (Serial.available()) {
char c = Serial.read();
if (c == '\n') {
serialBuffer.trim();
if (serialBuffer == "START") {
systemRun = true;
integral = 0;
lastError = 0;
}
else if (serialBuffer == "STOP") {
systemRun = false;
servo.write(90);
}
else if (serialBuffer.startsWith("PID")) {
// Format:
// PID,Kp,Ki,Kd
int p1 = serialBuffer.indexOf(',');
int p2 = serialBuffer.indexOf(',', p1 + 1);
int p3 = serialBuffer.indexOf(',', p2 + 1);
if (p1 > 0 && p2 > 0 && p3 > 0) {
Kp = serialBuffer.substring(p1 + 1, p2).toFloat();
Ki = serialBuffer.substring(p2 + 1, p3).toFloat();
Kd = serialBuffer.substring(p3 + 1).toFloat();
}
}
serialBuffer = "";
}
else {
serialBuffer += c;
}
}
}
Dalam kode tersebut, fungsi setup() mengurus inisialisasi sensor dan kalibrasi otomatis. Di bagian loop(), kalkulasi PID dilakukan dengan menghitung selisih waktu (dt) yang sangat presisi. Penggunaan fungsi constrain di sana sangat vital untuk membatasi pergerakan servo agar nggak melebihi batas fisik 0-180 derajat, sehingga hardware kamu tetap aman dari kerusakan mekanis.
Kesimpulan
Proyek stabilizer 1-axis ini jadi bukti kalau teknologi keren nggak harus mahal. Cuma dengan Rp 55.000, kita sudah bisa bikin sistem penyeimbang yang responsif berkat perpaduan sensor MPU6050, filter EMA, dan algoritma PID diskrit. Buat kamu yang baru mau belajar dunia kendali otomatis, proyek ini adalah titik awal yang pas banget. Jangan ragu buat bereksperimen gonta-ganti nilai Kp, Ki, dan Kd lewat Serial Monitor supaya kamu bisa lihat langsung gimana pengaruhnya ke gerakan stabilizer kamu!
Bikin Stabilizer 1-Axis Low Budget Pakai Arduino dan PID
Pernah nggak sih kamu lagi asik-asiknya nugas atau belajar pas sore hari, eh tiba-tiba cahaya ruangan jadi redup gara-gara cuaca... selengkapnya
HK1600B merupakan salah satu sensor tekanan yang mudah kita temukan di pasaran, dengan output analog linear dari 0.5V hingga 4.5V,... selengkapnya
Bagi anda yang belum tau cara menggunakan LED pada NodeMCU, pada artikel ini akan di bahas cara-caranya. Sebelum melangkah... selengkapnya
Oke kali ini saatnya kita mulai running ke mesin CNC router engaraving langsung. Sebelumnya apakah anda sudah mempersiapkan bahan-bahanya?... selengkapnya
IC AtMega328p pada Arduino Uno anda rusak? panas? atau anda ingin membuat sistem minimum sendiri? tenang solusinya adalah dengan... selengkapnya
Sobat Maker, pernah nggak sih lagi asik-asiknya mandi tiba-tiba air di tandon habis? Atau sebaliknya, tandon malah meluap sampai air... selengkapnya
Dalam dunia fotografi, mengambil foto yang bagus merupakan suatu keahlian yang harus di kuasai oleh seorang fotografer. Karena dengan... selengkapnya
Pernah nggak sih kamu lagi sayang-sayangnya sama tanaman kesayangan, eh tiba-tiba malah layu gara-gara lupa disiram? Atau justru sebaliknya, tanamannya... selengkapnya
Pada komponen tertentu dibutuhkan sebuah library agar komponen tersebut dapat berjalan sebagaimana mestinya. Apa itu library? library adalah sekumpulan... selengkapnya
Halo, Sobat IoT! Pernahkah kamu merasa ruangan di rumah tiba-tiba terasa lembap sampai tembok berjamur, atau malah sebaliknya, udara jadi... selengkapnya
Mini Solderless Breadboard 400 Tie Points adalah breadboard 400 titik lubang, dengan ukuran yang compact sangat cocok untuk anda yang… selengkapnya
Rp 7.800TECHNICAL SPECIFICATIONS: – Broadcom BCM2711, Quad core Cortex-A72 (ARM v8) 64-bit SoC @ 1.5GHz – 2GB LPDDR4-2400 SDRAM – 2.4… selengkapnya
Rp 940.0002000W SCR Electronic Voltage Regulator Speed Controller Dimmer Thermostat Aplikasi : Kontrol temperature heater, kontrol kecepatan fan/bor tangan/gurinda tangan, kompor… selengkapnya
Rp 19.500Case patern: Solid Warna : Merah dan Hijau Current: 10-20 mA Diameter: 3mm
Rp 300Specifications: Operating voltage: DC3-5V Operating current: less than 20mA Sensor Type: Analog Detection Area: 40mmx16mm Production process: FR4 double-sided HASL… selengkapnya
Rp 3.00012A 300W DC Buck Step Down Converter CC CV Driver LED charge Battery Spesifikasi: Input Voltage: 5-40V Output Voltage: 1.2-35V… selengkapnya
Rp 39.400Spesifikasi: 50mm Kapton Tape Polymide Film Gold High Temp isolasi Tahan Panas Harga Tertera: 1 Roll Kapton Tape Polymide Film… selengkapnya
Rp 75.000Harga untuk 10pcs Resistance: 220 Ohm Wattage Rating: 0.25 Watt Tolerance: 1% Metal Film Lead Free ROHS compliant
Rp 1.500Modul sensor tegangan AC bolak balik 3 fasa ini menggunakan optocoupler sehingga tegangan input (AC) tidak akan mengganggu/membahayakan tegangan output… selengkapnya
Rp 57.000Kabel Jumper Dupont Pelangi 10 cm male to male 1 lembar = 40 kabel
Rp 13.000Bikin Stabilizer 1-Axis Low Budget Pakai Arduino dan PID
Kategori
Artikel Terkait
-
Bikin Sistem Parkir Otomatis dengan Penghitung Kendaraan dan Indikator Slot Kosong
-
Rancang Sistem Pendeteksi Kebakaran dengan Kipas Otomatis dan Alarm Peringatan
-
Bikin Alat Monitoring Konsumsi Listrik Rumah Secara Real-Time Berbasis ESP32
-
Bikin Sistem Keamanan Pintu Berbasis RFID dengan Notifikasi Telegram
-
Rancang Sistem Penyiram Tanaman Otomatis Berbasis ESP32 dengan Monitoring Smartphone

Saat ini belum tersedia komentar.