.

 

Kategori Artikel: Mac Gyver/ Ngulik

Gyro Camera Untuk Sepeda Motor

gyro00

Seperti yang kita saksikan di ajang balap MotoGP, terlihat si pembalap melewati tikungan-tikungan sambil merebahkan motornya kesamping kiri dan kanan. Namun jika diperhatikan ada yang menarik ketika saat motor terlihat rebah miring, horison pandangan depan terlihat tetap datar/rata. Bagaimana bisa seperti itu?

Kamera pada motor tersebut menggunakan sistem GYRO, dimana kamera akan dibuat tetap tegak lurus terhadap grafitasi bumi atau horison.

 

BIKIN SENDIRI GYRO CAMERA

Kita bisa membuat sendiri Gyro Camera tersebut dengan menggunakan bantuan modul GYRO dan modul ACCELEROMETER.

Awalnya dua modul tersebut adalah modul yang terpisah, sehingga kita harus menggunakan dua unit modul bersamaan. Kemudian dibuatlah Chip Gyro dan Chip Accelerometer dalam satu modul (ada dua chip dalam satu modul). Hingga akhirnya versi terbaru keduanya dibuat dalam satu chip saja, sehingga memperkecil distorsi perhitungan gerakan.

Modul yang digunakan di artikel ini adalah Triple Axis Accelerometer & Gyro Breakout – MPU-6050, dimana dalam modul ini terdapat 3-axis gyroscope dan 3-axis accelerometer dalam satu chip. Bekerja dengan catu daya 3.3volt.

Selain modul MPU6050 ini, bisa juga digunakan modul sejenis seperti:

 

Wujud MPU6050 adalah seperti ini. Ukuran sangat kecil, hanya 20mm x 15mm dan tebal 1.6mm.

 

Komponen yang digunakan antara lain:

  • Triple Axis Accelerometer & Gyro Breakout – MPU-6050
  • Arduino UNO R3 (beli)
  • Digital Servo (gunakan servo yang bagus dan kuat) (beli)
  • Breadboard Mini
  • Baterai 9v + Saklar
  • Box dan Kelengkapan lainnya.

Komponen dapat dibeli di Lapantech.com

 

 

Skema pemasangan komponennya adalah sebagai berikut:

– www.saft7.com – automotive tips and sharing

 

Jika menggunakan Board selain Arduino Uno R3, pin SCL dan SDA dari MPU berbeda-beda:

VDD : +3.3V
VIO : +3.3V
GND : GND
SDA : Pin A4 (Arduino Uno, ethernet) / Pin 20 (Mega2560, Due) / Pin 2 (Leonardo)
SCL : Pin A5 (Arduino Uno, ethernet) / Pin 21 (Mega2560, Due) / Pin 3 (Leonardo)

 

 

Rangkaian sudah selesai terpasang seluruhnya.

 

PROGRAMMING

Setelah semua selesai dirangkai, saatnya untuk melakukan upload program ke Arduino.

Rangkaian proyek ini hanya untuk menggerakkan servo dalam satu axis-X saja. Namun tetap diperlukan data-data dari Axis Y dan Z untuk masing-masing Gyroscope dan Accelerometer. Juga saya coba gabungkan dengan perhitungan Kalman Filter agar dapat meredam ‘noise’ output dari Gyroscope+Accelerometer sehingga gerakan servo menjadi halus tidak terjadi gerakan yang tidak diinginkan.

/*
GYRO CAMERA - saft7.com

Demonstrates auto-leveling Camera Video by using Gyro & Accelerometer with Arduino

The circuit:
Servo controlled by Arduino, using Gyro and Accelerometer as reference of movement.

Created March 12, 2013
by Firmansyah Saftari
www.saft7.com

This code and complete article can be found at:

http://www.saft7.com/

Programming Language: C++

*/

#include
Servo xservo;

#include

#include "Kalman.h"
Kalman kalmanX;
Kalman kalmanY;

uint8_t IMUAddress = 0x68; // MPU6050 Address

/* IMU Data */
int16_t accX;
int16_t accY;
int16_t accZ;
int16_t tempRaw;
int16_t gyroX;
int16_t gyroY;
int16_t gyroZ;

int moveX;
int mapX;
int correctionX;

double accXangle;
double accYangle;
double gyroXangle = 9;
double gyroYangle = 180;
double compAngleX = 90;
double compAngleY = 90;
double kalAngleX;
double kalAngleY;
uint32_t timer;

