Rabu, 31 Desember 2014

Arduino - Project Sederhana Mengendalikan Servo Dengan Password

Berikut langkah-langkah untuk mengendalikan port digital arduino dengan remote tv.

Implementasi :
  • Kunci Pintu
  • Pembelajaran
  • dll
Bahan-bahan yang dibutuhkan : 
  • 1 x Arduino
  • 1 x Keypad
  • 1 x Buzzer
  • Jumper secukupnya
Langkah-langkah :
  • Rangkai seperti gambar di bawah :
  • Download program pada link berikut :
      Klik Disini
  • Extract file tersebut, kemudian upload ke arduino.
  • (Opsional) Buka serial terminal.
  • Masukkan password yang benar *1234# , kemudian masukkan password yang salah dengan angka acak. * untuk reset password, # untuk konfirmasi password siap di cek.
  • Hasilnya : 
         
  • Berikut link video :
                                                    Video di youtube
  • Semoga Bermanfaat :) 

Penjelasan sederhana sistem kendali PID

PID merupakan Singkatan dari Proportional-Integral-Derivative, berfungsi untuk sistem pengendali yang bekerja dengan umpan balik untuk mendeteksi nilai error, sehingga sistem yang menggunakan PID dengan nilai masing-masing P-I-D yang tepat akan memperoleh hasil kendali yang stabil meskipun dalam kondisi dinamis. Dalam aplikasinya, ketiga parameter P,I, dan D dapat digunakan secara bersamaan ataupun digunakan sendiri-sendiri tergantung kebutuhan sistem yang di inginkan.

Ada beberapa parameter penting dalam PID diantaranya parameter pokok adalah :
  • Input atau Setpoint : Setpoint merupakan suatu nilai referensi atau patokan sistem untuk mengendalikan output berdasarkan Setpoint tersebut, PID berperan untuk meredam error dalam memberikan respond terhadap Output agar tidak melebihi setpoint ataupun kurang dari setpoint berdasarkan umpan balik yang diperoleh.
  • Umpan Balik atau Feedback : Umpan balik yang digunakan biasanya adalah jenis umpan balik tertutup, umpan balik berfungsi untuk mengambil nilai error terhadapa Setpoint yang nantinya nilai-nilai ini akan digunakan dalam perhitungan PID.
  • Output : merupakan hasil akhir dari proses, hasil akhir dari proses ini juga akan terus menerus diukur atau diambil nilainya kembali untuk umpan balik sehingga sistem dapat bekerja secara stabil terus menerus sekalipun dalam keadaan dinamis atau mendapat faktor eksternal.

Penjelasan singkat komponen P-I-D :

  • Proporsional (Proportional) : Kontrol P jika G(s) = kp, dengan k adalah konstanta. Jika u=G(s).e maka u=kp.e, dengan kp adalaha konstanta Proporsional. Kp hanya sebagai penguat yang bersipat tetap atau tidak dinamis. dalam aplikasi sederhana, kontrol P tunggal sudah cukup mampu untuk memberikan efek lebih baik jika nilai yang dimasukkan tepat.
  • Integratif (Integral) : Jika G(s) adalah kontrol I, maka u dapat dinyatakan sebagai u(t)=[integral_e(t)dT]Ki, dengan Ki merupakan konstanta Integral. Dari persamaan tersebut maka G(s) dapat dinyatakan dengan u=Kd.[delata_e/delta_t] jika e(T) mendekati konstan maka nilai u(t) menjadi sangat besar sehingga dapat memperbaiki error.
  • Derivatif (Derivative) : Kontrol u yang diperoleh dari D dapat dinyatakan sebagai G(s)=s.Kd , dari permsamaan dapat disimpulkan bahwa kontrol D berperan dalam kecepatan/rate error. dengan demikian kontrol D mampu memprediksi error untuk memperbaiki respond transien, selain itu pada kontrol D hanya akan berubah jika ada perubahan nilai error atau dengan kata lain faktor Derivatif tidak akan berpengaruh ketika nilai error tetap.
                         
                         
                         
Gambar Grafik pengaruh nilai Kp,Ki,Kd.

Selasa, 30 Desember 2014

Arduino - Kendali beberapa LED dengan remote tv

Berikut langkah-langkah untuk mengendalikan port digital arduino dengan remote tv.

Implementasi :
  • Kendali relay
  • Kendali LED
  • dll
Bahan-bahan yang dibutuhkan : 
  • 8 x LED 5mm (warna dan ukuran opsional)
  • 8 x Resistor 220 Ohm
  • 1 x Arduino (Uno,Mega,dll)
  • Kabel jumper secukupnya
  • 1 x Receiver Remote (Infrared Receiver)
  • 1 x Protoboard