void setup() {
Serial.begin(115200);
xservo.attach(10);

Wire.begin();
i2cWrite(0x6B,0x00); // Disable sleep mode
if(i2cRead(0x75,1)[0] != 0x68) // Read "WHO_AM_I" register
{
Serial.print(F("MPU-6050 with address 0x"));
Serial.print(IMUAddress,HEX);
Serial.println(F(" is not connected"));
while(1);
}
kalmanX.setAngle(90); // Set starting angle
kalmanY.setAngle(90);
timer = micros();
}

void loop() {

/* Update all the values */
uint8_t* data = i2cRead(0x3B,14);
accX = ((data[0] << 8) | data[1]);
accY = ((data[2] << 8) | data[3]);
accZ = ((data[4] << 8) | data[5]);
tempRaw = ((data[6] << 8) | data[7]);
gyroX = ((data[8] << 8) | data[9]);
gyroY = ((data[10] << 8) | data[11]);
gyroZ = ((data[12] << 8) | data[13]);

/* Calculate the angle based on the different sensors and algorithm */

accYangle = (atan2(accX,accZ)+PI)*RAD_TO_DEG;
accXangle = (atan2(accY,accZ)+PI)*RAD_TO_DEG;
double gyroXrate = (double)gyroX/131.0;
double gyroYrate = -((double)gyroY/131.0);
gyroXangle += gyroXrate*((double)(micros()-timer)/1000000); // Calculate gyro angle without any filter
gyroXangle += kalmanX.getRate()*((double)(micros()-timer)/1000000); // Calculate gyro angle using the unbiased rate
compAngleX = (0.93*(compAngleX+(gyroXrate*(double)(micros()-timer)/1000000)))+(0.07*accXangle); // Calculate the angle using a Complimentary filter
kalAngleX = kalmanX.getAngle(accXangle, gyroXrate, (double)(micros()-timer)/1000000); // Calculate the angle using a Kalman filter
timer = micros();
mapX = map(kalAngleX, 0, 200, 0, 179); //calculate limitation of servo mechanical

// -------------

correctionX = 27; // EDIT THIS VALUE FOR SERVO CORRECTION ANGLE

// -------------

moveX = 270 - (kalAngleX) + correctionX;

// ------- SEND TO SERIAL PRINT

Serial.print("saft7.com X Pos: ");
Serial.print(moveX);Serial.print("\t");
Serial.print("\n");

// ------- SEND TO SERVO

xservo.write(moveX); // Send signal to servo
delay(15); // delay to allow servos to move (ms)

delay(1); // The accelerometer's maximum samples rate is 1kHz
}

// --------- FUNCTIONS

void i2cWrite(uint8_t registerAddress, uint8_t data){
Wire.beginTransmission(IMUAddress);
Wire.write(registerAddress);
Wire.write(data);
Wire.endTransmission(); // Send stop
}

uint8_t* i2cRead(uint8_t registerAddress, uint8_t nbytes) {
uint8_t data[nbytes];
Wire.beginTransmission(IMUAddress);
Wire.write(registerAddress);
Wire.endTransmission(false); // Don't release the bus
Wire.requestFrom(IMUAddress, nbytes); // Send a repeated start and then release the bus after reading
for(uint8_t i = 0; i < nbytes; i++)
data[i] = Wire.read();
return data;
}

// GYROCAM BY SAFT7.COM

// END

 

– www.saft7.com – automotive tips and sharing

 

Membuat dudukan kamera

Saya menggunakan Acrylic setebal 2mm yang ditekuk dengan cara dipanaskan. Kemudian dibuat lubang-lubang yang diperlukan untuk pemasangan servo dan lubang baut ke kamera.

 

Baut kamera didapat dari tripod kecil yang sudah tidak terpakai, memudahkan pemasangan kamera.

 

Board Arduino dipasang ke alas box.

– www.saft7.com – automotive tips and sharing

 

Unit Arduino, Servo dan MPU6050 sudah terpasang pada box.

 

Video Pengujian Servo pada box

YouTube Preview Image

 

 

Dudukan kamera sudah dipasang pada servo.

– www.saft7.com – automotive tips and sharing

 

Kamera dipasang ke unit

 

Video pengujian saat kamera terpasang

YouTube Preview Image

 

 

SAATNYA MENCOBA

 

Kamera dipasang pada motor.

 

Coba jalan-jalan yuuuk…

YouTube Preview Image

 

 

Lessons Learned:

  • Modul Gyro+accelerometer harus terpasang dengan baik.
  • Pengaturan kalibrasi level horisontal dilakukan di bidang yang datar
  • Gunakan servo yang kuat.
  • Gunakan baterai yang berdaya besar agar servo mendapatkan catudaya yang baik.

 

Semoga bermanfaat.

 

– www.saft7.com – automotive tips and sharing

Bikin Sendiri Modul Potensiometer

pot00

 

Potensiometer cukup sering digunakan untuk proyek-proyek robotik.

Untuk memudahkan penggunaan komponen ini, kita buat modul sendiri, yuuk.

Komponen yang diperlukan:

  • Potensiometer yang akan digunakan
  • Header Male Single (beli)
  • PCB Matrix Universal

Bikin Sendiri Power Supply 5volt & 3.3volt

ps00

 

Umumnya modul tambahan untuk proyek-proyek Arduino menggunakan tegangan sebesar 5Volt DC, namun ada modul yang menggunakan tegangan sebesar 3.3Volt. Dan umumnya modul-modul itu sensitif apabila diberi tegangan diatas 3.3Volt.

Bikin Sensor Parkir/Mundur Untuk Mobil

ultrasonic00

Kegiatan memundurkan mobil untuk parkir seringkali beresiko. Karena banyak bagian yang tidak terlihat oleh pandangan kita (Blind-Spot).

Saat ini sudah banyak mobil yang dilengkapi Parking Sensor dan Rear View Camera… jadi selain mendeteksi jarak bumper mobil kita dengan benda di sekitarnya juga situasi akan tampil di layar Head Unit. Perlengkapan ini sangat membantu.

Thermometer Digital

tempsensor00

 

Dengan menggunakan sensor suhu, kita bisa menampilkannya di layar LCD suhu yang dipantau oleh sensor LM35

Sensor suhu yang digunakan adalah LM35 yang bentuknya mirip sekali dengan transistor.

Bikin Sendiri LCD Shield

lcd00

Dengan menggunakan komponen LCD, kita bisa menampilkan tulisan di layar LCD.

Layar LCD yang murah dan sering digunakan adalah jenis 16 kolom x 2 baris atau dikenal dengan tipe umum LCD 1602

Arduino, apaan sih?

arduino

arduino

Arduino adalah papan rangkaian elektronik (electronic board) open source yang di dalamnya terdapat komponen utama yaitu sebuah chip mikrokontroler.
Mikrokontroler itu sendiri adalah suatu chip atau IC (integrated circuit) yang bisa diprogram menggunakan komputer. Program yang direkam bertujuan agar rangkaian elektronik dapat membaca input, memproses dan kemudian menghasilkan output sesuai yang diinginkan. Outputnya itu bisa berupa sinyal, besaran tegangan, lampu, suara, getaran, gerakan, dan sebagainya.

Emblem Angry Birds

IMG_0503

 

Sewaktu lagi musim game Angry Birds, sempat iseng bikin emblem buat dipasang di mobil, menggantikan emblem si mobil.

Print di kertas sticker, di laminating agar tahan cuaca..

Jebakan Daun..

daun_1

Parkir di bawah pepohonan membuat mobil dikotori oleh dedaunan yang jatuh, bisa juga tertetes getah tanaman.

Mobil saya ternyata sensitif dengan dedaunan tersebut. Jika sampai potongan daun itu masuk ke saluran pembuangan air, dapat menyumbat jalur pembuangan tersebut, hasilnya bisa membuat ‘banjir’ air yang merendam box ECU (komputer mesin).

Sharing: Pasang Accu Tambahan (motor)

dualaccu-00

Pada artikel ini saya ingin berbagi pengalaman seputar pasang accu tambahan di sepeda motor.

Diawali dari keinginan mengganti lampu standar motor saya, dari lampu Halogen HS1 (mirip H4) dengan lampu HID model H4.

Motor yang saya gunakan adalah motor injection yang kelitrikan lampu nya menggunakan jenis DC, ciri khas nya, kalau grip gas diputar, lampu tetap menyala stabil, terang nya tidak berubah saat putaran mesin berubah-ubah.