Langkah-langkah :
  1. Kenali pin-pin dari Infrared Receiver, sebagai referensi lihat gambar berikut (anda harus memastikan datasheet Infrared Receiver anda) :
  2. Susun rangkaian seperti gambar di bawah :
  3. Upload program, berikut link program arduino  :
      Download
  4. Buka serial terminal dan sesuaikan baudrate.
  5. Tekan tombol pada remote yang akan digunakan untuk menyalakan LED 1, 2, 3, dst. kemudian perhatikan nilai yang keluar di serial terminal, dan pindahkan ke fungsi switch case program.
    perhatikan gambar berikut :
  6. Setelah menyalin angka-angka dari serial terminal ke masing-masing "case" , upload ulang program. kemudian coba nyalakan led dengan nilai setiap tombol yang anda masukkan.
  7. Hasilnya :

    Berikut Link Video :
                                         Lihat video di Youtube
  8. SELESAI. semoga bermanfaat :) 

Selasa, 16 Desember 2014

Arduino - Kontroler berbasis Graphical User Interface (GUI) dengan VB6.0 Untuk Pemula

Dalam membuat suatu produk terintegrasi harus memenuhi beberapa kriteria, salah satu kriteria paling penting adalah Kemudahan dalam penggunaan

Misalnya ketika kita ingin membuat alat yang dapat mengendalikan Lampu, Relay, dan Servo melalui serial tentu saja bisa melalui aplikasi Serial terminal, tetapi kekurangannya adalah cara tersebut akan sangat rumit digunakan bagi pengguna.
untuk itu, dibuat sebuah perintah kontrol yang berbasis grafis. dimana pengguna hanya memasukkan nilai dan melakukan eksekusi melalui button.

Berikut adalah tutorial untuk membuat proyek sederhana untuk pemula dalam implementasi sistem kontroler dengan interface GUI menggunakan Visual Basic 6.0

1. Install Arduino IDE, link download DISINI
2. Install Visual Basic 6.0
3. Download file-file program dan petunjuk melalui link INI

Senin, 27 Oktober 2014

Penjelasan Sederhana Antenna Tracker berbasis GPS


Untuk membuat suatu sistem antena tracker berbasis GPS tidaklah terlalu sulit, hanya saja data yang kita butuhkan adalah informasi latitude, longitude , dan ditambah informasi altitude untuk mendapatkan hasil tracking 3D.

Sebagai contoh adalah menggunakan GPS dengan protokol  NMEA,   paket  yang dibutuhkan  berupa $GPRMC atau $GPGLL dimana di dalam paket ini terdapat informasi yang dibutuhkan  (latitude  dan longitude) serta $GPGGA yang berisi informasi altitude. untuk akurasi tracking,  informasi  dari GPS sudah cukup cukup baik untuk jarak tracking minimal 25-30 meter (Tergantung hardware GPS).

Jika masih kurang jelas tentang Protokol NMEA bisa dipahami pada link berikut :
http://www.gpsinformation.org/dale/nmea.htm

Bentuk data yang diterima melalui software terminal adalah sebagai berikut :

Dari data diatas untuk mendapatkan data-data yang dibutuhkan saja maka dilakukan parsing atau pemecahan data berdasarkan header ataupun dengan teknik menghitung byte serta panjang data. kemudian capture bagian yang dibutuhkan.

Setelah mendapat informasi latitude, longitude, dan altitude, kemudian memasukkan ke persamaan untuk mendapatkan nilai sudut azimuth dan elevasi dengan ketentuan seperti pada umumnya yaitu untuk azimuth bernilai 0.00 s/d 359.99 dan elevasi bernilai 0.00 s/d 90.00.

Persamaan yang digunakan untuk mendapatkan nilai sudut Azimuth adalah :

Sudut=atan2(sin(lon2-lon1)*cos(lat2), cos(lat1)*sin(lat2)-sin(lat1)*cos(lat2)*cos(lon2-lon1));
Azimuth=Sudut*180/Phi;            ——–> (Phi = 3.14159)

Persamaan yang digunakan untuk mendapatkan nilai sudut elevasi :

dLat = (lat2-lat1);
dLon = (lon2-lon1);
Sudut = sin(dLat/2) * sin(dLat/2) + sin(dLon/2) * sin(dLon/2) * cos(lat1) * cos(lat2);
x = 2* asin(sqrt(Sudut));
y = 6371000 * x;                          ———> (6371000 = Jari-jari bumi ; Sumber Wikipedia :D )
Elevasi=atan(alt/y);
Elevasi=Elevasi*360/(2*Phi);

Nah, dari 2 persamaan di atas akan didapatkan sudut Azimuth dan Elevasi. sekarang untuk menggerakkan Servo atau aktuator Mekanis antenna dibutuhkan persamaan untuk mengarahkan Putaran (jika dibutuhkan fungsi reverse) dan menyesuaikan resolusi sudut agar hasil track lebih presisi. berikut persamaan sederhananya : (diturunkan sesuai kebutuhan).
X=x/(b-a)*(d-c)+c;

Blok sistem TX dan RX :


Blok sistem TX


Blok sistem RX (Home)


Berikut foto prototipe alat :


Bagian TX dan RF Module untuk mengirim data dari receiver GPS ke ground.

Bagian RX dan RF Module untuk menerima data (home).

TX (kiri) & RX (kanan).

Mengatasi Masalah Resolusi Tidak Tepat Pada Servo 180 Derajat