Ganti Baterai Obeng Listrik

screwd-01

Saat bongkar-bongkar toolbox yang ada di gudang, saya menemukan Obeng Listrik (Electric Screwdriver / Cordless Battery Powered Screwdriver) ini saya beli sekitar 15 tahun lalu.
Saat dicoba di charge,.. hingga beberapa jam, obeng ini tidak dapat digunakan sama sekali. Sudah pasti baterai yang ada di dalamnya sudah rusak.

Saya coba untuk bongkar,.. benar saja, kertas pembungkus baterai sudah luluh lantah, seperti baterai pernah bocor dan tidak digunakan dalam waktu sangat lama.

 

Serpihan kertas pembungkus baterai, cukup menjijikkan..

 

Kemudian saya coba lepaskan baterai tersebut dari unit obeng listrik.

 

Saya coba cari baterai pengganti,..

Baterai yang digunakan sebagai pengganti adalah jenis Nickel Cadmium (NiCd) , ada beberapa pilihan ukuran kapasitas baterai…  yaitu 1800mAh hingga 4400mAh

yang 1800mAh harganya sekitar Rp 35.000,-/buah , dan yang 4400mAh harganya Rp 75.000,-/buah (harga 1 februari 2012, toko Sarang Baterai – Lindeteves Glodok, Jakarta).

 

 

Proses berikutnya, saya harus mematahkan plat besi yang ada pada baterai lama, untuk saya pasangkan pada baterai yang baru.

 

Untuk pemasangan plat besi, saya gunakan Solder listrik dengan ukuran minimal 60watt. Jika di bawah 60watt, akan mengalami kesulitan untuk melekatkan timah pada baterai.

 

 

Setelah itu, baterai dirangkai dengan kabel-kabel, sekalian saya mengganti kabel yang sudah tidak bagus (korosi akibat baterai yang bocor).

 

Seluruh komponen dipasang kembali ke unit Bor Listrik.

 

Alhamdulillah… akhirnya Obeng Listrik yang berusia 15 tahun ini dapat digunakan kembali seperti kondisi baru.

 

Semoga sharing ini bermanfaat, bagi yang memiliki perangkat / alat dengan Rechargeable Battery di dalamnya.

 

Bikin Voltage Stabilizer untuk Mobil/Motor

volstab-01

Di toko aksesoris mobil ada alat yang dapat membuat tegangan listrik pada sistem kelistrikan mobil menjadi stabil dan lebih baik. Alat itu sering disebut Voltage Stabilizer. Ada beberapa merek terkenal seperti Pivot, HKS, dan sebagainya dengan bandrol harga yang cukup mahal.

Bikin Oscilloscope Pakai Laptop

osci-01

 

Osiloskop (oscilloscope) adalah alat ukur elektronika yang berfungsi memproyeksikan bentuk sinyal listrik agar dapat dilihat dan dipelajari. Suatu rangkaian khusus di dalam osiloskop membuat sinyal terlihat bergerak berulang-ulang dari kiri ke kanan. Pengulangan ini menyebabkan bentuk sinyal kontinyu sehingga dapat dipelajari.

Osiloskop biasanya digunakan untuk mengamati bentuk gelombang yang tepat dari sinyal listrik. Selain amplitudo sinyal, osiloskop dapat menunjukkan distorsi, waktu antara dua peristiwa (seperti lebar pulsa, periode, atau waktu naik) dan waktu relatif dari dua sinyal terkait.

Memilih Test Pen untuk Mobil Injection

testpen-00

Menelusuri kelistrikan mobil mencari suatu masalah sering memerlukan alat bantu yaitu salah satunya adalah Test Pen.

Tentunya berbeda antara Test Pen yang biasa digunakan untuk kelistrikan rumah dengan Test Pen yang digunakan untuk kelistrikan Otomotif. Keduanya mempunyai fungsi sama, mencari jalur yang dialiri listrik, namun dibedakan berdasarkan voltase kerjanya.

Program Ulang Sendiri: Remote Kunci BMW

bmwkey-01

Keyless Entry berupa kunci mobil yang dilengkapi Remote untuk membuka ataupun mengunci pintu, tanpa harus memasukkan kunci ke lubang kunci di pintu mobil. Tentu saja ini memudahkan dan membuat kita menjadi nyaman.





Switch to our mobile site

Tips Otomotif saft7.com