Saat kita membebeli servo baru terkadang tidak semuanya kita dapatkan dalam keadaan baik, bisa putarannya tidak mulus, resolusi kurang dari yang seharusnya, resolusi berlebihan (jangka panjang bisa merusak servo), ataupun posisi 0 atau 180 derajat tidak tepat. dibutuhkan proses kalibrasi ulang. kalibrasi dapat dilakukan melalui software (sedikit lebih ribet dan sebagian servo ada yang tidak bisa) ataupun dengan memodifikasi hardware (lebih mudah dan relatif bisa di semua jenis servo).

jika belum paham apa itu servo, mampir dulu ke http://qncctech.blogspot.com/2014/10/cara-kerja-servo.html

Lanjut, 
Berikut adalah Tutorial cara kalibrasi atau modifikasi feedback pada servo 180 derajat yang memiliki resolusi kurang dari seharusnya diuji dari pulsa penuh hanya menghasilkan sudut total 45 derajat tengah.

Jenis Servo TGY-S801D


  • Buka casing Servo dan solderan motor pada board

  • lepaskan solderan 2 kabel feedback (selain kabel comm) dari bord. kemudian seri resistor dengan nilai yang sudah dikalibrasi terlebih dahulu. solder kembali ke board.
  • Tutup kembali casing. servo sudah memiliki nilai sudut yang sesuai.

Cara kerja trik diatas adalah untuk menambah lebar sudut servo dengan menambah resolusi pembacaan posisi dan koreksi error pada feedback atau umpan balik servo. tujuannya adalah agar kontroler mengansumsikan pembacaan yang lebih singkat dari pembacaan resistansi yang besar sehingga kontroler menggerakkan lebih jauh dari sebelumnya.

Untuk mengurangi lebar sudut servo (pada kasus servo yang memiliki sudut lebih 180 yang berpotensi merusak servo), maka resistor masing-masing dari port selain port comm diparalel resistor dengan port comm. tujuannya adalah agar kontroler mengansumsikan pembacaan yang lebih panjang dari pembacan resistansi yang kecil sehingga kontroler menggerakkan lebih dekat dari sebelumnya.

jika masih belum paham, silakan pelajari konsep pembagi tegangan resistor dan kemudian pahami tentang closed-loop feedback.

Cara Kerja Servo

Penjelasan Tentang Servo


Servo merupakan salah satu jenis aktuator atau  yang pengendaliannya menggunakan lebar pulsa untuk menentukan posisi sudut servo tersebut. Beberapa jenis servo diantaranya adalah Servo 180 Derajat dan Servo Kontinu (360 derajat).

Pada umumnya Servo 180 derajat pengendaliannya adalah dengan resolusi pwm berlogika "1" selama 500 s/d 2500 uS (mikro detik) dari resolusi total 18 s/d 25 ms (mili detik).

Contoh Aplikasi Servo
  • Sebagai aktuator mekanis pada UAV (Unmanned Aerial Vehicle) atau disebut juga dengan Pesawat Tanpa Awak.
  • Sebagai penggerak arm Robot.
  • Sebagai Penggerak mesin CNC.
  • Pembersih kaca mobil, dll.
Ada beberapa bagian penting dari Servo yaitu :

Pulsa Pengendali ;

      Servo 180 derajat.

      Penjelasan gambar :
  • Untuk memposisikan pada 0 derjat maka pulsa yang diberikan ke servo adalah +- 500 atau 1000 uS HIGH dari resolusi total 18 s/d 25 ms (mili detik).
  • Untuk memposisikan pada 90 derjat maka pulsa yang diberikan ke servo adalah +- 1500 uS HIGH dari resolusi total 18 s/d 25 ms (mili detik).
  • Untuk memposisikan pada 180 derjat maka pulsa yang diberikan ke servo adalah +- 2000 atau 2500 uS dari resolusi total 18 s/d 25 ms (mili detik).
      Servo Kontinu (360 derajat) :
      Penjelasan Gambar :
  • Untuk mengatur Servo berputar kekiri (berlawanan jarum jam), dengan memberi pulsa +/- 1000 uS logika "1".
  • Untuk menghentikan putaran, dengan memberi pulsa +/- 1500 uS (Terkalibrasi) logika "1".
  • Untuk mengatur Servo berputar ke kanan (searah jarum jam), dengan memberi pulsa +/- 2000 uS logika "1".

Feedback pada Servo ;

      Feedback pada Servo memiliki fungsi untuk mendeteksi posisi sudut dan data untuk kalkulasi error.

Gearbox dan kontroler ;

Selain untuk meredam putaran, gearbox berfungsi untuk memudahkan putaran motor ketika diberi beban maksimum, makin besar perbandingan torsi putaran pada gearbox maka makin besar pula beban yang dapat diangkat dengan motor yang sama.

Blok kontroler adalah bagian yang mengatur putaran atau posisi sudut pada servo, kontroler akan menerima pulsa dari eksternal yang nantinya akan dijadikan setpoint posisi, kemudian kontroler menggerakkan motor dc sesuai posisi dan koreksi error dari feeedback, kontroler tersebut secara terus menerus melakukan looping sehingga mendapatkan posisi sudut sesuai command dari pulsa eksternal.